~ubuntu-branches/ubuntu/precise/parted/precise

« back to all changes in this revision

Viewing changes to m4/locale-fr.m4

  • Committer: Bazaar Package Importer
  • Author(s): Otavio Salvador
  • Date: 2010-02-06 16:39:19 UTC
  • mfrom: (1.1.5 upstream)
  • mto: (7.3.2 experimental)
  • mto: This revision was merged to the branch mainline in revision 48.
  • Revision ID: james.westby@ubuntu.com-20100206163919-nsxr2vtchk0ecabf
Tags: upstream-2.1
ImportĀ upstreamĀ versionĀ 2.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# locale-fr.m4 serial 11
 
2
dnl Copyright (C) 2003, 2005-2009 Free Software Foundation, Inc.
 
3
dnl This file is free software; the Free Software Foundation
 
4
dnl gives unlimited permission to copy and/or distribute it,
 
5
dnl with or without modifications, as long as this notice is preserved.
 
6
 
 
7
dnl From Bruno Haible.
 
8
 
 
9
dnl Determine the name of a french locale with traditional encoding.
 
10
AC_DEFUN([gt_LOCALE_FR],
 
11
[
 
12
  AC_REQUIRE([AC_CANONICAL_HOST])
 
13
  AC_REQUIRE([AM_LANGINFO_CODESET])
 
14
  AC_CACHE_CHECK([for a traditional french locale], [gt_cv_locale_fr], [
 
15
    AC_LANG_CONFTEST([AC_LANG_SOURCE([
 
16
changequote(,)dnl
 
17
#include <locale.h>
 
18
#include <time.h>
 
19
#if HAVE_LANGINFO_CODESET
 
20
# include <langinfo.h>
 
21
#endif
 
22
#include <stdlib.h>
 
23
#include <string.h>
 
24
struct tm t;
 
25
char buf[16];
 
26
int main () {
 
27
  /* Check whether the given locale name is recognized by the system.  */
 
28
  if (setlocale (LC_ALL, "") == NULL) return 1;
 
29
  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
 
30
     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
 
31
     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
 
32
     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
 
33
     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
 
34
     some unit tests fail.  */
 
35
#if HAVE_LANGINFO_CODESET
 
36
  {
 
37
    const char *cs = nl_langinfo (CODESET);
 
38
    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
 
39
      return 1;
 
40
  }
 
41
#endif
 
42
#ifdef __CYGWIN__
 
43
  /* On Cygwin, avoid locale names without encoding suffix, because the
 
44
     locale_charset() function relies on the encoding suffix.  Note that
 
45
     LC_ALL is set on the command line.  */
 
46
  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
 
47
#endif
 
48
  /* Check whether in the abbreviation of the second month, the second
 
49
     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
 
50
     one byte long. This excludes the UTF-8 encoding.  */
 
51
  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
 
52
  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
 
53
  /* Check whether the decimal separator is a comma.
 
54
     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
 
55
     are nl_langinfo(RADIXCHAR) are both ".".  */
 
56
  if (localeconv () ->decimal_point[0] != ',') return 1;
 
57
  return 0;
 
58
}
 
59
changequote([,])dnl
 
60
      ])])
 
61
    if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
 
62
      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
 
63
      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
 
64
      # configure script would override the LC_ALL setting. Likewise for
 
65
      # LC_CTYPE, which is also set at the beginning of the configure script.
 
66
      # Test for the usual locale name.
 
67
      if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
 
68
        gt_cv_locale_fr=fr_FR
 
69
      else
 
70
        # Test for the locale name with explicit encoding suffix.
 
71
        if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
 
72
          gt_cv_locale_fr=fr_FR.ISO-8859-1
 
73
        else
 
74
          # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
 
75
          if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
 
76
            gt_cv_locale_fr=fr_FR.ISO8859-1
 
77
          else
 
78
            # Test for the HP-UX locale name.
 
79
            if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
 
80
              gt_cv_locale_fr=fr_FR.iso88591
 
81
            else
 
82
              # Test for the Solaris 7 locale name.
 
83
              if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
 
84
                gt_cv_locale_fr=fr
 
85
              else
 
86
                # None found.
 
87
                gt_cv_locale_fr=none
 
88
              fi
 
89
            fi
 
90
          fi
 
91
        fi
 
92
      fi
 
93
    fi
 
94
    rm -fr conftest*
 
95
  ])
 
96
  LOCALE_FR=$gt_cv_locale_fr
 
97
  AC_SUBST([LOCALE_FR])
 
98
])
 
