diff --git a/src/common/init.c b/src/common/init.c index c2dfa9fb5..2cb651fc8 100644 --- a/src/common/init.c +++ b/src/common/init.c @@ -8,9 +8,9 @@ #include #include -#include #ifdef _WIN32 #include + #include #include "util/windows/unicode.h" #else #include @@ -51,9 +51,6 @@ void ffInitInstance(void) #ifdef WIN32 //https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/setlocale-wsetlocale?source=recommendations&view=msvc-170#utf-8-support setlocale(LC_ALL, ".UTF8"); - #else - // used for mbsrtowcs in Module `separator` - setlocale(LC_ALL, ""); #endif initState(&instance.state); diff --git a/src/detection/locale/locale_linux.c b/src/detection/locale/locale_linux.c index a7cba8748..5d440694a 100644 --- a/src/detection/locale/locale_linux.c +++ b/src/detection/locale/locale_linux.c @@ -12,12 +12,12 @@ void ffDetectLocale(FFstrbuf* result) if(result->length > 0) return; + setlocale(LC_ALL, ""); #ifdef LC_MESSAGES ffStrbufAppendS(result, setlocale(LC_MESSAGES, NULL)); - if(result->length > 0) - return; + if(result->length == 0) + ffStrbufAppendS(result, setlocale(LC_ALL, NULL)); #endif - - ffStrbufAppendS(result, setlocale(LC_ALL, NULL)); + setlocale(LC_ALL, "C"); } diff --git a/src/modules/separator/separator.c b/src/modules/separator/separator.c index cf2be92bf..4a4747195 100644 --- a/src/modules/separator/separator.c +++ b/src/modules/separator/separator.c @@ -5,6 +5,8 @@ #include "util/mallocHelper.h" #include "util/wcwidth.h" +#include + static inline uint32_t max(uint32_t a, uint32_t b) { return a > b ? a : b; @@ -31,6 +33,8 @@ static inline uint32_t getWcsWidth(const FFstrbuf* mbstr, wchar_t* wstr, mbstate void ffPrintSeparator(FFSeparatorOptions* options) { + setlocale(LC_ALL, ""); + mbstate_t state = {}; bool fqdn = instance.config.modules.title.fqdn; const FFPlatform* platform = &instance.state.platform; @@ -86,6 +90,8 @@ void ffPrintSeparator(FFSeparatorOptions* options) } } putchar('\n'); + + setlocale(LC_ALL, "C"); } bool ffParseSeparatorCommandOptions(FFSeparatorOptions* options, const char* key, const char* value)