bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

use non-UTF-8 locales on MacOS X


From: Bruno Haible
Subject: use non-UTF-8 locales on MacOS X
Date: Mon, 26 Jan 2009 03:09:59 +0100
User-agent: KMail/1.9.9

Now that the 'localcharset' module supports non-UTF-8 locales on MacOS X,
some special code in m4/locale-*.m4 can be removed: The locales
fr_FR.ISO8859-1, ja_JP.eucJP, zh_CN.GB18030 can be used; they don't cause
test suite failures in gnulib.


2009-01-25  Bruno Haible  <address@hidden>

        * m4/locale-fr.m4 (gt_LOCALE_FR): Remove special code that hid the
        fr_FR.ISO8859-1 locale on MacOS X.
        * m4/locale-ja.m4 (gt_LOCALE_JA): Remove special code that hid the
        ja_JP.eucJP locale on MacOS X.
        * m4/locale-zh.m4 (gt_LOCALE_ZH_CN): Remove special code that hid the
        zh_CN.GB18030 locale on MacOS X.

*** m4/locale-fr.m4.orig        2009-01-26 03:06:01.000000000 +0100
--- m4/locale-fr.m4     2009-01-26 02:06:22.000000000 +0100
***************
*** 1,4 ****
! # locale-fr.m4 serial 10
  dnl Copyright (C) 2003, 2005-2009 Free Software Foundation, Inc.
  dnl This file is free software; the Free Software Foundation
  dnl gives unlimited permission to copy and/or distribute it,
--- 1,4 ----
! # locale-fr.m4 serial 11
  dnl Copyright (C) 2003, 2005-2009 Free Software Foundation, Inc.
  dnl This file is free software; the Free Software Foundation
  dnl gives unlimited permission to copy and/or distribute it,
***************
*** 12,36 ****
    AC_REQUIRE([AC_CANONICAL_HOST])
    AC_REQUIRE([AM_LANGINFO_CODESET])
    AC_CACHE_CHECK([for a traditional french locale], [gt_cv_locale_fr], [
!     macosx=
! changequote(,)dnl
!     case "$host_os" in
!       darwin[56]*) ;;
!       darwin*) macosx=yes;;
!     esac
! changequote([,])dnl
!     if test -n "$macosx"; then
!       # On Darwin 7 (MacOS X), the libc supports some locales in non-UTF-8
!       # encodings, but the kernel does not support them. The documentation
!       # says:
!       #   "... all code that calls BSD system routines should ensure
!       #    that the const *char parameters of these routines are in UTF-8
!       #    encoding. All BSD system functions expect their string
!       #    parameters to be in UTF-8 encoding and nothing else."
!       # See the comments in config.charset. Therefore we bypass the test.
!       gt_cv_locale_fr=none
!     else
!       AC_LANG_CONFTEST([AC_LANG_SOURCE([
  changequote(,)dnl
  #include <locale.h>
  #include <time.h>
--- 12,18 ----
    AC_REQUIRE([AC_CANONICAL_HOST])
    AC_REQUIRE([AM_LANGINFO_CODESET])
    AC_CACHE_CHECK([for a traditional french locale], [gt_cv_locale_fr], [
!     AC_LANG_CONFTEST([AC_LANG_SOURCE([
  changequote(,)dnl
  #include <locale.h>
  #include <time.h>
***************
*** 75,116 ****
    return 0;
  }
  changequote([,])dnl
!         ])])
!       if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
!         # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
!         # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
!         # configure script would override the LC_ALL setting. Likewise for
!         # LC_CTYPE, which is also set at the beginning of the configure 
script.
!         # Test for the usual locale name.
!         if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; 
then
!           gt_cv_locale_fr=fr_FR
          else
!           # Test for the locale name with explicit encoding suffix.
!           if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 
2>/dev/null; then
!             gt_cv_locale_fr=fr_FR.ISO-8859-1
            else
!             # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
!             if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 
2>/dev/null; then
!               gt_cv_locale_fr=fr_FR.ISO8859-1
              else
!               # Test for the HP-UX locale name.
!               if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 
2>/dev/null; then
!                 gt_cv_locale_fr=fr_FR.iso88591
                else
!                 # Test for the Solaris 7 locale name.
!                 if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 
2>/dev/null; then
!                   gt_cv_locale_fr=fr
!                 else
!                   # None found.
!                   gt_cv_locale_fr=none
!                 fi
                fi
              fi
            fi
          fi
        fi
-       rm -fr conftest*
      fi
    ])
    LOCALE_FR=$gt_cv_locale_fr
    AC_SUBST([LOCALE_FR])
--- 57,97 ----
    return 0;
  }
  changequote([,])dnl
!       ])])
!     if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
!       # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
!       # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
!       # configure script would override the LC_ALL setting. Likewise for
!       # LC_CTYPE, which is also set at the beginning of the configure script.
!       # Test for the usual locale name.
!       if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
!         gt_cv_locale_fr=fr_FR
!       else
!         # Test for the locale name with explicit encoding suffix.
!         if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 
2>/dev/null; then
!           gt_cv_locale_fr=fr_FR.ISO-8859-1
          else
