1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-12-22 10:19:57 +01:00

Preparing a new release. Updated gettext

This commit is contained in:
Werner Koch 2004-09-30 14:34:34 +00:00
parent dd3b12f3b1
commit 335b5e4ac4
74 changed files with 3439 additions and 2094 deletions

989
ABOUT-NLS

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,11 @@
2004-09-30 Werner Koch <wk@g10code.com>
* README: Minor updates.
2004-09-30 gettextize <bug-gnu-gettext@gnu.org>
* configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.14.1.
2004-08-16 Werner Koch <wk@g10code.de> 2004-08-16 Werner Koch <wk@g10code.de>
* configure.ac: Build Makefile for tests/pkits. New option * configure.ac: Build Makefile for tests/pkits. New option

8
README
View File

@ -19,8 +19,8 @@ BUILD INSTRUCTIONS
GnuPG 1.9 depends on the following packages: GnuPG 1.9 depends on the following packages:
libgpg-error (ftp://ftp.gnupg.org/gcrypt/alpha/libgpg-error/) libgpg-error (ftp://ftp.gnupg.org/gcrypt/libgpg-error/)
libgcrypt (ftp://ftp.gnupg.org/gcrypt/alpha/libgcrypt/) libgcrypt (ftp://ftp.gnupg.org/gcrypt/libgcrypt/)
libassuan (ftp://ftp.gnupg.org/gcrypt/alpha/libassuan/) libassuan (ftp://ftp.gnupg.org/gcrypt/alpha/libassuan/)
libksba (ftp://ftp.gnupg.org/gcrypt/alpha/libksba/) libksba (ftp://ftp.gnupg.org/gcrypt/alpha/libksba/)
@ -470,9 +470,9 @@ This requires that the gpg-agent is running.
HOW TO EXPORT A PRIVATE KEY HOW TO EXPORT A PRIVATE KEY
=========================== ===========================
There is also limited support to export a private key in PKCS-12 There is also limited support to export a private key in PKCS-12
format. However the certificate is not stored and there is no MAC applied. format. However there is no MAC applied.
gpgsm --call-protect-tool --p12-export foo.key >foo.p12 gpgsm --export-secret-key-p12 userIDey >foo.p12
SMARTCARD INTRO SMARTCARD INTRO

View File

@ -1,3 +1,7 @@
2004-09-30 Werner Koch <wk@g10code.com>
* Makefile.am: Adjusted from gettext 1.14.
2004-09-29 Werner Koch <wk@g10code.com> 2004-09-29 Werner Koch <wk@g10code.com>
* minip12.c (parse_bag_encrypted_data): Print error if a bad * minip12.c (parse_bag_encrypted_data): Print error if a bad

View File

@ -46,7 +46,7 @@ gpg_agent_SOURCES = \
gpg_agent_LDADD = ../jnlib/libjnlib.a ../common/libcommon.a \ gpg_agent_LDADD = ../jnlib/libjnlib.a ../common/libcommon.a \
$(LIBGCRYPT_LIBS) $(PTH_LIBS) $(LIBASSUAN_LIBS) \ $(LIBGCRYPT_LIBS) $(PTH_LIBS) $(LIBASSUAN_LIBS) \
-lgpg-error @INTLLIBS@ -lgpg-error @LIBINTL@
gpg_protect_tool_SOURCES = \ gpg_protect_tool_SOURCES = \
protect-tool.c \ protect-tool.c \
@ -55,6 +55,6 @@ gpg_protect_tool_SOURCES = \
gpg_protect_tool_LDADD = ../jnlib/libjnlib.a \ gpg_protect_tool_LDADD = ../jnlib/libjnlib.a \
../common/libcommon.a ../common/libsimple-pwquery.a \ ../common/libcommon.a ../common/libsimple-pwquery.a \
$(LIBGCRYPT_LIBS) -lgpg-error @INTLLIBS@ $(LIBGCRYPT_LIBS) -lgpg-error @LIBINTL@

View File

@ -685,7 +685,7 @@ AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME",
[A human readable text with the name of the OS]) [A human readable text with the name of the OS])
AM_GNU_GETTEXT_VERSION(0.12.1) AM_GNU_GETTEXT_VERSION(0.14.1)
if test "$try_gettext" = yes; then if test "$try_gettext" = yes; then
AM_GNU_GETTEXT(,[need-ngettext]) AM_GNU_GETTEXT(,[need-ngettext])
@ -1129,10 +1129,11 @@ scd/Makefile
tools/Makefile tools/Makefile
doc/Makefile doc/Makefile
tests/Makefile tests/Makefile
tests/pkits/Makefile
]) ])
AC_OUTPUT AC_OUTPUT
#tests/pkits/Makefile

View File

@ -1,3 +1,7 @@
2004-09-30 Werner Koch <wk@g10code.com>
* Makefile.am (LDADD): Adjusted for gettext 0.14.
2004-09-20 Werner Koch <wk@g10code.com> 2004-09-20 Werner Koch <wk@g10code.com>
* keyedit.c (show_key_with_all_names): Print the card S/N. * keyedit.c (show_key_with_all_names): Print the card S/N.

View File

@ -108,7 +108,7 @@ gpgv2_SOURCES = gpgv.c \
# ks-db.h \ # ks-db.h \
# $(common_source) # $(common_source)
LDADD = $(needed_libs) @INTLLIBS@ @CAPLIBS@ @ZLIBS@ @W32LIBS@ LDADD = $(needed_libs) @LIBINTL@ @CAPLIBS@ @ZLIBS@ @W32LIBS@
gpg2_LDADD = $(LIBGCRYPT_LIBS) $(LDADD) -lassuan -lgpg-error gpg2_LDADD = $(LIBGCRYPT_LIBS) $(LDADD) -lassuan -lgpg-error
gpgv2_LDADD = $(LIBGCRYPT_LIBS) $(LDADD) -lassuan -lgpg-error gpgv2_LDADD = $(LIBGCRYPT_LIBS) $(LDADD) -lassuan -lgpg-error

View File

@ -1,4 +1,4 @@
2003-05-22 GNU <bug-gnu-gettext@gnu.org> 2004-01-29 GNU <bug-gnu-gettext@gnu.org>
* Version 0.12.1 released. * Version 0.14.1 released.

View File

@ -73,6 +73,10 @@ HEADERS = \
eval-plural.h \ eval-plural.h \
localcharset.h \ localcharset.h \
relocatable.h \ relocatable.h \
xsize.h \
printf-args.h printf-args.c \
printf-parse.h wprintf-parse.h printf-parse.c \
vasnprintf.h vasnwprintf.h vasnprintf.c \
os2compat.h \ os2compat.h \
libgnuintl.h.in libgnuintl.h.in
SOURCES = \ SOURCES = \
@ -96,6 +100,7 @@ SOURCES = \
relocatable.c \ relocatable.c \
localename.c \ localename.c \
log.c \ log.c \
printf.c \
osdep.c \ osdep.c \
os2compat.c \ os2compat.c \
intl-compat.c intl-compat.c
@ -120,6 +125,7 @@ OBJECTS = \
relocatable.$lo \ relocatable.$lo \
localename.$lo \ localename.$lo \
log.$lo \ log.$lo \
printf.$lo \
osdep.$lo \ osdep.$lo \
intl-compat.$lo intl-compat.$lo
DISTFILES.common = Makefile.in \ DISTFILES.common = Makefile.in \
@ -127,7 +133,8 @@ config.charset locale.alias ref-add.sin ref-del.sin $(HEADERS) $(SOURCES)
DISTFILES.generated = plural.c DISTFILES.generated = plural.c
DISTFILES.normal = VERSION DISTFILES.normal = VERSION
DISTFILES.gettext = COPYING.LIB-2.0 COPYING.LIB-2.1 libintl.glibc \ DISTFILES.gettext = COPYING.LIB-2.0 COPYING.LIB-2.1 libintl.glibc \
Makefile.vms libgnuintl.h.msvc-shared README.woe32 Makefile.msvc libgnuintl.h_vms Makefile.vms \
libgnuintl.h.msvc-static libgnuintl.h.msvc-shared README.woe32 Makefile.msvc
DISTFILES.obsolete = xopen-msg.sed linux-msg.sed po2tbl.sed.in cat-compat.c \ DISTFILES.obsolete = xopen-msg.sed linux-msg.sed po2tbl.sed.in cat-compat.c \
COPYING.LIB-2 gettext.h libgettext.h plural-eval.c libgnuintl.h COPYING.LIB-2 gettext.h libgettext.h plural-eval.c libgnuintl.h
@ -155,9 +162,9 @@ libintl.la libgnuintl.la: $(OBJECTS)
# according to the libtool documentation, section "Library interface versions". # according to the libtool documentation, section "Library interface versions".
# Maintainers of other packages that include the intl directory must *not* # Maintainers of other packages that include the intl directory must *not*
# change these values. # change these values.
LTV_CURRENT=5 LTV_CURRENT=7
LTV_REVISION=0 LTV_REVISION=0
LTV_AGE=3 LTV_AGE=4
.SUFFIXES: .SUFFIXES:
.SUFFIXES: .c .y .o .lo .sin .sed .SUFFIXES: .c .y .o .lo .sin .sed
@ -209,6 +216,8 @@ localename.lo: $(srcdir)/localename.c
$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localename.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localename.c
log.lo: $(srcdir)/log.c log.lo: $(srcdir)/log.c
$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/log.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/log.c
printf.lo: $(srcdir)/printf.c
$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/printf.c
osdep.lo: $(srcdir)/osdep.c osdep.lo: $(srcdir)/osdep.c
$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/osdep.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/osdep.c
intl-compat.lo: $(srcdir)/intl-compat.c intl-compat.lo: $(srcdir)/intl-compat.c
@ -224,7 +233,11 @@ ref-del.sed: $(srcdir)/ref-del.sin
INCLUDES = -I. -I$(srcdir) -I.. INCLUDES = -I. -I$(srcdir) -I..
libgnuintl.h: $(srcdir)/libgnuintl.h.in libgnuintl.h: $(srcdir)/libgnuintl.h.in
cp $(srcdir)/libgnuintl.h.in libgnuintl.h sed -e 's,@''HAVE_POSIX_PRINTF''@,@HAVE_POSIX_PRINTF@,g' \
-e 's,@''HAVE_ASPRINTF''@,@HAVE_ASPRINTF@,g' \
-e 's,@''HAVE_SNPRINTF''@,@HAVE_SNPRINTF@,g' \
-e 's,@''HAVE_WPRINTF''@,@HAVE_WPRINTF@,g' \
< $(srcdir)/libgnuintl.h.in > libgnuintl.h
libintl.h: libgnuintl.h libintl.h: libgnuintl.h
cp libgnuintl.h libintl.h cp libgnuintl.h libintl.h
@ -250,7 +263,7 @@ install-exec: all
$(INSTALL_DATA) libintl.$la $(DESTDIR)$(libdir)/libintl.$la; \ $(INSTALL_DATA) libintl.$la $(DESTDIR)$(libdir)/libintl.$la; \
if test "@RELOCATABLE@" = yes; then \ if test "@RELOCATABLE@" = yes; then \
dependencies=`sed -n -e 's,^dependency_libs=\(.*\),\1,p' < $(DESTDIR)$(libdir)/libintl.la | sed -e "s,^',," -e "s,'\$$,,"`; \ dependencies=`sed -n -e 's,^dependency_libs=\(.*\),\1,p' < $(DESTDIR)$(libdir)/libintl.la | sed -e "s,^',," -e "s,'\$$,,"`; \
if test -n "$dependencies"; then \ if test -n "$$dependencies"; then \
rm -f $(DESTDIR)$(libdir)/libintl.la; \ rm -f $(DESTDIR)$(libdir)/libintl.la; \
fi; \ fi; \
fi; \ fi; \
@ -412,6 +425,7 @@ dcigettext.$lo loadmsgcat.$lo plural.$lo plural-exp.$lo: $(srcdir)/plural-exp.h
dcigettext.$lo: $(srcdir)/eval-plural.h dcigettext.$lo: $(srcdir)/eval-plural.h
localcharset.$lo: $(srcdir)/localcharset.h localcharset.$lo: $(srcdir)/localcharset.h
localealias.$lo localcharset.$lo relocatable.$lo: $(srcdir)/relocatable.h localealias.$lo localcharset.$lo relocatable.$lo: $(srcdir)/relocatable.h
printf.$lo: $(srcdir)/printf-args.h $(srcdir)/printf-args.c $(srcdir)/printf-parse.h $(srcdir)/wprintf-parse.h $(srcdir)/xsize.h $(srcdir)/printf-parse.c $(srcdir)/vasnprintf.h $(srcdir)/vasnwprintf.h $(srcdir)/vasnprintf.c
tags: TAGS tags: TAGS

View File

@ -1 +1 @@
GNU gettext library from gettext-0.12.1 GNU gettext library from gettext-0.14.1

View File

@ -1,5 +1,5 @@
/* Implementation of the bindtextdomain(3) function /* Implementation of the bindtextdomain(3) function
Copyright (C) 1995-1998, 2000, 2001, 2002 Free Software Foundation, Inc. Copyright (C) 1995-1998, 2000-2003 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published under the terms of the GNU Library General Public License as published
@ -86,11 +86,6 @@ __libc_rwlock_define (extern, _nl_state_lock attribute_hidden)
# define BIND_TEXTDOMAIN_CODESET libintl_bind_textdomain_codeset # define BIND_TEXTDOMAIN_CODESET libintl_bind_textdomain_codeset
#endif #endif
/* Prototypes for local functions. */
static void set_binding_values PARAMS ((const char *domainname,
const char **dirnamep,
const char **codesetp));
/* Specifies the directory name *DIRNAMEP and the output codeset *CODESETP /* Specifies the directory name *DIRNAMEP and the output codeset *CODESETP
to be used for the DOMAINNAME message catalog. to be used for the DOMAINNAME message catalog.
If *DIRNAMEP or *CODESETP is NULL, the corresponding attribute is not If *DIRNAMEP or *CODESETP is NULL, the corresponding attribute is not
@ -98,10 +93,8 @@ static void set_binding_values PARAMS ((const char *domainname,
If DIRNAMEP or CODESETP is NULL, the corresponding attribute is neither If DIRNAMEP or CODESETP is NULL, the corresponding attribute is neither
modified nor returned. */ modified nor returned. */
static void static void
set_binding_values (domainname, dirnamep, codesetp) set_binding_values (const char *domainname,
const char *domainname; const char **dirnamep, const char **codesetp)
const char **dirnamep;
const char **codesetp;
{ {
struct binding *binding; struct binding *binding;
int modified; int modified;
@ -348,9 +341,7 @@ set_binding_values (domainname, dirnamep, codesetp)
/* Specify that the DOMAINNAME message catalog will be found /* Specify that the DOMAINNAME message catalog will be found
in DIRNAME rather than in the system locale data base. */ in DIRNAME rather than in the system locale data base. */
char * char *
BINDTEXTDOMAIN (domainname, dirname) BINDTEXTDOMAIN (const char *domainname, const char *dirname)
const char *domainname;
const char *dirname;
{ {
set_binding_values (domainname, &dirname, NULL); set_binding_values (domainname, &dirname, NULL);
return (char *) dirname; return (char *) dirname;
@ -359,9 +350,7 @@ BINDTEXTDOMAIN (domainname, dirname)
/* Specify the character encoding in which the messages from the /* Specify the character encoding in which the messages from the
DOMAINNAME message catalog will be returned. */ DOMAINNAME message catalog will be returned. */
char * char *
BIND_TEXTDOMAIN_CODESET (domainname, codeset) BIND_TEXTDOMAIN_CODESET (const char *domainname, const char *codeset)
const char *domainname;
const char *codeset;
{ {
set_binding_values (domainname, NULL, &codeset); set_binding_values (domainname, NULL, &codeset);
return (char *) codeset; return (char *) codeset;

View File

@ -1,7 +1,7 @@
#! /bin/sh #! /bin/sh
# Output a system dependent table of character encoding aliases. # Output a system dependent table of character encoding aliases.
# #
# Copyright (C) 2000-2003 Free Software Foundation, Inc. # Copyright (C) 2000-2004 Free Software Foundation, Inc.
# #
# This program is free software; you can redistribute it and/or modify it # This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU Library General Public License as published # under the terms of the GNU Library General Public License as published
@ -30,77 +30,77 @@
# MIME charset name is preferred. # MIME charset name is preferred.
# The current list of GNU canonical charset names is as follows. # The current list of GNU canonical charset names is as follows.
# #
# name used by which systems a MIME name? # name MIME? used by which systems
# ASCII, ANSI_X3.4-1968 glibc solaris freebsd # ASCII, ANSI_X3.4-1968 glibc solaris freebsd darwin
# ISO-8859-1 glibc aix hpux irix osf solaris freebsd yes # ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd darwin
# ISO-8859-2 glibc aix hpux irix osf solaris freebsd yes # ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd darwin
# ISO-8859-3 glibc solaris yes # ISO-8859-3 Y glibc solaris
# ISO-8859-4 osf solaris freebsd yes # ISO-8859-4 Y osf solaris freebsd darwin
# ISO-8859-5 glibc aix hpux irix osf solaris freebsd yes # ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd darwin
# ISO-8859-6 glibc aix hpux solaris yes # ISO-8859-6 Y glibc aix hpux solaris
# ISO-8859-7 glibc aix hpux irix osf solaris yes # ISO-8859-7 Y glibc aix hpux irix osf solaris
# ISO-8859-8 glibc aix hpux osf solaris yes # ISO-8859-8 Y glibc aix hpux osf solaris
# ISO-8859-9 glibc aix hpux irix osf solaris yes # ISO-8859-9 Y glibc aix hpux irix osf solaris
# ISO-8859-13 glibc # ISO-8859-13 glibc
# ISO-8859-14 glibc # ISO-8859-14 glibc
# ISO-8859-15 glibc aix osf solaris freebsd # ISO-8859-15 glibc aix osf solaris freebsd
# KOI8-R glibc solaris freebsd yes # KOI8-R Y glibc solaris freebsd darwin
# KOI8-U glibc freebsd yes # KOI8-U Y glibc freebsd darwin
# KOI8-T glibc # KOI8-T glibc
# CP437 dos # CP437 dos
# CP775 dos # CP775 dos
# CP850 aix osf dos # CP850 aix osf dos
# CP852 dos # CP852 dos
# CP855 dos # CP855 dos
# CP856 aix # CP856 aix
# CP857 dos # CP857 dos
# CP861 dos # CP861 dos
# CP862 dos # CP862 dos
# CP864 dos # CP864 dos
# CP865 dos # CP865 dos
# CP866 freebsd dos # CP866 freebsd darwin dos
# CP869 dos # CP869 dos
# CP874 woe32 dos # CP874 woe32 dos
# CP922 aix # CP922 aix
# CP932 aix woe32 dos # CP932 aix woe32 dos
# CP943 aix # CP943 aix
# CP949 osf woe32 dos # CP949 osf woe32 dos
# CP950 woe32 dos # CP950 woe32 dos
# CP1046 aix # CP1046 aix
# CP1124 aix # CP1124 aix
# CP1125 dos # CP1125 dos
# CP1129 aix # CP1129 aix
# CP1250 woe32 # CP1250 woe32
# CP1251 glibc solaris woe32 # CP1251 glibc solaris darwin woe32
# CP1252 aix woe32 # CP1252 aix woe32
# CP1253 woe32 # CP1253 woe32
# CP1254 woe32 # CP1254 woe32
# CP1255 glibc woe32 # CP1255 glibc woe32
# CP1256 woe32 # CP1256 woe32
# CP1257 woe32 # CP1257 woe32
# GB2312 glibc aix hpux irix solaris freebsd yes # GB2312 Y glibc aix hpux irix solaris freebsd darwin
# EUC-JP glibc aix hpux irix osf solaris freebsd yes # EUC-JP Y glibc aix hpux irix osf solaris freebsd darwin
# EUC-KR glibc aix hpux irix osf solaris freebsd yes # EUC-KR Y glibc aix hpux irix osf solaris freebsd darwin
# EUC-TW glibc aix hpux irix osf solaris # EUC-TW glibc aix hpux irix osf solaris
# BIG5 glibc aix hpux osf solaris freebsd yes # BIG5 Y glibc aix hpux osf solaris freebsd darwin
# BIG5-HKSCS glibc solaris # BIG5-HKSCS glibc solaris
# GBK glibc aix osf solaris woe32 dos # GBK glibc aix osf solaris woe32 dos
# GB18030 glibc solaris # GB18030 glibc solaris
# SHIFT_JIS hpux osf solaris freebsd yes # SHIFT_JIS Y hpux osf solaris freebsd darwin
# JOHAB glibc solaris woe32 # JOHAB glibc solaris woe32
# TIS-620 glibc aix hpux osf solaris # TIS-620 glibc aix hpux osf solaris
# VISCII glibc yes # VISCII Y glibc
# TCVN5712-1 glibc # TCVN5712-1 glibc
# GEORGIAN-PS glibc # GEORGIAN-PS glibc
# HP-ROMAN8 hpux # HP-ROMAN8 hpux
# HP-ARABIC8 hpux # HP-ARABIC8 hpux
# HP-GREEK8 hpux # HP-GREEK8 hpux
# HP-HEBREW8 hpux # HP-HEBREW8 hpux
# HP-TURKISH8 hpux # HP-TURKISH8 hpux
# HP-KANA8 hpux # HP-KANA8 hpux
# DEC-KANJI osf # DEC-KANJI osf
# DEC-HANYU osf # DEC-HANYU osf
# UTF-8 glibc aix hpux osf solaris yes # UTF-8 Y glibc aix hpux osf solaris
# #
# Note: Names which are not marked as being a MIME name should not be used in # Note: Names which are not marked as being a MIME name should not be used in
# Internet protocols for information interchange (mail, news, etc.). # Internet protocols for information interchange (mail, news, etc.).
@ -121,6 +121,105 @@ echo "# It was automatically generated from config.charset."
# List of references, updated during installation: # List of references, updated during installation:
echo "# Packages using this file: " echo "# Packages using this file: "
case "$os" in case "$os" in
linux-gnulibc1*)
# Linux libc5 doesn't have nl_langinfo(CODESET); therefore
# localcharset.c falls back to using the full locale name
# from the environment variables.
echo "C ASCII"
echo "POSIX ASCII"
for l in af af_ZA ca ca_ES da da_DK de de_AT de_BE de_CH de_DE de_LU \
en en_AU en_BW en_CA en_DK en_GB en_IE en_NZ en_US en_ZA \
en_ZW es es_AR es_BO es_CL es_CO es_DO es_EC es_ES es_GT \
es_HN es_MX es_PA es_PE es_PY es_SV es_US es_UY es_VE et \
et_EE eu eu_ES fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR \
fr_LU ga ga_IE gl gl_ES id id_ID in in_ID is is_IS it it_CH \
it_IT kl kl_GL nl nl_BE nl_NL no no_NO pt pt_BR pt_PT sv \
sv_FI sv_SE; do
echo "$l ISO-8859-1"
echo "$l.iso-8859-1 ISO-8859-1"
echo "$l.iso-8859-15 ISO-8859-15"
echo "$l.iso-8859-15@euro ISO-8859-15"
echo "$l@euro ISO-8859-15"
echo "$l.cp-437 CP437"
echo "$l.cp-850 CP850"
echo "$l.cp-1252 CP1252"
echo "$l.cp-1252@euro CP1252"
#echo "$l.atari-st ATARI-ST" # not a commonly used encoding
echo "$l.utf-8 UTF-8"
echo "$l.utf-8@euro UTF-8"
done
for l in cs cs_CZ hr hr_HR hu hu_HU pl pl_PL ro ro_RO sk sk_SK sl \
sl_SI sr sr_CS sr_YU; do
echo "$l ISO-8859-2"
echo "$l.iso-8859-2 ISO-8859-2"
echo "$l.cp-852 CP852"
echo "$l.cp-1250 CP1250"
echo "$l.utf-8 UTF-8"
done
for l in mk mk_MK ru ru_RU; do
echo "$l ISO-8859-5"
echo "$l.iso-8859-5 ISO-8859-5"
echo "$l.koi8-r KOI8-R"
echo "$l.cp-866 CP866"
echo "$l.cp-1251 CP1251"
echo "$l.utf-8 UTF-8"
done
for l in ar ar_SA; do
echo "$l ISO-8859-6"
echo "$l.iso-8859-6 ISO-8859-6"
echo "$l.cp-864 CP864"
#echo "$l.cp-868 CP868" # not a commonly used encoding
echo "$l.cp-1256 CP1256"
echo "$l.utf-8 UTF-8"
done
for l in el el_GR gr gr_GR; do
echo "$l ISO-8859-7"
echo "$l.iso-8859-7 ISO-8859-7"
echo "$l.cp-869 CP869"
echo "$l.cp-1253 CP1253"
echo "$l.cp-1253@euro CP1253"
echo "$l.utf-8 UTF-8"
echo "$l.utf-8@euro UTF-8"
done
for l in he he_IL iw iw_IL; do
echo "$l ISO-8859-8"
echo "$l.iso-8859-8 ISO-8859-8"
echo "$l.cp-862 CP862"
echo "$l.cp-1255 CP1255"
echo "$l.utf-8 UTF-8"
done
for l in tr tr_TR; do
echo "$l ISO-8859-9"
echo "$l.iso-8859-9 ISO-8859-9"
echo "$l.cp-857 CP857"
echo "$l.cp-1254 CP1254"
echo "$l.utf-8 UTF-8"
done
for l in lt lt_LT lv lv_LV; do
#echo "$l BALTIC" # not a commonly used encoding, wrong encoding name
echo "$l ISO-8859-13"
done
for l in ru_UA uk uk_UA; do
echo "$l KOI8-U"
done
for l in zh zh_CN; do
#echo "$l GB_2312-80" # not a commonly used encoding, wrong encoding name
echo "$l GB2312"
done
for l in ja ja_JP ja_JP.EUC; do
echo "$l EUC-JP"
done
for l in ko ko_KR; do
echo "$l EUC-KR"
done
for l in th th_TH; do
echo "$l TIS-620"
done
for l in fa fa_IR; do
#echo "$l ISIRI-3342" # a broken encoding
echo "$l.utf-8 UTF-8"
done
;;
linux* | *-gnu*) linux* | *-gnu*)
# With glibc-2.1 or newer, we don't need any canonicalization, # With glibc-2.1 or newer, we don't need any canonicalization,
# because glibc has iconv and both glibc and libiconv support all # because glibc has iconv and both glibc and libiconv support all
@ -297,6 +396,47 @@ case "$os" in
echo "BIG5 BIG5" echo "BIG5 BIG5"
echo "SJIS SHIFT_JIS" echo "SJIS SHIFT_JIS"
;; ;;
darwin*)
# Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore
# localcharset.c falls back to using the full locale name
# from the environment variables.
echo "C ASCII"
for l in en_AU en_CA en_GB en_US la_LN; do
echo "$l.US-ASCII ASCII"
done
for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT nl_BE \
nl_NL no_NO pt_PT sv_SE; do
echo "$l ISO-8859-1"
echo "$l.ISO8859-1 ISO-8859-1"
echo "$l.ISO8859-15 ISO-8859-15"
done
for l in la_LN; do
echo "$l.ISO8859-1 ISO-8859-1"
echo "$l.ISO8859-15 ISO-8859-15"
done
for l in cs_CZ hr_HR hu_HU la_LN pl_PL sl_SI; do
echo "$l.ISO8859-2 ISO-8859-2"
done
for l in la_LN lt_LT; do
echo "$l.ISO8859-4 ISO-8859-4"
done
for l in ru_RU; do
echo "$l.KOI8-R KOI8-R"
echo "$l.ISO8859-5 ISO-8859-5"
echo "$l.CP866 CP866"
done
for l in bg_BG; do
echo "$l.CP1251 CP1251"
done
echo "uk_UA.KOI8-U KOI8-U"
echo "zh_TW.BIG5 BIG5"
echo "zh_TW.Big5 BIG5"
echo "zh_CN.EUC GB2312"
echo "ja_JP.EUC EUC-JP"
echo "ja_JP.SJIS SHIFT_JIS"
echo "ko_KR.EUC EUC-KR"
;;
beos*) beos*)
# BeOS has a single locale, and it has UTF-8 encoding. # BeOS has a single locale, and it has UTF-8 encoding.
echo "* UTF-8" echo "* UTF-8"
@ -410,6 +550,7 @@ case "$os" in
echo "sq CP852" echo "sq CP852"
echo "sq_AL CP852" echo "sq_AL CP852"
echo "sr CP852" # CP852 or CP866 or CP855 ?? echo "sr CP852" # CP852 or CP866 or CP855 ??
echo "sr_CS CP852" # CP852 or CP866 or CP855 ??
echo "sr_YU CP852" # CP852 or CP866 or CP855 ?? echo "sr_YU CP852" # CP852 or CP866 or CP855 ??
# ISO-8859-3 languages # ISO-8859-3 languages
echo "mt CP850" echo "mt CP850"

View File

@ -1,5 +1,5 @@
/* Implementation of the dcgettext(3) function. /* Implementation of the dcgettext(3) function.
Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc. Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published under the terms of the GNU Library General Public License as published
@ -44,10 +44,7 @@
/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
locale. */ locale. */
char * char *
DCGETTEXT (domainname, msgid, category) DCGETTEXT (const char *domainname, const char *msgid, int category)
const char *domainname;
const char *msgid;
int category;
{ {
return DCIGETTEXT (domainname, msgid, NULL, 0, 0, category); return DCIGETTEXT (domainname, msgid, NULL, 0, 0, category);
} }

View File

