1# setlocale.m4 serial 6
2dnl Copyright (C) 2011-2019 Free Software Foundation, Inc.
3dnl This file is free software; the Free Software Foundation
4dnl gives unlimited permission to copy and/or distribute it,
5dnl with or without modifications, as long as this notice is preserved.
6
7AC_DEFUN([gl_FUNC_SETLOCALE],
8[
9  AC_REQUIRE([gl_LOCALE_H_DEFAULTS])
10  AC_REQUIRE([AC_CANONICAL_HOST])
11  case "$host_os" in
12    dnl On native Windows systems, setlocale(category,NULL) does not look at
13    dnl the environment variables LC_ALL, category, and LANG.
14    mingw*) REPLACE_SETLOCALE=1 ;;
15    dnl On Cygwin 1.5.x, setlocale always succeeds but setlocale(LC_CTYPE,NULL)
16    dnl is then still "C".
17    cygwin*)
18      case `uname -r` in
19        1.5.*) REPLACE_SETLOCALE=1 ;;
20      esac
21      ;;
22    dnl On Android 4.3, setlocale(category,"C") always fails.
23    *)
24      AC_CACHE_CHECK([whether setlocale supports the C locale],
25        [gl_cv_func_setlocale_works],
26        [AC_RUN_IFELSE(
27           [AC_LANG_SOURCE([[
28#include <locale.h>
29int main ()
30{
31  return setlocale (LC_ALL, "C") == NULL;
32}]])],
33           [gl_cv_func_setlocale_works=yes],
34           [gl_cv_func_setlocale_works=no],
35           [case "$host_os" in
36                               # Guess no on Android.
37              linux*-android*) gl_cv_func_setlocale_works="guessing no";;
38                               # Guess yes otherwise.
39              *)               gl_cv_func_setlocale_works="guessing yes";;
40            esac
41           ])
42        ])
43      case "$gl_cv_func_setlocale_works" in
44        *yes) ;;
45        *) REPLACE_SETLOCALE=1 ;;
46      esac
47      ;;
48  esac
49])
50
51# Prerequisites of lib/setlocale.c.
52AC_DEFUN([gl_PREREQ_SETLOCALE],
53[
54  dnl No need to check for CFLocaleCopyPreferredLanguages and
55  dnl CFPreferencesCopyAppValue because lib/setlocale.c is not used on Mac OS X.
56  dnl (The Mac OS X specific code is only used in libintl.)
57  :
58])
59