!           # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
!           if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 
2>/dev/null; then
!             gt_cv_locale_fr=fr_FR.ISO8859-1
            else
!             # Test for the HP-UX locale name.
!             if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 
2>/dev/null; then
!               gt_cv_locale_fr=fr_FR.iso88591
              else
!               # Test for the Solaris 7 locale name.
!               if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; 
then
!                 gt_cv_locale_fr=fr
                else
!                 # None found.
!                 gt_cv_locale_fr=none
                fi
              fi
            fi
          fi
        fi
      fi
+     rm -fr conftest*
    ])
    LOCALE_FR=$gt_cv_locale_fr
    AC_SUBST([LOCALE_FR])
*** m4/locale-ja.m4.orig        2009-01-26 03:06:01.000000000 +0100
--- m4/locale-ja.m4     2009-01-26 02:05:39.000000000 +0100
***************
*** 1,4 ****
! # locale-ja.m4 serial 6
  dnl Copyright (C) 2003, 2005-2009 Free Software Foundation, Inc.
  dnl This file is free software; the Free Software Foundation
  dnl gives unlimited permission to copy and/or distribute it,
--- 1,4 ----
! # locale-ja.m4 serial 7
  dnl Copyright (C) 2003, 2005-2009 Free Software Foundation, Inc.
  dnl This file is free software; the Free Software Foundation
  dnl gives unlimited permission to copy and/or distribute it,