@ -148,13 +148,17 @@ extern int errno;
char *getwd (); char *getwd ();
# define getcwd(buf, max) getwd (buf) # define getcwd(buf, max) getwd (buf)
# else # else
# if VMS
# define getcwd(buf, max) (getcwd) (buf, max, 0)
# else
char *getcwd (); char *getcwd ();
# endif
# endif # endif
# ifndef HAVE_STPCPY # ifndef HAVE_STPCPY
static char *stpcpy PARAMS ((char *dest, const char *src)); static char *stpcpy (char *dest, const char *src);
# endif # endif
# ifndef HAVE_MEMPCPY # ifndef HAVE_MEMPCPY
static void *mempcpy PARAMS ((void *dest, const void *src, size_t n)); static void *mempcpy (void *dest, const void *src, size_t n);
# endif # endif
#endif #endif
@ -248,11 +252,8 @@ static void *root;
# endif # endif
/* Function to compare two entries in the table of known translations. */ /* Function to compare two entries in the table of known translations. */
static int transcmp PARAMS ((const void *p1, const void *p2));
static int static int
transcmp (p1, p2) transcmp (const void *p1, const void *p2)
const void *p1;
const void *p2;
{ {
const struct known_translation_t *s1; const struct known_translation_t *s1;
const struct known_translation_t *s2; const struct known_translation_t *s2;
@ -304,19 +305,18 @@ INTVARDEF (_nl_default_dirname)
struct binding *_nl_domain_bindings; struct binding *_nl_domain_bindings;
/* Prototypes for local functions. */ /* Prototypes for local functions. */
static char *plural_lookup PARAMS ((struct loaded_l10nfile *domain, static char *plural_lookup (struct loaded_l10nfile *domain,
unsigned long int n, unsigned long int n,
const char *translation, const char *translation, size_t translation_len)
size_t translation_len))
internal_function; internal_function;
static const char *guess_category_value PARAMS ((int category, static const char *guess_category_value (int category,
const char *categoryname)) const char *categoryname)
internal_function; internal_function;
#ifdef _LIBC #ifdef _LIBC
# include "../locale/localeinfo.h" # include "../locale/localeinfo.h"
# define category_to_name(category) _nl_category_names[category] # define category_to_name(category) _nl_category_names[category]
#else #else
static const char *category_to_name PARAMS ((int category)) internal_function; static const char *category_to_name (int category) internal_function;
#endif #endif
@ -424,13 +424,8 @@ static int enable_secure;
CATEGORY locale and, if PLURAL is nonzero, search over string CATEGORY locale and, if PLURAL is nonzero, search over string
depending on the plural form determined by N. */ depending on the plural form determined by N. */
char * char *
DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category) DCIGETTEXT (const char *domainname, const char *msgid1, const char *msgid2,
const char *domainname; int plural, unsigned long int n, int category)
const char *msgid1;
const char *msgid2;
int plural;
unsigned long int n;
int category;
{ {
#ifndef HAVE_ALLOCA #ifndef HAVE_ALLOCA
struct block_list *block_list = NULL; struct block_list *block_list = NULL;
@ -703,11 +698,10 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)
#ifndef _LIBC #ifndef _LIBC
if (!ENABLE_SECURE) if (!ENABLE_SECURE)
{ {
extern void _nl_log_untranslated PARAMS ((const char *logfilename, extern void _nl_log_untranslated (const char *logfilename,
const char *domainname, const char *domainname,
const char *msgid1, const char *msgid1, const char *msgid2,
const char *msgid2, int plural);
int plural));
const char *logfilename = getenv ("GETTEXT_LOG_UNTRANSLATED"); const char *logfilename = getenv ("GETTEXT_LOG_UNTRANSLATED");
if (logfilename != NULL && logfilename[0] != '\0') if (logfilename != NULL && logfilename[0] != '\0')
@ -724,11 +718,9 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)
char * char *
internal_function internal_function
_nl_find_msg (domain_file, domainbinding, msgid, lengthp) _nl_find_msg (struct loaded_l10nfile *domain_file,
struct loaded_l10nfile *domain_file; struct binding *domainbinding, const char *msgid,
struct binding *domainbinding; size_t *lengthp)
const char *msgid;
size_t *lengthp;
{ {
struct loaded_domain *domain; struct loaded_domain *domain;
nls_uint32 nstrings; nls_uint32 nstrings;
@ -1035,11 +1027,8 @@ _nl_find_msg (domain_file, domainbinding, msgid, lengthp)
/* Look up a plural variant. */ /* Look up a plural variant. */
static char * static char *
internal_function internal_function
plural_lookup (domain, n, translation, translation_len) plural_lookup (struct loaded_l10nfile *domain, unsigned long int n,
struct loaded_l10nfile *domain; const char *translation, size_t translation_len)
unsigned long int n;
const char *translation;
size_t translation_len;
{ {
struct loaded_domain *domaindata = (struct loaded_domain *) domain->data; struct loaded_domain *domaindata = (struct loaded_domain *) domain->data;
unsigned long int index; unsigned long int index;
@ -1076,8 +1065,7 @@ plural_lookup (domain, n, translation, translation_len)
/* Return string representation of locale CATEGORY. */ /* Return string representation of locale CATEGORY. */
static const char * static const char *
internal_function internal_function
category_to_name (category) category_to_name (int category)
int category;
{ {
const char *retval; const char *retval;
@ -1137,9 +1125,7 @@ category_to_name (category)
/* Guess value of current locale from value of the environment variables. */ /* Guess value of current locale from value of the environment variables. */
static const char * static const char *
internal_function internal_function
guess_category_value (category, categoryname) guess_category_value (int category, const char *categoryname)
int category;
const char *categoryname;
{ {
const char *language; const char *language;
const char *retval; const char *retval;
@ -1180,9 +1166,7 @@ guess_category_value (category, categoryname)
to be defined. */ to be defined. */
#if !_LIBC && !HAVE_STPCPY #if !_LIBC && !HAVE_STPCPY
static char * static char *
stpcpy (dest, src) stpcpy (char *dest, const char *src)
char *dest;
const char *src;
{ {
while ((*dest++ = *src++) != '\0') while ((*dest++ = *src++) != '\0')
/* Do nothing. */ ; /* Do nothing. */ ;
@ -1192,10 +1176,7 @@ stpcpy (dest, src)
#if !_LIBC && !HAVE_MEMPCPY #if !_LIBC && !HAVE_MEMPCPY
static void * static void *
mempcpy (dest, src, n) mempcpy (void *dest, const void *src, size_t n)
void *dest;
const void *src;
size_t n;
{ {
return (void *) ((char *) memcpy (dest, src, n) + n); return (void *) ((char *) memcpy (dest, src, n) + n);
} }

View File

@ -1,5 +1,5 @@
/* Implementation of the dcngettext(3) function. /* Implementation of the dcngettext(3) function.
Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc. Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published under the terms of the GNU Library General Public License as published
@ -44,12 +44,9 @@
/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
locale. */ locale. */
char * char *
DCNGETTEXT (domainname, msgid1, msgid2, n, category) DCNGETTEXT (const char *domainname,
const char *domainname; const char *msgid1, const char *msgid2, unsigned long int n,
const char *msgid1; int category)
const char *msgid2;
unsigned long int n;
int category;
{ {
return DCIGETTEXT (domainname, msgid1, msgid2, 1, n, category); return DCIGETTEXT (domainname, msgid1, msgid2, 1, n, category);
} }

View File

@ -1,5 +1,5 @@
/* Implementation of the dgettext(3) function. /* Implementation of the dgettext(3) function.
Copyright (C) 1995-1997, 2000, 2001, 2002 Free Software Foundation, Inc. Copyright (C) 1995-1997, 2000-2003 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published under the terms of the GNU Library General Public License as published
@ -20,9 +20,10 @@
# include <config.h> # include <config.h>
#endif #endif
#include "gettextP.h"
#include <locale.h> #include <locale.h>
#include "gettextP.h"
#ifdef _LIBC #ifdef _LIBC
# include <libintl.h> # include <libintl.h>
#else #else
@ -46,9 +47,7 @@
/* Look up MSGID in the DOMAINNAME message catalog of the current /* Look up MSGID in the DOMAINNAME message catalog of the current
LC_MESSAGES locale. */ LC_MESSAGES locale. */
char * char *
DGETTEXT (domainname, msgid) DGETTEXT (const char *domainname, const char *msgid)
const char *domainname;
const char *msgid;
{ {
return DCGETTEXT (domainname, msgid, LC_MESSAGES); return DCGETTEXT (domainname, msgid, LC_MESSAGES);
} }

View File

@ -1,5 +1,5 @@
/* Implementation of the dngettext(3) function. /* Implementation of the dngettext(3) function.
Copyright (C) 1995-1997, 2000, 2001, 2002 Free Software Foundation, Inc. Copyright (C) 1995-1997, 2000-2003 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published under the terms of the GNU Library General Public License as published
@ -20,9 +20,10 @@
# include <config.h> # include <config.h>
#endif #endif
#include "gettextP.h"
#include <locale.h> #include <locale.h>
#include "gettextP.h"
#ifdef _LIBC #ifdef _LIBC
# include <libintl.h> # include <libintl.h>
#else #else
@ -46,11 +47,8 @@
/* Look up MSGID in the DOMAINNAME message catalog of the current /* Look up MSGID in the DOMAINNAME message catalog of the current
LC_MESSAGES locale and skip message according to the plural form. */ LC_MESSAGES locale and skip message according to the plural form. */
char * char *
DNGETTEXT (domainname, msgid1, msgid2, n) DNGETTEXT (const char *domainname,
const char *domainname; const char *msgid1, const char *msgid2, unsigned long int n)
const char *msgid1;
const char *msgid2;
unsigned long int n;
{ {
return DCNGETTEXT (domainname, msgid1, msgid2, n, LC_MESSAGES); return DCNGETTEXT (domainname, msgid1, msgid2, n, LC_MESSAGES);
} }

View File

@ -1,5 +1,5 @@
/* Plural expression evaluation. /* Plural expression evaluation.
Copyright (C) 2000-2002 Free Software Foundation, Inc. Copyright (C) 2000-2003 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published under the terms of the GNU Library General Public License as published
@ -21,16 +21,10 @@
#endif #endif
/* Evaluate the plural expression and return an index value. */ /* Evaluate the plural expression and return an index value. */
STATIC unsigned long int plural_eval PARAMS ((struct expression *pexp,
unsigned long int n))
internal_function;
STATIC STATIC
unsigned long int unsigned long int
internal_function internal_function
plural_eval (pexp, n) plural_eval (struct expression *pexp, unsigned long int n)
struct expression *pexp;
unsigned long int n;
{ {
switch (pexp->nargs) switch (pexp->nargs)
{ {

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc. /* Copyright (C) 1995-1998, 2000-2001, 2003 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
@ -38,8 +38,7 @@
/* @@ end of prolog @@ */ /* @@ end of prolog @@ */
char * char *
_nl_find_language (name) _nl_find_language (const char *name)
const char *name;
{ {
while (name[0] != '\0' && name[0] != '_' && name[0] != '@' while (name[0] != '\0' && name[0] != '_' && name[0] != '@'
&& name[0] != '+' && name[0] != ',') && name[0] != '+' && name[0] != ',')
@ -50,17 +49,11 @@ _nl_find_language (name)
int int
_nl_explode_name (name, language, modifier, territory, codeset, _nl_explode_name (char *name,
normalized_codeset, special, sponsor, revision) const char **language, const char **modifier,
char *name; const char **territory, const char **codeset,
const char **language; const char **normalized_codeset, const char **special,
const char **modifier; const char **sponsor, const char **revision)
const char **territory;
const char **codeset;
const char **normalized_codeset;
const char **special;
const char **sponsor;
const char **revision;
{ {
enum { undecided, xpg, cen } syntax; enum { undecided, xpg, cen } syntax;
char *cp; char *cp;

View File

@ -1,5 +1,5 @@
/* Handle list of needed message catalogs /* Handle list of needed message catalogs
Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc. Copyright (C) 1995-1999, 2000-2001, 2003 Free Software Foundation, Inc.
Written by Ulrich Drepper <drepper@gnu.org>, 1995. Written by Ulrich Drepper <drepper@gnu.org>, 1995.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
@ -47,11 +47,8 @@ static struct loaded_l10nfile *_nl_loaded_domains;
established bindings. */ established bindings. */
struct loaded_l10nfile * struct loaded_l10nfile *
internal_function internal_function
_nl_find_domain (dirname, locale, domainname, domainbinding) _nl_find_domain (const char *dirname, char *locale,
const char *dirname; const char *domainname, struct binding *domainbinding)
char *locale;
const char *domainname;
struct binding *domainbinding;
{ {
struct loaded_l10nfile *retval; struct loaded_l10nfile *retval;
const char *language; const char *language;

View File

@ -1,5 +1,5 @@
/* Implementation of gettext(3) function. /* Implementation of gettext(3) function.
Copyright (C) 1995, 1997, 2000, 2001, 2002 Free Software Foundation, Inc. Copyright (C) 1995, 1997, 2000-2003 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published under the terms of the GNU Library General Public License as published
@ -52,8 +52,7 @@
LC_MESSAGES locale. If not found, returns MSGID itself (the default LC_MESSAGES locale. If not found, returns MSGID itself (the default
text). */ text). */
char * char *
GETTEXT (msgid) GETTEXT (const char *msgid)
const char *msgid;
{ {
return DCGETTEXT (NULL, msgid, LC_MESSAGES); return DCGETTEXT (NULL, msgid, LC_MESSAGES);
} }

View File

@ -36,14 +36,6 @@
/* @@ end of prolog @@ */ /* @@ end of prolog @@ */
#ifndef PARAMS
# if __STDC__ || defined __GNUC__ || defined __SUNPRO_C || defined __cplusplus || __PROTOTYPES
# define PARAMS(args) args
# else
# define PARAMS(args) ()
# endif
#endif
#ifndef internal_function #ifndef internal_function
# define internal_function # define internal_function
#endif #endif
@ -159,64 +151,63 @@ struct binding
extern int _nl_msg_cat_cntr; extern int _nl_msg_cat_cntr;
#ifndef _LIBC #ifndef _LIBC
const char *_nl_locale_name PARAMS ((int category, const char *categoryname)); const char *_nl_locale_name (int category, const char *categoryname);
#endif #endif
struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname, struct loaded_l10nfile *_nl_find_domain (const char *__dirname, char *__locale,
char *__locale, const char *__domainname,
const char *__domainname, struct binding *__domainbinding)
struct binding *__domainbinding))
internal_function; internal_function;
void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain, void _nl_load_domain (struct loaded_l10nfile *__domain,
struct binding *__domainbinding)) struct binding *__domainbinding)
internal_function; internal_function;
void _nl_unload_domain PARAMS ((struct loaded_domain *__domain)) void _nl_unload_domain (struct loaded_domain *__domain)
internal_function; internal_function;
const char *_nl_init_domain_conv PARAMS ((struct loaded_l10nfile *__domain_file, const char *_nl_init_domain_conv (struct loaded_l10nfile *__domain_file,
struct loaded_domain *__domain, struct loaded_domain *__domain,
struct binding *__domainbinding)) struct binding *__domainbinding)
internal_function; internal_function;
void _nl_free_domain_conv PARAMS ((struct loaded_domain *__domain)) void _nl_free_domain_conv (struct loaded_domain *__domain)
internal_function; internal_function;
char *_nl_find_msg PARAMS ((struct loaded_l10nfile *domain_file, char *_nl_find_msg (struct loaded_l10nfile *domain_file,
struct binding *domainbinding, struct binding *domainbinding, const char *msgid,
const char *msgid, size_t *lengthp)) size_t *lengthp)
internal_function; internal_function;
#ifdef _LIBC #ifdef _LIBC
extern char *__gettext PARAMS ((const char *__msgid)); extern char *__gettext (const char *__msgid);
extern char *__dgettext PARAMS ((const char *__domainname, extern char *__dgettext (const char *__domainname, const char *__msgid);
const char *__msgid)); extern char *__dcgettext (const char *__domainname, const char *__msgid,
extern char *__dcgettext PARAMS ((const char *__domainname, int __category);
const char *__msgid, int __category)); extern char *__ngettext (const char *__msgid1, const char *__msgid2,
extern char *__ngettext PARAMS ((const char *__msgid1, const char *__msgid2, unsigned long int __n);
unsigned long int __n)); extern char *__dngettext (const char *__domainname,
extern char *__dngettext PARAMS ((const char *__domainname, const char *__msgid1, const char *__msgid2,
const char *__msgid1, const char *__msgid2, unsigned long int n);
unsigned long int n)); extern char *__dcngettext (const char *__domainname,
extern char *__dcngettext PARAMS ((const char *__domainname, const char *__msgid1, const char *__msgid2,
const char *__msgid1, const char *__msgid2, unsigned long int __n, int __category);
unsigned long int __n, int __category)); extern char *__dcigettext (const char *__domainname,
extern char *__dcigettext PARAMS ((const char *__domainname, const char *__msgid1, const char *__msgid2,
const char *__msgid1, const char *__msgid2, int __plural, unsigned long int __n,
int __plural, unsigned long int __n, int __category);
int __category)); extern char *__textdomain (const char *__domainname);
extern char *__textdomain PARAMS ((const char *__domainname)); extern char *__bindtextdomain (const char *__domainname,
extern char *__bindtextdomain PARAMS ((const char *__domainname, const char *__dirname);
const char *__dirname)); extern char *__bind_textdomain_codeset (const char *__domainname,
extern char *__bind_textdomain_codeset PARAMS ((const char *__domainname, const char *__codeset);
const char *__codeset));
#else #else
/* Declare the exported libintl_* functions, in a way that allows us to /* Declare the exported libintl_* functions, in a way that allows us to
call them under their real name. */ call them under their real name. */
# undef _INTL_REDIRECT_INLINE
# undef _INTL_REDIRECT_MACROS
# define _INTL_REDIRECT_MACROS # define _INTL_REDIRECT_MACROS
# include "libgnuintl.h" # include "libgnuintl.h"
extern char *libintl_dcigettext PARAMS ((const char *__domainname, extern char *libintl_dcigettext (const char *__domainname,
const char *__msgid1, const char *__msgid1, const char *__msgid2,
const char *__msgid2, int __plural, unsigned long int __n,
int __plural, unsigned long int __n, int __category);
int __category));
#endif #endif
/* @@ begin of epilog @@ */ /* @@ begin of epilog @@ */

View File

@ -1,5 +1,5 @@
/* Description of GNU message catalog format: general file layout. /* Description of GNU message catalog format: general file layout.
Copyright (C) 1995, 1997, 2000-2002 Free Software Foundation, Inc. Copyright (C) 1995, 1997, 2000-2002, 2004 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published under the terms of the GNU Library General Public License as published
@ -29,6 +29,7 @@
/* Revision number of the currently used .mo (binary) file format. */ /* Revision number of the currently used .mo (binary) file format. */
#define MO_REVISION_NUMBER 0 #define MO_REVISION_NUMBER 0
#define MO_REVISION_NUMBER_WITH_SYSDEP_I 1
/* The following contortions are an attempt to use the C preprocessor /* The following contortions are an attempt to use the C preprocessor
to determine an unsigned integral type that is 32 bits wide. An to determine an unsigned integral type that is 32 bits wide. An
@ -76,7 +77,7 @@ struct mo_file_header
/* The revision number of the file format. */ /* The revision number of the file format. */
nls_uint32 revision; nls_uint32 revision;
/* The following are only used in .mo files with major revision 0. */ /* The following are only used in .mo files with major revision 0 or 1. */
/* The number of strings pairs. */ /* The number of strings pairs. */
nls_uint32 nstrings; nls_uint32 nstrings;

View File

@ -1,5 +1,5 @@
/* Description of GNU message catalog format: string hashing function. /* Description of GNU message catalog format: string hashing function.
Copyright (C) 1995, 1997, 1998, 2000, 2001 Free Software Foundation, Inc. Copyright (C) 1995, 1997-1998, 2000-2003 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published under the terms of the GNU Library General Public License as published
@ -18,14 +18,6 @@
/* @@ end of prolog @@ */ /* @@ end of prolog @@ */
#ifndef PARAMS
# if __STDC__ || defined __GNUC__ || defined __SUNPRO_C || defined __cplusplus || __PROTOTYPES
# define PARAMS(Args) Args
# else
# define PARAMS(Args) ()
# endif
#endif
/* We assume to have `unsigned long int' value with at least 32 bits. */ /* We assume to have `unsigned long int' value with at least 32 bits. */
#define HASHWORDBITS 32 #define HASHWORDBITS 32
@ -33,11 +25,8 @@
/* Defines the so called `hashpjw' function by P.J. Weinberger /* Defines the so called `hashpjw' function by P.J. Weinberger
[see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools, [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools,
1986, 1987 Bell Telephone Laboratories, Inc.] */ 1986, 1987 Bell Telephone Laboratories, Inc.] */
static unsigned long int hash_string PARAMS ((const char *__str_param));
static inline unsigned long int static inline unsigned long int
hash_string (str_param) hash_string (const char *str_param)
const char *str_param;
{ {
unsigned long int hval, g; unsigned long int hval, g;
const char *str = str_param; const char *str = str_param;
@ -47,7 +36,7 @@ hash_string (str_param)
while (*str != '\0') while (*str != '\0')
{ {
hval <<= 4; hval <<= 4;
hval += (unsigned long int) *str++; hval += (unsigned char) *str++;
g = hval & ((unsigned long int) 0xf << (HASHWORDBITS - 4)); g = hval & ((unsigned long int) 0xf << (HASHWORDBITS - 4));
if (g != 0) if (g != 0)
{ {

View File

@ -58,8 +58,7 @@
DLL_EXPORTED DLL_EXPORTED
char * char *
gettext (msgid) gettext (const char *msgid)
const char *msgid;
{ {
return libintl_gettext (msgid); return libintl_gettext (msgid);
} }
@ -67,9 +66,7 @@ gettext (msgid)
DLL_EXPORTED DLL_EXPORTED
char * char *
dgettext (domainname, msgid) dgettext (const char *domainname, const char *msgid)
const char *domainname;
const char *msgid;
{ {
return libintl_dgettext (domainname, msgid); return libintl_dgettext (domainname, msgid);
} }
@ -77,10 +74,7 @@ dgettext (domainname, msgid)
DLL_EXPORTED DLL_EXPORTED
char * char *
dcgettext (domainname, msgid, category) dcgettext (const char *domainname, const char *msgid, int category)
const char *domainname;
const char *msgid;
int category;
{ {
return libintl_dcgettext (domainname, msgid, category); return libintl_dcgettext (domainname, msgid, category);
} }
@ -88,10 +82,7 @@ dcgettext (domainname, msgid, category)
DLL_EXPORTED DLL_EXPORTED
char * char *
ngettext (msgid1, msgid2, n) ngettext (const char *msgid1, const char *msgid2, unsigned long int n)
const char *msgid1;
const char *msgid2;
unsigned long int n;
{ {
return libintl_ngettext (msgid1, msgid2, n); return libintl_ngettext (msgid1, msgid2, n);
} }
@ -99,11 +90,8 @@ ngettext (msgid1, msgid2, n)
DLL_EXPORTED DLL_EXPORTED
char * char *
dngettext (domainname, msgid1, msgid2, n) dngettext (const char *domainname,
const char *domainname; const char *msgid1, const char *msgid2, unsigned long int n)
const char *msgid1;
const char *msgid2;
unsigned long int n;
{ {
return libintl_dngettext (domainname, msgid1, msgid2, n); return libintl_dngettext (domainname, msgid1, msgid2, n);
} }
@ -111,12 +99,9 @@ dngettext (domainname, msgid1, msgid2, n)
DLL_EXPORTED DLL_EXPORTED
char * char *
dcngettext (domainname, msgid1, msgid2, n, category) dcngettext (const char *domainname,
const char *domainname; const char *msgid1, const char *msgid2, unsigned long int n,
const char *msgid1; int category)
const char *msgid2;
unsigned long int n;
int category;
{ {
return libintl_dcngettext (domainname, msgid1, msgid2, n, category); return libintl_dcngettext (domainname, msgid1, msgid2, n, category);
} }
@ -124,8 +109,7 @@ dcngettext (domainname, msgid1, msgid2, n, category)
DLL_EXPORTED DLL_EXPORTED
char * char *
textdomain (domainname) textdomain (const char *domainname)
const char *domainname;
{ {
return libintl_textdomain (domainname); return libintl_textdomain (domainname);
} }
@ -133,9 +117,7 @@ textdomain (domainname)
DLL_EXPORTED DLL_EXPORTED
char * char *
bindtextdomain (domainname, dirname) bindtextdomain (const char *domainname, const char *dirname)
const char *domainname;
const char *dirname;
{ {
return libintl_bindtextdomain (domainname, dirname); return libintl_bindtextdomain (domainname, dirname);
} }
@ -143,9 +125,7 @@ bindtextdomain (domainname, dirname)
DLL_EXPORTED DLL_EXPORTED
char * char *
bind_textdomain_codeset (domainname, codeset) bind_textdomain_codeset (const char *domainname, const char *codeset)
const char *domainname;
const char *codeset;
{ {
return libintl_bind_textdomain_codeset (domainname, codeset); return libintl_bind_textdomain_codeset (domainname, codeset);
} }

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc. /* Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
@ -58,7 +58,7 @@
# endif # endif
#else #else
# ifndef HAVE_STPCPY # ifndef HAVE_STPCPY
static char *stpcpy PARAMS ((char *dest, const char *src)); static char *stpcpy (char *dest, const char *src);
# endif # endif
#endif #endif
@ -84,12 +84,8 @@ static char *stpcpy PARAMS ((char *dest, const char *src));
#if !defined _LIBC && !defined HAVE___ARGZ_COUNT #if !defined _LIBC && !defined HAVE___ARGZ_COUNT
/* Returns the number of strings in ARGZ. */ /* Returns the number of strings in ARGZ. */
static size_t argz_count__ PARAMS ((const char *argz, size_t len));
static size_t static size_t
argz_count__ (argz, len) argz_count__ (const char *argz, size_t len)
const char *argz;
size_t len;
{ {
size_t count = 0; size_t count = 0;
while (len > 0) while (len > 0)
@ -112,13 +108,8 @@ argz_count__ (argz, len)
#if !defined _LIBC && !defined HAVE___ARGZ_STRINGIFY #if !defined _LIBC && !defined HAVE___ARGZ_STRINGIFY
/* Make '\0' separated arg vector ARGZ printable by converting all the '\0's /* Make '\0' separated arg vector ARGZ printable by converting all the '\0's
except the last into the character SEP. */ except the last into the character SEP. */
static void argz_stringify__ PARAMS ((char *argz, size_t len, int sep));
static void static void
argz_stringify__ (argz, len, sep) argz_stringify__ (char *argz, size_t len, int sep)
char *argz;
size_t len;
int sep;
{ {
while (len > 0) while (len > 0)
{ {
@ -139,14 +130,8 @@ argz_stringify__ (argz, len, sep)
#endif /* !_LIBC && !HAVE___ARGZ_STRINGIFY */ #endif /* !_LIBC && !HAVE___ARGZ_STRINGIFY */
#if !defined _LIBC && !defined HAVE___ARGZ_NEXT #if !defined _LIBC && !defined HAVE___ARGZ_NEXT
static char *argz_next__ PARAMS ((char *argz, size_t argz_len,
const char *entry));
static char * static char *
argz_next__ (argz, argz_len, entry) argz_next__ (char *argz, size_t argz_len, const char *entry)
char *argz;
size_t argz_len;
const char *entry;
{ {
if (entry) if (entry)
{ {
@ -167,11 +152,8 @@ argz_next__ (argz, argz_len, entry)
/* Return number of bits set in X. */ /* Return number of bits set in X. */
static int pop PARAMS ((int x));
static inline int static inline int
pop (x) pop (int x)
int x;
{ {
/* We assume that no more than 16 bits are used. */ /* We assume that no more than 16 bits are used. */
x = ((x & ~0x5555) >> 1) + (x & 0x5555); x = ((x & ~0x5555) >> 1) + (x & 0x5555);
@ -184,23 +166,13 @@ pop (x)
struct loaded_l10nfile * struct loaded_l10nfile *
_nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language, _nl_make_l10nflist (struct loaded_l10nfile **l10nfile_list,
territory, codeset, normalized_codeset, modifier, special, const char *dirlist, size_t dirlist_len,
sponsor, revision, filename, do_allocate) int mask, const char *language, const char *territory,
struct loaded_l10nfile **l10nfile_list; const char *codeset, const char *normalized_codeset,
const char *dirlist; const char *modifier, const char *special,
size_t dirlist_len; const char *sponsor, const char *revision,
int mask; const char *filename, int do_allocate)
const char *language;
const char *territory;
const char *codeset;
const char *normalized_codeset;
const char *modifier;
const char *special;
const char *sponsor;
const char *revision;
const char *filename;
int do_allocate;
{ {
char *abs_filename; char *abs_filename;
struct loaded_l10nfile **lastp; struct loaded_l10nfile **lastp;
@ -393,9 +365,7 @@ _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
names. The return value is dynamically allocated and has to be names. The return value is dynamically allocated and has to be
freed by the caller. */ freed by the caller. */
const char * const char *
_nl_normalize_codeset (codeset, name_len) _nl_normalize_codeset (const char *codeset, size_t name_len)
const char *codeset;
size_t name_len;
{ {
int len = 0; int len = 0;
int only_digit = 1; int only_digit = 1;
@ -442,9 +412,7 @@ _nl_normalize_codeset (codeset, name_len)
to be defined. */ to be defined. */
#if !_LIBC && !HAVE_STPCPY #if !_LIBC && !HAVE_STPCPY
static char * static char *
stpcpy (dest, src) stpcpy (char *dest, const char *src)
char *dest;
const char *src;
{ {
while ((*dest++ = *src++) != '\0') while ((*dest++ = *src++) != '\0')
/* Do nothing. */ ; /* Do nothing. */ ;

View File

@ -47,16 +47,6 @@
# undef gettext # undef gettext
#endif #endif
/* Use _INTL_PARAMS, not PARAMS, in order to avoid clashes with identifiers
used by programs. Similarly, test __PROTOTYPES, not PROTOTYPES. */
#ifndef _INTL_PARAMS
# if __STDC__ || defined __GNUC__ || defined __SUNPRO_C || defined __cplusplus || __PROTOTYPES
# define _INTL_PARAMS(args) args
# else
# define _INTL_PARAMS(args) ()
# endif
#endif
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
@ -93,7 +83,7 @@ extern "C" {
If he doesn't, we choose the method. A third possible method is If he doesn't, we choose the method. A third possible method is
_INTL_REDIRECT_ASM, supported only by GCC. */ _INTL_REDIRECT_ASM, supported only by GCC. */
#if !(defined _INTL_REDIRECT_INLINE || defined _INTL_REDIRECT_MACROS) #if !(defined _INTL_REDIRECT_INLINE || defined _INTL_REDIRECT_MACROS)
# if __GNUC__ >= 2 && !defined __APPLE_CC__ && (defined __STDC__ || defined __cplusplus) # if __GNUC__ >= 2 && !defined __APPLE_CC__ && !defined __MINGW32__ && !(__GNUC__ == 2 && defined _AIX) && (defined __STDC__ || defined __cplusplus)
# define _INTL_REDIRECT_ASM # define _INTL_REDIRECT_ASM
# else # else
# ifdef __cplusplus # ifdef __cplusplus
@ -125,7 +115,7 @@ static inline char *gettext (const char *__msgid)
#ifdef _INTL_REDIRECT_MACROS #ifdef _INTL_REDIRECT_MACROS
# define gettext libintl_gettext # define gettext libintl_gettext
#endif #endif
extern char *gettext _INTL_PARAMS ((const char *__msgid)) extern char *gettext (const char *__msgid)
_INTL_ASM (libintl_gettext); _INTL_ASM (libintl_gettext);
#endif #endif
@ -141,8 +131,7 @@ static inline char *dgettext (const char *__domainname, const char *__msgid)
#ifdef _INTL_REDIRECT_MACROS #ifdef _INTL_REDIRECT_MACROS
# define dgettext libintl_dgettext # define dgettext libintl_dgettext
#endif #endif
extern char *dgettext _INTL_PARAMS ((const char *__domainname, extern char *dgettext (const char *__domainname, const char *__msgid)
const char *__msgid))
_INTL_ASM (libintl_dgettext); _INTL_ASM (libintl_dgettext);
#endif #endif
@ -160,9 +149,8 @@ static inline char *dcgettext (const char *__domainname, const char *__msgid,
#ifdef _INTL_REDIRECT_MACROS #ifdef _INTL_REDIRECT_MACROS
# define dcgettext libintl_dcgettext # define dcgettext libintl_dcgettext
#endif #endif
extern char *dcgettext _INTL_PARAMS ((const char *__domainname, extern char *dcgettext (const char *__domainname, const char *__msgid,
const char *__msgid, int __category)
int __category))
_INTL_ASM (libintl_dcgettext); _INTL_ASM (libintl_dcgettext);
#endif #endif
@ -181,9 +169,8 @@ static inline char *ngettext (const char *__msgid1, const char *__msgid2,
#ifdef _INTL_REDIRECT_MACROS #ifdef _INTL_REDIRECT_MACROS
# define ngettext libintl_ngettext # define ngettext libintl_ngettext
#endif #endif
extern char *ngettext _INTL_PARAMS ((const char *__msgid1, extern char *ngettext (const char *__msgid1, const char *__msgid2,
const char *__msgid2, unsigned long int __n)
unsigned long int __n))
_INTL_ASM (libintl_ngettext); _INTL_ASM (libintl_ngettext);
#endif #endif
@ -201,10 +188,9 @@ static inline char *dngettext (const char *__domainname, const char *__msgid1,
#ifdef _INTL_REDIRECT_MACROS #ifdef _INTL_REDIRECT_MACROS
# define dngettext libintl_dngettext # define dngettext libintl_dngettext
#endif #endif
extern char *dngettext _INTL_PARAMS ((const char *__domainname, extern char *dngettext (const char *__domainname,
const char *__msgid1, const char *__msgid1, const char *__msgid2,
const char *__msgid2, unsigned long int __n)
unsigned long int __n))
_INTL_ASM (libintl_dngettext); _INTL_ASM (libintl_dngettext);
#endif #endif
@ -224,11 +210,9 @@ static inline char *dcngettext (const char *__domainname,
#ifdef _INTL_REDIRECT_MACROS #ifdef _INTL_REDIRECT_MACROS
# define dcngettext libintl_dcngettext # define dcngettext libintl_dcngettext
#endif #endif
extern char *dcngettext _INTL_PARAMS ((const char *__domainname, extern char *dcngettext (const char *__domainname,
const char *__msgid1, const char *__msgid1, const char *__msgid2,
const char *__msgid2, unsigned long int __n, int __category)
unsigned long int __n,
int __category))
_INTL_ASM (libintl_dcngettext); _INTL_ASM (libintl_dcngettext);
#endif #endif
@ -246,7 +230,7 @@ static inline char *textdomain (const char *__domainname)
#ifdef _INTL_REDIRECT_MACROS #ifdef _INTL_REDIRECT_MACROS
# define textdomain libintl_textdomain # define textdomain libintl_textdomain
#endif #endif
extern char *textdomain _INTL_PARAMS ((const char *__domainname)) extern char *textdomain (const char *__domainname)
_INTL_ASM (libintl_textdomain); _INTL_ASM (libintl_textdomain);
#endif #endif
@ -264,8 +248,7 @@ static inline char *bindtextdomain (const char *__domainname,
#ifdef _INTL_REDIRECT_MACROS #ifdef _INTL_REDIRECT_MACROS
# define bindtextdomain libintl_bindtextdomain # define bindtextdomain libintl_bindtextdomain
#endif #endif
extern char *bindtextdomain _INTL_PARAMS ((const char *__domainname, extern char *bindtextdomain (const char *__domainname, const char *__dirname)
const char *__dirname))
_INTL_ASM (libintl_bindtextdomain); _INTL_ASM (libintl_bindtextdomain);
#endif #endif
@ -283,12 +266,103 @@ static inline char *bind_textdomain_codeset (const char *__domainname,
#ifdef _INTL_REDIRECT_MACROS #ifdef _INTL_REDIRECT_MACROS
# define bind_textdomain_codeset libintl_bind_textdomain_codeset # define bind_textdomain_codeset libintl_bind_textdomain_codeset
#endif #endif
extern char *bind_textdomain_codeset _INTL_PARAMS ((const char *__domainname, extern char *bind_textdomain_codeset (const char *__domainname,
const char *__codeset)) const char *__codeset)
_INTL_ASM (libintl_bind_textdomain_codeset); _INTL_ASM (libintl_bind_textdomain_codeset);
#endif #endif
/* Support for format strings with positions in *printf(), following the
POSIX/XSI specification.
Note: These replacements for the *printf() functions are visible only
in source files that #include <libintl.h> or #include "gettext.h".
Packages that use *printf() in source files that don't refer to _()
or gettext() but for which the format string could be the return value
of _() or gettext() need to add this #include. Oh well. */
#if !@HAVE_POSIX_PRINTF@
#include <stdio.h>
#include <stddef.h>
/* Get va_list. */
#if __STDC__ || defined __cplusplus || defined _MSC_VER
# include <stdarg.h>
#else
# include <varargs.h>
#endif
#undef fprintf
#define fprintf libintl_fprintf
extern int fprintf (FILE *, const char *, ...);
#undef vfprintf
#define vfprintf libintl_vfprintf
extern int vfprintf (FILE *, const char *, va_list);
#undef printf
#define printf libintl_printf
extern int printf (const char *, ...);
#undef vprintf
#define vprintf libintl_vprintf
extern int vprintf (const char *, va_list);
#undef sprintf
#define sprintf libintl_sprintf
extern int sprintf (char *, const char *, ...);
#undef vsprintf
#define vsprintf libintl_vsprintf
extern int vsprintf (char *, const char *, va_list);
#if @HAVE_SNPRINTF@
#undef snprintf
#define snprintf libintl_snprintf
extern int snprintf (char *, size_t, const char *, ...);
#undef vsnprintf
#define vsnprintf libintl_vsnprintf
extern int vsnprintf (char *, size_t, const char *, va_list);
#endif
#if @HAVE_ASPRINTF@
#undef asprintf
#define asprintf libintl_asprintf
extern int asprintf (char **, const char *, ...);
#undef vasprintf
#define vasprintf libintl_vasprintf
extern int vasprintf (char **, const char *, va_list);
#endif
#if @HAVE_WPRINTF@
#undef fwprintf
#define fwprintf libintl_fwprintf
extern int fwprintf (FILE *, const wchar_t *, ...);
#undef vfwprintf
#define vfwprintf libintl_vfwprintf
extern int vfwprintf (FILE *, const wchar_t *, va_list);
#undef wprintf
#define wprintf libintl_wprintf
extern int wprintf (const wchar_t *, ...);
#undef vwprintf
#define vwprintf libintl_vwprintf
extern int vwprintf (const wchar_t *, va_list);
#undef swprintf
#define swprintf libintl_swprintf
extern int swprintf (wchar_t *, size_t, const wchar_t *, ...);
#undef vswprintf
#define vswprintf libintl_vswprintf
extern int vswprintf (wchar_t *, size_t, const wchar_t *, va_list);
#endif
#endif
/* Support for relocatable packages. */ /* Support for relocatable packages. */
/* Sets the original and the current installation prefix of the package. /* Sets the original and the current installation prefix of the package.
@ -298,8 +372,8 @@ extern char *bind_textdomain_codeset _INTL_PARAMS ((const char *__domainname,
instead of "/"). */ instead of "/"). */
#define libintl_set_relocation_prefix libintl_set_relocation_prefix #define libintl_set_relocation_prefix libintl_set_relocation_prefix
extern void extern void
libintl_set_relocation_prefix _INTL_PARAMS ((const char *orig_prefix, libintl_set_relocation_prefix (const char *orig_prefix,
const char *curr_prefix)); const char *curr_prefix);
#ifdef __cplusplus #ifdef __cplusplus

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996-1999, 2000-2002 Free Software Foundation, Inc. /* Copyright (C) 1996-1999, 2000-2003 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@ -32,14 +32,6 @@
in gettextP.h. in gettextP.h.
*/ */
#ifndef PARAMS
# if __STDC__ || defined __GNUC__ || defined __SUNPRO_C || defined __cplusplus || __PROTOTYPES
# define PARAMS(args) args
# else
# define PARAMS(args) ()
# endif
#endif
#ifndef internal_function #ifndef internal_function
# define internal_function # define internal_function
#endif #endif
@ -89,8 +81,8 @@ struct loaded_l10nfile
names. Normalization allows the user to use any of the common names. Normalization allows the user to use any of the common
names. The return value is dynamically allocated and has to be names. The return value is dynamically allocated and has to be
freed by the caller. */ freed by the caller. */
extern const char *_nl_normalize_codeset PARAMS ((const char *codeset, extern const char *_nl_normalize_codeset (const char *codeset,
size_t name_len)); size_t name_len);
/* Lookup a locale dependent file. /* Lookup a locale dependent file.
*L10NFILE_LIST denotes a pool of lookup results of locale dependent *L10NFILE_LIST denotes a pool of lookup results of locale dependent
@ -107,19 +99,18 @@ extern const char *_nl_normalize_codeset PARAMS ((const char *codeset,
furthermore its ->successor[] field contains a list of other lookup furthermore its ->successor[] field contains a list of other lookup
results from which this lookup result inherits. */ results from which this lookup result inherits. */
extern struct loaded_l10nfile * extern struct loaded_l10nfile *
_nl_make_l10nflist PARAMS ((struct loaded_l10nfile **l10nfile_list, _nl_make_l10nflist (struct loaded_l10nfile **l10nfile_list,
const char *dirlist, size_t dirlist_len, int mask, const char *dirlist, size_t dirlist_len, int mask,
const char *language, const char *territory, const char *language, const char *territory,
const char *codeset, const char *codeset, const char *normalized_codeset,
const char *normalized_codeset, const char *modifier, const char *special,
const char *modifier, const char *special, const char *sponsor, const char *revision,
const char *sponsor, const char *revision, const char *filename, int do_allocate);
const char *filename, int do_allocate));
/* Lookup the real locale name for a locale alias NAME, or NULL if /* Lookup the real locale name for a locale alias NAME, or NULL if
NAME is not a locale alias (but possibly a real locale name). NAME is not a locale alias (but possibly a real locale name).
The return value is statically allocated and must not be freed. */ The return value is statically allocated and must not be freed. */
extern const char *_nl_expand_alias PARAMS ((const char *name)); extern const char *_nl_expand_alias (const char *name);
/* Split a locale name NAME into its pieces: language, modifier, /* Split a locale name NAME into its pieces: language, modifier,
territory, codeset, special, sponsor, revision. territory, codeset, special, sponsor, revision.
@ -139,18 +130,16 @@ extern const char *_nl_expand_alias PARAMS ((const char *name));
CEN_SPONSOR for *SPONSOR, CEN_SPONSOR for *SPONSOR,
CEN_REVISION for *REVISION. CEN_REVISION for *REVISION.
*/ */
extern int _nl_explode_name PARAMS ((char *name, const char **language, extern int _nl_explode_name (char *name, const char **language,
const char **modifier, const char **modifier, const char **territory,
const char **territory, const char **codeset,
const char **codeset, const char **normalized_codeset,
const char **normalized_codeset, const char **special, const char **sponsor,
const char **special, const char **revision);
const char **sponsor,
const char **revision));
/* Split a locale name NAME into a leading language part and all the /* Split a locale name NAME into a leading language part and all the
rest. Return a pointer to the first character after the language, rest. Return a pointer to the first character after the language,
i.e. to the first byte of the rest. */ i.e. to the first byte of the rest. */
extern char *_nl_find_language PARAMS ((const char *name)); extern char *_nl_find_language (const char *name);
#endif /* loadinfo.h */ #endif /* loadinfo.h */

View File

@ -1,5 +1,5 @@
/* Load needed message catalogs. /* Load needed message catalogs.
Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc. Copyright (C) 1995-1999, 2000-2004 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published under the terms of the GNU Library General Public License as published
@ -491,11 +491,6 @@ char *alloca ();
#endif #endif
/* Prototypes for local functions. Needed to ensure compiler checking of
function argument counts despite of K&R C function definition syntax. */
static const char *get_sysdep_segment_value PARAMS ((const char *name));
/* We need a sign, whether a new catalog was loaded, which can be associated /* We need a sign, whether a new catalog was loaded, which can be associated
with all translations. This is important if the translations are with all translations. This is important if the translations are
cached by one of GCC's features. */ cached by one of GCC's features. */
@ -504,8 +499,7 @@ int _nl_msg_cat_cntr;
/* Expand a system dependent string segment. Return NULL if unsupported. */ /* Expand a system dependent string segment. Return NULL if unsupported. */
static const char * static const char *
get_sysdep_segment_value (name) get_sysdep_segment_value (const char *name)
const char *name;
{ {
/* Test for an ISO C 99 section 7.8.1 format string directive. /* Test for an ISO C 99 section 7.8.1 format string directive.
Syntax: Syntax:
@ -754,6 +748,18 @@ get_sysdep_segment_value (name)
} }
} }
} }
/* Test for a glibc specific printf() format directive flag. */
if (name[0] == 'I' && name[1] == '\0')
{
#if defined _LIBC || __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
/* The 'I' flag, in numeric format directives, replaces ASCII digits
with the 'outdigits' defined in the LC_CTYPE locale facet. This is
used for Farsi (Persian) and maybe Arabic. */
return "I";
#else
return "";
#endif
}
/* Other system dependent strings are not valid. */ /* Other system dependent strings are not valid. */
return NULL; return NULL;
} }
@ -762,10 +768,9 @@ get_sysdep_segment_value (name)
Return the header entry. */ Return the header entry. */
const char * const char *
internal_function internal_function
_nl_init_domain_conv (domain_file, domain, domainbinding) _nl_init_domain_conv (struct loaded_l10nfile *domain_file,
struct loaded_l10nfile *domain_file; struct loaded_domain *domain,
struct loaded_domain *domain; struct binding *domainbinding)
struct binding *domainbinding;
{ {
/* Find out about the character set the file is encoded with. /* Find out about the character set the file is encoded with.
This can be found (in textual form) in the entry "". If this This can be found (in textual form) in the entry "". If this
@ -829,7 +834,7 @@ _nl_init_domain_conv (domain_file, domain, domainbinding)
outcharset = _NL_CURRENT (LC_CTYPE, CODESET); outcharset = _NL_CURRENT (LC_CTYPE, CODESET);
# else # else
# if HAVE_ICONV # if HAVE_ICONV
extern const char *locale_charset PARAMS ((void)); extern const char *locale_charset (void);
outcharset = locale_charset (); outcharset = locale_charset ();
# endif # endif
# endif # endif
@ -881,8 +886,7 @@ _nl_init_domain_conv (domain_file, domain, domainbinding)
/* Frees the codeset dependent parts of an opened message catalog. */ /* Frees the codeset dependent parts of an opened message catalog. */
void void
internal_function internal_function
_nl_free_domain_conv (domain) _nl_free_domain_conv (struct loaded_domain *domain)
struct loaded_domain *domain;
{ {
if (domain->conv_tab != NULL && domain->conv_tab != (char **) -1) if (domain->conv_tab != NULL && domain->conv_tab != (char **) -1)
free (domain->conv_tab); free (domain->conv_tab);
@ -902,9 +906,8 @@ _nl_free_domain_conv (domain)
message catalog do nothing. */ message catalog do nothing. */
void void
internal_function internal_function
_nl_load_domain (domain_file, domainbinding) _nl_load_domain (struct loaded_l10nfile *domain_file,
struct loaded_l10nfile *domain_file; struct binding *domainbinding)
struct binding *domainbinding;
{ {
int fd; int fd;
size_t size; size_t size;
@ -1028,10 +1031,11 @@ _nl_load_domain (domain_file, domainbinding)
/* Fill in the information about the available tables. */ /* Fill in the information about the available tables. */
revision = W (domain->must_swap, data->revision); revision = W (domain->must_swap, data->revision);
/* We support only the major revision 0. */ /* We support only the major revisions 0 and 1. */
switch (revision >> 16) switch (revision >> 16)
{ {
case 0: case 0:
case 1:
domain->nstrings = W (domain->must_swap, data->nstrings); domain->nstrings = W (domain->must_swap, data->nstrings);
domain->orig_tab = (const struct string_desc *) domain->orig_tab = (const struct string_desc *)
((char *) data + W (domain->must_swap, data->orig_tab_offset)); ((char *) data + W (domain->must_swap, data->orig_tab_offset));
@ -1071,12 +1075,13 @@ _nl_load_domain (domain_file, domainbinding)
const char **sysdep_segment_values; const char **sysdep_segment_values;
const nls_uint32 *orig_sysdep_tab; const nls_uint32 *orig_sysdep_tab;
const nls_uint32 *trans_sysdep_tab; const nls_uint32 *trans_sysdep_tab;
nls_uint32 n_inmem_sysdep_strings;
size_t memneed; size_t memneed;
char *mem; char *mem;
struct sysdep_string_desc *inmem_orig_sysdep_tab; struct sysdep_string_desc *inmem_orig_sysdep_tab;
struct sysdep_string_desc *inmem_trans_sysdep_tab; struct sysdep_string_desc *inmem_trans_sysdep_tab;
nls_uint32 *inmem_hash_tab; nls_uint32 *inmem_hash_tab;
unsigned int i; unsigned int i, j;
/* Get the values of the system dependent segments. */ /* Get the values of the system dependent segments. */
n_sysdep_segments = n_sysdep_segments =
@ -1111,153 +1116,247 @@ _nl_load_domain (domain_file, domainbinding)
+ W (domain->must_swap, data->trans_sysdep_tab_offset)); + W (domain->must_swap, data->trans_sysdep_tab_offset));
/* Compute the amount of additional memory needed for the /* Compute the amount of additional memory needed for the
system dependent strings and the augmented hash table. */ system dependent strings and the augmented hash table.
memneed = 2 * n_sysdep_strings At the same time, also drop string pairs which refer to
* sizeof (struct sysdep_string_desc) an undefined system dependent segment. */
+ domain->hash_size * sizeof (nls_uint32); n_inmem_sysdep_strings = 0;
for (i = 0; i < 2 * n_sysdep_strings; i++) memneed = domain->hash_size * sizeof (nls_uint32);
{
const struct sysdep_string *sysdep_string =
(const struct sysdep_string *)
((char *) data
+ W (domain->must_swap,
i < n_sysdep_strings
? orig_sysdep_tab[i]
: trans_sysdep_tab[i - n_sysdep_strings]));
size_t need = 0;
const struct segment_pair *p = sysdep_string->segments;
if (W (domain->must_swap, p->sysdepref) != SEGMENTS_END)
for (p = sysdep_string->segments;; p++)
{
nls_uint32 sysdepref;
need += W (domain->must_swap, p->segsize);
sysdepref = W (domain->must_swap, p->sysdepref);
if (sysdepref == SEGMENTS_END)
break;
if (sysdepref >= n_sysdep_segments)
{
/* Invalid. */
freea (sysdep_segment_values);
goto invalid;
}
need += strlen (sysdep_segment_values[sysdepref]);
}
memneed += need;
}
/* Allocate additional memory. */
mem = (char *) malloc (memneed);
if (mem == NULL)
goto invalid;
domain->malloced = mem;
inmem_orig_sysdep_tab = (struct sysdep_string_desc *) mem;
mem += n_sysdep_strings * sizeof (struct sysdep_string_desc);
inmem_trans_sysdep_tab = (struct sysdep_string_desc *) mem;
mem += n_sysdep_strings * sizeof (struct sysdep_string_desc);
inmem_hash_tab = (nls_uint32 *) mem;
mem += domain->hash_size * sizeof (nls_uint32);
/* Compute the system dependent strings. */
for (i = 0; i < 2 * n_sysdep_strings; i++)
{
const struct sysdep_string *sysdep_string =
(const struct sysdep_string *)
((char *) data
+ W (domain->must_swap,
i < n_sysdep_strings
? orig_sysdep_tab[i]
: trans_sysdep_tab[i - n_sysdep_strings]));
const char *static_segments =
(char *) data
+ W (domain->must_swap, sysdep_string->offset);
const struct segment_pair *p = sysdep_string->segments;
/* Concatenate the segments, and fill
inmem_orig_sysdep_tab[i] (for i < n_sysdep_strings) and
inmem_trans_sysdep_tab[i-n_sysdep_strings] (for
i >= n_sysdep_strings). */
if (W (domain->must_swap, p->sysdepref) == SEGMENTS_END)
{
/* Only one static segment. */
inmem_orig_sysdep_tab[i].length =
W (domain->must_swap, p->segsize);
inmem_orig_sysdep_tab[i].pointer = static_segments;
}
else
{
inmem_orig_sysdep_tab[i].pointer = mem;
for (p = sysdep_string->segments;; p++)
{
nls_uint32 segsize =
W (domain->must_swap, p->segsize);
nls_uint32 sysdepref =
W (domain->must_swap, p->sysdepref);
size_t n;
if (segsize > 0)
{
memcpy (mem, static_segments, segsize);
mem += segsize;
static_segments += segsize;
}
if (sysdepref == SEGMENTS_END)
break;
n = strlen (sysdep_segment_values[sysdepref]);
memcpy (mem, sysdep_segment_values[sysdepref], n);
mem += n;
}
inmem_orig_sysdep_tab[i].length =
mem - inmem_orig_sysdep_tab[i].pointer;
}
}
/* Compute the augmented hash table. */
for (i = 0; i < domain->hash_size; i++)
inmem_hash_tab[i] =
W (domain->must_swap_hash_tab, domain->hash_tab[i]);
for (i = 0; i < n_sysdep_strings; i++) for (i = 0; i < n_sysdep_strings; i++)
{ {
const char *msgid = inmem_orig_sysdep_tab[i].pointer; int valid = 1;
nls_uint32 hash_val = hash_string (msgid); size_t needs[2];
nls_uint32 idx = hash_val % domain->hash_size;
nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2));
for (;;) for (j = 0; j < 2; j++)
{ {
if (inmem_hash_tab[idx] == 0) const struct sysdep_string *sysdep_string =
(const struct sysdep_string *)
((char *) data
+ W (domain->must_swap,
j == 0
? orig_sysdep_tab[i]
: trans_sysdep_tab[i]));
size_t need = 0;
const struct segment_pair *p = sysdep_string->segments;
if (W (domain->must_swap, p->sysdepref) != SEGMENTS_END)
for (p = sysdep_string->segments;; p++)
{
nls_uint32 sysdepref;
need += W (domain->must_swap, p->segsize);
sysdepref = W (domain->must_swap, p->sysdepref);
if (sysdepref == SEGMENTS_END)
break;
if (sysdepref >= n_sysdep_segments)
{
/* Invalid. */
freea (sysdep_segment_values);
goto invalid;
}
if (sysdep_segment_values[sysdepref] == NULL)
{
/* This particular string pair is invalid. */
valid = 0;
break;
}
need += strlen (sysdep_segment_values[sysdepref]);
}
needs[j] = need;
if (!valid)
break;
}
if (valid)
{
n_inmem_sysdep_strings++;
memneed += needs[0] + needs[1];
}
}
memneed += 2 * n_inmem_sysdep_strings
* sizeof (struct sysdep_string_desc);
if (n_inmem_sysdep_strings > 0)
{
unsigned int k;
/* Allocate additional memory. */
mem = (char *) malloc (memneed);
if (mem == NULL)
goto invalid;
domain->malloced = mem;
inmem_orig_sysdep_tab = (struct sysdep_string_desc *) mem;
mem += n_inmem_sysdep_strings
* sizeof (struct sysdep_string_desc);
inmem_trans_sysdep_tab = (struct sysdep_string_desc *) mem;
mem += n_inmem_sysdep_strings
* sizeof (struct sysdep_string_desc);
inmem_hash_tab = (nls_uint32 *) mem;
mem += domain->hash_size * sizeof (nls_uint32);
/* Compute the system dependent strings. */
k = 0;
for (i = 0; i < n_sysdep_strings; i++)
{
int valid = 1;
for (j = 0; j < 2; j++)
{ {
/* Hash table entry is empty. Use it. */ const struct sysdep_string *sysdep_string =
inmem_hash_tab[idx] = 1 + domain->nstrings + i; (const struct sysdep_string *)
break; ((char *) data
+ W (domain->must_swap,
j == 0
? orig_sysdep_tab[i]
: trans_sysdep_tab[i]));
const struct segment_pair *p =
sysdep_string->segments;
if (W (domain->must_swap, p->sysdepref)
!= SEGMENTS_END)
for (p = sysdep_string->segments;; p++)
{
nls_uint32 sysdepref;
sysdepref =
W (domain->must_swap, p->sysdepref);
if (sysdepref == SEGMENTS_END)
break;
if (sysdep_segment_values[sysdepref] == NULL)
{
/* This particular string pair is
invalid. */
valid = 0;
break;
}
}
if (!valid)
break;
} }
if (idx >= domain->hash_size - incr) if (valid)
idx -= domain->hash_size - incr; {
else for (j = 0; j < 2; j++)
idx += incr; {
const struct sysdep_string *sysdep_string =
(const struct sysdep_string *)
((char *) data
+ W (domain->must_swap,
j == 0
? orig_sysdep_tab[i]
: trans_sysdep_tab[i]));
const char *static_segments =
(char *) data
+ W (domain->must_swap, sysdep_string->offset);
const struct segment_pair *p =
sysdep_string->segments;
/* Concatenate the segments, and fill
inmem_orig_sysdep_tab[k] (for j == 0) and
inmem_trans_sysdep_tab[k] (for j == 1). */
struct sysdep_string_desc *inmem_tab_entry =
(j == 0
? inmem_orig_sysdep_tab
: inmem_trans_sysdep_tab)
+ k;
if (W (domain->must_swap, p->sysdepref)
== SEGMENTS_END)
{
/* Only one static segment. */
inmem_tab_entry->length =
W (domain->must_swap, p->segsize);
inmem_tab_entry->pointer = static_segments;
}
else
{
inmem_tab_entry->pointer = mem;
for (p = sysdep_string->segments;; p++)
{
nls_uint32 segsize =
W (domain->must_swap, p->segsize);
nls_uint32 sysdepref =
W (domain->must_swap, p->sysdepref);
size_t n;
if (segsize > 0)
{
memcpy (mem, static_segments, segsize);
mem += segsize;
static_segments += segsize;
}
if (sysdepref == SEGMENTS_END)
break;
n = strlen (sysdep_segment_values[sysdepref]);
memcpy (mem, sysdep_segment_values[sysdepref], n);
mem += n;
}
inmem_tab_entry->length =
mem - inmem_tab_entry->pointer;
}
}
k++;
}
} }
if (k != n_inmem_sysdep_strings)
abort ();
/* Compute the augmented hash table. */
for (i = 0; i < domain->hash_size; i++)
inmem_hash_tab[i] =
W (domain->must_swap_hash_tab, domain->hash_tab[i]);
for (i = 0; i < n_inmem_sysdep_strings; i++)
{
const char *msgid = inmem_orig_sysdep_tab[i].pointer;
nls_uint32 hash_val = hash_string (msgid);
nls_uint32 idx = hash_val % domain->hash_size;
nls_uint32 incr =
1 + (hash_val % (domain->hash_size - 2));
for (;;)
{
if (inmem_hash_tab[idx] == 0)
{
/* Hash table entry is empty. Use it. */
inmem_hash_tab[idx] = 1 + domain->nstrings + i;
break;
}
if (idx >= domain->hash_size - incr)
idx -= domain->hash_size - incr;
else
idx += incr;
}
}
domain->n_sysdep_strings = n_inmem_sysdep_strings;
domain->orig_sysdep_tab = inmem_orig_sysdep_tab;
domain->trans_sysdep_tab = inmem_trans_sysdep_tab;
domain->hash_tab = inmem_hash_tab;
domain->must_swap_hash_tab = 0;
}
else
{
domain->n_sysdep_strings = 0;
domain->orig_sysdep_tab = NULL;
domain->trans_sysdep_tab = NULL;
} }
freea (sysdep_segment_values); freea (sysdep_segment_values);
domain->n_sysdep_strings = n_sysdep_strings;
domain->orig_sysdep_tab = inmem_orig_sysdep_tab;
domain->trans_sysdep_tab = inmem_trans_sysdep_tab;
domain->hash_tab = inmem_hash_tab;
domain->must_swap_hash_tab = 0;
} }
else else
{ {
@ -1299,8 +1398,7 @@ _nl_load_domain (domain_file, domainbinding)
#ifdef _LIBC #ifdef _LIBC
void void
internal_function internal_function
_nl_unload_domain (domain) _nl_unload_domain (struct loaded_domain *domain)
struct loaded_domain *domain;
{ {
if (domain->plural != &__gettext_germanic_plural) if (domain->plural != &__gettext_germanic_plural)
__gettext_free_exp (domain->plural); __gettext_free_exp (domain->plural);

View File

@ -86,7 +86,7 @@
# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR) # define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
#endif #endif
#ifdef HAVE_GETC_UNLOCKED #if HAVE_DECL_GETC_UNLOCKED
# undef getc # undef getc
# define getc getc_unlocked # define getc getc_unlocked
#endif #endif

View File

@ -1,5 +1,5 @@
# Locale name alias data base. # Locale name alias data base.
# Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc. # Copyright (C) 1996-2001,2003 Free Software Foundation, Inc.
# #
# This program is free software; you can redistribute it and/or modify it # This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU Library General Public License as published # under the terms of the GNU Library General Public License as published
@ -29,8 +29,8 @@
# Packages using this file: # Packages using this file:
bokmal no_NO.ISO-8859-1 bokmal nb_NO.ISO-8859-1
bokmål no_NO.ISO-8859-1 bokmål nb_NO.ISO-8859-1
catalan ca_ES.ISO-8859-1 catalan ca_ES.ISO-8859-1
croatian hr_HR.ISO-8859-2 croatian hr_HR.ISO-8859-2
czech cs_CZ.ISO-8859-2 czech cs_CZ.ISO-8859-2
@ -61,9 +61,9 @@ korean ko_KR.eucKR
korean.euc ko_KR.eucKR korean.euc ko_KR.eucKR
ko_KR ko_KR.eucKR ko_KR ko_KR.eucKR
lithuanian lt_LT.ISO-8859-13 lithuanian lt_LT.ISO-8859-13
nb_NO no_NO.ISO-8859-1 no_NO nb_NO.ISO-8859-1
nb_NO.ISO-8859-1 no_NO.ISO-8859-1 no_NO.ISO-8859-1 nb_NO.ISO-8859-1
norwegian no_NO.ISO-8859-1 norwegian nb_NO.ISO-8859-1
nynorsk nn_NO.ISO-8859-1 nynorsk nn_NO.ISO-8859-1
polish pl_PL.ISO-8859-2 polish pl_PL.ISO-8859-2
portuguese pt_PT.ISO-8859-1 portuguese pt_PT.ISO-8859-1

View File

@ -110,11 +110,11 @@ __libc_lock_define_initialized (static, lock);
# define freea(p) free (p) # define freea(p) free (p)
#endif #endif
#if defined _LIBC_REENTRANT || defined HAVE_FGETS_UNLOCKED #if defined _LIBC_REENTRANT || HAVE_DECL_FGETS_UNLOCKED
# undef fgets # undef fgets
# define fgets(buf, len, s) fgets_unlocked (buf, len, s) # define fgets(buf, len, s) fgets_unlocked (buf, len, s)
#endif #endif
#if defined _LIBC_REENTRANT || defined HAVE_FEOF_UNLOCKED #if defined _LIBC_REENTRANT || HAVE_DECL_FEOF_UNLOCKED
# undef feof # undef feof
# define feof(s) feof_unlocked (s) # define feof(s) feof_unlocked (s)
#endif #endif
@ -140,16 +140,15 @@ static size_t maxmap;
/* Prototypes for local functions. */ /* Prototypes for local functions. */
static size_t read_alias_file PARAMS ((const char *fname, int fname_len)) static size_t read_alias_file (const char *fname, int fname_len)
internal_function; internal_function;
static int extend_alias_table PARAMS ((void)); static int extend_alias_table (void);
static int alias_compare PARAMS ((const struct alias_map *map1, static int alias_compare (const struct alias_map *map1,
const struct alias_map *map2)); const struct alias_map *map2);
const char * const char *
_nl_expand_alias (name) _nl_expand_alias (const char *name)
const char *name;
{ {
static const char *locale_alias_path; static const char *locale_alias_path;
struct alias_map *retval; struct alias_map *retval;
@ -172,8 +171,8 @@ _nl_expand_alias (name)
if (nmap > 0) if (nmap > 0)
retval = (struct alias_map *) bsearch (&item, map, nmap, retval = (struct alias_map *) bsearch (&item, map, nmap,
sizeof (struct alias_map), sizeof (struct alias_map),
(int (*) PARAMS ((const void *, (int (*) (const void *,
const void *)) const void *)
) alias_compare); ) alias_compare);
else else
retval = NULL; retval = NULL;
@ -215,9 +214,7 @@ _nl_expand_alias (name)
static size_t static size_t
internal_function internal_function
read_alias_file (fname, fname_len) read_alias_file (const char *fname, int fname_len)
const char *fname;
int fname_len;
{ {
FILE *fp; FILE *fp;
char *full_fname; char *full_fname;
@ -361,7 +358,7 @@ read_alias_file (fname, fname_len)
if (added > 0) if (added > 0)
qsort (map, nmap, sizeof (struct alias_map), qsort (map, nmap, sizeof (struct alias_map),
(int (*) PARAMS ((const void *, const void *))) alias_compare); (int (*) (const void *, const void *)) alias_compare);
return added; return added;
} }
@ -387,9 +384,7 @@ extend_alias_table ()
static int static int
alias_compare (map1, map2) alias_compare (const struct alias_map *map1, const struct alias_map *map2)
const struct alias_map *map1;
const struct alias_map *map2;
{ {
#if defined _LIBC || defined HAVE_STRCASECMP #if defined _LIBC || defined HAVE_STRCASECMP
return strcasecmp (map1->alias, map2->alias); return strcasecmp (map1->alias, map2->alias);

View File

@ -1,5 +1,5 @@
/* Determine the current selected locale. /* Determine the current selected locale.
Copyright (C) 1995-1999, 2000-2002 Free Software Foundation, Inc. Copyright (C) 1995-1999, 2000-2004 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published under the terms of the GNU Library General Public License as published
@ -34,6 +34,124 @@
#ifdef WIN32 #ifdef WIN32
# define WIN32_LEAN_AND_MEAN # define WIN32_LEAN_AND_MEAN
# include <windows.h> # include <windows.h>
/* List of language codes, sorted by value:
0x01 LANG_ARABIC
0x02 LANG_BULGARIAN
0x03 LANG_CATALAN
0x04 LANG_CHINESE
0x05 LANG_CZECH
0x06 LANG_DANISH
0x07 LANG_GERMAN
0x08 LANG_GREEK
0x09 LANG_ENGLISH
0x0a LANG_SPANISH
0x0b LANG_FINNISH
0x0c LANG_FRENCH
0x0d LANG_HEBREW
0x0e LANG_HUNGARIAN
0x0f LANG_ICELANDIC
0x10 LANG_ITALIAN
0x11 LANG_JAPANESE
0x12 LANG_KOREAN
0x13 LANG_DUTCH
0x14 LANG_NORWEGIAN
0x15 LANG_POLISH
0x16 LANG_PORTUGUESE
0x17 LANG_RHAETO_ROMANCE
0x18 LANG_ROMANIAN
0x19 LANG_RUSSIAN
0x1a LANG_CROATIAN == LANG_SERBIAN
0x1b LANG_SLOVAK
0x1c LANG_ALBANIAN
0x1d LANG_SWEDISH
0x1e LANG_THAI
0x1f LANG_TURKISH
0x20 LANG_URDU
0x21 LANG_INDONESIAN
0x22 LANG_UKRAINIAN
0x23 LANG_BELARUSIAN
0x24 LANG_SLOVENIAN
0x25 LANG_ESTONIAN
0x26 LANG_LATVIAN
0x27 LANG_LITHUANIAN
0x28 LANG_TAJIK
0x29 LANG_FARSI
0x2a LANG_VIETNAMESE
0x2b LANG_ARMENIAN
0x2c LANG_AZERI
0x2d LANG_BASQUE
0x2e LANG_SORBIAN
0x2f LANG_MACEDONIAN
0x30 LANG_SUTU
0x31 LANG_TSONGA
0x32 LANG_TSWANA
0x33 LANG_VENDA
0x34 LANG_XHOSA
0x35 LANG_ZULU
0x36 LANG_AFRIKAANS
0x37 LANG_GEORGIAN
0x38 LANG_FAEROESE
0x39 LANG_HINDI
0x3a LANG_MALTESE
0x3b LANG_SAAMI
0x3c LANG_GAELIC
0x3d LANG_YIDDISH
0x3e LANG_MALAY
0x3f LANG_KAZAK
0x40 LANG_KYRGYZ
0x41 LANG_SWAHILI
0x42 LANG_TURKMEN
0x43 LANG_UZBEK
0x44 LANG_TATAR
0x45 LANG_BENGALI
0x46 LANG_PUNJABI
0x47 LANG_GUJARATI
0x48 LANG_ORIYA
0x49 LANG_TAMIL
0x4a LANG_TELUGU
0x4b LANG_KANNADA
0x4c LANG_MALAYALAM
0x4d LANG_ASSAMESE
0x4e LANG_MARATHI
0x4f LANG_SANSKRIT
0x50 LANG_MONGOLIAN
0x51 LANG_TIBETAN
0x52 LANG_WELSH
0x53 LANG_CAMBODIAN
0x54 LANG_LAO
0x55 LANG_BURMESE
0x56 LANG_GALICIAN
0x57 LANG_KONKANI
0x58 LANG_MANIPURI
0x59 LANG_SINDHI
0x5a LANG_SYRIAC
0x5b LANG_SINHALESE
0x5c LANG_CHEROKEE
0x5d LANG_INUKTITUT
0x5e LANG_AMHARIC
0x5f LANG_TAMAZIGHT
0x60 LANG_KASHMIRI
0x61 LANG_NEPALI
0x62 LANG_FRISIAN
0x63 LANG_PASHTO
0x64 LANG_TAGALOG
0x65 LANG_DIVEHI
0x66 LANG_EDO
0x67 LANG_FULFULDE
0x68 LANG_HAUSA
0x69 LANG_IBIBIO
0x6a LANG_YORUBA
0x70 LANG_IGBO
0x71 LANG_KANURI
0x72 LANG_OROMO
0x73 LANG_TIGRINYA
0x74 LANG_GUARANI
0x75 LANG_HAWAIIAN
0x76 LANG_LATIN
0x77 LANG_SOMALI
0x78 LANG_YI
0x79 LANG_PAPIAMENTU
*/
/* Mingw headers don't have latest language and sublanguage codes. */ /* Mingw headers don't have latest language and sublanguage codes. */
# ifndef LANG_AFRIKAANS # ifndef LANG_AFRIKAANS
# define LANG_AFRIKAANS 0x36 # define LANG_AFRIKAANS 0x36
@ -41,6 +159,9 @@
# ifndef LANG_ALBANIAN # ifndef LANG_ALBANIAN
# define LANG_ALBANIAN 0x1c # define LANG_ALBANIAN 0x1c
# endif # endif
# ifndef LANG_AMHARIC
# define LANG_AMHARIC 0x5e
# endif
# ifndef LANG_ARABIC # ifndef LANG_ARABIC
# define LANG_ARABIC 0x01 # define LANG_ARABIC 0x01
# endif # endif
@ -62,12 +183,24 @@
# ifndef LANG_BENGALI # ifndef LANG_BENGALI
# define LANG_BENGALI 0x45 # define LANG_BENGALI 0x45
# endif # endif
# ifndef LANG_BURMESE
# define LANG_BURMESE 0x55
# endif
# ifndef LANG_CAMBODIAN
# define LANG_CAMBODIAN 0x53
# endif
# ifndef LANG_CATALAN # ifndef LANG_CATALAN
# define LANG_CATALAN 0x03 # define LANG_CATALAN 0x03
# endif # endif
# ifndef LANG_CHEROKEE
# define LANG_CHEROKEE 0x5c
# endif
# ifndef LANG_DIVEHI # ifndef LANG_DIVEHI
# define LANG_DIVEHI 0x65 # define LANG_DIVEHI 0x65
# endif # endif
# ifndef LANG_EDO
# define LANG_EDO 0x66
# endif
# ifndef LANG_ESTONIAN # ifndef LANG_ESTONIAN
# define LANG_ESTONIAN 0x25 # define LANG_ESTONIAN 0x25
# endif # endif
@ -77,27 +210,57 @@
# ifndef LANG_FARSI # ifndef LANG_FARSI
# define LANG_FARSI 0x29 # define LANG_FARSI 0x29
# endif # endif
# ifndef LANG_FRISIAN
# define LANG_FRISIAN 0x62
# endif
# ifndef LANG_FULFULDE
# define LANG_FULFULDE 0x67
# endif
# ifndef LANG_GAELIC
# define LANG_GAELIC 0x3c
# endif
# ifndef LANG_GALICIAN # ifndef LANG_GALICIAN
# define LANG_GALICIAN 0x56 # define LANG_GALICIAN 0x56
# endif # endif
# ifndef LANG_GEORGIAN # ifndef LANG_GEORGIAN
# define LANG_GEORGIAN 0x37 # define LANG_GEORGIAN 0x37
# endif # endif
# ifndef LANG_GUARANI
# define LANG_GUARANI 0x74
# endif
# ifndef LANG_GUJARATI # ifndef LANG_GUJARATI
# define LANG_GUJARATI 0x47 # define LANG_GUJARATI 0x47
# endif # endif
# ifndef LANG_HAUSA
# define LANG_HAUSA 0x68
# endif
# ifndef LANG_HAWAIIAN
# define LANG_HAWAIIAN 0x75
# endif
# ifndef LANG_HEBREW # ifndef LANG_HEBREW
# define LANG_HEBREW 0x0d # define LANG_HEBREW 0x0d
# endif # endif
# ifndef LANG_HINDI # ifndef LANG_HINDI
# define LANG_HINDI 0x39 # define LANG_HINDI 0x39
# endif # endif
# ifndef LANG_IBIBIO
# define LANG_IBIBIO 0x69
# endif
# ifndef LANG_IGBO
# define LANG_IGBO 0x70
# endif
# ifndef LANG_INDONESIAN # ifndef LANG_INDONESIAN
# define LANG_INDONESIAN 0x21 # define LANG_INDONESIAN 0x21
# endif # endif
# ifndef LANG_INUKTITUT
# define LANG_INUKTITUT 0x5d
# endif
# ifndef LANG_KANNADA # ifndef LANG_KANNADA
# define LANG_KANNADA 0x4b # define LANG_KANNADA 0x4b
# endif # endif
# ifndef LANG_KANURI
# define LANG_KANURI 0x71
# endif
# ifndef LANG_KASHMIRI # ifndef LANG_KASHMIRI
# define LANG_KASHMIRI 0x60 # define LANG_KASHMIRI 0x60
# endif # endif
@ -110,6 +273,12 @@
# ifndef LANG_KYRGYZ # ifndef LANG_KYRGYZ
# define LANG_KYRGYZ 0x40 # define LANG_KYRGYZ 0x40
# endif # endif
# ifndef LANG_LAO
# define LANG_LAO 0x54
# endif
# ifndef LANG_LATIN
# define LANG_LATIN 0x76
# endif
# ifndef LANG_LATVIAN # ifndef LANG_LATVIAN
# define LANG_LATVIAN 0x26 # define LANG_LATVIAN 0x26
# endif # endif
@ -125,6 +294,9 @@
# ifndef LANG_MALAYALAM # ifndef LANG_MALAYALAM
# define LANG_MALAYALAM 0x4c # define LANG_MALAYALAM 0x4c
# endif # endif
# ifndef LANG_MALTESE
# define LANG_MALTESE 0x3a
# endif
# ifndef LANG_MANIPURI # ifndef LANG_MANIPURI
# define LANG_MANIPURI 0x58 # define LANG_MANIPURI 0x58
# endif # endif
@ -140,9 +312,24 @@
# ifndef LANG_ORIYA # ifndef LANG_ORIYA
# define LANG_ORIYA 0x48 # define LANG_ORIYA 0x48
# endif # endif
# ifndef LANG_OROMO
# define LANG_OROMO 0x72
# endif
# ifndef LANG_PAPIAMENTU
# define LANG_PAPIAMENTU 0x79
# endif
# ifndef LANG_PASHTO
# define LANG_PASHTO 0x63
# endif
# ifndef LANG_PUNJABI # ifndef LANG_PUNJABI
# define LANG_PUNJABI 0x46 # define LANG_PUNJABI 0x46
# endif # endif
# ifndef LANG_RHAETO_ROMANCE
# define LANG_RHAETO_ROMANCE 0x17
# endif
# ifndef LANG_SAAMI
# define LANG_SAAMI 0x3b
# endif
# ifndef LANG_SANSKRIT # ifndef LANG_SANSKRIT
# define LANG_SANSKRIT 0x4f # define LANG_SANSKRIT 0x4f
# endif # endif
@ -152,18 +339,36 @@
# ifndef LANG_SINDHI # ifndef LANG_SINDHI
# define LANG_SINDHI 0x59 # define LANG_SINDHI 0x59
# endif # endif
# ifndef LANG_SINHALESE
# define LANG_SINHALESE 0x5b
# endif
# ifndef LANG_SLOVAK # ifndef LANG_SLOVAK
# define LANG_SLOVAK 0x1b # define LANG_SLOVAK 0x1b
# endif # endif
# ifndef LANG_SOMALI
# define LANG_SOMALI 0x77
# endif
# ifndef LANG_SORBIAN # ifndef LANG_SORBIAN
# define LANG_SORBIAN 0x2e # define LANG_SORBIAN 0x2e
# endif # endif
# ifndef LANG_SUTU
# define LANG_SUTU 0x30
# endif
# ifndef LANG_SWAHILI # ifndef LANG_SWAHILI
# define LANG_SWAHILI 0x41 # define LANG_SWAHILI 0x41
# endif # endif
# ifndef LANG_SYRIAC # ifndef LANG_SYRIAC
# define LANG_SYRIAC 0x5a # define LANG_SYRIAC 0x5a
# endif # endif
# ifndef LANG_TAGALOG
# define LANG_TAGALOG 0x64
# endif
# ifndef LANG_TAJIK
# define LANG_TAJIK 0x28
# endif
# ifndef LANG_TAMAZIGHT
# define LANG_TAMAZIGHT 0x5f
# endif
# ifndef LANG_TAMIL # ifndef LANG_TAMIL
# define LANG_TAMIL 0x49 # define LANG_TAMIL 0x49
# endif # endif
@ -176,6 +381,21 @@
# ifndef LANG_THAI # ifndef LANG_THAI
# define LANG_THAI 0x1e # define LANG_THAI 0x1e
# endif # endif
# ifndef LANG_TIBETAN
# define LANG_TIBETAN 0x51
# endif
# ifndef LANG_TIGRINYA
# define LANG_TIGRINYA 0x73
# endif
# ifndef LANG_TSONGA
# define LANG_TSONGA 0x31
# endif
# ifndef LANG_TSWANA
# define LANG_TSWANA 0x32
# endif
# ifndef LANG_TURKMEN
# define LANG_TURKMEN 0x42
# endif
# ifndef LANG_UKRAINIAN # ifndef LANG_UKRAINIAN
# define LANG_UKRAINIAN 0x22 # define LANG_UKRAINIAN 0x22
# endif # endif
@ -185,9 +405,30 @@
# ifndef LANG_UZBEK # ifndef LANG_UZBEK
# define LANG_UZBEK 0x43 # define LANG_UZBEK 0x43
# endif # endif
# ifndef LANG_VENDA
# define LANG_VENDA 0x33
# endif
# ifndef LANG_VIETNAMESE # ifndef LANG_VIETNAMESE
# define LANG_VIETNAMESE 0x2a # define LANG_VIETNAMESE 0x2a
# endif # endif
# ifndef LANG_WELSH
# define LANG_WELSH 0x52
# endif
# ifndef LANG_XHOSA
# define LANG_XHOSA 0x34
# endif
# ifndef LANG_YI
# define LANG_YI 0x78
# endif
# ifndef LANG_YIDDISH
# define LANG_YIDDISH 0x3d
# endif
# ifndef LANG_YORUBA
# define LANG_YORUBA 0x6a
# endif
# ifndef LANG_ZULU
# define LANG_ZULU 0x35
# endif
# ifndef SUBLANG_ARABIC_SAUDI_ARABIA # ifndef SUBLANG_ARABIC_SAUDI_ARABIA
# define SUBLANG_ARABIC_SAUDI_ARABIA 0x01 # define SUBLANG_ARABIC_SAUDI_ARABIA 0x01
# endif # endif
@ -242,6 +483,12 @@
# ifndef SUBLANG_AZERI_CYRILLIC # ifndef SUBLANG_AZERI_CYRILLIC
# define SUBLANG_AZERI_CYRILLIC 0x02 # define SUBLANG_AZERI_CYRILLIC 0x02
# endif # endif
# ifndef SUBLANG_BENGALI_INDIA
# define SUBLANG_BENGALI_INDIA 0x00
# endif
# ifndef SUBLANG_BENGALI_BANGLADESH
# define SUBLANG_BENGALI_BANGLADESH 0x01
# endif
# ifndef SUBLANG_CHINESE_MACAU # ifndef SUBLANG_CHINESE_MACAU
# define SUBLANG_CHINESE_MACAU 0x05 # define SUBLANG_CHINESE_MACAU 0x05
# endif # endif
@ -266,12 +513,54 @@
# ifndef SUBLANG_ENGLISH_PHILIPPINES # ifndef SUBLANG_ENGLISH_PHILIPPINES
# define SUBLANG_ENGLISH_PHILIPPINES 0x0d # define SUBLANG_ENGLISH_PHILIPPINES 0x0d
# endif # endif
# ifndef SUBLANG_ENGLISH_INDONESIA
# define SUBLANG_ENGLISH_INDONESIA 0x0e
# endif
# ifndef SUBLANG_ENGLISH_HONGKONG
# define SUBLANG_ENGLISH_HONGKONG 0x0f
# endif
# ifndef SUBLANG_ENGLISH_INDIA
# define SUBLANG_ENGLISH_INDIA 0x10
# endif
# ifndef SUBLANG_ENGLISH_MALAYSIA
# define SUBLANG_ENGLISH_MALAYSIA 0x11
# endif
# ifndef SUBLANG_ENGLISH_SINGAPORE
# define SUBLANG_ENGLISH_SINGAPORE 0x12
# endif
# ifndef SUBLANG_FRENCH_LUXEMBOURG # ifndef SUBLANG_FRENCH_LUXEMBOURG
# define SUBLANG_FRENCH_LUXEMBOURG 0x05 # define SUBLANG_FRENCH_LUXEMBOURG 0x05
# endif # endif
# ifndef SUBLANG_FRENCH_MONACO # ifndef SUBLANG_FRENCH_MONACO
# define SUBLANG_FRENCH_MONACO 0x06 # define SUBLANG_FRENCH_MONACO 0x06
# endif # endif
# ifndef SUBLANG_FRENCH_WESTINDIES
# define SUBLANG_FRENCH_WESTINDIES 0x07
# endif
# ifndef SUBLANG_FRENCH_REUNION
# define SUBLANG_FRENCH_REUNION 0x08
# endif
# ifndef SUBLANG_FRENCH_CONGO
# define SUBLANG_FRENCH_CONGO 0x09
# endif
# ifndef SUBLANG_FRENCH_SENEGAL
# define SUBLANG_FRENCH_SENEGAL 0x0a
# endif
# ifndef SUBLANG_FRENCH_CAMEROON
# define SUBLANG_FRENCH_CAMEROON 0x0b
# endif
# ifndef SUBLANG_FRENCH_COTEDIVOIRE
# define SUBLANG_FRENCH_COTEDIVOIRE 0x0c
# endif
# ifndef SUBLANG_FRENCH_MALI
# define SUBLANG_FRENCH_MALI 0x0d
# endif
# ifndef SUBLANG_FRENCH_MOROCCO
# define SUBLANG_FRENCH_MOROCCO 0x0e
# endif
# ifndef SUBLANG_FRENCH_HAITI
# define SUBLANG_FRENCH_HAITI 0x0f
# endif
# ifndef SUBLANG_GERMAN_LUXEMBOURG # ifndef SUBLANG_GERMAN_LUXEMBOURG
# define SUBLANG_GERMAN_LUXEMBOURG 0x04 # define SUBLANG_GERMAN_LUXEMBOURG 0x04
# endif # endif
@ -290,12 +579,30 @@
# ifndef SUBLANG_NEPALI_INDIA # ifndef SUBLANG_NEPALI_INDIA
# define SUBLANG_NEPALI_INDIA 0x02 # define SUBLANG_NEPALI_INDIA 0x02
# endif # endif
# ifndef SUBLANG_PUNJABI_INDIA
# define SUBLANG_PUNJABI_INDIA 0x00
# endif
# ifndef SUBLANG_PUNJABI_PAKISTAN
# define SUBLANG_PUNJABI_PAKISTAN 0x01
# endif
# ifndef SUBLANG_ROMANIAN_ROMANIA
# define SUBLANG_ROMANIAN_ROMANIA 0x00
# endif
# ifndef SUBLANG_ROMANIAN_MOLDOVA
# define SUBLANG_ROMANIAN_MOLDOVA 0x01
# endif
# ifndef SUBLANG_SERBIAN_LATIN # ifndef SUBLANG_SERBIAN_LATIN
# define SUBLANG_SERBIAN_LATIN 0x02 # define SUBLANG_SERBIAN_LATIN 0x02
# endif # endif
# ifndef SUBLANG_SERBIAN_CYRILLIC # ifndef SUBLANG_SERBIAN_CYRILLIC
# define SUBLANG_SERBIAN_CYRILLIC 0x03 # define SUBLANG_SERBIAN_CYRILLIC 0x03
# endif # endif
# ifndef SUBLANG_SINDHI_INDIA
# define SUBLANG_SINDHI_INDIA 0x00
# endif
# ifndef SUBLANG_SINDHI_PAKISTAN
# define SUBLANG_SINDHI_PAKISTAN 0x01
# endif
# ifndef SUBLANG_SPANISH_GUATEMALA # ifndef SUBLANG_SPANISH_GUATEMALA
# define SUBLANG_SPANISH_GUATEMALA 0x04 # define SUBLANG_SPANISH_GUATEMALA 0x04
# endif # endif
@ -350,6 +657,18 @@
# ifndef SUBLANG_SWEDISH_FINLAND # ifndef SUBLANG_SWEDISH_FINLAND
# define SUBLANG_SWEDISH_FINLAND 0x02 # define SUBLANG_SWEDISH_FINLAND 0x02
# endif # endif
# ifndef SUBLANG_TAMAZIGHT_ARABIC
# define SUBLANG_TAMAZIGHT_ARABIC 0x01
# endif
# ifndef SUBLANG_TAMAZIGHT_LATIN
# define SUBLANG_TAMAZIGHT_LATIN 0x02
# endif
# ifndef SUBLANG_TIGRINYA_ETHIOPIA
# define SUBLANG_TIGRINYA_ETHIOPIA 0x00
# endif
# ifndef SUBLANG_TIGRINYA_ERITREA
# define SUBLANG_TIGRINYA_ERITREA 0x01
# endif
# ifndef SUBLANG_URDU_PAKISTAN # ifndef SUBLANG_URDU_PAKISTAN
# define SUBLANG_URDU_PAKISTAN 0x01 # define SUBLANG_URDU_PAKISTAN 0x01
# endif # endif
@ -381,9 +700,7 @@
The result must not be freed; it is statically allocated. */ The result must not be freed; it is statically allocated. */
const char * const char *
_nl_locale_name (category, categoryname) _nl_locale_name (int category, const char *categoryname)
int category;
const char *categoryname;
{ {
const char *retval; const char *retval;
@ -454,7 +771,7 @@ _nl_locale_name (category, categoryname)
{ {
case LANG_AFRIKAANS: return "af_ZA"; case LANG_AFRIKAANS: return "af_ZA";
case LANG_ALBANIAN: return "sq_AL"; case LANG_ALBANIAN: return "sq_AL";
case 0x5e: /* AMHARIC */ return "am_ET"; case LANG_AMHARIC: return "am_ET";
case LANG_ARABIC: case LANG_ARABIC:
switch (sub) switch (sub)
{ {
@ -489,12 +806,18 @@ _nl_locale_name (category, categoryname)
case LANG_BASQUE: case LANG_BASQUE:
return "eu"; /* Ambiguous: could be "eu_ES" or "eu_FR". */ return "eu"; /* Ambiguous: could be "eu_ES" or "eu_FR". */
case LANG_BELARUSIAN: return "be_BY"; case LANG_BELARUSIAN: return "be_BY";
case LANG_BENGALI: return "bn_IN"; case LANG_BENGALI:
switch (sub)
{
case SUBLANG_BENGALI_INDIA: return "bn_IN";
case SUBLANG_BENGALI_BANGLADESH: return "bn_BD";
}
return "bn";
case LANG_BULGARIAN: return "bg_BG"; case LANG_BULGARIAN: return "bg_BG";
case 0x55: /* BURMESE */ return "my_MM"; case LANG_BURMESE: return "my_MM";
case 0x53: /* CAMBODIAN */ return "km_KH"; case LANG_CAMBODIAN: return "km_KH";
case LANG_CATALAN: return "ca_ES"; case LANG_CATALAN: return "ca_ES";
case 0x5c: /* CHEROKEE */ return "chr_US"; case LANG_CHEROKEE: return "chr_US";
case LANG_CHINESE: case LANG_CHINESE:
switch (sub) switch (sub)
{ {
@ -516,13 +839,13 @@ _nl_locale_name (category, categoryname)
switch (sub) switch (sub)
{ {
case SUBLANG_DEFAULT: return "hr_HR"; case SUBLANG_DEFAULT: return "hr_HR";
case SUBLANG_SERBIAN_LATIN: return "sr_YU"; case SUBLANG_SERBIAN_LATIN: return "sr_CS";
case SUBLANG_SERBIAN_CYRILLIC: return "sr_YU@cyrillic"; case SUBLANG_SERBIAN_CYRILLIC: return "sr_CS@cyrillic";
} }
return "hr"; return "hr";
case LANG_CZECH: return "cs_CZ"; case LANG_CZECH: return "cs_CZ";
case LANG_DANISH: return "da_DK"; case LANG_DANISH: return "da_DK";
case LANG_DIVEHI: return "div_MV"; case LANG_DIVEHI: return "dv_MV";
case LANG_DUTCH: case LANG_DUTCH:
switch (sub) switch (sub)
{ {
@ -530,7 +853,7 @@ _nl_locale_name (category, categoryname)
case SUBLANG_DUTCH_BELGIAN: /* FLEMISH, VLAAMS */ return "nl_BE"; case SUBLANG_DUTCH_BELGIAN: /* FLEMISH, VLAAMS */ return "nl_BE";
} }
return "nl"; return "nl";
case 0x66: /* EDO */ return "bin_NG"; case LANG_EDO: return "bin_NG";
case LANG_ENGLISH: case LANG_ENGLISH:
switch (sub) switch (sub)
{ {
@ -551,6 +874,11 @@ _nl_locale_name (category, categoryname)
case SUBLANG_ENGLISH_TRINIDAD: return "en_TT"; case SUBLANG_ENGLISH_TRINIDAD: return "en_TT";
case SUBLANG_ENGLISH_ZIMBABWE: return "en_ZW"; case SUBLANG_ENGLISH_ZIMBABWE: return "en_ZW";
case SUBLANG_ENGLISH_PHILIPPINES: return "en_PH"; case SUBLANG_ENGLISH_PHILIPPINES: return "en_PH";
case SUBLANG_ENGLISH_INDONESIA: return "en_ID";
case SUBLANG_ENGLISH_HONGKONG: return "en_HK";
case SUBLANG_ENGLISH_INDIA: return "en_IN";
case SUBLANG_ENGLISH_MALAYSIA: return "en_MY";
case SUBLANG_ENGLISH_SINGAPORE: return "en_SG";
} }
return "en"; return "en";
case LANG_ESTONIAN: return "et_EE"; case LANG_ESTONIAN: return "et_EE";
@ -566,11 +894,22 @@ _nl_locale_name (category, categoryname)
case SUBLANG_FRENCH_SWISS: return "fr_CH"; case SUBLANG_FRENCH_SWISS: return "fr_CH";
case SUBLANG_FRENCH_LUXEMBOURG: return "fr_LU"; case SUBLANG_FRENCH_LUXEMBOURG: return "fr_LU";
case SUBLANG_FRENCH_MONACO: return "fr_MC"; case SUBLANG_FRENCH_MONACO: return "fr_MC";
case SUBLANG_FRENCH_WESTINDIES: return "fr"; /* Caribbean? */
case SUBLANG_FRENCH_REUNION: return "fr_RE";
case SUBLANG_FRENCH_CONGO: return "fr_CG";
case SUBLANG_FRENCH_SENEGAL: return "fr_SN";
case SUBLANG_FRENCH_CAMEROON: return "fr_CM";
case SUBLANG_FRENCH_COTEDIVOIRE: return "fr_CI";
case SUBLANG_FRENCH_MALI: return "fr_ML";
case SUBLANG_FRENCH_MOROCCO: return "fr_MA";
case SUBLANG_FRENCH_HAITI: return "fr_HT";
} }
return "fr"; return "fr";
case 0x62: /* FRISIAN */ return "fy_NL"; case LANG_FRISIAN: return "fy_NL";
case 0x67: /* FULFULDE */ return "ful_NG"; case LANG_FULFULDE:
case 0x3c: /* GAELIC */ /* Spoken in Nigeria, Guinea, Senegal, Mali, Niger, Cameroon, Benin. */
return "ff_NG";
case LANG_GAELIC:
switch (sub) switch (sub)
{ {
case 0x01: /* SCOTTISH */ return "gd_GB"; case 0x01: /* SCOTTISH */ return "gd_GB";
@ -590,21 +929,21 @@ _nl_locale_name (category, categoryname)
} }
return "de"; return "de";
case LANG_GREEK: return "el_GR"; case LANG_GREEK: return "el_GR";
case 0x74: /* GUARANI */ return "gn_PY"; case LANG_GUARANI: return "gn_PY";
case LANG_GUJARATI: return "gu_IN"; case LANG_GUJARATI: return "gu_IN";
case 0x68: /* HAUSA */ return "ha_NG"; case LANG_HAUSA: return "ha_NG";
case 0x75: /* HAWAIIAN */ case LANG_HAWAIIAN:
/* FIXME: Do they mean Hawaiian ("haw_US", 1000 speakers) /* FIXME: Do they mean Hawaiian ("haw_US", 1000 speakers)
or Hawaii Creole English ("cpe_US", 600000 speakers)? */ or Hawaii Creole English ("cpe_US", 600000 speakers)? */
return "cpe_US"; return "cpe_US";
case LANG_HEBREW: return "he_IL"; case LANG_HEBREW: return "he_IL";
case LANG_HINDI: return "hi_IN"; case LANG_HINDI: return "hi_IN";
case LANG_HUNGARIAN: return "hu_HU"; case LANG_HUNGARIAN: return "hu_HU";
case 0x69: /* IBIBIO */ return "nic_NG"; case LANG_IBIBIO: return "nic_NG";
case LANG_ICELANDIC: return "is_IS"; case LANG_ICELANDIC: return "is_IS";
case 0x70: /* IGBO */ return "ibo_NG"; case LANG_IGBO: return "ig_NG";
case LANG_INDONESIAN: return "id_ID"; case LANG_INDONESIAN: return "id_ID";
case 0x5d: /* INUKTITUT */ return "iu_CA"; case LANG_INUKTITUT: return "iu_CA";
case LANG_ITALIAN: case LANG_ITALIAN:
switch (sub) switch (sub)
{ {
@ -614,7 +953,7 @@ _nl_locale_name (category, categoryname)
return "it"; return "it";
case LANG_JAPANESE: return "ja_JP"; case LANG_JAPANESE: return "ja_JP";
case LANG_KANNADA: return "kn_IN"; case LANG_KANNADA: return "kn_IN";
case 0x71: /* KANURI */ return "kau_NG"; case LANG_KANURI: return "kr_NG";
case LANG_KASHMIRI: case LANG_KASHMIRI:
switch (sub) switch (sub)
{ {
@ -628,8 +967,8 @@ _nl_locale_name (category, categoryname)
return "kok_IN"; return "kok_IN";
case LANG_KOREAN: return "ko_KR"; case LANG_KOREAN: return "ko_KR";
case LANG_KYRGYZ: return "ky_KG"; case LANG_KYRGYZ: return "ky_KG";
case 0x54: /* LAO */ return "lo_LA"; case LANG_LAO: return "lo_LA";
case 0x76: /* LATIN */ return "la_VA"; case LANG_LATIN: return "la_VA";
case LANG_LATVIAN: return "lv_LV"; case LANG_LATVIAN: return "lv_LV";
case LANG_LITHUANIAN: return "lt_LT"; case LANG_LITHUANIAN: return "lt_LT";
case LANG_MACEDONIAN: return "mk_MK"; case LANG_MACEDONIAN: return "mk_MK";
@ -641,7 +980,7 @@ _nl_locale_name (category, categoryname)
} }
return "ms"; return "ms";
case LANG_MALAYALAM: return "ml_IN"; case LANG_MALAYALAM: return "ml_IN";
case 0x3a: /* MALTESE */ return "mt_MT"; case LANG_MALTESE: return "mt_MT";
case LANG_MANIPURI: case LANG_MANIPURI:
/* FIXME: Adjust this when such locales appear on Unix. */ /* FIXME: Adjust this when such locales appear on Unix. */
return "mni_IN"; return "mni_IN";
@ -663,9 +1002,9 @@ _nl_locale_name (category, categoryname)
} }
return "no"; return "no";
case LANG_ORIYA: return "or_IN"; case LANG_ORIYA: return "or_IN";
case 0x72: /* OROMO */ return "om_ET"; case LANG_OROMO: return "om_ET";
case 0x79: /* PAPIAMENTU */ return "pap_AN"; case LANG_PAPIAMENTU: return "pap_AN";
case 0x63: /* PASHTO */ case LANG_PASHTO:
return "ps"; /* Ambiguous: could be "ps_PK" or "ps_AF". */ return "ps"; /* Ambiguous: could be "ps_PK" or "ps_AF". */
case LANG_POLISH: return "pl_PL"; case LANG_POLISH: return "pl_PL";
case LANG_PORTUGUESE: case LANG_PORTUGUESE:
@ -677,18 +1016,36 @@ _nl_locale_name (category, categoryname)
case SUBLANG_PORTUGUESE_BRAZILIAN: return "pt_BR"; case SUBLANG_PORTUGUESE_BRAZILIAN: return "pt_BR";
} }
return "pt"; return "pt";
case LANG_PUNJABI: return "pa_IN"; case LANG_PUNJABI:
case 0x17: /* RHAETO-ROMANCE */ return "rm_CH"; switch (sub)
case LANG_ROMANIAN: return "ro_RO"; {
case SUBLANG_PUNJABI_INDIA: return "pa_IN"; /* Gurmukhi script */
case SUBLANG_PUNJABI_PAKISTAN: return "pa_PK"; /* Arabic script */
}
return "pa";
case LANG_RHAETO_ROMANCE: return "rm_CH";
case LANG_ROMANIAN:
switch (sub)
{
case SUBLANG_ROMANIAN_ROMANIA: return "ro_RO";
case SUBLANG_ROMANIAN_MOLDOVA: return "ro_MD";
}
return "ro";
case LANG_RUSSIAN: case LANG_RUSSIAN:
return "ru"; /* Ambiguous: could be "ru_RU" or "ru_UA". */ return "ru"; /* Ambiguous: could be "ru_RU" or "ru_UA" or "ru_MD". */
case 0x3b: /* SAMI */ return "se_NO"; case LANG_SAAMI: /* actually Northern Sami */ return "se_NO";
case LANG_SANSKRIT: return "sa_IN"; case LANG_SANSKRIT: return "sa_IN";
case LANG_SINDHI: return "sd"; case LANG_SINDHI:
case 0x5b: /* SINHALESE */ return "si_LK"; switch (sub)
{
case SUBLANG_SINDHI_INDIA: return "sd_IN";
case SUBLANG_SINDHI_PAKISTAN: return "sd_PK";
}
return "sd";
case LANG_SINHALESE: return "si_LK";
case LANG_SLOVAK: return "sk_SK"; case LANG_SLOVAK: return "sk_SK";
case LANG_SLOVENIAN: return "sl_SI"; case LANG_SLOVENIAN: return "sl_SI";
case 0x77: /* SOMALI */ return "so_SO"; case LANG_SOMALI: return "so_SO";
case LANG_SORBIAN: case LANG_SORBIAN:
/* FIXME: Adjust this when such locales appear on Unix. */ /* FIXME: Adjust this when such locales appear on Unix. */
return "wen_DE"; return "wen_DE";
@ -718,7 +1075,7 @@ _nl_locale_name (category, categoryname)
case SUBLANG_SPANISH_PUERTO_RICO: return "es_PR"; case SUBLANG_SPANISH_PUERTO_RICO: return "es_PR";
} }
return "es"; return "es";
case 0x30: /* SUTU */ return "bnt_TZ"; case LANG_SUTU: return "bnt_TZ"; /* or "st_LS" or "nso_ZA"? */
case LANG_SWAHILI: return "sw_KE"; case LANG_SWAHILI: return "sw_KE";
case LANG_SWEDISH: case LANG_SWEDISH:
switch (sub) switch (sub)
@ -728,19 +1085,33 @@ _nl_locale_name (category, categoryname)
} }
return "sv"; return "sv";
case LANG_SYRIAC: return "syr_TR"; /* An extinct language. */ case LANG_SYRIAC: return "syr_TR"; /* An extinct language. */
case 0x64: /* TAGALOG */ return "tl_PH"; case LANG_TAGALOG: return "tl_PH";
case 0x28: /* TAJIK */ return "tg_TJ"; case LANG_TAJIK: return "tg_TJ";
case 0x5f: /* TAMAZIGHT */ return "ber_MA"; case LANG_TAMAZIGHT:
switch (sub)
{
/* FIXME: Adjust this when Tamazight locales appear on Unix. */
case SUBLANG_TAMAZIGHT_ARABIC: return "ber_MA@arabic";
case SUBLANG_TAMAZIGHT_LATIN: return "ber_MA@latin";
}
return "ber_MA";
case LANG_TAMIL: case LANG_TAMIL:
return "ta"; /* Ambiguous: could be "ta_IN" or "ta_LK" or "ta_SG". */ return "ta"; /* Ambiguous: could be "ta_IN" or "ta_LK" or "ta_SG". */
case LANG_TATAR: return "tt_RU"; case LANG_TATAR: return "tt_RU";
case LANG_TELUGU: return "te_IN"; case LANG_TELUGU: return "te_IN";
case LANG_THAI: return "th_TH"; case LANG_THAI: return "th_TH";
case 0x51: /* TIBETAN */ return "bo_CN"; case LANG_TIBETAN: return "bo_CN";
case 0x73: /* TIGRINYA */ return "ti_ET"; case LANG_TIGRINYA:
case 0x31: /* TSONGA */ return "ts_ZA"; switch (sub)
{
case SUBLANG_TIGRINYA_ETHIOPIA: return "ti_ET";
case SUBLANG_TIGRINYA_ERITREA: return "ti_ER";
}
return "ti";
case LANG_TSONGA: return "ts_ZA";
case LANG_TSWANA: return "tn_BW";
case LANG_TURKISH: return "tr_TR"; case LANG_TURKISH: return "tr_TR";
case 0x42: /* TURKMEN */ return "tk_TM"; case LANG_TURKMEN: return "tk_TM";
case LANG_UKRAINIAN: return "uk_UA"; case LANG_UKRAINIAN: return "uk_UA";
case LANG_URDU: case LANG_URDU:
switch (sub) switch (sub)
@ -752,19 +1123,18 @@ _nl_locale_name (category, categoryname)
case LANG_UZBEK: case LANG_UZBEK:
switch (sub) switch (sub)
{ {
/* FIXME: Adjust this when Uzbek locales appear on Unix. */ case SUBLANG_UZBEK_LATIN: return "uz_UZ";
case SUBLANG_UZBEK_LATIN: return "uz_UZ@latin";
case SUBLANG_UZBEK_CYRILLIC: return "uz_UZ@cyrillic"; case SUBLANG_UZBEK_CYRILLIC: return "uz_UZ@cyrillic";
} }
return "uz"; return "uz";
case 0x33: /* VENDA */ return "ven_ZA"; case LANG_VENDA: return "ve_ZA";
case LANG_VIETNAMESE: return "vi_VN"; case LANG_VIETNAMESE: return "vi_VN";
case 0x52: /* WELSH */ return "cy_GB"; case LANG_WELSH: return "cy_GB";
case 0x34: /* XHOSA */ return "xh_ZA"; case LANG_XHOSA: return "xh_ZA";
case 0x78: /* YI */ return "sit_CN"; case LANG_YI: return "sit_CN";
case 0x3d: /* YIDDISH */ return "yi_IL"; case LANG_YIDDISH: return "yi_IL";
case 0x6a: /* YORUBA */ return "yo_NG"; case LANG_YORUBA: return "yo_NG";
case 0x35: /* ZULU */ return "zu_ZA"; case LANG_ZULU: return "zu_ZA";
default: return "C"; default: return "C";
} }

View File

@ -28,9 +28,7 @@
/* Print an ASCII string with quotes and escape sequences where needed. */ /* Print an ASCII string with quotes and escape sequences where needed. */
static void static void
print_escaped (stream, str) print_escaped (FILE *stream, const char *str)
FILE *stream;
const char *str;
{ {
putc ('"', stream); putc ('"', stream);
for (; *str != '\0'; str++) for (; *str != '\0'; str++)
@ -52,12 +50,8 @@ print_escaped (stream, str)
/* Add to the log file an entry denoting a failed translation. */ /* Add to the log file an entry denoting a failed translation. */
void void
_nl_log_untranslated (logfilename, domainname, msgid1, msgid2, plural) _nl_log_untranslated (const char *logfilename, const char *domainname,
const char *logfilename; const char *msgid1, const char *msgid2, int plural)
const char *domainname;
const char *msgid1;
const char *msgid2;
int plural;
{ {
static char *last_logfilename = NULL; static char *last_logfilename = NULL;
static FILE *last_logfile = NULL; static FILE *last_logfile = NULL;

View File

@ -1,5 +1,5 @@
/* Implementation of ngettext(3) function. /* Implementation of ngettext(3) function.
Copyright (C) 1995, 1997, 2000, 2001, 2002 Free Software Foundation, Inc. Copyright (C) 1995, 1997, 2000-2003 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published under the terms of the GNU Library General Public License as published
@ -54,10 +54,7 @@
LC_MESSAGES locale. If not found, returns MSGID itself (the default LC_MESSAGES locale. If not found, returns MSGID itself (the default
text). */ text). */
char * char *
NGETTEXT (msgid1, msgid2, n) NGETTEXT (const char *msgid1, const char *msgid2, unsigned long int n)
const char *msgid1;
const char *msgid2;
unsigned long int n;
{ {
return DCNGETTEXT (NULL, msgid1, msgid2, n, LC_MESSAGES); return DCNGETTEXT (NULL, msgid1, msgid2, n, LC_MESSAGES);
} }

View File

@ -1,5 +1,5 @@
/* Expression parsing for plural form selection. /* Expression parsing for plural form selection.
Copyright (C) 2000, 2001 Free Software Foundation, Inc. Copyright (C) 2000-2001, 2003 Free Software Foundation, Inc.
Written by Ulrich Drepper <drepper@cygnus.com>, 2000. Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
@ -96,10 +96,8 @@ init_germanic_plural ()
void void
internal_function internal_function
EXTRACT_PLURAL_EXPRESSION (nullentry, pluralp, npluralsp) EXTRACT_PLURAL_EXPRESSION (const char *nullentry, struct expression **pluralp,
const char *nullentry; unsigned long int *npluralsp)
struct expression **pluralp;
unsigned long int *npluralsp;
{ {
if (nullentry != NULL) if (nullentry != NULL)
{ {

View File

@ -1,5 +1,5 @@
/* Expression parsing and evaluation for plural form selection. /* Expression parsing and evaluation for plural form selection.
Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. Copyright (C) 2000-2003 Free Software Foundation, Inc.
Written by Ulrich Drepper <drepper@cygnus.com>, 2000. Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
@ -20,14 +20,6 @@
#ifndef _PLURAL_EXP_H #ifndef _PLURAL_EXP_H
#define _PLURAL_EXP_H #define _PLURAL_EXP_H
#ifndef PARAMS
# if __STDC__ || defined __GNUC__ || defined __SUNPRO_C || defined __cplusplus || __PROTOTYPES
# define PARAMS(args) args
# else
# define PARAMS(args) ()
# endif
#endif
#ifndef internal_function #ifndef internal_function
# define internal_function # define internal_function
#endif #endif
@ -109,18 +101,18 @@ struct parse_args
# define EXTRACT_PLURAL_EXPRESSION extract_plural_expression # define EXTRACT_PLURAL_EXPRESSION extract_plural_expression
#endif #endif
extern void FREE_EXPRESSION PARAMS ((struct expression *exp)) extern void FREE_EXPRESSION (struct expression *exp)
internal_function; internal_function;
extern int PLURAL_PARSE PARAMS ((void *arg)); extern int PLURAL_PARSE (void *arg);
extern struct expression GERMANIC_PLURAL attribute_hidden; extern struct expression GERMANIC_PLURAL attribute_hidden;
extern void EXTRACT_PLURAL_EXPRESSION PARAMS ((const char *nullentry, extern void EXTRACT_PLURAL_EXPRESSION (const char *nullentry,
struct expression **pluralp, struct expression **pluralp,
unsigned long int *npluralsp)) unsigned long int *npluralsp)
internal_function; internal_function;
#if !defined (_LIBC) && !defined (IN_LIBINTL) #if !defined (_LIBC) && !defined (IN_LIBINTL)
extern unsigned long int plural_eval PARAMS ((struct expression *pexp, extern unsigned long int plural_eval (struct expression *pexp,
unsigned long int n)); unsigned long int n);
#endif #endif
#endif /* _PLURAL_EXP_H */ #endif /* _PLURAL_EXP_H */

View File

@ -19,7 +19,7 @@
#line 1 "plural.y" #line 1 "plural.y"
/* Expression parsing for plural form selection. /* Expression parsing for plural form selection.
Copyright (C) 2000, 2001 Free Software Foundation, Inc. Copyright (C) 2000-2001, 2003 Free Software Foundation, Inc.
Written by Ulrich Drepper <drepper@cygnus.com>, 2000. Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
@ -75,28 +75,13 @@ typedef union {
#line 55 "plural.y" #line 55 "plural.y"
/* Prototypes for local functions. */ /* Prototypes for local functions. */
static struct expression *new_exp PARAMS ((int nargs, enum operator op, static int yylex (YYSTYPE *lval, const char **pexp);
struct expression * const *args)); static void yyerror (const char *str);
static inline struct expression *new_exp_0 PARAMS ((enum operator op));
static inline struct expression *new_exp_1 PARAMS ((enum operator op,
struct expression *right));
static struct expression *new_exp_2 PARAMS ((enum operator op,
struct expression *left,
struct expression *right));
static inline struct expression *new_exp_3 PARAMS ((enum operator op,
struct expression *bexp,
struct expression *tbranch,
struct expression *fbranch));
static int yylex PARAMS ((YYSTYPE *lval, const char **pexp));
static void yyerror PARAMS ((const char *str));
/* Allocation of expressions. */ /* Allocation of expressions. */
static struct expression * static struct expression *
new_exp (nargs, op, args) new_exp (int nargs, enum operator op, struct expression * const *args)
int nargs;
enum operator op;
struct expression * const *args;
{ {
int i; int i;
struct expression *newp; struct expression *newp;
@ -125,16 +110,13 @@ new_exp (nargs, op, args)
} }
static inline struct expression * static inline struct expression *
new_exp_0 (op) new_exp_0 (enum operator op)
enum operator op;
{ {
return new_exp (0, op, NULL); return new_exp (0, op, NULL);
} }
static inline struct expression * static inline struct expression *
new_exp_1 (op, right) new_exp_1 (enum operator op, struct expression *right)
enum operator op;
struct expression *right;
{ {
struct expression *args[1]; struct expression *args[1];
@ -143,10 +125,7 @@ new_exp_1 (op, right)
} }
static struct expression * static struct expression *
new_exp_2 (op, left, right) new_exp_2 (enum operator op, struct expression *left, struct expression *right)
enum operator op;
struct expression *left;
struct expression *right;
{ {
struct expression *args[2]; struct expression *args[2];
@ -156,11 +135,8 @@ new_exp_2 (op, left, right)
} }
static inline struct expression * static inline struct expression *
new_exp_3 (op, bexp, tbranch, fbranch) new_exp_3 (enum operator op, struct expression *bexp,
enum operator op; struct expression *tbranch, struct expression *fbranch)
struct expression *bexp;
struct expression *tbranch;
struct expression *fbranch;
{ {
struct expression *args[3]; struct expression *args[3];
@ -236,8 +212,8 @@ static const short yyrhs[] =
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const short yyrline[] = static const short yyrline[] =
{ {
0, 174, 182, 186, 190, 194, 198, 202, 206, 210, 0, 150, 158, 162, 166, 170, 174, 178, 182, 186,
214, 218, 223 190, 194, 199
}; };
#endif #endif
@ -1027,7 +1003,7 @@ yyreduce:
switch (yyn) { switch (yyn) {
case 1: case 1:
#line 175 "plural.y" #line 151 "plural.y"
{ {
if (yyvsp[0].exp == NULL) if (yyvsp[0].exp == NULL)
YYABORT; YYABORT;
@ -1035,68 +1011,68 @@ case 1:
} }
break; break;
case 2: case 2:
#line 183 "plural.y" #line 159 "plural.y"
{ {
yyval.exp = new_exp_3 (qmop, yyvsp[-4].exp, yyvsp[-2].exp, yyvsp[0].exp); yyval.exp = new_exp_3 (qmop, yyvsp[-4].exp, yyvsp[-2].exp, yyvsp[0].exp);
} }
break; break;
case 3: case 3:
#line 187 "plural.y" #line 163 "plural.y"
{ {
yyval.exp = new_exp_2 (lor, yyvsp[-2].exp, yyvsp[0].exp); yyval.exp = new_exp_2 (lor, yyvsp[-2].exp, yyvsp[0].exp);
} }
break; break;
case 4: case 4:
#line 191 "plural.y" #line 167 "plural.y"
{ {
yyval.exp = new_exp_2 (land, yyvsp[-2].exp, yyvsp[0].exp); yyval.exp = new_exp_2 (land, yyvsp[-2].exp, yyvsp[0].exp);
} }
break; break;
case 5: case 5:
#line 195 "plural.y" #line 171 "plural.y"
{ {
yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
} }
break; break;
case 6: case 6:
#line 199 "plural.y" #line 175 "plural.y"
{ {
yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
} }
break; break;
case 7: case 7:
#line 203 "plural.y" #line 179 "plural.y"
{ {
yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
} }
break; break;
case 8: case 8:
#line 207 "plural.y" #line 183 "plural.y"
{ {
yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
} }
break; break;
case 9: case 9:
#line 211 "plural.y" #line 187 "plural.y"
{ {
yyval.exp = new_exp_1 (lnot, yyvsp[0].exp); yyval.exp = new_exp_1 (lnot, yyvsp[0].exp);
} }
break; break;
case 10: case 10:
#line 215 "plural.y" #line 191 "plural.y"
{ {
yyval.exp = new_exp_0 (var); yyval.exp = new_exp_0 (var);
} }
break; break;
case 11: case 11:
#line 219 "plural.y" #line 195 "plural.y"
{ {
if ((yyval.exp = new_exp_0 (num)) != NULL) if ((yyval.exp = new_exp_0 (num)) != NULL)
yyval.exp->val.num = yyvsp[0].num; yyval.exp->val.num = yyvsp[0].num;
} }
break; break;
case 12: case 12:
#line 224 "plural.y" #line 200 "plural.y"
{ {
yyval.exp = yyvsp[-1].exp; yyval.exp = yyvsp[-1].exp;
} }
@ -1334,13 +1310,12 @@ yyreturn:
#endif #endif
return yyresult; return yyresult;
} }
#line 229 "plural.y" #line 205 "plural.y"
void void
internal_function internal_function
FREE_EXPRESSION (exp) FREE_EXPRESSION (struct expression *exp)
struct expression *exp;
{ {
if (exp == NULL) if (exp == NULL)
return; return;
@ -1366,9 +1341,7 @@ FREE_EXPRESSION (exp)
static int static int
yylex (lval, pexp) yylex (YYSTYPE *lval, const char **pexp)
YYSTYPE *lval;
const char **pexp;
{ {
const char *exp = *pexp; const char *exp = *pexp;
int result; int result;
@ -1511,8 +1484,7 @@ yylex (lval, pexp)
static void static void
yyerror (str) yyerror (const char *str)
const char *str;
{ {
/* Do nothing. We don't print error messages here. */ /* Do nothing. We don't print error messages here. */
} }

View File

@ -1,6 +1,6 @@
%{ %{
/* Expression parsing for plural form selection. /* Expression parsing for plural form selection.
Copyright (C) 2000, 2001 Free Software Foundation, Inc. Copyright (C) 2000-2001, 2003 Free Software Foundation, Inc.
Written by Ulrich Drepper <drepper@cygnus.com>, 2000. Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
@ -54,28 +54,13 @@
%{ %{
/* Prototypes for local functions. */ /* Prototypes for local functions. */
static struct expression *new_exp PARAMS ((int nargs, enum operator op, static int yylex (YYSTYPE *lval, const char **pexp);
struct expression * const *args)); static void yyerror (const char *str);
static inline struct expression *new_exp_0 PARAMS ((enum operator op));
static inline struct expression *new_exp_1 PARAMS ((enum operator op,
struct expression *right));
static struct expression *new_exp_2 PARAMS ((enum operator op,
struct expression *left,
struct expression *right));
static inline struct expression *new_exp_3 PARAMS ((enum operator op,
struct expression *bexp,
struct expression *tbranch,
struct expression *fbranch));
static int yylex PARAMS ((YYSTYPE *lval, const char **pexp));
static void yyerror PARAMS ((const char *str));
/* Allocation of expressions. */ /* Allocation of expressions. */
static struct expression * static struct expression *
new_exp (nargs, op, args) new_exp (int nargs, enum operator op, struct expression * const *args)
int nargs;
enum operator op;
struct expression * const *args;
{ {
int i; int i;
struct expression *newp; struct expression *newp;
@ -104,16 +89,13 @@ new_exp (nargs, op, args)
} }
static inline struct expression * static inline struct expression *
new_exp_0 (op) new_exp_0 (enum operator op)
enum operator op;
{ {
return new_exp (0, op, NULL); return new_exp (0, op, NULL);
} }
static inline struct expression * static inline struct expression *
new_exp_1 (op, right) new_exp_1 (enum operator op, struct expression *right)
enum operator op;
struct expression *right;
{ {
struct expression *args[1]; struct expression *args[1];
@ -122,10 +104,7 @@ new_exp_1 (op, right)
} }
static struct expression * static struct expression *
new_exp_2 (op, left, right) new_exp_2 (enum operator op, struct expression *left, struct expression *right)
enum operator op;
struct expression *left;
struct expression *right;
{ {
struct expression *args[2]; struct expression *args[2];
@ -135,11 +114,8 @@ new_exp_2 (op, left, right)
} }
static inline struct expression * static inline struct expression *
new_exp_3 (op, bexp, tbranch, fbranch) new_exp_3 (enum operator op, struct expression *bexp,
enum operator op; struct expression *tbranch, struct expression *fbranch)
struct expression *bexp;
struct expression *tbranch;
struct expression *fbranch;
{ {
struct expression *args[3]; struct expression *args[3];
@ -230,8 +206,7 @@ exp: exp '?' exp ':' exp
void void
internal_function internal_function
FREE_EXPRESSION (exp) FREE_EXPRESSION (struct expression *exp)
struct expression *exp;
{ {
if (exp == NULL) if (exp == NULL)
return; return;
@ -257,9 +232,7 @@ FREE_EXPRESSION (exp)
static int static int
yylex (lval, pexp) yylex (YYSTYPE *lval, const char **pexp)
YYSTYPE *lval;
const char **pexp;
{ {
const char *exp = *pexp; const char *exp = *pexp;
int result; int result;
@ -402,8 +375,7 @@ yylex (lval, pexp)
static void static void
yyerror (str) yyerror (const char *str)
const char *str;
{ {
/* Do nothing. We don't print error messages here. */ /* Do nothing. We don't print error messages here. */
} }

View File

@ -42,7 +42,12 @@
#ifdef NO_XMALLOC #ifdef NO_XMALLOC
# define xmalloc malloc # define xmalloc malloc
#else #else
# include "xmalloc.h" # include "xalloc.h"
#endif
#if defined _WIN32 || defined __WIN32__
# define WIN32_LEAN_AND_MEAN
# include <windows.h>
#endif #endif
#if DEPENDS_ON_LIBCHARSET #if DEPENDS_ON_LIBCHARSET
@ -152,6 +157,8 @@ set_relocation_prefix (const char *orig_prefix_arg, const char *curr_prefix_arg)
#endif #endif
} }
#if !defined IN_LIBRARY || (defined PIC && defined INSTALLDIR)
/* Convenience function: /* Convenience function:
Computes the current installation prefix, based on the original Computes the current installation prefix, based on the original
installation prefix, the original installation directory of a particular installation prefix, the original installation directory of a particular
@ -266,6 +273,8 @@ compute_curr_prefix (const char *orig_installprefix,
} }
} }
#endif /* !IN_LIBRARY || PIC */
#if defined PIC && defined INSTALLDIR #if defined PIC && defined INSTALLDIR
/* Full pathname of shared library, or NULL. */ /* Full pathname of shared library, or NULL. */
@ -304,7 +313,8 @@ DllMain (HINSTANCE module_handle, DWORD event, LPVOID reserved)
static void static void
find_shared_library_fullname () find_shared_library_fullname ()
{ {
#ifdef __linux__ #if defined __linux__ && __GLIBC__ >= 2
/* Linux has /proc/self/maps. glibc 2 has the getline() function. */
FILE *fp; FILE *fp;
/* Open the current process' maps file. It describes one VMA per line. */ /* Open the current process' maps file. It describes one VMA per line. */

View File

@ -20,6 +20,11 @@
#ifndef _RELOCATABLE_H #ifndef _RELOCATABLE_H
#define _RELOCATABLE_H #define _RELOCATABLE_H
#ifdef __cplusplus
extern "C" {
#endif
/* This can be enabled through the configure --enable-relocatable option. */ /* This can be enabled through the configure --enable-relocatable option. */
#if ENABLE_RELOCATABLE #if ENABLE_RELOCATABLE
@ -64,4 +69,9 @@ extern const char * compute_curr_prefix (const char *orig_installprefix,
#endif #endif
#ifdef __cplusplus
}
#endif
#endif /* _RELOCATABLE_H */ #endif /* _RELOCATABLE_H */

View File

@ -1,5 +1,5 @@
/* Implementation of the textdomain(3) function. /* Implementation of the textdomain(3) function.
Copyright (C) 1995-1998, 2000, 2001, 2002 Free Software Foundation, Inc. Copyright (C) 1995-1998, 2000-2003 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published under the terms of the GNU Library General Public License as published
@ -77,8 +77,7 @@ __libc_rwlock_define (extern, _nl_state_lock attribute_hidden)
If DOMAINNAME is null, return the current default. If DOMAINNAME is null, return the current default.
If DOMAINNAME is "", reset to the default of "messages". */ If DOMAINNAME is "", reset to the default of "messages". */
char * char *
TEXTDOMAIN (domainname) TEXTDOMAIN (const char *domainname)
const char *domainname;
{ {
char *new_domain; char *new_domain;
char *old_domain; char *old_domain;

View File

@ -1,3 +1,7 @@
2004-09-30 Werner Koch <wk@g10code.com>
* Makefile.am: Adjusted fro gettext 0.14.
2004-08-24 Werner Koch <wk@g10code.de> 2004-08-24 Werner Koch <wk@g10code.de>
* kbxutil.c: New command --import-openpgp. * kbxutil.c: New command --import-openpgp.

View File

@ -45,7 +45,7 @@ libkeybox_a_SOURCES = $(common_sources)
kbxutil_SOURCES = kbxutil.c $(common_sources) kbxutil_SOURCES = kbxutil.c $(common_sources)
kbxutil_LDADD = ../jnlib/libjnlib.a $(KSBA_LIBS) $(LIBGCRYPT_LIBS) \ kbxutil_LDADD = ../jnlib/libjnlib.a $(KSBA_LIBS) $(LIBGCRYPT_LIBS) \
-lgpg-error @INTLLIBS@ -lgpg-error @LIBINTL@

View File

@ -1,3 +1,25 @@
2004-09-30 Werner Koch <wk@g10code.com>
* gpg-error.m4, libassuan.m4, libgcrypt.m4: Updated.
2004-09-30 gettextize <bug-gnu-gettext@gnu.org>
* gettext.m4: Upgrade to gettext-0.14.1.
* intmax.m4: New file, from gettext-0.14.1.
* lib-ld.m4: Upgrade to gettext-0.14.1.
* lib-prefix.m4: Upgrade to gettext-0.14.1.
* longdouble.m4: New file, from gettext-0.14.1.
* longlong.m4: New file, from gettext-0.14.1.
* po.m4: Upgrade to gettext-0.14.1.
* printf-posix.m4: New file, from gettext-0.14.1.
* signed.m4: New file, from gettext-0.14.1.
* size_max.m4: New file, from gettext-0.14.1.
* ulonglong.m4: Upgrade to gettext-0.14.1.
* wchar_t.m4: New file, from gettext-0.14.1.
* wint_t.m4: New file, from gettext-0.14.1.
* xsize.m4: New file, from gettext-0.14.1.
* Makefile.am (EXTRA_DIST): Add the new files.
2004-03-06 Werner Koch <wk@gnupg.org> 2004-03-06 Werner Koch <wk@gnupg.org>
* libgcrypt.m4: Updated. * libgcrypt.m4: Updated.

View File

@ -1,3 +1,3 @@
EXTRA_DIST = codeset.m4 gettext.m4 glibc21.m4 iconv.m4 intdiv0.m4 inttypes.m4 inttypes_h.m4 inttypes-pri.m4 isc-posix.m4 lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 progtest.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4 EXTRA_DIST = intmax.m4 longdouble.m4 longlong.m4 printf-posix.m4 signed.m4 size_max.m4 wchar_t.m4 wint_t.m4 xsize.m4 codeset.m4 gettext.m4 glibc21.m4 iconv.m4 intdiv0.m4 inttypes.m4 inttypes_h.m4 inttypes-pri.m4 isc-posix.m4 lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 progtest.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4
EXTRA_DIST += gpg-error.m4 libgcrypt.m4 libassuan.m4 ksba.m4 EXTRA_DIST += gpg-error.m4 libgcrypt.m4 libassuan.m4 ksba.m4

View File

@ -1,4 +1,4 @@
# gettext.m4 serial 20 (gettext-0.12) # gettext.m4 serial 28 (gettext-0.13)
dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General dnl General Public License. As a special exception to the GNU General
@ -354,9 +354,18 @@ AC_DEFUN([AM_INTL_SUBDIR],
AC_REQUIRE([AC_ISC_POSIX])dnl AC_REQUIRE([AC_ISC_POSIX])dnl
AC_REQUIRE([AC_HEADER_STDC])dnl AC_REQUIRE([AC_HEADER_STDC])dnl
AC_REQUIRE([AC_C_CONST])dnl AC_REQUIRE([AC_C_CONST])dnl
AC_REQUIRE([bh_C_SIGNED])dnl
AC_REQUIRE([AC_C_INLINE])dnl AC_REQUIRE([AC_C_INLINE])dnl
AC_REQUIRE([AC_TYPE_OFF_T])dnl AC_REQUIRE([AC_TYPE_OFF_T])dnl
AC_REQUIRE([AC_TYPE_SIZE_T])dnl AC_REQUIRE([AC_TYPE_SIZE_T])dnl
AC_REQUIRE([jm_AC_TYPE_LONG_LONG])dnl
AC_REQUIRE([gt_TYPE_LONGDOUBLE])dnl
AC_REQUIRE([gt_TYPE_WCHAR_T])dnl
AC_REQUIRE([gt_TYPE_WINT_T])dnl
AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
AC_REQUIRE([jm_AC_HEADER_STDINT_H])
AC_REQUIRE([gt_TYPE_INTMAX_T])
AC_REQUIRE([gt_PRINTF_POSIX])
AC_REQUIRE([AC_FUNC_ALLOCA])dnl AC_REQUIRE([AC_FUNC_ALLOCA])dnl
AC_REQUIRE([AC_FUNC_MMAP])dnl AC_REQUIRE([AC_FUNC_MMAP])dnl
AC_REQUIRE([jm_GLIBC21])dnl AC_REQUIRE([jm_GLIBC21])dnl
@ -364,14 +373,57 @@ AC_DEFUN([AM_INTL_SUBDIR],
AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl
AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl
AC_REQUIRE([gt_INTTYPES_PRI])dnl AC_REQUIRE([gt_INTTYPES_PRI])dnl
AC_REQUIRE([gl_XSIZE])dnl
AC_CHECK_TYPE([ptrdiff_t], ,
[AC_DEFINE([ptrdiff_t], [long],
[Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
])
AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
stdlib.h string.h unistd.h sys/param.h]) stdlib.h string.h unistd.h sys/param.h])
AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \ AC_CHECK_FUNCS([asprintf fwprintf getcwd getegid geteuid getgid getuid \
geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \ mempcpy munmap putenv setenv setlocale snprintf stpcpy strcasecmp strdup \
strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next \ strtoul tsearch wcslen __argz_count __argz_stringify __argz_next \
__fsetlocking]) __fsetlocking])
dnl Use the _snprintf function only if it is declared (because on NetBSD it
dnl is defined as a weak alias of snprintf; we prefer to use the latter).
gt_CHECK_DECL(_snprintf, [#include <stdio.h>])
gt_CHECK_DECL(_snwprintf, [#include <stdio.h>])
dnl Use the *_unlocked functions only if they are declared.
dnl (because some of them were defined without being declared in Solaris
dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
dnl on Solaris 2.5.1 to run on Solaris 2.6).
dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13.
gt_CHECK_DECL(feof_unlocked, [#include <stdio.h>])
gt_CHECK_DECL(fgets_unlocked, [#include <stdio.h>])
gt_CHECK_DECL(getc_unlocked, [#include <stdio.h>])
case $gt_cv_func_printf_posix in
*yes) HAVE_POSIX_PRINTF=1 ;;
*) HAVE_POSIX_PRINTF=0 ;;
esac
AC_SUBST([HAVE_POSIX_PRINTF])
if test "$ac_cv_func_asprintf" = yes; then
HAVE_ASPRINTF=1
else
HAVE_ASPRINTF=0
fi
AC_SUBST([HAVE_ASPRINTF])
if test "$ac_cv_func_snprintf" = yes; then
HAVE_SNPRINTF=1
else
HAVE_SNPRINTF=0
fi
AC_SUBST([HAVE_SNPRINTF])
if test "$ac_cv_func_wprintf" = yes; then
HAVE_WPRINTF=1
else
HAVE_WPRINTF=0
fi
AC_SUBST([HAVE_WPRINTF])
AM_ICONV AM_ICONV
AM_LANGINFO_CODESET AM_LANGINFO_CODESET
if test $ac_cv_header_locale_h = yes; then if test $ac_cv_header_locale_h = yes; then
@ -411,5 +463,25 @@ changequote([,])dnl
]) ])
dnl gt_CHECK_DECL(FUNC, INCLUDES)
dnl Check whether a function is declared.
AC_DEFUN([gt_CHECK_DECL],
[
AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1,
[AC_TRY_COMPILE([$2], [
#ifndef $1
char *p = (char *) $1;
#endif
], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)])
if test $ac_cv_have_decl_$1 = yes; then
gt_value=1
else
gt_value=0
fi
AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value],
[Define to 1 if you have the declaration of `$1', and to 0 if you don't.])
])
dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])

View File

@ -4,7 +4,7 @@ dnl AM_PATH_GPG_ERROR([MINIMUM-VERSION,
dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
dnl Test for libgpg-error and define GPG_ERROR_CFLAGS and GPG_ERROR_LIBS dnl Test for libgpg-error and define GPG_ERROR_CFLAGS and GPG_ERROR_LIBS
dnl dnl
AC_DEFUN(AM_PATH_GPG_ERROR, AC_DEFUN([AM_PATH_GPG_ERROR],
[ AC_ARG_WITH(gpg-error-prefix, [ AC_ARG_WITH(gpg-error-prefix,
AC_HELP_STRING([--with-gpg-error-prefix=PFX], AC_HELP_STRING([--with-gpg-error-prefix=PFX],
[prefix where GPG Error is installed (optional)]), [prefix where GPG Error is installed (optional)]),

View File

@ -1,4 +1,4 @@
# lib-ld.m4 serial 2 (gettext-0.12) # lib-ld.m4 serial 3 (gettext-0.13)
dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General dnl General Public License. As a special exception to the GNU General
@ -14,11 +14,12 @@ dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
AC_DEFUN([AC_LIB_PROG_LD_GNU], AC_DEFUN([AC_LIB_PROG_LD_GNU],
[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
[# I'd rather use --version here, but apparently some GNU ld's only accept -v. [# I'd rather use --version here, but apparently some GNU ld's only accept -v.
if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then case `$LD -v 2>&1 </dev/null` in
acl_cv_prog_gnu_ld=yes *GNU* | *'with BFD'*)
else acl_cv_prog_gnu_ld=yes ;;
acl_cv_prog_gnu_ld=no *)
fi]) acl_cv_prog_gnu_ld=no ;;
esac])
with_gnu_ld=$acl_cv_prog_gnu_ld with_gnu_ld=$acl_cv_prog_gnu_ld
]) ])
@ -88,11 +89,12 @@ AC_CACHE_VAL(acl_cv_path_LD,
# Check to see if the program is GNU ld. I'd rather use --version, # Check to see if the program is GNU ld. I'd rather use --version,
# but apparently some GNU ld's only accept -v. # but apparently some GNU ld's only accept -v.
# Break only if it was the GNU/non-GNU ld that we prefer. # Break only if it was the GNU/non-GNU ld that we prefer.
if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
test "$with_gnu_ld" != no && break *GNU* | *'with BFD'*)
else test "$with_gnu_ld" != no && break ;;
test "$with_gnu_ld" != yes && break *)
fi test "$with_gnu_ld" != yes && break ;;
esac
fi fi
done done
IFS="$ac_save_ifs" IFS="$ac_save_ifs"

View File

@ -1,4 +1,4 @@
# lib-prefix.m4 serial 2 (gettext-0.12) # lib-prefix.m4 serial 3 (gettext-0.13)
dnl Copyright (C) 2001-2003 Free Software Foundation, Inc. dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General dnl General Public License. As a special exception to the GNU General
@ -13,7 +13,7 @@ dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
dnl require excessive bracketing. dnl require excessive bracketing.
ifdef([AC_HELP_STRING], ifdef([AC_HELP_STRING],
[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) [AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
dnl to access previously installed libraries. The basic assumption is that dnl to access previously installed libraries. The basic assumption is that

View File

@ -14,7 +14,7 @@ dnl AM_PATH_LIBASSUAN([MINIMUM-VERSION,
dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
dnl Test for libassuan and define LIBASSUAN_CFLAGS and LIBASSUAN_LIBS dnl Test for libassuan and define LIBASSUAN_CFLAGS and LIBASSUAN_LIBS
dnl dnl
AC_DEFUN(AM_PATH_LIBASSUAN, AC_DEFUN([AM_PATH_LIBASSUAN],
[ AC_ARG_WITH(libassuan-prefix, [ AC_ARG_WITH(libassuan-prefix,
AC_HELP_STRING([--with-libassuan-prefix=PFX], AC_HELP_STRING([--with-libassuan-prefix=PFX],
[prefix where LIBASSUAN is installed (optional)]), [prefix where LIBASSUAN is installed (optional)]),

View File

@ -20,7 +20,7 @@ dnl version of libgcrypt is at least 1.2.5 *and* the API number is 1. Using
dnl this features allows to prevent build against newer versions of libgcrypt dnl this features allows to prevent build against newer versions of libgcrypt
dnl with a changed API. dnl with a changed API.
dnl dnl
AC_DEFUN(AM_PATH_LIBGCRYPT, AC_DEFUN([AM_PATH_LIBGCRYPT],
[ AC_ARG_WITH(libgcrypt-prefix, [ AC_ARG_WITH(libgcrypt-prefix,
AC_HELP_STRING([--with-libgcrypt-prefix=PFX], AC_HELP_STRING([--with-libgcrypt-prefix=PFX],
[prefix where LIBGCRYPT is installed (optional)]), [prefix where LIBGCRYPT is installed (optional)]),

241
m4/po.m4
View File

@ -1,4 +1,4 @@
# po.m4 serial 1 (gettext-0.12) # po.m4 serial 3 (gettext-0.14)
dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General dnl General Public License. As a special exception to the GNU General
@ -111,7 +111,7 @@ AC_DEFUN([AM_PO_SUBDIRS],
test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
POMAKEFILEDEPS="POTFILES.in" POMAKEFILEDEPS="POTFILES.in"
# ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
# on $ac_dir but don't depend on user-specified configuration # on $ac_dir but don't depend on user-specified configuration
# parameters. # parameters.
if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
@ -127,19 +127,27 @@ AC_DEFUN([AM_PO_SUBDIRS],
# The set of available languages was given in configure.in. # The set of available languages was given in configure.in.
eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
fi fi
# Compute POFILES
# as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
# Compute UPDATEPOFILES
# as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
# Compute DUMMYPOFILES
# as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
# Compute GMOFILES
# as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
case "$ac_given_srcdir" in case "$ac_given_srcdir" in
.) srcdirpre= ;; .) srcdirpre= ;;
*) srcdirpre='$(srcdir)/' ;; *) srcdirpre='$(srcdir)/' ;;
esac esac
POFILES= POFILES=
GMOFILES=
UPDATEPOFILES= UPDATEPOFILES=
DUMMYPOFILES= DUMMYPOFILES=
GMOFILES=
for lang in $ALL_LINGUAS; do for lang in $ALL_LINGUAS; do
POFILES="$POFILES $srcdirpre$lang.po" POFILES="$POFILES $srcdirpre$lang.po"
GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
DUMMYPOFILES="$DUMMYPOFILES $lang.nop" DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
done done
# CATALOGS depends on both $ac_dir and the user's LINGUAS # CATALOGS depends on both $ac_dir and the user's LINGUAS
# environment variable. # environment variable.
@ -174,7 +182,7 @@ AC_DEFUN([AM_PO_SUBDIRS],
done done
fi fi
test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
if test -f "$f"; then if test -f "$f"; then
case "$f" in case "$f" in
@ -188,10 +196,231 @@ AC_DEFUN([AM_PO_SUBDIRS],
esac esac
done], done],
[# Capture the value of obsolete ALL_LINGUAS because we need it to compute [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
# POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
# from automake. # from automake.
eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
# Capture the value of LINGUAS because we need it to compute CATALOGS. # Capture the value of LINGUAS because we need it to compute CATALOGS.
LINGUAS="${LINGUAS-%UNSET%}" LINGUAS="${LINGUAS-%UNSET%}"
]) ])
]) ])
dnl Postprocesses a Makefile in a directory containing PO files.
AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE],
[
# When this code is run, in config.status, two variables have already been
# set:
# - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in,
# - LINGUAS is the value of the environment variable LINGUAS at configure
# time.
changequote(,)dnl
# Adjust a relative srcdir.
ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
# In autoconf-2.13 it is called $ac_given_srcdir.
# In autoconf-2.50 it is called $srcdir.
test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
case "$ac_given_srcdir" in
.) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
/*) top_srcdir="$ac_given_srcdir" ;;
*) top_srcdir="$ac_dots$ac_given_srcdir" ;;
esac
# Find a way to echo strings without interpreting backslash.
if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then
gt_echo='echo'
else
if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then
gt_echo='printf %s\n'
else
echo_func () {
cat <<EOT
$*
EOT
}
gt_echo='echo_func'
fi
fi
# A sed script that extracts the value of VARIABLE from a Makefile.
sed_x_variable='
# Test if the hold space is empty.
x
s/P/P/
x
ta
# Yes it was empty. Look if we have the expected variable definition.
/^[ ]*VARIABLE[ ]*=/{
# Seen the first line of the variable definition.
s/^[ ]*VARIABLE[ ]*=//
ba
}
bd
:a
# Here we are processing a line from the variable definition.
# Remove comment, more precisely replace it with a space.
s/#.*$/ /
# See if the line ends in a backslash.
tb
:b
s/\\$//
# Print the line, without the trailing backslash.
p
tc
# There was no trailing backslash. The end of the variable definition is
# reached. Clear the hold space.
s/^.*$//
x
bd
:c
# A trailing backslash means that the variable definition continues in the
# next line. Put a nonempty string into the hold space to indicate this.
s/^.*$/P/
x
:d
'
changequote([,])dnl
# Set POTFILES to the value of the Makefile variable POTFILES.
sed_x_POTFILES="`$gt_echo \"$sed_x_variable\" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'`"
POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"`
# Compute POTFILES_DEPS as
# $(foreach file, $(POTFILES), $(top_srcdir)/$(file))
POTFILES_DEPS=
for file in $POTFILES; do
POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file"
done
POMAKEFILEDEPS=""
if test -n "$OBSOLETE_ALL_LINGUAS"; then
test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
fi
if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
# The LINGUAS file contains the set of available languages.
ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
else
# Set ALL_LINGUAS to the value of the Makefile variable LINGUAS.
sed_x_LINGUAS="`$gt_echo \"$sed_x_variable\" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`"
ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
fi
# Hide the ALL_LINGUAS assigment from automake.
eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
# Compute POFILES
# as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
# Compute UPDATEPOFILES
# as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
# Compute DUMMYPOFILES
# as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
# Compute GMOFILES
# as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
# Compute PROPERTIESFILES
# as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).properties)
# Compute CLASSFILES
# as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).class)
# Compute QMFILES
# as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm)
# Compute MSGFILES
# as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg)
# Compute RESOURCESDLLFILES
# as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll)
case "$ac_given_srcdir" in
.) srcdirpre= ;;
*) srcdirpre='$(srcdir)/' ;;
esac
POFILES=
UPDATEPOFILES=
DUMMYPOFILES=
GMOFILES=
PROPERTIESFILES=
CLASSFILES=
QMFILES=
MSGFILES=
RESOURCESDLLFILES=
for lang in $ALL_LINGUAS; do
POFILES="$POFILES $srcdirpre$lang.po"
UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
PROPERTIESFILES="$PROPERTIESFILES \$(top_srcdir)/\$(DOMAIN)_$lang.properties"
CLASSFILES="$CLASSFILES \$(top_srcdir)/\$(DOMAIN)_$lang.class"
QMFILES="$QMFILES $srcdirpre$lang.qm"
frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg"
frobbedlang=`echo $lang | sed -e 's/_/-/g'`
RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll"
done
# CATALOGS depends on both $ac_dir and the user's LINGUAS
# environment variable.
INST_LINGUAS=
if test -n "$ALL_LINGUAS"; then
for presentlang in $ALL_LINGUAS; do
useit=no
if test "%UNSET%" != "$LINGUAS"; then
desiredlanguages="$LINGUAS"
else
desiredlanguages="$ALL_LINGUAS"
fi
for desiredlang in $desiredlanguages; do
# Use the presentlang catalog if desiredlang is
# a. equal to presentlang, or
# b. a variant of presentlang (because in this case,
# presentlang can be used as a fallback for messages
# which are not translated in the desiredlang catalog).
case "$desiredlang" in
"$presentlang"*) useit=yes;;
esac
done
if test $useit = yes; then
INST_LINGUAS="$INST_LINGUAS $presentlang"
fi
done
fi
CATALOGS=
JAVACATALOGS=
QTCATALOGS=
TCLCATALOGS=
CSHARPCATALOGS=
if test -n "$INST_LINGUAS"; then
for lang in $INST_LINGUAS; do
CATALOGS="$CATALOGS $lang.gmo"
JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties"
QTCATALOGS="$QTCATALOGS $lang.qm"
frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg"
frobbedlang=`echo $lang | sed -e 's/_/-/g'`
CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll"
done
fi
sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp"
if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then
# Add dependencies that cannot be formulated as a simple suffix rule.
for lang in $ALL_LINGUAS; do
frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
cat >> "$ac_file.tmp" <<EOF
$frobbedlang.msg: $lang.po
@echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \
\$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
EOF
done
fi
if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then
# Add dependencies that cannot be formulated as a simple suffix rule.
for lang in $ALL_LINGUAS; do
frobbedlang=`echo $lang | sed -e 's/_/-/g'`
cat >> "$ac_file.tmp" <<EOF
$frobbedlang/\$(DOMAIN).resources.dll: $lang.po
@echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
\$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
EOF
done
fi
if test -n "$POMAKEFILEDEPS"; then
cat >> "$ac_file.tmp" <<EOF
Makefile: $POMAKEFILEDEPS
EOF
fi
mv "$ac_file.tmp" "$ac_file"
])

View File

@ -1,5 +1,5 @@
# ulonglong.m4 serial 2 (fileutils-4.0.32, gettext-0.10.40) # ulonglong.m4 serial 3
dnl Copyright (C) 1999-2002 Free Software Foundation, Inc. dnl Copyright (C) 1999-2003 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General dnl General Public License. As a special exception to the GNU General
dnl Public License, this file may be distributed as part of a program dnl Public License, this file may be distributed as part of a program
@ -8,16 +8,18 @@ dnl the same distribution terms as the rest of that program.
dnl From Paul Eggert. dnl From Paul Eggert.
# Define HAVE_UNSIGNED_LONG_LONG if 'unsigned long long' works.
AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG], AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG],
[ [
AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long, AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long,
[AC_TRY_LINK([unsigned long long ull = 1; int i = 63;], [AC_TRY_LINK([unsigned long long ull = 1ULL; int i = 63;],
[unsigned long long ullmax = (unsigned long long) -1; [unsigned long long ullmax = (unsigned long long) -1;
return ull << i | ull >> i | ullmax / ull | ullmax % ull;], return ull << i | ull >> i | ullmax / ull | ullmax % ull;],
ac_cv_type_unsigned_long_long=yes, ac_cv_type_unsigned_long_long=yes,
ac_cv_type_unsigned_long_long=no)]) ac_cv_type_unsigned_long_long=no)])
if test $ac_cv_type_unsigned_long_long = yes; then if test $ac_cv_type_unsigned_long_long = yes; then
AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1, AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1,
[Define if you have the unsigned long long type.]) [Define if you have the 'unsigned long long' type.])
fi fi
]) ])

View File

@ -1,3 +1,8 @@
2004-09-30 gettextize <bug-gnu-gettext@gnu.org>
* Makefile.in.in: Upgrade to gettext-0.14.1.
* Rules-quot: Upgrade to gettext-0.14.1.
2004-09-30 Werner Koch <wk@g10code.com> 2004-09-30 Werner Koch <wk@g10code.com>
* de.po: Updated. * de.po: Updated.

View File

@ -1,5 +1,5 @@
# Makefile for PO directory in any package using GNU gettext. # Makefile for PO directory in any package using GNU gettext.
# Copyright (C) 1995-1997, 2000-2003 by Ulrich Drepper <drepper@gnu.ai.mit.edu> # Copyright (C) 1995-1997, 2000-2004 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
# #
# This file can be copied and used freely without restrictions. It can # This file can be copied and used freely without restrictions. It can
# be used in projects which are not available under the GNU General Public # be used in projects which are not available under the GNU General Public
@ -7,6 +7,8 @@
# functionality. # functionality.
# Please note that the actual code of GNU gettext is covered by the GNU # Please note that the actual code of GNU gettext is covered by the GNU
# General Public License and is *not* in the public domain. # General Public License and is *not* in the public domain.
#
# Origin: gettext-0.14
PACKAGE = @PACKAGE@ PACKAGE = @PACKAGE@
VERSION = @VERSION@ VERSION = @VERSION@
@ -55,7 +57,7 @@ CATALOGS = @CATALOGS@
# Makevars gets inserted here. (Don't remove this line!) # Makevars gets inserted here. (Don't remove this line!)
.SUFFIXES: .SUFFIXES:
.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-update .SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update
.po.mo: .po.mo:
@echo "$(MSGFMT) -c -o $@ $<"; \ @echo "$(MSGFMT) -c -o $@ $<"; \
@ -86,7 +88,7 @@ all-no:
# $(POFILES) has been designed to not touch files that don't need to be # $(POFILES) has been designed to not touch files that don't need to be
# changed. # changed.
stamp-po: $(srcdir)/$(DOMAIN).pot stamp-po: $(srcdir)/$(DOMAIN).pot
test -z "$(CATALOGS)" || $(MAKE) $(CATALOGS) test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
@echo "touch stamp-po" @echo "touch stamp-po"
@echo timestamp > stamp-poT @echo timestamp > stamp-poT
@mv stamp-poT stamp-po @mv stamp-poT stamp-po
@ -128,9 +130,13 @@ $(srcdir)/$(DOMAIN).pot:
# Note that a PO file is not touched if it doesn't need to be changed. # Note that a PO file is not touched if it doesn't need to be changed.
$(POFILES): $(srcdir)/$(DOMAIN).pot $(POFILES): $(srcdir)/$(DOMAIN).pot
@lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ if test -f "$(srcdir)/$${lang}.po"; then \
echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \
else \
$(MAKE) $${lang}.po-create; \
fi
install: install-exec install-data install: install-exec install-data
@ -310,6 +316,13 @@ update-po: Makefile
test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
$(MAKE) update-gmo $(MAKE) update-gmo
# General rule for creating PO files.
.nop.po-create:
@lang=`echo $@ | sed -e 's/\.po-create$$//'`; \
echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \
exit 1
# General rule for updating PO files. # General rule for updating PO files.
.nop.po-update: .nop.po-update:

View File

@ -4,6 +4,11 @@ DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.heade
.SUFFIXES: .insert-header .po-update-en .SUFFIXES: .insert-header .po-update-en
en@quot.po-create:
$(MAKE) en@quot.po-update
en@boldquot.po-create:
$(MAKE) en@boldquot.po-update
en@quot.po-update: en@quot.po-update-en en@quot.po-update: en@quot.po-update-en
en@boldquot.po-update: en@boldquot.po-update-en en@boldquot.po-update: en@boldquot.po-update-en

View File

@ -1,5 +1,7 @@
2004-09-30 Werner Koch <wk@g10code.com> 2004-09-30 Werner Koch <wk@g10code.com>
* Makefile.am: Adjusted for gettext 0.14.
* app-openpgp.c (do_sign): Add the error string to the verify * app-openpgp.c (do_sign): Add the error string to the verify
failed messages. failed messages.

View File

@ -53,7 +53,7 @@ scdaemon_SOURCES = \
scdaemon_LDADD = ../jnlib/libjnlib.a ../common/libcommon.a \ scdaemon_LDADD = ../jnlib/libjnlib.a ../common/libcommon.a \
$(LIBGCRYPT_LIBS) $(pth_libs) \ $(LIBGCRYPT_LIBS) $(pth_libs) \
$(KSBA_LIBS) $(LIBASSUAN_LIBS) \ $(KSBA_LIBS) $(LIBASSUAN_LIBS) \
$(LIBUSB_LIBS) $(OPENSC_LIBS) -lgpg-error @INTLLIBS@ \ $(LIBUSB_LIBS) $(OPENSC_LIBS) -lgpg-error @LIBINTL@ \
@DL_LIBS@ @DL_LIBS@
sc_investigate_SOURCES = \ sc_investigate_SOURCES = \
@ -69,7 +69,7 @@ sc_investigate_LDADD = \
../jnlib/libjnlib.a ../common/libcommon.a \ ../jnlib/libjnlib.a ../common/libcommon.a \
$(LIBGCRYPT_LIBS) $(pth_libs) \ $(LIBGCRYPT_LIBS) $(pth_libs) \
$(KSBA_LIBS) $(LIBUSB_LIBS) $(OPENSC_LIBS) \ $(KSBA_LIBS) $(LIBUSB_LIBS) $(OPENSC_LIBS) \
@INTLLIBS@ -lgpg-error @DL_LIBS@ @LIBINTL@ -lgpg-error @DL_LIBS@
sc_copykeys_SOURCES = \ sc_copykeys_SOURCES = \
@ -86,7 +86,7 @@ sc_copykeys_LDADD = \
../common/libsimple-pwquery.a \ ../common/libsimple-pwquery.a \
$(LIBGCRYPT_LIBS) $(pth_libs) \ $(LIBGCRYPT_LIBS) $(pth_libs) \
$(KSBA_LIBS) $(LIBUSB_LIBS) $(OPENSC_LIBS) \ $(KSBA_LIBS) $(LIBUSB_LIBS) $(OPENSC_LIBS) \
-lgpg-error @INTLLIBS@ @DL_LIBS@ -lgpg-error @LIBINTL@ @DL_LIBS@
pcsc_wrapper_SOURCES = pcsc-wrapper.c pcsc_wrapper_SOURCES = pcsc-wrapper.c
pcsc_wrapper_LDADD = @DL_LIBS@ pcsc_wrapper_LDADD = @DL_LIBS@

View File

@ -92,6 +92,7 @@ struct reader_table_s {
/* Function pointers intialized to the various backends. */ /* Function pointers intialized to the various backends. */
int (*close_reader)(int); int (*close_reader)(int);
int (*shutdown_reader)(int);
int (*reset_reader)(int); int (*reset_reader)(int);
int (*get_status_reader)(int, unsigned int *); int (*get_status_reader)(int, unsigned int *);
int (*send_apdu_reader)(int,unsigned char *,size_t, int (*send_apdu_reader)(int,unsigned char *,size_t,
@ -244,6 +245,7 @@ new_reader_slot (void)
} }
#endif /*USE_GNU_PTH*/ #endif /*USE_GNU_PTH*/
reader_table[reader].close_reader = NULL; reader_table[reader].close_reader = NULL;
reader_table[reader].shutdown_reader = NULL;
reader_table[reader].reset_reader = NULL; reader_table[reader].reset_reader = NULL;
reader_table[reader].get_status_reader = NULL; reader_table[reader].get_status_reader = NULL;
reader_table[reader].send_apdu_reader = NULL; reader_table[reader].send_apdu_reader = NULL;
@ -1117,7 +1119,8 @@ open_pcsc_reader (const char *portstr)
{ {
if (!*p && !p[1]) if (!*p && !p[1])
break; break;
log_info ("detected reader `%s'\n", p); if (*p)
log_info ("detected reader `%s'\n", p);
if (nreader < (strlen (p)+1)) if (nreader < (strlen (p)+1))
{ {
log_error ("invalid response from pcsc_list_readers\n"); log_error ("invalid response from pcsc_list_readers\n");
@ -1201,6 +1204,14 @@ close_ccid_reader (int slot)
} }
static int
shutdown_ccid_reader (int slot)
{
ccid_shutdown_reader (reader_table[slot].ccid.handle);
return 0;
}
static int static int
reset_ccid_reader (int slot) reset_ccid_reader (int slot)
{ {
@ -1273,7 +1284,7 @@ send_apdu_ccid (int slot, unsigned char *apdu, size_t apdulen,
/* Open the reader and try to read an ATR. */ /* Open the reader and try to read an ATR. */
static int static int
open_ccid_reader (void) open_ccid_reader (const char *portstr)
{ {
int err; int err;
int slot; int slot;
@ -1284,7 +1295,7 @@ open_ccid_reader (void)
return -1; return -1;
slotp = reader_table + slot; slotp = reader_table + slot;
err = ccid_open_reader (&slotp->ccid.handle, 0); err = ccid_open_reader (&slotp->ccid.handle, portstr);
if (err) if (err)
{ {
slotp->used = 0; slotp->used = 0;
@ -1300,6 +1311,7 @@ open_ccid_reader (void)
} }
reader_table[slot].close_reader = close_ccid_reader; reader_table[slot].close_reader = close_ccid_reader;
reader_table[slot].shutdown_reader = shutdown_ccid_reader;
reader_table[slot].reset_reader = reset_ccid_reader; reader_table[slot].reset_reader = reset_ccid_reader;
reader_table[slot].get_status_reader = get_status_ccid; reader_table[slot].get_status_reader = get_status_ccid;
reader_table[slot].send_apdu_reader = send_apdu_ccid; reader_table[slot].send_apdu_reader = send_apdu_ccid;
@ -1879,12 +1891,21 @@ apdu_open_reader (const char *portstr)
#ifdef HAVE_LIBUSB #ifdef HAVE_LIBUSB
if (!opt.disable_ccid) if (!opt.disable_ccid)
{ {
int slot; int slot, i;
const char *s;
slot = open_ccid_reader (); slot = open_ccid_reader (portstr);
if (slot != -1) if (slot != -1)
return slot; /* got one */ return slot; /* got one */
/* If a CCID reader specification has been given, the user does
not want a fallback to other drivers. */
if (portstr)
for (s=portstr, i=0; *s; s++)
if (*s == ':' && (++i == 3))
return -1;
} }
#endif /* HAVE_LIBUSB */ #endif /* HAVE_LIBUSB */
#ifdef HAVE_OPENSC #ifdef HAVE_OPENSC
@ -2042,6 +2063,19 @@ apdu_close_reader (int slot)
return SW_HOST_NOT_SUPPORTED; return SW_HOST_NOT_SUPPORTED;
} }
/* Shutdown a reader; that is basically the same as a close but keeps
the handle ready for later use. A apdu_reset_header should be used
to get it active again. */
int
apdu_shutdown_reader (int slot)
{
if (slot < 0 || slot >= MAX_READER || !reader_table[slot].used )
return SW_HOST_NO_DRIVER;
if (reader_table[slot].shutdown_reader)
return reader_table[slot].shutdown_reader (slot);
return SW_HOST_NOT_SUPPORTED;
}
/* Enumerate all readers and return information on whether this reader /* Enumerate all readers and return information on whether this reader
is in use. The caller should start with SLOT set to 0 and is in use. The caller should start with SLOT set to 0 and
increment it with each call until an error is returned. */ increment it with each call until an error is returned. */

View File

@ -76,6 +76,7 @@ int apdu_open_remote_reader (const char *portstr,
void *writefnc_value, void *writefnc_value,
void (*closefnc) (void *opaque), void (*closefnc) (void *opaque),
void *closefnc_value); void *closefnc_value);
int apdu_shutdown_reader (int slot);
int apdu_close_reader (int slot); int apdu_close_reader (int slot);
int apdu_enum_reader (int slot, int *used); int apdu_enum_reader (int slot, int *used);
unsigned char *apdu_get_atr (int slot, size_t *atrlen); unsigned char *apdu_get_atr (int slot, size_t *atrlen);

File diff suppressed because it is too large Load Diff

View File

@ -75,7 +75,10 @@
struct ccid_driver_s; struct ccid_driver_s;
typedef struct ccid_driver_s *ccid_driver_t; typedef struct ccid_driver_s *ccid_driver_t;
int ccid_open_reader (ccid_driver_t *handle, int readerno); int ccid_set_debug_level (int level);
char *ccid_get_reader_list (void);
int ccid_open_reader (ccid_driver_t *handle, const char *readerid);
int ccid_shutdown_reader (ccid_driver_t handle);
int ccid_close_reader (ccid_driver_t handle); int ccid_close_reader (ccid_driver_t handle);
int ccid_get_atr (ccid_driver_t handle, int ccid_get_atr (ccid_driver_t handle,
unsigned char *atr, size_t maxatrlen, size_t *atrlen); unsigned char *atr, size_t maxatrlen, size_t *atrlen);

View File

@ -1,372 +1,9 @@
2004-07-27 Werner Koch <wk@g10code.de> 2004-09-30 Werner Koch <wk@g10code.com>
* autogen.sh: Updated to the moder version, grepping the required * config.guess, config.sub: Updated.
tool versions from configure.ac.
2004-06-14 Werner Koch <wk@gnupg.org>
* mk-w32-dist: Do not include the en@* po files. Copyright 2004 Free Software Foundation, Inc.
* autogen.sh <--build-w32>: Build keyserver helpers again.
2004-04-02 Thomas Schwinge <schwinge@nic-nac-project.de>
* autogen.sh: Added ACLOCAL_FLAGS.
2003-12-28 Stefan Bellon <sbellon@sbellon.de>
* build-riscos, conf-riscos/*: Updated to reflect latest changes.
2003-10-25 Werner Koch <wk@gnupg.org>
* autogen.sh: Updated required versions and add -I m4 to aclocal.
2003-08-28 David Shaw <dshaw@jabberwocky.com>
* autogen.sh: Touch po/all for --build-w32. From Werner on stable
branch.
2003-08-25 David Shaw <dshaw@jabberwocky.com>
* gnupg.spec.in: Rework much of the spec to use %-macros
throughout. Fix to work properly with RPM 4.1 (all files in
buildroot must be packaged). Package and install info files. Tweak
the English description. Do not install gpgv and gpgsplit setuid
root. Make sure that install-info is called in such a way that
doesn't bork the RPM install if it cannot complete (necessary for
some upgrade scenarios).
2003-05-26 David Shaw <dshaw@jabberwocky.com>
* mk-w32-dist: Don't iconv {hu,sk,zh_TW}.po. (From wk on stable
branch)
2003-04-08 Werner Koch <wk@gnupg.org>
* autogen.sh: Add options to build for coldfire and uClinux.
2003-02-22 David Shaw <dshaw@jabberwocky.com>
* distfiles, gnupg.spec.in: convert-from-106 is in the tools
directory now.
* convert-from-106: Move to the tools directory.
2002-12-01 David Shaw <dshaw@jabberwocky.com>
* distfiles, gnupg.spec.in: Include convert-from-106.
* convert-from-106: Script to automate the 1.0.6->later
conversion. It marks all secret keys as ultimately trusted, adds
the signature caches, and checks the trustdb.
2002-11-13 David Shaw <dshaw@jabberwocky.com>
* mk-w32-dist: Don't use iconv for pl.po. From Werner on stable
branch.
* mk-w32-dist: Include gpgkeys_ldap and gpgkeys_hkp.
2002-11-12 Werner Koch <wk@gnupg.org>
* config.sub, config.guess: Updated from ftp.gnu.org/gnu/config
to version 2002-11-08.
2002-10-31 David Shaw <dshaw@jabberwocky.com>
* gnupg.spec.in: Update source ftp path.
2002-10-31 Stefan Bellon <sbellon@sbellon.de>
* conf-riscos/Makefile: Updated to reflect latest changes.
2002-10-28 Stefan Bellon <sbellon@sbellon.de>
* conf-riscos/include/config.h: Updated to reflect latest changes.
2002-10-26 David Shaw <dshaw@jabberwocky.com>
* gnupg.spec.in: Use new path for keyserver helpers, /usr/lib is
no longer used for cipher/hash plugins, and include gpgv,
gpgsplit, and the new gnupg.7 man page.
2002-10-17 Werner Koch <wk@gnupg.org>
* autogen.sh: Allow env variables to override the auto* tool
names. Suggested by Simon Josefsson.
2002-09-11 Werner Koch <wk@gnupg.org>
* distfiles: Include mk-w32-dist.
* mk-w32-dist: Convert the character sets on a per language base.
2002-09-02 Werner Koch <wk@gnupg.org>
* mk-w32-dist: Include more man pages and gpg split. Changed name
of ZIP file to better indicate that this is a command line version.
2002-08-23 Werner Koch <wk@gnupg.org>
* autogen.sh : Don't run gettextize.
2002-08-06 Stefan Bellon <sbellon@sbellon.de>
* conf-riscos/include/config.h: Changed #define FOO to
#define FOO 1.
* conf-riscos/include/g10defs.h: Likewise.
2002-08-03 Stefan Bellon <sbellon@sbellon.de>
* conf-riscos/include/g10defs.h: Added GNUPG_LIBEXECDIR.
* conf-riscos/include/config.h: Changes due to dynload removal and
minor changes to avoid some warnings.
* conf-riscos/Makefile: Changes due to dynload removal.
* conf-riscos/cipher/*: Not needed anymore due to dynload removal.
2002-07-25 David Shaw <dshaw@jabberwocky.com>
* gnupgbug: "Warning" -> "WARNING"
2002-07-01 Werner Koch <wk@gnupg.org>
* mk-gpg-texi: New.
2002-06-30 Werner Koch <wk@gnupg.org>
* mk-w32-dist (bindir): Fixes vor VPATH builds in a subdir,
include gpgv.
2002-06-21 Stefan Bellon <sbellon@sbellon.de>
* conf-riscos/Makefile: Changes due to moving around RISC OS
specific stuff in the code.
2002-06-07 Stefan Bellon <sbellon@sbellon.de>
* conf-riscos/include/config.h [__riscos__]: Fixed macro bug.
2002-05-10 Stefan Bellon <sbellon@sbellon.de>
* conf-riscos/include/config.h [__riscos__]: Changes for later
Norcroft compilers.
* conf-riscos/Makefile [__riscos__]: Updated.
2002-04-22 Stefan Bellon <sbellon@sbellon.de>
* conf-riscos/include/config.h [__riscos__]: Development
versions automatically define DEBUG from now on.
* conf-riscos/Makefile [__riscos__]: Updated for LDAP keyserver
code.
2002-04-19 David Shaw <dshaw@jabberwocky.com>
* gnupg.spec.in: Removed pubring.asc and OPTIONS. Added
samplekeys.asc.
2002-03-31 David Shaw <dshaw@jabberwocky.com>
* gnupg.spec.in: Added the gpgkeys_xxx keyserver helpers. Added a
* to catch variations on the basic gpg man page (gpg, gpgv). Mark
options.skel as a config file. Do not include the FAQ/faq.html
twice (in /doc/ and /share/).
2002-01-02 Stefan Bellon <sbellon@sbellon.de>
* build-riscos [__riscos__]: Set filetype of Makefile correctly.
* conf-riscos/include/g10defs.h [__riscos__]: Added GNU GPL
header and exec code defines.
* conf-riscos/include/config.h [__riscos__]: Moved parts to
include/util.h where they really belong to.
* conf-riscos/Makefile [__riscos__]: Updated for new keyserver,
exec and photo id code.
2001-12-22 Werner Koch <wk@gnupg.org>
* autogen.sh: Fixed last change.
2001-12-21 Werner Koch <wk@gnupg.org>
* distfiles: Removed those files which which automake installs by
default.
* autogen.sh: Replaced $() by backticks for system without a posix
shell. Removed gawk specific quoting. By David Champion.
2001-10-22 Werner Koch <wk@gnupg.org>
* autogen.sh (aclocal_vers): Require automalke 1.5.
2001-08-21 Stefan Bellon <sbellon@sbellon.de>
* build-riscos [__riscos__]: New.
* conf-riscos [__riscos__]: Ditto.
2001-08-13 Werner Koch <wk@gnupg.org>
* autogen.sh: Test on gettext 0.10.38. By Michael Engels.
2001-08-07 Werner Koch <wk@gnupg.org>
* autogen.sh: Adjusted --build-w32 for autoconf 2.52
2001-07-09 Werner Koch <wk@gnupg.org>
* autogen.sh (autoconf_vers): Require autoconf 2.50
2001-05-06 Werner Koch <wk@gnupg.org>
* config.guess, config.sub: Add updates from subversions.gnu.org.
2001-04-19 Werner Koch <wk@gnupg.org>
* autogen.sh: Add VPATH build support for option --build-w32.
2001-03-12 Werner Koch <wk@gnupg.org>
* config.guess, config.sub: Replaced with the current GNU CVS ones.
2001-01-18 Werner Koch <wk@gnupg.org>
* autogen.sh: New options --build-w32
* build-w32: Does now call autogen.sh
2000-11-24 Werner Koch <wk@gnupg.org>
* build-w32: New script to build the W32 version.
* distfiles: And put it into the distribution
Thu Sep 14 17:45:11 CEST 2000 Werner Koch <wk@openit.de>
* gnupg.spec.in: Updated.
Wed Sep 6 17:55:47 CEST 2000 Werner Koch <wk@openit.de>
* config.guess, config.sub: Replaced with the latest version from the
CVS archive. Hope that does not break too much.
Fri May 12 14:01:20 CEST 2000 Werner Koch <wk@openit.de>
* gnupg.spec.in: New version from Fabio with some updated descriptions.
Mon May 1 15:38:04 CEST 2000 Werner Koch <wk@openit.de>
* gnupg.spec.in: New version from Fabio.
Fri Mar 17 16:26:05 CET 2000 Werner Koch <wk@openit.de>
* config.gues, config.sub: Support for s390-ibm-linux-gnu. Thanks
to Holger Smolinski.
Thu Mar 2 15:37:46 CET 2000 Werner Koch <wk@gnupg.de>
* config.guess: Add support for QNX. By Sam Roberts.
* config.sub: Ditto.
Thu Sep 23 09:49:25 1999 Werner Koch (wk@gnupg.org)
* commit: Remove leading and trailing empty lines when copying
Changes to Changelog
Wed Sep 15 16:22:17 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* gnupg.spec: Add Portuguese description
Thu Sep 2 16:40:55 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* mkdiff: changed format of diff file name and made script more
general.
Wed Aug 4 10:34:18 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* config.guess: Updated from gnu/common and applied my emx patch again.
* config.sub: Updated from gnu/common.
Wed Jul 14 19:42:08 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* ltmain.sh, ltconfig.sh : Updated to libtool 1.3.3
Mon Jul 12 14:55:34 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* autogen.sh: Run libtoolize
Sat May 22 22:47:26 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* autogen.sh: Fixed the error message for a missing libtool.
Sat May 8 19:28:08 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* mkinstalldirs, install-sh: New from GNU repository
* config.sub, config.guess: Merged with rep version.
Sun Mar 14 19:34:36 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
* autogen.sh: Add a check for libtool because some autoconf macros
are needed.
Mon Feb 22 20:04:00 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
* autogen.sh: Enhanced the version testing code (Philippe Laliberte)
* mkwebpage: Edits the buglist.
Sat Feb 13 12:04:43 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
* autogen.sh: Now uses gettextize
Wed Feb 10 17:15:39 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
* config.sub, config.guess: Support i386-emx-os2
Sun Jan 17 11:04:33 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
* autogen.sh: Now checks for installed gettext
Sat Jan 16 09:27:30 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
* config.guess (m68k-atari-mint): New.
* config.sub: Add support for atarist-MiNT
Wed Jan 13 12:49:36 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
* gnupg.spec.in: New
* gnupg.spec: Removed
Wed Dec 23 13:18:14 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
* gnupg.spec: Updated version by Fabio Coatti
Thu Dec 17 18:31:15 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
* gnupg.spec: New version by Reuben Sumner and did some more
changes.
Fri Nov 27 12:39:29 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
* commit: New
Fri Nov 20 12:01:57 1998 Werner Koch (wk@isil.d.shuttle.de)
* mkdiff: signs the patch file
Sat Oct 17 16:10:16 1998 Werner Koch (wk@isil.d.shuttle.de)
* autogen.sh: New.
Wed Oct 14 09:55:25 1998 Werner Koch (wk@isil.d.shuttle.de)
* config.guess (FreeBSD): Changes from Jun Kuriyama to support ELF
* config.sub: (freebsd): Add to maybe_os
Copyright 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is free software; as a special exception the author gives This file is free software; as a special exception the author gives
unlimited permission to copy and/or distribute it, with or without unlimited permission to copy and/or distribute it, with or without
@ -375,3 +12,5 @@ Wed Oct 14 09:55:25 1998 Werner Koch (wk@isil.d.shuttle.de)
This file is distributed in the hope that it will be useful, but This file is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY, to the extent permitted by law; without even the WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

368
scripts/config.guess vendored
View File

@ -1,9 +1,9 @@
#! /bin/sh #! /bin/sh
# Attempt to guess a canonical system name. # Attempt to guess a canonical system name.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002 Free Software Foundation, Inc. # 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
timestamp='2002-03-20' timestamp='2004-08-13'
# This file is free software; you can redistribute it and/or modify it # This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by # under the terms of the GNU General Public License as published by
@ -53,7 +53,7 @@ version="\
GNU config.guess ($timestamp) GNU config.guess ($timestamp)
Originally written by Per Bothner. Originally written by Per Bothner.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
Free Software Foundation, Inc. Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO This is free software; see the source for copying conditions. There is NO
@ -88,30 +88,42 @@ if test $# != 0; then
exit 1 exit 1
fi fi
trap 'exit 1' 1 2 15
dummy=dummy-$$ # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15 # compiler to aid in system detection is discouraged as it requires
# temporary files to be created and, as you can see below, it is a
# headache to deal with in a portable fashion.
# CC_FOR_BUILD -- compiler used by this script.
# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
# use `HOST_CC' if defined, but it is deprecated. # use `HOST_CC' if defined, but it is deprecated.
set_cc_for_build='case $CC_FOR_BUILD,$HOST_CC,$CC in # Portable tmp directory creation inspired by the Autoconf team.
,,) echo "int dummy(){}" > $dummy.c ;
set_cc_for_build='
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
: ${TMPDIR=/tmp} ;
{ tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
dummy=$tmp/dummy ;
tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
case $CC_FOR_BUILD,$HOST_CC,$CC in
,,) echo "int x;" > $dummy.c ;
for c in cc gcc c89 c99 ; do for c in cc gcc c89 c99 ; do
($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ; if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
if test $? = 0 ; then
CC_FOR_BUILD="$c"; break ; CC_FOR_BUILD="$c"; break ;
fi ; fi ;
done ; done ;
rm -f $dummy.c $dummy.o $dummy.rel ;
if test x"$CC_FOR_BUILD" = x ; then if test x"$CC_FOR_BUILD" = x ; then
CC_FOR_BUILD=no_compiler_found ; CC_FOR_BUILD=no_compiler_found ;
fi fi
;; ;;
,,*) CC_FOR_BUILD=$CC ;; ,,*) CC_FOR_BUILD=$CC ;;
,*,*) CC_FOR_BUILD=$HOST_CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;;
esac' esac ;'
# This is needed to find uname on a Pyramid OSx when run in the BSD universe. # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24) # (ghazi@noc.rutgers.edu 1994-08-24)
@ -142,6 +154,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
/usr/sbin/$sysctl 2>/dev/null || echo unknown)` /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
case "${UNAME_MACHINE_ARCH}" in case "${UNAME_MACHINE_ARCH}" in
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;; arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;; sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;; sh3eb) machine=sh-unknown ;;
@ -167,21 +180,38 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
;; ;;
esac esac
# The OS release # The OS release
release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` # Debian GNU/NetBSD machines have a different userland, and
# thus, need a distinct triplet. However, they do not need
# kernel version information, so it can be replaced with a
# suitable tag, in the style of linux-gnu.
case "${UNAME_VERSION}" in
Debian*)
release='-gnu'
;;
*)
release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
;;
esac
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form: # contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
echo "${machine}-${os}${release}" echo "${machine}-${os}${release}"
exit 0 ;; exit 0 ;;
amd64:OpenBSD:*:*)
echo x86_64-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
amiga:OpenBSD:*:*) amiga:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE} echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;; exit 0 ;;
arc:OpenBSD:*:*) cats:OpenBSD:*:*)
echo mipsel-unknown-openbsd${UNAME_RELEASE} echo arm-unknown-openbsd${UNAME_RELEASE}
exit 0 ;; exit 0 ;;
hp300:OpenBSD:*:*) hp300:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE} echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;; exit 0 ;;
luna88k:OpenBSD:*:*)
echo m88k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
mac68k:OpenBSD:*:*) mac68k:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE} echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;; exit 0 ;;
@ -197,83 +227,76 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
mvmeppc:OpenBSD:*:*) mvmeppc:OpenBSD:*:*)
echo powerpc-unknown-openbsd${UNAME_RELEASE} echo powerpc-unknown-openbsd${UNAME_RELEASE}
exit 0 ;; exit 0 ;;
pmax:OpenBSD:*:*)
echo mipsel-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
sgi:OpenBSD:*:*) sgi:OpenBSD:*:*)
echo mipseb-unknown-openbsd${UNAME_RELEASE} echo mips64-unknown-openbsd${UNAME_RELEASE}
exit 0 ;; exit 0 ;;
sun3:OpenBSD:*:*) sun3:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE} echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;; exit 0 ;;
wgrisc:OpenBSD:*:*)
echo mipsel-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
*:OpenBSD:*:*) *:OpenBSD:*:*)
echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
exit 0 ;; exit 0 ;;
*:ekkoBSD:*:*)
echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
exit 0 ;;
macppc:MirBSD:*:*)
echo powerppc-unknown-mirbsd${UNAME_RELEASE}
exit 0 ;;
*:MirBSD:*:*)
echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
exit 0 ;;
alpha:OSF1:*:*) alpha:OSF1:*:*)
if test $UNAME_RELEASE = "V4.0"; then case $UNAME_RELEASE in
*4.0)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
fi ;;
*5.*)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
;;
esac
# According to Compaq, /usr/sbin/psrinfo has been available on
# OSF/1 and Tru64 systems produced since 1995. I hope that
# covers most systems running today. This code pipes the CPU
# types through head -n 1, so we only detect the type of CPU 0.
ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
case "$ALPHA_CPU_TYPE" in
"EV4 (21064)")
UNAME_MACHINE="alpha" ;;
"EV4.5 (21064)")
UNAME_MACHINE="alpha" ;;
"LCA4 (21066/21068)")
UNAME_MACHINE="alpha" ;;
"EV5 (21164)")
UNAME_MACHINE="alphaev5" ;;
"EV5.6 (21164A)")
UNAME_MACHINE="alphaev56" ;;
"EV5.6 (21164PC)")
UNAME_MACHINE="alphapca56" ;;
"EV5.7 (21164PC)")
UNAME_MACHINE="alphapca57" ;;
"EV6 (21264)")
UNAME_MACHINE="alphaev6" ;;
"EV6.7 (21264A)")
UNAME_MACHINE="alphaev67" ;;
"EV6.8CB (21264C)")
UNAME_MACHINE="alphaev68" ;;
"EV6.8AL (21264B)")
UNAME_MACHINE="alphaev68" ;;
"EV6.8CX (21264D)")
UNAME_MACHINE="alphaev68" ;;
"EV6.9A (21264/EV69A)")
UNAME_MACHINE="alphaev69" ;;
"EV7 (21364)")
UNAME_MACHINE="alphaev7" ;;
"EV7.9 (21364A)")
UNAME_MACHINE="alphaev79" ;;
esac
# A Pn.n version is a patched version.
# A Vn.n version is a released version. # A Vn.n version is a released version.
# A Tn.n version is a released field test version. # A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel. # A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r. # 1.2 uses "1.2" for uname -r.
cat <<EOF >$dummy.s echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
.data
\$Lformat:
.byte 37,100,45,37,120,10,0 # "%d-%x\n"
.text
.globl main
.align 4
.ent main
main:
.frame \$30,16,\$26,0
ldgp \$29,0(\$27)
.prologue 1
.long 0x47e03d80 # implver \$0
lda \$2,-1
.long 0x47e20c21 # amask \$2,\$1
lda \$16,\$Lformat
mov \$0,\$17
not \$1,\$18
jsr \$26,printf
ldgp \$29,0(\$26)
mov 0,\$16
jsr \$26,exit
.end main
EOF
eval $set_cc_for_build
$CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
if test "$?" = 0 ; then
case `./$dummy` in
0-0)
UNAME_MACHINE="alpha"
;;
1-0)
UNAME_MACHINE="alphaev5"
;;
1-1)
UNAME_MACHINE="alphaev56"
;;
1-101)
UNAME_MACHINE="alphapca56"
;;
2-303)
UNAME_MACHINE="alphaev6"
;;
2-307)
UNAME_MACHINE="alphaev67"
;;
2-1307)
UNAME_MACHINE="alphaev68"
;;
esac
fi
rm -f $dummy.s $dummy
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
exit 0 ;; exit 0 ;;
Alpha\ *:Windows_NT*:*) Alpha\ *:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem? # How do we know it's Interix rather than the generic POSIX subsystem?
@ -296,6 +319,9 @@ EOF
*:OS/390:*:*) *:OS/390:*:*)
echo i370-ibm-openedition echo i370-ibm-openedition
exit 0 ;; exit 0 ;;
*:OS400:*:*)
echo powerpc-ibm-os400
exit 0 ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE} echo arm-acorn-riscix${UNAME_RELEASE}
exit 0;; exit 0;;
@ -313,6 +339,13 @@ EOF
NILE*:*:*:dcosx) NILE*:*:*:dcosx)
echo pyramid-pyramid-svr4 echo pyramid-pyramid-svr4
exit 0 ;; exit 0 ;;
DRS?6000:unix:4.0:6*)
echo sparc-icl-nx6
exit 0 ;;
DRS?6000:UNIX_SV:4.2*:7*)
case `/usr/bin/uname -p` in
sparc) echo sparc-icl-nx7 && exit 0 ;;
esac ;;
sun4H:SunOS:5.*:*) sun4H:SunOS:5.*:*)
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;; exit 0 ;;
@ -381,6 +414,9 @@ EOF
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
echo m68k-unknown-mint${UNAME_RELEASE} echo m68k-unknown-mint${UNAME_RELEASE}
exit 0 ;; exit 0 ;;
m68k:machten:*:*)
echo m68k-apple-machten${UNAME_RELEASE}
exit 0 ;;
powerpc:machten:*:*) powerpc:machten:*:*)
echo powerpc-apple-machten${UNAME_RELEASE} echo powerpc-apple-machten${UNAME_RELEASE}
exit 0 ;; exit 0 ;;
@ -419,15 +455,20 @@ EOF
exit (-1); exit (-1);
} }
EOF EOF
$CC_FOR_BUILD $dummy.c -o $dummy \ $CC_FOR_BUILD -o $dummy $dummy.c \
&& ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
&& rm -f $dummy.c $dummy && exit 0 && exit 0
rm -f $dummy.c $dummy
echo mips-mips-riscos${UNAME_RELEASE} echo mips-mips-riscos${UNAME_RELEASE}
exit 0 ;; exit 0 ;;
Motorola:PowerMAX_OS:*:*) Motorola:PowerMAX_OS:*:*)
echo powerpc-motorola-powermax echo powerpc-motorola-powermax
exit 0 ;; exit 0 ;;
Motorola:*:4.3:PL8-*)
echo powerpc-harris-powermax
exit 0 ;;
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
echo powerpc-harris-powermax
exit 0 ;;
Night_Hawk:Power_UNIX:*:*) Night_Hawk:Power_UNIX:*:*)
echo powerpc-harris-powerunix echo powerpc-harris-powerunix
exit 0 ;; exit 0 ;;
@ -500,8 +541,7 @@ EOF
exit(0); exit(0);
} }
EOF EOF
$CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
rm -f $dummy.c $dummy
echo rs6000-ibm-aix3.2.5 echo rs6000-ibm-aix3.2.5
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
echo rs6000-ibm-aix3.2.4 echo rs6000-ibm-aix3.2.4
@ -599,11 +639,21 @@ EOF
exit (0); exit (0);
} }
EOF EOF
(CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null) && HP_ARCH=`./$dummy` (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi test -z "$HP_ARCH" && HP_ARCH=hppa
rm -f $dummy.c $dummy
fi ;; fi ;;
esac esac
if [ ${HP_ARCH} = "hppa2.0w" ]
then
# avoid double evaluation of $set_cc_for_build
test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
then
HP_ARCH="hppa2.0w"
else
HP_ARCH="hppa64"
fi
fi
echo ${HP_ARCH}-hp-hpux${HPUX_REV} echo ${HP_ARCH}-hp-hpux${HPUX_REV}
exit 0 ;; exit 0 ;;
ia64:HP-UX:*:*) ia64:HP-UX:*:*)
@ -637,8 +687,7 @@ EOF
exit (0); exit (0);
} }
EOF EOF
$CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
rm -f $dummy.c $dummy
echo unknown-hitachi-hiuxwe2 echo unknown-hitachi-hiuxwe2
exit 0 ;; exit 0 ;;
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
@ -696,21 +745,26 @@ EOF
CRAY*TS:*:*:*) CRAY*TS:*:*:*)
echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit 0 ;; exit 0 ;;
CRAY*T3D:*:*:*)
echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit 0 ;;
CRAY*T3E:*:*:*) CRAY*T3E:*:*:*)
echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit 0 ;; exit 0 ;;
CRAY*SV1:*:*:*) CRAY*SV1:*:*:*)
echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit 0 ;; exit 0 ;;
*:UNICOS/mp:*:*)
echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit 0 ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit 0 ;; exit 0 ;;
5000:UNIX_System_V:4.*:*)
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit 0 ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
exit 0 ;; exit 0 ;;
@ -732,14 +786,17 @@ EOF
i*:PW*:*) i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32 echo ${UNAME_MACHINE}-pc-pw32
exit 0 ;; exit 0 ;;
x86:Interix*:3*) x86:Interix*:[34]*)
echo i386-pc-interix3 echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
exit 0 ;;
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks
exit 0 ;; exit 0 ;;
i*:Windows_NT*:* | Pentium*:Windows_NT*:*) i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem? # How do we know it's Interix rather than the generic POSIX subsystem?
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
# UNAME_MACHINE based on the output of uname instead of i386? # UNAME_MACHINE based on the output of uname instead of i386?
echo i386-pc-interix echo i586-pc-interix
exit 0 ;; exit 0 ;;
i*:UWIN*:*) i*:UWIN*:*)
echo ${UNAME_MACHINE}-pc-uwin echo ${UNAME_MACHINE}-pc-uwin
@ -751,17 +808,28 @@ EOF
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;; exit 0 ;;
*:GNU:*:*) *:GNU:*:*)
# the GNU system
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
exit 0 ;; exit 0 ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
exit 0 ;;
i*86:Minix:*:*) i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix echo ${UNAME_MACHINE}-pc-minix
exit 0 ;; exit 0 ;;
arm*:Linux:*:*) arm*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-gnu
exit 0 ;; exit 0 ;;
cris:Linux:*:*)
echo cris-axis-linux-gnu
exit 0 ;;
ia64:Linux:*:*) ia64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-gnu
exit 0 ;; exit 0 ;;
m32r*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit 0 ;;
m68*:Linux:*:*) m68*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-gnu
exit 0 ;; exit 0 ;;
@ -782,8 +850,26 @@ EOF
#endif #endif
EOF EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
rm -f $dummy.c test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0 ;;
mips64:Linux:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#undef CPU
#undef mips64
#undef mips64el
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
CPU=mips64el
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
CPU=mips64
#else
CPU=
#endif
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
;; ;;
ppc:Linux:*:*) ppc:Linux:*:*)
echo powerpc-unknown-linux-gnu echo powerpc-unknown-linux-gnu
@ -819,6 +905,9 @@ EOF
s390:Linux:*:* | s390x:Linux:*:*) s390:Linux:*:* | s390x:Linux:*:*)
echo ${UNAME_MACHINE}-ibm-linux echo ${UNAME_MACHINE}-ibm-linux
exit 0 ;; exit 0 ;;
sh64*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit 0 ;;
sh*:Linux:*:*) sh*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-gnu
exit 0 ;; exit 0 ;;
@ -876,9 +965,11 @@ EOF
LIBC=gnuaout LIBC=gnuaout
#endif #endif
#endif #endif
#ifdef __dietlibc__
LIBC=dietlibc
#endif
EOF EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
rm -f $dummy.c
test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
;; ;;
@ -896,6 +987,26 @@ EOF
# Use sysv4.2uw... so that sysv4* matches it. # Use sysv4.2uw... so that sysv4* matches it.
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
exit 0 ;; exit 0 ;;
i*86:OS/2:*:*)
# If we were able to find `uname', then EMX Unix compatibility
# is probably installed.
echo ${UNAME_MACHINE}-pc-os2-emx
exit 0 ;;
i*86:XTS-300:*:STOP)
echo ${UNAME_MACHINE}-unknown-stop
exit 0 ;;
i*86:atheos:*:*)
echo ${UNAME_MACHINE}-unknown-atheos
exit 0 ;;
i*86:syllable:*:*)
echo ${UNAME_MACHINE}-pc-syllable
exit 0 ;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
echo i386-unknown-lynxos${UNAME_RELEASE}
exit 0 ;;
i*86:*DOS:*:*)
echo ${UNAME_MACHINE}-pc-msdosdjgpp
exit 0 ;;
i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
@ -917,22 +1028,19 @@ EOF
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
echo ${UNAME_MACHINE}-pc-isc$UNAME_REL echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
elif /bin/uname -X 2>/dev/null >/dev/null ; then elif /bin/uname -X 2>/dev/null >/dev/null ; then
UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
(/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
(/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
&& UNAME_MACHINE=i586 && UNAME_MACHINE=i586
(/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
&& UNAME_MACHINE=i686 && UNAME_MACHINE=i686
(/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686 && UNAME_MACHINE=i686
echo ${UNAME_MACHINE}-pc-sco$UNAME_REL echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
else else
echo ${UNAME_MACHINE}-pc-sysv32 echo ${UNAME_MACHINE}-pc-sysv32
fi fi
exit 0 ;; exit 0 ;;
i*86:*DOS:*:*)
echo ${UNAME_MACHINE}-pc-msdosdjgpp
exit 0 ;;
pc:*:*:*) pc:*:*:*)
# Left here for compatibility: # Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about # uname -m prints for DJGPP always 'pc', but it prints nothing about
@ -956,9 +1064,15 @@ EOF
# "miniframe" # "miniframe"
echo m68010-convergent-sysv echo m68010-convergent-sysv
exit 0 ;; exit 0 ;;
M68*:*:R3V[567]*:*) mc68k:UNIX:SYSTEM5:3.51m)
echo m68k-convergent-sysv
exit 0 ;;
M680?0:D-NIX:5.3:*)
echo m68k-diab-dnix
exit 0 ;;
M68*:*:R3V[5678]*:*)
test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0) 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
OS_REL='' OS_REL=''
test -r /etc/.relid \ test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
@ -975,9 +1089,6 @@ EOF
mc68030:UNIX_System_V:4.*:*) mc68030:UNIX_System_V:4.*:*)
echo m68k-atari-sysv4 echo m68k-atari-sysv4
exit 0 ;; exit 0 ;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
echo i386-unknown-lynxos${UNAME_RELEASE}
exit 0 ;;
TSUNAMI:LynxOS:2.*:*) TSUNAMI:LynxOS:2.*:*)
echo sparc-unknown-lynxos${UNAME_RELEASE} echo sparc-unknown-lynxos${UNAME_RELEASE}
exit 0 ;; exit 0 ;;
@ -1049,6 +1160,9 @@ EOF
SX-5:SUPER-UX:*:*) SX-5:SUPER-UX:*:*)
echo sx5-nec-superux${UNAME_RELEASE} echo sx5-nec-superux${UNAME_RELEASE}
exit 0 ;; exit 0 ;;
SX-6:SUPER-UX:*:*)
echo sx6-nec-superux${UNAME_RELEASE}
exit 0 ;;
Power*:Rhapsody:*:*) Power*:Rhapsody:*:*)
echo powerpc-apple-rhapsody${UNAME_RELEASE} echo powerpc-apple-rhapsody${UNAME_RELEASE}
exit 0 ;; exit 0 ;;
@ -1056,7 +1170,12 @@ EOF
echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
exit 0 ;; exit 0 ;;
*:Darwin:*:*) *:Darwin:*:*)
echo `uname -p`-apple-darwin${UNAME_RELEASE} UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
case $UNAME_PROCESSOR in
*86) UNAME_PROCESSOR=i686 ;;
unknown) UNAME_PROCESSOR=powerpc ;;
esac
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
exit 0 ;; exit 0 ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*) *:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p` UNAME_PROCESSOR=`uname -p`
@ -1069,7 +1188,7 @@ EOF
*:QNX:*:4*) *:QNX:*:4*)
echo i386-pc-qnx echo i386-pc-qnx
exit 0 ;; exit 0 ;;
NSR-[GKLNPTVW]:NONSTOP_KERNEL:*:*) NSR-?:NONSTOP_KERNEL:*:*)
echo nsr-tandem-nsk${UNAME_RELEASE} echo nsr-tandem-nsk${UNAME_RELEASE}
exit 0 ;; exit 0 ;;
*:NonStop-UX:*:*) *:NonStop-UX:*:*)
@ -1092,11 +1211,6 @@ EOF
fi fi
echo ${UNAME_MACHINE}-unknown-plan9 echo ${UNAME_MACHINE}-unknown-plan9
exit 0 ;; exit 0 ;;
i*86:OS/2:*:*)
# If we were able to find `uname', then EMX Unix compatibility
# is probably installed.
echo ${UNAME_MACHINE}-pc-os2-emx
exit 0 ;;
*:TOPS-10:*:*) *:TOPS-10:*:*)
echo pdp10-unknown-tops10 echo pdp10-unknown-tops10
exit 0 ;; exit 0 ;;
@ -1115,12 +1229,19 @@ EOF
*:ITS:*:*) *:ITS:*:*)
echo pdp10-unknown-its echo pdp10-unknown-its
exit 0 ;; exit 0 ;;
i*86:XTS-300:*:STOP) SEI:*:*:SEIUX)
echo ${UNAME_MACHINE}-unknown-stop echo mips-sei-seiux${UNAME_RELEASE}
exit 0 ;; exit 0 ;;
i*86:atheos:*:*) *:DragonFly:*:*)
echo ${UNAME_MACHINE}-unknown-atheos echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
exit 0 ;; exit 0 ;;
*:*VMS:*:*)
UNAME_MACHINE=`(uname -p) 2>/dev/null`
case "${UNAME_MACHINE}" in
A*) echo alpha-dec-vms && exit 0 ;;
I*) echo ia64-dec-vms && exit 0 ;;
V*) echo vax-dec-vms && exit 0 ;;
esac
esac esac
#echo '(No uname command or uname output not recognized.)' 1>&2 #echo '(No uname command or uname output not recognized.)' 1>&2
@ -1241,8 +1362,7 @@ main ()
} }
EOF EOF
$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0 $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
rm -f $dummy.c $dummy
# Apollos put the system type in the environment. # Apollos put the system type in the environment.

View File

@ -143,7 +143,7 @@ if test "$with_gnu_ld" = yes; then
ld_shlibs=no ld_shlibs=no
;; ;;
beos*) beos*)
if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
: :
else else
ld_shlibs=no ld_shlibs=no
@ -162,9 +162,9 @@ if test "$with_gnu_ld" = yes; then
netbsd*) netbsd*)
;; ;;
solaris* | sysv5*) solaris* | sysv5*)
if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
ld_shlibs=no ld_shlibs=no
elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
: :
else else
ld_shlibs=no ld_shlibs=no
@ -174,7 +174,7 @@ if test "$with_gnu_ld" = yes; then
hardcode_direct=yes hardcode_direct=yes
;; ;;
*) *)
if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
: :
else else
ld_shlibs=no ld_shlibs=no

259
scripts/config.sub vendored
View File

@ -1,9 +1,9 @@
#! /bin/sh #! /bin/sh
# Configuration validation subroutine script. # Configuration validation subroutine script.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002 Free Software Foundation, Inc. # 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
timestamp='2002-03-07' timestamp='2004-06-24'
# This file is (in principle) common to ALL GNU software. # This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software # The presence of a machine in this file suggests that SOME GNU software
@ -70,7 +70,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\ version="\
GNU config.sub ($timestamp) GNU config.sub ($timestamp)
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
Free Software Foundation, Inc. Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO This is free software; see the source for copying conditions. There is NO
@ -118,7 +118,8 @@ esac
# Here we must recognize all the valid KERNEL-OS combinations. # Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in case $maybe_os in
nto-qnx* | linux-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*) nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
;; ;;
@ -144,7 +145,7 @@ case $os in
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-apple | -axis) -apple | -axis | -knuth | -cray)
os= os=
basic_machine=$1 basic_machine=$1
;; ;;
@ -228,28 +229,42 @@ case $basic_machine in
| a29k \ | a29k \
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| am33_2.0 \
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
| c4x | clipper \ | c4x | clipper \
| d10v | d30v | dsp16xx \ | d10v | d30v | dlx | dsp16xx \
| fr30 \ | fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| i370 | i860 | i960 | ia64 \ | i370 | i860 | i960 | ia64 \
| m32r | m68000 | m68k | m88k | mcore \ | ip2k | iq2000 \
| mips | mips16 | mips64 | mips64el | mips64orion | mips64orionel \ | m32r | m32rle | m68000 | m68k | m88k | mcore \
| mips64vr4100 | mips64vr4100el | mips64vr4300 \ | mips | mipsbe | mipseb | mipsel | mipsle \
| mips64vr4300el | mips64vr5000 | mips64vr5000el \ | mips16 \
| mipsbe | mipseb | mipsel | mipsle | mipstx39 | mipstx39el \ | mips64 | mips64el \
| mipsisa32 | mipsisa64 \ | mips64vr | mips64vrel \
| mips64orion | mips64orionel \
| mips64vr4100 | mips64vr4100el \
| mips64vr4300 | mips64vr4300el \
| mips64vr5000 | mips64vr5000el \
| mipsisa32 | mipsisa32el \
| mipsisa32r2 | mipsisa32r2el \
| mipsisa64 | mipsisa64el \
| mipsisa64r2 | mipsisa64r2el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \ | mn10200 | mn10300 \
| msp430 \
| ns16k | ns32k \ | ns16k | ns32k \
| openrisc | or32 \ | openrisc | or32 \
| pdp10 | pdp11 | pj | pjl \ | pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| pyramid \ | pyramid \
| sh | sh[34] | sh[34]eb | shbe | shle | sh64 \ | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ | sh64 | sh64le \
| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \
| strongarm \ | strongarm \
| tahoe | thumb | tic80 | tron \ | tahoe | thumb | tic4x | tic80 | tron \
| v850 | v850e \ | v850 | v850e \
| we32k \ | we32k \
| x86 | xscale | xstormy16 | xtensa \ | x86 | xscale | xstormy16 | xtensa \
@ -281,34 +296,51 @@ case $basic_machine in
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
| arm-* | armbe-* | armle-* | armv*-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* \ | avr-* \
| bs2000-* \ | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c54x-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
| clipper-* | cydra-* \ | clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* \ | d10v-* | d30v-* | dlx-* \
| elxsi-* \ | elxsi-* \
| f30[01]-* | f700-* | fr30-* | fx80-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \ | h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| i*86-* | i860-* | i960-* | ia64-* \ | i*86-* | i860-* | i960-* | ia64-* \
| m32r-* \ | ip2k-* | iq2000-* \
| m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
| m88110-* | m88k-* | mcore-* \ | m88110-* | m88k-* | mcore-* \
| mips-* | mips16-* | mips64-* | mips64el-* | mips64orion-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
| mips64orionel-* | mips64vr4100-* | mips64vr4100el-* \ | mips16-* \
| mips64vr4300-* | mips64vr4300el-* | mipsbe-* | mipseb-* \ | mips64-* | mips64el-* \
| mipsle-* | mipsel-* | mipstx39-* | mipstx39el-* \ | mips64vr-* | mips64vrel-* \
| mips64orion-* | mips64orionel-* \
| mips64vr4100-* | mips64vr4100el-* \
| mips64vr4300-* | mips64vr4300el-* \
| mips64vr5000-* | mips64vr5000el-* \
| mipsisa32-* | mipsisa32el-* \
| mipsisa32r2-* | mipsisa32r2el-* \
| mipsisa64-* | mipsisa64el-* \
| mipsisa64r2-* | mipsisa64r2el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
| mipstx39-* | mipstx39el-* \
| mmix-* \
| msp430-* \
| none-* | np1-* | ns16k-* | ns32k-* \ | none-* | np1-* | ns16k-* | ns32k-* \
| orion-* \ | orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
| pyramid-* \ | pyramid-* \
| romp-* | rs6000-* \ | romp-* | rs6000-* \
| sh-* | sh[34]-* | sh[34]eb-* | shbe-* | shle-* | sh64-* \ | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
| sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
| tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \ | tahoe-* | thumb-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
| tron-* \
| v850-* | v850e-* | vax-* \ | v850-* | v850e-* | vax-* \
| we32k-* \ | we32k-* \
| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
@ -332,6 +364,9 @@ case $basic_machine in
basic_machine=a29k-amd basic_machine=a29k-amd
os=-udi os=-udi
;; ;;
abacus)
basic_machine=abacus-unknown
;;
adobe68k) adobe68k)
basic_machine=m68010-adobe basic_machine=m68010-adobe
os=-scout os=-scout
@ -346,6 +381,12 @@ case $basic_machine in
basic_machine=a29k-none basic_machine=a29k-none
os=-bsd os=-bsd
;; ;;
amd64)
basic_machine=x86_64-pc
;;
amd64-*)
basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
amdahl) amdahl)
basic_machine=580-amdahl basic_machine=580-amdahl
os=-sysv os=-sysv
@ -405,12 +446,24 @@ case $basic_machine in
basic_machine=j90-cray basic_machine=j90-cray
os=-unicos os=-unicos
;; ;;
craynv)
basic_machine=craynv-cray
os=-unicosmp
;;
cr16c)
basic_machine=cr16c-unknown
os=-elf
;;
crds | unos) crds | unos)
basic_machine=m68k-crds basic_machine=m68k-crds
;; ;;
cris | cris-* | etrax*) cris | cris-* | etrax*)
basic_machine=cris-axis basic_machine=cris-axis
;; ;;
crx)
basic_machine=crx-unknown
os=-elf
;;
da30 | da30-*) da30 | da30-*)
basic_machine=m68k-da30 basic_machine=m68k-da30
;; ;;
@ -611,10 +664,6 @@ case $basic_machine in
mips3*) mips3*)
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
;; ;;
mmix*)
basic_machine=mmix-knuth
os=-mmixware
;;
monitor) monitor)
basic_machine=m68k-rom68k basic_machine=m68k-rom68k
os=-coff os=-coff
@ -706,6 +755,10 @@ case $basic_machine in
basic_machine=or32-unknown basic_machine=or32-unknown
os=-coff os=-coff
;; ;;
os400)
basic_machine=powerpc-ibm
os=-os400
;;
OSE68000 | ose68000) OSE68000 | ose68000)
basic_machine=m68000-ericsson basic_machine=m68000-ericsson
os=-ose os=-ose
@ -728,49 +781,55 @@ case $basic_machine in
pbb) pbb)
basic_machine=m68k-tti basic_machine=m68k-tti
;; ;;
pc532 | pc532-*) pc532 | pc532-*)
basic_machine=ns32k-pc532 basic_machine=ns32k-pc532
;; ;;
pentium | p5 | k5 | k6 | nexgen | viac3) pentium | p5 | k5 | k6 | nexgen | viac3)
basic_machine=i586-pc basic_machine=i586-pc
;; ;;
pentiumpro | p6 | 6x86 | athlon) pentiumpro | p6 | 6x86 | athlon | athlon_*)
basic_machine=i686-pc basic_machine=i686-pc
;; ;;
pentiumii | pentium2) pentiumii | pentium2 | pentiumiii | pentium3)
basic_machine=i686-pc basic_machine=i686-pc
;; ;;
pentium4)
basic_machine=i786-pc
;;
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
;; ;;
pentiumpro-* | p6-* | 6x86-* | athlon-*) pentiumpro-* | p6-* | 6x86-* | athlon-*)
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
;; ;;
pentiumii-* | pentium2-*) pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
;; ;;
pentium4-*)
basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pn) pn)
basic_machine=pn-gould basic_machine=pn-gould
;; ;;
power) basic_machine=power-ibm power) basic_machine=power-ibm
;; ;;
ppc) basic_machine=powerpc-unknown ppc) basic_machine=powerpc-unknown
;; ;;
ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
;; ;;
ppcle | powerpclittle | ppc-le | powerpc-little) ppcle | powerpclittle | ppc-le | powerpc-little)
basic_machine=powerpcle-unknown basic_machine=powerpcle-unknown
;; ;;
ppcle-* | powerpclittle-*) ppcle-* | powerpclittle-*)
basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
;; ;;
ppc64) basic_machine=powerpc64-unknown ppc64) basic_machine=powerpc64-unknown
;; ;;
ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
;; ;;
ppc64le | powerpc64little | ppc64-le | powerpc64-little) ppc64le | powerpc64little | ppc64-le | powerpc64-little)
basic_machine=powerpc64le-unknown basic_machine=powerpc64le-unknown
;; ;;
ppc64le-* | powerpc64little-*) ppc64le-* | powerpc64little-*)
basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
;; ;;
@ -801,6 +860,16 @@ case $basic_machine in
basic_machine=a29k-amd basic_machine=a29k-amd
os=-udi os=-udi
;; ;;
sb1)
basic_machine=mipsisa64sb1-unknown
;;
sb1el)
basic_machine=mipsisa64sb1el-unknown
;;
sei)
basic_machine=mips-sei
os=-seiux
;;
sequent) sequent)
basic_machine=i386-sequent basic_machine=i386-sequent
;; ;;
@ -808,6 +877,9 @@ case $basic_machine in
basic_machine=sh-hitachi basic_machine=sh-hitachi
os=-hms os=-hms
;; ;;
sh64)
basic_machine=sh64-unknown
;;
sparclite-wrs | simso-wrs) sparclite-wrs | simso-wrs)
basic_machine=sparclite-wrs basic_machine=sparclite-wrs
os=-vxworks os=-vxworks
@ -866,7 +938,7 @@ case $basic_machine in
sun386 | sun386i | roadrunner) sun386 | sun386i | roadrunner)
basic_machine=i386-sun basic_machine=i386-sun
;; ;;
sv1) sv1)
basic_machine=sv1-cray basic_machine=sv1-cray
os=-unicos os=-unicos
;; ;;
@ -874,10 +946,6 @@ case $basic_machine in
basic_machine=i386-sequent basic_machine=i386-sequent
os=-dynix os=-dynix
;; ;;
t3d)
basic_machine=alpha-cray
os=-unicos
;;
t3e) t3e)
basic_machine=alphaev5-cray basic_machine=alphaev5-cray
os=-unicos os=-unicos
@ -890,6 +958,14 @@ case $basic_machine in
basic_machine=tic54x-unknown basic_machine=tic54x-unknown
os=-coff os=-coff
;; ;;
tic55x | c55x*)
basic_machine=tic55x-unknown
os=-coff
;;
tic6x | c6x*)
basic_machine=tic6x-unknown
os=-coff
;;
tx39) tx39)
basic_machine=mipstx39-unknown basic_machine=mipstx39-unknown
;; ;;
@ -903,6 +979,10 @@ case $basic_machine in
tower | tower-32) tower | tower-32)
basic_machine=m68k-ncr basic_machine=m68k-ncr
;; ;;
tpf)
basic_machine=s390x-ibm
os=-tpf
;;
udi29k) udi29k)
basic_machine=a29k-amd basic_machine=a29k-amd
os=-udi os=-udi
@ -924,8 +1004,8 @@ case $basic_machine in
os=-vms os=-vms
;; ;;
vpp*|vx|vx-*) vpp*|vx|vx-*)
basic_machine=f301-fujitsu basic_machine=f301-fujitsu
;; ;;
vxworks960) vxworks960)
basic_machine=i960-wrs basic_machine=i960-wrs
os=-vxworks os=-vxworks
@ -946,11 +1026,7 @@ case $basic_machine in
basic_machine=hppa1.1-winbond basic_machine=hppa1.1-winbond
os=-proelf os=-proelf
;; ;;
windows32) xps | xps100)
basic_machine=i386-pc
os=-windows32-msvcrt
;;
xps | xps100)
basic_machine=xps100-honeywell basic_machine=xps100-honeywell
;; ;;
ymp) ymp)
@ -980,6 +1056,9 @@ case $basic_machine in
romp) romp)
basic_machine=romp-ibm basic_machine=romp-ibm
;; ;;
mmix)
basic_machine=mmix-knuth
;;
rs6000) rs6000)
basic_machine=rs6000-ibm basic_machine=rs6000-ibm
;; ;;
@ -996,16 +1075,16 @@ case $basic_machine in
we32k) we32k)
basic_machine=we32k-att basic_machine=we32k-att
;; ;;
sh3 | sh4 | sh3eb | sh4eb) sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
basic_machine=sh-unknown basic_machine=sh-unknown
;; ;;
sh64) sh64)
basic_machine=sh64-unknown basic_machine=sh64-unknown
;; ;;
sparc | sparcv9 | sparcv9b) sparc | sparcv8 | sparcv9 | sparcv9b)
basic_machine=sparc-sun basic_machine=sparc-sun
;; ;;
cydra) cydra)
basic_machine=cydra-cydrome basic_machine=cydra-cydrome
;; ;;
orion) orion)
@ -1020,10 +1099,6 @@ case $basic_machine in
pmac | pmac-mpw) pmac | pmac-mpw)
basic_machine=powerpc-apple basic_machine=powerpc-apple
;; ;;
c4x*)
basic_machine=c4x-none
os=-coff
;;
*-unknown) *-unknown)
# Make sure to match an already-canonicalized machine name. # Make sure to match an already-canonicalized machine name.
;; ;;
@ -1079,18 +1154,20 @@ case $os in
| -aos* \ | -aos* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
| -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* \ | -chorusos* | -chorusrdb* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova*) | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*)
# Remember, each alternative MUST END IN *, to match a version number. # Remember, each alternative MUST END IN *, to match a version number.
;; ;;
-qnx*) -qnx*)
@ -1102,8 +1179,10 @@ case $os in
;; ;;
esac esac
;; ;;
-nto-qnx*)
;;
-nto*) -nto*)
os=-nto-qnx os=`echo $os | sed -e 's|nto|nto-qnx|'`
;; ;;
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
| -windows* | -osx | -abug | -netware* | -os9* | -beos* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
@ -1112,6 +1191,9 @@ case $os in
-mac*) -mac*)
os=`echo $os | sed -e 's|mac|macos|'` os=`echo $os | sed -e 's|mac|macos|'`
;; ;;
-linux-dietlibc)
os=-linux-dietlibc
;;
-linux*) -linux*)
os=`echo $os | sed -e 's|linux|linux-gnu|'` os=`echo $os | sed -e 's|linux|linux-gnu|'`
;; ;;
@ -1124,6 +1206,9 @@ case $os in
-opened*) -opened*)
os=-openedition os=-openedition
;; ;;
-os400*)
os=-os400
;;
-wince*) -wince*)
os=-wince os=-wince
;; ;;
@ -1145,6 +1230,9 @@ case $os in
-atheos*) -atheos*)
os=-atheos os=-atheos
;; ;;
-syllable*)
os=-syllable
;;
-386bsd) -386bsd)
os=-bsd os=-bsd
;; ;;
@ -1155,7 +1243,7 @@ case $os in
os=-rtmk-nova os=-rtmk-nova
;; ;;
-ns2 ) -ns2 )
os=-nextstep2 os=-nextstep2
;; ;;
-nsk*) -nsk*)
os=-nsk os=-nsk
@ -1167,6 +1255,9 @@ case $os in
-sinix*) -sinix*)
os=-sysv4 os=-sysv4
;; ;;
-tpf*)
os=-tpf
;;
-triton*) -triton*)
os=-sysv3 os=-sysv3
;; ;;
@ -1194,8 +1285,14 @@ case $os in
-xenix) -xenix)
os=-xenix os=-xenix
;; ;;
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
os=-mint os=-mint
;;
-aros*)
os=-aros
;;
-kaos*)
os=-kaos
;; ;;
-none) -none)
;; ;;
@ -1228,11 +1325,14 @@ case $basic_machine in
arm*-semi) arm*-semi)
os=-aout os=-aout
;; ;;
c4x-* | tic4x-*)
os=-coff
;;
# This must come before the *-dec entry. # This must come before the *-dec entry.
pdp10-*) pdp10-*)
os=-tops20 os=-tops20
;; ;;
pdp11-*) pdp11-*)
os=-none os=-none
;; ;;
*-dec | vax-*) *-dec | vax-*)
@ -1274,6 +1374,9 @@ case $basic_machine in
*-ibm) *-ibm)
os=-aix os=-aix
;; ;;
*-knuth)
os=-mmixware
;;
*-wec) *-wec)
os=-proelf os=-proelf
;; ;;
@ -1325,19 +1428,19 @@ case $basic_machine in
*-next) *-next)
os=-nextstep3 os=-nextstep3
;; ;;
*-gould) *-gould)
os=-sysv os=-sysv
;; ;;
*-highlevel) *-highlevel)
os=-bsd os=-bsd
;; ;;
*-encore) *-encore)
os=-bsd os=-bsd
;; ;;
*-sgi) *-sgi)
os=-irix os=-irix
;; ;;
*-siemens) *-siemens)
os=-sysv4 os=-sysv4
;; ;;
*-masscomp) *-masscomp)
@ -1406,10 +1509,16 @@ case $basic_machine in
-mvs* | -opened*) -mvs* | -opened*)
vendor=ibm vendor=ibm
;; ;;
-os400*)
vendor=ibm
;;
-ptx*) -ptx*)
vendor=sequent vendor=sequent
;; ;;
-vxsim* | -vxworks*) -tpf*)
vendor=ibm
;;
-vxsim* | -vxworks* | -windiss*)
vendor=wrs vendor=wrs
;; ;;
-aux*) -aux*)

View File

@ -1,5 +1,7 @@
2004-09-30 Werner Koch <wk@g10code.com> 2004-09-30 Werner Koch <wk@g10code.com>
* Makefile.am: Adjusted for gettext 0.14.
* keylist.c (list_cert_colon): Make sure that the expired flag has * keylist.c (list_cert_colon): Make sure that the expired flag has
a higher precedence than the invalid flag. a higher precedence than the invalid flag.

View File

@ -53,4 +53,6 @@ gpgsm_SOURCES = \
gpgsm_LDADD = ../jnlib/libjnlib.a ../kbx/libkeybox.a ../common/libcommon.a \ gpgsm_LDADD = ../jnlib/libjnlib.a ../kbx/libkeybox.a ../common/libcommon.a \
$(LIBGCRYPT_LIBS) $(LIBASSUAN_LIBS) $(KSBA_LIBS) -lgpg-error \ $(LIBGCRYPT_LIBS) $(LIBASSUAN_LIBS) $(KSBA_LIBS) -lgpg-error \
$(INTLLIBS) $(LIBINTL)

View File

@ -1,3 +1,8 @@
2004-09-30 Werner Koch <wk@g10code.com>
* Makefile.am (SUBDIRS): Remove pkits until the copyright issues
have been cleared.
2004-08-16 Werner Koch <wk@g10code.de> 2004-08-16 Werner Koch <wk@g10code.de>
* Makefile.am: Descend into the new pkits directory * Makefile.am: Descend into the new pkits directory

View File

@ -20,13 +20,13 @@
## Process this file with automake to produce Makefile.in ## Process this file with automake to produce Makefile.in
if RUN_PKITS_TESTS #if RUN_PKITS_TESTS
pkits = pkits #pkits = pkits
else #else
pkits = #pkits =
endif #endif
#
SUBDIRS = . ${pkits} #SUBDIRS = . ${pkits}
GPGSM = ../sm/gpgsm GPGSM = ../sm/gpgsm

View File

@ -1,3 +1,7 @@
2004-09-30 Werner Koch <wk@g10code.com>
* Makefile.am: Adjusted for gettext 0.14.
2004-09-29 Werner Koch <wk@g10code.com> 2004-09-29 Werner Koch <wk@g10code.com>
* gpgconf-comp.c: Made the entries fro GROUPs translatable. * gpgconf-comp.c: Made the entries fro GROUPs translatable.

View File

@ -34,6 +34,6 @@ bin_PROGRAMS = gpgconf watchgnupg
gpgconf_SOURCES = gpgconf.c gpgconf.h gpgconf-comp.c no-libgcrypt.c gpgconf_SOURCES = gpgconf.c gpgconf.h gpgconf-comp.c no-libgcrypt.c
gpgconf_LDADD = ../jnlib/libjnlib.a ../common/libcommon.a @INTLLIBS@ gpgconf_LDADD = ../jnlib/libjnlib.a ../common/libcommon.a @LIBINTL@
watchgnupg_SOURCES = watchgnupg.c watchgnupg_SOURCES = watchgnupg.c