99
 
 
100
dnl Determine the name of a french locale with UTF-8 encoding.
 
101
AC_DEFUN([gt_LOCALE_FR_UTF8],
 
102
[
 
103
  AC_REQUIRE([AM_LANGINFO_CODESET])
 
104
  AC_CACHE_CHECK([for a french Unicode locale], [gt_cv_locale_fr_utf8], [
 
105
    AC_LANG_CONFTEST([AC_LANG_SOURCE([
 
106
changequote(,)dnl
 
107
#include <locale.h>
 
108
#include <time.h>
 
109
#if HAVE_LANGINFO_CODESET
 
110
# include <langinfo.h>
 
111
#endif
 
112
#include <stdlib.h>
 
113
#include <string.h>
 
114
struct tm t;
 
115
char buf[16];
 
116
int main () {
 
117
  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
 
118
     imitates locale dependent behaviour by looking at the environment
 
119
     variables, and all locales use the UTF-8 encoding.  */
 
120
#if !(defined __BEOS__ || defined __HAIKU__)
 
121
  /* Check whether the given locale name is recognized by the system.  */
 
122
  if (setlocale (LC_ALL, "") == NULL) return 1;
 
123
  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
 
124
     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
 
125
     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
 
126
     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
 
127
     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
 
128
     some unit tests fail.  */
 
129
# if HAVE_LANGINFO_CODESET
 
130
  {
 
131
    const char *cs = nl_langinfo (CODESET);
 
132
    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
 
133
      return 1;
 
134
  }
 
135
# endif
 
136
# ifdef __CYGWIN__
 
137
  /* On Cygwin, avoid locale names without encoding suffix, because the
 
138
     locale_charset() function relies on the encoding suffix.  Note that
 
139
     LC_ALL is set on the command line.  */
 
140
  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
 
141
# endif
 
142
  /* Check whether in the abbreviation of the second month, the second
 
143
     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
 
144
     two bytes long, with UTF-8 encoding.  */
 
145
  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
 
146
  if (strftime (buf, sizeof (buf), "%b", &t) < 4
 
147
      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
 
148
    return 1;
 
149
#endif
 
150
  /* Check whether the decimal separator is a comma.
 
151
     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
 
152
     are nl_langinfo(RADIXCHAR) are both ".".  */
 
153
  if (localeconv () ->decimal_point[0] != ',') return 1;
 
154
  return 0;
 
155
}
 
156
changequote([,])dnl
 
157
      ])])
 
158
    if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
 
159
      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
 
160
      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
 
161
      # configure script would override the LC_ALL setting. Likewise for
 
162
      # LC_CTYPE, which is also set at the beginning of the configure script.
 
163
      # Test for the usual locale name.
 
164
      if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
 
165
        gt_cv_locale_fr_utf8=fr_FR
 
166
      else
 
167
        # Test for the locale name with explicit encoding suffix.
 
168
        if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
 
169
          gt_cv_locale_fr_utf8=fr_FR.UTF-8
 
170
        else
 
171
          # Test for the Solaris 7 locale name.
 
172
          if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
 
173
            gt_cv_locale_fr_utf8=fr.UTF-8
 
174
          else
 
175
            # None found.
 
176
            gt_cv_locale_fr_utf8=none
 
177
          fi
 
178
        fi
 
179
      fi
 
180
    fi
 
181
    rm -fr conftest*
 
182
  ])
 
183
  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
 
184
  AC_SUBST([LOCALE_FR_UTF8])
 
185
])