***************
*** 12,36 ****
    AC_REQUIRE([AC_CANONICAL_HOST])
    AC_REQUIRE([AM_LANGINFO_CODESET])
    AC_CACHE_CHECK([for a traditional japanese locale], [gt_cv_locale_ja], [
!     macosx=
! changequote(,)dnl
!     case "$host_os" in
!       darwin[56]*) ;;
!       darwin*) macosx=yes;;
!     esac
! changequote([,])dnl
!     if test -n "$macosx"; then
!       # On Darwin 7 (MacOS X), the libc supports some locales in non-UTF-8
!       # encodings, but the kernel does not support them. The documentation
!       # says:
!       #   "... all code that calls BSD system routines should ensure
!       #    that the const *char parameters of these routines are in UTF-8
!       #    encoding. All BSD system functions expect their string
!       #    parameters to be in UTF-8 encoding and nothing else."
!       # See the comments in config.charset. Therefore we bypass the test.
!       gt_cv_locale_ja=none
!     else
!       AC_LANG_CONFTEST([AC_LANG_SOURCE([
  changequote(,)dnl
  #include <locale.h>
  #include <time.h>
--- 12,18 ----
    AC_REQUIRE([AC_CANONICAL_HOST])
    AC_REQUIRE([AM_LANGINFO_CODESET])
    AC_CACHE_CHECK([for a traditional japanese locale], [gt_cv_locale_ja], [
!     AC_LANG_CONFTEST([AC_LANG_SOURCE([
  changequote(,)dnl
  #include <locale.h>
  #include <time.h>
***************
*** 79,125 ****
    return 0;
  }
  changequote([,])dnl
!         ])])
!       if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
!         # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
!         # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
!         # configure script would override the LC_ALL setting. Likewise for
!         # LC_CTYPE, which is also set at the beginning of the configure 
script.
!         # Test for the AIX locale name.
!         if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; 
then
!           gt_cv_locale_ja=ja_JP
          else
!           # Test for the locale name with explicit encoding suffix.
!           if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 
2>/dev/null; then
!             gt_cv_locale_ja=ja_JP.EUC-JP
            else
!             # Test for the HP-UX, OSF/1, NetBSD locale name.
!             if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 
2>/dev/null; then
!               gt_cv_locale_ja=ja_JP.eucJP
              else
!               # Test for the IRIX, FreeBSD locale name.
!               if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 
2>/dev/null; then
!                 gt_cv_locale_ja=ja_JP.EUC
                else
!                 # Test for the Solaris 7 locale name.
!                 if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 
2>/dev/null; then
!                   gt_cv_locale_ja=ja
                  else
!                   # Special test for NetBSD 1.6.
!                   if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then
!                     gt_cv_locale_ja=ja_JP.eucJP
!                   else
!                     # None found.
!                     gt_cv_locale_ja=none
!                   fi
                  fi
                fi
              fi
            fi
          fi
        fi
-       rm -fr conftest*
      fi
    ])
    LOCALE_JA=$gt_cv_locale_ja
    AC_SUBST([LOCALE_JA])
--- 61,106 ----
    return 0;
  }
  changequote([,])dnl
!       ])])
!     if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
!       # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
!       # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
!       # configure script would override the LC_ALL setting. Likewise for
!       # LC_CTYPE, which is also set at the beginning of the configure script.
!       # Test for the AIX locale name.
!       if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
!         gt_cv_locale_ja=ja_JP
!       else
!         # Test for the locale name with explicit encoding suffix.
!         if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 
2>/dev/null; then
!           gt_cv_locale_ja=ja_JP.EUC-JP
          else
!           # Test for the HP-UX, OSF/1, NetBSD locale name.
!           if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 
2>/dev/null; then
!             gt_cv_locale_ja=ja_JP.eucJP
            else
!             # Test for the IRIX, FreeBSD locale name.
!             if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 
2>/dev/null; then
!               gt_cv_locale_ja=ja_JP.EUC
              else
!               # Test for the Solaris 7 locale name.
!               if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; 
then
!                 gt_cv_locale_ja=ja
                else
!                 # Special test for NetBSD 1.6.
!                 if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then
!                   gt_cv_locale_ja=ja_JP.eucJP
                  else
!                   # None found.
!                   gt_cv_locale_ja=none
                  fi
                fi
              fi
            fi
          fi
        fi
      fi
+     rm -fr conftest*
    ])
    LOCALE_JA=$gt_cv_locale_ja
    AC_SUBST([LOCALE_JA])
*** m4/locale-zh.m4.orig        2009-01-26 03:06:01.000000000 +0100
--- m4/locale-zh.m4     2009-01-26 02:07:09.000000000 +0100
***************
*** 1,4 ****
! # locale-zh.m4 serial 5
  dnl Copyright (C) 2003, 2005-2009 Free Software Foundation, Inc.
  dnl This file is free software; the Free Software Foundation
  dnl gives unlimited permission to copy and/or distribute it,
