util/StringUTF8: check if `locale_t` is available
authorMax Kellermann <max@musicpd.org>
Thu, 4 Oct 2018 17:29:31 +0000 (19:29 +0200)
committerMax Kellermann <max@musicpd.org>
Thu, 4 Oct 2018 17:29:31 +0000 (19:29 +0200)
meson.build
src/util/StringUTF8.cxx
src/util/StringUTF8.hxx

index 7eac055..a51d6e0 100644 (file)
@@ -45,6 +45,7 @@ if enable_nls
   subdir('po')
 endif
 
+conf.set('HAVE_LOCALE_T', enable_locale and cc.has_header_symbol('locale.h', 'locale_t'))
 conf.set('HAVE_ICONV', enable_locale and cc.has_function('iconv'))
 
 if get_option('tcp')
index 81743db..107caac 100644 (file)
@@ -21,7 +21,7 @@
 
 #include <string.h>
 
-#ifdef ENABLE_LOCALE
+#ifdef HAVE_LOCALE_T
 #include <langinfo.h>
 #include <locale.h>
 
@@ -62,7 +62,7 @@ gcc_pure
 int
 CollateUTF8(const char *a, const char *b)
 {
-#ifdef ENABLE_LOCALE
+#ifdef HAVE_LOCALE_T
        if (utf8_locale != locale_t(0))
                return strcoll_l(a, b, utf8_locale);
 #endif
index ca439df..863bd4a 100644 (file)
@@ -24,7 +24,7 @@
 #include "Compiler.h"
 
 class ScopeInitUTF8 {
-#ifdef ENABLE_LOCALE
+#ifdef HAVE_LOCALE_T
 public:
        ScopeInitUTF8() noexcept;
        ~ScopeInitUTF8() noexcept;