X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Ftime.c;h=a01c16df5c44f024c00469beeaa014542c658c9f;hb=b14f53d4c3a465449216c525a985c9c3622ce109;hp=5c5594584dc6ae37c59ab44625ca7ad9b8c9534d;hpb=507f56949c928c084e647fa88498b823aeab585d;p=lttng-tools.git diff --git a/src/common/time.c b/src/common/time.c index 5c5594584..a01c16df5 100644 --- a/src/common/time.c +++ b/src/common/time.c @@ -22,6 +22,16 @@ #include #include #include +#include +#include + +static bool utf8_output_supported; + +LTTNG_HIDDEN +bool locale_supports_utf8(void) +{ + return utf8_output_supported; +} LTTNG_HIDDEN int timespec_to_ms(struct timespec ts, unsigned long *ms) @@ -57,3 +67,16 @@ struct timespec timespec_abs_diff(struct timespec t1, struct timespec t2) res.tv_nsec = diff % (uint64_t) NSEC_PER_SEC; return res; } + +static +void __attribute__((constructor)) init_locale_utf8_support(void) +{ + const char *program_locale = setlocale(LC_ALL, NULL); + const char *lang = getenv("LANG"); + + if (program_locale && strstr(program_locale, "utf8")) { + utf8_output_supported = true; + } else if (lang && strstr(lang, "utf8")) { + utf8_output_supported = true; + } +}