--- 1,4 ----
! # locale-zh.m4 serial 6
  dnl Copyright (C) 2003, 2005-2009 Free Software Foundation, Inc.
  dnl This file is free software; the Free Software Foundation
  dnl gives unlimited permission to copy and/or distribute it,
***************
*** 12,36 ****
    AC_REQUIRE([AC_CANONICAL_HOST])
    AC_REQUIRE([AM_LANGINFO_CODESET])
    AC_CACHE_CHECK([for a transitional chinese locale], [gt_cv_locale_zh_CN], [
!     macosx=
! changequote(,)dnl
!     case "$host_os" in
!       darwin[56]*) ;;
!       darwin*) macosx=yes;;
!     esac
! changequote([,])dnl
!     if test -n "$macosx"; then
!       # On Darwin 7 (MacOS X), the libc supports some locales in non-UTF-8
!       # encodings, but the kernel does not support them. The documentation
!       # says:
!       #   "... all code that calls BSD system routines should ensure
!       #    that the const *char parameters of these routines are in UTF-8
!       #    encoding. All BSD system functions expect their string
!       #    parameters to be in UTF-8 encoding and nothing else."
!       # See the comments in config.charset. Therefore we bypass the test.
!       gt_cv_locale_zh_CN=none
!     else
!       AC_LANG_CONFTEST([AC_LANG_SOURCE([
  changequote(,)dnl
  #include <locale.h>
  #include <stdlib.h>
--- 12,18 ----
    AC_REQUIRE([AC_CANONICAL_HOST])
    AC_REQUIRE([AM_LANGINFO_CODESET])
    AC_CACHE_CHECK([for a transitional chinese locale], [gt_cv_locale_zh_CN], [
!     AC_LANG_CONFTEST([AC_LANG_SOURCE([
  changequote(,)dnl
  #include <locale.h>
  #include <stdlib.h>
***************
*** 80,110 ****
    return 0;
  }
  changequote([,])dnl
!         ])])
!       if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
!         # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
!         # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
!         # configure script would override the LC_ALL setting. Likewise for
!         # LC_CTYPE, which is also set at the beginning of the configure 
script.
!         # Test for the locale name without encoding suffix.
!         if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; 
then
!           gt_cv_locale_zh_CN=zh_CN
          else
!           # Test for the locale name with explicit encoding suffix.
!           if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 
2>/dev/null; then
!             gt_cv_locale_zh_CN=zh_CN.GB18030
!           else
!             # None found.
!             gt_cv_locale_zh_CN=none
!           fi
          fi
-       else
-         # If there was a link error, due to mblen(), the system is so old that
-         # it certainly doesn't have a chinese locale.
-         gt_cv_locale_zh_CN=none
        fi
!       rm -fr conftest*
      fi
    ])
    LOCALE_ZH_CN=$gt_cv_locale_zh_CN
    AC_SUBST([LOCALE_ZH_CN])
--- 62,91 ----
    return 0;
  }
  changequote([,])dnl
!       ])])
!     if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
!       # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
!       # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
!       # configure script would override the LC_ALL setting. Likewise for
!       # LC_CTYPE, which is also set at the beginning of the configure script.
!       # Test for the locale name without encoding suffix.
!       if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
!         gt_cv_locale_zh_CN=zh_CN
!       else
!         # Test for the locale name with explicit encoding suffix.
!         if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 
2>/dev/null; then
!           gt_cv_locale_zh_CN=zh_CN.GB18030
          else
!           # None found.
!           gt_cv_locale_zh_CN=none
          fi
        fi
!     else
!       # If there was a link error, due to mblen(), the system is so old that
!       # it certainly doesn't have a chinese locale.
!       gt_cv_locale_zh_CN=none
      fi
+     rm -fr conftest*
    ])
    LOCALE_ZH_CN=$gt_cv_locale_zh_CN
    AC_SUBST([LOCALE_ZH_CN])




reply via email to

[Prev in Thread] Current Thread [Next in Thread]