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

No more warnings for AMD64 (at least when cross-compiling). Thus tehre is a

good chance that gpg2 will now work. 
Other cleanups.
Updated gettext.
This commit is contained in:
Werner Koch 2006-11-21 11:00:14 +00:00
parent 5885142c83
commit e50c5f39cc
132 changed files with 7331 additions and 5486 deletions

1387
ABOUT-NLS

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,10 @@
2006-11-21 Werner Koch <wk@g10code.com>
* configure.ac [AH_BOTTOM]: Disable PTH soft mapping.
(AC_CHECK_SIZEOF): Check for time_t.
(BUILD_INCLUDED_LIBINTL): Remove AM_PO_SUBDIRS as it is not
required for C.
2006-11-15 Werner Koch <wk@g10code.com> 2006-11-15 Werner Koch <wk@g10code.com>
* autogen.sh: Add convenience option --build-amd64. * autogen.sh: Add convenience option --build-amd64.

View File

@ -1,3 +1,8 @@
2006-11-21 Werner Koch <wk@g10code.com>
* estream.c: Remove explicit Pth soft mapping diabling becuase it
is now done in config.h.
2006-11-15 Werner Koch <wk@g10code.com> 2006-11-15 Werner Koch <wk@g10code.com>
* estream.c: Disabled Pth soft mapping. * estream.c: Disabled Pth soft mapping.

View File

@ -46,9 +46,6 @@
#endif #endif
#ifdef HAVE_PTH #ifdef HAVE_PTH
/* We explicitly need to disable soft mapping as Debian currently
enables it for no reason. */
# define PTH_SYSCALL_SOFT 0
# include <pth.h> # include <pth.h>
#endif #endif

View File

@ -422,6 +422,11 @@ AH_BOTTOM([
/* We don't want the old assuan codes anymore. */ /* We don't want the old assuan codes anymore. */
#define _ASSUAN_ONLY_GPG_ERRORS 1 #define _ASSUAN_ONLY_GPG_ERRORS 1
/* We explicitly need to disable PTH's soft mapping as Debian
currently enables it by default for no reason. */
#define PTH_SYSCALL_SOFT 0
#endif /*GNUPG_CONFIG_H_INCLUDED*/ #endif /*GNUPG_CONFIG_H_INCLUDED*/
]) ])
@ -847,7 +852,7 @@ AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME",
# #
# Check for gettext # Check for gettext
# #
AM_GNU_GETTEXT_VERSION(0.14.1) AM_GNU_GETTEXT_VERSION([0.15])
if test "$try_gettext" = yes; then if test "$try_gettext" = yes; then
AM_GNU_GETTEXT(,[need-ngettext]) AM_GNU_GETTEXT(,[need-ngettext])
@ -863,7 +868,6 @@ else
AC_SUBST(USE_NLS) AC_SUBST(USE_NLS)
AC_SUBST(USE_INCLUDED_LIBINTL) AC_SUBST(USE_INCLUDED_LIBINTL)
AC_SUBST(BUILD_INCLUDED_LIBINTL) AC_SUBST(BUILD_INCLUDED_LIBINTL)
AM_PO_SUBDIRS
fi fi
@ -881,6 +885,7 @@ fi
AC_HEADER_STDC AC_HEADER_STDC
AC_CHECK_HEADERS([string.h unistd.h langinfo.h termio.h locale.h getopt.h]) AC_CHECK_HEADERS([string.h unistd.h langinfo.h termio.h locale.h getopt.h])
AC_CHECK_HEADERS([pty.h pwd.h inttypes.h]) AC_CHECK_HEADERS([pty.h pwd.h inttypes.h])
AC_HEADER_TIME
# #
@ -914,6 +919,21 @@ AC_CHECK_SIZEOF(unsigned short)
AC_CHECK_SIZEOF(unsigned int) AC_CHECK_SIZEOF(unsigned int)
AC_CHECK_SIZEOF(unsigned long) AC_CHECK_SIZEOF(unsigned long)
AC_CHECK_SIZEOF(unsigned long long) AC_CHECK_SIZEOF(unsigned long long)
AC_CHECK_SIZEOF(time_t,,[[
#include <stdio.h>
#if TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
#endif
]])
# Ensure that we have UINT64_C before we bother to check for uint64_t # Ensure that we have UINT64_C before we bother to check for uint64_t
# Fixme: really needed in gnupg? I think it is only useful in libcgrypt. # Fixme: really needed in gnupg? I think it is only useful in libcgrypt.
AC_CACHE_CHECK([for UINT64_C],[gnupg_cv_uint64_c_works], AC_CACHE_CHECK([for UINT64_C],[gnupg_cv_uint64_c_works],

View File

@ -1,3 +1,24 @@
2006-11-21 Werner Koch <wk@g10code.com>
* keygen.c (ask_expire_interval): Print y2038 warning only for 32
bit time_t.
(save_unprotected_key_to_card): Made RSA_N_LEN et al a size_t.
Cast printf args.
* seckey-cert.c (do_check): Made NBYTES a size_t.
(do_check): Made NDATA a size_t.
(protect_secret_key): Made NARR a size_t.
(protect_secret_key): Made NVYES a size_t.
* pubkey-enc.c (get_it): Made INDATALEN a size_t.
(get_it): Made NFRAME a size_t.
* keyid.c (hash_public_key): Made NBITS an unsigned int.
* misc.c (checksum_mpi): Made NBYTES a size_t.
(openpgp_pk_test_algo2): Made USE_BUF a size_t.
* seskey.c (encode_session_key): Made NFRAME a size_t.
(do_encode_md): Ditto.
(encode_md_value): Cast size_t argument of printf.
(encode_md_value): Ditto.
2006-11-10 Werner Koch <wk@g10code.com> 2006-11-10 Werner Koch <wk@g10code.com>
* parse-packet.c (mpi_read): Changed NREAD to size_t to match the * parse-packet.c (mpi_read): Changed NREAD to size_t to match the

View File

@ -1849,12 +1849,12 @@ ask_expire_interval(int object,const char *def_expire)
? _("Key expires at %s\n") ? _("Key expires at %s\n")
: _("Signature expires at %s\n"), : _("Signature expires at %s\n"),
asctimestamp((ulong)(curtime + interval) ) ); asctimestamp((ulong)(curtime + interval) ) );
/* FIXME: This check yields warning on alhas: Write a #if SIZEOF_TIME_T <= 4
configure check and to this check here only for 32 bit if ( (time_t)((ulong)(curtime+interval)) < 0 )
machines */ tty_printf (_("Your system can't display dates beyond 2038.\n"
if( (time_t)((ulong)(curtime+interval)) < 0 ) "However, it will be correctly handled up to"
tty_printf(_("Your system can't display dates beyond 2038.\n" " 2106.\n"));
"However, it will be correctly handled up to 2106.\n")); #endif /*SIZEOF_TIME_T*/
} }
if( cpr_enabled() || cpr_get_answer_is_yes("keygen.valid.okay", if( cpr_enabled() || cpr_get_answer_is_yes("keygen.valid.okay",
@ -3824,7 +3824,7 @@ save_unprotected_key_to_card (PKT_secret_key *sk, int keyno)
unsigned char *rsa_e = NULL; unsigned char *rsa_e = NULL;
unsigned char *rsa_p = NULL; unsigned char *rsa_p = NULL;
unsigned char *rsa_q = NULL; unsigned char *rsa_q = NULL;
unsigned int rsa_n_len, rsa_e_len, rsa_p_len, rsa_q_len; size_t rsa_n_len, rsa_e_len, rsa_p_len, rsa_q_len;
unsigned char *sexp = NULL; unsigned char *sexp = NULL;
unsigned char *p; unsigned char *p;
char numbuf[55], numbuf2[50]; char numbuf[55], numbuf2[50];
@ -3849,22 +3849,22 @@ save_unprotected_key_to_card (PKT_secret_key *sk, int keyno)
+ 4*sizeof (numbuf) + 25 + sizeof(numbuf) + 20); + 4*sizeof (numbuf) + 25 + sizeof(numbuf) + 20);
p = stpcpy (p,"(11:private-key(3:rsa(1:n"); p = stpcpy (p,"(11:private-key(3:rsa(1:n");
sprintf (numbuf, "%u:", rsa_n_len); sprintf (numbuf, "%u:", (unsigned int)rsa_n_len);
p = stpcpy (p, numbuf); p = stpcpy (p, numbuf);
memcpy (p, rsa_n, rsa_n_len); memcpy (p, rsa_n, rsa_n_len);
p += rsa_n_len; p += rsa_n_len;
sprintf (numbuf, ")(1:e%u:", rsa_e_len); sprintf (numbuf, ")(1:e%u:", (unsigned int)rsa_e_len);
p = stpcpy (p, numbuf); p = stpcpy (p, numbuf);
memcpy (p, rsa_e, rsa_e_len); memcpy (p, rsa_e, rsa_e_len);
p += rsa_e_len; p += rsa_e_len;
sprintf (numbuf, ")(1:p%u:", rsa_p_len); sprintf (numbuf, ")(1:p%u:", (unsigned int)rsa_p_len);
p = stpcpy (p, numbuf); p = stpcpy (p, numbuf);
memcpy (p, rsa_p, rsa_p_len); memcpy (p, rsa_p, rsa_p_len);
p += rsa_p_len; p += rsa_p_len;
sprintf (numbuf, ")(1:q%u:", rsa_q_len); sprintf (numbuf, ")(1:q%u:", (unsigned int)rsa_q_len);
p = stpcpy (p, numbuf); p = stpcpy (p, numbuf);
memcpy (p, rsa_q, rsa_q_len); memcpy (p, rsa_q, rsa_q_len);
p += rsa_q_len; p += rsa_q_len;

View File

@ -59,7 +59,8 @@ hash_public_key( gcry_md_hd_t md, PKT_public_key *pk )
unsigned int nn[PUBKEY_MAX_NPKEY]; unsigned int nn[PUBKEY_MAX_NPKEY];
byte *pp[PUBKEY_MAX_NPKEY]; byte *pp[PUBKEY_MAX_NPKEY];
int i; int i;
size_t nbits, nbytes; unsigned int nbits;
size_t nbytes;
int npkey = pubkey_get_npkey (pk->pubkey_algo); int npkey = pubkey_get_npkey (pk->pubkey_algo);
/* Two extra bytes for the expiration date in v3 */ /* Two extra bytes for the expiration date in v3 */

View File

@ -297,7 +297,7 @@ checksum_mpi (gcry_mpi_t a)
{ {
u16 csum; u16 csum;
byte *buffer; byte *buffer;
unsigned int nbytes; size_t nbytes;
if ( gcry_mpi_print (GCRYMPI_FMT_PGP, NULL, 0, &nbytes, a) ) if ( gcry_mpi_print (GCRYMPI_FMT_PGP, NULL, 0, &nbytes, a) )
BUG (); BUG ();
@ -426,7 +426,7 @@ openpgp_pk_test_algo( int algo )
int int
openpgp_pk_test_algo2( int algo, unsigned int use ) openpgp_pk_test_algo2( int algo, unsigned int use )
{ {
int use_buf = use; size_t use_buf = use;
if (algo == GCRY_PK_ELG_E) if (algo == GCRY_PK_ELG_E)
algo = GCRY_PK_ELG; algo = GCRY_PK_ELG;

View File

@ -155,7 +155,8 @@ get_it( PKT_pubkey_enc *enc, DEK *dek, PKT_secret_key *sk, u32 *keyid )
int rc; int rc;
gcry_mpi_t plain_dek = NULL; gcry_mpi_t plain_dek = NULL;
byte *frame = NULL; byte *frame = NULL;
unsigned n, nframe; unsigned int n;
size_t nframe;
u16 csum, csum2; u16 csum, csum2;
int card = 0; int card = 0;
@ -167,7 +168,7 @@ get_it( PKT_pubkey_enc *enc, DEK *dek, PKT_secret_key *sk, u32 *keyid )
size_t rbuflen; size_t rbuflen;
char *snbuf; char *snbuf;
unsigned char *indata = NULL; unsigned char *indata = NULL;
unsigned int indatalen; size_t indatalen;
snbuf = serialno_and_fpr_from_sk (sk->protect.iv, sk->protect.ivlen, sk); snbuf = serialno_and_fpr_from_sk (sk->protect.iv, sk->protect.ivlen, sk);

View File

@ -45,7 +45,7 @@ do_check( PKT_secret_key *sk, const char *tryagain_text, int mode,
byte *buffer; byte *buffer;
u16 csum=0; u16 csum=0;
int i, res; int i, res;
unsigned int nbytes; size_t nbytes;
if( sk->is_protected ) { /* remove the protection */ if( sk->is_protected ) { /* remove the protection */
DEK *dek = NULL; DEK *dek = NULL;
@ -194,7 +194,7 @@ do_check( PKT_secret_key *sk, const char *tryagain_text, int mode,
for(i=pubkey_get_npkey(sk->pubkey_algo); for(i=pubkey_get_npkey(sk->pubkey_algo);
i < pubkey_get_nskey(sk->pubkey_algo); i++ ) { i < pubkey_get_nskey(sk->pubkey_algo); i++ ) {
byte *p; byte *p;
int ndata; size_t ndata;
unsigned int ndatabits; unsigned int ndatabits;
assert (gcry_mpi_get_flag (sk->skey[i], GCRYMPI_FLAG_OPAQUE)); assert (gcry_mpi_get_flag (sk->skey[i], GCRYMPI_FLAG_OPAQUE));
@ -337,7 +337,7 @@ protect_secret_key( PKT_secret_key *sk, DEK *dek )
{ {
int i,j, rc = 0; int i,j, rc = 0;
byte *buffer; byte *buffer;
unsigned nbytes; size_t nbytes;
u16 csum; u16 csum;
if( !dek ) if( !dek )
@ -370,8 +370,8 @@ protect_secret_key( PKT_secret_key *sk, DEK *dek )
gcry_cipher_setiv (cipher_hd, sk->protect.iv, sk->protect.ivlen); gcry_cipher_setiv (cipher_hd, sk->protect.iv, sk->protect.ivlen);
if( sk->version >= 4 ) { if( sk->version >= 4 ) {
byte *bufarr[PUBKEY_MAX_NSKEY]; byte *bufarr[PUBKEY_MAX_NSKEY];
unsigned narr[PUBKEY_MAX_NSKEY]; size_t narr[PUBKEY_MAX_NSKEY];
unsigned nbits[PUBKEY_MAX_NSKEY]; unsigned int nbits[PUBKEY_MAX_NSKEY];
int ndata=0; int ndata=0;
byte *p, *data; byte *p, *data;

View File

@ -77,7 +77,7 @@ make_session_key( DEK *dek )
gcry_mpi_t gcry_mpi_t
encode_session_key (DEK *dek, unsigned int nbits) encode_session_key (DEK *dek, unsigned int nbits)
{ {
int nframe = (nbits+7) / 8; size_t nframe = (nbits+7) / 8;
byte *p; byte *p;
byte *frame; byte *frame;
int i,n; int i,n;
@ -157,7 +157,7 @@ static gcry_mpi_t
do_encode_md( gcry_md_hd_t md, int algo, size_t len, unsigned nbits, do_encode_md( gcry_md_hd_t md, int algo, size_t len, unsigned nbits,
const byte *asn, size_t asnlen ) const byte *asn, size_t asnlen )
{ {
int nframe = (nbits+7) / 8; size_t nframe = (nbits+7) / 8;
byte *frame; byte *frame;
int i,n; int i,n;
gcry_mpi_t a; gcry_mpi_t a;
@ -237,11 +237,11 @@ encode_md_value (PKT_public_key *pk, PKT_secret_key *sk,
or something like that, which would look correct but allow or something like that, which would look correct but allow
trivial forgeries. Yes, I know this rules out using MD5 with trivial forgeries. Yes, I know this rules out using MD5 with
DSA. ;) */ DSA. ;) */
if (qbytes < 160)
if(qbytes<160)
{ {
log_error(_("DSA key %s uses an unsafe (%u bit) hash\n"), log_error (_("DSA key %s uses an unsafe (%u bit) hash\n"),
pk?keystr_from_pk(pk):keystr_from_sk(sk),qbytes); pk?keystr_from_pk(pk):keystr_from_sk(sk),
(unsigned int)qbytes);
return NULL; return NULL;
} }
@ -249,11 +249,11 @@ encode_md_value (PKT_public_key *pk, PKT_secret_key *sk,
/* Check if we're too short. Too long is safe as we'll /* Check if we're too short. Too long is safe as we'll
automatically left-truncate. */ automatically left-truncate. */
if (gcry_md_get_algo_dlen (hash_algo) < qbytes)
if(gcry_md_get_algo_dlen (hash_algo) < qbytes)
{ {
log_error(_("DSA key %s requires a %u bit or larger hash\n"), log_error (_("DSA key %s requires a %u bit or larger hash\n"),
pk?keystr_from_pk(pk):keystr_from_sk(sk),qbytes*8); pk?keystr_from_pk(pk):keystr_from_sk(sk),
(unsigned int)(qbytes*8));
return NULL; return NULL;
} }

View File

@ -1,4 +1,4 @@
2004-01-29 GNU <bug-gnu-gettext@gnu.org> 2006-07-21 GNU <bug-gnu-gettext@gnu.org>
* Version 0.14.1 released. * Version 0.15 released.

View File

@ -1,5 +1,5 @@
# Makefile for directory with message catalog handling library of GNU gettext # Makefile for directory with message catalog handling library of GNU gettext
# Copyright (C) 1995-1998, 2000-2003 Free Software Foundation, Inc. # Copyright (C) 1995-1998, 2000-2006 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
@ -13,7 +13,7 @@
# #
# You should have received a copy of the GNU Library General Public # You should have received a copy of the GNU Library General Public
# License along with this program; if not, write to the Free Software # License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
# USA. # USA.
PACKAGE = @PACKAGE@ PACKAGE = @PACKAGE@
@ -24,6 +24,17 @@ SHELL = /bin/sh
srcdir = @srcdir@ srcdir = @srcdir@
top_srcdir = @top_srcdir@ top_srcdir = @top_srcdir@
top_builddir = .. top_builddir = ..
# The VPATH variables allows builds with $builddir != $srcdir, assuming a
# 'make' program that supports VPATH (such as GNU make). This line is removed
# by autoconf automatically when "$(srcdir)" = ".".
# In this directory, the VPATH handling is particular:
# 1. If INTL_LIBTOOL_SUFFIX_PREFIX is 'l' (indicating a build with libtool),
# the .c -> .lo rules carefully use $(srcdir), so that VPATH can be omitted.
# 2. If PACKAGE = gettext-tools, VPATH _must_ be omitted, because otherwise
# 'make' does the wrong thing if GNU gettext was configured with
# "./configure --srcdir=`pwd`", namely it gets confused by the .lo and .la
# files it finds in srcdir = ../../gettext-runtime/intl.
VPATH = $(srcdir) VPATH = $(srcdir)
prefix = @prefix@ prefix = @prefix@
@ -31,6 +42,7 @@ exec_prefix = @exec_prefix@
transform = @program_transform_name@ transform = @program_transform_name@
libdir = @libdir@ libdir = @libdir@
includedir = @includedir@ includedir = @includedir@
datarootdir = @datarootdir@
datadir = @datadir@ datadir = @datadir@
localedir = $(datadir)/locale localedir = $(datadir)/locale
gettextsrcdir = $(datadir)/gettext/intl gettextsrcdir = $(datadir)/gettext/intl
@ -39,8 +51,8 @@ subdir = intl
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@
MKINSTALLDIRS = @MKINSTALLDIRS@ mkinstalldirs = @install_sh@ -d
mkinstalldirs = $(SHELL) $(MKINSTALLDIRS) mkdir_p = @mkdir_p@
l = @INTL_LIBTOOL_SUFFIX_PREFIX@ l = @INTL_LIBTOOL_SUFFIX_PREFIX@
@ -51,15 +63,19 @@ RANLIB = @RANLIB@
YACC = @INTLBISON@ -y -d YACC = @INTLBISON@ -y -d
YFLAGS = --name-prefix=__gettext YFLAGS = --name-prefix=__gettext
# -DBUILDING_LIBINTL: Change expansion of LIBINTL_DLL_EXPORTED macro.
# -DBUILDING_DLL: Change expansion of RELOCATABLE_DLL_EXPORTED macro.
DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \ DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \
-DLIBDIR=\"$(libdir)\" -DIN_LIBINTL \ -DLIBDIR=\"$(libdir)\" -DBUILDING_LIBINTL -DBUILDING_DLL -DIN_LIBINTL \
-DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLDIR=\"$(libdir)\" -DNO_XMALLOC \ -DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLDIR=\"$(libdir)\" -DNO_XMALLOC \
-Dset_relocation_prefix=libintl_set_relocation_prefix \ -Dset_relocation_prefix=libintl_set_relocation_prefix \
-Drelocate=libintl_relocate \ -Drelocate=libintl_relocate \
-DDEPENDS_ON_LIBICONV=1 @DEFS@ -DDEPENDS_ON_LIBICONV=1 @DEFS@
CPPFLAGS = @CPPFLAGS@ CPPFLAGS = @CPPFLAGS@
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@ @CFLAG_VISIBILITY@
LDFLAGS = @LDFLAGS@ LDFLAGS = @LDFLAGS@ $(LDFLAGS_@WOE32DLL@)
LDFLAGS_yes = -Wl,--export-all-symbols
LDFLAGS_no =
LIBS = @LIBS@ LIBS = @LIBS@
COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
@ -72,6 +88,7 @@ HEADERS = \
plural-exp.h \ plural-exp.h \
eval-plural.h \ eval-plural.h \
localcharset.h \ localcharset.h \
lock.h \
relocatable.h \ relocatable.h \
xsize.h \ xsize.h \
printf-args.h printf-args.c \ printf-args.h printf-args.c \
@ -85,6 +102,7 @@ SOURCES = \
dgettext.c \ dgettext.c \
gettext.c \ gettext.c \
finddomain.c \ finddomain.c \
hash-string.c \
loadmsgcat.c \ loadmsgcat.c \
localealias.c \ localealias.c \
textdomain.c \ textdomain.c \
@ -97,12 +115,16 @@ SOURCES = \
plural.y \ plural.y \
plural-exp.c \ plural-exp.c \
localcharset.c \ localcharset.c \
lock.c \
relocatable.c \ relocatable.c \
langprefs.c \
localename.c \ localename.c \
log.c \ log.c \
printf.c \ printf.c \
version.c \
osdep.c \ osdep.c \
os2compat.c \ os2compat.c \
intl-exports.c \
intl-compat.c intl-compat.c
OBJECTS = \ OBJECTS = \
bindtextdom.$lo \ bindtextdom.$lo \
@ -110,6 +132,7 @@ OBJECTS = \
dgettext.$lo \ dgettext.$lo \
gettext.$lo \ gettext.$lo \
finddomain.$lo \ finddomain.$lo \
hash-string.$lo \
loadmsgcat.$lo \ loadmsgcat.$lo \
localealias.$lo \ localealias.$lo \
textdomain.$lo \ textdomain.$lo \
@ -122,14 +145,18 @@ OBJECTS = \
plural.$lo \ plural.$lo \
plural-exp.$lo \ plural-exp.$lo \
localcharset.$lo \ localcharset.$lo \
lock.$lo \
relocatable.$lo \ relocatable.$lo \
langprefs.$lo \
localename.$lo \ localename.$lo \
log.$lo \ log.$lo \
printf.$lo \ printf.$lo \
version.$lo \
osdep.$lo \ osdep.$lo \
intl-compat.$lo intl-compat.$lo
DISTFILES.common = Makefile.in \ DISTFILES.common = Makefile.in \
config.charset locale.alias ref-add.sin ref-del.sin $(HEADERS) $(SOURCES) config.charset locale.alias ref-add.sin ref-del.sin export.h \
$(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 \
@ -152,7 +179,7 @@ libintl.a libgnuintl.a: $(OBJECTS)
libintl.la libgnuintl.la: $(OBJECTS) libintl.la libgnuintl.la: $(OBJECTS)
$(LIBTOOL) --mode=link \ $(LIBTOOL) --mode=link \
$(CC) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) $(LDFLAGS) -o $@ \ $(CC) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) $(LDFLAGS) -o $@ \
$(OBJECTS) @LTLIBICONV@ $(LIBS) -lc \ $(OBJECTS) @LTLIBICONV@ @INTL_MACOSX_LIBS@ $(LIBS) @LTLIBTHREAD@ -lc \
-version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \ -version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \
-rpath $(libdir) \ -rpath $(libdir) \
-no-undefined -no-undefined
@ -162,9 +189,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=7 LTV_CURRENT=8
LTV_REVISION=0 LTV_REVISION=0
LTV_AGE=4 LTV_AGE=0
.SUFFIXES: .SUFFIXES:
.SUFFIXES: .c .y .o .lo .sin .sed .SUFFIXES: .c .y .o .lo .sin .sed
@ -186,6 +213,8 @@ gettext.lo: $(srcdir)/gettext.c
$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/gettext.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/gettext.c
finddomain.lo: $(srcdir)/finddomain.c finddomain.lo: $(srcdir)/finddomain.c
$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/finddomain.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/finddomain.c
hash-string.lo: $(srcdir)/hash-string.c
$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/hash-string.c
loadmsgcat.lo: $(srcdir)/loadmsgcat.c loadmsgcat.lo: $(srcdir)/loadmsgcat.c
$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/loadmsgcat.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/loadmsgcat.c
localealias.lo: $(srcdir)/localealias.c localealias.lo: $(srcdir)/localealias.c
@ -210,14 +239,20 @@ plural-exp.lo: $(srcdir)/plural-exp.c
$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/plural-exp.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/plural-exp.c
localcharset.lo: $(srcdir)/localcharset.c localcharset.lo: $(srcdir)/localcharset.c
$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localcharset.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localcharset.c
lock.lo: $(srcdir)/lock.c
$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/lock.c
relocatable.lo: $(srcdir)/relocatable.c relocatable.lo: $(srcdir)/relocatable.c
$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/relocatable.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/relocatable.c
langprefs.lo: $(srcdir)/langprefs.c
$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/langprefs.c
localename.lo: $(srcdir)/localename.c 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 printf.lo: $(srcdir)/printf.c
$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/printf.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/printf.c
version.lo: $(srcdir)/version.c
$(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/version.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
@ -233,14 +268,29 @@ 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
sed -e 's,@''HAVE_POSIX_PRINTF''@,@HAVE_POSIX_PRINTF@,g' \ sed -e '/IN_LIBGLOCALE/d' \
-e 's,@''HAVE_POSIX_PRINTF''@,@HAVE_POSIX_PRINTF@,g' \
-e 's,@''HAVE_ASPRINTF''@,@HAVE_ASPRINTF@,g' \ -e 's,@''HAVE_ASPRINTF''@,@HAVE_ASPRINTF@,g' \
-e 's,@''HAVE_SNPRINTF''@,@HAVE_SNPRINTF@,g' \ -e 's,@''HAVE_SNPRINTF''@,@HAVE_SNPRINTF@,g' \
-e 's,@''HAVE_WPRINTF''@,@HAVE_WPRINTF@,g' \ -e 's,@''HAVE_WPRINTF''@,@HAVE_WPRINTF@,g' \
< $(srcdir)/libgnuintl.h.in > libgnuintl.h < $(srcdir)/libgnuintl.h.in \
| if test '@WOE32DLL@' = yes; then \
sed -e 's/extern \([^()]*\);/extern __declspec (dllimport) \1;/'; \
else \
cat; \
fi \
| sed -e 's/extern \([^"]\)/extern LIBINTL_DLL_EXPORTED \1/' \
-e "/#define _LIBINTL_H/r $(srcdir)/export.h" \
| sed -e 's,@''HAVE_VISIBILITY''@,@HAVE_VISIBILITY@,g' \
> libgnuintl.h
libintl.h: libgnuintl.h libintl.h: $(srcdir)/libgnuintl.h.in
cp libgnuintl.h libintl.h sed -e '/IN_LIBGLOCALE/d' \
-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 > libintl.h
charset.alias: $(srcdir)/config.charset charset.alias: $(srcdir)/config.charset
$(SHELL) $(srcdir)/config.charset '@host@' > t-$@ $(SHELL) $(srcdir)/config.charset '@host@' > t-$@
@ -257,7 +307,7 @@ install: install-exec install-data
install-exec: all install-exec: all
if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \ if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \
&& test '@USE_INCLUDED_LIBINTL@' = yes; then \ && test '@USE_INCLUDED_LIBINTL@' = yes; then \
$(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \ $(mkdir_p) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \
$(INSTALL_DATA) libintl.h $(DESTDIR)$(includedir)/libintl.h; \ $(INSTALL_DATA) libintl.h $(DESTDIR)$(includedir)/libintl.h; \
$(LIBTOOL) --mode=install \ $(LIBTOOL) --mode=install \
$(INSTALL_DATA) libintl.$la $(DESTDIR)$(libdir)/libintl.$la; \ $(INSTALL_DATA) libintl.$la $(DESTDIR)$(libdir)/libintl.$la; \
@ -271,8 +321,9 @@ install-exec: all
: ; \ : ; \
fi fi
if test "$(PACKAGE)" = "gettext-tools" \ if test "$(PACKAGE)" = "gettext-tools" \
&& test '@USE_INCLUDED_LIBINTL@' = no; then \ && test '@USE_INCLUDED_LIBINTL@' = no \
$(mkinstalldirs) $(DESTDIR)$(libdir); \ && test @GLIBC2@ != no; then \
$(mkdir_p) $(DESTDIR)$(libdir); \
$(LIBTOOL) --mode=install \ $(LIBTOOL) --mode=install \
$(INSTALL_DATA) libgnuintl.$la $(DESTDIR)$(libdir)/libgnuintl.$la; \ $(INSTALL_DATA) libgnuintl.$la $(DESTDIR)$(libdir)/libgnuintl.$la; \
rm -f $(DESTDIR)$(libdir)/preloadable_libintl.so; \ rm -f $(DESTDIR)$(libdir)/preloadable_libintl.so; \
@ -283,7 +334,7 @@ install-exec: all
: ; \ : ; \
fi fi
if test '@USE_INCLUDED_LIBINTL@' = yes; then \ if test '@USE_INCLUDED_LIBINTL@' = yes; then \
test @GLIBC21@ != no || $(mkinstalldirs) $(DESTDIR)$(libdir); \ test @GLIBC21@ != no || $(mkdir_p) $(DESTDIR)$(libdir); \
temp=$(DESTDIR)$(libdir)/t-charset.alias; \ temp=$(DESTDIR)$(libdir)/t-charset.alias; \
dest=$(DESTDIR)$(libdir)/charset.alias; \ dest=$(DESTDIR)$(libdir)/charset.alias; \
if test -f $(DESTDIR)$(libdir)/charset.alias; then \ if test -f $(DESTDIR)$(libdir)/charset.alias; then \
@ -299,7 +350,7 @@ install-exec: all
rm -f $$temp; \ rm -f $$temp; \
fi; \ fi; \
fi; \ fi; \
$(mkinstalldirs) $(DESTDIR)$(localedir); \ $(mkdir_p) $(DESTDIR)$(localedir); \
test -f $(DESTDIR)$(localedir)/locale.alias \ test -f $(DESTDIR)$(localedir)/locale.alias \
&& orig=$(DESTDIR)$(localedir)/locale.alias \ && orig=$(DESTDIR)$(localedir)/locale.alias \
|| orig=$(srcdir)/locale.alias; \ || orig=$(srcdir)/locale.alias; \
@ -313,7 +364,7 @@ install-exec: all
fi fi
install-data: all install-data: all
if test "$(PACKAGE)" = "gettext-tools"; then \ if test "$(PACKAGE)" = "gettext-tools"; then \
$(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
$(INSTALL_DATA) VERSION $(DESTDIR)$(gettextsrcdir)/VERSION; \ $(INSTALL_DATA) VERSION $(DESTDIR)$(gettextsrcdir)/VERSION; \
$(INSTALL_DATA) ChangeLog.inst $(DESTDIR)$(gettextsrcdir)/ChangeLog; \ $(INSTALL_DATA) ChangeLog.inst $(DESTDIR)$(gettextsrcdir)/ChangeLog; \
dists="COPYING.LIB-2.0 COPYING.LIB-2.1 $(DISTFILES.common)"; \ dists="COPYING.LIB-2.0 COPYING.LIB-2.1 $(DISTFILES.common)"; \
@ -341,24 +392,25 @@ install-strip: install
installdirs: installdirs:
if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \ if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \
&& test '@USE_INCLUDED_LIBINTL@' = yes; then \ && test '@USE_INCLUDED_LIBINTL@' = yes; then \
$(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \ $(mkdir_p) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \
else \ else \
: ; \ : ; \
fi fi
if test "$(PACKAGE)" = "gettext-tools" \ if test "$(PACKAGE)" = "gettext-tools" \
&& test '@USE_INCLUDED_LIBINTL@' = no; then \ && test '@USE_INCLUDED_LIBINTL@' = no \
$(mkinstalldirs) $(DESTDIR)$(libdir); \ && test @GLIBC2@ != no; then \
$(mkdir_p) $(DESTDIR)$(libdir); \
else \ else \
: ; \ : ; \
fi fi
if test '@USE_INCLUDED_LIBINTL@' = yes; then \ if test '@USE_INCLUDED_LIBINTL@' = yes; then \
test @GLIBC21@ != no || $(mkinstalldirs) $(DESTDIR)$(libdir); \ test @GLIBC21@ != no || $(mkdir_p) $(DESTDIR)$(libdir); \
$(mkinstalldirs) $(DESTDIR)$(localedir); \ $(mkdir_p) $(DESTDIR)$(localedir); \
else \ else \
: ; \ : ; \
fi fi
if test "$(PACKAGE)" = "gettext-tools"; then \ if test "$(PACKAGE)" = "gettext-tools"; then \
$(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
else \ else \
: ; \ : ; \
fi fi
@ -376,7 +428,8 @@ uninstall:
: ; \ : ; \
fi fi
if test "$(PACKAGE)" = "gettext-tools" \ if test "$(PACKAGE)" = "gettext-tools" \
&& test '@USE_INCLUDED_LIBINTL@' = no; then \ && test '@USE_INCLUDED_LIBINTL@' = no \
&& test @GLIBC2@ != no; then \
rm -f $(DESTDIR)$(libdir)/preloadable_libintl.so; \ rm -f $(DESTDIR)$(libdir)/preloadable_libintl.so; \
else \ else \
: ; \ : ; \
@ -419,14 +472,20 @@ info dvi ps pdf html:
$(OBJECTS): ../config.h libgnuintl.h $(OBJECTS): ../config.h libgnuintl.h
bindtextdom.$lo dcgettext.$lo dcigettext.$lo dcngettext.$lo dgettext.$lo dngettext.$lo finddomain.$lo gettext.$lo intl-compat.$lo loadmsgcat.$lo localealias.$lo ngettext.$lo textdomain.$lo: $(srcdir)/gettextP.h $(srcdir)/gmo.h $(srcdir)/loadinfo.h bindtextdom.$lo dcgettext.$lo dcigettext.$lo dcngettext.$lo dgettext.$lo dngettext.$lo finddomain.$lo gettext.$lo intl-compat.$lo loadmsgcat.$lo localealias.$lo ngettext.$lo textdomain.$lo: $(srcdir)/gettextP.h $(srcdir)/gmo.h $(srcdir)/loadinfo.h
dcigettext.$lo loadmsgcat.$lo: $(srcdir)/hash-string.h hash-string.$lo dcigettext.$lo loadmsgcat.$lo: $(srcdir)/hash-string.h
explodename.$lo l10nflist.$lo: $(srcdir)/loadinfo.h explodename.$lo l10nflist.$lo: $(srcdir)/loadinfo.h
dcigettext.$lo loadmsgcat.$lo plural.$lo plural-exp.$lo: $(srcdir)/plural-exp.h 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
bindtextdom.$lo dcigettext.$lo finddomain.$lo loadmsgcat.$lo localealias.$lo lock.$lo log.$lo: $(srcdir)/lock.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 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
# A bison-2.1 generated plural.c includes <libintl.h> if ENABLE_NLS.
PLURAL_DEPS_yes = libintl.h
PLURAL_DEPS_no =
plural.$lo: $(PLURAL_DEPS_@USE_INCLUDED_LIBINTL@)
tags: TAGS tags: TAGS
TAGS: $(HEADERS) $(SOURCES) TAGS: $(HEADERS) $(SOURCES)
@ -478,7 +537,7 @@ dist distdir: Makefile
$(MAKE) $(DISTFILES.common) $(DISTFILES.generated) $$additional; \ $(MAKE) $(DISTFILES.common) $(DISTFILES.generated) $$additional; \
for file in ChangeLog $(DISTFILES.common) $(DISTFILES.generated) $$additional; do \ for file in ChangeLog $(DISTFILES.common) $(DISTFILES.generated) $$additional; do \
if test -f $$file; then dir=.; else dir=$(srcdir); fi; \ if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
cp -p $$dir/$$file $(distdir); \ cp -p $$dir/$$file $(distdir) || test $$file = Makefile.in || exit 1; \
done; \ done; \
fi fi
@ -486,7 +545,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && $(SHELL) ./config.status cd $(top_builddir) && $(SHELL) ./config.status
# This would be more efficient, but doesn't work any more with autoconf-2.57, # This would be more efficient, but doesn't work any more with autoconf-2.57,
# when AC_CONFIG_FILES([intl/Makefile:somedir/Makefile.in]) is used. # when AC_CONFIG_FILES([intl/Makefile:somedir/Makefile.in]) is used.
# cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status # cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
# Tell versions [3.59,3.63) of GNU make not to export all variables. # Tell versions [3.59,3.63) of GNU make not to export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded. # Otherwise a system limit (for SysV at least) may be exceeded.

View File

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

View File

@ -1,5 +1,5 @@
/* Implementation of the bindtextdomain(3) function /* Implementation of the bindtextdomain(3) function
Copyright (C) 1995-1998, 2000-2003 Free Software Foundation, Inc. Copyright (C) 1995-1998, 2000-2003, 2005-2006 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
@ -13,7 +13,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
@ -24,21 +24,21 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include "gettextP.h"
#ifdef _LIBC #ifdef _LIBC
# include <libintl.h> # include <libintl.h>
#else #else
# include "libgnuintl.h" # include "libgnuintl.h"
#endif #endif
#include "gettextP.h"
/* Handle multi-threaded applications. */
#ifdef _LIBC #ifdef _LIBC
/* We have to handle multi-threaded applications. */
# include <bits/libc-lock.h> # include <bits/libc-lock.h>
# define gl_rwlock_define __libc_rwlock_define
# define gl_rwlock_wrlock __libc_rwlock_wrlock
# define gl_rwlock_unlock __libc_rwlock_unlock
#else #else
/* Provide dummy implementation if this is outside glibc. */ # include "lock.h"
# define __libc_rwlock_define(CLASS, NAME)
# define __libc_rwlock_wrlock(NAME)
# define __libc_rwlock_unlock(NAME)
#endif #endif
/* The internal variables in the standalone libintl.a must have different /* The internal variables in the standalone libintl.a must have different
@ -59,16 +59,14 @@
/* Contains the default location of the message catalogs. */ /* Contains the default location of the message catalogs. */
extern const char _nl_default_dirname[]; extern const char _nl_default_dirname[];
#ifdef _LIBC #ifdef _LIBC
extern const char _nl_default_dirname_internal[] attribute_hidden; libc_hidden_proto (_nl_default_dirname)
#else
# define INTUSE(name) name
#endif #endif
/* List with bindings of specific domains. */ /* List with bindings of specific domains. */
extern struct binding *_nl_domain_bindings; extern struct binding *_nl_domain_bindings;
/* Lock variable to protect the global data in the gettext implementation. */ /* Lock variable to protect the global data in the gettext implementation. */
__libc_rwlock_define (extern, _nl_state_lock attribute_hidden) gl_rwlock_define (extern, _nl_state_lock attribute_hidden)
/* Names for the libintl functions are a problem. They must not clash /* Names for the libintl functions are a problem. They must not clash
@ -109,7 +107,7 @@ set_binding_values (const char *domainname,
return; return;
} }
__libc_rwlock_wrlock (_nl_state_lock); gl_rwlock_wrlock (_nl_state_lock);
modified = 0; modified = 0;
@ -144,8 +142,8 @@ set_binding_values (const char *domainname,
char *result = binding->dirname; char *result = binding->dirname;
if (strcmp (dirname, result) != 0) if (strcmp (dirname, result) != 0)
{ {
if (strcmp (dirname, INTUSE(_nl_default_dirname)) == 0) if (strcmp (dirname, _nl_default_dirname) == 0)
result = (char *) INTUSE(_nl_default_dirname); result = (char *) _nl_default_dirname;
else else
{ {
#if defined _LIBC || defined HAVE_STRDUP #if defined _LIBC || defined HAVE_STRDUP
@ -160,7 +158,7 @@ set_binding_values (const char *domainname,
if (__builtin_expect (result != NULL, 1)) if (__builtin_expect (result != NULL, 1))
{ {
if (binding->dirname != INTUSE(_nl_default_dirname)) if (binding->dirname != _nl_default_dirname)
free (binding->dirname); free (binding->dirname);
binding->dirname = result; binding->dirname = result;
@ -201,7 +199,6 @@ set_binding_values (const char *domainname,
free (binding->codeset); free (binding->codeset);
binding->codeset = result; binding->codeset = result;
binding->codeset_cntr++;
modified = 1; modified = 1;
} }
} }
@ -214,7 +211,7 @@ set_binding_values (const char *domainname,
{ {
/* Simply return the default values. */ /* Simply return the default values. */
if (dirnamep) if (dirnamep)
*dirnamep = INTUSE(_nl_default_dirname); *dirnamep = _nl_default_dirname;
if (codesetp) if (codesetp)
*codesetp = NULL; *codesetp = NULL;
} }
@ -236,11 +233,11 @@ set_binding_values (const char *domainname,
if (dirname == NULL) if (dirname == NULL)
/* The default value. */ /* The default value. */
dirname = INTUSE(_nl_default_dirname); dirname = _nl_default_dirname;
else else
{ {
if (strcmp (dirname, INTUSE(_nl_default_dirname)) == 0) if (strcmp (dirname, _nl_default_dirname) == 0)
dirname = INTUSE(_nl_default_dirname); dirname = _nl_default_dirname;
else else
{ {
char *result; char *result;
@ -263,9 +260,7 @@ set_binding_values (const char *domainname,
} }
else else
/* The default value. */ /* The default value. */
new_binding->dirname = (char *) INTUSE(_nl_default_dirname); new_binding->dirname = (char *) _nl_default_dirname;
new_binding->codeset_cntr = 0;
if (codesetp) if (codesetp)
{ {
@ -287,7 +282,6 @@ set_binding_values (const char *domainname,
memcpy (result, codeset, len); memcpy (result, codeset, len);
#endif #endif
codeset = result; codeset = result;
new_binding->codeset_cntr++;
} }
*codesetp = codeset; *codesetp = codeset;
new_binding->codeset = (char *) codeset; new_binding->codeset = (char *) codeset;
@ -319,7 +313,7 @@ set_binding_values (const char *domainname,
if (0) if (0)
{ {
failed_codeset: failed_codeset:
if (new_binding->dirname != INTUSE(_nl_default_dirname)) if (new_binding->dirname != _nl_default_dirname)
free (new_binding->dirname); free (new_binding->dirname);
failed_dirname: failed_dirname:
free (new_binding); free (new_binding);
@ -335,7 +329,7 @@ set_binding_values (const char *domainname,
if (modified) if (modified)
++_nl_msg_cat_cntr; ++_nl_msg_cat_cntr;
__libc_rwlock_unlock (_nl_state_lock); gl_rwlock_unlock (_nl_state_lock);
} }
/* Specify that the DOMAINNAME message catalog will be found /* Specify that the DOMAINNAME message catalog will be found

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-2004 Free Software Foundation, Inc. # Copyright (C) 2000-2004, 2006 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
@ -15,7 +15,7 @@
# #
# You should have received a copy of the GNU Library General Public # You should have received a copy of the GNU Library General Public
# License along with this program; if not, write to the Free Software # License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
# USA. # USA.
# #
# The table consists of lines of the form # The table consists of lines of the form
@ -31,21 +31,21 @@
# The current list of GNU canonical charset names is as follows. # The current list of GNU canonical charset names is as follows.
# #
# name MIME? used by which systems # name MIME? used by which systems
# ASCII, ANSI_X3.4-1968 glibc solaris freebsd darwin # ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin
# ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd darwin # ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd darwin
# ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd darwin # ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd darwin
# ISO-8859-3 Y glibc solaris # ISO-8859-3 Y glibc solaris
# ISO-8859-4 Y osf solaris freebsd darwin # ISO-8859-4 Y osf solaris freebsd netbsd darwin
# ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd darwin # ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd darwin
# ISO-8859-6 Y glibc aix hpux solaris # ISO-8859-6 Y glibc aix hpux solaris
# ISO-8859-7 Y glibc aix hpux irix osf solaris # ISO-8859-7 Y glibc aix hpux irix osf solaris netbsd darwin
# ISO-8859-8 Y glibc aix hpux osf solaris # ISO-8859-8 Y glibc aix hpux osf solaris
# ISO-8859-9 Y glibc aix hpux irix osf solaris # ISO-8859-9 Y glibc aix hpux irix osf solaris darwin
# ISO-8859-13 glibc # ISO-8859-13 glibc netbsd darwin
# ISO-8859-14 glibc # ISO-8859-14 glibc
# ISO-8859-15 glibc aix osf solaris freebsd # ISO-8859-15 glibc aix osf solaris freebsd darwin
# KOI8-R Y glibc solaris freebsd darwin # KOI8-R Y glibc solaris freebsd netbsd darwin
# KOI8-U Y glibc freebsd darwin # KOI8-U Y glibc freebsd netbsd darwin
# KOI8-T glibc # KOI8-T glibc
# CP437 dos # CP437 dos
# CP775 dos # CP775 dos
@ -58,7 +58,7 @@
# CP862 dos # CP862 dos
# CP864 dos # CP864 dos
# CP865 dos # CP865 dos
# CP866 freebsd darwin dos # CP866 freebsd netbsd darwin dos
# CP869 dos # CP869 dos
# CP874 woe32 dos # CP874 woe32 dos
# CP922 aix # CP922 aix
@ -71,22 +71,22 @@
# CP1125 dos # CP1125 dos
# CP1129 aix # CP1129 aix
# CP1250 woe32 # CP1250 woe32
# CP1251 glibc solaris darwin woe32 # CP1251 glibc solaris netbsd 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 Y glibc aix hpux irix solaris freebsd darwin # GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin
# EUC-JP Y glibc aix hpux irix osf solaris freebsd darwin # EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin
# EUC-KR Y glibc aix hpux irix osf solaris freebsd darwin # EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin
# EUC-TW glibc aix hpux irix osf solaris # EUC-TW glibc aix hpux irix osf solaris netbsd
# BIG5 Y glibc aix hpux osf solaris freebsd darwin # BIG5 Y glibc aix hpux osf solaris freebsd netbsd 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 netbsd
# SHIFT_JIS Y hpux osf solaris freebsd darwin # SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin
# JOHAB glibc solaris woe32 # JOHAB glibc solaris woe32
# TIS-620 glibc aix hpux osf solaris # TIS-620 glibc aix hpux osf solaris
# VISCII Y glibc # VISCII Y glibc
@ -100,7 +100,7 @@
# HP-KANA8 hpux # HP-KANA8 hpux
# DEC-KANJI osf # DEC-KANJI osf
# DEC-HANYU osf # DEC-HANYU osf
# UTF-8 Y glibc aix hpux osf solaris # UTF-8 Y glibc aix hpux osf solaris netbsd darwin
# #
# 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.).
@ -388,6 +388,8 @@ case "$os" in
echo "ISO8859-2 ISO-8859-2" echo "ISO8859-2 ISO-8859-2"
echo "ISO8859-4 ISO-8859-4" echo "ISO8859-4 ISO-8859-4"
echo "ISO8859-5 ISO-8859-5" echo "ISO8859-5 ISO-8859-5"
echo "ISO8859-7 ISO-8859-7"
echo "ISO8859-13 ISO-8859-13"
echo "ISO8859-15 ISO-8859-15" echo "ISO8859-15 ISO-8859-15"
echo "eucCN GB2312" echo "eucCN GB2312"
echo "eucJP EUC-JP" echo "eucJP EUC-JP"
@ -396,7 +398,7 @@ case "$os" in
echo "BIG5 BIG5" echo "BIG5 BIG5"
echo "SJIS SHIFT_JIS" echo "SJIS SHIFT_JIS"
;; ;;
darwin*) darwin[56]*)
# Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore # Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore
# localcharset.c falls back to using the full locale name # localcharset.c falls back to using the full locale name
# from the environment variables. # from the environment variables.
@ -437,6 +439,36 @@ case "$os" in
echo "ja_JP.SJIS SHIFT_JIS" echo "ja_JP.SJIS SHIFT_JIS"
echo "ko_KR.EUC EUC-KR" echo "ko_KR.EUC EUC-KR"
;; ;;
darwin*)
# Darwin 7.5 has nl_langinfo(CODESET), but it is useless:
# - It returns the empty string when LANG is set to a locale of the
# form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8
# LC_CTYPE file.
# - The environment variables LANG, LC_CTYPE, LC_ALL are not set by
# the system; nl_langinfo(CODESET) returns "US-ASCII" in this case.
# - The documentation says:
# "... all code that calls BSD system routines should ensure
# that the const *char parameters of these routines are in UTF-8
# encoding. All BSD system functions expect their string
# parameters to be in UTF-8 encoding and nothing else."
# It also says
# "An additional caveat is that string parameters for files,
# paths, and other file-system entities must be in canonical
# UTF-8. In a canonical UTF-8 Unicode string, all decomposable
# characters are decomposed ..."
# but this is not true: You can pass non-decomposed UTF-8 strings
# to file system functions, and it is the OS which will convert
# them to decomposed UTF-8 before accessing the file system.
# - The Apple Terminal application displays UTF-8 by default.
# - However, other applications are free to use different encodings:
# - xterm uses ISO-8859-1 by default.
# - TextEdit uses MacRoman by default.
# We prefer UTF-8 over decomposed UTF-8-MAC because one should
# minimize the use of decomposed Unicode. Unfortunately, through the
# Darwin file system, decomposed UTF-8 strings are leaked into user
# space nevertheless.
echo "* UTF-8"
;;
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"
@ -450,7 +482,7 @@ case "$os" in
echo "# If you find that the encoding given for your language and" echo "# If you find that the encoding given for your language and"
echo "# country is not the one your DOS machine actually uses, just" echo "# country is not the one your DOS machine actually uses, just"
echo "# correct it in this file, and send a mail to" echo "# correct it in this file, and send a mail to"
echo "# Juan Manuel Guerrero <st001906@hrz1.hrz.tu-darmstadt.de>" echo "# Juan Manuel Guerrero <juan.guerrero@gmx.de>"
echo "# and Bruno Haible <bruno@clisp.org>." echo "# and Bruno Haible <bruno@clisp.org>."
echo "#" echo "#"
echo "C ASCII" echo "C ASCII"

View File

@ -13,7 +13,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H

File diff suppressed because it is too large Load Diff

View File

@ -13,7 +13,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H

View File

@ -13,7 +13,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H

View File

@ -13,7 +13,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H

View File

@ -13,7 +13,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifndef STATIC #ifndef STATIC

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1995-1998, 2000-2001, 2003 Free Software Foundation, Inc. /* Copyright (C) 1995-1998, 2000-2001, 2003, 2005 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
@ -13,7 +13,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
@ -37,11 +37,15 @@
/* @@ end of prolog @@ */ /* @@ end of prolog @@ */
char * /* Split a locale name NAME into a leading language part and all the
rest. Return a pointer to the first character after the language,
i.e. to the first byte of the rest. */
static char *_nl_find_language (const char *name);
static char *
_nl_find_language (const char *name) _nl_find_language (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; ++name;
return (char *) name; return (char *) name;
@ -52,10 +56,8 @@ int
_nl_explode_name (char *name, _nl_explode_name (char *name,
const char **language, const char **modifier, const char **language, const char **modifier,
const char **territory, const char **codeset, const char **territory, const char **codeset,
const char **normalized_codeset, const char **special, const char **normalized_codeset)
const char **sponsor, const char **revision)
{ {
enum { undecided, xpg, cen } syntax;
char *cp; char *cp;
int mask; int mask;
@ -63,15 +65,10 @@ _nl_explode_name (char *name,
*territory = NULL; *territory = NULL;
*codeset = NULL; *codeset = NULL;
*normalized_codeset = NULL; *normalized_codeset = NULL;
*special = NULL;
*sponsor = NULL;
*revision = NULL;
/* Now we determine the single parts of the locale name. First /* Now we determine the single parts of the locale name. First
look for the language. Termination symbols are `_' and `@' if look for the language. Termination symbols are `_', '.', and `@'. */
we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */
mask = 0; mask = 0;
syntax = undecided;
*language = cp = name; *language = cp = name;
cp = _nl_find_language (*language); cp = _nl_find_language (*language);
@ -79,22 +76,23 @@ _nl_explode_name (char *name,
/* This does not make sense: language has to be specified. Use /* This does not make sense: language has to be specified. Use
this entry as it is without exploding. Perhaps it is an alias. */ this entry as it is without exploding. Perhaps it is an alias. */
cp = strchr (*language, '\0'); cp = strchr (*language, '\0');
else if (cp[0] == '_') else
{
if (cp[0] == '_')
{ {
/* Next is the territory. */ /* Next is the territory. */
cp[0] = '\0'; cp[0] = '\0';
*territory = ++cp; *territory = ++cp;
while (cp[0] != '\0' && cp[0] != '.' && cp[0] != '@' while (cp[0] != '\0' && cp[0] != '.' && cp[0] != '@')
&& cp[0] != '+' && cp[0] != ',' && cp[0] != '_')
++cp; ++cp;
mask |= TERRITORY; mask |= XPG_TERRITORY;
}
if (cp[0] == '.') if (cp[0] == '.')
{ {
/* Next is the codeset. */ /* Next is the codeset. */
syntax = xpg;
cp[0] = '\0'; cp[0] = '\0';
*codeset = ++cp; *codeset = ++cp;
@ -115,71 +113,21 @@ _nl_explode_name (char *name,
} }
} }
if (cp[0] == '@' || (syntax != xpg && cp[0] == '+')) if (cp[0] == '@')
{ {
/* Next is the modifier. */ /* Next is the modifier. */
syntax = cp[0] == '@' ? xpg : cen;
cp[0] = '\0'; cp[0] = '\0';
*modifier = ++cp; *modifier = ++cp;
while (syntax == cen && cp[0] != '\0' && cp[0] != '+' if (cp[0] != '\0')
&& cp[0] != ',' && cp[0] != '_') mask |= XPG_MODIFIER;
++cp;
mask |= XPG_MODIFIER | CEN_AUDIENCE;
} }
if (syntax != xpg && (cp[0] == '+' || cp[0] == ',' || cp[0] == '_'))
{
syntax = cen;
if (cp[0] == '+')
{
/* Next is special application (CEN syntax). */
cp[0] = '\0';
*special = ++cp;
while (cp[0] != '\0' && cp[0] != ',' && cp[0] != '_')
++cp;
mask |= CEN_SPECIAL;
}
if (cp[0] == ',')
{
/* Next is sponsor (CEN syntax). */
cp[0] = '\0';
*sponsor = ++cp;
while (cp[0] != '\0' && cp[0] != '_')
++cp;
mask |= CEN_SPONSOR;
}
if (cp[0] == '_')
{
/* Next is revision (CEN syntax). */
cp[0] = '\0';
*revision = ++cp;
mask |= CEN_REVISION;
}
}
/* For CEN syntax values it might be important to have the
separator character in the file name, not for XPG syntax. */
if (syntax == xpg)
{
if (*territory != NULL && (*territory)[0] == '\0') if (*territory != NULL && (*territory)[0] == '\0')
mask &= ~TERRITORY; mask &= ~XPG_TERRITORY;
if (*codeset != NULL && (*codeset)[0] == '\0') if (*codeset != NULL && (*codeset)[0] == '\0')
mask &= ~XPG_CODESET; mask &= ~XPG_CODESET;
if (*modifier != NULL && (*modifier)[0] == '\0')
mask &= ~XPG_MODIFIER;
}
return mask; return mask;
} }

View File

@ -1,5 +1,5 @@
/* Handle list of needed message catalogs /* Handle list of needed message catalogs
Copyright (C) 1995-1999, 2000-2001, 2003 Free Software Foundation, Inc. Copyright (C) 1995-1999, 2000-2001, 2003-2006 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
@ -14,7 +14,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
@ -37,6 +37,17 @@
# include "libgnuintl.h" # include "libgnuintl.h"
#endif #endif
/* Handle multi-threaded applications. */
#ifdef _LIBC
# include <bits/libc-lock.h>
# define gl_rwlock_define_initialized __libc_rwlock_define_initialized
# define gl_rwlock_rdlock __libc_rwlock_rdlock
# define gl_rwlock_wrlock __libc_rwlock_wrlock
# define gl_rwlock_unlock __libc_rwlock_unlock
#else
# include "lock.h"
#endif
/* @@ end of prolog @@ */ /* @@ end of prolog @@ */
/* List of already loaded domains. */ /* List of already loaded domains. */
static struct loaded_l10nfile *_nl_loaded_domains; static struct loaded_l10nfile *_nl_loaded_domains;
@ -56,44 +67,41 @@ _nl_find_domain (const char *dirname, char *locale,
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 *revision;
const char *alias_value; const char *alias_value;
int mask; int mask;
/* LOCALE can consist of up to four recognized parts for the XPG syntax: /* LOCALE can consist of up to four recognized parts for the XPG syntax:
language[_territory[.codeset]][@modifier] language[_territory][.codeset][@modifier]
and six parts for the CEN syntax:
language[_territory][+audience][+special][,[sponsor][_revision]]
Beside the first part all of them are allowed to be missing. If Beside the first part all of them are allowed to be missing. If
the full specified locale is not found, the less specific one are the full specified locale is not found, the less specific one are
looked for. The various parts will be stripped off according to looked for. The various parts will be stripped off according to
the following order: the following order:
(1) revision (1) codeset
(2) sponsor (2) normalized codeset
(3) special (3) territory
(4) codeset (4) modifier
(5) normalized codeset
(6) territory
(7) audience/modifier
*/ */
/* We need to protect modifying the _NL_LOADED_DOMAINS data. */
gl_rwlock_define_initialized (static, lock);
gl_rwlock_rdlock (lock);
/* If we have already tested for this locale entry there has to /* If we have already tested for this locale entry there has to
be one data set in the list of loaded domains. */ be one data set in the list of loaded domains. */
retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname, retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname,
strlen (dirname) + 1, 0, locale, NULL, NULL, strlen (dirname) + 1, 0, locale, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, domainname, 0); NULL, NULL, domainname, 0);
gl_rwlock_unlock (lock);
if (retval != NULL) if (retval != NULL)
{ {
/* We know something about this locale. */ /* We know something about this locale. */
int cnt; int cnt;
if (retval->decided == 0) if (retval->decided <= 0)
_nl_load_domain (retval, domainbinding); _nl_load_domain (retval, domainbinding);
if (retval->data != NULL) if (retval->data != NULL)
@ -101,13 +109,14 @@ _nl_find_domain (const char *dirname, char *locale,
for (cnt = 0; retval->successor[cnt] != NULL; ++cnt) for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
{ {
if (retval->successor[cnt]->decided == 0) if (retval->successor[cnt]->decided <= 0)
_nl_load_domain (retval->successor[cnt], domainbinding); _nl_load_domain (retval->successor[cnt], domainbinding);
if (retval->successor[cnt]->data != NULL) if (retval->successor[cnt]->data != NULL)
break; break;
} }
return cnt >= 0 ? retval : NULL;
return retval;
/* NOTREACHED */ /* NOTREACHED */
} }
@ -132,30 +141,34 @@ _nl_find_domain (const char *dirname, char *locale,
} }
/* Now we determine the single parts of the locale name. First /* Now we determine the single parts of the locale name. First
look for the language. Termination symbols are `_' and `@' if look for the language. Termination symbols are `_', '.', and `@'. */
we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */
mask = _nl_explode_name (locale, &language, &modifier, &territory, mask = _nl_explode_name (locale, &language, &modifier, &territory,
&codeset, &normalized_codeset, &special, &codeset, &normalized_codeset);
&sponsor, &revision);
/* We need to protect modifying the _NL_LOADED_DOMAINS data. */
gl_rwlock_wrlock (lock);
/* Create all possible locale entries which might be interested in /* Create all possible locale entries which might be interested in
generalization. */ generalization. */
retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname, retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname,
strlen (dirname) + 1, mask, language, territory, strlen (dirname) + 1, mask, language, territory,
codeset, normalized_codeset, modifier, special, codeset, normalized_codeset, modifier,
sponsor, revision, domainname, 1); domainname, 1);
gl_rwlock_unlock (lock);
if (retval == NULL) if (retval == NULL)
/* This means we are out of core. */ /* This means we are out of core. */
return NULL; return NULL;
if (retval->decided == 0) if (retval->decided <= 0)
_nl_load_domain (retval, domainbinding); _nl_load_domain (retval, domainbinding);
if (retval->data == NULL) if (retval->data == NULL)
{ {
int cnt; int cnt;
for (cnt = 0; retval->successor[cnt] != NULL; ++cnt) for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
{ {
if (retval->successor[cnt]->decided == 0) if (retval->successor[cnt]->decided <= 0)
_nl_load_domain (retval->successor[cnt], domainbinding); _nl_load_domain (retval->successor[cnt], domainbinding);
if (retval->successor[cnt]->data != NULL) if (retval->successor[cnt]->data != NULL)
break; break;
@ -175,7 +188,10 @@ _nl_find_domain (const char *dirname, char *locale,
#ifdef _LIBC #ifdef _LIBC
libc_freeres_fn (free_mem) /* This is called from iconv/gconv_db.c's free_mem, as locales must
be freed before freeing gconv steps arrays. */
void __libc_freeres_fn_section
_nl_finddomain_subfreeres ()
{ {
struct loaded_l10nfile *runp = _nl_loaded_domains; struct loaded_l10nfile *runp = _nl_loaded_domains;

View File

@ -13,7 +13,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H

View File

@ -1,5 +1,5 @@
/* Header describing internals of libintl library. /* Header describing internals of libintl library.
Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc. Copyright (C) 1995-1999, 2000-2005 Free Software Foundation, Inc.
Written by Ulrich Drepper <drepper@cygnus.com>, 1995. Written by Ulrich Drepper <drepper@cygnus.com>, 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
@ -14,7 +14,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifndef _GETTEXTP_H #ifndef _GETTEXTP_H
@ -30,6 +30,52 @@
# endif # endif
#endif #endif
#ifdef _LIBC
extern char *__gettext (const char *__msgid);
extern char *__dgettext (const char *__domainname, const char *__msgid);
extern char *__dcgettext (const char *__domainname, const char *__msgid,
int __category);
extern char *__ngettext (const char *__msgid1, const char *__msgid2,
unsigned long int __n);
extern char *__dngettext (const char *__domainname,
const char *__msgid1, const char *__msgid2,
unsigned long int n);
extern char *__dcngettext (const char *__domainname,
const char *__msgid1, const char *__msgid2,
unsigned long int __n, int __category);
extern char *__dcigettext (const char *__domainname,
const char *__msgid1, const char *__msgid2,
int __plural, unsigned long int __n,
int __category);
extern char *__textdomain (const char *__domainname);
extern char *__bindtextdomain (const char *__domainname,
const char *__dirname);
extern char *__bind_textdomain_codeset (const char *__domainname,
const char *__codeset);
extern void _nl_finddomain_subfreeres (void) attribute_hidden;
extern void _nl_unload_domain (struct loaded_domain *__domain)
internal_function attribute_hidden;
#else
/* Declare the exported libintl_* functions, in a way that allows us to
call them under their real name. */
# undef _INTL_REDIRECT_INLINE
# undef _INTL_REDIRECT_MACROS
# define _INTL_REDIRECT_MACROS
# include "libgnuintl.h"
# ifdef IN_LIBGLOCALE
extern char *gl_dcigettext (const char *__domainname,
const char *__msgid1, const char *__msgid2,
int __plural, unsigned long int __n,
int __category,
const char *__localename, const char *__encoding);
# else
extern char *libintl_dcigettext (const char *__domainname,
const char *__msgid1, const char *__msgid2,
int __plural, unsigned long int __n,
int __category);
# endif
#endif
#include "loadinfo.h" #include "loadinfo.h"
#include "gmo.h" /* Get nls_uint32. */ #include "gmo.h" /* Get nls_uint32. */
@ -77,6 +123,26 @@ struct sysdep_string_desc
const char *pointer; const char *pointer;
}; };
/* Cache of translated strings after charset conversion.
Note: The strings are converted to the target encoding only on an as-needed
basis. */
struct converted_domain
{
/* The target encoding name. */
const char *encoding;
/* The descriptor for conversion from the message catalog's encoding to
this target encoding. */
#ifdef _LIBC
__gconv_t conv;
#else
# if HAVE_ICONV
iconv_t conv;
# endif
#endif
/* The table of translated strings after charset conversion. */
char **conv_tab;
};
/* The representation of an opened message catalog. */ /* The representation of an opened message catalog. */
struct loaded_domain struct loaded_domain
{ {
@ -112,15 +178,9 @@ struct loaded_domain
/* 1 if the hash table uses a different endianness than this machine. */ /* 1 if the hash table uses a different endianness than this machine. */
int must_swap_hash_tab; int must_swap_hash_tab;
int codeset_cntr; /* Cache of charset conversions of the translated strings. */
#ifdef _LIBC struct converted_domain *conversions;
__gconv_t conv; size_t nconversions;
#else
# if HAVE_ICONV
iconv_t conv;
# endif
#endif
char **conv_tab;
struct expression *plural; struct expression *plural;
unsigned long int nplurals; unsigned long int nplurals;
@ -140,7 +200,6 @@ struct binding
{ {
struct binding *next; struct binding *next;
char *dirname; char *dirname;
int codeset_cntr; /* Incremented each time codeset changes. */
char *codeset; char *codeset;
char domainname[ZERO]; char domainname[ZERO];
}; };
@ -148,9 +207,17 @@ struct binding
/* A counter which is incremented each time some previous translations /* A counter which is incremented each time some previous translations
become invalid. become invalid.
This variable is part of the external ABI of the GNU libintl. */ This variable is part of the external ABI of the GNU libintl. */
extern int _nl_msg_cat_cntr; #ifdef IN_LIBGLOCALE
# include <glocale/config.h>
extern LIBGLOCALE_DLL_EXPORTED int _nl_msg_cat_cntr;
#else
extern LIBINTL_DLL_EXPORTED int _nl_msg_cat_cntr;
#endif
#ifndef _LIBC #ifndef _LIBC
const char *_nl_language_preferences_default (void);
const char *_nl_locale_name_posix (int category, const char *categoryname);
const char *_nl_locale_name_default (void);
const char *_nl_locale_name (int category, const char *categoryname); const char *_nl_locale_name (int category, const char *categoryname);
#endif #endif
@ -161,53 +228,18 @@ struct loaded_l10nfile *_nl_find_domain (const char *__dirname, char *__locale,
void _nl_load_domain (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 (struct loaded_domain *__domain)
internal_function;
const char *_nl_init_domain_conv (struct loaded_l10nfile *__domain_file,
struct loaded_domain *__domain,
struct binding *__domainbinding)
internal_function;
void _nl_free_domain_conv (struct loaded_domain *__domain)
internal_function;
#ifdef IN_LIBGLOCALE
char *_nl_find_msg (struct loaded_l10nfile *domain_file, char *_nl_find_msg (struct loaded_l10nfile *domain_file,
struct binding *domainbinding, const char *msgid, struct binding *domainbinding, const char *encoding,
const char *msgid,
size_t *lengthp) size_t *lengthp)
internal_function; internal_function;
#ifdef _LIBC
extern char *__gettext (const char *__msgid);
extern char *__dgettext (const char *__domainname, const char *__msgid);
extern char *__dcgettext (const char *__domainname, const char *__msgid,
int __category);
extern char *__ngettext (const char *__msgid1, const char *__msgid2,
unsigned long int __n);
extern char *__dngettext (const char *__domainname,
const char *__msgid1, const char *__msgid2,
unsigned long int n);
extern char *__dcngettext (const char *__domainname,
const char *__msgid1, const char *__msgid2,
unsigned long int __n, int __category);
extern char *__dcigettext (const char *__domainname,
const char *__msgid1, const char *__msgid2,
int __plural, unsigned long int __n,
int __category);
extern char *__textdomain (const char *__domainname);
extern char *__bindtextdomain (const char *__domainname,
const char *__dirname);
extern char *__bind_textdomain_codeset (const char *__domainname,
const char *__codeset);
#else #else
/* Declare the exported libintl_* functions, in a way that allows us to char *_nl_find_msg (struct loaded_l10nfile *domain_file,
call them under their real name. */ struct binding *domainbinding, const char *msgid,
# undef _INTL_REDIRECT_INLINE int convert, size_t *lengthp)
# undef _INTL_REDIRECT_MACROS internal_function;
# define _INTL_REDIRECT_MACROS
# include "libgnuintl.h"
extern char *libintl_dcigettext (const char *__domainname,
const char *__msgid1, const char *__msgid2,
int __plural, unsigned long int __n,
int __category);
#endif #endif
/* @@ begin of epilog @@ */ /* @@ begin of epilog @@ */

View File

@ -13,7 +13,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifndef _GETTEXT_H #ifndef _GETTEXT_H

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-2003 Free Software Foundation, Inc. Copyright (C) 1995, 1997-1998, 2000-2003, 2005 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
@ -13,7 +13,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
/* @@ end of prolog @@ */ /* @@ end of prolog @@ */
@ -22,27 +22,15 @@
#define HASHWORDBITS 32 #define HASHWORDBITS 32
#ifndef _LIBC
# ifdef IN_LIBINTL
# define __hash_string libintl_hash_string
# else
# define __hash_string hash_string
# endif
#endif
/* 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 inline unsigned long int extern unsigned long int __hash_string (const char *str_param);
hash_string (const char *str_param)
{
unsigned long int hval, g;
const char *str = str_param;
/* Compute the hash value for the given string. */
hval = 0;
while (*str != '\0')
{
hval <<= 4;
hval += (unsigned char) *str++;
g = hval & ((unsigned long int) 0xf << (HASHWORDBITS - 4));
if (g != 0)
{
hval ^= g >> (HASHWORDBITS - 8);
hval ^= g;
}
}
return hval;
}

View File

@ -1,6 +1,6 @@
/* intl-compat.c - Stub functions to call gettext functions from GNU gettext /* intl-compat.c - Stub functions to call gettext functions from GNU gettext
Library. Library.
Copyright (C) 1995, 2000-2003 Software Foundation, Inc. Copyright (C) 1995, 2000-2003, 2005 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
@ -14,7 +14,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
@ -49,7 +49,9 @@
/* When building a DLL, we must export some functions. Note that because /* When building a DLL, we must export some functions. Note that because
the functions are only defined for binary backward compatibility, we the functions are only defined for binary backward compatibility, we
don't need to use __declspec(dllimport) in any case. */ don't need to use __declspec(dllimport) in any case. */
#if defined _MSC_VER && BUILDING_DLL #if HAVE_VISIBILITY && BUILDING_DLL
# define DLL_EXPORTED __attribute__((__visibility__("default")))
#elif defined _MSC_VER && BUILDING_DLL
# define DLL_EXPORTED __declspec(dllexport) # define DLL_EXPORTED __declspec(dllexport)
#else #else
# define DLL_EXPORTED # define DLL_EXPORTED

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc. /* Copyright (C) 1995-1999, 2000-2006 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
@ -13,7 +13,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
/* Tell glibc's <string.h> to provide a prototype for stpcpy(). /* Tell glibc's <string.h> to provide a prototype for stpcpy().
@ -67,8 +67,8 @@ static char *stpcpy (char *dest, const char *src);
IS_ABSOLUTE_PATH(P) tests whether P is an absolute path. If it is not, IS_ABSOLUTE_PATH(P) tests whether P is an absolute path. If it is not,
it may be concatenated to a directory pathname. it may be concatenated to a directory pathname.
*/ */
#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__ #if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
/* Win32, OS/2, DOS */ /* Win32, Cygwin, OS/2, DOS */
# define ISSLASH(C) ((C) == '/' || (C) == '\\') # define ISSLASH(C) ((C) == '/' || (C) == '\\')
# define HAS_DEVICE(P) \ # define HAS_DEVICE(P) \
((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \ ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \
@ -82,7 +82,12 @@ static char *stpcpy (char *dest, const char *src);
/* Define function which are usually not available. */ /* Define function which are usually not available. */
#if !defined _LIBC && !defined HAVE___ARGZ_COUNT #ifdef _LIBC
# define __argz_count(argz, len) INTUSE(__argz_count) (argz, len)
#elif defined HAVE_ARGZ_COUNT
# undef __argz_count
# define __argz_count argz_count
#else
/* Returns the number of strings in ARGZ. */ /* Returns the number of strings in ARGZ. */
static size_t static size_t
argz_count__ (const char *argz, size_t len) argz_count__ (const char *argz, size_t len)
@ -99,13 +104,15 @@ argz_count__ (const char *argz, size_t len)
} }
# undef __argz_count # undef __argz_count
# define __argz_count(argz, len) argz_count__ (argz, len) # define __argz_count(argz, len) argz_count__ (argz, len)
#else #endif /* !_LIBC && !HAVE_ARGZ_COUNT */
# ifdef _LIBC
# define __argz_count(argz, len) INTUSE(__argz_count) (argz, len)
# endif
#endif /* !_LIBC && !HAVE___ARGZ_COUNT */
#if !defined _LIBC && !defined HAVE___ARGZ_STRINGIFY #ifdef _LIBC
# define __argz_stringify(argz, len, sep) \
INTUSE(__argz_stringify) (argz, len, sep)
#elif defined HAVE_ARGZ_STRINGIFY
# undef __argz_stringify
# define __argz_stringify argz_stringify
#else
/* 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 static void
@ -122,14 +129,13 @@ argz_stringify__ (char *argz, size_t len, int sep)
} }
# undef __argz_stringify # undef __argz_stringify
# define __argz_stringify(argz, len, sep) argz_stringify__ (argz, len, sep) # define __argz_stringify(argz, len, sep) argz_stringify__ (argz, len, sep)
#else #endif /* !_LIBC && !HAVE_ARGZ_STRINGIFY */
# ifdef _LIBC
# define __argz_stringify(argz, len, sep) \
INTUSE(__argz_stringify) (argz, len, sep)
# endif
#endif /* !_LIBC && !HAVE___ARGZ_STRINGIFY */
#if !defined _LIBC && !defined HAVE___ARGZ_NEXT #ifdef _LIBC
#elif defined HAVE_ARGZ_NEXT
# undef __argz_next
# define __argz_next argz_next
#else
static char * static char *
argz_next__ (char *argz, size_t argz_len, const char *entry) argz_next__ (char *argz, size_t argz_len, const char *entry)
{ {
@ -148,7 +154,7 @@ argz_next__ (char *argz, size_t argz_len, const char *entry)
} }
# undef __argz_next # undef __argz_next
# define __argz_next(argz, len, entry) argz_next__ (argz, len, entry) # define __argz_next(argz, len, entry) argz_next__ (argz, len, entry)
#endif /* !_LIBC && !HAVE___ARGZ_NEXT */ #endif /* !_LIBC && !HAVE_ARGZ_NEXT */
/* Return number of bits set in X. */ /* Return number of bits set in X. */
@ -170,8 +176,7 @@ _nl_make_l10nflist (struct loaded_l10nfile **l10nfile_list,
const char *dirlist, size_t dirlist_len, const char *dirlist, size_t dirlist_len,
int mask, const char *language, const char *territory, int mask, const char *language, const char *territory,
const char *codeset, const char *normalized_codeset, const char *codeset, const char *normalized_codeset,
const char *modifier, const char *special, const char *modifier,
const char *sponsor, const char *revision,
const char *filename, int do_allocate) const char *filename, int do_allocate)
{ {
char *abs_filename; char *abs_filename;
@ -190,23 +195,14 @@ _nl_make_l10nflist (struct loaded_l10nfile **l10nfile_list,
/* Allocate room for the full file name. */ /* Allocate room for the full file name. */
abs_filename = (char *) malloc (dirlist_len abs_filename = (char *) malloc (dirlist_len
+ strlen (language) + strlen (language)
+ ((mask & TERRITORY) != 0 + ((mask & XPG_TERRITORY) != 0
? strlen (territory) + 1 : 0) ? strlen (territory) + 1 : 0)
+ ((mask & XPG_CODESET) != 0 + ((mask & XPG_CODESET) != 0
? strlen (codeset) + 1 : 0) ? strlen (codeset) + 1 : 0)
+ ((mask & XPG_NORM_CODESET) != 0 + ((mask & XPG_NORM_CODESET) != 0
? strlen (normalized_codeset) + 1 : 0) ? strlen (normalized_codeset) + 1 : 0)
+ (((mask & XPG_MODIFIER) != 0 + ((mask & XPG_MODIFIER) != 0
|| (mask & CEN_AUDIENCE) != 0)
? strlen (modifier) + 1 : 0) ? strlen (modifier) + 1 : 0)
+ ((mask & CEN_SPECIAL) != 0
? strlen (special) + 1 : 0)
+ (((mask & CEN_SPONSOR) != 0
|| (mask & CEN_REVISION) != 0)
? (1 + ((mask & CEN_SPONSOR) != 0
? strlen (sponsor) : 0)
+ ((mask & CEN_REVISION) != 0
? strlen (revision) + 1 : 0)) : 0)
+ 1 + strlen (filename) + 1); + 1 + strlen (filename) + 1);
if (abs_filename == NULL) if (abs_filename == NULL)
@ -224,7 +220,7 @@ _nl_make_l10nflist (struct loaded_l10nfile **l10nfile_list,
cp = stpcpy (cp, language); cp = stpcpy (cp, language);
if ((mask & TERRITORY) != 0) if ((mask & XPG_TERRITORY) != 0)
{ {
*cp++ = '_'; *cp++ = '_';
cp = stpcpy (cp, territory); cp = stpcpy (cp, territory);
@ -239,29 +235,11 @@ _nl_make_l10nflist (struct loaded_l10nfile **l10nfile_list,
*cp++ = '.'; *cp++ = '.';
cp = stpcpy (cp, normalized_codeset); cp = stpcpy (cp, normalized_codeset);
} }
if ((mask & (XPG_MODIFIER | CEN_AUDIENCE)) != 0) if ((mask & XPG_MODIFIER) != 0)
{ {
/* This component can be part of both syntaces but has different *cp++ = '@';
leading characters. For CEN we use `+', else `@'. */
*cp++ = (mask & CEN_AUDIENCE) != 0 ? '+' : '@';
cp = stpcpy (cp, modifier); cp = stpcpy (cp, modifier);
} }
if ((mask & CEN_SPECIAL) != 0)
{
*cp++ = '+';
cp = stpcpy (cp, special);
}
if ((mask & (CEN_SPONSOR | CEN_REVISION)) != 0)
{
*cp++ = ',';
if ((mask & CEN_SPONSOR) != 0)
cp = stpcpy (cp, sponsor);
if ((mask & CEN_REVISION) != 0)
{
*cp++ = '_';
cp = stpcpy (cp, revision);
}
}
*cp++ = '/'; *cp++ = '/';
stpcpy (cp, filename); stpcpy (cp, filename);
@ -301,7 +279,10 @@ _nl_make_l10nflist (struct loaded_l10nfile **l10nfile_list,
+ (((dirlist_count << pop (mask)) + (dirlist_count > 1 ? 1 : 0)) + (((dirlist_count << pop (mask)) + (dirlist_count > 1 ? 1 : 0))
* sizeof (struct loaded_l10nfile *))); * sizeof (struct loaded_l10nfile *)));
if (retval == NULL) if (retval == NULL)
{
free (abs_filename);
return NULL; return NULL;
}
retval->filename = abs_filename; retval->filename = abs_filename;
@ -332,8 +313,7 @@ _nl_make_l10nflist (struct loaded_l10nfile **l10nfile_list,
normalized_codeset. */ normalized_codeset. */
for (cnt = dirlist_count > 1 ? mask : mask - 1; cnt >= 0; --cnt) for (cnt = dirlist_count > 1 ? mask : mask - 1; cnt >= 0; --cnt)
if ((cnt & ~mask) == 0 if ((cnt & ~mask) == 0
&& ((cnt & CEN_SPECIFIC) == 0 || (cnt & XPG_SPECIFIC) == 0) && !((cnt & XPG_CODESET) != 0 && (cnt & XPG_NORM_CODESET) != 0))
&& ((cnt & XPG_CODESET) == 0 || (cnt & XPG_NORM_CODESET) == 0))
{ {
if (dirlist_count > 1) if (dirlist_count > 1)
{ {
@ -345,15 +325,14 @@ _nl_make_l10nflist (struct loaded_l10nfile **l10nfile_list,
retval->successor[entries++] retval->successor[entries++]
= _nl_make_l10nflist (l10nfile_list, dir, strlen (dir) + 1, = _nl_make_l10nflist (l10nfile_list, dir, strlen (dir) + 1,
cnt, language, territory, codeset, cnt, language, territory, codeset,
normalized_codeset, modifier, special, normalized_codeset, modifier, filename,
sponsor, revision, filename, 1); 1);
} }
else else
retval->successor[entries++] retval->successor[entries++]
= _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, = _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len,
cnt, language, territory, codeset, cnt, language, territory, codeset,
normalized_codeset, modifier, special, normalized_codeset, modifier, filename, 1);
sponsor, revision, filename, 1);
} }
retval->successor[entries] = NULL; retval->successor[entries] = NULL;

View File

@ -1,5 +1,5 @@
/* Message catalogs for internationalization. /* Message catalogs for internationalization.
Copyright (C) 1995-1997, 2000-2003 Free Software Foundation, Inc. Copyright (C) 1995-1997, 2000-2006 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
@ -13,7 +13,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifndef _LIBINTL_H #ifndef _LIBINTL_H
@ -39,7 +39,7 @@
/* Provide information about the supported file formats. Returns the /* Provide information about the supported file formats. Returns the
maximum minor revision number supported for a given major revision. */ maximum minor revision number supported for a given major revision. */
#define __GNU_GETTEXT_SUPPORTED_REVISION(major) \ #define __GNU_GETTEXT_SUPPORTED_REVISION(major) \
((major) == 0 ? 1 : -1) ((major) == 0 || (major) == 1 ? 1 : -1)
/* Resolve a platform specific conflict on DJGPP. GNU gettext takes /* Resolve a platform specific conflict on DJGPP. GNU gettext takes
precedence over _conio_gettext. */ precedence over _conio_gettext. */
@ -52,6 +52,11 @@ extern "C" {
#endif #endif
/* Version number: (major<<16) + (minor<<8) + subminor */
#define LIBINTL_VERSION 0x000F00
extern int libintl_version;
/* We redirect the functions to those prefixed with "libintl_". This is /* We redirect the functions to those prefixed with "libintl_". This is
necessary, because some systems define gettext/textdomain/... in the C necessary, because some systems define gettext/textdomain/... in the C
library (namely, Solaris 2.4 and newer, and GNU libc 2.0 and newer). library (namely, Solaris 2.4 and newer, and GNU libc 2.0 and newer).
@ -83,7 +88,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 __MINGW32__ && !(__GNUC__ == 2 && defined _AIX) && (defined __STDC__ || defined __cplusplus) # if __GNUC__ >= 2 && !(__APPLE_CC__ > 1) && !defined __MINGW32__ && !(__GNUC__ == 2 && defined _AIX) && (defined __STDC__ || defined __cplusplus)
# define _INTL_REDIRECT_ASM # define _INTL_REDIRECT_ASM
# else # else
# ifdef __cplusplus # ifdef __cplusplus
@ -102,11 +107,21 @@ extern "C" {
# define _INTL_ASM(cname) # define _INTL_ASM(cname)
#endif #endif
/* _INTL_MAY_RETURN_STRING_ARG(n) declares that the given function may return
its n-th argument literally. This enables GCC to warn for example about
printf (gettext ("foo %y")). */
#if __GNUC__ >= 3 && !(__APPLE_CC__ > 1 && defined __cplusplus)
# define _INTL_MAY_RETURN_STRING_ARG(n) __attribute__ ((__format_arg__ (n)))
#else
# define _INTL_MAY_RETURN_STRING_ARG(n)
#endif
/* Look up MSGID in the current default message catalog for the current /* Look up MSGID in the current default message catalog for the current
LC_MESSAGES locale. If not found, returns MSGID itself (the default LC_MESSAGES locale. If not found, returns MSGID itself (the default
text). */ text). */
#ifdef _INTL_REDIRECT_INLINE #ifdef _INTL_REDIRECT_INLINE
extern char *libintl_gettext (const char *__msgid); extern char *libintl_gettext (const char *__msgid)
_INTL_MAY_RETURN_STRING_ARG (1);
static inline char *gettext (const char *__msgid) static inline char *gettext (const char *__msgid)
{ {
return libintl_gettext (__msgid); return libintl_gettext (__msgid);
@ -116,13 +131,15 @@ static inline char *gettext (const char *__msgid)
# define gettext libintl_gettext # define gettext libintl_gettext
#endif #endif
extern char *gettext (const char *__msgid) extern char *gettext (const char *__msgid)
_INTL_ASM (libintl_gettext); _INTL_ASM (libintl_gettext)
_INTL_MAY_RETURN_STRING_ARG (1);
#endif #endif
/* Look up MSGID in the DOMAINNAME message catalog for the current /* Look up MSGID in the DOMAINNAME message catalog for the current
LC_MESSAGES locale. */ LC_MESSAGES locale. */
#ifdef _INTL_REDIRECT_INLINE #ifdef _INTL_REDIRECT_INLINE
extern char *libintl_dgettext (const char *__domainname, const char *__msgid); extern char *libintl_dgettext (const char *__domainname, const char *__msgid)
_INTL_MAY_RETURN_STRING_ARG (2);
static inline char *dgettext (const char *__domainname, const char *__msgid) static inline char *dgettext (const char *__domainname, const char *__msgid)
{ {
return libintl_dgettext (__domainname, __msgid); return libintl_dgettext (__domainname, __msgid);
@ -132,14 +149,16 @@ static inline char *dgettext (const char *__domainname, const char *__msgid)
# define dgettext libintl_dgettext # define dgettext libintl_dgettext
#endif #endif
extern char *dgettext (const char *__domainname, const char *__msgid) extern char *dgettext (const char *__domainname, const char *__msgid)
_INTL_ASM (libintl_dgettext); _INTL_ASM (libintl_dgettext)
_INTL_MAY_RETURN_STRING_ARG (2);
#endif #endif
/* 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. */
#ifdef _INTL_REDIRECT_INLINE #ifdef _INTL_REDIRECT_INLINE
extern char *libintl_dcgettext (const char *__domainname, const char *__msgid, extern char *libintl_dcgettext (const char *__domainname, const char *__msgid,
int __category); int __category)
_INTL_MAY_RETURN_STRING_ARG (2);
static inline char *dcgettext (const char *__domainname, const char *__msgid, static inline char *dcgettext (const char *__domainname, const char *__msgid,
int __category) int __category)
{ {
@ -151,7 +170,8 @@ static inline char *dcgettext (const char *__domainname, const char *__msgid,
#endif #endif
extern char *dcgettext (const char *__domainname, const char *__msgid, extern char *dcgettext (const char *__domainname, const char *__msgid,
int __category) int __category)
_INTL_ASM (libintl_dcgettext); _INTL_ASM (libintl_dcgettext)
_INTL_MAY_RETURN_STRING_ARG (2);
#endif #endif
@ -159,7 +179,8 @@ extern char *dcgettext (const char *__domainname, const char *__msgid,
number N. */ number N. */
#ifdef _INTL_REDIRECT_INLINE #ifdef _INTL_REDIRECT_INLINE
extern char *libintl_ngettext (const char *__msgid1, const char *__msgid2, extern char *libintl_ngettext (const char *__msgid1, const char *__msgid2,
unsigned long int __n); unsigned long int __n)
_INTL_MAY_RETURN_STRING_ARG (1) _INTL_MAY_RETURN_STRING_ARG (2);
static inline char *ngettext (const char *__msgid1, const char *__msgid2, static inline char *ngettext (const char *__msgid1, const char *__msgid2,
unsigned long int __n) unsigned long int __n)
{ {
@ -171,14 +192,16 @@ static inline char *ngettext (const char *__msgid1, const char *__msgid2,
#endif #endif
extern char *ngettext (const char *__msgid1, const char *__msgid2, extern char *ngettext (const char *__msgid1, const char *__msgid2,
unsigned long int __n) unsigned long int __n)
_INTL_ASM (libintl_ngettext); _INTL_ASM (libintl_ngettext)
_INTL_MAY_RETURN_STRING_ARG (1) _INTL_MAY_RETURN_STRING_ARG (2);
#endif #endif
/* Similar to `dgettext' but select the plural form corresponding to the /* Similar to `dgettext' but select the plural form corresponding to the
number N. */ number N. */
#ifdef _INTL_REDIRECT_INLINE #ifdef _INTL_REDIRECT_INLINE
extern char *libintl_dngettext (const char *__domainname, const char *__msgid1, extern char *libintl_dngettext (const char *__domainname, const char *__msgid1,
const char *__msgid2, unsigned long int __n); const char *__msgid2, unsigned long int __n)
_INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3);
static inline char *dngettext (const char *__domainname, const char *__msgid1, static inline char *dngettext (const char *__domainname, const char *__msgid1,
const char *__msgid2, unsigned long int __n) const char *__msgid2, unsigned long int __n)
{ {
@ -191,7 +214,8 @@ static inline char *dngettext (const char *__domainname, const char *__msgid1,
extern char *dngettext (const char *__domainname, extern char *dngettext (const char *__domainname,
const char *__msgid1, const char *__msgid2, const char *__msgid1, const char *__msgid2,
unsigned long int __n) unsigned long int __n)
_INTL_ASM (libintl_dngettext); _INTL_ASM (libintl_dngettext)
_INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3);
#endif #endif
/* Similar to `dcgettext' but select the plural form corresponding to the /* Similar to `dcgettext' but select the plural form corresponding to the
@ -199,7 +223,8 @@ extern char *dngettext (const char *__domainname,
#ifdef _INTL_REDIRECT_INLINE #ifdef _INTL_REDIRECT_INLINE
extern char *libintl_dcngettext (const char *__domainname, extern char *libintl_dcngettext (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)
_INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3);
static inline char *dcngettext (const char *__domainname, static inline char *dcngettext (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)
@ -213,10 +238,13 @@ static inline char *dcngettext (const char *__domainname,
extern char *dcngettext (const char *__domainname, extern char *dcngettext (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)
_INTL_ASM (libintl_dcngettext); _INTL_ASM (libintl_dcngettext)
_INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3);
#endif #endif
#ifndef IN_LIBGLOCALE
/* Set the current default message catalog to DOMAINNAME. /* Set the current default message catalog to DOMAINNAME.
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". */
@ -271,6 +299,8 @@ extern char *bind_textdomain_codeset (const char *__domainname,
_INTL_ASM (libintl_bind_textdomain_codeset); _INTL_ASM (libintl_bind_textdomain_codeset);
#endif #endif
#endif /* IN_LIBGLOCALE */
/* Support for format strings with positions in *printf(), following the /* Support for format strings with positions in *printf(), following the
POSIX/XSI specification. POSIX/XSI specification.
@ -300,6 +330,12 @@ extern int fprintf (FILE *, const char *, ...);
extern int vfprintf (FILE *, const char *, va_list); extern int vfprintf (FILE *, const char *, va_list);
#undef printf #undef printf
#if defined __NetBSD__ || defined __CYGWIN__ || defined __MINGW32__
/* Don't break __attribute__((format(printf,M,N))).
This redefinition is only possible because the libc in NetBSD, Cygwin,
mingw does not have a function __printf__. */
# define libintl_printf __printf__
#endif
#define printf libintl_printf #define printf libintl_printf
extern int printf (const char *, ...); extern int printf (const char *, ...);
#undef vprintf #undef vprintf

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996-1999, 2000-2003 Free Software Foundation, Inc. /* Copyright (C) 1996-1999, 2000-2003, 2005-2006 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.
@ -14,7 +14,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifndef _LOADINFO_H #ifndef _LOADINFO_H
@ -36,6 +36,10 @@
# define internal_function # define internal_function
#endif #endif
#ifndef LIBINTL_DLL_EXPORTED
# define LIBINTL_DLL_EXPORTED
#endif
/* Tell the compiler when a conditional or integer expression is /* Tell the compiler when a conditional or integer expression is
almost always true or almost always false. */ almost always true or almost always false. */
#ifndef HAVE_BUILTIN_EXPECT #ifndef HAVE_BUILTIN_EXPECT
@ -43,7 +47,7 @@
#endif #endif
/* Separator in PATH like lists of pathnames. */ /* Separator in PATH like lists of pathnames. */
#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__ #if ((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) || defined __EMX__ || defined __DJGPP__
/* Win32, OS/2, DOS */ /* Win32, OS/2, DOS */
# define PATH_SEPARATOR ';' # define PATH_SEPARATOR ';'
#else #else
@ -52,17 +56,10 @@
#endif #endif
/* Encoding of locale name parts. */ /* Encoding of locale name parts. */
#define CEN_REVISION 1 #define XPG_NORM_CODESET 1
#define CEN_SPONSOR 2 #define XPG_CODESET 2
#define CEN_SPECIAL 4 #define XPG_TERRITORY 4
#define XPG_NORM_CODESET 8 #define XPG_MODIFIER 8
#define XPG_CODESET 16
#define TERRITORY 32
#define CEN_AUDIENCE 64
#define XPG_MODIFIER 128
#define CEN_SPECIFIC (CEN_REVISION|CEN_SPONSOR|CEN_SPECIAL|CEN_AUDIENCE)
#define XPG_SPECIFIC (XPG_CODESET|XPG_NORM_CODESET|XPG_MODIFIER)
struct loaded_l10nfile struct loaded_l10nfile
@ -89,9 +86,9 @@ extern const char *_nl_normalize_codeset (const char *codeset,
files of the same kind, sorted in decreasing order of ->filename. files of the same kind, sorted in decreasing order of ->filename.
DIRLIST and DIRLIST_LEN are an argz list of directories in which to DIRLIST and DIRLIST_LEN are an argz list of directories in which to
look, containing at least one directory (i.e. DIRLIST_LEN > 0). look, containing at least one directory (i.e. DIRLIST_LEN > 0).
MASK, LANGUAGE, TERRITORY, CODESET, NORMALIZED_CODESET, MODIFIER, MASK, LANGUAGE, TERRITORY, CODESET, NORMALIZED_CODESET, MODIFIER
SPECIAL, SPONSOR, REVISION are the pieces of the locale name, as are the pieces of the locale name, as produced by _nl_explode_name().
produced by _nl_explode_name(). FILENAME is the filename suffix. FILENAME is the filename suffix.
The return value is the lookup result, either found in *L10NFILE_LIST, The return value is the lookup result, either found in *L10NFILE_LIST,
or - if DO_ALLOCATE is nonzero - freshly allocated, or possibly NULL. or - if DO_ALLOCATE is nonzero - freshly allocated, or possibly NULL.
If the return value is non-NULL, it is added to *L10NFILE_LIST, and If the return value is non-NULL, it is added to *L10NFILE_LIST, and
@ -103,43 +100,33 @@ _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 *normalized_codeset, const char *codeset, const char *normalized_codeset,
const char *modifier, const char *special, const char *modifier,
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 (const char *name); /* Part of the libintl ABI only for the sake of the gettext.m4 macro. */
extern LIBINTL_DLL_EXPORTED 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.
NAME gets destructively modified: NUL bytes are inserted here and NAME gets destructively modified: NUL bytes are inserted here and
there. *LANGUAGE gets assigned NAME. Each of *MODIFIER, *TERRITORY, there. *LANGUAGE gets assigned NAME. Each of *MODIFIER, *TERRITORY,
*CODESET, *SPECIAL, *SPONSOR, *REVISION gets assigned either a *CODESET gets assigned either a pointer into the old NAME string, or
pointer into the old NAME string, or NULL. *NORMALIZED_CODESET NULL. *NORMALIZED_CODESET gets assigned the expanded *CODESET, if it
gets assigned the expanded *CODESET, if it is different from *CODESET; is different from *CODESET; this one is dynamically allocated and has
this one is dynamically allocated and has to be freed by the caller. to be freed by the caller.
The return value is a bitmask, where each bit corresponds to one The return value is a bitmask, where each bit corresponds to one
filled-in value: filled-in value:
XPG_MODIFIER, CEN_AUDIENCE for *MODIFIER, XPG_MODIFIER for *MODIFIER,
TERRITORY for *TERRITORY, XPG_TERRITORY for *TERRITORY,
XPG_CODESET for *CODESET, XPG_CODESET for *CODESET,
XPG_NORM_CODESET for *NORMALIZED_CODESET, XPG_NORM_CODESET for *NORMALIZED_CODESET.
CEN_SPECIAL for *SPECIAL,
CEN_SPONSOR for *SPONSOR,
CEN_REVISION for *REVISION.
*/ */
extern int _nl_explode_name (char *name, const char **language, extern int _nl_explode_name (char *name, const char **language,
const char **modifier, const char **territory, const char **modifier, 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 **revision);
/* Split a locale name NAME into a leading language part and all the
rest. Return a pointer to the first character after the language,
i.e. to the first byte of the rest. */
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-2004 Free Software Foundation, Inc. Copyright (C) 1995-1999, 2000-2005 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
@ -13,7 +13,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
/* Tell glibc's <string.h> to provide a prototype for mempcpy(). /* Tell glibc's <string.h> to provide a prototype for mempcpy().
@ -91,6 +91,14 @@ char *alloca ();
#ifdef _LIBC #ifdef _LIBC
# include "../locale/localeinfo.h" # include "../locale/localeinfo.h"
# include <not-cancel.h>
#endif
/* Handle multi-threaded applications. */
#ifdef _LIBC
# include <bits/libc-lock.h>
#else
# include "lock.h"
#endif #endif
/* Provide fallback values for macros that ought to be defined in <inttypes.h>. /* Provide fallback values for macros that ought to be defined in <inttypes.h>.
@ -457,11 +465,12 @@ char *alloca ();
/* Rename the non ISO C functions. This is required by the standard /* Rename the non ISO C functions. This is required by the standard
because some ISO C functions will require linking with this object because some ISO C functions will require linking with this object
file and the name space must not be polluted. */ file and the name space must not be polluted. */
# define open __open # define open(name, flags) open_not_cancel_2 (name, flags)
# define close __close # define close(fd) close_not_cancel_no_status (fd)
# define read __read # define read(fd, buf, n) read_not_cancel (fd, buf, n)
# define mmap __mmap # define mmap(addr, len, prot, flags, fd, offset) \
# define munmap __munmap __mmap (addr, len, prot, flags, fd, offset)
# define munmap(addr, len) __munmap (addr, len)
#endif #endif
/* For those losing systems which don't have `alloca' we have to add /* For those losing systems which don't have `alloca' we have to add
@ -764,144 +773,6 @@ get_sysdep_segment_value (const char *name)
return NULL; return NULL;
} }
/* Initialize the codeset dependent parts of an opened message catalog.
Return the header entry. */
const char *
internal_function
_nl_init_domain_conv (struct loaded_l10nfile *domain_file,
struct loaded_domain *domain,
struct binding *domainbinding)
{
/* Find out about the character set the file is encoded with.
This can be found (in textual form) in the entry "". If this
entry does not exist or if this does not contain the `charset='
information, we will assume the charset matches the one the
current locale and we don't have to perform any conversion. */
char *nullentry;
size_t nullentrylen;
/* Preinitialize fields, to avoid recursion during _nl_find_msg. */
domain->codeset_cntr =
(domainbinding != NULL ? domainbinding->codeset_cntr : 0);
#ifdef _LIBC
domain->conv = (__gconv_t) -1;
#else
# if HAVE_ICONV
domain->conv = (iconv_t) -1;
# endif
#endif
domain->conv_tab = NULL;
/* Get the header entry. */
nullentry = _nl_find_msg (domain_file, domainbinding, "", &nullentrylen);
if (nullentry != NULL)
{
#if defined _LIBC || HAVE_ICONV
const char *charsetstr;
charsetstr = strstr (nullentry, "charset=");
if (charsetstr != NULL)
{
size_t len;
char *charset;
const char *outcharset;
charsetstr += strlen ("charset=");
len = strcspn (charsetstr, " \t\n");
charset = (char *) alloca (len + 1);
# if defined _LIBC || HAVE_MEMPCPY
*((char *) mempcpy (charset, charsetstr, len)) = '\0';
# else
memcpy (charset, charsetstr, len);
charset[len] = '\0';
# endif
/* The output charset should normally be determined by the
locale. But sometimes the locale is not used or not correctly
set up, so we provide a possibility for the user to override
this. Moreover, the value specified through
bind_textdomain_codeset overrides both. */
if (domainbinding != NULL && domainbinding->codeset != NULL)
outcharset = domainbinding->codeset;
else
{
outcharset = getenv ("OUTPUT_CHARSET");
if (outcharset == NULL || outcharset[0] == '\0')
{
# ifdef _LIBC
outcharset = _NL_CURRENT (LC_CTYPE, CODESET);
# else
# if HAVE_ICONV
extern const char *locale_charset (void);
outcharset = locale_charset ();
# endif
# endif
}
}
# ifdef _LIBC
/* We always want to use transliteration. */
outcharset = norm_add_slashes (outcharset, "TRANSLIT");
charset = norm_add_slashes (charset, NULL);
if (__gconv_open (outcharset, charset, &domain->conv,
GCONV_AVOID_NOCONV)
!= __GCONV_OK)
domain->conv = (__gconv_t) -1;
# else
# if HAVE_ICONV
/* When using GNU libc >= 2.2 or GNU libiconv >= 1.5,
we want to use transliteration. */
# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 \
|| _LIBICONV_VERSION >= 0x0105
if (strchr (outcharset, '/') == NULL)
{
char *tmp;
len = strlen (outcharset);
tmp = (char *) alloca (len + 10 + 1);
memcpy (tmp, outcharset, len);
memcpy (tmp + len, "//TRANSLIT", 10 + 1);
outcharset = tmp;
domain->conv = iconv_open (outcharset, charset);
freea (outcharset);
}
else
# endif
domain->conv = iconv_open (outcharset, charset);
# endif
# endif
freea (charset);
}
#endif /* _LIBC || HAVE_ICONV */
}
return nullentry;
}
/* Frees the codeset dependent parts of an opened message catalog. */
void
internal_function
_nl_free_domain_conv (struct loaded_domain *domain)
{
if (domain->conv_tab != NULL && domain->conv_tab != (char **) -1)
free (domain->conv_tab);
#ifdef _LIBC
if (domain->conv != (__gconv_t) -1)
__gconv_close (domain->conv);
#else
# if HAVE_ICONV
if (domain->conv != (iconv_t) -1)
iconv_close (domain->conv);
# endif
#endif
}
/* Load the message catalogs specified by FILENAME. If it is no valid /* Load the message catalogs specified by FILENAME. If it is no valid
message catalog do nothing. */ message catalog do nothing. */
void void
@ -909,7 +780,8 @@ internal_function
_nl_load_domain (struct loaded_l10nfile *domain_file, _nl_load_domain (struct loaded_l10nfile *domain_file,
struct binding *domainbinding) struct binding *domainbinding)
{ {
int fd; __libc_lock_define_initialized_recursive (static, lock)
int fd = -1;
size_t size; size_t size;
#ifdef _LIBC #ifdef _LIBC
struct stat64 st; struct stat64 st;
@ -921,8 +793,24 @@ _nl_load_domain (struct loaded_l10nfile *domain_file,
struct loaded_domain *domain; struct loaded_domain *domain;
int revision; int revision;
const char *nullentry; const char *nullentry;
size_t nullentrylen;
domain_file->decided = 1; __libc_lock_lock_recursive (lock);
if (domain_file->decided != 0)
{
/* There are two possibilities:
+ this is the same thread calling again during this initialization
via _nl_find_msg. We have initialized everything this call needs.
+ this is another thread which tried to initialize this object.
Not necessary anymore since if the lock is available this
is finished.
*/
goto done;
}
domain_file->decided = -1;
domain_file->data = NULL; domain_file->data = NULL;
/* Note that it would be useless to store domainbinding in domain_file /* Note that it would be useless to store domainbinding in domain_file
@ -934,12 +822,12 @@ _nl_load_domain (struct loaded_l10nfile *domain_file,
specification the locale file name is different for XPG and CEN specification the locale file name is different for XPG and CEN
syntax. */ syntax. */
if (domain_file->filename == NULL) if (domain_file->filename == NULL)
return; goto out;
/* Try to open the addressed file. */ /* Try to open the addressed file. */
fd = open (domain_file->filename, O_RDONLY | O_BINARY); fd = open (domain_file->filename, O_RDONLY | O_BINARY);
if (fd == -1) if (fd == -1)
return; goto out;
/* We must know about the size of the file. */ /* We must know about the size of the file. */
if ( if (
@ -950,11 +838,8 @@ _nl_load_domain (struct loaded_l10nfile *domain_file,
#endif #endif
|| __builtin_expect ((size = (size_t) st.st_size) != st.st_size, 0) || __builtin_expect ((size = (size_t) st.st_size) != st.st_size, 0)
|| __builtin_expect (size < sizeof (struct mo_file_header), 0)) || __builtin_expect (size < sizeof (struct mo_file_header), 0))
{
/* Something went wrong. */ /* Something went wrong. */
close (fd); goto out;
return;
}
#ifdef HAVE_MMAP #ifdef HAVE_MMAP
/* Now we are ready to load the file. If mmap() is available we try /* Now we are ready to load the file. If mmap() is available we try
@ -966,6 +851,7 @@ _nl_load_domain (struct loaded_l10nfile *domain_file,
{ {
/* mmap() call was successful. */ /* mmap() call was successful. */
close (fd); close (fd);
fd = -1;
use_mmap = 1; use_mmap = 1;
} }
#endif #endif
@ -979,7 +865,7 @@ _nl_load_domain (struct loaded_l10nfile *domain_file,
data = (struct mo_file_header *) malloc (size); data = (struct mo_file_header *) malloc (size);
if (data == NULL) if (data == NULL)
return; goto out;
to_read = size; to_read = size;
read_ptr = (char *) data; read_ptr = (char *) data;
@ -992,8 +878,7 @@ _nl_load_domain (struct loaded_l10nfile *domain_file,
if (nb == -1 && errno == EINTR) if (nb == -1 && errno == EINTR)
continue; continue;
#endif #endif
close (fd); goto out;
return;
} }
read_ptr += nb; read_ptr += nb;
to_read -= nb; to_read -= nb;
@ -1001,6 +886,7 @@ _nl_load_domain (struct loaded_l10nfile *domain_file,
while (to_read > 0); while (to_read > 0);
close (fd); close (fd);
fd = -1;
} }
/* Using the magic number we can test whether it really is a message /* Using the magic number we can test whether it really is a message
@ -1015,12 +901,12 @@ _nl_load_domain (struct loaded_l10nfile *domain_file,
else else
#endif #endif
free (data); free (data);
return; goto out;
} }
domain = (struct loaded_domain *) malloc (sizeof (struct loaded_domain)); domain = (struct loaded_domain *) malloc (sizeof (struct loaded_domain));
if (domain == NULL) if (domain == NULL)
return; goto out;
domain_file->data = domain; domain_file->data = domain;
domain->data = (char *) data; domain->data = (char *) data;
@ -1321,7 +1207,7 @@ _nl_load_domain (struct loaded_l10nfile *domain_file,
for (i = 0; i < n_inmem_sysdep_strings; i++) for (i = 0; i < n_inmem_sysdep_strings; i++)
{ {
const char *msgid = inmem_orig_sysdep_tab[i].pointer; const char *msgid = inmem_orig_sysdep_tab[i].pointer;
nls_uint32 hash_val = hash_string (msgid); nls_uint32 hash_val = __hash_string (msgid);
nls_uint32 idx = hash_val % domain->hash_size; nls_uint32 idx = hash_val % domain->hash_size;
nls_uint32 incr = nls_uint32 incr =
1 + (hash_val % (domain->hash_size - 2)); 1 + (hash_val % (domain->hash_size - 2));
@ -1382,28 +1268,55 @@ _nl_load_domain (struct loaded_l10nfile *domain_file,
free (data); free (data);
free (domain); free (domain);
domain_file->data = NULL; domain_file->data = NULL;
return; goto out;
} }
/* Now initialize the character set converter from the character set /* No caches of converted translations so far. */
the file is encoded with (found in the header entry) to the domain's domain->conversions = NULL;
specified character set or the locale's character set. */ domain->nconversions = 0;
nullentry = _nl_init_domain_conv (domain_file, domain, domainbinding);
/* Also look for a plural specification. */ /* Get the header entry and look for a plural specification. */
#ifdef IN_LIBGLOCALE
nullentry =
_nl_find_msg (domain_file, domainbinding, NULL, "", &nullentrylen);
#else
nullentry = _nl_find_msg (domain_file, domainbinding, "", 0, &nullentrylen);
#endif
EXTRACT_PLURAL_EXPRESSION (nullentry, &domain->plural, &domain->nplurals); EXTRACT_PLURAL_EXPRESSION (nullentry, &domain->plural, &domain->nplurals);
out:
if (fd != -1)
close (fd);
domain_file->decided = 1;
done:
__libc_lock_unlock_recursive (lock);
} }
#ifdef _LIBC #ifdef _LIBC
void void
internal_function internal_function __libc_freeres_fn_section
_nl_unload_domain (struct loaded_domain *domain) _nl_unload_domain (struct loaded_domain *domain)
{ {
size_t i;
if (domain->plural != &__gettext_germanic_plural) if (domain->plural != &__gettext_germanic_plural)
__gettext_free_exp (domain->plural); __gettext_free_exp (domain->plural);
_nl_free_domain_conv (domain); for (i = 0; i < domain->nconversions; i++)
{
struct converted_domain *convd = &domain->conversions[i];
free (convd->encoding);
if (convd->conv_tab != NULL && convd->conv_tab != (char **) -1)
free (convd->conv_tab);
if (convd->conv != (__gconv_t) -1)
__gconv_close (convd->conv);
}
if (domain->conversions != NULL)
free (domain->conversions);
if (domain->malloced) if (domain->malloced)
free (domain->malloced); free (domain->malloced);

View File

@ -1,6 +1,6 @@
/* Determine a canonical name for the current locale's character encoding. /* Determine a canonical name for the current locale's character encoding.
Copyright (C) 2000-2003 Free Software Foundation, Inc. Copyright (C) 2000-2006 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
@ -14,7 +14,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
/* Written by Bruno Haible <bruno@clisp.org>. */ /* Written by Bruno Haible <bruno@clisp.org>. */
@ -41,8 +41,7 @@
#endif #endif
#if defined _WIN32 || defined __WIN32__ #if defined _WIN32 || defined __WIN32__
# undef WIN32 /* avoid warning on mingw32 */ # define WIN32_NATIVE
# define WIN32
#endif #endif
#if defined __EMX__ #if defined __EMX__
@ -50,7 +49,7 @@
# define OS2 # define OS2
#endif #endif
#if !defined WIN32 #if !defined WIN32_NATIVE
# if HAVE_LANGINFO_CODESET # if HAVE_LANGINFO_CODESET
# include <langinfo.h> # include <langinfo.h>
# else # else
@ -58,7 +57,11 @@
# include <locale.h> # include <locale.h>
# endif # endif
# endif # endif
#elif defined WIN32 # ifdef __CYGWIN__
# define WIN32_LEAN_AND_MEAN
# include <windows.h>
# endif
#elif defined WIN32_NATIVE
# define WIN32_LEAN_AND_MEAN # define WIN32_LEAN_AND_MEAN
# include <windows.h> # include <windows.h>
#endif #endif
@ -73,8 +76,8 @@
# define relocate(pathname) (pathname) # define relocate(pathname) (pathname)
#endif #endif
#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__ #if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
/* Win32, OS/2, DOS */ /* Win32, Cygwin, OS/2, DOS */
# define ISSLASH(C) ((C) == '/' || (C) == '\\') # define ISSLASH(C) ((C) == '/' || (C) == '\\')
#endif #endif
@ -107,19 +110,25 @@ static const char * volatile charset_aliases;
/* Return a pointer to the contents of the charset.alias file. */ /* Return a pointer to the contents of the charset.alias file. */
static const char * static const char *
get_charset_aliases () get_charset_aliases (void)
{ {
const char *cp; const char *cp;
cp = charset_aliases; cp = charset_aliases;
if (cp == NULL) if (cp == NULL)
{ {
#if !(defined VMS || defined WIN32) #if !(defined VMS || defined WIN32_NATIVE || defined __CYGWIN__)
FILE *fp; FILE *fp;
const char *dir = relocate (LIBDIR); const char *dir;
const char *base = "charset.alias"; const char *base = "charset.alias";
char *file_name; char *file_name;
/* Make it possible to override the charset.alias location. This is
necessary for running the testsuite before "make install". */
dir = getenv ("CHARSETALIASDIR");
if (dir == NULL || dir[0] == '\0')
dir = relocate (LIBDIR);
/* Concatenate dir and base into freshly allocated file_name. */ /* Concatenate dir and base into freshly allocated file_name. */
{ {
size_t dir_len = strlen (dir); size_t dir_len = strlen (dir);
@ -141,15 +150,17 @@ get_charset_aliases ()
else else
{ {
/* Parse the file's contents. */ /* Parse the file's contents. */
int c;
char buf1[50+1];
char buf2[50+1];
char *res_ptr = NULL; char *res_ptr = NULL;
size_t res_size = 0; size_t res_size = 0;
size_t l1, l2;
for (;;) for (;;)
{ {
int c;
char buf1[50+1];
char buf2[50+1];
size_t l1, l2;
char *old_res_ptr;
c = getc (fp); c = getc (fp);
if (c == EOF) if (c == EOF)
break; break;
@ -170,6 +181,7 @@ get_charset_aliases ()
break; break;
l1 = strlen (buf1); l1 = strlen (buf1);
l2 = strlen (buf2); l2 = strlen (buf2);
old_res_ptr = res_ptr;
if (res_size == 0) if (res_size == 0)
{ {
res_size = l1 + 1 + l2 + 1; res_size = l1 + 1 + l2 + 1;
@ -184,6 +196,8 @@ get_charset_aliases ()
{ {
/* Out of memory. */ /* Out of memory. */
res_size = 0; res_size = 0;
if (old_res_ptr != NULL)
free (old_res_ptr);
break; break;
} }
strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1); strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1);
@ -229,7 +243,7 @@ get_charset_aliases ()
"DECKOREAN" "\0" "EUC-KR" "\0"; "DECKOREAN" "\0" "EUC-KR" "\0";
# endif # endif
# if defined WIN32 # if defined WIN32_NATIVE || defined __CYGWIN__
/* To avoid the troubles of installing a separate file in the same /* To avoid the troubles of installing a separate file in the same
directory as the DLL and of retrieving the DLL's directory at directory as the DLL and of retrieving the DLL's directory at
runtime, simply inline the aliases here. */ runtime, simply inline the aliases here. */
@ -238,6 +252,7 @@ get_charset_aliases ()
"CP1361" "\0" "JOHAB" "\0" "CP1361" "\0" "JOHAB" "\0"
"CP20127" "\0" "ASCII" "\0" "CP20127" "\0" "ASCII" "\0"
"CP20866" "\0" "KOI8-R" "\0" "CP20866" "\0" "KOI8-R" "\0"
"CP20936" "\0" "GB2312" "\0"
"CP21866" "\0" "KOI8-RU" "\0" "CP21866" "\0" "KOI8-RU" "\0"
"CP28591" "\0" "ISO-8859-1" "\0" "CP28591" "\0" "ISO-8859-1" "\0"
"CP28592" "\0" "ISO-8859-2" "\0" "CP28592" "\0" "ISO-8859-2" "\0"
@ -248,7 +263,14 @@ get_charset_aliases ()
"CP28597" "\0" "ISO-8859-7" "\0" "CP28597" "\0" "ISO-8859-7" "\0"
"CP28598" "\0" "ISO-8859-8" "\0" "CP28598" "\0" "ISO-8859-8" "\0"
"CP28599" "\0" "ISO-8859-9" "\0" "CP28599" "\0" "ISO-8859-9" "\0"
"CP28605" "\0" "ISO-8859-15" "\0"; "CP28605" "\0" "ISO-8859-15" "\0"
"CP38598" "\0" "ISO-8859-8" "\0"
"CP51932" "\0" "EUC-JP" "\0"
"CP51936" "\0" "GB2312" "\0"
"CP51949" "\0" "EUC-KR" "\0"
"CP51950" "\0" "EUC-TW" "\0"
"CP54936" "\0" "GB18030" "\0"
"CP65001" "\0" "UTF-8" "\0";
# endif # endif
#endif #endif
@ -268,18 +290,65 @@ get_charset_aliases ()
STATIC STATIC
#endif #endif
const char * const char *
locale_charset () locale_charset (void)
{ {
const char *codeset; const char *codeset;
const char *aliases; const char *aliases;
#if !(defined WIN32 || defined OS2) #if !(defined WIN32_NATIVE || defined OS2)
# if HAVE_LANGINFO_CODESET # if HAVE_LANGINFO_CODESET
/* Most systems support nl_langinfo (CODESET) nowadays. */ /* Most systems support nl_langinfo (CODESET) nowadays. */
codeset = nl_langinfo (CODESET); codeset = nl_langinfo (CODESET);
# ifdef __CYGWIN__
/* Cygwin 2006 does not have locales. nl_langinfo (CODESET) always
returns "US-ASCII". As long as this is not fixed, return the suffix
of the locale name from the environment variables (if present) or
the codepage as a number. */
if (codeset != NULL && strcmp (codeset, "US-ASCII") == 0)
{
const char *locale;
static char buf[2 + 10 + 1];
locale = getenv ("LC_ALL");
if (locale == NULL || locale[0] == '\0')
{
locale = getenv ("LC_CTYPE");
if (locale == NULL || locale[0] == '\0')
locale = getenv ("LANG");
}
if (locale != NULL && locale[0] != '\0')
{
/* If the locale name contains an encoding after the dot, return
it. */
const char *dot = strchr (locale, '.');
if (dot != NULL)
{
const char *modifier;
dot++;
/* Look for the possible @... trailer and remove it, if any. */
modifier = strchr (dot, '@');
if (modifier == NULL)
return dot;
if (modifier - dot < sizeof (buf))
{
memcpy (buf, dot, modifier - dot);
buf [modifier - dot] = '\0';
return buf;
}
}
}
/* Woe32 has a function returning the locale's codepage as a number. */
sprintf (buf, "CP%u", GetACP ());
codeset = buf;
}
# endif
# else # else
/* On old systems which lack it, use setlocale or getenv. */ /* On old systems which lack it, use setlocale or getenv. */
@ -310,7 +379,7 @@ locale_charset ()
# endif # endif
#elif defined WIN32 #elif defined WIN32_NATIVE
static char buf[2 + 10 + 1]; static char buf[2 + 10 + 1];

View File

@ -14,7 +14,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifndef _LOCALCHARSET_H #ifndef _LOCALCHARSET_H

View File

@ -13,7 +13,7 @@
# #
# You should have received a copy of the GNU Library General Public # You should have received a copy of the GNU Library General Public
# License along with this program; if not, write to the Free Software # License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
# USA. # USA.
# The format of this file is the same as for the corresponding file of # The format of this file is the same as for the corresponding file of

View File

@ -1,5 +1,5 @@
/* Handle aliases for locale names. /* Handle aliases for locale names.
Copyright (C) 1995-1999, 2000-2001, 2003 Free Software Foundation, Inc. Copyright (C) 1995-1999, 2000-2001, 2003, 2005 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
@ -13,7 +13,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
/* Tell glibc's <string.h> to provide a prototype for mempcpy(). /* Tell glibc's <string.h> to provide a prototype for mempcpy().
@ -81,11 +81,13 @@ char *alloca ();
# endif # endif
# define HAVE_MEMPCPY 1 # define HAVE_MEMPCPY 1
# define HAVE___FSETLOCKING 1 # define HAVE___FSETLOCKING 1
#endif
/* We need locking here since we can be called from different places. */ /* Handle multi-threaded applications. */
#ifdef _LIBC
# include <bits/libc-lock.h> # include <bits/libc-lock.h>
#else
__libc_lock_define_initialized (static, lock); # include "lock.h"
#endif #endif
#ifndef internal_function #ifndef internal_function
@ -120,6 +122,9 @@ __libc_lock_define_initialized (static, lock);
#endif #endif
__libc_lock_define_initialized (static, lock)
struct alias_map struct alias_map
{ {
const char *alias; const char *alias;
@ -155,9 +160,7 @@ _nl_expand_alias (const char *name)
const char *result = NULL; const char *result = NULL;
size_t added; size_t added;
#ifdef _LIBC
__libc_lock_lock (lock); __libc_lock_lock (lock);
#endif
if (locale_alias_path == NULL) if (locale_alias_path == NULL)
locale_alias_path = LOCALE_ALIAS_PATH; locale_alias_path = LOCALE_ALIAS_PATH;
@ -204,9 +207,7 @@ _nl_expand_alias (const char *name)
} }
while (added != 0); while (added != 0);
#ifdef _LIBC
__libc_lock_unlock (lock); __libc_lock_unlock (lock);
#endif
return result; return result;
} }
@ -230,7 +231,13 @@ read_alias_file (const char *fname, int fname_len)
memcpy (&full_fname[fname_len], aliasfile, sizeof aliasfile); memcpy (&full_fname[fname_len], aliasfile, sizeof aliasfile);
#endif #endif
#ifdef _LIBC
/* Note the file is opened with cancellation in the I/O functions
disabled. */
fp = fopen (relocate (full_fname), "rc");
#else
fp = fopen (relocate (full_fname), "r"); fp = fopen (relocate (full_fname), "r");
#endif
freea (full_fname); freea (full_fname);
if (fp == NULL) if (fp == NULL)
return 0; return 0;
@ -254,11 +261,15 @@ read_alias_file (const char *fname, int fname_len)
char *alias; char *alias;
char *value; char *value;
char *cp; char *cp;
int complete_line;
if (FGETS (buf, sizeof buf, fp) == NULL) if (FGETS (buf, sizeof buf, fp) == NULL)
/* EOF reached. */ /* EOF reached. */
break; break;
/* Determine whether the line is complete. */
complete_line = strchr (buf, '\n') != NULL;
cp = buf; cp = buf;
/* Ignore leading white space. */ /* Ignore leading white space. */
while (isspace ((unsigned char) cp[0])) while (isspace ((unsigned char) cp[0]))
@ -280,9 +291,6 @@ read_alias_file (const char *fname, int fname_len)
if (cp[0] != '\0') if (cp[0] != '\0')
{ {
size_t alias_len;
size_t value_len;
value = cp++; value = cp++;
while (cp[0] != '\0' && !isspace ((unsigned char) cp[0])) while (cp[0] != '\0' && !isspace ((unsigned char) cp[0]))
++cp; ++cp;
@ -298,9 +306,20 @@ read_alias_file (const char *fname, int fname_len)
else if (cp[0] != '\0') else if (cp[0] != '\0')
*cp++ = '\0'; *cp++ = '\0';
#ifdef IN_LIBGLOCALE
/* glibc's locale.alias contains entries for ja_JP and ko_KR
that make it impossible to use a Japanese or Korean UTF-8
locale under the name "ja_JP" or "ko_KR". Ignore these
entries. */
if (strchr (alias, '_') == NULL)
#endif
{
size_t alias_len;
size_t value_len;
if (nmap >= maxmap) if (nmap >= maxmap)
if (__builtin_expect (extend_alias_table (), 0)) if (__builtin_expect (extend_alias_table (), 0))
return added; goto out;
alias_len = strlen (alias) + 1; alias_len = strlen (alias) + 1;
value_len = strlen (value) + 1; value_len = strlen (value) + 1;
@ -313,7 +332,7 @@ read_alias_file (const char *fname, int fname_len)
? alias_len + value_len : 1024)); ? alias_len + value_len : 1024));
char *new_pool = (char *) realloc (string_space, new_size); char *new_pool = (char *) realloc (string_space, new_size);
if (new_pool == NULL) if (new_pool == NULL)
return added; goto out;
if (__builtin_expect (string_space != new_pool, 0)) if (__builtin_expect (string_space != new_pool, 0))
{ {
@ -342,16 +361,20 @@ read_alias_file (const char *fname, int fname_len)
++added; ++added;
} }
} }
}
/* Possibly not the whole line fits into the buffer. Ignore /* Possibly not the whole line fits into the buffer. Ignore
the rest of the line. */ the rest of the line. */
while (strchr (buf, '\n') == NULL) if (! complete_line)
do
if (FGETS (buf, sizeof buf, fp) == NULL) if (FGETS (buf, sizeof buf, fp) == NULL)
/* Make sure the inner loop will be left. The outer loop /* Make sure the inner loop will be left. The outer loop
will exit at the `feof' test. */ will exit at the `feof' test. */
break; break;
while (strchr (buf, '\n') == NULL);
} }
out:
/* Should we test for ferror()? I think we have to silently ignore /* Should we test for ferror()? I think we have to silently ignore
errors. --drepper */ errors. --drepper */
fclose (fp); fclose (fp);

View File

@ -1,5 +1,5 @@
/* Determine the current selected locale. /* Determine the current selected locale.
Copyright (C) 1995-1999, 2000-2004 Free Software Foundation, Inc. Copyright (C) 1995-1999, 2000-2006 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
@ -13,11 +13,12 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
/* Written by Ulrich Drepper <drepper@gnu.org>, 1995. */ /* Written by Ulrich Drepper <drepper@gnu.org>, 1995. */
/* Win32 code written by Tor Lillqvist <tml@iki.fi>. */ /* Win32 code written by Tor Lillqvist <tml@iki.fi>. */
/* MacOS X code written by Bruno Haible <bruno@clisp.org>. */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
# include <config.h> # include <config.h>
@ -26,12 +27,21 @@
#include <stdlib.h> #include <stdlib.h>
#include <locale.h> #include <locale.h>
#if defined _WIN32 || defined __WIN32__ #if HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE
# undef WIN32 /* avoid warning on mingw32 */ # include <string.h>
# define WIN32 # include <CoreFoundation/CFString.h>
# if HAVE_CFLOCALECOPYCURRENT
# include <CoreFoundation/CFLocale.h>
# elif HAVE_CFPREFERENCESCOPYAPPVALUE
# include <CoreFoundation/CFPreferences.h>
# endif
#endif #endif
#ifdef WIN32 #if defined _WIN32 || defined __WIN32__
# define WIN32_NATIVE
#endif
#ifdef WIN32_NATIVE
# define WIN32_LEAN_AND_MEAN # define WIN32_LEAN_AND_MEAN
# include <windows.h> # include <windows.h>
/* List of language codes, sorted by value: /* List of language codes, sorted by value:
@ -683,6 +693,280 @@
# endif # endif
#endif #endif
# if HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE
/* MacOS X 10.2 or newer */
/* Canonicalize a MacOS X locale name to a Unix locale name.
NAME is a sufficiently large buffer.
On input, it contains the MacOS X locale name.
On output, it contains the Unix locale name. */
void
_nl_locale_name_canonicalize (char *name)
{
/* This conversion is based on a posting by
Deborah GoldSmith <goldsmit@apple.com> on 2005-03-08,
http://lists.apple.com/archives/carbon-dev/2005/Mar/msg00293.html */
/* Convert legacy (NeXTstep inherited) English names to Unix (ISO 639 and
ISO 3166) names. Prior to MacOS X 10.3, there is no API for doing this.
Therefore we do it ourselves, using a table based on the results of the
MacOS X 10.3.8 function
CFLocaleCreateCanonicalLocaleIdentifierFromString(). */
typedef struct { const char legacy[21+1]; const char unixy[5+1]; }
legacy_entry;
static const legacy_entry legacy_table[] = {
{ "Afrikaans", "af" },
{ "Albanian", "sq" },
{ "Amharic", "am" },
{ "Arabic", "ar" },
{ "Armenian", "hy" },
{ "Assamese", "as" },
{ "Aymara", "ay" },
{ "Azerbaijani", "az" },
{ "Basque", "eu" },
{ "Belarusian", "be" },
{ "Belorussian", "be" },
{ "Bengali", "bn" },
{ "Brazilian Portugese", "pt_BR" },
{ "Brazilian Portuguese", "pt_BR" },
{ "Breton", "br" },
{ "Bulgarian", "bg" },
{ "Burmese", "my" },
{ "Byelorussian", "be" },
{ "Catalan", "ca" },
{ "Chewa", "ny" },
{ "Chichewa", "ny" },
{ "Chinese", "zh" },
{ "Chinese, Simplified", "zh_CN" },
{ "Chinese, Traditional", "zh_TW" },
{ "Chinese, Tradtional", "zh_TW" },
{ "Croatian", "hr" },
{ "Czech", "cs" },
{ "Danish", "da" },
{ "Dutch", "nl" },
{ "Dzongkha", "dz" },
{ "English", "en" },
{ "Esperanto", "eo" },
{ "Estonian", "et" },
{ "Faroese", "fo" },
{ "Farsi", "fa" },
{ "Finnish", "fi" },
{ "Flemish", "nl_BE" },
{ "French", "fr" },
{ "Galician", "gl" },
{ "Gallegan", "gl" },
{ "Georgian", "ka" },
{ "German", "de" },
{ "Greek", "el" },
{ "Greenlandic", "kl" },
{ "Guarani", "gn" },
{ "Gujarati", "gu" },
{ "Hawaiian", "haw" }, /* Yes, "haw", not "cpe". */
{ "Hebrew", "he" },
{ "Hindi", "hi" },
{ "Hungarian", "hu" },
{ "Icelandic", "is" },
{ "Indonesian", "id" },
{ "Inuktitut", "iu" },
{ "Irish", "ga" },
{ "Italian", "it" },
{ "Japanese", "ja" },
{ "Javanese", "jv" },
{ "Kalaallisut", "kl" },
{ "Kannada", "kn" },
{ "Kashmiri", "ks" },
{ "Kazakh", "kk" },
{ "Khmer", "km" },
{ "Kinyarwanda", "rw" },
{ "Kirghiz", "ky" },
{ "Korean", "ko" },
{ "Kurdish", "ku" },
{ "Latin", "la" },
{ "Latvian", "lv" },
{ "Lithuanian", "lt" },
{ "Macedonian", "mk" },
{ "Malagasy", "mg" },
{ "Malay", "ms" },
{ "Malayalam", "ml" },
{ "Maltese", "mt" },
{ "Manx", "gv" },
{ "Marathi", "mr" },
{ "Moldavian", "mo" },
{ "Mongolian", "mn" },
{ "Nepali", "ne" },
{ "Norwegian", "nb" }, /* Yes, "nb", not the obsolete "no". */
{ "Nyanja", "ny" },
{ "Nynorsk", "nn" },
{ "Oriya", "or" },
{ "Oromo", "om" },
{ "Panjabi", "pa" },
{ "Pashto", "ps" },
{ "Persian", "fa" },
{ "Polish", "pl" },
{ "Portuguese", "pt" },
{ "Portuguese, Brazilian", "pt_BR" },
{ "Punjabi", "pa" },
{ "Pushto", "ps" },
{ "Quechua", "qu" },
{ "Romanian", "ro" },
{ "Ruanda", "rw" },
{ "Rundi", "rn" },
{ "Russian", "ru" },
{ "Sami", "se_NO" }, /* Not just "se". */
{ "Sanskrit", "sa" },
{ "Scottish", "gd" },
{ "Serbian", "sr" },
{ "Simplified Chinese", "zh_CN" },
{ "Sindhi", "sd" },
{ "Sinhalese", "si" },
{ "Slovak", "sk" },
{ "Slovenian", "sl" },
{ "Somali", "so" },
{ "Spanish", "es" },
{ "Sundanese", "su" },
{ "Swahili", "sw" },
{ "Swedish", "sv" },
{ "Tagalog", "tl" },
{ "Tajik", "tg" },
{ "Tajiki", "tg" },
{ "Tamil", "ta" },
{ "Tatar", "tt" },
{ "Telugu", "te" },
{ "Thai", "th" },
{ "Tibetan", "bo" },
{ "Tigrinya", "ti" },
{ "Tongan", "to" },
{ "Traditional Chinese", "zh_TW" },
{ "Turkish", "tr" },
{ "Turkmen", "tk" },
{ "Uighur", "ug" },
{ "Ukrainian", "uk" },
{ "Urdu", "ur" },
{ "Uzbek", "uz" },
{ "Vietnamese", "vi" },
{ "Welsh", "cy" },
{ "Yiddish", "yi" }
};
/* Convert new-style locale names with language tags (ISO 639 and ISO 15924)
to Unix (ISO 639 and ISO 3166) names. */
typedef struct { const char langtag[7+1]; const char unixy[12+1]; }
langtag_entry;
static const langtag_entry langtag_table[] = {
/* MacOS X has "az-Arab", "az-Cyrl", "az-Latn".
The default script for az on Unix is Latin. */
{ "az-Latn", "az" },
/* MacOS X has "ga-dots". Does not yet exist on Unix. */
{ "ga-dots", "ga" },
/* MacOS X has "kk-Cyrl". Does not yet exist on Unix. */
/* MacOS X has "mn-Cyrl", "mn-Mong".
The default script for mn on Unix is Cyrillic. */
{ "mn-Cyrl", "mn" },
/* MacOS X has "ms-Arab", "ms-Latn".
The default script for ms on Unix is Latin. */
{ "ms-Latn", "ms" },
/* MacOS X has "tg-Cyrl".
The default script for tg on Unix is Cyrillic. */
{ "tg-Cyrl", "tg" },
/* MacOS X has "tk-Cyrl". Does not yet exist on Unix. */
/* MacOS X has "tt-Cyrl".
The default script for tt on Unix is Cyrillic. */
{ "tt-Cyrl", "tt" },
/* MacOS X has "zh-Hans", "zh-Hant".
Country codes are used to distinguish these on Unix. */
{ "zh-Hans", "zh_CN" },
{ "zh-Hant", "zh_TW" }
};
/* Convert script names (ISO 15924) to Unix conventions.
See http://www.unicode.org/iso15924/iso15924-codes.html */
typedef struct { const char script[4+1]; const char unixy[9+1]; }
script_entry;
static const script_entry script_table[] = {
{ "Arab", "arabic" },
{ "Cyrl", "cyrillic" },
{ "Mong", "mongolian" }
};
/* Step 1: Convert using legacy_table. */
if (name[0] >= 'A' && name[0] <= 'Z')
{
unsigned int i1, i2;
i1 = 0;
i2 = sizeof (legacy_table) / sizeof (legacy_entry);
while (i2 - i1 > 1)
{
/* At this point we know that if name occurs in legacy_table,
its index must be >= i1 and < i2. */
unsigned int i = (i1 + i2) >> 1;
const legacy_entry *p = &legacy_table[i];
if (strcmp (name, p->legacy) < 0)
i2 = i;
else
i1 = i;
}
if (strcmp (name, legacy_table[i1].legacy) == 0)
{
strcpy (name, legacy_table[i1].unixy);
return;
}
}
/* Step 2: Convert using langtag_table and script_table. */
if (strlen (name) == 7 && name[2] == '-')
{
unsigned int i1, i2;
i1 = 0;
i2 = sizeof (langtag_table) / sizeof (langtag_entry);
while (i2 - i1 > 1)
{
/* At this point we know that if name occurs in langtag_table,
its index must be >= i1 and < i2. */
unsigned int i = (i1 + i2) >> 1;
const langtag_entry *p = &langtag_table[i];
if (strcmp (name, p->langtag) < 0)
i2 = i;
else
i1 = i;
}
if (strcmp (name, langtag_table[i1].langtag) == 0)
{
strcpy (name, langtag_table[i1].unixy);
return;
}
i1 = 0;
i2 = sizeof (script_table) / sizeof (script_entry);
while (i2 - i1 > 1)
{
/* At this point we know that if (name + 3) occurs in script_table,
its index must be >= i1 and < i2. */
unsigned int i = (i1 + i2) >> 1;
const script_entry *p = &script_table[i];
if (strcmp (name + 3, p->script) < 0)
i2 = i;
else
i1 = i;
}
if (strcmp (name + 3, script_table[i1].script) == 0)
{
name[2] = '@';
strcpy (name + 3, script_table[i1].unixy);
return;
}
}
/* Step 3: Convert new-style dash to Unix underscore. */
{
char *p;
for (p = name; *p != '\0'; p++)
if (*p == '-')
*p = '_';
}
}
#endif
/* XPG3 defines the result of 'setlocale (category, NULL)' as: /* XPG3 defines the result of 'setlocale (category, NULL)' as:
"Directs 'setlocale()' to query 'category' and return the current "Directs 'setlocale()' to query 'category' and return the current
setting of 'local'." setting of 'local'."
@ -700,60 +984,104 @@
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 (int category, const char *categoryname) _nl_locale_name_posix (int category, const char *categoryname)
{ {
const char *retval;
#ifndef WIN32
/* Use the POSIX methods of looking to 'LC_ALL', 'LC_xxx', and 'LANG'. /* Use the POSIX methods of looking to 'LC_ALL', 'LC_xxx', and 'LANG'.
On some systems this can be done by the 'setlocale' function itself. */ On some systems this can be done by the 'setlocale' function itself. */
# if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL #if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL
retval = setlocale (category, NULL); return setlocale (category, NULL);
# else #else
/* Setting of LC_ALL overwrites all other. */ const char *retval;
/* Setting of LC_ALL overrides all other. */
retval = getenv ("LC_ALL"); retval = getenv ("LC_ALL");
if (retval == NULL || retval[0] == '\0') if (retval != NULL && retval[0] != '\0')
{ return retval;
/* Next comes the name of the desired category. */ /* Next comes the name of the desired category. */
retval = getenv (categoryname); retval = getenv (categoryname);
if (retval == NULL || retval[0] == '\0') if (retval != NULL && retval[0] != '\0')
{ return retval;
/* Last possibility is the LANG environment variable. */ /* Last possibility is the LANG environment variable. */
retval = getenv ("LANG"); retval = getenv ("LANG");
if (retval == NULL || retval[0] == '\0') if (retval != NULL && retval[0] != '\0')
/* We use C as the default domain. POSIX says this is
implementation defined. */
retval = "C";
}
}
# endif
return retval; return retval;
#else /* WIN32 */ return NULL;
#endif
}
const char *
_nl_locale_name_default (void)
{
/* POSIX:2001 says:
"All implementations shall define a locale as the default locale, to be
invoked when no environment variables are set, or set to the empty
string. This default locale can be the POSIX locale or any other
implementation-defined locale. Some implementations may provide
facilities for local installation administrators to set the default
locale, customizing it for each location. POSIX:2001 does not require
such a facility. */
#if !(HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE || defined(WIN32_NATIVE))
/* The system does not have a way of setting the locale, other than the
POSIX specified environment variables. We use C as default locale. */
return "C";
#else
/* Return an XPG style locale name language[_territory][@modifier]. /* Return an XPG style locale name language[_territory][@modifier].
Don't even bother determining the codeset; it's not useful in this Don't even bother determining the codeset; it's not useful in this
context, because message catalogs are not specific to a single context, because message catalogs are not specific to a single
codeset. */ codeset. */
# if HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE
/* MacOS X 10.2 or newer */
{
/* Cache the locale name, since CoreFoundation calls are expensive. */
static const char *cached_localename;
if (cached_localename == NULL)
{
char namebuf[256];
# if HAVE_CFLOCALECOPYCURRENT /* MacOS X 10.3 or newer */
CFLocaleRef locale = CFLocaleCopyCurrent ();
CFStringRef name = CFLocaleGetIdentifier (locale);
if (CFStringGetCString (name, namebuf, sizeof(namebuf),
kCFStringEncodingASCII))
{
_nl_locale_name_canonicalize (namebuf);
cached_localename = strdup (namebuf);
}
CFRelease (locale);
# elif HAVE_CFPREFERENCESCOPYAPPVALUE /* MacOS X 10.2 or newer */
CFTypeRef value =
CFPreferencesCopyAppValue (CFSTR ("AppleLocale"),
kCFPreferencesCurrentApplication);
if (value != NULL
&& CFGetTypeID (value) == CFStringGetTypeID ()
&& CFStringGetCString ((CFStringRef)value, namebuf, sizeof(namebuf),
kCFStringEncodingASCII))
{
_nl_locale_name_canonicalize (namebuf);
cached_localename = strdup (namebuf);
}
# endif
if (cached_localename == NULL)
cached_localename = "C";
}
return cached_localename;
}
# endif
# if defined(WIN32_NATIVE) /* WIN32, not Cygwin */
{
LCID lcid; LCID lcid;
LANGID langid; LANGID langid;
int primary, sub; int primary, sub;
/* Let the user override the system settings through environment
variables, as on POSIX systems. */
retval = getenv ("LC_ALL");
if (retval != NULL && retval[0] != '\0')
return retval;
retval = getenv (categoryname);
if (retval != NULL && retval[0] != '\0')
return retval;
retval = getenv ("LANG");
if (retval != NULL && retval[0] != '\0')
return retval;
/* Use native Win32 API locale ID. */ /* Use native Win32 API locale ID. */
lcid = GetThreadLocale (); lcid = GetThreadLocale ();
@ -804,6 +1132,10 @@ _nl_locale_name (int category, const char *categoryname)
} }
return "az"; return "az";
case LANG_BASQUE: case LANG_BASQUE:
switch (sub)
{
case SUBLANG_DEFAULT: return "eu_ES";
}
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: case LANG_BENGALI:
@ -986,6 +1318,10 @@ _nl_locale_name (int category, const char *categoryname)
return "mni_IN"; return "mni_IN";
case LANG_MARATHI: return "mr_IN"; case LANG_MARATHI: return "mr_IN";
case LANG_MONGOLIAN: case LANG_MONGOLIAN:
switch (sub)
{
case SUBLANG_DEFAULT: return "mn_MN";
}
return "mn"; /* Ambiguous: could be "mn_CN" or "mn_MN". */ return "mn"; /* Ambiguous: could be "mn_CN" or "mn_MN". */
case LANG_NEPALI: case LANG_NEPALI:
switch (sub) switch (sub)
@ -997,7 +1333,7 @@ _nl_locale_name (int category, const char *categoryname)
case LANG_NORWEGIAN: case LANG_NORWEGIAN:
switch (sub) switch (sub)
{ {
case SUBLANG_NORWEGIAN_BOKMAL: return "no_NO"; case SUBLANG_NORWEGIAN_BOKMAL: return "nb_NO";
case SUBLANG_NORWEGIAN_NYNORSK: return "nn_NO"; case SUBLANG_NORWEGIAN_NYNORSK: return "nn_NO";
} }
return "no"; return "no";
@ -1032,6 +1368,10 @@ _nl_locale_name (int category, const char *categoryname)
} }
return "ro"; return "ro";
case LANG_RUSSIAN: case LANG_RUSSIAN:
switch (sub)
{
case SUBLANG_DEFAULT: return "ru_RU";
}
return "ru"; /* Ambiguous: could be "ru_RU" or "ru_UA" or "ru_MD". */ return "ru"; /* Ambiguous: could be "ru_RU" or "ru_UA" or "ru_MD". */
case LANG_SAAMI: /* actually Northern 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";
@ -1096,6 +1436,10 @@ _nl_locale_name (int category, const char *categoryname)
} }
return "ber_MA"; return "ber_MA";
case LANG_TAMIL: case LANG_TAMIL:
switch (sub)
{
case SUBLANG_DEFAULT: return "ta_IN";
}
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";
@ -1137,6 +1481,19 @@ _nl_locale_name (int category, const char *categoryname)
case LANG_ZULU: return "zu_ZA"; case LANG_ZULU: return "zu_ZA";
default: return "C"; default: return "C";
} }
}
# endif
#endif #endif
} }
const char *
_nl_locale_name (int category, const char *categoryname)
{
const char *retval;
retval = _nl_locale_name_posix (category, categoryname);
if (retval != NULL)
return retval;
return _nl_locale_name_default ();
}

View File

@ -1,5 +1,5 @@
/* Log file output. /* Log file output.
Copyright (C) 2003 Free Software Foundation, Inc. Copyright (C) 2003, 2005 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
@ -13,7 +13,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
/* Written by Bruno Haible <bruno@clisp.org>. */ /* Written by Bruno Haible <bruno@clisp.org>. */
@ -26,6 +26,13 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
/* Handle multi-threaded applications. */
#ifdef _LIBC
# include <bits/libc-lock.h>
#else
# include "lock.h"
#endif
/* 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 (FILE *stream, const char *str) print_escaped (FILE *stream, const char *str)
@ -48,13 +55,14 @@ print_escaped (FILE *stream, const char *str)
putc ('"', stream); putc ('"', stream);
} }
/* Add to the log file an entry denoting a failed translation. */ static char *last_logfilename = NULL;
void static FILE *last_logfile = NULL;
_nl_log_untranslated (const char *logfilename, const char *domainname, __libc_lock_define_initialized (static, lock)
static inline void
_nl_log_untranslated_locked (const char *logfilename, const char *domainname,
const char *msgid1, const char *msgid2, int plural) const char *msgid1, const char *msgid2, int plural)
{ {
static char *last_logfilename = NULL;
static FILE *last_logfile = NULL;
FILE *logfile; FILE *logfile;
/* Can we reuse the last opened logfile? */ /* Can we reuse the last opened logfile? */
@ -96,3 +104,13 @@ _nl_log_untranslated (const char *logfilename, const char *domainname,
fprintf (logfile, "\nmsgstr \"\"\n"); fprintf (logfile, "\nmsgstr \"\"\n");
putc ('\n', logfile); putc ('\n', logfile);
} }
/* Add to the log file an entry denoting a failed translation. */
void
_nl_log_untranslated (const char *logfilename, const char *domainname,
const char *msgid1, const char *msgid2, int plural)
{
__libc_lock_lock (lock);
_nl_log_untranslated_locked (logfilename, domainname, msgid1, msgid2, plural);
__libc_lock_unlock (lock);
}

View File

@ -13,7 +13,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H

View File

@ -13,7 +13,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#define OS2_AWARE #define OS2_AWARE

View File

@ -14,7 +14,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
/* When included from os2compat.h we need all the original definitions */ /* When included from os2compat.h we need all the original definitions */

View File

@ -1,5 +1,5 @@
/* OS dependent parts of libintl. /* OS dependent parts of libintl.
Copyright (C) 2001-2002 Free Software Foundation, Inc. Copyright (C) 2001-2002, 2006 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
@ -13,10 +13,12 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#if defined __EMX__ #if defined __CYGWIN__
# include "intl-exports.c"
#elif defined __EMX__
# include "os2compat.c" # include "os2compat.c"
#else #else
/* Avoid AIX compiler warning. */ /* Avoid AIX compiler warning. */

View File

@ -1,5 +1,5 @@
/* Expression parsing for plural form selection. /* Expression parsing for plural form selection.
Copyright (C) 2000-2001, 2003 Free Software Foundation, Inc. Copyright (C) 2000-2001, 2003, 2005 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
@ -14,7 +14,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
@ -27,7 +27,7 @@
#include "plural-exp.h" #include "plural-exp.h"
#if (defined __GNUC__ && !defined __APPLE_CC__) \ #if (defined __GNUC__ && !(__APPLE_CC__ > 1)) \
|| (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
/* These structs are the constant expression for the germanic plural /* These structs are the constant expression for the germanic plural

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-2003 Free Software Foundation, Inc. Copyright (C) 2000-2003, 2005 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
@ -14,7 +14,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifndef _PLURAL_EXP_H #ifndef _PLURAL_EXP_H
@ -110,7 +110,7 @@ extern void EXTRACT_PLURAL_EXPRESSION (const char *nullentry,
unsigned long int *npluralsp) unsigned long int *npluralsp)
internal_function; internal_function;
#if !defined (_LIBC) && !defined (IN_LIBINTL) #if !defined (_LIBC) && !defined (IN_LIBINTL) && !defined (IN_LIBGLOCALE)
extern unsigned long int plural_eval (struct expression *pexp, extern unsigned long int plural_eval (struct expression *pexp,
unsigned long int n); unsigned long int n);
#endif #endif

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, 2003 Free Software Foundation, Inc. Copyright (C) 2000-2001, 2003, 2005 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
@ -34,13 +34,14 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
/* The bison generated parser uses alloca. AIX 3 forces us to put this /* For bison < 2.0, the bison generated parser uses alloca. AIX 3 forces us
declaration at the beginning of the file. The declaration in bison's to put this declaration at the beginning of the file. The declaration in
skeleton file comes too late. This must come before <config.h> bison's skeleton file comes too late. This must come before <config.h>
because <config.h> may include arbitrary system headers. */ because <config.h> may include arbitrary system headers.
This can go away once the AM_INTL_SUBDIR macro requires bison >= 2.0. */
#if defined _AIX && !defined __GNUC__ #if defined _AIX && !defined __GNUC__
#pragma alloca #pragma alloca
#endif #endif
@ -51,6 +52,7 @@
#include <stddef.h> #include <stddef.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h>
#include "plural-exp.h" #include "plural-exp.h"
/* The main function generated by the parser is called __gettextparse, /* The main function generated by the parser is called __gettextparse,
@ -62,7 +64,7 @@
#define YYLEX_PARAM &((struct parse_args *) arg)->cp #define YYLEX_PARAM &((struct parse_args *) arg)->cp
#define YYPARSE_PARAM arg #define YYPARSE_PARAM arg
#line 49 "plural.y" #line 51 "plural.y"
#ifndef YYSTYPE #ifndef YYSTYPE
typedef union { typedef union {
unsigned long int num; unsigned long int num;
@ -72,7 +74,7 @@ typedef union {
# define YYSTYPE yystype # define YYSTYPE yystype
# define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_TRIVIAL 1
#endif #endif
#line 55 "plural.y" #line 57 "plural.y"
/* Prototypes for local functions. */ /* Prototypes for local functions. */
static int yylex (YYSTYPE *lval, const char **pexp); static int yylex (YYSTYPE *lval, const char **pexp);
@ -212,8 +214,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, 150, 158, 162, 166, 170, 174, 178, 182, 186, 0, 152, 160, 164, 168, 172, 176, 180, 184, 188,
190, 194, 199 192, 196, 201
}; };
#endif #endif
@ -296,7 +298,7 @@ static const short yycheck[] =
#define YYPURE 1 #define YYPURE 1
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
#line 3 "/usr/local/share/bison/bison.simple" #line 3 "bison.simple"
/* Skeleton output parser for bison, /* Skeleton output parser for bison,
@ -609,7 +611,7 @@ yystpcpy (yydest, yysrc)
# endif # endif
#endif #endif
#line 315 "/usr/local/share/bison/bison.simple" #line 315 "bison.simple"
/* The user can define YYPARSE_PARAM as the name of an argument to be passed /* The user can define YYPARSE_PARAM as the name of an argument to be passed
@ -1003,7 +1005,7 @@ yyreduce:
switch (yyn) { switch (yyn) {
case 1: case 1:
#line 151 "plural.y" #line 153 "plural.y"
{ {
if (yyvsp[0].exp == NULL) if (yyvsp[0].exp == NULL)
YYABORT; YYABORT;
@ -1011,75 +1013,75 @@ case 1:
} }
break; break;
case 2: case 2:
#line 159 "plural.y" #line 161 "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 163 "plural.y" #line 165 "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 167 "plural.y" #line 169 "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 171 "plural.y" #line 173 "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 175 "plural.y" #line 177 "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 179 "plural.y" #line 181 "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 183 "plural.y" #line 185 "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 187 "plural.y" #line 189 "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 191 "plural.y" #line 193 "plural.y"
{ {
yyval.exp = new_exp_0 (var); yyval.exp = new_exp_0 (var);
} }
break; break;
case 11: case 11:
#line 195 "plural.y" #line 197 "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 200 "plural.y" #line 202 "plural.y"
{ {
yyval.exp = yyvsp[-1].exp; yyval.exp = yyvsp[-1].exp;
} }
break; break;
} }
#line 705 "/usr/local/share/bison/bison.simple" #line 705 "bison.simple"
yyvsp -= yylen; yyvsp -= yylen;
@ -1310,7 +1312,7 @@ yyreturn:
#endif #endif
return yyresult; return yyresult;
} }
#line 205 "plural.y" #line 207 "plural.y"
void void

View File

@ -1,6 +1,6 @@
%{ %{
/* Expression parsing for plural form selection. /* Expression parsing for plural form selection.
Copyright (C) 2000-2001, 2003 Free Software Foundation, Inc. Copyright (C) 2000-2001, 2003, 2005 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
@ -15,13 +15,14 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
/* The bison generated parser uses alloca. AIX 3 forces us to put this /* For bison < 2.0, the bison generated parser uses alloca. AIX 3 forces us
declaration at the beginning of the file. The declaration in bison's to put this declaration at the beginning of the file. The declaration in
skeleton file comes too late. This must come before <config.h> bison's skeleton file comes too late. This must come before <config.h>
because <config.h> may include arbitrary system headers. */ because <config.h> may include arbitrary system headers.
This can go away once the AM_INTL_SUBDIR macro requires bison >= 2.0. */
#if defined _AIX && !defined __GNUC__ #if defined _AIX && !defined __GNUC__
#pragma alloca #pragma alloca
#endif #endif
@ -32,6 +33,7 @@
#include <stddef.h> #include <stddef.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h>
#include "plural-exp.h" #include "plural-exp.h"
/* The main function generated by the parser is called __gettextparse, /* The main function generated by the parser is called __gettextparse,

View File

@ -1,5 +1,5 @@
/* Decomposed printf argument list. /* Decomposed printf argument list.
Copyright (C) 1999, 2002-2003 Free Software Foundation, Inc. Copyright (C) 1999, 2002-2003, 2005-2006 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
@ -13,7 +13,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
@ -80,15 +80,40 @@ printf_fetchargs (va_list args, arguments *a)
break; break;
#ifdef HAVE_WINT_T #ifdef HAVE_WINT_T
case TYPE_WIDE_CHAR: case TYPE_WIDE_CHAR:
ap->a.a_wide_char = va_arg (args, wint_t); /* Although ISO C 99 7.24.1.(2) says that wint_t is "unchanged by
default argument promotions", this is not the case in mingw32,
where wint_t is 'unsigned short'. */
ap->a.a_wide_char =
(sizeof (wint_t) < sizeof (int)
? va_arg (args, int)
: va_arg (args, wint_t));
break; break;
#endif #endif
case TYPE_STRING: case TYPE_STRING:
ap->a.a_string = va_arg (args, const char *); ap->a.a_string = va_arg (args, const char *);
/* A null pointer is an invalid argument for "%s", but in practice
it occurs quite frequently in printf statements that produce
debug output. Use a fallback in this case. */
if (ap->a.a_string == NULL)
ap->a.a_string = "(NULL)";
break; break;
#ifdef HAVE_WCHAR_T #ifdef HAVE_WCHAR_T
case TYPE_WIDE_STRING: case TYPE_WIDE_STRING:
ap->a.a_wide_string = va_arg (args, const wchar_t *); ap->a.a_wide_string = va_arg (args, const wchar_t *);
/* A null pointer is an invalid argument for "%ls", but in practice
it occurs quite frequently in printf statements that produce
debug output. Use a fallback in this case. */
if (ap->a.a_wide_string == NULL)
{
static const wchar_t wide_null_string[] =
{
(wchar_t)'(',
(wchar_t)'N', (wchar_t)'U', (wchar_t)'L', (wchar_t)'L',
(wchar_t)')',
(wchar_t)0
};
ap->a.a_wide_string = wide_null_string;
}
break; break;
#endif #endif
case TYPE_POINTER: case TYPE_POINTER:

View File

@ -13,7 +13,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifndef _PRINTF_ARGS_H #ifndef _PRINTF_ARGS_H

View File

@ -13,7 +13,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H

View File

@ -13,7 +13,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifndef _PRINTF_PARSE_H #ifndef _PRINTF_PARSE_H

View File

@ -1,5 +1,5 @@
/* Formatted output to strings, using POSIX/XSI format strings with positions. /* Formatted output to strings, using POSIX/XSI format strings with positions.
Copyright (C) 2003 Free Software Foundation, Inc. Copyright (C) 2003, 2006 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2003. Written by Bruno Haible <bruno@clisp.org>, 2003.
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
@ -14,7 +14,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
@ -61,6 +61,14 @@ char *alloca ();
#define STATIC static #define STATIC static
/* This needs to be consistent with libgnuintl.h.in. */
#if defined __NetBSD__ || defined __CYGWIN__ || defined __MINGW32__
/* Don't break __attribute__((format(printf,M,N))).
This redefinition is only possible because the libc in NetBSD, Cygwin,
mingw does not have a function __printf__. */
# define libintl_printf __printf__
#endif
/* Define auxiliary functions declared in "printf-args.h". */ /* Define auxiliary functions declared in "printf-args.h". */
#include "printf-args.c" #include "printf-args.c"

View File

@ -14,7 +14,7 @@
# #
# You should have received a copy of the GNU Library General Public # You should have received a copy of the GNU Library General Public
# License along with this program; if not, write to the Free Software # License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
# USA. # USA.
# #
# Written by Bruno Haible <haible@clisp.cons.org>. # Written by Bruno Haible <haible@clisp.cons.org>.

View File

@ -14,7 +14,7 @@
# #
# You should have received a copy of the GNU Library General Public # You should have received a copy of the GNU Library General Public
# License along with this program; if not, write to the Free Software # License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
# USA. # USA.
# #
# Written by Bruno Haible <haible@clisp.cons.org>. # Written by Bruno Haible <haible@clisp.cons.org>.

View File

@ -1,5 +1,5 @@
/* Provide relocatable packages. /* Provide relocatable packages.
Copyright (C) 2003 Free Software Foundation, Inc. Copyright (C) 2003-2005 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2003. Written by Bruno Haible <bruno@clisp.org>, 2003.
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
@ -14,7 +14,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
@ -45,7 +45,7 @@
# include "xalloc.h" # include "xalloc.h"
#endif #endif
#if defined _WIN32 || defined __WIN32__ #if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__
# define WIN32_LEAN_AND_MEAN # define WIN32_LEAN_AND_MEAN
# include <windows.h> # include <windows.h>
#endif #endif
@ -72,20 +72,20 @@
ISSLASH(C) tests whether C is a directory separator character. ISSLASH(C) tests whether C is a directory separator character.
IS_PATH_WITH_DIR(P) tests whether P contains a directory specification. IS_PATH_WITH_DIR(P) tests whether P contains a directory specification.
*/ */
#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__ #if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
/* Win32, OS/2, DOS */ /* Win32, Cygwin, OS/2, DOS */
# define ISSLASH(C) ((C) == '/' || (C) == '\\') # define ISSLASH(C) ((C) == '/' || (C) == '\\')
# define HAS_DEVICE(P) \ # define HAS_DEVICE(P) \
((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \ ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \
&& (P)[1] == ':') && (P)[1] == ':')
# define IS_PATH_WITH_DIR(P) \ # define IS_PATH_WITH_DIR(P) \
(strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P)) (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P))
# define FILESYSTEM_PREFIX_LEN(P) (HAS_DEVICE (P) ? 2 : 0) # define FILE_SYSTEM_PREFIX_LEN(P) (HAS_DEVICE (P) ? 2 : 0)
#else #else
/* Unix */ /* Unix */
# define ISSLASH(C) ((C) == '/') # define ISSLASH(C) ((C) == '/')
# define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL) # define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL)
# define FILESYSTEM_PREFIX_LEN(P) 0 # define FILE_SYSTEM_PREFIX_LEN(P) 0
#endif #endif
/* Original installation prefix. */ /* Original installation prefix. */
@ -189,7 +189,7 @@ compute_curr_prefix (const char *orig_installprefix,
/* Determine the current installation directory. */ /* Determine the current installation directory. */
{ {
const char *p_base = curr_pathname + FILESYSTEM_PREFIX_LEN (curr_pathname); const char *p_base = curr_pathname + FILE_SYSTEM_PREFIX_LEN (curr_pathname);
const char *p = curr_pathname + strlen (curr_pathname); const char *p = curr_pathname + strlen (curr_pathname);
char *q; char *q;
@ -216,7 +216,7 @@ compute_curr_prefix (const char *orig_installprefix,
const char *rp = rel_installdir + strlen (rel_installdir); const char *rp = rel_installdir + strlen (rel_installdir);
const char *cp = curr_installdir + strlen (curr_installdir); const char *cp = curr_installdir + strlen (curr_installdir);
const char *cp_base = const char *cp_base =
curr_installdir + FILESYSTEM_PREFIX_LEN (curr_installdir); curr_installdir + FILE_SYSTEM_PREFIX_LEN (curr_installdir);
while (rp > rel_installdir && cp > cp_base) while (rp > rel_installdir && cp > cp_base)
{ {
@ -234,8 +234,11 @@ compute_curr_prefix (const char *orig_installprefix,
same = true; same = true;
break; break;
} }
#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__ /* Do case-insensitive comparison if the filesystem is always or
/* Win32, OS/2, DOS - case insignificant filesystem */ often case-insensitive. It's better to accept the comparison
if the difference is only in case, rather than to fail. */
#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
/* Win32, Cygwin, OS/2, DOS - case insignificant filesystem */
if ((*rpi >= 'a' && *rpi <= 'z' ? *rpi - 'a' + 'A' : *rpi) if ((*rpi >= 'a' && *rpi <= 'z' ? *rpi - 'a' + 'A' : *rpi)
!= (*cpi >= 'a' && *cpi <= 'z' ? *cpi - 'a' + 'A' : *cpi)) != (*cpi >= 'a' && *cpi <= 'z' ? *cpi - 'a' + 'A' : *cpi))
break; break;
@ -280,7 +283,7 @@ compute_curr_prefix (const char *orig_installprefix,
/* Full pathname of shared library, or NULL. */ /* Full pathname of shared library, or NULL. */
static char *shared_library_fullname; static char *shared_library_fullname;
#if defined _WIN32 || defined __WIN32__ #if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__
/* Determine the full pathname of the shared library when it is loaded. */ /* Determine the full pathname of the shared library when it is loaded. */
@ -302,13 +305,31 @@ DllMain (HINSTANCE module_handle, DWORD event, LPVOID reserved)
/* Shouldn't happen. */ /* Shouldn't happen. */
return FALSE; return FALSE;
{
#if defined __CYGWIN__
/* On Cygwin, we need to convert paths coming from Win32 system calls
to the Unix-like slashified notation. */
static char location_as_posix_path[2 * MAX_PATH];
/* There's no error return defined for cygwin_conv_to_posix_path.
See cygwin-api/func-cygwin-conv-to-posix-path.html.
Does it overflow the buffer of expected size MAX_PATH or does it
truncate the path? I don't know. Let's catch both. */
cygwin_conv_to_posix_path (location, location_as_posix_path);
location_as_posix_path[MAX_PATH - 1] = '\0';
if (strlen (location_as_posix_path) >= MAX_PATH - 1)
/* A sign of buffer overflow or path truncation. */
return FALSE;
shared_library_fullname = strdup (location_as_posix_path);
#else
shared_library_fullname = strdup (location); shared_library_fullname = strdup (location);
#endif
}
} }
return TRUE; return TRUE;
} }
#else /* Unix */ #else /* Unix except Cygwin */
static void static void
find_shared_library_fullname () find_shared_library_fullname ()
@ -359,15 +380,15 @@ find_shared_library_fullname ()
#endif #endif
} }
#endif /* WIN32 / Unix */ #endif /* (WIN32 or Cygwin) / (Unix except Cygwin) */
/* Return the full pathname of the current shared library. /* Return the full pathname of the current shared library.
Return NULL if unknown. Return NULL if unknown.
Guaranteed to work only on Linux and Woe32. */ Guaranteed to work only on Linux, Cygwin and Woe32. */
static char * static char *
get_shared_library_fullname () get_shared_library_fullname ()
{ {
#if !(defined _WIN32 || defined __WIN32__) #if !(defined _WIN32 || defined __WIN32__ || defined __CYGWIN__)
static bool tried_find_shared_library_fullname; static bool tried_find_shared_library_fullname;
if (!tried_find_shared_library_fullname) if (!tried_find_shared_library_fullname)
{ {

View File

@ -1,5 +1,5 @@
/* Provide relocatable packages. /* Provide relocatable packages.
Copyright (C) 2003 Free Software Foundation, Inc. Copyright (C) 2003, 2005 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2003. Written by Bruno Haible <bruno@clisp.org>, 2003.
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
@ -14,7 +14,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifndef _RELOCATABLE_H #ifndef _RELOCATABLE_H
@ -31,7 +31,9 @@ extern "C" {
/* When building a DLL, we must export some functions. Note that because /* When building a DLL, we must export some functions. Note that because
this is a private .h file, we don't need to use __declspec(dllimport) this is a private .h file, we don't need to use __declspec(dllimport)
in any case. */ in any case. */
#if defined _MSC_VER && BUILDING_DLL #if HAVE_VISIBILITY && BUILDING_DLL
# define RELOCATABLE_DLL_EXPORTED __attribute__((__visibility__("default")))
#elif defined _MSC_VER && BUILDING_DLL
# define RELOCATABLE_DLL_EXPORTED __declspec(dllexport) # define RELOCATABLE_DLL_EXPORTED __declspec(dllexport)
#else #else
# define RELOCATABLE_DLL_EXPORTED # define RELOCATABLE_DLL_EXPORTED

View File

@ -1,5 +1,5 @@
/* Implementation of the textdomain(3) function. /* Implementation of the textdomain(3) function.
Copyright (C) 1995-1998, 2000-2003 Free Software Foundation, Inc. Copyright (C) 1995-1998, 2000-2003, 2005-2006 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
@ -13,7 +13,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
@ -23,21 +23,21 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include "gettextP.h"
#ifdef _LIBC #ifdef _LIBC
# include <libintl.h> # include <libintl.h>
#else #else
# include "libgnuintl.h" # include "libgnuintl.h"
#endif #endif
#include "gettextP.h"
/* Handle multi-threaded applications. */
#ifdef _LIBC #ifdef _LIBC
/* We have to handle multi-threaded applications. */
# include <bits/libc-lock.h> # include <bits/libc-lock.h>
# define gl_rwlock_define __libc_rwlock_define
# define gl_rwlock_wrlock __libc_rwlock_wrlock
# define gl_rwlock_unlock __libc_rwlock_unlock
#else #else
/* Provide dummy implementation if this is outside glibc. */ # include "lock.h"
# define __libc_rwlock_define(CLASS, NAME)
# define __libc_rwlock_wrlock(NAME)
# define __libc_rwlock_unlock(NAME)
#endif #endif
/* The internal variables in the standalone libintl.a must have different /* The internal variables in the standalone libintl.a must have different
@ -71,7 +71,7 @@ extern const char *_nl_current_default_domain attribute_hidden;
#endif #endif
/* Lock variable to protect the global data in the gettext implementation. */ /* Lock variable to protect the global data in the gettext implementation. */
__libc_rwlock_define (extern, _nl_state_lock attribute_hidden) gl_rwlock_define (extern, _nl_state_lock attribute_hidden)
/* Set the current default message catalog to DOMAINNAME. /* Set the current default message catalog to DOMAINNAME.
If DOMAINNAME is null, return the current default. If DOMAINNAME is null, return the current default.
@ -86,7 +86,7 @@ TEXTDOMAIN (const char *domainname)
if (domainname == NULL) if (domainname == NULL)
return (char *) _nl_current_default_domain; return (char *) _nl_current_default_domain;
__libc_rwlock_wrlock (_nl_state_lock); gl_rwlock_wrlock (_nl_state_lock);
old_domain = (char *) _nl_current_default_domain; old_domain = (char *) _nl_current_default_domain;
@ -130,7 +130,7 @@ TEXTDOMAIN (const char *domainname)
free (old_domain); free (old_domain);
} }
__libc_rwlock_unlock (_nl_state_lock); gl_rwlock_unlock (_nl_state_lock);
return new_domain; return new_domain;
} }

View File

@ -1,5 +1,5 @@
/* vsprintf with automatic memory allocation. /* vsprintf with automatic memory allocation.
Copyright (C) 1999, 2002-2003 Free Software Foundation, Inc. Copyright (C) 1999, 2002-2006 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
@ -13,7 +13,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
/* Tell glibc's <stdio.h> to provide a prototype for snprintf(). /* Tell glibc's <stdio.h> to provide a prototype for snprintf().
@ -41,7 +41,7 @@
#include <stdlib.h> /* abort(), malloc(), realloc(), free() */ #include <stdlib.h> /* abort(), malloc(), realloc(), free() */
#include <string.h> /* memcpy(), strlen() */ #include <string.h> /* memcpy(), strlen() */
#include <errno.h> /* errno */ #include <errno.h> /* errno */
#include <limits.h> /* CHAR_BIT */ #include <limits.h> /* CHAR_BIT, INT_MAX */
#include <float.h> /* DBL_MAX_EXP, LDBL_MAX_EXP */ #include <float.h> /* DBL_MAX_EXP, LDBL_MAX_EXP */
#if WIDE_CHAR_VERSION #if WIDE_CHAR_VERSION
# include "wprintf-parse.h" # include "wprintf-parse.h"
@ -52,6 +52,11 @@
/* Checked size_t computations. */ /* Checked size_t computations. */
#include "xsize.h" #include "xsize.h"
/* Some systems, like OSF/1 4.0 and Woe32, don't have EOVERFLOW. */
#ifndef EOVERFLOW
# define EOVERFLOW E2BIG
#endif
#ifdef HAVE_WCHAR_T #ifdef HAVE_WCHAR_T
# ifdef HAVE_WCSLEN # ifdef HAVE_WCSLEN
# define local_wcslen wcslen # define local_wcslen wcslen
@ -316,9 +321,8 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar
const CHAR_T *digitp = dp->precision_start + 1; const CHAR_T *digitp = dp->precision_start + 1;
precision = 0; precision = 0;
do while (digitp != dp->precision_end)
precision = xsum (xtimes (precision, 10), *digitp++ - '0'); precision = xsum (xtimes (precision, 10), *digitp++ - '0');
while (digitp != dp->precision_end);
} }
} }
@ -331,28 +335,28 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar
tmp_length = tmp_length =
(unsigned int) (sizeof (unsigned long long) * CHAR_BIT (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
* 0.30103 /* binary -> decimal */ * 0.30103 /* binary -> decimal */
* 2 /* estimate for FLAG_GROUP */
) )
+ 1 /* turn floor into ceil */ + 1; /* turn floor into ceil */
+ 1; /* account for leading sign */
else else
# endif # endif
if (type == TYPE_LONGINT || type == TYPE_ULONGINT) if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
tmp_length = tmp_length =
(unsigned int) (sizeof (unsigned long) * CHAR_BIT (unsigned int) (sizeof (unsigned long) * CHAR_BIT
* 0.30103 /* binary -> decimal */ * 0.30103 /* binary -> decimal */
* 2 /* estimate for FLAG_GROUP */
) )
+ 1 /* turn floor into ceil */ + 1; /* turn floor into ceil */
+ 1; /* account for leading sign */
else else
tmp_length = tmp_length =
(unsigned int) (sizeof (unsigned int) * CHAR_BIT (unsigned int) (sizeof (unsigned int) * CHAR_BIT
* 0.30103 /* binary -> decimal */ * 0.30103 /* binary -> decimal */
* 2 /* estimate for FLAG_GROUP */
) )
+ 1 /* turn floor into ceil */ + 1; /* turn floor into ceil */
+ 1; /* account for leading sign */ if (tmp_length < precision)
tmp_length = precision;
/* Multiply by 2, as an estimate for FLAG_GROUP. */
tmp_length = xsum (tmp_length, tmp_length);
/* Add 1, to account for a leading sign. */
tmp_length = xsum (tmp_length, 1);
break; break;
case 'o': case 'o':
@ -362,8 +366,7 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar
(unsigned int) (sizeof (unsigned long long) * CHAR_BIT (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
* 0.333334 /* binary -> octal */ * 0.333334 /* binary -> octal */
) )
+ 1 /* turn floor into ceil */ + 1; /* turn floor into ceil */
+ 1; /* account for leading sign */
else else
# endif # endif
if (type == TYPE_LONGINT || type == TYPE_ULONGINT) if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
@ -371,15 +374,17 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar
(unsigned int) (sizeof (unsigned long) * CHAR_BIT (unsigned int) (sizeof (unsigned long) * CHAR_BIT
* 0.333334 /* binary -> octal */ * 0.333334 /* binary -> octal */
) )
+ 1 /* turn floor into ceil */ + 1; /* turn floor into ceil */
+ 1; /* account for leading sign */
else else
tmp_length = tmp_length =
(unsigned int) (sizeof (unsigned int) * CHAR_BIT (unsigned int) (sizeof (unsigned int) * CHAR_BIT
* 0.333334 /* binary -> octal */ * 0.333334 /* binary -> octal */
) )
+ 1 /* turn floor into ceil */ + 1; /* turn floor into ceil */
+ 1; /* account for leading sign */ if (tmp_length < precision)
tmp_length = precision;
/* Add 1, to account for a leading sign. */
tmp_length = xsum (tmp_length, 1);
break; break;
case 'x': case 'X': case 'x': case 'X':
@ -389,8 +394,7 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar
(unsigned int) (sizeof (unsigned long long) * CHAR_BIT (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
* 0.25 /* binary -> hexadecimal */ * 0.25 /* binary -> hexadecimal */
) )
+ 1 /* turn floor into ceil */ + 1; /* turn floor into ceil */
+ 2; /* account for leading sign or alternate form */
else else
# endif # endif
if (type == TYPE_LONGINT || type == TYPE_ULONGINT) if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
@ -398,15 +402,17 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar
(unsigned int) (sizeof (unsigned long) * CHAR_BIT (unsigned int) (sizeof (unsigned long) * CHAR_BIT
* 0.25 /* binary -> hexadecimal */ * 0.25 /* binary -> hexadecimal */
) )
+ 1 /* turn floor into ceil */ + 1; /* turn floor into ceil */
+ 2; /* account for leading sign or alternate form */
else else
tmp_length = tmp_length =
(unsigned int) (sizeof (unsigned int) * CHAR_BIT (unsigned int) (sizeof (unsigned int) * CHAR_BIT
* 0.25 /* binary -> hexadecimal */ * 0.25 /* binary -> hexadecimal */
) )
+ 1 /* turn floor into ceil */ + 1; /* turn floor into ceil */
+ 2; /* account for leading sign or alternate form */ if (tmp_length < precision)
tmp_length = precision;
/* Add 2, to account for a leading sign or alternate form. */
tmp_length = xsum (tmp_length, 2);
break; break;
case 'f': case 'F': case 'f': case 'F':
@ -864,8 +870,19 @@ VASNPRINTF (CHAR_T *resultbuf, size_t *lengthp, const CHAR_T *format, va_list ar
free (buf_malloced); free (buf_malloced);
CLEANUP (); CLEANUP ();
*lengthp = length; *lengthp = length;
if (length > INT_MAX)
goto length_overflow;
return result; return result;
length_overflow:
/* We could produce such a big string, but its length doesn't fit into
an 'int'. POSIX says that snprintf() fails with errno = EOVERFLOW in
this case. */
if (result != resultbuf)
free (result);
errno = EOVERFLOW;
return NULL;
out_of_memory: out_of_memory:
if (!(result == resultbuf || result == NULL)) if (!(result == resultbuf || result == NULL))
free (result); free (result);

View File

@ -1,5 +1,5 @@
/* vsprintf with automatic memory allocation. /* vsprintf with automatic memory allocation.
Copyright (C) 2002-2003 Free Software Foundation, Inc. Copyright (C) 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
@ -13,7 +13,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifndef _VASNPRINTF_H #ifndef _VASNPRINTF_H
@ -48,7 +48,24 @@ extern "C" {
If successful, return the address of the string (this may be = RESULTBUF If successful, return the address of the string (this may be = RESULTBUF
if no dynamic memory allocation was necessary) and set *LENGTHP to the if no dynamic memory allocation was necessary) and set *LENGTHP to the
number of resulting bytes, excluding the trailing NUL. Upon error, set number of resulting bytes, excluding the trailing NUL. Upon error, set
errno and return NULL. */ errno and return NULL.
When dynamic memory allocation occurs, the preallocated buffer is left
alone (with possibly modified contents). This makes it possible to use
a statically allocated or stack-allocated buffer, like this:
char buf[100];
size_t len = sizeof (buf);
char *output = vasnprintf (buf, &len, format, args);
if (output == NULL)
... error handling ...;
else
{
... use the output string ...;
if (output != buf)
free (output);
}
*/
extern char * asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...) extern char * asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...)
__attribute__ ((__format__ (__printf__, 3, 4))); __attribute__ ((__format__ (__printf__, 3, 4)));
extern char * vasnprintf (char *resultbuf, size_t *lengthp, const char *format, va_list args) extern char * vasnprintf (char *resultbuf, size_t *lengthp, const char *format, va_list args)

View File

@ -13,7 +13,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifndef _VASNWPRINTF_H #ifndef _VASNWPRINTF_H

View File

@ -13,7 +13,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifndef _WPRINTF_PARSE_H #ifndef _WPRINTF_PARSE_H

View File

@ -14,7 +14,7 @@
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this program; if not, write to the Free Software License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA. */ USA. */
#ifndef _XSIZE_H #ifndef _XSIZE_H

View File

@ -1,3 +1,7 @@
2006-11-21 Werner Koch <wk@g10code.com>
* curl-shim.c (curl_easy_perform): Made BUFLEN and MAXLNE a size_t.
2006-11-05 David Shaw <dshaw@jabberwocky.com> 2006-11-05 David Shaw <dshaw@jabberwocky.com>
* gpgkeys_hkp.c (curl_mrindex_writer): Revert previous change. * gpgkeys_hkp.c (curl_mrindex_writer): Revert previous change.

View File

@ -217,7 +217,9 @@ curl_easy_perform(CURL *curl)
err = CURLE_HTTP_RETURNED_ERROR; err = CURLE_HTTP_RETURNED_ERROR;
else else
{ {
unsigned int maxlen = 1024, buflen, len; size_t maxlen = 1024;
size_t buflen;
unsigned int len;
char *line = NULL; char *line = NULL;
while ((len = es_read_line (http_get_read_ptr (curl->hd), while ((len = es_read_line (http_get_read_ptr (curl->hd),

View File

@ -1,3 +1,8 @@
2006-11-21 Werner Koch <wk@g10code.com>
* gnupg-pth.m4 (GNUPG_PTH_VERSION_CHECK): Use --all with
pth-config.
2006-11-17 Werner Koch <wk@g10code.com> 2006-11-17 Werner Koch <wk@g10code.com>
* gnupg-pth.m4: Make sure that have_w32_system is set to no by * gnupg-pth.m4: Make sure that have_w32_system is set to no by

View File

@ -1,4 +1,4 @@
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 = glibc2.m4 inttypes-h.m4 lock.m4 visibility.m4 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 += ldap.m4 libcurl.m4 libusb.m4 tar-ustar.m4 readline.m4 EXTRA_DIST += ldap.m4 libcurl.m4 libusb.m4 tar-ustar.m4 readline.m4

View File

@ -1,10 +1,8 @@
# codeset.m4 serial AM1 (gettext-0.10.40) # codeset.m4 serial AM1 (gettext-0.10.40)
dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software; the Free Software Foundation
dnl General Public License. As a special exception to the GNU General dnl gives unlimited permission to copy and/or distribute it,
dnl Public License, this file may be distributed as part of a program dnl with or without modifications, as long as this notice is preserved.
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl From Bruno Haible. dnl From Bruno Haible.

View File

@ -1,10 +1,8 @@
# gettext.m4 serial 28 (gettext-0.13) # gettext.m4 serial 53 (gettext-0.15)
dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. dnl Copyright (C) 1995-2006 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software; the Free Software Foundation
dnl General Public License. As a special exception to the GNU General dnl gives unlimited permission to copy and/or distribute it,
dnl Public License, this file may be distributed as part of a program dnl with or without modifications, as long as this notice is preserved.
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl dnl
dnl This file can can be used in projects which are not available under dnl This file can can be used in projects which are not available under
dnl the GNU General Public License or the GNU Library General Public dnl the GNU General Public License or the GNU Library General Public
@ -17,7 +15,7 @@ dnl They are *not* in the public domain.
dnl Authors: dnl Authors:
dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003. dnl Bruno Haible <haible@clisp.cons.org>, 2000-2005.
dnl Macro to add for using GNU gettext. dnl Macro to add for using GNU gettext.
@ -65,8 +63,8 @@ AC_DEFUN([AM_GNU_GETTEXT],
ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
[errprint([ERROR: invalid second argument to AM_GNU_GETTEXT [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
])])])]) ])])])])
define(gt_included_intl, ifelse([$1], [external], [no], [yes])) define([gt_included_intl], ifelse([$1], [external], [no], [yes]))
define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], [])) define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], []))
AC_REQUIRE([AM_PO_SUBDIRS])dnl AC_REQUIRE([AM_PO_SUBDIRS])dnl
ifelse(gt_included_intl, yes, [ ifelse(gt_included_intl, yes, [
@ -92,8 +90,11 @@ AC_DEFUN([AM_GNU_GETTEXT],
AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
]) ])
dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation.
gt_INTL_MACOSX
dnl Set USE_NLS. dnl Set USE_NLS.
AM_NLS AC_REQUIRE([AM_NLS])
ifelse(gt_included_intl, yes, [ ifelse(gt_included_intl, yes, [
BUILD_INCLUDED_LIBINTL=no BUILD_INCLUDED_LIBINTL=no
@ -129,16 +130,14 @@ AC_DEFUN([AM_GNU_GETTEXT],
AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc, AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
[AC_TRY_LINK([#include <libintl.h> [AC_TRY_LINK([#include <libintl.h>
]ifelse([$2], [need-formatstring-macros], ]ifelse([$2], [need-formatstring-macros],
[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION [[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
#endif #endif
changequote(,)dnl
typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
changequote([,])dnl ]], [])[extern int _nl_msg_cat_cntr;
], [])[extern int _nl_msg_cat_cntr;
extern int *_nl_domain_bindings;], extern int *_nl_domain_bindings;],
[bindtextdomain ("", ""); [bindtextdomain ("", "");
return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings], return * gettext ("")]ifelse([$2], [need-ngettext], [ + * ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings],
gt_cv_func_gnugettext_libc=yes, gt_cv_func_gnugettext_libc=yes,
gt_cv_func_gnugettext_libc=no)]) gt_cv_func_gnugettext_libc=no)])
@ -161,20 +160,18 @@ return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("",
dnl Now see whether libintl exists and does not depend on libiconv. dnl Now see whether libintl exists and does not depend on libiconv.
AC_TRY_LINK([#include <libintl.h> AC_TRY_LINK([#include <libintl.h>
]ifelse([$2], [need-formatstring-macros], ]ifelse([$2], [need-formatstring-macros],
[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION [[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
#endif #endif
changequote(,)dnl
typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
changequote([,])dnl ]], [])[extern int _nl_msg_cat_cntr;
], [])[extern int _nl_msg_cat_cntr;
extern extern
#ifdef __cplusplus #ifdef __cplusplus
"C" "C"
#endif #endif
const char *_nl_expand_alias ();], const char *_nl_expand_alias (const char *);],
[bindtextdomain ("", ""); [bindtextdomain ("", "");
return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)], return * gettext ("")]ifelse([$2], [need-ngettext], [ + * ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias ("")],
gt_cv_func_gnugettext_libintl=yes, gt_cv_func_gnugettext_libintl=yes,
gt_cv_func_gnugettext_libintl=no) gt_cv_func_gnugettext_libintl=no)
dnl Now see whether libintl exists and depends on libiconv. dnl Now see whether libintl exists and depends on libiconv.
@ -182,20 +179,18 @@ return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("",
LIBS="$LIBS $LIBICONV" LIBS="$LIBS $LIBICONV"
AC_TRY_LINK([#include <libintl.h> AC_TRY_LINK([#include <libintl.h>
]ifelse([$2], [need-formatstring-macros], ]ifelse([$2], [need-formatstring-macros],
[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION [[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
#endif #endif
changequote(,)dnl
typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
changequote([,])dnl ]], [])[extern int _nl_msg_cat_cntr;
], [])[extern int _nl_msg_cat_cntr;
extern extern
#ifdef __cplusplus #ifdef __cplusplus
"C" "C"
#endif #endif
const char *_nl_expand_alias ();], const char *_nl_expand_alias (const char *);],
[bindtextdomain ("", ""); [bindtextdomain ("", "");
return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)], return * gettext ("")]ifelse([$2], [need-ngettext], [ + * ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias ("")],
[LIBINTL="$LIBINTL $LIBICONV" [LIBINTL="$LIBINTL $LIBICONV"
LTLIBINTL="$LTLIBINTL $LTLIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV"
gt_cv_func_gnugettext_libintl=yes gt_cv_func_gnugettext_libintl=yes
@ -233,11 +228,12 @@ return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("",
dnl Mark actions used to generate GNU NLS library. dnl Mark actions used to generate GNU NLS library.
BUILD_INCLUDED_LIBINTL=yes BUILD_INCLUDED_LIBINTL=yes
USE_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes
LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV" LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD"
LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV" LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD"
LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
fi fi
CATOBJEXT=
if test "$gt_use_preinstalled_gnugettext" = "yes" \ if test "$gt_use_preinstalled_gnugettext" = "yes" \
|| test "$nls_cv_use_gnu_gettext" = "yes"; then || test "$nls_cv_use_gnu_gettext" = "yes"; then
dnl Mark actions to use GNU gettext tools. dnl Mark actions to use GNU gettext tools.
@ -245,6 +241,15 @@ return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("",
fi fi
]) ])
if test -n "$INTL_MACOSX_LIBS"; then
if test "$gt_use_preinstalled_gnugettext" = "yes" \
|| test "$nls_cv_use_gnu_gettext" = "yes"; then
dnl Some extra flags are needed during linking.
LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
fi
fi
if test "$gt_use_preinstalled_gnugettext" = "yes" \ if test "$gt_use_preinstalled_gnugettext" = "yes" \
|| test "$nls_cv_use_gnu_gettext" = "yes"; then || test "$nls_cv_use_gnu_gettext" = "yes"; then
AC_DEFINE(ENABLE_NLS, 1, AC_DEFINE(ENABLE_NLS, 1,
@ -320,6 +325,7 @@ return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("",
AC_SUBST(GENCAT) AC_SUBST(GENCAT)
dnl For backward compatibility. Some Makefiles may be using this. dnl For backward compatibility. Some Makefiles may be using this.
INTLOBJS=
if test "$USE_INCLUDED_LIBINTL" = yes; then if test "$USE_INCLUDED_LIBINTL" = yes; then
INTLOBJS="\$(GETTOBJS)" INTLOBJS="\$(GETTOBJS)"
fi fi
@ -347,44 +353,31 @@ dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
AC_DEFUN([AM_INTL_SUBDIR], AC_DEFUN([AM_INTL_SUBDIR],
[ [
AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl
AC_REQUIRE([AM_MKINSTALLDIRS])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_CC])dnl
AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl
AC_REQUIRE([gt_GLIBC2])dnl
AC_REQUIRE([AC_PROG_RANLIB])dnl AC_REQUIRE([AC_PROG_RANLIB])dnl
AC_REQUIRE([AC_ISC_POSIX])dnl AC_REQUIRE([gl_VISIBILITY])dnl
AC_REQUIRE([AC_HEADER_STDC])dnl AC_REQUIRE([gt_INTL_SUBDIR_CORE])dnl
AC_REQUIRE([AC_C_CONST])dnl
AC_REQUIRE([bh_C_SIGNED])dnl AC_REQUIRE([bh_C_SIGNED])dnl
AC_REQUIRE([AC_C_INLINE])dnl AC_REQUIRE([gl_AC_TYPE_LONG_LONG])dnl
AC_REQUIRE([AC_TYPE_OFF_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_LONGDOUBLE])dnl
AC_REQUIRE([gt_TYPE_WCHAR_T])dnl AC_REQUIRE([gt_TYPE_WCHAR_T])dnl
AC_REQUIRE([gt_TYPE_WINT_T])dnl AC_REQUIRE([gt_TYPE_WINT_T])dnl
AC_REQUIRE([jm_AC_HEADER_INTTYPES_H]) AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
AC_REQUIRE([jm_AC_HEADER_STDINT_H])
AC_REQUIRE([gt_TYPE_INTMAX_T]) AC_REQUIRE([gt_TYPE_INTMAX_T])
AC_REQUIRE([gt_PRINTF_POSIX]) AC_REQUIRE([gt_PRINTF_POSIX])
AC_REQUIRE([AC_FUNC_ALLOCA])dnl AC_REQUIRE([gl_GLIBC21])dnl
AC_REQUIRE([AC_FUNC_MMAP])dnl
AC_REQUIRE([jm_GLIBC21])dnl
AC_REQUIRE([gt_INTDIV0])dnl
AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl
AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl
AC_REQUIRE([gt_INTTYPES_PRI])dnl
AC_REQUIRE([gl_XSIZE])dnl AC_REQUIRE([gl_XSIZE])dnl
AC_REQUIRE([gt_INTL_MACOSX])dnl
AC_CHECK_TYPE([ptrdiff_t], , AC_CHECK_TYPE([ptrdiff_t], ,
[AC_DEFINE([ptrdiff_t], [long], [AC_DEFINE([ptrdiff_t], [long],
[Define as the type of the result of subtracting two pointers, if the system doesn't define it.]) [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([stddef.h stdlib.h string.h])
stdlib.h string.h unistd.h sys/param.h]) AC_CHECK_FUNCS([asprintf fwprintf putenv setenv setlocale snprintf wcslen])
AC_CHECK_FUNCS([asprintf fwprintf getcwd getegid geteuid getgid getuid \
mempcpy munmap putenv setenv setlocale snprintf stpcpy strcasecmp strdup \
strtoul tsearch wcslen __argz_count __argz_stringify __argz_next \
__fsetlocking])
dnl Use the _snprintf function only if it is declared (because on NetBSD it 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). dnl is defined as a weak alias of snprintf; we prefer to use the latter).
@ -396,8 +389,6 @@ __fsetlocking])
dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built 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 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. 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>]) gt_CHECK_DECL(getc_unlocked, [#include <stdio.h>])
case $gt_cv_func_printf_posix in case $gt_cv_func_printf_posix in
@ -424,10 +415,125 @@ __fsetlocking])
fi fi
AC_SUBST([HAVE_WPRINTF]) AC_SUBST([HAVE_WPRINTF])
AM_ICONV
AM_LANGINFO_CODESET AM_LANGINFO_CODESET
if test $ac_cv_header_locale_h = yes; then gt_LC_MESSAGES
AM_LC_MESSAGES
dnl Compilation on mingw and Cygwin needs special Makefile rules, because
dnl 1. when we install a shared library, we must arrange to export
dnl auxiliary pointer variables for every exported variable,
dnl 2. when we install a shared library and a static library simultaneously,
dnl the include file specifies __declspec(dllimport) and therefore we
dnl must arrange to define the auxiliary pointer variables for the
dnl exported variables _also_ in the static library.
if test "$enable_shared" = yes; then
case "$host_os" in
cygwin*) is_woe32dll=yes ;;
*) is_woe32dll=no ;;
esac
else
is_woe32dll=no
fi
WOE32DLL=$is_woe32dll
AC_SUBST([WOE32DLL])
dnl Rename some macros and functions used for locking.
AH_BOTTOM([
#define __libc_lock_t gl_lock_t
#define __libc_lock_define gl_lock_define
#define __libc_lock_define_initialized gl_lock_define_initialized
#define __libc_lock_init gl_lock_init
#define __libc_lock_lock gl_lock_lock
#define __libc_lock_unlock gl_lock_unlock
#define __libc_lock_recursive_t gl_recursive_lock_t
#define __libc_lock_define_recursive gl_recursive_lock_define
#define __libc_lock_define_initialized_recursive gl_recursive_lock_define_initialized
#define __libc_lock_init_recursive gl_recursive_lock_init
#define __libc_lock_lock_recursive gl_recursive_lock_lock
#define __libc_lock_unlock_recursive gl_recursive_lock_unlock
#define glthread_in_use libintl_thread_in_use
#define glthread_lock_init libintl_lock_init
#define glthread_lock_lock libintl_lock_lock
#define glthread_lock_unlock libintl_lock_unlock
#define glthread_lock_destroy libintl_lock_destroy
#define glthread_rwlock_init libintl_rwlock_init
#define glthread_rwlock_rdlock libintl_rwlock_rdlock
#define glthread_rwlock_wrlock libintl_rwlock_wrlock
#define glthread_rwlock_unlock libintl_rwlock_unlock
#define glthread_rwlock_destroy libintl_rwlock_destroy
#define glthread_recursive_lock_init libintl_recursive_lock_init
#define glthread_recursive_lock_lock libintl_recursive_lock_lock
#define glthread_recursive_lock_unlock libintl_recursive_lock_unlock
#define glthread_recursive_lock_destroy libintl_recursive_lock_destroy
#define glthread_once libintl_once
#define glthread_once_call libintl_once_call
#define glthread_once_singlethreaded libintl_once_singlethreaded
])
])
dnl Checks for the core files of the intl subdirectory:
dnl dcigettext.c
dnl eval-plural.h
dnl explodename.c
dnl finddomain.c
dnl gettextP.h
dnl gmo.h
dnl hash-string.h hash-string.c
dnl l10nflist.c
dnl libgnuintl.h.in (except the *printf stuff)
dnl loadinfo.h
dnl loadmsgcat.c
dnl localealias.c
dnl log.c
dnl plural-exp.h plural-exp.c
dnl plural.y
dnl Used by libglocale.
AC_DEFUN([gt_INTL_SUBDIR_CORE],
[
AC_REQUIRE([AC_C_INLINE])dnl
AC_REQUIRE([AC_TYPE_SIZE_T])dnl
AC_REQUIRE([gl_AC_HEADER_STDINT_H])
AC_REQUIRE([AC_FUNC_ALLOCA])dnl
AC_REQUIRE([AC_FUNC_MMAP])dnl
AC_REQUIRE([gt_INTDIV0])dnl
AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl
AC_REQUIRE([gl_HEADER_INTTYPES_H])dnl
AC_REQUIRE([gt_INTTYPES_PRI])dnl
AC_REQUIRE([gl_LOCK])dnl
AC_TRY_LINK(
[int foo (int a) { a = __builtin_expect (a, 10); return a == 10 ? 0 : 1; }],
[],
[AC_DEFINE([HAVE_BUILTIN_EXPECT], 1,
[Define to 1 if the compiler understands __builtin_expect.])])
AC_CHECK_HEADERS([argz.h limits.h unistd.h sys/param.h])
AC_CHECK_FUNCS([getcwd getegid geteuid getgid getuid mempcpy munmap \
stpcpy strcasecmp strdup strtoul tsearch argz_count argz_stringify \
argz_next __fsetlocking])
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>])
AM_ICONV
dnl glibc >= 2.4 has a NL_LOCALE_NAME macro when _GNU_SOURCE is defined,
dnl and a _NL_LOCALE_NAME macro always.
AC_CACHE_CHECK([for NL_LOCALE_NAME macro], gt_cv_nl_locale_name,
[AC_TRY_LINK([#include <langinfo.h>
#include <locale.h>],
[char* cs = nl_langinfo(_NL_LOCALE_NAME(LC_MESSAGES));],
gt_cv_nl_locale_name=yes,
gt_cv_nl_locale_name=no)
])
if test $gt_cv_nl_locale_name = yes; then
AC_DEFINE(HAVE_NL_LOCALE_NAME, 1,
[Define if you have <langinfo.h> and it defines the NL_LOCALE_NAME macro if _GNU_SOURCE is defined.])
fi fi
dnl intl/plural.c is generated from intl/plural.y. It requires bison, dnl intl/plural.c is generated from intl/plural.y. It requires bison,
@ -463,6 +569,44 @@ changequote([,])dnl
]) ])
dnl Checks for special options needed on MacOS X.
dnl Defines INTL_MACOSX_LIBS.
AC_DEFUN([gt_INTL_MACOSX],
[
dnl Check for API introduced in MacOS X 10.2.
AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
gt_cv_func_CFPreferencesCopyAppValue,
[gt_save_LIBS="$LIBS"
LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
AC_TRY_LINK([#include <CoreFoundation/CFPreferences.h>],
[CFPreferencesCopyAppValue(NULL, NULL)],
[gt_cv_func_CFPreferencesCopyAppValue=yes],
[gt_cv_func_CFPreferencesCopyAppValue=no])
LIBS="$gt_save_LIBS"])
if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1,
[Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
fi
dnl Check for API introduced in MacOS X 10.3.
AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent,
[gt_save_LIBS="$LIBS"
LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
AC_TRY_LINK([#include <CoreFoundation/CFLocale.h>], [CFLocaleCopyCurrent();],
[gt_cv_func_CFLocaleCopyCurrent=yes],
[gt_cv_func_CFLocaleCopyCurrent=no])
LIBS="$gt_save_LIBS"])
if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1,
[Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
fi
INTL_MACOSX_LIBS=
if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
fi
AC_SUBST([INTL_MACOSX_LIBS])
])
dnl gt_CHECK_DECL(FUNC, INCLUDES) dnl gt_CHECK_DECL(FUNC, INCLUDES)
dnl Check whether a function is declared. dnl Check whether a function is declared.
AC_DEFUN([gt_CHECK_DECL], AC_DEFUN([gt_CHECK_DECL],

View File

@ -1,15 +1,13 @@
# glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40) # glibc21.m4 serial 3
dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software; the Free Software Foundation
dnl General Public License. As a special exception to the GNU General dnl gives unlimited permission to copy and/or distribute it,
dnl Public License, this file may be distributed as part of a program dnl with or without modifications, as long as this notice is preserved.
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
# Test for the GNU C Library, version 2.1 or newer. # Test for the GNU C Library, version 2.1 or newer.
# From Bruno Haible. # From Bruno Haible.
AC_DEFUN([jm_GLIBC21], AC_DEFUN([gl_GLIBC21],
[ [
AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
ac_cv_gnu_library_2_1, ac_cv_gnu_library_2_1,

View File

@ -53,7 +53,7 @@ AC_DEFUN([GNUPG_PTH_VERSION_CHECK],
_gnupg_pth_save_libs=$LIBS _gnupg_pth_save_libs=$LIBS
CFLAGS="$CFLAGS `$PTH_CONFIG --cflags`" CFLAGS="$CFLAGS `$PTH_CONFIG --cflags`"
LDFLAGS="$LDFLAGS `$PTH_CONFIG --ldflags`" LDFLAGS="$LDFLAGS `$PTH_CONFIG --ldflags`"
LIBS="$LIBS `$PTH_CONFIG --libs`" LIBS="$LIBS `$PTH_CONFIG --libs --all`"
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pth.h> AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pth.h>
], ],
[[ pth_init ();]])], [[ pth_init ();]])],

View File

@ -1,10 +1,8 @@
# iconv.m4 serial AM4 (gettext-0.11.3) # iconv.m4 serial AM4 (gettext-0.11.3)
dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software; the Free Software Foundation
dnl General Public License. As a special exception to the GNU General dnl gives unlimited permission to copy and/or distribute it,
dnl Public License, this file may be distributed as part of a program dnl with or without modifications, as long as this notice is preserved.
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl From Bruno Haible. dnl From Bruno Haible.

View File

@ -1,10 +1,8 @@
# intdiv0.m4 serial 1 (gettext-0.11.3) # intdiv0.m4 serial 1 (gettext-0.11.3)
dnl Copyright (C) 2002 Free Software Foundation, Inc. dnl Copyright (C) 2002 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software; the Free Software Foundation
dnl General Public License. As a special exception to the GNU General dnl gives unlimited permission to copy and/or distribute it,
dnl Public License, this file may be distributed as part of a program dnl with or without modifications, as long as this notice is preserved.
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl From Bruno Haible. dnl From Bruno Haible.

View File

@ -1,10 +1,8 @@
# intmax.m4 serial 1 (gettext-0.12) # intmax.m4 serial 2 (gettext-0.14.2)
dnl Copyright (C) 2002-2003 Free Software Foundation, Inc. dnl Copyright (C) 2002-2005 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software; the Free Software Foundation
dnl General Public License. As a special exception to the GNU General dnl gives unlimited permission to copy and/or distribute it,
dnl Public License, this file may be distributed as part of a program dnl with or without modifications, as long as this notice is preserved.
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl From Bruno Haible. dnl From Bruno Haible.
dnl Test whether the system has the 'intmax_t' type, but don't attempt to dnl Test whether the system has the 'intmax_t' type, but don't attempt to
@ -12,8 +10,8 @@ dnl find a replacement if it is lacking.
AC_DEFUN([gt_TYPE_INTMAX_T], AC_DEFUN([gt_TYPE_INTMAX_T],
[ [
AC_REQUIRE([jm_AC_HEADER_INTTYPES_H]) AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
AC_REQUIRE([jm_AC_HEADER_STDINT_H]) AC_REQUIRE([gl_AC_HEADER_STDINT_H])
AC_CACHE_CHECK(for intmax_t, gt_cv_c_intmax_t, AC_CACHE_CHECK(for intmax_t, gt_cv_c_intmax_t,
[AC_TRY_COMPILE([ [AC_TRY_COMPILE([
#include <stddef.h> #include <stddef.h>

View File

@ -1,10 +1,8 @@
# inttypes-pri.m4 serial 1 (gettext-0.11.4) # inttypes-pri.m4 serial 2 (gettext-0.15)
dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. dnl Copyright (C) 1997-2002, 2006 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software; the Free Software Foundation
dnl General Public License. As a special exception to the GNU General dnl gives unlimited permission to copy and/or distribute it,
dnl Public License, this file may be distributed as part of a program dnl with or without modifications, as long as this notice is preserved.
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl From Bruno Haible. dnl From Bruno Haible.
@ -13,8 +11,8 @@ dnl From Bruno Haible.
AC_DEFUN([gt_INTTYPES_PRI], AC_DEFUN([gt_INTTYPES_PRI],
[ [
AC_REQUIRE([gt_HEADER_INTTYPES_H]) AC_REQUIRE([gl_HEADER_INTTYPES_H])
if test $gt_cv_header_inttypes_h = yes; then if test $gl_cv_header_inttypes_h = yes; then
AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken], AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken],
gt_cv_inttypes_pri_broken, gt_cv_inttypes_pri_broken,
[ [

View File

@ -1,26 +1,24 @@
# inttypes_h.m4 serial 5 (gettext-0.12) # inttypes_h.m4 serial 6
dnl Copyright (C) 1997-2003 Free Software Foundation, Inc. dnl Copyright (C) 1997-2004 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software; the Free Software Foundation
dnl General Public License. As a special exception to the GNU General dnl gives unlimited permission to copy and/or distribute it,
dnl Public License, this file may be distributed as part of a program dnl with or without modifications, as long as this notice is preserved.
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl From Paul Eggert. dnl From Paul Eggert.
# Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists, # Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists,
# doesn't clash with <sys/types.h>, and declares uintmax_t. # doesn't clash with <sys/types.h>, and declares uintmax_t.
AC_DEFUN([jm_AC_HEADER_INTTYPES_H], AC_DEFUN([gl_AC_HEADER_INTTYPES_H],
[ [
AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h, AC_CACHE_CHECK([for inttypes.h], gl_cv_header_inttypes_h,
[AC_TRY_COMPILE( [AC_TRY_COMPILE(
[#include <sys/types.h> [#include <sys/types.h>
#include <inttypes.h>], #include <inttypes.h>],
[uintmax_t i = (uintmax_t) -1;], [uintmax_t i = (uintmax_t) -1;],
jm_ac_cv_header_inttypes_h=yes, gl_cv_header_inttypes_h=yes,
jm_ac_cv_header_inttypes_h=no)]) gl_cv_header_inttypes_h=no)])
if test $jm_ac_cv_header_inttypes_h = yes; then if test $gl_cv_header_inttypes_h = yes; then
AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1, AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1,
[Define if <inttypes.h> exists, doesn't clash with <sys/types.h>, [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
and declares uintmax_t. ]) and declares uintmax_t. ])

View File

@ -1,10 +1,8 @@
# lcmessage.m4 serial 3 (gettext-0.11.3) # lcmessage.m4 serial 4 (gettext-0.14.2)
dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. dnl Copyright (C) 1995-2002, 2004-2005 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software; the Free Software Foundation
dnl General Public License. As a special exception to the GNU General dnl gives unlimited permission to copy and/or distribute it,
dnl Public License, this file may be distributed as part of a program dnl with or without modifications, as long as this notice is preserved.
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl dnl
dnl This file can can be used in projects which are not available under dnl This file can can be used in projects which are not available under
dnl the GNU General Public License or the GNU Library General Public dnl the GNU General Public License or the GNU Library General Public
@ -20,12 +18,12 @@ dnl Ulrich Drepper <drepper@cygnus.com>, 1995.
# Check whether LC_MESSAGES is available in <locale.h>. # Check whether LC_MESSAGES is available in <locale.h>.
AC_DEFUN([AM_LC_MESSAGES], AC_DEFUN([gt_LC_MESSAGES],
[ [
AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, AC_CACHE_CHECK([for LC_MESSAGES], gt_cv_val_LC_MESSAGES,
[AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES], [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) gt_cv_val_LC_MESSAGES=yes, gt_cv_val_LC_MESSAGES=no)])
if test $am_cv_val_LC_MESSAGES = yes; then if test $gt_cv_val_LC_MESSAGES = yes; then
AC_DEFINE(HAVE_LC_MESSAGES, 1, AC_DEFINE(HAVE_LC_MESSAGES, 1,
[Define if your <locale.h> file defines LC_MESSAGES.]) [Define if your <locale.h> file defines LC_MESSAGES.])
fi fi

View File

@ -1,10 +1,8 @@
# lib-ld.m4 serial 3 (gettext-0.13) # 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; the Free Software Foundation
dnl General Public License. As a special exception to the GNU General dnl gives unlimited permission to copy and/or distribute it,
dnl Public License, this file may be distributed as part of a program dnl with or without modifications, as long as this notice is preserved.
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl Subroutines of libtool.m4, dnl Subroutines of libtool.m4,
dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision

View File

@ -1,13 +1,13 @@
# lib-link.m4 serial 4 (gettext-0.12) # lib-link.m4 serial 8 (gettext-0.15)
dnl Copyright (C) 2001-2003 Free Software Foundation, Inc. dnl Copyright (C) 2001-2006 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software; the Free Software Foundation
dnl General Public License. As a special exception to the GNU General dnl gives unlimited permission to copy and/or distribute it,
dnl Public License, this file may be distributed as part of a program dnl with or without modifications, as long as this notice is preserved.
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl From Bruno Haible. dnl From Bruno Haible.
AC_PREREQ(2.50)
dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
dnl the libraries corresponding to explicit and implicit dependencies. dnl the libraries corresponding to explicit and implicit dependencies.
dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
@ -95,6 +95,8 @@ dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
dnl hardcode_direct, hardcode_minus_L. dnl hardcode_direct, hardcode_minus_L.
AC_DEFUN([AC_LIB_RPATH], AC_DEFUN([AC_LIB_RPATH],
[ [
dnl Tell automake >= 1.10 to complain if config.rpath is missing.
m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
@ -124,6 +126,7 @@ dnl the libraries corresponding to explicit and implicit dependencies.
dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
AC_DEFUN([AC_LIB_LINKFLAGS_BODY], AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
[ [
AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
dnl By default, look in $includedir and $libdir. dnl By default, look in $includedir and $libdir.
@ -146,7 +149,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
]) ])
else else
additional_includedir="$withval/include" additional_includedir="$withval/include"
additional_libdir="$withval/lib" additional_libdir="$withval/$acl_libdirstem"
fi fi
fi fi
]) ])
@ -246,7 +249,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
dnl Linking with a shared library. We attempt to hardcode its dnl Linking with a shared library. We attempt to hardcode its
dnl directory into the executable's runpath, unless it's the dnl directory into the executable's runpath, unless it's the
dnl standard /usr/lib. dnl standard /usr/lib.
if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then
dnl No hardcoding is needed. dnl No hardcoding is needed.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
else else
@ -332,8 +335,8 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
dnl Assume the include files are nearby. dnl Assume the include files are nearby.
additional_includedir= additional_includedir=
case "$found_dir" in case "$found_dir" in
*/lib | */lib/) */$acl_libdirstem | */$acl_libdirstem/)
basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
additional_includedir="$basedir/include" additional_includedir="$basedir/include"
;; ;;
esac esac
@ -350,7 +353,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
if test "X$additional_includedir" = "X/usr/local/include"; then if test "X$additional_includedir" = "X/usr/local/include"; then
if test -n "$GCC"; then if test -n "$GCC"; then
case $host_os in case $host_os in
linux*) haveit=yes;; linux* | gnu* | k*bsd*-gnu) haveit=yes;;
esac esac
fi fi
fi fi
@ -394,12 +397,12 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
dnl 3. if it's already present in $LDFLAGS or the already dnl 3. if it's already present in $LDFLAGS or the already
dnl constructed $LIBNAME, dnl constructed $LIBNAME,
dnl 4. if it doesn't exist as a directory. dnl 4. if it doesn't exist as a directory.
if test "X$additional_libdir" != "X/usr/lib"; then if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
haveit= haveit=
if test "X$additional_libdir" = "X/usr/local/lib"; then if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
if test -n "$GCC"; then if test -n "$GCC"; then
case $host_os in case $host_os in
linux*) haveit=yes;; linux* | gnu* | k*bsd*-gnu) haveit=yes;;
esac esac
fi fi
fi fi
@ -549,3 +552,79 @@ AC_DEFUN([AC_LIB_APPENDTOVAR],
fi fi
done done
]) ])
dnl For those cases where a variable contains several -L and -l options
dnl referring to unknown libraries and directories, this macro determines the
dnl necessary additional linker options for the runtime path.
dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL])
dnl sets LDADDVAR to linker options needed together with LIBSVALUE.
dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed,
dnl otherwise linking without libtool is assumed.
AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
[
AC_REQUIRE([AC_LIB_RPATH])
AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
$1=
if test "$enable_rpath" != no; then
if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
dnl Use an explicit option to hardcode directories into the resulting
dnl binary.
rpathdirs=
next=
for opt in $2; do
if test -n "$next"; then
dir="$next"
dnl No need to hardcode the standard /usr/lib.
if test "X$dir" != "X/usr/$acl_libdirstem"; then
rpathdirs="$rpathdirs $dir"
fi
next=
else
case $opt in
-L) next=yes ;;
-L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
dnl No need to hardcode the standard /usr/lib.
if test "X$dir" != "X/usr/$acl_libdirstem"; then
rpathdirs="$rpathdirs $dir"
fi
next= ;;
*) next= ;;
esac
fi
done
if test "X$rpathdirs" != "X"; then
if test -n ""$3""; then
dnl libtool is used for linking. Use -R options.
for dir in $rpathdirs; do
$1="${$1}${$1:+ }-R$dir"
done
else
dnl The linker is used for linking directly.
if test -n "$hardcode_libdir_separator"; then
dnl Weird platform: only the last -rpath option counts, the user
dnl must pass all path elements in one option.
alldirs=
for dir in $rpathdirs; do
alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$dir"
done
acl_save_libdir="$libdir"
libdir="$alldirs"
eval flag=\"$hardcode_libdir_flag_spec\"
libdir="$acl_save_libdir"
$1="$flag"
else
dnl The -rpath options are cumulative.
for dir in $rpathdirs; do
acl_save_libdir="$libdir"
libdir="$dir"
eval flag=\"$hardcode_libdir_flag_spec\"
libdir="$acl_save_libdir"
$1="${$1}${$1:+ }$flag"
done
fi
fi
fi
fi
fi
AC_SUBST([$1])
])

View File

@ -1,10 +1,8 @@
# lib-prefix.m4 serial 3 (gettext-0.13) # lib-prefix.m4 serial 5 (gettext-0.15)
dnl Copyright (C) 2001-2003 Free Software Foundation, Inc. dnl Copyright (C) 2001-2005 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software; the Free Software Foundation
dnl General Public License. As a special exception to the GNU General dnl gives unlimited permission to copy and/or distribute it,
dnl Public License, this file may be distributed as part of a program dnl with or without modifications, as long as this notice is preserved.
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl From Bruno Haible. dnl From Bruno Haible.
@ -26,6 +24,7 @@ AC_DEFUN([AC_LIB_PREFIX],
AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_CANONICAL_HOST])
AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
dnl By default, look in $includedir and $libdir. dnl By default, look in $includedir and $libdir.
use_additional=yes use_additional=yes
@ -47,7 +46,7 @@ AC_DEFUN([AC_LIB_PREFIX],
]) ])
else else
additional_includedir="$withval/include" additional_includedir="$withval/include"
additional_libdir="$withval/lib" additional_libdir="$withval/$acl_libdirstem"
fi fi
fi fi
]) ])
@ -71,7 +70,7 @@ AC_DEFUN([AC_LIB_PREFIX],
if test "X$additional_includedir" = "X/usr/local/include"; then if test "X$additional_includedir" = "X/usr/local/include"; then
if test -n "$GCC"; then if test -n "$GCC"; then
case $host_os in case $host_os in
linux*) haveit=yes;; linux* | gnu* | k*bsd*-gnu) haveit=yes;;
esac esac
fi fi
fi fi
@ -89,7 +88,7 @@ AC_DEFUN([AC_LIB_PREFIX],
dnl 2. if it's already present in $LDFLAGS, dnl 2. if it's already present in $LDFLAGS,
dnl 3. if it's /usr/local/lib and we are using GCC on Linux, dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
dnl 4. if it doesn't exist as a directory. dnl 4. if it doesn't exist as a directory.
if test "X$additional_libdir" != "X/usr/lib"; then if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
haveit= haveit=
for x in $LDFLAGS; do for x in $LDFLAGS; do
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
@ -99,7 +98,7 @@ AC_DEFUN([AC_LIB_PREFIX],
fi fi
done done
if test -z "$haveit"; then if test -z "$haveit"; then
if test "X$additional_libdir" = "X/usr/local/lib"; then if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
if test -n "$GCC"; then if test -n "$GCC"; then
case $host_os in case $host_os in
linux*) haveit=yes;; linux*) haveit=yes;;
@ -153,3 +152,34 @@ AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
exec_prefix="$acl_save_exec_prefix" exec_prefix="$acl_save_exec_prefix"
prefix="$acl_save_prefix" prefix="$acl_save_prefix"
]) ])
dnl AC_LIB_PREPARE_MULTILIB creates a variable acl_libdirstem, containing
dnl the basename of the libdir, either "lib" or "lib64".
AC_DEFUN([AC_LIB_PREPARE_MULTILIB],
[
dnl There is no formal standard regarding lib and lib64. The current
dnl practice is that on a system supporting 32-bit and 64-bit instruction
dnl sets or ABIs, 64-bit libraries go under $prefix/lib64 and 32-bit
dnl libraries go under $prefix/lib. We determine the compiler's default
dnl mode by looking at the compiler's library search path. If at least
dnl of its elements ends in /lib64 or points to a directory whose absolute
dnl pathname ends in /lib64, we assume a 64-bit ABI. Otherwise we use the
dnl default, namely "lib".
acl_libdirstem=lib
searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
if test -n "$searchpath"; then
acl_save_IFS="${IFS= }"; IFS=":"
for searchdir in $searchpath; do
if test -d "$searchdir"; then
case "$searchdir" in
*/lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
*) searchdir=`cd "$searchdir" && pwd`
case "$searchdir" in
*/lib64 ) acl_libdirstem=lib64 ;;
esac ;;
esac
fi
done
IFS="$acl_save_IFS"
fi
])

View File

@ -1,15 +1,16 @@
# longdouble.m4 serial 1 (gettext-0.12) # longdouble.m4 serial 2 (gettext-0.15)
dnl Copyright (C) 2002-2003 Free Software Foundation, Inc. dnl Copyright (C) 2002-2003, 2006 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software; the Free Software Foundation
dnl General Public License. As a special exception to the GNU General dnl gives unlimited permission to copy and/or distribute it,
dnl Public License, this file may be distributed as part of a program dnl with or without modifications, as long as this notice is preserved.
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl From Bruno Haible. dnl From Bruno Haible.
dnl Test whether the compiler supports the 'long double' type. dnl Test whether the compiler supports the 'long double' type.
dnl Prerequisite: AC_PROG_CC dnl Prerequisite: AC_PROG_CC
dnl This file is only needed in autoconf <= 2.59. Newer versions of autoconf
dnl have a macro AC_TYPE_LONG_DOUBLE with identical semantics.
AC_DEFUN([gt_TYPE_LONGDOUBLE], AC_DEFUN([gt_TYPE_LONGDOUBLE],
[ [
AC_CACHE_CHECK([for long double], gt_cv_c_long_double, AC_CACHE_CHECK([for long double], gt_cv_c_long_double,

View File

@ -1,16 +1,14 @@
# longlong.m4 serial 4 # longlong.m4 serial 5
dnl Copyright (C) 1999-2003 Free Software Foundation, Inc. dnl Copyright (C) 1999-2004 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software; the Free Software Foundation
dnl General Public License. As a special exception to the GNU General dnl gives unlimited permission to copy and/or distribute it,
dnl Public License, this file may be distributed as part of a program dnl with or without modifications, as long as this notice is preserved.
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl From Paul Eggert. dnl From Paul Eggert.
# Define HAVE_LONG_LONG if 'long long' works. # Define HAVE_LONG_LONG if 'long long' works.
AC_DEFUN([jm_AC_TYPE_LONG_LONG], AC_DEFUN([gl_AC_TYPE_LONG_LONG],
[ [
AC_CACHE_CHECK([for long long], ac_cv_type_long_long, AC_CACHE_CHECK([for long long], ac_cv_type_long_long,
[AC_TRY_LINK([long long ll = 1LL; int i = 63;], [AC_TRY_LINK([long long ll = 1LL; int i = 63;],

View File

@ -1,10 +1,8 @@
# nls.m4 serial 1 (gettext-0.12) # nls.m4 serial 3 (gettext-0.15)
dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software; the Free Software Foundation
dnl General Public License. As a special exception to the GNU General dnl gives unlimited permission to copy and/or distribute it,
dnl Public License, this file may be distributed as part of a program dnl with or without modifications, as long as this notice is preserved.
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl dnl
dnl This file can can be used in projects which are not available under dnl This file can can be used in projects which are not available under
dnl the GNU General Public License or the GNU Library General Public dnl the GNU General Public License or the GNU Library General Public
@ -19,6 +17,8 @@ dnl Authors:
dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003. dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
AC_PREREQ(2.50)
AC_DEFUN([AM_NLS], AC_DEFUN([AM_NLS],
[ [
AC_MSG_CHECKING([whether NLS is requested]) AC_MSG_CHECKING([whether NLS is requested])
@ -29,21 +29,3 @@ AC_DEFUN([AM_NLS],
AC_MSG_RESULT($USE_NLS) AC_MSG_RESULT($USE_NLS)
AC_SUBST(USE_NLS) AC_SUBST(USE_NLS)
]) ])
AC_DEFUN([AM_MKINSTALLDIRS],
[
dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
dnl Try to locate it.
MKINSTALLDIRS=
if test -n "$ac_aux_dir"; then
case "$ac_aux_dir" in
/*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;;
*) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;;
esac
fi
if test -z "$MKINSTALLDIRS"; then
MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
fi
AC_SUBST(MKINSTALLDIRS)
])

112
m4/po.m4
View File

@ -1,10 +1,8 @@
# po.m4 serial 3 (gettext-0.14) # po.m4 serial 13 (gettext-0.15)
dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. dnl Copyright (C) 1995-2006 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software; the Free Software Foundation
dnl General Public License. As a special exception to the GNU General dnl gives unlimited permission to copy and/or distribute it,
dnl Public License, this file may be distributed as part of a program dnl with or without modifications, as long as this notice is preserved.
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl dnl
dnl This file can can be used in projects which are not available under dnl This file can can be used in projects which are not available under
dnl the GNU General Public License or the GNU Library General Public dnl the GNU General Public License or the GNU Library General Public
@ -19,12 +17,14 @@ dnl Authors:
dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003. dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
AC_PREREQ(2.50)
dnl Checks for all prerequisites of the po subdirectory. dnl Checks for all prerequisites of the po subdirectory.
AC_DEFUN([AM_PO_SUBDIRS], AC_DEFUN([AM_PO_SUBDIRS],
[ [
AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl
AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl
AC_REQUIRE([AM_MKINSTALLDIRS])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
AC_REQUIRE([AM_NLS])dnl AC_REQUIRE([AM_NLS])dnl
dnl Perform the following tests also if --disable-nls has been given, dnl Perform the following tests also if --disable-nls has been given,
@ -34,59 +34,57 @@ AC_DEFUN([AM_PO_SUBDIRS],
dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
dnl The second test excludes FreeBSD msgfmt. dnl The second test excludes FreeBSD msgfmt.
AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
[$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
(if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
:) :)
AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
dnl Test whether it is GNU msgfmt >= 0.15.
changequote(,)dnl
case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
'' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;;
*) MSGFMT_015=$MSGFMT ;;
esac
changequote([,])dnl
AC_SUBST([MSGFMT_015])
changequote(,)dnl
case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
'' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;;
*) GMSGFMT_015=$GMSGFMT ;;
esac
changequote([,])dnl
AC_SUBST([GMSGFMT_015])
dnl Search for GNU xgettext 0.12 or newer in the PATH. dnl Search for GNU xgettext 0.12 or newer in the PATH.
dnl The first test excludes Solaris xgettext and early GNU xgettext versions. dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
dnl The second test excludes FreeBSD xgettext. dnl The second test excludes FreeBSD xgettext.
AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
[$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
(if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
:) :)
dnl Remove leftover from FreeBSD xgettext call. dnl Remove leftover from FreeBSD xgettext call.
rm -f messages.po rm -f messages.po
dnl Test whether it is GNU xgettext >= 0.15.
changequote(,)dnl
case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
'' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;;
*) XGETTEXT_015=$XGETTEXT ;;
esac
changequote([,])dnl
AC_SUBST([XGETTEXT_015])
dnl Search for GNU msgmerge 0.11 or newer in the PATH. dnl Search for GNU msgmerge 0.11 or newer in the PATH.
AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
[$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :) [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :)
dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. dnl Installation directories.
dnl Test whether we really found GNU msgfmt. dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we
if test "$GMSGFMT" != ":"; then dnl have to define it here, so that it can be used in po/Makefile.
dnl If it is no GNU msgfmt we define it as : so that the test -n "$localedir" || localedir='${datadir}/locale'
dnl Makefiles still can work. AC_SUBST([localedir])
if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
(if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
: ;
else
GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
AC_MSG_RESULT(
[found $GMSGFMT program is not GNU msgfmt; ignore it])
GMSGFMT=":"
fi
fi
dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. AC_CONFIG_COMMANDS([po-directories], [[
dnl Test whether we really found GNU xgettext.
if test "$XGETTEXT" != ":"; then
dnl If it is no GNU xgettext we define it as : so that the
dnl Makefiles still can work.
if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
(if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
: ;
else
AC_MSG_RESULT(
[found xgettext program is not GNU xgettext; ignore it])
XGETTEXT=":"
fi
dnl Remove leftover from FreeBSD xgettext call.
rm -f messages.po
fi
AC_OUTPUT_COMMANDS([
for ac_file in $CONFIG_FILES; do for ac_file in $CONFIG_FILES; do
# Support "outfile[:infile[:infile...]]" # Support "outfile[:infile[:infile...]]"
case "$ac_file" in case "$ac_file" in
@ -106,6 +104,9 @@ AC_DEFUN([AM_PO_SUBDIRS],
/*) top_srcdir="$ac_given_srcdir" ;; /*) top_srcdir="$ac_given_srcdir" ;;
*) top_srcdir="$ac_dots$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
esac esac
# Treat a directory as a PO directory if and only if it has a
# POTFILES.in file. This allows packages to have multiple PO
# directories under different names or in different locations.
if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
rm -f "$ac_dir/POTFILES" rm -f "$ac_dir/POTFILES"
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"
@ -119,12 +120,13 @@ AC_DEFUN([AM_PO_SUBDIRS],
if test -n "$OBSOLETE_ALL_LINGUAS"; then 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" 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 fi
ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
# Hide the ALL_LINGUAS assigment from automake. # Hide the ALL_LINGUAS assigment from automake < 1.5.
eval 'ALL_LINGUAS''=$ALL_LINGUAS_' eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
else else
# The set of available languages was given in configure.in. # The set of available languages was given in configure.in.
# Hide the ALL_LINGUAS assigment from automake < 1.5.
eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
fi fi
# Compute POFILES # Compute POFILES
@ -194,10 +196,10 @@ AC_DEFUN([AM_PO_SUBDIRS],
fi fi
;; ;;
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, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
# from automake. # from automake < 1.5.
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%}"
@ -283,7 +285,7 @@ x
changequote([,])dnl changequote([,])dnl
# Set POTFILES to the value of the Makefile variable POTFILES. # 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'`" 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"` POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"`
# Compute POTFILES_DEPS as # Compute POTFILES_DEPS as
# $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) # $(foreach file, $(POTFILES), $(top_srcdir)/$(file))
@ -298,14 +300,14 @@ changequote([,])dnl
fi fi
if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
# The LINGUAS file contains the set of available languages. # The LINGUAS file contains the set of available languages.
ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
else else
# Set ALL_LINGUAS to the value of the Makefile variable LINGUAS. # 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'`" 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"` ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
fi fi
# Hide the ALL_LINGUAS assigment from automake. # Hide the ALL_LINGUAS assigment from automake < 1.5.
eval 'ALL_LINGUAS''=$ALL_LINGUAS_' eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
# Compute POFILES # Compute POFILES
# as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
@ -348,7 +350,7 @@ changequote([,])dnl
QMFILES="$QMFILES $srcdirpre$lang.qm" QMFILES="$QMFILES $srcdirpre$lang.qm"
frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg" MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg"
frobbedlang=`echo $lang | sed -e 's/_/-/g'` frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll" RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll"
done done
# CATALOGS depends on both $ac_dir and the user's LINGUAS # CATALOGS depends on both $ac_dir and the user's LINGUAS
@ -389,7 +391,7 @@ changequote([,])dnl
QTCATALOGS="$QTCATALOGS $lang.qm" QTCATALOGS="$QTCATALOGS $lang.qm"
frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg" TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg"
frobbedlang=`echo $lang | sed -e 's/_/-/g'` frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll" CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll"
done done
fi fi
@ -409,7 +411,7 @@ EOF
if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then
# Add dependencies that cannot be formulated as a simple suffix rule. # Add dependencies that cannot be formulated as a simple suffix rule.
for lang in $ALL_LINGUAS; do for lang in $ALL_LINGUAS; do
frobbedlang=`echo $lang | sed -e 's/_/-/g'` frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
cat >> "$ac_file.tmp" <<EOF cat >> "$ac_file.tmp" <<EOF
$frobbedlang/\$(DOMAIN).resources.dll: $lang.po $frobbedlang/\$(DOMAIN).resources.dll: $lang.po
@echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \ @echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \

View File

@ -1,10 +1,8 @@
# printf-posix.m4 serial 2 (gettext-0.13.1) # printf-posix.m4 serial 2 (gettext-0.13.1)
dnl Copyright (C) 2003 Free Software Foundation, Inc. dnl Copyright (C) 2003 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software; the Free Software Foundation
dnl General Public License. As a special exception to the GNU General dnl gives unlimited permission to copy and/or distribute it,
dnl Public License, this file may be distributed as part of a program dnl with or without modifications, as long as this notice is preserved.
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl From Bruno Haible. dnl From Bruno Haible.
dnl Test whether the printf() function supports POSIX/XSI format strings with dnl Test whether the printf() function supports POSIX/XSI format strings with

View File

@ -1,10 +1,8 @@
# progtest.m4 serial 3 (gettext-0.12) # progtest.m4 serial 4 (gettext-0.14.2)
dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. dnl Copyright (C) 1996-2003, 2005 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software; the Free Software Foundation
dnl General Public License. As a special exception to the GNU General dnl gives unlimited permission to copy and/or distribute it,
dnl Public License, this file may be distributed as part of a program dnl with or without modifications, as long as this notice is preserved.
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl dnl
dnl This file can can be used in projects which are not available under dnl This file can can be used in projects which are not available under
dnl the GNU General Public License or the GNU Library General Public dnl the GNU General Public License or the GNU Library General Public
@ -18,6 +16,8 @@ dnl They are *not* in the public domain.
dnl Authors: dnl Authors:
dnl Ulrich Drepper <drepper@cygnus.com>, 1996. dnl Ulrich Drepper <drepper@cygnus.com>, 1996.
AC_PREREQ(2.50)
# Search path for a program which passes the given test. # Search path for a program which passes the given test.
dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
@ -67,6 +67,7 @@ AC_CACHE_VAL(ac_cv_path_$1,
test -z "$ac_dir" && ac_dir=. test -z "$ac_dir" && ac_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do for ac_exec_ext in '' $ac_executable_extensions; do
if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD
if [$3]; then if [$3]; then
ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
break 2 break 2

View File

@ -1,10 +1,8 @@
# signed.m4 serial 1 (gettext-0.10.40) # signed.m4 serial 1 (gettext-0.10.40)
dnl Copyright (C) 2001-2002 Free Software Foundation, Inc. dnl Copyright (C) 2001-2002 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software; the Free Software Foundation
dnl General Public License. As a special exception to the GNU General dnl gives unlimited permission to copy and/or distribute it,
dnl Public License, this file may be distributed as part of a program dnl with or without modifications, as long as this notice is preserved.
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl From Bruno Haible. dnl From Bruno Haible.

View File

@ -1,10 +1,8 @@
# size_max.m4 serial 2 # size_max.m4 serial 4
dnl Copyright (C) 2003 Free Software Foundation, Inc. dnl Copyright (C) 2003, 2005-2006 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software; the Free Software Foundation
dnl General Public License. As a special exception to the GNU General dnl gives unlimited permission to copy and/or distribute it,
dnl Public License, this file may be distributed as part of a program dnl with or without modifications, as long as this notice is preserved.
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl From Bruno Haible. dnl From Bruno Haible.
@ -25,16 +23,15 @@ Found it
], result=yes) ], result=yes)
if test -z "$result"; then if test -z "$result"; then
dnl Define it ourselves. Here we assume that the type 'size_t' is not wider dnl Define it ourselves. Here we assume that the type 'size_t' is not wider
dnl than the type 'unsigned long'. dnl than the type 'unsigned long'. Try hard to find a definition that can
dnl The _AC_COMPUTE_INT macro works up to LONG_MAX, since it uses 'expr', dnl be used in a preprocessor #if, i.e. doesn't contain a cast.
dnl which is guaranteed to work from LONG_MIN to LONG_MAX. _AC_COMPUTE_INT([sizeof (size_t) * CHAR_BIT - 1], size_t_bits_minus_1,
_AC_COMPUTE_INT([~(size_t)0 / 10], res_hi, [#include <stddef.h>
[#include <stddef.h>], result=?) #include <limits.h>], size_t_bits_minus_1=)
_AC_COMPUTE_INT([~(size_t)0 % 10], res_lo,
[#include <stddef.h>], result=?)
_AC_COMPUTE_INT([sizeof (size_t) <= sizeof (unsigned int)], fits_in_uint, _AC_COMPUTE_INT([sizeof (size_t) <= sizeof (unsigned int)], fits_in_uint,
[#include <stddef.h>], result=?) [#include <stddef.h>], fits_in_uint=)
if test "$fits_in_uint" = 1; then if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then
if test $fits_in_uint = 1; then
dnl Even though SIZE_MAX fits in an unsigned int, it must be of type dnl Even though SIZE_MAX fits in an unsigned int, it must be of type
dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'. dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'.
AC_TRY_COMPILE([#include <stddef.h> AC_TRY_COMPILE([#include <stddef.h>
@ -42,15 +39,17 @@ Found it
extern unsigned long foo; extern unsigned long foo;
], [], fits_in_uint=0) ], [], fits_in_uint=0)
fi fi
if test -z "$result"; then dnl We cannot use 'expr' to simplify this expression, because 'expr'
if test "$fits_in_uint" = 1; then dnl works only with 'long' integers in the host environment, while we
result="$res_hi$res_lo"U dnl might be cross-compiling from a 32-bit platform to a 64-bit platform.
if test $fits_in_uint = 1; then
result="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)"
else else
result="$res_hi$res_lo"UL result="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)"
fi fi
else else
dnl Shouldn't happen, but who knows... dnl Shouldn't happen, but who knows...
result='~(size_t)0' result='((size_t)~(size_t)0)'
fi fi
fi fi
AC_MSG_RESULT([$result]) AC_MSG_RESULT([$result])

View File

@ -1,26 +1,24 @@
# stdint_h.m4 serial 3 (gettext-0.12) # stdint_h.m4 serial 5
dnl Copyright (C) 1997-2003 Free Software Foundation, Inc. dnl Copyright (C) 1997-2004 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software; the Free Software Foundation
dnl General Public License. As a special exception to the GNU General dnl gives unlimited permission to copy and/or distribute it,
dnl Public License, this file may be distributed as part of a program dnl with or without modifications, as long as this notice is preserved.
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl From Paul Eggert. dnl From Paul Eggert.
# Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists, # Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists,
# doesn't clash with <sys/types.h>, and declares uintmax_t. # doesn't clash with <sys/types.h>, and declares uintmax_t.
AC_DEFUN([jm_AC_HEADER_STDINT_H], AC_DEFUN([gl_AC_HEADER_STDINT_H],
[ [
AC_CACHE_CHECK([for stdint.h], jm_ac_cv_header_stdint_h, AC_CACHE_CHECK([for stdint.h], gl_cv_header_stdint_h,
[AC_TRY_COMPILE( [AC_TRY_COMPILE(
[#include <sys/types.h> [#include <sys/types.h>
#include <stdint.h>], #include <stdint.h>],
[uintmax_t i = (uintmax_t) -1;], [uintmax_t i = (uintmax_t) -1;],
jm_ac_cv_header_stdint_h=yes, gl_cv_header_stdint_h=yes,
jm_ac_cv_header_stdint_h=no)]) gl_cv_header_stdint_h=no)])
if test $jm_ac_cv_header_stdint_h = yes; then if test $gl_cv_header_stdint_h = yes; then
AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1, AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1,
[Define if <stdint.h> exists, doesn't clash with <sys/types.h>, [Define if <stdint.h> exists, doesn't clash with <sys/types.h>,
and declares uintmax_t. ]) and declares uintmax_t. ])

View File

@ -1,10 +1,8 @@
# uintmax_t.m4 serial 7 (gettext-0.12) # uintmax_t.m4 serial 9
dnl Copyright (C) 1997-2003 Free Software Foundation, Inc. dnl Copyright (C) 1997-2004 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software; the Free Software Foundation
dnl General Public License. As a special exception to the GNU General dnl gives unlimited permission to copy and/or distribute it,
dnl Public License, this file may be distributed as part of a program dnl with or without modifications, as long as this notice is preserved.
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl From Paul Eggert. dnl From Paul Eggert.
@ -13,12 +11,12 @@ AC_PREREQ(2.13)
# Define uintmax_t to 'unsigned long' or 'unsigned long long' # Define uintmax_t to 'unsigned long' or 'unsigned long long'
# if it is not already defined in <stdint.h> or <inttypes.h>. # if it is not already defined in <stdint.h> or <inttypes.h>.
AC_DEFUN([jm_AC_TYPE_UINTMAX_T], AC_DEFUN([gl_AC_TYPE_UINTMAX_T],
[ [
AC_REQUIRE([jm_AC_HEADER_INTTYPES_H]) AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
AC_REQUIRE([jm_AC_HEADER_STDINT_H]) AC_REQUIRE([gl_AC_HEADER_STDINT_H])
if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then
AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG]) AC_REQUIRE([gl_AC_TYPE_UNSIGNED_LONG_LONG])
test $ac_cv_type_unsigned_long_long = yes \ test $ac_cv_type_unsigned_long_long = yes \
&& ac_type='unsigned long long' \ && ac_type='unsigned long long' \
|| ac_type='unsigned long' || ac_type='unsigned long'

View File

@ -1,16 +1,14 @@
# ulonglong.m4 serial 3 # ulonglong.m4 serial 4
dnl Copyright (C) 1999-2003 Free Software Foundation, Inc. dnl Copyright (C) 1999-2004 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software; the Free Software Foundation
dnl General Public License. As a special exception to the GNU General dnl gives unlimited permission to copy and/or distribute it,
dnl Public License, this file may be distributed as part of a program dnl with or without modifications, as long as this notice is preserved.
dnl that contains a configuration script generated by Autoconf, under
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. # Define HAVE_UNSIGNED_LONG_LONG if 'unsigned long long' works.
AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG], AC_DEFUN([gl_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 = 1ULL; int i = 63;], [AC_TRY_LINK([unsigned long long ull = 1ULL; int i = 63;],

View File

@ -1,10 +1,8 @@
# wchar_t.m4 serial 1 (gettext-0.12) # wchar_t.m4 serial 1 (gettext-0.12)
dnl Copyright (C) 2002-2003 Free Software Foundation, Inc. dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software; the Free Software Foundation
dnl General Public License. As a special exception to the GNU General dnl gives unlimited permission to copy and/or distribute it,
dnl Public License, this file may be distributed as part of a program dnl with or without modifications, as long as this notice is preserved.
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl From Bruno Haible. dnl From Bruno Haible.
dnl Test whether <stddef.h> has the 'wchar_t' type. dnl Test whether <stddef.h> has the 'wchar_t' type.

View File

@ -1,10 +1,8 @@
# wint_t.m4 serial 1 (gettext-0.12) # wint_t.m4 serial 1 (gettext-0.12)
dnl Copyright (C) 2003 Free Software Foundation, Inc. dnl Copyright (C) 2003 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software; the Free Software Foundation
dnl General Public License. As a special exception to the GNU General dnl gives unlimited permission to copy and/or distribute it,
dnl Public License, this file may be distributed as part of a program dnl with or without modifications, as long as this notice is preserved.
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl From Bruno Haible. dnl From Bruno Haible.
dnl Test whether <wchar.h> has the 'wint_t' type. dnl Test whether <wchar.h> has the 'wint_t' type.

View File

@ -1,14 +1,13 @@
# xsize.m4 serial 2 # xsize.m4 serial 3
dnl Copyright (C) 2003 Free Software Foundation, Inc. dnl Copyright (C) 2003-2004 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software; the Free Software Foundation
dnl General Public License. As a special exception to the GNU General dnl gives unlimited permission to copy and/or distribute it,
dnl Public License, this file may be distributed as part of a program dnl with or without modifications, as long as this notice is preserved.
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
AC_DEFUN([gl_XSIZE], AC_DEFUN([gl_XSIZE],
[ [
dnl Prerequisites of lib/xsize.h. dnl Prerequisites of lib/xsize.h.
AC_REQUIRE([gl_SIZE_MAX]) AC_REQUIRE([gl_SIZE_MAX])
AC_REQUIRE([AC_C_INLINE])
AC_CHECK_HEADERS(stdint.h) AC_CHECK_HEADERS(stdint.h)
]) ])

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-2004 by Ulrich Drepper <drepper@gnu.ai.mit.edu> # Copyright (C) 1995-1997, 2000-2006 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
@ -8,10 +8,11 @@
# 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 # Origin: gettext-0.15
PACKAGE = @PACKAGE@ PACKAGE = @PACKAGE@
VERSION = @VERSION@ VERSION = @VERSION@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
SHELL = /bin/sh SHELL = /bin/sh
@SET_MAKE@ @SET_MAKE@
@ -22,18 +23,28 @@ VPATH = @srcdir@
prefix = @prefix@ prefix = @prefix@
exec_prefix = @exec_prefix@ exec_prefix = @exec_prefix@
datarootdir = @datarootdir@
datadir = @datadir@ datadir = @datadir@
localedir = $(datadir)/locale localedir = @localedir@
gettextsrcdir = $(datadir)/gettext/po gettextsrcdir = $(datadir)/gettext/po
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@
MKINSTALLDIRS = @MKINSTALLDIRS@ mkinstalldirs = $(SHELL) @install_sh@ -d
mkinstalldirs = $(SHELL) $(MKINSTALLDIRS) mkdir_p = @mkdir_p@
GMSGFMT = @GMSGFMT@ GMSGFMT_ = @GMSGFMT@
MSGFMT = @MSGFMT@ GMSGFMT_no = @GMSGFMT@
XGETTEXT = @XGETTEXT@ GMSGFMT_yes = @GMSGFMT_015@
GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT))
MSGFMT_ = @MSGFMT@
MSGFMT_no = @MSGFMT@
MSGFMT_yes = @MSGFMT_015@
MSGFMT = $(MSGFMT_$(USE_MSGCTXT))
XGETTEXT_ = @XGETTEXT@
XGETTEXT_no = @XGETTEXT@
XGETTEXT_yes = @XGETTEXT_015@
XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT))
MSGMERGE = msgmerge MSGMERGE = msgmerge
MSGMERGE_UPDATE = @MSGMERGE@ --update MSGMERGE_UPDATE = @MSGMERGE@ --update
MSGINIT = msginit MSGINIT = msginit
@ -46,7 +57,7 @@ UPDATEPOFILES = @UPDATEPOFILES@
DUMMYPOFILES = @DUMMYPOFILES@ DUMMYPOFILES = @DUMMYPOFILES@
DISTFILES.common = Makefile.in.in remove-potcdate.sin \ DISTFILES.common = Makefile.in.in remove-potcdate.sin \
$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) $(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
DISTFILES = $(DISTFILES.common) Makevars POTFILES.in $(DOMAIN).pot stamp-po \ DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \
$(POFILES) $(GMOFILES) \ $(POFILES) $(GMOFILES) \
$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) $(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
@ -79,6 +90,12 @@ all: all-@USE_NLS@
all-yes: stamp-po all-yes: stamp-po
all-no: all-no:
# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no
# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because
# we don't want to bother translators with empty POT files). We assume that
# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty.
# In this case, stamp-po is a nop (i.e. a phony target).
# stamp-po is a timestamp denoting the last time at which the CATALOGS have # stamp-po is a timestamp denoting the last time at which the CATALOGS have
# been loosely updated. Its purpose is that when a developer or translator # been loosely updated. Its purpose is that when a developer or translator
# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, # checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
@ -88,10 +105,13 @@ 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 ! -f $(srcdir)/$(DOMAIN).pot || \
test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
@echo "touch stamp-po" @test ! -f $(srcdir)/$(DOMAIN).pot || { \
@echo timestamp > stamp-poT echo "touch stamp-po" && \
@mv stamp-poT stamp-po echo timestamp > stamp-poT && \
mv stamp-poT stamp-po; \
}
# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', # Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
# otherwise packages like GCC can not be built if only parts of the source # otherwise packages like GCC can not be built if only parts of the source
@ -100,11 +120,16 @@ stamp-po: $(srcdir)/$(DOMAIN).pot
# This target rebuilds $(DOMAIN).pot; it is an expensive operation. # This target rebuilds $(DOMAIN).pot; it is an expensive operation.
# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. # Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \
msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \
else \
msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \
fi; \
$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
--add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
--files-from=$(srcdir)/POTFILES.in \ --files-from=$(srcdir)/POTFILES.in \
--copyright-holder='$(COPYRIGHT_HOLDER)' \ --copyright-holder='$(COPYRIGHT_HOLDER)' \
--msgid-bugs-address='$(MSGID_BUGS_ADDRESS)' --msgid-bugs-address="$$msgid_bugs_address"
test ! -f $(DOMAIN).po || { \ test ! -f $(DOMAIN).po || { \
if test -f $(srcdir)/$(DOMAIN).pot; then \ if test -f $(srcdir)/$(DOMAIN).pot; then \
sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
@ -143,7 +168,7 @@ install: install-exec install-data
install-exec: install-exec:
install-data: install-data-@USE_NLS@ install-data: install-data-@USE_NLS@
if test "$(PACKAGE)" = "gettext-tools"; then \ if test "$(PACKAGE)" = "gettext-tools"; then \
$(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
for file in $(DISTFILES.common) Makevars.template; do \ for file in $(DISTFILES.common) Makevars.template; do \
$(INSTALL_DATA) $(srcdir)/$$file \ $(INSTALL_DATA) $(srcdir)/$$file \
$(DESTDIR)$(gettextsrcdir)/$$file; \ $(DESTDIR)$(gettextsrcdir)/$$file; \
@ -156,13 +181,13 @@ install-data: install-data-@USE_NLS@
fi fi
install-data-no: all install-data-no: all
install-data-yes: all install-data-yes: all
$(mkinstalldirs) $(DESTDIR)$(datadir) $(mkdir_p) $(DESTDIR)$(datadir)
@catalogs='$(CATALOGS)'; \ @catalogs='$(CATALOGS)'; \
for cat in $$catalogs; do \ for cat in $$catalogs; do \
cat=`basename $$cat`; \ cat=`basename $$cat`; \
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
dir=$(localedir)/$$lang/LC_MESSAGES; \ dir=$(localedir)/$$lang/LC_MESSAGES; \
$(mkinstalldirs) $(DESTDIR)$$dir; \ $(mkdir_p) $(DESTDIR)$$dir; \
if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
$(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
@ -202,19 +227,19 @@ installdirs: installdirs-exec installdirs-data
installdirs-exec: installdirs-exec:
installdirs-data: installdirs-data-@USE_NLS@ installdirs-data: installdirs-data-@USE_NLS@
if test "$(PACKAGE)" = "gettext-tools"; then \ if test "$(PACKAGE)" = "gettext-tools"; then \
$(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
else \ else \
: ; \ : ; \
fi fi
installdirs-data-no: installdirs-data-no:
installdirs-data-yes: installdirs-data-yes:
$(mkinstalldirs) $(DESTDIR)$(datadir) $(mkdir_p) $(DESTDIR)$(datadir)
@catalogs='$(CATALOGS)'; \ @catalogs='$(CATALOGS)'; \
for cat in $$catalogs; do \ for cat in $$catalogs; do \
cat=`basename $$cat`; \ cat=`basename $$cat`; \
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
dir=$(localedir)/$$lang/LC_MESSAGES; \ dir=$(localedir)/$$lang/LC_MESSAGES; \
$(mkinstalldirs) $(DESTDIR)$$dir; \ $(mkdir_p) $(DESTDIR)$$dir; \
for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
if test -n "$$lc"; then \ if test -n "$$lc"; then \
if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
@ -289,11 +314,14 @@ dist distdir:
$(MAKE) update-po $(MAKE) update-po
@$(MAKE) dist2 @$(MAKE) dist2
# This is a separate target because 'update-po' must be executed before. # This is a separate target because 'update-po' must be executed before.
dist2: $(DISTFILES) dist2: stamp-po $(DISTFILES)
dists="$(DISTFILES)"; \ dists="$(DISTFILES)"; \
if test "$(PACKAGE)" = "gettext-tools"; then \ if test "$(PACKAGE)" = "gettext-tools"; then \
dists="$$dists Makevars.template"; \ dists="$$dists Makevars.template"; \
fi; \ fi; \
if test -f $(srcdir)/$(DOMAIN).pot; then \
dists="$$dists $(DOMAIN).pot stamp-po"; \
fi; \
if test -f $(srcdir)/ChangeLog; then \ if test -f $(srcdir)/ChangeLog; then \
dists="$$dists ChangeLog"; \ dists="$$dists ChangeLog"; \
fi; \ fi; \
@ -305,9 +333,9 @@ dist2: $(DISTFILES)
if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
for file in $$dists; do \ for file in $$dists; do \
if test -f $$file; then \ if test -f $$file; then \
cp -p $$file $(distdir); \ cp -p $$file $(distdir) || exit 1; \
else \ else \
cp -p $(srcdir)/$$file $(distdir); \ cp -p $(srcdir)/$$file $(distdir) || exit 1; \
fi; \ fi; \
done done
@ -354,10 +382,9 @@ $(DUMMYPOFILES):
update-gmo: Makefile $(GMOFILES) update-gmo: Makefile $(GMOFILES)
@: @:
Makefile: Makefile.in.in $(top_builddir)/config.status @POMAKEFILEDEPS@ Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@
cd $(top_builddir) \ cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ && $(SHELL) ./config.status $(subdir)/$@.in po-directories
$(SHELL) ./config.status
force: force:

193
po/be.po
View File

@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnupg 1.2.2\n" "Project-Id-Version: gnupg 1.2.2\n"
"Report-Msgid-Bugs-To: translations@gnupg.org\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n"
"POT-Creation-Date: 2006-11-10 00:40+0100\n" "POT-Creation-Date: 2006-11-21 10:53+0100\n"
"PO-Revision-Date: 2003-10-30 16:35+0200\n" "PO-Revision-Date: 2003-10-30 16:35+0200\n"
"Last-Translator: Ales Nyakhaychyk <nab@mail.by>\n" "Last-Translator: Ales Nyakhaychyk <nab@mail.by>\n"
"Language-Team: Belarusian <i18n@mova.org>\n" "Language-Team: Belarusian <i18n@mova.org>\n"
@ -133,7 +133,7 @@ msgid ""
"0Awithin gpg-agent's key storage" "0Awithin gpg-agent's key storage"
msgstr "" msgstr ""
#: agent/command-ssh.c:2857 #: agent/command-ssh.c:2853
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to create stream from socket: %s\n" msgid "failed to create stream from socket: %s\n"
msgstr "%s: немагчыма стварыць хэш-табліцу: %s\n" msgstr "%s: немагчыма стварыць хэш-табліцу: %s\n"
@ -283,160 +283,154 @@ msgstr ""
msgid "|FILE|write environment settings also to FILE" msgid "|FILE|write environment settings also to FILE"
msgstr "" msgstr ""
#: agent/gpg-agent.c:238 agent/preset-passphrase.c:96 agent/protect-tool.c:143 #: agent/gpg-agent.c:241 agent/preset-passphrase.c:96 agent/protect-tool.c:143
#: scd/scdaemon.c:190 sm/gpgsm.c:517 tools/gpg-connect-agent.c:123 #: scd/scdaemon.c:190 sm/gpgsm.c:517 tools/gpg-connect-agent.c:123
#: tools/gpgconf.c:86 tools/symcryptrun.c:225 #: tools/gpgconf.c:86 tools/symcryptrun.c:225
#, fuzzy #, fuzzy
msgid "Please report bugs to <" msgid "Please report bugs to <"
msgstr "Калі ласка, паведамляйце пра памылкі на <gnupg-bugs@gnu.org>.\n" msgstr "Калі ласка, паведамляйце пра памылкі на <gnupg-bugs@gnu.org>.\n"
#: agent/gpg-agent.c:238 agent/preset-passphrase.c:96 agent/protect-tool.c:143 #: agent/gpg-agent.c:244
#: scd/scdaemon.c:190 sm/gpgsm.c:517 tools/gpg-connect-agent.c:123
#: tools/gpgconf.c:86 tools/symcryptrun.c:225
msgid ">.\n"
msgstr ""
#: agent/gpg-agent.c:241
#, fuzzy #, fuzzy
msgid "Usage: gpg-agent [options] (-h for help)" msgid "Usage: gpg-agent [options] (-h for help)"
msgstr "Выкарыстаньне: gpg [выбары] [файлы] (-h для даведкі)" msgstr "Выкарыстаньне: gpg [выбары] [файлы] (-h для даведкі)"
#: agent/gpg-agent.c:243 #: agent/gpg-agent.c:246
msgid "" msgid ""
"Syntax: gpg-agent [options] [command [args]]\n" "Syntax: gpg-agent [options] [command [args]]\n"
"Secret key management for GnuPG\n" "Secret key management for GnuPG\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:302 #: agent/gpg-agent.c:305
#, c-format #, c-format
msgid "out of core in secure memory while allocating %lu bytes" msgid "out of core in secure memory while allocating %lu bytes"
msgstr "" msgstr ""
#: agent/gpg-agent.c:305 #: agent/gpg-agent.c:308
#, c-format #, c-format
msgid "out of core while allocating %lu bytes" msgid "out of core while allocating %lu bytes"
msgstr "" msgstr ""
#: agent/gpg-agent.c:336 g10/gpg.c:923 scd/scdaemon.c:264 sm/gpgsm.c:646 #: agent/gpg-agent.c:339 g10/gpg.c:923 scd/scdaemon.c:264 sm/gpgsm.c:646
#, c-format #, c-format
msgid "invalid debug-level `%s' given\n" msgid "invalid debug-level `%s' given\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:507 agent/protect-tool.c:1073 g10/gpg.c:1808 #: agent/gpg-agent.c:510 agent/protect-tool.c:1073 g10/gpg.c:1808
#: kbx/kbxutil.c:432 scd/scdaemon.c:356 sm/gpgsm.c:767 #: kbx/kbxutil.c:432 scd/scdaemon.c:356 sm/gpgsm.c:767
#: tools/symcryptrun.c:1056 #: tools/symcryptrun.c:1056
#, c-format #, c-format
msgid "libgcrypt is too old (need %s, have %s)\n" msgid "libgcrypt is too old (need %s, have %s)\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:601 g10/gpg.c:2007 scd/scdaemon.c:433 sm/gpgsm.c:864 #: agent/gpg-agent.c:604 g10/gpg.c:2007 scd/scdaemon.c:433 sm/gpgsm.c:864
#, c-format #, c-format
msgid "NOTE: no default option file `%s'\n" msgid "NOTE: no default option file `%s'\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:606 agent/gpg-agent.c:1129 g10/gpg.c:2011 #: agent/gpg-agent.c:609 agent/gpg-agent.c:1160 g10/gpg.c:2011
#: scd/scdaemon.c:438 sm/gpgsm.c:868 tools/symcryptrun.c:989 #: scd/scdaemon.c:438 sm/gpgsm.c:868 tools/symcryptrun.c:989
#, c-format #, c-format
msgid "option file `%s': %s\n" msgid "option file `%s': %s\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:614 g10/gpg.c:2018 scd/scdaemon.c:446 sm/gpgsm.c:875 #: agent/gpg-agent.c:617 g10/gpg.c:2018 scd/scdaemon.c:446 sm/gpgsm.c:875
#, c-format #, c-format
msgid "reading options from `%s'\n" msgid "reading options from `%s'\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:914 g10/plaintext.c:136 g10/plaintext.c:141 #: agent/gpg-agent.c:930 g10/plaintext.c:136 g10/plaintext.c:141
#: g10/plaintext.c:158 #: g10/plaintext.c:158
#, c-format #, c-format
msgid "error creating `%s': %s\n" msgid "error creating `%s': %s\n"
msgstr "памылка стварэньня \"%s\": %s\n" msgstr "памылка стварэньня \"%s\": %s\n"
#: agent/gpg-agent.c:1179 agent/gpg-agent.c:1282 agent/gpg-agent.c:1286 #: agent/gpg-agent.c:1210 agent/gpg-agent.c:1313 agent/gpg-agent.c:1317
#: agent/gpg-agent.c:1322 agent/gpg-agent.c:1326 g10/exec.c:174 #: agent/gpg-agent.c:1353 agent/gpg-agent.c:1357 g10/exec.c:174
#: g10/openfile.c:416 scd/scdaemon.c:916 #: g10/openfile.c:416 scd/scdaemon.c:932
#, fuzzy, c-format #, fuzzy, c-format
msgid "can't create directory `%s': %s\n" msgid "can't create directory `%s': %s\n"
msgstr "%s: немагчыма стварыць тэчку: %s\n" msgstr "%s: немагчыма стварыць тэчку: %s\n"
#: agent/gpg-agent.c:1193 scd/scdaemon.c:930 #: agent/gpg-agent.c:1224 scd/scdaemon.c:946
msgid "name of socket too long\n" msgid "name of socket too long\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1219 scd/scdaemon.c:956 #: agent/gpg-agent.c:1250 scd/scdaemon.c:972
#, fuzzy, c-format #, fuzzy, c-format
msgid "can't create socket: %s\n" msgid "can't create socket: %s\n"
msgstr "%s: немагчыма стварыць тэчку: %s\n" msgstr "%s: немагчыма стварыць тэчку: %s\n"
#: agent/gpg-agent.c:1248 scd/scdaemon.c:985 #: agent/gpg-agent.c:1279 scd/scdaemon.c:1001
#, fuzzy, c-format #, fuzzy, c-format
msgid "error binding socket to `%s': %s\n" msgid "error binding socket to `%s': %s\n"
msgstr "памылка стварэньня \"%s\": %s\n" msgstr "памылка стварэньня \"%s\": %s\n"
#: agent/gpg-agent.c:1256 scd/scdaemon.c:993 #: agent/gpg-agent.c:1287 scd/scdaemon.c:1009
#, fuzzy, c-format #, fuzzy, c-format
msgid "listen() failed: %s\n" msgid "listen() failed: %s\n"
msgstr "збой падпісаньня: %s\n" msgstr "збой падпісаньня: %s\n"
#: agent/gpg-agent.c:1262 scd/scdaemon.c:999 #: agent/gpg-agent.c:1293 scd/scdaemon.c:1015
#, fuzzy, c-format #, fuzzy, c-format
msgid "listening on socket `%s'\n" msgid "listening on socket `%s'\n"
msgstr "запіс у stdout\n" msgstr "запіс у stdout\n"
#: agent/gpg-agent.c:1290 agent/gpg-agent.c:1332 g10/openfile.c:419 #: agent/gpg-agent.c:1321 agent/gpg-agent.c:1363 g10/openfile.c:419
#, fuzzy, c-format #, fuzzy, c-format
msgid "directory `%s' created\n" msgid "directory `%s' created\n"
msgstr "%s: тэчка створана\n" msgstr "%s: тэчка створана\n"
#: agent/gpg-agent.c:1338 #: agent/gpg-agent.c:1369
#, fuzzy, c-format #, fuzzy, c-format
msgid "stat() failed for `%s': %s\n" msgid "stat() failed for `%s': %s\n"
msgstr "немагчыма адкрыць %s: %s\n" msgstr "немагчыма адкрыць %s: %s\n"
#: agent/gpg-agent.c:1342 #: agent/gpg-agent.c:1373
#, fuzzy, c-format #, fuzzy, c-format
msgid "can't use `%s' as home directory\n" msgid "can't use `%s' as home directory\n"
msgstr "%s: немагчыма стварыць тэчку: %s\n" msgstr "%s: немагчыма стварыць тэчку: %s\n"
#: agent/gpg-agent.c:1441 #: agent/gpg-agent.c:1475
#, c-format #, c-format
msgid "handler 0x%lx for fd %d started\n" msgid "handler 0x%lx for fd %d started\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1446 #: agent/gpg-agent.c:1480
#, c-format #, c-format
msgid "handler 0x%lx for fd %d terminated\n" msgid "handler 0x%lx for fd %d terminated\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1460 #: agent/gpg-agent.c:1497
#, c-format #, c-format
msgid "ssh handler 0x%lx for fd %d started\n" msgid "ssh handler 0x%lx for fd %d started\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1465 #: agent/gpg-agent.c:1502
#, c-format #, c-format
msgid "ssh handler 0x%lx for fd %d terminated\n" msgid "ssh handler 0x%lx for fd %d terminated\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1559 scd/scdaemon.c:1115 #: agent/gpg-agent.c:1598 scd/scdaemon.c:1134
#, c-format #, c-format
msgid "pth_select failed: %s - waiting 1s\n" msgid "pth_select failed: %s - waiting 1s\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1643 scd/scdaemon.c:1172 #: agent/gpg-agent.c:1704 scd/scdaemon.c:1201
#, c-format #, c-format
msgid "%s %s stopped\n" msgid "%s %s stopped\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1664 #: agent/gpg-agent.c:1725
msgid "no gpg-agent running in this session\n" msgid "no gpg-agent running in this session\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1674 common/simple-pwquery.c:324 g10/call-agent.c:137 #: agent/gpg-agent.c:1735 common/simple-pwquery.c:324 g10/call-agent.c:137
#: sm/call-agent.c:144 tools/gpg-connect-agent.c:713 #: sm/call-agent.c:144 tools/gpg-connect-agent.c:713
msgid "malformed GPG_AGENT_INFO environment variable\n" msgid "malformed GPG_AGENT_INFO environment variable\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1686 common/simple-pwquery.c:336 g10/call-agent.c:149 #: agent/gpg-agent.c:1747 common/simple-pwquery.c:336 g10/call-agent.c:149
#: sm/call-agent.c:156 tools/gpg-connect-agent.c:724 #: sm/call-agent.c:156 tools/gpg-connect-agent.c:724
#, c-format #, c-format
msgid "gpg-agent protocol version %d is not supported\n" msgid "gpg-agent protocol version %d is not supported\n"
@ -4136,7 +4130,7 @@ msgstr "збой падпісаньня: %s\n"
msgid "Signature expires at %s\n" msgid "Signature expires at %s\n"
msgstr "Подпіс створаны ў %.*s з выкарыстаньнем %s ID ключа %08lX\n" msgstr "Подпіс створаны ў %.*s з выкарыстаньнем %s ID ключа %08lX\n"
#: g10/keygen.c:1856 #: g10/keygen.c:1854
msgid "" msgid ""
"Your system can't display dates beyond 2038.\n" "Your system can't display dates beyond 2038.\n"
"However, it will be correctly handled up to 2106.\n" "However, it will be correctly handled up to 2106.\n"
@ -4348,7 +4342,7 @@ msgstr "%s: немагчыма стварыць тэчку: %s\n"
msgid "NOTE: backup of card key saved to `%s'\n" msgid "NOTE: backup of card key saved to `%s'\n"
msgstr "" msgstr ""
#: g10/keyid.c:539 g10/keyid.c:551 g10/keyid.c:563 g10/keyid.c:575 #: g10/keyid.c:540 g10/keyid.c:552 g10/keyid.c:564 g10/keyid.c:576
msgid "never " msgid "never "
msgstr "" msgstr ""
@ -5355,26 +5349,26 @@ msgstr ""
msgid "okay, we are the anonymous recipient.\n" msgid "okay, we are the anonymous recipient.\n"
msgstr "" msgstr ""
#: g10/pubkey-enc.c:226 #: g10/pubkey-enc.c:227
msgid "old encoding of the DEK is not supported\n" msgid "old encoding of the DEK is not supported\n"
msgstr "" msgstr ""
#: g10/pubkey-enc.c:247 #: g10/pubkey-enc.c:248
#, c-format #, c-format
msgid "cipher algorithm %d%s is unknown or disabled\n" msgid "cipher algorithm %d%s is unknown or disabled\n"
msgstr "" msgstr ""
#: g10/pubkey-enc.c:285 #: g10/pubkey-enc.c:286
#, c-format #, c-format
msgid "WARNING: cipher algorithm %s not found in recipient preferences\n" msgid "WARNING: cipher algorithm %s not found in recipient preferences\n"
msgstr "" msgstr ""
#: g10/pubkey-enc.c:305 #: g10/pubkey-enc.c:306
#, c-format #, c-format
msgid "NOTE: secret key %s expired at %s\n" msgid "NOTE: secret key %s expired at %s\n"
msgstr "" msgstr ""
#: g10/pubkey-enc.c:311 #: g10/pubkey-enc.c:312
msgid "NOTE: key has been revoked" msgid "NOTE: key has been revoked"
msgstr "" msgstr ""
@ -5533,12 +5527,12 @@ msgstr ""
msgid "DSA requires the hash length to be a multiple of 8 bits\n" msgid "DSA requires the hash length to be a multiple of 8 bits\n"
msgstr "" msgstr ""
#: g10/seskey.c:243 #: g10/seskey.c:242
#, c-format #, c-format
msgid "DSA key %s uses an unsafe (%u bit) hash\n" msgid "DSA key %s uses an unsafe (%u bit) hash\n"
msgstr "" msgstr ""
#: g10/seskey.c:255 #: g10/seskey.c:254
#, c-format #, c-format
msgid "DSA key %s requires a %u bit or larger hash\n" msgid "DSA key %s requires a %u bit or larger hash\n"
msgstr "" msgstr ""
@ -6050,7 +6044,7 @@ msgstr ""
msgid "input line %u too long or missing LF\n" msgid "input line %u too long or missing LF\n"
msgstr "" msgstr ""
#: jnlib/logging.c:619 #: jnlib/logging.c:626
#, c-format #, c-format
msgid "you found a bug ... (%s:%d)\n" msgid "you found a bug ... (%s:%d)\n"
msgstr "" msgstr ""
@ -6083,10 +6077,6 @@ msgstr ""
msgid "Please report bugs to " msgid "Please report bugs to "
msgstr "Калі ласка, паведамляйце пра памылкі на <gnupg-bugs@gnu.org>.\n" msgstr "Калі ласка, паведамляйце пра памылкі на <gnupg-bugs@gnu.org>.\n"
#: kbx/kbxutil.c:108
msgid ".\n"
msgstr ""
#: kbx/kbxutil.c:112 #: kbx/kbxutil.c:112
#, fuzzy #, fuzzy
msgid "Usage: kbxutil [options] [files] (-h for help)" msgid "Usage: kbxutil [options] [files] (-h for help)"
@ -6117,47 +6107,52 @@ msgstr "%s: немагчыма стварыць хэш-табліцу: %s\n"
msgid "reading public key failed: %s\n" msgid "reading public key failed: %s\n"
msgstr "грамадскі ключ ня знойдзены" msgstr "грамадскі ключ ня знойдзены"
#: scd/app-openpgp.c:1017 scd/app-openpgp.c:1953 #: scd/app-openpgp.c:1017 scd/app-openpgp.c:1978
msgid "response does not contain the public key data\n" msgid "response does not contain the public key data\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1025 scd/app-openpgp.c:1961 #: scd/app-openpgp.c:1025 scd/app-openpgp.c:1986
msgid "response does not contain the RSA modulus\n" msgid "response does not contain the RSA modulus\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1034 scd/app-openpgp.c:1971 #: scd/app-openpgp.c:1034 scd/app-openpgp.c:1996
msgid "response does not contain the RSA public exponent\n" msgid "response does not contain the RSA public exponent\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1302 scd/app-openpgp.c:1390 scd/app-openpgp.c:2222 #: scd/app-openpgp.c:1306
msgid "||Please enter your PIN at the reader's keypad"
msgstr ""
#: scd/app-openpgp.c:1310 scd/app-openpgp.c:1324 scd/app-openpgp.c:1415
#: scd/app-openpgp.c:2247
#, c-format #, c-format
msgid "PIN callback returned error: %s\n" msgid "PIN callback returned error: %s\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1308 scd/app-openpgp.c:1396 scd/app-openpgp.c:2228 #: scd/app-openpgp.c:1331 scd/app-openpgp.c:1421 scd/app-openpgp.c:2253
#, c-format #, c-format
msgid "PIN for CHV%d is too short; minimum length is %d\n" msgid "PIN for CHV%d is too short; minimum length is %d\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1317 scd/app-openpgp.c:1331 scd/app-openpgp.c:1406 #: scd/app-openpgp.c:1342 scd/app-openpgp.c:1356 scd/app-openpgp.c:1431
#: scd/app-openpgp.c:2237 scd/app-openpgp.c:2251 #: scd/app-openpgp.c:2262 scd/app-openpgp.c:2276
#, fuzzy, c-format #, fuzzy, c-format
msgid "verify CHV%d failed: %s\n" msgid "verify CHV%d failed: %s\n"
msgstr "збой падпісаньня: %s\n" msgstr "збой падпісаньня: %s\n"
#: scd/app-openpgp.c:1354 #: scd/app-openpgp.c:1379
msgid "access to admin commands is not configured\n" msgid "access to admin commands is not configured\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1369 scd/app-openpgp.c:2461 #: scd/app-openpgp.c:1394 scd/app-openpgp.c:2486
msgid "error retrieving CHV status from card\n" msgid "error retrieving CHV status from card\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1375 scd/app-openpgp.c:2470 #: scd/app-openpgp.c:1400 scd/app-openpgp.c:2495
msgid "card is permanently locked!\n" msgid "card is permanently locked!\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1380 #: scd/app-openpgp.c:1405
#, c-format #, c-format
msgid "%d Admin PIN attempts remaining before card is permanently locked\n" msgid "%d Admin PIN attempts remaining before card is permanently locked\n"
msgstr "" msgstr ""
@ -6165,112 +6160,112 @@ msgstr ""
#. TRANSLATORS: Do not translate the "|A|" prefix but #. TRANSLATORS: Do not translate the "|A|" prefix but
#. keep it at the start of the string. We need this elsewhere #. keep it at the start of the string. We need this elsewhere
#. to get some infos on the string. #. to get some infos on the string.
#: scd/app-openpgp.c:1387 #: scd/app-openpgp.c:1412
msgid "|A|Admin PIN" msgid "|A|Admin PIN"
msgstr "" msgstr ""
#. TRANSLATORS: Do not translate the "|*|" prefixes but #. TRANSLATORS: Do not translate the "|*|" prefixes but
#. keep it at the start of the string. We need this elsewhere #. keep it at the start of the string. We need this elsewhere
#. to get some infos on the string. #. to get some infos on the string.
#: scd/app-openpgp.c:1536 #: scd/app-openpgp.c:1561
msgid "|AN|New Admin PIN" msgid "|AN|New Admin PIN"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1536 #: scd/app-openpgp.c:1561
msgid "|N|New PIN" msgid "|N|New PIN"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1540 #: scd/app-openpgp.c:1565
#, fuzzy, c-format #, fuzzy, c-format
msgid "error getting new PIN: %s\n" msgid "error getting new PIN: %s\n"
msgstr "памылка стварэньня \"%s\": %s\n" msgstr "памылка стварэньня \"%s\": %s\n"
#: scd/app-openpgp.c:1590 scd/app-openpgp.c:2039 #: scd/app-openpgp.c:1615 scd/app-openpgp.c:2064
msgid "error reading application data\n" msgid "error reading application data\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1596 scd/app-openpgp.c:2046 #: scd/app-openpgp.c:1621 scd/app-openpgp.c:2071
#, fuzzy #, fuzzy
msgid "error reading fingerprint DO\n" msgid "error reading fingerprint DO\n"
msgstr "паказаць ключы й адбіткі пальцаў" msgstr "паказаць ключы й адбіткі пальцаў"
#: scd/app-openpgp.c:1606 #: scd/app-openpgp.c:1631
#, fuzzy #, fuzzy
msgid "key already exists\n" msgid "key already exists\n"
msgstr "выдаліць ключы са зьвязку сакрэтных ключоў" msgstr "выдаліць ключы са зьвязку сакрэтных ключоў"
#: scd/app-openpgp.c:1610 #: scd/app-openpgp.c:1635
msgid "existing key will be replaced\n" msgid "existing key will be replaced\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1612 #: scd/app-openpgp.c:1637
#, fuzzy #, fuzzy
msgid "generating new key\n" msgid "generating new key\n"
msgstr "стварыць новую пару ключоў" msgstr "стварыць новую пару ключоў"
#: scd/app-openpgp.c:1779 #: scd/app-openpgp.c:1804
msgid "creation timestamp missing\n" msgid "creation timestamp missing\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1786 #: scd/app-openpgp.c:1811
#, c-format #, c-format
msgid "RSA modulus missing or not of size %d bits\n" msgid "RSA modulus missing or not of size %d bits\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1793 #: scd/app-openpgp.c:1818
#, c-format #, c-format
msgid "RSA public exponent missing or larger than %d bits\n" msgid "RSA public exponent missing or larger than %d bits\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1801 scd/app-openpgp.c:1808 #: scd/app-openpgp.c:1826 scd/app-openpgp.c:1833
#, c-format #, c-format
msgid "RSA prime %s missing or not of size %d bits\n" msgid "RSA prime %s missing or not of size %d bits\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1871 #: scd/app-openpgp.c:1896
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to store the key: %s\n" msgid "failed to store the key: %s\n"
msgstr "%s: немагчыма стварыць хэш-табліцу: %s\n" msgstr "%s: немагчыма стварыць хэш-табліцу: %s\n"
#: scd/app-openpgp.c:1930 #: scd/app-openpgp.c:1955
msgid "please wait while key is being generated ...\n" msgid "please wait while key is being generated ...\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1944 #: scd/app-openpgp.c:1969
#, fuzzy #, fuzzy
msgid "generating key failed\n" msgid "generating key failed\n"
msgstr "стварыць новую пару ключоў" msgstr "стварыць новую пару ключоў"
#: scd/app-openpgp.c:1947 #: scd/app-openpgp.c:1972
#, c-format #, c-format
msgid "key generation completed (%d seconds)\n" msgid "key generation completed (%d seconds)\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:2004 #: scd/app-openpgp.c:2029
msgid "invalid structure of OpenPGP card (DO 0x93)\n" msgid "invalid structure of OpenPGP card (DO 0x93)\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:2141 #: scd/app-openpgp.c:2166
#, fuzzy, c-format #, fuzzy, c-format
msgid "card does not support digest algorithm %s\n" msgid "card does not support digest algorithm %s\n"
msgstr "нерэчаісны хэш-альгарытм \"%s\"\n" msgstr "нерэчаісны хэш-альгарытм \"%s\"\n"
#: scd/app-openpgp.c:2202 #: scd/app-openpgp.c:2227
#, c-format #, c-format
msgid "signatures created so far: %lu\n" msgid "signatures created so far: %lu\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:2210 #: scd/app-openpgp.c:2235
#, c-format #, c-format
msgid "||Please enter the PIN%%0A[sigs done: %lu]" msgid "||Please enter the PIN%%0A[sigs done: %lu]"
msgstr "" msgstr ""
#: scd/app-openpgp.c:2475 #: scd/app-openpgp.c:2500
msgid "" msgid ""
"verification of Admin PIN is currently prohibited through this command\n" "verification of Admin PIN is currently prohibited through this command\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:2548 scd/app-openpgp.c:2558 #: scd/app-openpgp.c:2573 scd/app-openpgp.c:2583
#, c-format #, c-format
msgid "can't access %s - invalid OpenPGP card?\n" msgid "can't access %s - invalid OpenPGP card?\n"
msgstr "" msgstr ""
@ -6321,16 +6316,16 @@ msgid ""
"Smartcard daemon for GnuPG\n" "Smartcard daemon for GnuPG\n"
msgstr "" msgstr ""
#: scd/scdaemon.c:672 #: scd/scdaemon.c:682
msgid "please use the option `--daemon' to run the program in the background\n" msgid "please use the option `--daemon' to run the program in the background\n"
msgstr "" msgstr ""
#: scd/scdaemon.c:1013 #: scd/scdaemon.c:1030
#, c-format #, c-format
msgid "handler for fd %d started\n" msgid "handler for fd %d started\n"
msgstr "" msgstr ""
#: scd/scdaemon.c:1018 #: scd/scdaemon.c:1035
#, c-format #, c-format
msgid "handler for fd %d terminated\n" msgid "handler for fd %d terminated\n"
msgstr "" msgstr ""
@ -6501,35 +6496,35 @@ msgstr "DSA патрабуе выкарыстаньня 160-і бітавага
msgid "(this is the MD2 algorithm)\n" msgid "(this is the MD2 algorithm)\n"
msgstr "" msgstr ""
#: sm/certdump.c:61 sm/certdump.c:147 #: sm/certdump.c:68 sm/certdump.c:154
#, fuzzy #, fuzzy
msgid "none" msgid "none"
msgstr "no [не]" msgstr "no [не]"
#: sm/certdump.c:156 #: sm/certdump.c:163
#, fuzzy #, fuzzy
msgid "[none]" msgid "[none]"
msgstr "невядомая вэрсыя" msgstr "невядомая вэрсыя"
#: sm/certdump.c:529 sm/certdump.c:592 #: sm/certdump.c:536 sm/certdump.c:599
#, fuzzy #, fuzzy
msgid "[Error - invalid encoding]" msgid "[Error - invalid encoding]"
msgstr "паказаць ключы й адбіткі пальцаў" msgstr "паказаць ключы й адбіткі пальцаў"
#: sm/certdump.c:537 #: sm/certdump.c:544
msgid "[Error - out of core]" msgid "[Error - out of core]"
msgstr "" msgstr ""
#: sm/certdump.c:572 #: sm/certdump.c:579
msgid "[Error - No name]" msgid "[Error - No name]"
msgstr "" msgstr ""
#: sm/certdump.c:597 #: sm/certdump.c:604
#, fuzzy #, fuzzy
msgid "[Error - invalid DN]" msgid "[Error - invalid DN]"
msgstr "паказаць ключы й адбіткі пальцаў" msgstr "паказаць ключы й адбіткі пальцаў"
#: sm/certdump.c:758 #: sm/certdump.c:818
#, fuzzy, c-format #, fuzzy, c-format
msgid "" msgid ""
"Please enter the passphrase to unlock the secret key for:\n" "Please enter the passphrase to unlock the secret key for:\n"
@ -7027,12 +7022,12 @@ msgstr ""
msgid " using certificate ID %08lX\n" msgid " using certificate ID %08lX\n"
msgstr "" msgstr ""
#: sm/verify.c:506 #: sm/verify.c:509
#, fuzzy #, fuzzy
msgid "Good signature from" msgid "Good signature from"
msgstr "нерэчаісны хэш-альгарытм \"%s\"\n" msgstr "нерэчаісны хэш-альгарытм \"%s\"\n"
#: sm/verify.c:507 #: sm/verify.c:510
msgid " aka" msgid " aka"
msgstr "" msgstr ""

198
po/ca.po
View File

@ -27,7 +27,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnupg 1.4.0\n" "Project-Id-Version: gnupg 1.4.0\n"
"Report-Msgid-Bugs-To: translations@gnupg.org\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n"
"POT-Creation-Date: 2006-11-10 00:40+0100\n" "POT-Creation-Date: 2006-11-21 10:53+0100\n"
"PO-Revision-Date: 2005-02-04 02:04+0100\n" "PO-Revision-Date: 2005-02-04 02:04+0100\n"
"Last-Translator: Jordi Mallach <jordi@gnu.org>\n" "Last-Translator: Jordi Mallach <jordi@gnu.org>\n"
"Language-Team: Catalan <ca@dodds.net>\n" "Language-Team: Catalan <ca@dodds.net>\n"
@ -155,7 +155,7 @@ msgid ""
"0Awithin gpg-agent's key storage" "0Awithin gpg-agent's key storage"
msgstr "" msgstr ""
#: agent/command-ssh.c:2857 #: agent/command-ssh.c:2853
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to create stream from socket: %s\n" msgid "failed to create stream from socket: %s\n"
msgstr "%s: no s'ha pogut crear la taula de dispersió: %s\n" msgstr "%s: no s'ha pogut crear la taula de dispersió: %s\n"
@ -312,161 +312,155 @@ msgstr ""
msgid "|FILE|write environment settings also to FILE" msgid "|FILE|write environment settings also to FILE"
msgstr "" msgstr ""
#: agent/gpg-agent.c:238 agent/preset-passphrase.c:96 agent/protect-tool.c:143 #: agent/gpg-agent.c:241 agent/preset-passphrase.c:96 agent/protect-tool.c:143
#: scd/scdaemon.c:190 sm/gpgsm.c:517 tools/gpg-connect-agent.c:123 #: scd/scdaemon.c:190 sm/gpgsm.c:517 tools/gpg-connect-agent.c:123
#: tools/gpgconf.c:86 tools/symcryptrun.c:225 #: tools/gpgconf.c:86 tools/symcryptrun.c:225
#, fuzzy #, fuzzy
msgid "Please report bugs to <" msgid "Please report bugs to <"
msgstr "Si us plau, informeu sobre els errors a <gnupg-bugs@gnu.org>.\n" msgstr "Si us plau, informeu sobre els errors a <gnupg-bugs@gnu.org>.\n"
#: agent/gpg-agent.c:238 agent/preset-passphrase.c:96 agent/protect-tool.c:143 #: agent/gpg-agent.c:244
#: scd/scdaemon.c:190 sm/gpgsm.c:517 tools/gpg-connect-agent.c:123
#: tools/gpgconf.c:86 tools/symcryptrun.c:225
msgid ">.\n"
msgstr ""
#: agent/gpg-agent.c:241
#, fuzzy #, fuzzy
msgid "Usage: gpg-agent [options] (-h for help)" msgid "Usage: gpg-agent [options] (-h for help)"
msgstr "Forma d'ús: gpg [opcions] [fitxers] (-h per a veure l'ajuda)" msgstr "Forma d'ús: gpg [opcions] [fitxers] (-h per a veure l'ajuda)"
#: agent/gpg-agent.c:243 #: agent/gpg-agent.c:246
msgid "" msgid ""
"Syntax: gpg-agent [options] [command [args]]\n" "Syntax: gpg-agent [options] [command [args]]\n"
"Secret key management for GnuPG\n" "Secret key management for GnuPG\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:302 #: agent/gpg-agent.c:305
#, c-format #, c-format
msgid "out of core in secure memory while allocating %lu bytes" msgid "out of core in secure memory while allocating %lu bytes"
msgstr "" msgstr ""
#: agent/gpg-agent.c:305 #: agent/gpg-agent.c:308
#, c-format #, c-format
msgid "out of core while allocating %lu bytes" msgid "out of core while allocating %lu bytes"
msgstr "" msgstr ""
#: agent/gpg-agent.c:336 g10/gpg.c:923 scd/scdaemon.c:264 sm/gpgsm.c:646 #: agent/gpg-agent.c:339 g10/gpg.c:923 scd/scdaemon.c:264 sm/gpgsm.c:646
#, c-format #, c-format
msgid "invalid debug-level `%s' given\n" msgid "invalid debug-level `%s' given\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:507 agent/protect-tool.c:1073 g10/gpg.c:1808 #: agent/gpg-agent.c:510 agent/protect-tool.c:1073 g10/gpg.c:1808
#: kbx/kbxutil.c:432 scd/scdaemon.c:356 sm/gpgsm.c:767 #: kbx/kbxutil.c:432 scd/scdaemon.c:356 sm/gpgsm.c:767
#: tools/symcryptrun.c:1056 #: tools/symcryptrun.c:1056
#, c-format #, c-format
msgid "libgcrypt is too old (need %s, have %s)\n" msgid "libgcrypt is too old (need %s, have %s)\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:601 g10/gpg.c:2007 scd/scdaemon.c:433 sm/gpgsm.c:864 #: agent/gpg-agent.c:604 g10/gpg.c:2007 scd/scdaemon.c:433 sm/gpgsm.c:864
#, c-format #, c-format
msgid "NOTE: no default option file `%s'\n" msgid "NOTE: no default option file `%s'\n"
msgstr "NOTA: no existeix el fitxer d'opcions predeterminades «%s»\n" msgstr "NOTA: no existeix el fitxer d'opcions predeterminades «%s»\n"
#: agent/gpg-agent.c:606 agent/gpg-agent.c:1129 g10/gpg.c:2011 #: agent/gpg-agent.c:609 agent/gpg-agent.c:1160 g10/gpg.c:2011
#: scd/scdaemon.c:438 sm/gpgsm.c:868 tools/symcryptrun.c:989 #: scd/scdaemon.c:438 sm/gpgsm.c:868 tools/symcryptrun.c:989
#, c-format #, c-format
msgid "option file `%s': %s\n" msgid "option file `%s': %s\n"
msgstr "fitxer d'opcions «%s»: %s\n" msgstr "fitxer d'opcions «%s»: %s\n"
#: agent/gpg-agent.c:614 g10/gpg.c:2018 scd/scdaemon.c:446 sm/gpgsm.c:875 #: agent/gpg-agent.c:617 g10/gpg.c:2018 scd/scdaemon.c:446 sm/gpgsm.c:875
#, c-format #, c-format
msgid "reading options from `%s'\n" msgid "reading options from `%s'\n"
msgstr "s'estan llegint opcions de «%s»\n" msgstr "s'estan llegint opcions de «%s»\n"
#: agent/gpg-agent.c:914 g10/plaintext.c:136 g10/plaintext.c:141 #: agent/gpg-agent.c:930 g10/plaintext.c:136 g10/plaintext.c:141
#: g10/plaintext.c:158 #: g10/plaintext.c:158
#, c-format #, c-format
msgid "error creating `%s': %s\n" msgid "error creating `%s': %s\n"
msgstr "error en crear «%s»: %s\n" msgstr "error en crear «%s»: %s\n"
#: agent/gpg-agent.c:1179 agent/gpg-agent.c:1282 agent/gpg-agent.c:1286 #: agent/gpg-agent.c:1210 agent/gpg-agent.c:1313 agent/gpg-agent.c:1317
#: agent/gpg-agent.c:1322 agent/gpg-agent.c:1326 g10/exec.c:174 #: agent/gpg-agent.c:1353 agent/gpg-agent.c:1357 g10/exec.c:174
#: g10/openfile.c:416 scd/scdaemon.c:916 #: g10/openfile.c:416 scd/scdaemon.c:932
#, c-format #, c-format
msgid "can't create directory `%s': %s\n" msgid "can't create directory `%s': %s\n"
msgstr "no es pot crear el directori «%s»: %s\n" msgstr "no es pot crear el directori «%s»: %s\n"
#: agent/gpg-agent.c:1193 scd/scdaemon.c:930 #: agent/gpg-agent.c:1224 scd/scdaemon.c:946
msgid "name of socket too long\n" msgid "name of socket too long\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1219 scd/scdaemon.c:956 #: agent/gpg-agent.c:1250 scd/scdaemon.c:972
#, fuzzy, c-format #, fuzzy, c-format
msgid "can't create socket: %s\n" msgid "can't create socket: %s\n"
msgstr "no s'ha pogut crear «%s»: %s\n" msgstr "no s'ha pogut crear «%s»: %s\n"
#: agent/gpg-agent.c:1248 scd/scdaemon.c:985 #: agent/gpg-agent.c:1279 scd/scdaemon.c:1001
#, fuzzy, c-format #, fuzzy, c-format
msgid "error binding socket to `%s': %s\n" msgid "error binding socket to `%s': %s\n"
msgstr "error mentre s'enviava a «%s»: %s\n" msgstr "error mentre s'enviava a «%s»: %s\n"
#: agent/gpg-agent.c:1256 scd/scdaemon.c:993 #: agent/gpg-agent.c:1287 scd/scdaemon.c:1009
#, fuzzy, c-format #, fuzzy, c-format
msgid "listen() failed: %s\n" msgid "listen() failed: %s\n"
msgstr "ha fallat l'actualització: %s\n" msgstr "ha fallat l'actualització: %s\n"
#: agent/gpg-agent.c:1262 scd/scdaemon.c:999 #: agent/gpg-agent.c:1293 scd/scdaemon.c:1015
#, fuzzy, c-format #, fuzzy, c-format
msgid "listening on socket `%s'\n" msgid "listening on socket `%s'\n"
msgstr "s'està escrivint la clau secreta a «%s»\n" msgstr "s'està escrivint la clau secreta a «%s»\n"
#: agent/gpg-agent.c:1290 agent/gpg-agent.c:1332 g10/openfile.c:419 #: agent/gpg-agent.c:1321 agent/gpg-agent.c:1363 g10/openfile.c:419
#, fuzzy, c-format #, fuzzy, c-format
msgid "directory `%s' created\n" msgid "directory `%s' created\n"
msgstr "%s: s'ha creat el directori\n" msgstr "%s: s'ha creat el directori\n"
#: agent/gpg-agent.c:1338 #: agent/gpg-agent.c:1369
#, fuzzy, c-format #, fuzzy, c-format
msgid "stat() failed for `%s': %s\n" msgid "stat() failed for `%s': %s\n"
msgstr "base de dades de confiança: ha fallat la lectura (n=%d): %s\n" msgstr "base de dades de confiança: ha fallat la lectura (n=%d): %s\n"
#: agent/gpg-agent.c:1342 #: agent/gpg-agent.c:1373
#, fuzzy, c-format #, fuzzy, c-format
msgid "can't use `%s' as home directory\n" msgid "can't use `%s' as home directory\n"
msgstr "%s: no s'ha pogut crear el directori: %s\n" msgstr "%s: no s'ha pogut crear el directori: %s\n"
#: agent/gpg-agent.c:1441 #: agent/gpg-agent.c:1475
#, c-format #, c-format
msgid "handler 0x%lx for fd %d started\n" msgid "handler 0x%lx for fd %d started\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1446 #: agent/gpg-agent.c:1480
#, c-format #, c-format
msgid "handler 0x%lx for fd %d terminated\n" msgid "handler 0x%lx for fd %d terminated\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1460 #: agent/gpg-agent.c:1497
#, c-format #, c-format
msgid "ssh handler 0x%lx for fd %d started\n" msgid "ssh handler 0x%lx for fd %d started\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1465 #: agent/gpg-agent.c:1502
#, c-format #, c-format
msgid "ssh handler 0x%lx for fd %d terminated\n" msgid "ssh handler 0x%lx for fd %d terminated\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1559 scd/scdaemon.c:1115 #: agent/gpg-agent.c:1598 scd/scdaemon.c:1134
#, fuzzy, c-format #, fuzzy, c-format
msgid "pth_select failed: %s - waiting 1s\n" msgid "pth_select failed: %s - waiting 1s\n"
msgstr "ha fallat l'actualització de la clau secreta: %s\n" msgstr "ha fallat l'actualització de la clau secreta: %s\n"
#: agent/gpg-agent.c:1643 scd/scdaemon.c:1172 #: agent/gpg-agent.c:1704 scd/scdaemon.c:1201
#, fuzzy, c-format #, fuzzy, c-format
msgid "%s %s stopped\n" msgid "%s %s stopped\n"
msgstr "\t%lu claus es descarta\n" msgstr "\t%lu claus es descarta\n"
#: agent/gpg-agent.c:1664 #: agent/gpg-agent.c:1725
#, fuzzy #, fuzzy
msgid "no gpg-agent running in this session\n" msgid "no gpg-agent running in this session\n"
msgstr "gpg-agent no està disponible en aquesta sessió\n" msgstr "gpg-agent no està disponible en aquesta sessió\n"
#: agent/gpg-agent.c:1674 common/simple-pwquery.c:324 g10/call-agent.c:137 #: agent/gpg-agent.c:1735 common/simple-pwquery.c:324 g10/call-agent.c:137
#: sm/call-agent.c:144 tools/gpg-connect-agent.c:713 #: sm/call-agent.c:144 tools/gpg-connect-agent.c:713
msgid "malformed GPG_AGENT_INFO environment variable\n" msgid "malformed GPG_AGENT_INFO environment variable\n"
msgstr "la variable d'entorn GPG_AGENT_INFO és malformada\n" msgstr "la variable d'entorn GPG_AGENT_INFO és malformada\n"
#: agent/gpg-agent.c:1686 common/simple-pwquery.c:336 g10/call-agent.c:149 #: agent/gpg-agent.c:1747 common/simple-pwquery.c:336 g10/call-agent.c:149
#: sm/call-agent.c:156 tools/gpg-connect-agent.c:724 #: sm/call-agent.c:156 tools/gpg-connect-agent.c:724
#, c-format #, c-format
msgid "gpg-agent protocol version %d is not supported\n" msgid "gpg-agent protocol version %d is not supported\n"
@ -4516,7 +4510,7 @@ msgstr "Aquesta signatura caduca el %s\n"
# Amb «it» es refereix a les dates? ivb # Amb «it» es refereix a les dates? ivb
# Això vaig entendre jo. jm # Això vaig entendre jo. jm
#: g10/keygen.c:1856 #: g10/keygen.c:1854
msgid "" msgid ""
"Your system can't display dates beyond 2038.\n" "Your system can't display dates beyond 2038.\n"
"However, it will be correctly handled up to 2106.\n" "However, it will be correctly handled up to 2106.\n"
@ -4766,7 +4760,7 @@ msgstr "no s'ha pogut crear «%s»: %s\n"
msgid "NOTE: backup of card key saved to `%s'\n" msgid "NOTE: backup of card key saved to `%s'\n"
msgstr "" msgstr ""
#: g10/keyid.c:539 g10/keyid.c:551 g10/keyid.c:563 g10/keyid.c:575 #: g10/keyid.c:540 g10/keyid.c:552 g10/keyid.c:564 g10/keyid.c:576
msgid "never " msgid "never "
msgstr "mai " msgstr "mai "
@ -5843,26 +5837,26 @@ msgstr "el destinatari és anònim; es provarà la clau secreta %08lX ...\n"
msgid "okay, we are the anonymous recipient.\n" msgid "okay, we are the anonymous recipient.\n"
msgstr "d'acord, som el destinatari anònim.\n" msgstr "d'acord, som el destinatari anònim.\n"
#: g10/pubkey-enc.c:226 #: g10/pubkey-enc.c:227
msgid "old encoding of the DEK is not supported\n" msgid "old encoding of the DEK is not supported\n"
msgstr "la codificació antiga del DEK no està suportada\n" msgstr "la codificació antiga del DEK no està suportada\n"
#: g10/pubkey-enc.c:247 #: g10/pubkey-enc.c:248
#, c-format #, c-format
msgid "cipher algorithm %d%s is unknown or disabled\n" msgid "cipher algorithm %d%s is unknown or disabled\n"
msgstr "l'algoritme de xifratge %d%s és desconegut o està desactivat\n" msgstr "l'algoritme de xifratge %d%s és desconegut o està desactivat\n"
#: g10/pubkey-enc.c:285 #: g10/pubkey-enc.c:286
#, fuzzy, c-format #, fuzzy, c-format
msgid "WARNING: cipher algorithm %s not found in recipient preferences\n" msgid "WARNING: cipher algorithm %s not found in recipient preferences\n"
msgstr "NOTA: no s'ha trobat l'algoritme de xifratge %d en les preferències\n" msgstr "NOTA: no s'ha trobat l'algoritme de xifratge %d en les preferències\n"
#: g10/pubkey-enc.c:305 #: g10/pubkey-enc.c:306
#, fuzzy, c-format #, fuzzy, c-format
msgid "NOTE: secret key %s expired at %s\n" msgid "NOTE: secret key %s expired at %s\n"
msgstr "NOTA: la clau secreta %08lX caduca el %s\n" msgstr "NOTA: la clau secreta %08lX caduca el %s\n"
#: g10/pubkey-enc.c:311 #: g10/pubkey-enc.c:312
msgid "NOTE: key has been revoked" msgid "NOTE: key has been revoked"
msgstr "NOTA: aquesta clau ha estat revocada!" msgstr "NOTA: aquesta clau ha estat revocada!"
@ -6036,12 +6030,12 @@ msgstr ""
msgid "DSA requires the hash length to be a multiple of 8 bits\n" msgid "DSA requires the hash length to be a multiple of 8 bits\n"
msgstr "" msgstr ""
#: g10/seskey.c:243 #: g10/seskey.c:242
#, c-format #, c-format
msgid "DSA key %s uses an unsafe (%u bit) hash\n" msgid "DSA key %s uses an unsafe (%u bit) hash\n"
msgstr "" msgstr ""
#: g10/seskey.c:255 #: g10/seskey.c:254
#, c-format #, c-format
msgid "DSA key %s requires a %u bit or larger hash\n" msgid "DSA key %s requires a %u bit or larger hash\n"
msgstr "" msgstr ""
@ -6608,7 +6602,7 @@ msgstr ""
msgid "input line %u too long or missing LF\n" msgid "input line %u too long or missing LF\n"
msgstr "la línia d'entrada %u és massa llarga o hi falta un fí de línia\n" msgstr "la línia d'entrada %u és massa llarga o hi falta un fí de línia\n"
#: jnlib/logging.c:619 #: jnlib/logging.c:626
#, c-format #, c-format
msgid "you found a bug ... (%s:%d)\n" msgid "you found a bug ... (%s:%d)\n"
msgstr "heu trobat un bug... (%s:%d)\n" msgstr "heu trobat un bug... (%s:%d)\n"
@ -6641,11 +6635,6 @@ msgstr ""
msgid "Please report bugs to " msgid "Please report bugs to "
msgstr "Si us plau, informeu sobre els errors a <gnupg-bugs@gnu.org>.\n" msgstr "Si us plau, informeu sobre els errors a <gnupg-bugs@gnu.org>.\n"
#: kbx/kbxutil.c:108
#, fuzzy
msgid ".\n"
msgstr "%s.\n"
#: kbx/kbxutil.c:112 #: kbx/kbxutil.c:112
#, fuzzy #, fuzzy
msgid "Usage: kbxutil [options] [files] (-h for help)" msgid "Usage: kbxutil [options] [files] (-h for help)"
@ -6676,47 +6665,52 @@ msgstr "no s'ha pogut reconstruir la memòria cau de l'anell: %s\n"
msgid "reading public key failed: %s\n" msgid "reading public key failed: %s\n"
msgstr "no s'ha pogut eliminar el bloc de claus: %s\n" msgstr "no s'ha pogut eliminar el bloc de claus: %s\n"
#: scd/app-openpgp.c:1017 scd/app-openpgp.c:1953 #: scd/app-openpgp.c:1017 scd/app-openpgp.c:1978
msgid "response does not contain the public key data\n" msgid "response does not contain the public key data\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1025 scd/app-openpgp.c:1961 #: scd/app-openpgp.c:1025 scd/app-openpgp.c:1986
msgid "response does not contain the RSA modulus\n" msgid "response does not contain the RSA modulus\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1034 scd/app-openpgp.c:1971 #: scd/app-openpgp.c:1034 scd/app-openpgp.c:1996
msgid "response does not contain the RSA public exponent\n" msgid "response does not contain the RSA public exponent\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1302 scd/app-openpgp.c:1390 scd/app-openpgp.c:2222 #: scd/app-openpgp.c:1306
msgid "||Please enter your PIN at the reader's keypad"
msgstr ""
#: scd/app-openpgp.c:1310 scd/app-openpgp.c:1324 scd/app-openpgp.c:1415
#: scd/app-openpgp.c:2247
#, c-format #, c-format
msgid "PIN callback returned error: %s\n" msgid "PIN callback returned error: %s\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1308 scd/app-openpgp.c:1396 scd/app-openpgp.c:2228 #: scd/app-openpgp.c:1331 scd/app-openpgp.c:1421 scd/app-openpgp.c:2253
#, c-format #, c-format
msgid "PIN for CHV%d is too short; minimum length is %d\n" msgid "PIN for CHV%d is too short; minimum length is %d\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1317 scd/app-openpgp.c:1331 scd/app-openpgp.c:1406 #: scd/app-openpgp.c:1342 scd/app-openpgp.c:1356 scd/app-openpgp.c:1431
#: scd/app-openpgp.c:2237 scd/app-openpgp.c:2251 #: scd/app-openpgp.c:2262 scd/app-openpgp.c:2276
#, fuzzy, c-format #, fuzzy, c-format
msgid "verify CHV%d failed: %s\n" msgid "verify CHV%d failed: %s\n"
msgstr "l'enviament al servidor de claus ha fallat: %s\n" msgstr "l'enviament al servidor de claus ha fallat: %s\n"
#: scd/app-openpgp.c:1354 #: scd/app-openpgp.c:1379
msgid "access to admin commands is not configured\n" msgid "access to admin commands is not configured\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1369 scd/app-openpgp.c:2461 #: scd/app-openpgp.c:1394 scd/app-openpgp.c:2486
msgid "error retrieving CHV status from card\n" msgid "error retrieving CHV status from card\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1375 scd/app-openpgp.c:2470 #: scd/app-openpgp.c:1400 scd/app-openpgp.c:2495
msgid "card is permanently locked!\n" msgid "card is permanently locked!\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1380 #: scd/app-openpgp.c:1405
#, c-format #, c-format
msgid "%d Admin PIN attempts remaining before card is permanently locked\n" msgid "%d Admin PIN attempts remaining before card is permanently locked\n"
msgstr "" msgstr ""
@ -6724,113 +6718,113 @@ msgstr ""
#. TRANSLATORS: Do not translate the "|A|" prefix but #. TRANSLATORS: Do not translate the "|A|" prefix but
#. keep it at the start of the string. We need this elsewhere #. keep it at the start of the string. We need this elsewhere
#. to get some infos on the string. #. to get some infos on the string.
#: scd/app-openpgp.c:1387 #: scd/app-openpgp.c:1412
msgid "|A|Admin PIN" msgid "|A|Admin PIN"
msgstr "" msgstr ""
#. TRANSLATORS: Do not translate the "|*|" prefixes but #. TRANSLATORS: Do not translate the "|*|" prefixes but
#. keep it at the start of the string. We need this elsewhere #. keep it at the start of the string. We need this elsewhere
#. to get some infos on the string. #. to get some infos on the string.
#: scd/app-openpgp.c:1536 #: scd/app-openpgp.c:1561
msgid "|AN|New Admin PIN" msgid "|AN|New Admin PIN"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1536 #: scd/app-openpgp.c:1561
msgid "|N|New PIN" msgid "|N|New PIN"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1540 #: scd/app-openpgp.c:1565
#, fuzzy, c-format #, fuzzy, c-format
msgid "error getting new PIN: %s\n" msgid "error getting new PIN: %s\n"
msgstr "error en crear «%s»: %s\n" msgstr "error en crear «%s»: %s\n"
#: scd/app-openpgp.c:1590 scd/app-openpgp.c:2039 #: scd/app-openpgp.c:1615 scd/app-openpgp.c:2064
#, fuzzy #, fuzzy
msgid "error reading application data\n" msgid "error reading application data\n"
msgstr "s'ha produït un error en llegir el bloc de claus: %s\n" msgstr "s'ha produït un error en llegir el bloc de claus: %s\n"
#: scd/app-openpgp.c:1596 scd/app-openpgp.c:2046 #: scd/app-openpgp.c:1621 scd/app-openpgp.c:2071
#, fuzzy #, fuzzy
msgid "error reading fingerprint DO\n" msgid "error reading fingerprint DO\n"
msgstr "error: l'empremta digital és invàlida\n" msgstr "error: l'empremta digital és invàlida\n"
#: scd/app-openpgp.c:1606 #: scd/app-openpgp.c:1631
#, fuzzy #, fuzzy
msgid "key already exists\n" msgid "key already exists\n"
msgstr "«%s» ja està comprimida\n" msgstr "«%s» ja està comprimida\n"
#: scd/app-openpgp.c:1610 #: scd/app-openpgp.c:1635
msgid "existing key will be replaced\n" msgid "existing key will be replaced\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1612 #: scd/app-openpgp.c:1637
#, fuzzy #, fuzzy
msgid "generating new key\n" msgid "generating new key\n"
msgstr "genera un nou parell de claus" msgstr "genera un nou parell de claus"
#: scd/app-openpgp.c:1779 #: scd/app-openpgp.c:1804
msgid "creation timestamp missing\n" msgid "creation timestamp missing\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1786 #: scd/app-openpgp.c:1811
#, c-format #, c-format
msgid "RSA modulus missing or not of size %d bits\n" msgid "RSA modulus missing or not of size %d bits\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1793 #: scd/app-openpgp.c:1818
#, c-format #, c-format
msgid "RSA public exponent missing or larger than %d bits\n" msgid "RSA public exponent missing or larger than %d bits\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1801 scd/app-openpgp.c:1808 #: scd/app-openpgp.c:1826 scd/app-openpgp.c:1833
#, c-format #, c-format
msgid "RSA prime %s missing or not of size %d bits\n" msgid "RSA prime %s missing or not of size %d bits\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1871 #: scd/app-openpgp.c:1896
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to store the key: %s\n" msgid "failed to store the key: %s\n"
msgstr "no s'ha pogut inicialitzar la base de dades de confiança: %s\n" msgstr "no s'ha pogut inicialitzar la base de dades de confiança: %s\n"
#: scd/app-openpgp.c:1930 #: scd/app-openpgp.c:1955
msgid "please wait while key is being generated ...\n" msgid "please wait while key is being generated ...\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1944 #: scd/app-openpgp.c:1969
#, fuzzy #, fuzzy
msgid "generating key failed\n" msgid "generating key failed\n"
msgstr "La generació de claus ha fallat: %s\n" msgstr "La generació de claus ha fallat: %s\n"
#: scd/app-openpgp.c:1947 #: scd/app-openpgp.c:1972
#, fuzzy, c-format #, fuzzy, c-format
msgid "key generation completed (%d seconds)\n" msgid "key generation completed (%d seconds)\n"
msgstr "La generació de claus ha fallat: %s\n" msgstr "La generació de claus ha fallat: %s\n"
#: scd/app-openpgp.c:2004 #: scd/app-openpgp.c:2029
msgid "invalid structure of OpenPGP card (DO 0x93)\n" msgid "invalid structure of OpenPGP card (DO 0x93)\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:2141 #: scd/app-openpgp.c:2166
#, fuzzy, c-format #, fuzzy, c-format
msgid "card does not support digest algorithm %s\n" msgid "card does not support digest algorithm %s\n"
msgstr "signatura %s, algorisme de resum %s\n" msgstr "signatura %s, algorisme de resum %s\n"
#: scd/app-openpgp.c:2202 #: scd/app-openpgp.c:2227
#, c-format #, c-format
msgid "signatures created so far: %lu\n" msgid "signatures created so far: %lu\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:2210 #: scd/app-openpgp.c:2235
#, c-format #, c-format
msgid "||Please enter the PIN%%0A[sigs done: %lu]" msgid "||Please enter the PIN%%0A[sigs done: %lu]"
msgstr "" msgstr ""
#: scd/app-openpgp.c:2475 #: scd/app-openpgp.c:2500
msgid "" msgid ""
"verification of Admin PIN is currently prohibited through this command\n" "verification of Admin PIN is currently prohibited through this command\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:2548 scd/app-openpgp.c:2558 #: scd/app-openpgp.c:2573 scd/app-openpgp.c:2583
#, c-format #, c-format
msgid "can't access %s - invalid OpenPGP card?\n" msgid "can't access %s - invalid OpenPGP card?\n"
msgstr "" msgstr ""
@ -6883,16 +6877,16 @@ msgid ""
"Smartcard daemon for GnuPG\n" "Smartcard daemon for GnuPG\n"
msgstr "" msgstr ""
#: scd/scdaemon.c:672 #: scd/scdaemon.c:682
msgid "please use the option `--daemon' to run the program in the background\n" msgid "please use the option `--daemon' to run the program in the background\n"
msgstr "" msgstr ""
#: scd/scdaemon.c:1013 #: scd/scdaemon.c:1030
#, c-format #, c-format
msgid "handler for fd %d started\n" msgid "handler for fd %d started\n"
msgstr "" msgstr ""
#: scd/scdaemon.c:1018 #: scd/scdaemon.c:1035
#, c-format #, c-format
msgid "handler for fd %d terminated\n" msgid "handler for fd %d terminated\n"
msgstr "" msgstr ""
@ -7075,30 +7069,30 @@ msgstr "DSA requereix l'ús d'un algoritme de dispersió de 160 bits\n"
msgid "(this is the MD2 algorithm)\n" msgid "(this is the MD2 algorithm)\n"
msgstr "" msgstr ""
#: sm/certdump.c:61 sm/certdump.c:147 #: sm/certdump.c:68 sm/certdump.c:154
#, fuzzy #, fuzzy
msgid "none" msgid "none"
msgstr "no" msgstr "no"
#: sm/certdump.c:156 #: sm/certdump.c:163
#, fuzzy #, fuzzy
msgid "[none]" msgid "[none]"
msgstr "[no establert]" msgstr "[no establert]"
#: sm/certdump.c:529 sm/certdump.c:592 #: sm/certdump.c:536 sm/certdump.c:599
#, fuzzy #, fuzzy
msgid "[Error - invalid encoding]" msgid "[Error - invalid encoding]"
msgstr "error: l'empremta digital és invàlida\n" msgstr "error: l'empremta digital és invàlida\n"
#: sm/certdump.c:537 #: sm/certdump.c:544
msgid "[Error - out of core]" msgid "[Error - out of core]"
msgstr "" msgstr ""
#: sm/certdump.c:572 #: sm/certdump.c:579
msgid "[Error - No name]" msgid "[Error - No name]"
msgstr "" msgstr ""
#: sm/certdump.c:597 #: sm/certdump.c:604
#, fuzzy #, fuzzy
msgid "[Error - invalid DN]" msgid "[Error - invalid DN]"
msgstr "error: l'empremta digital és invàlida\n" msgstr "error: l'empremta digital és invàlida\n"
@ -7114,7 +7108,7 @@ msgstr "error: l'empremta digital és invàlida\n"
# Se't passava l'argument «*». printf(3), hieroglyph(7). ivb # Se't passava l'argument «*». printf(3), hieroglyph(7). ivb
# Ah! Prova-ho, no casque alguna cosa :P ivb # Ah! Prova-ho, no casque alguna cosa :P ivb
# Ah, ja veig! Moltes gràcies! Aquest msgstr ha quedat curiós :) jm # Ah, ja veig! Moltes gràcies! Aquest msgstr ha quedat curiós :) jm
#: sm/certdump.c:758 #: sm/certdump.c:818
#, fuzzy, c-format #, fuzzy, c-format
msgid "" msgid ""
"Please enter the passphrase to unlock the secret key for:\n" "Please enter the passphrase to unlock the secret key for:\n"
@ -7611,12 +7605,12 @@ msgstr ""
msgid " using certificate ID %08lX\n" msgid " using certificate ID %08lX\n"
msgstr "" msgstr ""
#: sm/verify.c:506 #: sm/verify.c:509
#, fuzzy #, fuzzy
msgid "Good signature from" msgid "Good signature from"
msgstr "Signatura correcta de \"" msgstr "Signatura correcta de \""
#: sm/verify.c:507 #: sm/verify.c:510
#, fuzzy #, fuzzy
msgid " aka" msgid " aka"
msgstr " alias \"" msgstr " alias \""
@ -7974,6 +7968,10 @@ msgstr ""
msgid "class %s is not supported\n" msgid "class %s is not supported\n"
msgstr "l'algoritme de protecció %d%s no està suportat\n" msgstr "l'algoritme de protecció %d%s no està suportat\n"
#, fuzzy
#~ msgid ".\n"
#~ msgstr "%s.\n"
#~ msgid "problem with the agent - disabling agent use\n" #~ msgid "problem with the agent - disabling agent use\n"
#~ msgstr "hi ha un problema amb l'agent: es deshabilitarà el seu ús\n" #~ msgstr "hi ha un problema amb l'agent: es deshabilitarà el seu ús\n"

198
po/cs.po
View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnupg-1.3.92\n" "Project-Id-Version: gnupg-1.3.92\n"
"Report-Msgid-Bugs-To: translations@gnupg.org\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n"
"POT-Creation-Date: 2006-11-10 00:40+0100\n" "POT-Creation-Date: 2006-11-21 10:53+0100\n"
"PO-Revision-Date: 2004-11-26 09:12+0200\n" "PO-Revision-Date: 2004-11-26 09:12+0200\n"
"Last-Translator: Roman Pavlik <rp@tns.cz>\n" "Last-Translator: Roman Pavlik <rp@tns.cz>\n"
"Language-Team: Czech <translations.cs@gnupg.cz>\n" "Language-Team: Czech <translations.cs@gnupg.cz>\n"
@ -133,7 +133,7 @@ msgid ""
"0Awithin gpg-agent's key storage" "0Awithin gpg-agent's key storage"
msgstr "" msgstr ""
#: agent/command-ssh.c:2857 #: agent/command-ssh.c:2853
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to create stream from socket: %s\n" msgid "failed to create stream from socket: %s\n"
msgstr "%s: nepodaøilo se vytvoøit hashovací tabulku: %s\n" msgstr "%s: nepodaøilo se vytvoøit hashovací tabulku: %s\n"
@ -287,7 +287,7 @@ msgstr ""
msgid "|FILE|write environment settings also to FILE" msgid "|FILE|write environment settings also to FILE"
msgstr "" msgstr ""
#: agent/gpg-agent.c:238 agent/preset-passphrase.c:96 agent/protect-tool.c:143 #: agent/gpg-agent.c:241 agent/preset-passphrase.c:96 agent/protect-tool.c:143
#: scd/scdaemon.c:190 sm/gpgsm.c:517 tools/gpg-connect-agent.c:123 #: scd/scdaemon.c:190 sm/gpgsm.c:517 tools/gpg-connect-agent.c:123
#: tools/gpgconf.c:86 tools/symcryptrun.c:225 #: tools/gpgconf.c:86 tools/symcryptrun.c:225
#, fuzzy #, fuzzy
@ -296,154 +296,148 @@ msgstr ""
"Chyby oznamte, prosím, na adresu <gnupg-bugs@gnu.org>.\n" "Chyby oznamte, prosím, na adresu <gnupg-bugs@gnu.org>.\n"
"Pøipomínky k pøekladu <rp@tns.cz>.\n" "Pøipomínky k pøekladu <rp@tns.cz>.\n"
#: agent/gpg-agent.c:238 agent/preset-passphrase.c:96 agent/protect-tool.c:143 #: agent/gpg-agent.c:244
#: scd/scdaemon.c:190 sm/gpgsm.c:517 tools/gpg-connect-agent.c:123
#: tools/gpgconf.c:86 tools/symcryptrun.c:225
msgid ">.\n"
msgstr ""
#: agent/gpg-agent.c:241
#, fuzzy #, fuzzy
msgid "Usage: gpg-agent [options] (-h for help)" msgid "Usage: gpg-agent [options] (-h for help)"
msgstr "Pou¾ití: gpg [mo¾nosti] [soubory] (-h pro pomoc)" msgstr "Pou¾ití: gpg [mo¾nosti] [soubory] (-h pro pomoc)"
#: agent/gpg-agent.c:243 #: agent/gpg-agent.c:246
msgid "" msgid ""
"Syntax: gpg-agent [options] [command [args]]\n" "Syntax: gpg-agent [options] [command [args]]\n"
"Secret key management for GnuPG\n" "Secret key management for GnuPG\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:302 #: agent/gpg-agent.c:305
#, c-format #, c-format
msgid "out of core in secure memory while allocating %lu bytes" msgid "out of core in secure memory while allocating %lu bytes"
msgstr "" msgstr ""
#: agent/gpg-agent.c:305 #: agent/gpg-agent.c:308
#, c-format #, c-format
msgid "out of core while allocating %lu bytes" msgid "out of core while allocating %lu bytes"
msgstr "" msgstr ""
#: agent/gpg-agent.c:336 g10/gpg.c:923 scd/scdaemon.c:264 sm/gpgsm.c:646 #: agent/gpg-agent.c:339 g10/gpg.c:923 scd/scdaemon.c:264 sm/gpgsm.c:646
#, c-format #, c-format
msgid "invalid debug-level `%s' given\n" msgid "invalid debug-level `%s' given\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:507 agent/protect-tool.c:1073 g10/gpg.c:1808 #: agent/gpg-agent.c:510 agent/protect-tool.c:1073 g10/gpg.c:1808
#: kbx/kbxutil.c:432 scd/scdaemon.c:356 sm/gpgsm.c:767 #: kbx/kbxutil.c:432 scd/scdaemon.c:356 sm/gpgsm.c:767
#: tools/symcryptrun.c:1056 #: tools/symcryptrun.c:1056
#, c-format #, c-format
msgid "libgcrypt is too old (need %s, have %s)\n" msgid "libgcrypt is too old (need %s, have %s)\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:601 g10/gpg.c:2007 scd/scdaemon.c:433 sm/gpgsm.c:864 #: agent/gpg-agent.c:604 g10/gpg.c:2007 scd/scdaemon.c:433 sm/gpgsm.c:864
#, c-format #, c-format
msgid "NOTE: no default option file `%s'\n" msgid "NOTE: no default option file `%s'\n"
msgstr "POZNÁMKA: neexistuje implicitní soubor s mo¾nostmi `%s'\n" msgstr "POZNÁMKA: neexistuje implicitní soubor s mo¾nostmi `%s'\n"
#: agent/gpg-agent.c:606 agent/gpg-agent.c:1129 g10/gpg.c:2011 #: agent/gpg-agent.c:609 agent/gpg-agent.c:1160 g10/gpg.c:2011
#: scd/scdaemon.c:438 sm/gpgsm.c:868 tools/symcryptrun.c:989 #: scd/scdaemon.c:438 sm/gpgsm.c:868 tools/symcryptrun.c:989
#, c-format #, c-format
msgid "option file `%s': %s\n" msgid "option file `%s': %s\n"
msgstr "soubor s mo¾nostmi `%s': %s\n" msgstr "soubor s mo¾nostmi `%s': %s\n"
#: agent/gpg-agent.c:614 g10/gpg.c:2018 scd/scdaemon.c:446 sm/gpgsm.c:875 #: agent/gpg-agent.c:617 g10/gpg.c:2018 scd/scdaemon.c:446 sm/gpgsm.c:875
#, c-format #, c-format
msgid "reading options from `%s'\n" msgid "reading options from `%s'\n"
msgstr "ètu mo¾nosti z `%s'\n" msgstr "ètu mo¾nosti z `%s'\n"
#: agent/gpg-agent.c:914 g10/plaintext.c:136 g10/plaintext.c:141 #: agent/gpg-agent.c:930 g10/plaintext.c:136 g10/plaintext.c:141
#: g10/plaintext.c:158 #: g10/plaintext.c:158
#, c-format #, c-format
msgid "error creating `%s': %s\n" msgid "error creating `%s': %s\n"
msgstr "chyba pøi vytváøení `%s': %s\n" msgstr "chyba pøi vytváøení `%s': %s\n"
#: agent/gpg-agent.c:1179 agent/gpg-agent.c:1282 agent/gpg-agent.c:1286 #: agent/gpg-agent.c:1210 agent/gpg-agent.c:1313 agent/gpg-agent.c:1317
#: agent/gpg-agent.c:1322 agent/gpg-agent.c:1326 g10/exec.c:174 #: agent/gpg-agent.c:1353 agent/gpg-agent.c:1357 g10/exec.c:174
#: g10/openfile.c:416 scd/scdaemon.c:916 #: g10/openfile.c:416 scd/scdaemon.c:932
#, c-format #, c-format
msgid "can't create directory `%s': %s\n" msgid "can't create directory `%s': %s\n"
msgstr "nemohu vytvoøit adresáø `%s': %s\n" msgstr "nemohu vytvoøit adresáø `%s': %s\n"
#: agent/gpg-agent.c:1193 scd/scdaemon.c:930 #: agent/gpg-agent.c:1224 scd/scdaemon.c:946
msgid "name of socket too long\n" msgid "name of socket too long\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1219 scd/scdaemon.c:956 #: agent/gpg-agent.c:1250 scd/scdaemon.c:972
#, fuzzy, c-format #, fuzzy, c-format
msgid "can't create socket: %s\n" msgid "can't create socket: %s\n"
msgstr "nemohu vytvoøit `%s': %s\n" msgstr "nemohu vytvoøit `%s': %s\n"
#: agent/gpg-agent.c:1248 scd/scdaemon.c:985 #: agent/gpg-agent.c:1279 scd/scdaemon.c:1001
#, fuzzy, c-format #, fuzzy, c-format
msgid "error binding socket to `%s': %s\n" msgid "error binding socket to `%s': %s\n"
msgstr "chyba pøi hledání záznamu dùvìryhodnosti v `%s': %s\n" msgstr "chyba pøi hledání záznamu dùvìryhodnosti v `%s': %s\n"
#: agent/gpg-agent.c:1256 scd/scdaemon.c:993 #: agent/gpg-agent.c:1287 scd/scdaemon.c:1009
#, fuzzy, c-format #, fuzzy, c-format
msgid "listen() failed: %s\n" msgid "listen() failed: %s\n"
msgstr "aktualizace selhala: %s\n" msgstr "aktualizace selhala: %s\n"
#: agent/gpg-agent.c:1262 scd/scdaemon.c:999 #: agent/gpg-agent.c:1293 scd/scdaemon.c:1015
#, fuzzy, c-format #, fuzzy, c-format
msgid "listening on socket `%s'\n" msgid "listening on socket `%s'\n"
msgstr "zapisuji tajný klíè do `%s'\n" msgstr "zapisuji tajný klíè do `%s'\n"
#: agent/gpg-agent.c:1290 agent/gpg-agent.c:1332 g10/openfile.c:419 #: agent/gpg-agent.c:1321 agent/gpg-agent.c:1363 g10/openfile.c:419
#, c-format #, c-format
msgid "directory `%s' created\n" msgid "directory `%s' created\n"
msgstr "adresáø `%s' vytvoøen\n" msgstr "adresáø `%s' vytvoøen\n"
#: agent/gpg-agent.c:1338 #: agent/gpg-agent.c:1369
#, fuzzy, c-format #, fuzzy, c-format
msgid "stat() failed for `%s': %s\n" msgid "stat() failed for `%s': %s\n"
msgstr "fstat(%d) selhal v %s: %s\n" msgstr "fstat(%d) selhal v %s: %s\n"
#: agent/gpg-agent.c:1342 #: agent/gpg-agent.c:1373
#, fuzzy, c-format #, fuzzy, c-format
msgid "can't use `%s' as home directory\n" msgid "can't use `%s' as home directory\n"
msgstr "nemohu vytvoøit adresáø `%s': %s\n" msgstr "nemohu vytvoøit adresáø `%s': %s\n"
#: agent/gpg-agent.c:1441 #: agent/gpg-agent.c:1475
#, c-format #, c-format
msgid "handler 0x%lx for fd %d started\n" msgid "handler 0x%lx for fd %d started\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1446 #: agent/gpg-agent.c:1480
#, c-format #, c-format
msgid "handler 0x%lx for fd %d terminated\n" msgid "handler 0x%lx for fd %d terminated\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1460 #: agent/gpg-agent.c:1497
#, c-format #, c-format
msgid "ssh handler 0x%lx for fd %d started\n" msgid "ssh handler 0x%lx for fd %d started\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1465 #: agent/gpg-agent.c:1502
#, c-format #, c-format
msgid "ssh handler 0x%lx for fd %d terminated\n" msgid "ssh handler 0x%lx for fd %d terminated\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1559 scd/scdaemon.c:1115 #: agent/gpg-agent.c:1598 scd/scdaemon.c:1134
#, fuzzy, c-format #, fuzzy, c-format
msgid "pth_select failed: %s - waiting 1s\n" msgid "pth_select failed: %s - waiting 1s\n"
msgstr "aktualizace tajného klíèe selhala: %s\n" msgstr "aktualizace tajného klíèe selhala: %s\n"
#: agent/gpg-agent.c:1643 scd/scdaemon.c:1172 #: agent/gpg-agent.c:1704 scd/scdaemon.c:1201
#, fuzzy, c-format #, fuzzy, c-format
msgid "%s %s stopped\n" msgid "%s %s stopped\n"
msgstr "%s: pøeskoèeno: %s\n" msgstr "%s: pøeskoèeno: %s\n"
#: agent/gpg-agent.c:1664 #: agent/gpg-agent.c:1725
#, fuzzy #, fuzzy
msgid "no gpg-agent running in this session\n" msgid "no gpg-agent running in this session\n"
msgstr "gpg-agent není v tomto sezení dostupný\n" msgstr "gpg-agent není v tomto sezení dostupný\n"
#: agent/gpg-agent.c:1674 common/simple-pwquery.c:324 g10/call-agent.c:137 #: agent/gpg-agent.c:1735 common/simple-pwquery.c:324 g10/call-agent.c:137
#: sm/call-agent.c:144 tools/gpg-connect-agent.c:713 #: sm/call-agent.c:144 tools/gpg-connect-agent.c:713
msgid "malformed GPG_AGENT_INFO environment variable\n" msgid "malformed GPG_AGENT_INFO environment variable\n"
msgstr "¹patný formát promìnné prostøedí GPG_AGENT_INFO\n" msgstr "¹patný formát promìnné prostøedí GPG_AGENT_INFO\n"
#: agent/gpg-agent.c:1686 common/simple-pwquery.c:336 g10/call-agent.c:149 #: agent/gpg-agent.c:1747 common/simple-pwquery.c:336 g10/call-agent.c:149
#: sm/call-agent.c:156 tools/gpg-connect-agent.c:724 #: sm/call-agent.c:156 tools/gpg-connect-agent.c:724
#, c-format #, c-format
msgid "gpg-agent protocol version %d is not supported\n" msgid "gpg-agent protocol version %d is not supported\n"
@ -4317,7 +4311,7 @@ msgstr "Platnost kl
msgid "Signature expires at %s\n" msgid "Signature expires at %s\n"
msgstr "Platnost podpisu skonèí v %s\n" msgstr "Platnost podpisu skonèí v %s\n"
#: g10/keygen.c:1856 #: g10/keygen.c:1854
msgid "" msgid ""
"Your system can't display dates beyond 2038.\n" "Your system can't display dates beyond 2038.\n"
"However, it will be correctly handled up to 2106.\n" "However, it will be correctly handled up to 2106.\n"
@ -4559,7 +4553,7 @@ msgstr "nemohu vytvo
msgid "NOTE: backup of card key saved to `%s'\n" msgid "NOTE: backup of card key saved to `%s'\n"
msgstr "POZNÁMKA: záloha klíèe z karty ulo¾ena do `%s'\n" msgstr "POZNÁMKA: záloha klíèe z karty ulo¾ena do `%s'\n"
#: g10/keyid.c:539 g10/keyid.c:551 g10/keyid.c:563 g10/keyid.c:575 #: g10/keyid.c:540 g10/keyid.c:552 g10/keyid.c:564 g10/keyid.c:576
msgid "never " msgid "never "
msgstr "nikdy " msgstr "nikdy "
@ -5581,26 +5575,26 @@ msgstr "anonymn
msgid "okay, we are the anonymous recipient.\n" msgid "okay, we are the anonymous recipient.\n"
msgstr "o.k., my jsme anonymní adresát.\n" msgstr "o.k., my jsme anonymní adresát.\n"
#: g10/pubkey-enc.c:226 #: g10/pubkey-enc.c:227
msgid "old encoding of the DEK is not supported\n" msgid "old encoding of the DEK is not supported\n"
msgstr "staré kódování DEK není podporováno\n" msgstr "staré kódování DEK není podporováno\n"
#: g10/pubkey-enc.c:247 #: g10/pubkey-enc.c:248
#, c-format #, c-format
msgid "cipher algorithm %d%s is unknown or disabled\n" msgid "cipher algorithm %d%s is unknown or disabled\n"
msgstr "¹ifrovací algoritmus %d%s je neznámý nebo je zneplatnìn\n" msgstr "¹ifrovací algoritmus %d%s je neznámý nebo je zneplatnìn\n"
#: g10/pubkey-enc.c:285 #: g10/pubkey-enc.c:286
#, c-format #, c-format
msgid "WARNING: cipher algorithm %s not found in recipient preferences\n" msgid "WARNING: cipher algorithm %s not found in recipient preferences\n"
msgstr "VAROVÁNÍ: v pøedvolbách pøíjemce nenalezen ¹ifrovací algoritmus %s\n" msgstr "VAROVÁNÍ: v pøedvolbách pøíjemce nenalezen ¹ifrovací algoritmus %s\n"
#: g10/pubkey-enc.c:305 #: g10/pubkey-enc.c:306
#, c-format #, c-format
msgid "NOTE: secret key %s expired at %s\n" msgid "NOTE: secret key %s expired at %s\n"
msgstr "POZNÁMKA: platnost tajného klíèe %s skonèila %s\n" msgstr "POZNÁMKA: platnost tajného klíèe %s skonèila %s\n"
#: g10/pubkey-enc.c:311 #: g10/pubkey-enc.c:312
msgid "NOTE: key has been revoked" msgid "NOTE: key has been revoked"
msgstr "POZNÁMKA: klíè byl revokován" msgstr "POZNÁMKA: klíè byl revokován"
@ -5768,12 +5762,12 @@ msgstr ""
msgid "DSA requires the hash length to be a multiple of 8 bits\n" msgid "DSA requires the hash length to be a multiple of 8 bits\n"
msgstr "" msgstr ""
#: g10/seskey.c:243 #: g10/seskey.c:242
#, c-format #, c-format
msgid "DSA key %s uses an unsafe (%u bit) hash\n" msgid "DSA key %s uses an unsafe (%u bit) hash\n"
msgstr "" msgstr ""
#: g10/seskey.c:255 #: g10/seskey.c:254
#, c-format #, c-format
msgid "DSA key %s requires a %u bit or larger hash\n" msgid "DSA key %s requires a %u bit or larger hash\n"
msgstr "" msgstr ""
@ -6311,7 +6305,7 @@ msgstr ""
msgid "input line %u too long or missing LF\n" msgid "input line %u too long or missing LF\n"
msgstr "vstupní øádek %u je pøíli¹ dlouhý nebo na konci chybí znak LF\n" msgstr "vstupní øádek %u je pøíli¹ dlouhý nebo na konci chybí znak LF\n"
#: jnlib/logging.c:619 #: jnlib/logging.c:626
#, c-format #, c-format
msgid "you found a bug ... (%s:%d)\n" msgid "you found a bug ... (%s:%d)\n"
msgstr "nalezena chyba v programu ... (%s:%d)\n" msgstr "nalezena chyba v programu ... (%s:%d)\n"
@ -6346,11 +6340,6 @@ msgstr ""
"Chyby oznamte, prosím, na adresu <gnupg-bugs@gnu.org>.\n" "Chyby oznamte, prosím, na adresu <gnupg-bugs@gnu.org>.\n"
"Pøipomínky k pøekladu <rp@tns.cz>.\n" "Pøipomínky k pøekladu <rp@tns.cz>.\n"
#: kbx/kbxutil.c:108
#, fuzzy
msgid ".\n"
msgstr "%s.\n"
#: kbx/kbxutil.c:112 #: kbx/kbxutil.c:112
#, fuzzy #, fuzzy
msgid "Usage: kbxutil [options] [files] (-h for help)" msgid "Usage: kbxutil [options] [files] (-h for help)"
@ -6381,47 +6370,52 @@ msgstr "ulo
msgid "reading public key failed: %s\n" msgid "reading public key failed: %s\n"
msgstr "ètení veøejného klíèe se nezdaøilo: %s\n" msgstr "ètení veøejného klíèe se nezdaøilo: %s\n"
#: scd/app-openpgp.c:1017 scd/app-openpgp.c:1953 #: scd/app-openpgp.c:1017 scd/app-openpgp.c:1978
msgid "response does not contain the public key data\n" msgid "response does not contain the public key data\n"
msgstr "odpovìï neobsahuje veøejný klíè\n" msgstr "odpovìï neobsahuje veøejný klíè\n"
#: scd/app-openpgp.c:1025 scd/app-openpgp.c:1961 #: scd/app-openpgp.c:1025 scd/app-openpgp.c:1986
msgid "response does not contain the RSA modulus\n" msgid "response does not contain the RSA modulus\n"
msgstr "odpovìï neobsahuje RSA modulus\n" msgstr "odpovìï neobsahuje RSA modulus\n"
#: scd/app-openpgp.c:1034 scd/app-openpgp.c:1971 #: scd/app-openpgp.c:1034 scd/app-openpgp.c:1996
msgid "response does not contain the RSA public exponent\n" msgid "response does not contain the RSA public exponent\n"
msgstr "odpovìï neobsahuje veøejný RSA exponent\n" msgstr "odpovìï neobsahuje veøejný RSA exponent\n"
#: scd/app-openpgp.c:1302 scd/app-openpgp.c:1390 scd/app-openpgp.c:2222 #: scd/app-openpgp.c:1306
msgid "||Please enter your PIN at the reader's keypad"
msgstr ""
#: scd/app-openpgp.c:1310 scd/app-openpgp.c:1324 scd/app-openpgp.c:1415
#: scd/app-openpgp.c:2247
#, c-format #, c-format
msgid "PIN callback returned error: %s\n" msgid "PIN callback returned error: %s\n"
msgstr "funkce PIN callback zkonèila chybou: %s\n" msgstr "funkce PIN callback zkonèila chybou: %s\n"
#: scd/app-openpgp.c:1308 scd/app-openpgp.c:1396 scd/app-openpgp.c:2228 #: scd/app-openpgp.c:1331 scd/app-openpgp.c:1421 scd/app-openpgp.c:2253
#, c-format #, c-format
msgid "PIN for CHV%d is too short; minimum length is %d\n" msgid "PIN for CHV%d is too short; minimum length is %d\n"
msgstr "PIN pro CHV%d je pøíli¹ krátký; minimální délka je %d\n" msgstr "PIN pro CHV%d je pøíli¹ krátký; minimální délka je %d\n"
#: scd/app-openpgp.c:1317 scd/app-openpgp.c:1331 scd/app-openpgp.c:1406 #: scd/app-openpgp.c:1342 scd/app-openpgp.c:1356 scd/app-openpgp.c:1431
#: scd/app-openpgp.c:2237 scd/app-openpgp.c:2251 #: scd/app-openpgp.c:2262 scd/app-openpgp.c:2276
#, c-format #, c-format
msgid "verify CHV%d failed: %s\n" msgid "verify CHV%d failed: %s\n"
msgstr "verifikace CHV%d se nezdaøila: %s\n" msgstr "verifikace CHV%d se nezdaøila: %s\n"
#: scd/app-openpgp.c:1354 #: scd/app-openpgp.c:1379
msgid "access to admin commands is not configured\n" msgid "access to admin commands is not configured\n"
msgstr "pøístup k administrátorským pøíkazùm není nakonfigurován\n" msgstr "pøístup k administrátorským pøíkazùm není nakonfigurován\n"
#: scd/app-openpgp.c:1369 scd/app-openpgp.c:2461 #: scd/app-openpgp.c:1394 scd/app-openpgp.c:2486
msgid "error retrieving CHV status from card\n" msgid "error retrieving CHV status from card\n"
msgstr "chyba pøi získání CHV z karty\n" msgstr "chyba pøi získání CHV z karty\n"
#: scd/app-openpgp.c:1375 scd/app-openpgp.c:2470 #: scd/app-openpgp.c:1400 scd/app-openpgp.c:2495
msgid "card is permanently locked!\n" msgid "card is permanently locked!\n"
msgstr "karta je trvale uzamèena!\n" msgstr "karta je trvale uzamèena!\n"
#: scd/app-openpgp.c:1380 #: scd/app-openpgp.c:1405
#, c-format #, c-format
msgid "%d Admin PIN attempts remaining before card is permanently locked\n" msgid "%d Admin PIN attempts remaining before card is permanently locked\n"
msgstr "" msgstr ""
@ -6430,110 +6424,110 @@ msgstr ""
#. TRANSLATORS: Do not translate the "|A|" prefix but #. TRANSLATORS: Do not translate the "|A|" prefix but
#. keep it at the start of the string. We need this elsewhere #. keep it at the start of the string. We need this elsewhere
#. to get some infos on the string. #. to get some infos on the string.
#: scd/app-openpgp.c:1387 #: scd/app-openpgp.c:1412
msgid "|A|Admin PIN" msgid "|A|Admin PIN"
msgstr "|A|PIN administrátora" msgstr "|A|PIN administrátora"
#. TRANSLATORS: Do not translate the "|*|" prefixes but #. TRANSLATORS: Do not translate the "|*|" prefixes but
#. keep it at the start of the string. We need this elsewhere #. keep it at the start of the string. We need this elsewhere
#. to get some infos on the string. #. to get some infos on the string.
#: scd/app-openpgp.c:1536 #: scd/app-openpgp.c:1561
msgid "|AN|New Admin PIN" msgid "|AN|New Admin PIN"
msgstr "|AN|Nový PIN administrátora" msgstr "|AN|Nový PIN administrátora"
#: scd/app-openpgp.c:1536 #: scd/app-openpgp.c:1561
msgid "|N|New PIN" msgid "|N|New PIN"
msgstr "|N|Nový PIN" msgstr "|N|Nový PIN"
#: scd/app-openpgp.c:1540 #: scd/app-openpgp.c:1565
#, c-format #, c-format
msgid "error getting new PIN: %s\n" msgid "error getting new PIN: %s\n"
msgstr "chyba pøi získání nového PINu: %s\n" msgstr "chyba pøi získání nového PINu: %s\n"
#: scd/app-openpgp.c:1590 scd/app-openpgp.c:2039 #: scd/app-openpgp.c:1615 scd/app-openpgp.c:2064
msgid "error reading application data\n" msgid "error reading application data\n"
msgstr "chyba pøi ètení aplikaèních dat\n" msgstr "chyba pøi ètení aplikaèních dat\n"
#: scd/app-openpgp.c:1596 scd/app-openpgp.c:2046 #: scd/app-openpgp.c:1621 scd/app-openpgp.c:2071
msgid "error reading fingerprint DO\n" msgid "error reading fingerprint DO\n"
msgstr "chyba pøi ètení fingerpritnu DO\n" msgstr "chyba pøi ètení fingerpritnu DO\n"
#: scd/app-openpgp.c:1606 #: scd/app-openpgp.c:1631
msgid "key already exists\n" msgid "key already exists\n"
msgstr "klíè ji¾ existuje\n" msgstr "klíè ji¾ existuje\n"
#: scd/app-openpgp.c:1610 #: scd/app-openpgp.c:1635
msgid "existing key will be replaced\n" msgid "existing key will be replaced\n"
msgstr "existující klíè bude pøepsán\n" msgstr "existující klíè bude pøepsán\n"
#: scd/app-openpgp.c:1612 #: scd/app-openpgp.c:1637
msgid "generating new key\n" msgid "generating new key\n"
msgstr "generování nového klíèe\n" msgstr "generování nového klíèe\n"
#: scd/app-openpgp.c:1779 #: scd/app-openpgp.c:1804
msgid "creation timestamp missing\n" msgid "creation timestamp missing\n"
msgstr "chybí èasové razítko vytvoøení\n" msgstr "chybí èasové razítko vytvoøení\n"
#: scd/app-openpgp.c:1786 #: scd/app-openpgp.c:1811
#, c-format #, c-format
msgid "RSA modulus missing or not of size %d bits\n" msgid "RSA modulus missing or not of size %d bits\n"
msgstr "schází RSA modulus nebo nemá velikost %d bitù\n" msgstr "schází RSA modulus nebo nemá velikost %d bitù\n"
#: scd/app-openpgp.c:1793 #: scd/app-openpgp.c:1818
#, c-format #, c-format
msgid "RSA public exponent missing or larger than %d bits\n" msgid "RSA public exponent missing or larger than %d bits\n"
msgstr "schází veøejný RSA exponent nebo je del¹í ne¾ %d bitù\n" msgstr "schází veøejný RSA exponent nebo je del¹í ne¾ %d bitù\n"
#: scd/app-openpgp.c:1801 scd/app-openpgp.c:1808 #: scd/app-openpgp.c:1826 scd/app-openpgp.c:1833
#, c-format #, c-format
msgid "RSA prime %s missing or not of size %d bits\n" msgid "RSA prime %s missing or not of size %d bits\n"
msgstr "schází RSA prime %s nebo nemá velikost %d bitù\n" msgstr "schází RSA prime %s nebo nemá velikost %d bitù\n"
#: scd/app-openpgp.c:1871 #: scd/app-openpgp.c:1896
#, c-format #, c-format
msgid "failed to store the key: %s\n" msgid "failed to store the key: %s\n"
msgstr "nelze ulo¾it klíè: %s\n" msgstr "nelze ulo¾it klíè: %s\n"
#: scd/app-openpgp.c:1930 #: scd/app-openpgp.c:1955
msgid "please wait while key is being generated ...\n" msgid "please wait while key is being generated ...\n"
msgstr "prosím poèkejte ne¾ bude klíè vygenerován ...\n" msgstr "prosím poèkejte ne¾ bude klíè vygenerován ...\n"
#: scd/app-openpgp.c:1944 #: scd/app-openpgp.c:1969
msgid "generating key failed\n" msgid "generating key failed\n"
msgstr "henerování klíèe se nezdaøilo\n" msgstr "henerování klíèe se nezdaøilo\n"
#: scd/app-openpgp.c:1947 #: scd/app-openpgp.c:1972
#, c-format #, c-format
msgid "key generation completed (%d seconds)\n" msgid "key generation completed (%d seconds)\n"
msgstr "generování klíèe dokonèeno (%d sekund)\n" msgstr "generování klíèe dokonèeno (%d sekund)\n"
#: scd/app-openpgp.c:2004 #: scd/app-openpgp.c:2029
msgid "invalid structure of OpenPGP card (DO 0x93)\n" msgid "invalid structure of OpenPGP card (DO 0x93)\n"
msgstr "neplatná struktura OpenPGP kraty (DO 0x93)\n" msgstr "neplatná struktura OpenPGP kraty (DO 0x93)\n"
#: scd/app-openpgp.c:2141 #: scd/app-openpgp.c:2166
#, fuzzy, c-format #, fuzzy, c-format
msgid "card does not support digest algorithm %s\n" msgid "card does not support digest algorithm %s\n"
msgstr "podpis %s, hashovací algoritmus %s\n" msgstr "podpis %s, hashovací algoritmus %s\n"
#: scd/app-openpgp.c:2202 #: scd/app-openpgp.c:2227
#, c-format #, c-format
msgid "signatures created so far: %lu\n" msgid "signatures created so far: %lu\n"
msgstr "dosud vytvoøené podpisy: %lu\n" msgstr "dosud vytvoøené podpisy: %lu\n"
#: scd/app-openpgp.c:2210 #: scd/app-openpgp.c:2235
#, c-format #, c-format
msgid "||Please enter the PIN%%0A[sigs done: %lu]" msgid "||Please enter the PIN%%0A[sigs done: %lu]"
msgstr "||Prosím vlo¾te PIN%%0A[podpis hotov: %lu]" msgstr "||Prosím vlo¾te PIN%%0A[podpis hotov: %lu]"
#: scd/app-openpgp.c:2475 #: scd/app-openpgp.c:2500
msgid "" msgid ""
"verification of Admin PIN is currently prohibited through this command\n" "verification of Admin PIN is currently prohibited through this command\n"
msgstr "" msgstr ""
"ovìøení administrátorského PIN je nyní prostøednictvím tohoto pøíkazu " "ovìøení administrátorského PIN je nyní prostøednictvím tohoto pøíkazu "
"zakázáno\n" "zakázáno\n"
#: scd/app-openpgp.c:2548 scd/app-openpgp.c:2558 #: scd/app-openpgp.c:2573 scd/app-openpgp.c:2583
#, c-format #, c-format
msgid "can't access %s - invalid OpenPGP card?\n" msgid "can't access %s - invalid OpenPGP card?\n"
msgstr "pøístup na %s se nezdaøil - vadná OpenPGP karta?\n" msgstr "pøístup na %s se nezdaøil - vadná OpenPGP karta?\n"
@ -6583,16 +6577,16 @@ msgid ""
"Smartcard daemon for GnuPG\n" "Smartcard daemon for GnuPG\n"
msgstr "" msgstr ""
#: scd/scdaemon.c:672 #: scd/scdaemon.c:682
msgid "please use the option `--daemon' to run the program in the background\n" msgid "please use the option `--daemon' to run the program in the background\n"
msgstr "" msgstr ""
#: scd/scdaemon.c:1013 #: scd/scdaemon.c:1030
#, c-format #, c-format
msgid "handler for fd %d started\n" msgid "handler for fd %d started\n"
msgstr "" msgstr ""
#: scd/scdaemon.c:1018 #: scd/scdaemon.c:1035
#, c-format #, c-format
msgid "handler for fd %d terminated\n" msgid "handler for fd %d terminated\n"
msgstr "" msgstr ""
@ -6766,35 +6760,35 @@ msgstr "DSA po
msgid "(this is the MD2 algorithm)\n" msgid "(this is the MD2 algorithm)\n"
msgstr "" msgstr ""
#: sm/certdump.c:61 sm/certdump.c:147 #: sm/certdump.c:68 sm/certdump.c:154
#, fuzzy #, fuzzy
msgid "none" msgid "none"
msgstr "ne" msgstr "ne"
#: sm/certdump.c:156 #: sm/certdump.c:163
#, fuzzy #, fuzzy
msgid "[none]" msgid "[none]"
msgstr "[není nastaven]" msgstr "[není nastaven]"
#: sm/certdump.c:529 sm/certdump.c:592 #: sm/certdump.c:536 sm/certdump.c:599
#, fuzzy #, fuzzy
msgid "[Error - invalid encoding]" msgid "[Error - invalid encoding]"
msgstr "Chyba: neplatná odpovìï.\n" msgstr "Chyba: neplatná odpovìï.\n"
#: sm/certdump.c:537 #: sm/certdump.c:544
msgid "[Error - out of core]" msgid "[Error - out of core]"
msgstr "" msgstr ""
#: sm/certdump.c:572 #: sm/certdump.c:579
msgid "[Error - No name]" msgid "[Error - No name]"
msgstr "" msgstr ""
#: sm/certdump.c:597 #: sm/certdump.c:604
#, fuzzy #, fuzzy
msgid "[Error - invalid DN]" msgid "[Error - invalid DN]"
msgstr "Chyba: neplatná odpovìï.\n" msgstr "Chyba: neplatná odpovìï.\n"
#: sm/certdump.c:758 #: sm/certdump.c:818
#, fuzzy, c-format #, fuzzy, c-format
msgid "" msgid ""
"Please enter the passphrase to unlock the secret key for:\n" "Please enter the passphrase to unlock the secret key for:\n"
@ -7298,12 +7292,12 @@ msgstr ""
msgid " using certificate ID %08lX\n" msgid " using certificate ID %08lX\n"
msgstr "" msgstr ""
#: sm/verify.c:506 #: sm/verify.c:509
#, fuzzy #, fuzzy
msgid "Good signature from" msgid "Good signature from"
msgstr "Dobrý podpis od \"%s\"" msgstr "Dobrý podpis od \"%s\""
#: sm/verify.c:507 #: sm/verify.c:510
#, fuzzy #, fuzzy
msgid " aka" msgid " aka"
msgstr " alias \"%s\"" msgstr " alias \"%s\""
@ -7660,6 +7654,10 @@ msgstr ""
msgid "class %s is not supported\n" msgid "class %s is not supported\n"
msgstr "ochranný algoritmus %d není podporován\n" msgstr "ochranný algoritmus %d není podporován\n"
#, fuzzy
#~ msgid ".\n"
#~ msgstr "%s.\n"
#~ msgid "problem with the agent - disabling agent use\n" #~ msgid "problem with the agent - disabling agent use\n"
#~ msgstr "problém s agentem - pou¾ívání agenta vypnuto\n" #~ msgstr "problém s agentem - pou¾ívání agenta vypnuto\n"

193
po/da.po
View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnupg 1.0.0h\n" "Project-Id-Version: gnupg 1.0.0h\n"
"Report-Msgid-Bugs-To: translations@gnupg.org\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n"
"POT-Creation-Date: 2006-11-10 00:40+0100\n" "POT-Creation-Date: 2006-11-21 10:53+0100\n"
"PO-Revision-Date: 2003-12-03 16:11+0100\n" "PO-Revision-Date: 2003-12-03 16:11+0100\n"
"Last-Translator: Birger Langkjer <birger.langkjer@image.dk>\n" "Last-Translator: Birger Langkjer <birger.langkjer@image.dk>\n"
"Language-Team: Danish <dansk@klid.dk>\n" "Language-Team: Danish <dansk@klid.dk>\n"
@ -133,7 +133,7 @@ msgid ""
msgstr "" msgstr ""
# er det klogt at oversætte TrustDB? # er det klogt at oversætte TrustDB?
#: agent/command-ssh.c:2857 #: agent/command-ssh.c:2853
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to create stream from socket: %s\n" msgid "failed to create stream from socket: %s\n"
msgstr "kunne ikke initialisere TillidsDB: %s\n" msgstr "kunne ikke initialisere TillidsDB: %s\n"
@ -288,160 +288,154 @@ msgstr ""
msgid "|FILE|write environment settings also to FILE" msgid "|FILE|write environment settings also to FILE"
msgstr "" msgstr ""
#: agent/gpg-agent.c:238 agent/preset-passphrase.c:96 agent/protect-tool.c:143 #: agent/gpg-agent.c:241 agent/preset-passphrase.c:96 agent/protect-tool.c:143
#: scd/scdaemon.c:190 sm/gpgsm.c:517 tools/gpg-connect-agent.c:123 #: scd/scdaemon.c:190 sm/gpgsm.c:517 tools/gpg-connect-agent.c:123
#: tools/gpgconf.c:86 tools/symcryptrun.c:225 #: tools/gpgconf.c:86 tools/symcryptrun.c:225
#, fuzzy #, fuzzy
msgid "Please report bugs to <" msgid "Please report bugs to <"
msgstr "Rapportér venligst fejl til <gnupg-bugs@gnu.org>.\n" msgstr "Rapportér venligst fejl til <gnupg-bugs@gnu.org>.\n"
#: agent/gpg-agent.c:238 agent/preset-passphrase.c:96 agent/protect-tool.c:143 #: agent/gpg-agent.c:244
#: scd/scdaemon.c:190 sm/gpgsm.c:517 tools/gpg-connect-agent.c:123
#: tools/gpgconf.c:86 tools/symcryptrun.c:225
msgid ">.\n"
msgstr ""
#: agent/gpg-agent.c:241
#, fuzzy #, fuzzy
msgid "Usage: gpg-agent [options] (-h for help)" msgid "Usage: gpg-agent [options] (-h for help)"
msgstr "Brug: gpg [flag] [filer] (-h for hjælp)" msgstr "Brug: gpg [flag] [filer] (-h for hjælp)"
#: agent/gpg-agent.c:243 #: agent/gpg-agent.c:246
msgid "" msgid ""
"Syntax: gpg-agent [options] [command [args]]\n" "Syntax: gpg-agent [options] [command [args]]\n"
"Secret key management for GnuPG\n" "Secret key management for GnuPG\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:302 #: agent/gpg-agent.c:305
#, c-format #, c-format
msgid "out of core in secure memory while allocating %lu bytes" msgid "out of core in secure memory while allocating %lu bytes"
msgstr "" msgstr ""
#: agent/gpg-agent.c:305 #: agent/gpg-agent.c:308
#, c-format #, c-format
msgid "out of core while allocating %lu bytes" msgid "out of core while allocating %lu bytes"
msgstr "" msgstr ""
#: agent/gpg-agent.c:336 g10/gpg.c:923 scd/scdaemon.c:264 sm/gpgsm.c:646 #: agent/gpg-agent.c:339 g10/gpg.c:923 scd/scdaemon.c:264 sm/gpgsm.c:646
#, c-format #, c-format
msgid "invalid debug-level `%s' given\n" msgid "invalid debug-level `%s' given\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:507 agent/protect-tool.c:1073 g10/gpg.c:1808 #: agent/gpg-agent.c:510 agent/protect-tool.c:1073 g10/gpg.c:1808
#: kbx/kbxutil.c:432 scd/scdaemon.c:356 sm/gpgsm.c:767 #: kbx/kbxutil.c:432 scd/scdaemon.c:356 sm/gpgsm.c:767
#: tools/symcryptrun.c:1056 #: tools/symcryptrun.c:1056
#, c-format #, c-format
msgid "libgcrypt is too old (need %s, have %s)\n" msgid "libgcrypt is too old (need %s, have %s)\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:601 g10/gpg.c:2007 scd/scdaemon.c:433 sm/gpgsm.c:864 #: agent/gpg-agent.c:604 g10/gpg.c:2007 scd/scdaemon.c:433 sm/gpgsm.c:864
#, c-format #, c-format
msgid "NOTE: no default option file `%s'\n" msgid "NOTE: no default option file `%s'\n"
msgstr "NOTITS: ingen standard alternativfil '%s'\n" msgstr "NOTITS: ingen standard alternativfil '%s'\n"
#: agent/gpg-agent.c:606 agent/gpg-agent.c:1129 g10/gpg.c:2011 #: agent/gpg-agent.c:609 agent/gpg-agent.c:1160 g10/gpg.c:2011
#: scd/scdaemon.c:438 sm/gpgsm.c:868 tools/symcryptrun.c:989 #: scd/scdaemon.c:438 sm/gpgsm.c:868 tools/symcryptrun.c:989
#, c-format #, c-format
msgid "option file `%s': %s\n" msgid "option file `%s': %s\n"
msgstr "alternativfil`%s': %s\n" msgstr "alternativfil`%s': %s\n"
#: agent/gpg-agent.c:614 g10/gpg.c:2018 scd/scdaemon.c:446 sm/gpgsm.c:875 #: agent/gpg-agent.c:617 g10/gpg.c:2018 scd/scdaemon.c:446 sm/gpgsm.c:875
#, c-format #, c-format
msgid "reading options from `%s'\n" msgid "reading options from `%s'\n"
msgstr "læser indstillinger fra `%s'\n" msgstr "læser indstillinger fra `%s'\n"
#: agent/gpg-agent.c:914 g10/plaintext.c:136 g10/plaintext.c:141 #: agent/gpg-agent.c:930 g10/plaintext.c:136 g10/plaintext.c:141
#: g10/plaintext.c:158 #: g10/plaintext.c:158
#, fuzzy, c-format #, fuzzy, c-format
msgid "error creating `%s': %s\n" msgid "error creating `%s': %s\n"
msgstr "fejl ved læsning af '%s': %s\n" msgstr "fejl ved læsning af '%s': %s\n"
#: agent/gpg-agent.c:1179 agent/gpg-agent.c:1282 agent/gpg-agent.c:1286 #: agent/gpg-agent.c:1210 agent/gpg-agent.c:1313 agent/gpg-agent.c:1317
#: agent/gpg-agent.c:1322 agent/gpg-agent.c:1326 g10/exec.c:174 #: agent/gpg-agent.c:1353 agent/gpg-agent.c:1357 g10/exec.c:174
#: g10/openfile.c:416 scd/scdaemon.c:916 #: g10/openfile.c:416 scd/scdaemon.c:932
#, fuzzy, c-format #, fuzzy, c-format
msgid "can't create directory `%s': %s\n" msgid "can't create directory `%s': %s\n"
msgstr "%s: kan ikke oprette mappe: %s\n" msgstr "%s: kan ikke oprette mappe: %s\n"
#: agent/gpg-agent.c:1193 scd/scdaemon.c:930 #: agent/gpg-agent.c:1224 scd/scdaemon.c:946
msgid "name of socket too long\n" msgid "name of socket too long\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1219 scd/scdaemon.c:956 #: agent/gpg-agent.c:1250 scd/scdaemon.c:972
#, fuzzy, c-format #, fuzzy, c-format
msgid "can't create socket: %s\n" msgid "can't create socket: %s\n"
msgstr "kan ikke oprette %s: %s\n" msgstr "kan ikke oprette %s: %s\n"
#: agent/gpg-agent.c:1248 scd/scdaemon.c:985 #: agent/gpg-agent.c:1279 scd/scdaemon.c:1001
#, fuzzy, c-format #, fuzzy, c-format
msgid "error binding socket to `%s': %s\n" msgid "error binding socket to `%s': %s\n"
msgstr "fejl ved læsning af '%s': %s\n" msgstr "fejl ved læsning af '%s': %s\n"
#: agent/gpg-agent.c:1256 scd/scdaemon.c:993 #: agent/gpg-agent.c:1287 scd/scdaemon.c:1009
#, fuzzy, c-format #, fuzzy, c-format
msgid "listen() failed: %s\n" msgid "listen() failed: %s\n"
msgstr "signering fejlede: %s\n" msgstr "signering fejlede: %s\n"
#: agent/gpg-agent.c:1262 scd/scdaemon.c:999 #: agent/gpg-agent.c:1293 scd/scdaemon.c:1015
#, fuzzy, c-format #, fuzzy, c-format
msgid "listening on socket `%s'\n" msgid "listening on socket `%s'\n"
msgstr "skriver hemmeligt certifikat til '%s'\n" msgstr "skriver hemmeligt certifikat til '%s'\n"
#: agent/gpg-agent.c:1290 agent/gpg-agent.c:1332 g10/openfile.c:419 #: agent/gpg-agent.c:1321 agent/gpg-agent.c:1363 g10/openfile.c:419
#, fuzzy, c-format #, fuzzy, c-format
msgid "directory `%s' created\n" msgid "directory `%s' created\n"
msgstr "%s: mappe oprettet\n" msgstr "%s: mappe oprettet\n"
#: agent/gpg-agent.c:1338 #: agent/gpg-agent.c:1369
#, fuzzy, c-format #, fuzzy, c-format
msgid "stat() failed for `%s': %s\n" msgid "stat() failed for `%s': %s\n"
msgstr "kan ikke åbne %s: %s\n" msgstr "kan ikke åbne %s: %s\n"
#: agent/gpg-agent.c:1342 #: agent/gpg-agent.c:1373
#, fuzzy, c-format #, fuzzy, c-format
msgid "can't use `%s' as home directory\n" msgid "can't use `%s' as home directory\n"
msgstr "%s: kan ikke oprette mappe: %s\n" msgstr "%s: kan ikke oprette mappe: %s\n"
#: agent/gpg-agent.c:1441 #: agent/gpg-agent.c:1475
#, c-format #, c-format
msgid "handler 0x%lx for fd %d started\n" msgid "handler 0x%lx for fd %d started\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1446 #: agent/gpg-agent.c:1480
#, c-format #, c-format
msgid "handler 0x%lx for fd %d terminated\n" msgid "handler 0x%lx for fd %d terminated\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1460 #: agent/gpg-agent.c:1497
#, c-format #, c-format
msgid "ssh handler 0x%lx for fd %d started\n" msgid "ssh handler 0x%lx for fd %d started\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1465 #: agent/gpg-agent.c:1502
#, c-format #, c-format
msgid "ssh handler 0x%lx for fd %d terminated\n" msgid "ssh handler 0x%lx for fd %d terminated\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1559 scd/scdaemon.c:1115 #: agent/gpg-agent.c:1598 scd/scdaemon.c:1134
#, c-format #, c-format
msgid "pth_select failed: %s - waiting 1s\n" msgid "pth_select failed: %s - waiting 1s\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1643 scd/scdaemon.c:1172 #: agent/gpg-agent.c:1704 scd/scdaemon.c:1201
#, fuzzy, c-format #, fuzzy, c-format
msgid "%s %s stopped\n" msgid "%s %s stopped\n"
msgstr "%s: udelod: %s\n" msgstr "%s: udelod: %s\n"
#: agent/gpg-agent.c:1664 #: agent/gpg-agent.c:1725
msgid "no gpg-agent running in this session\n" msgid "no gpg-agent running in this session\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1674 common/simple-pwquery.c:324 g10/call-agent.c:137 #: agent/gpg-agent.c:1735 common/simple-pwquery.c:324 g10/call-agent.c:137
#: sm/call-agent.c:144 tools/gpg-connect-agent.c:713 #: sm/call-agent.c:144 tools/gpg-connect-agent.c:713
msgid "malformed GPG_AGENT_INFO environment variable\n" msgid "malformed GPG_AGENT_INFO environment variable\n"
msgstr "" msgstr ""
#: agent/gpg-agent.c:1686 common/simple-pwquery.c:336 g10/call-agent.c:149 #: agent/gpg-agent.c:1747 common/simple-pwquery.c:336 g10/call-agent.c:149
#: sm/call-agent.c:156 tools/gpg-connect-agent.c:724 #: sm/call-agent.c:156 tools/gpg-connect-agent.c:724
#, fuzzy, c-format #, fuzzy, c-format
msgid "gpg-agent protocol version %d is not supported\n" msgid "gpg-agent protocol version %d is not supported\n"
@ -4230,7 +4224,7 @@ msgstr "N
msgid "Signature expires at %s\n" msgid "Signature expires at %s\n"
msgstr "Denne nøgle er ikke beskyttet.\n" msgstr "Denne nøgle er ikke beskyttet.\n"
#: g10/keygen.c:1856 #: g10/keygen.c:1854
msgid "" msgid ""
"Your system can't display dates beyond 2038.\n" "Your system can't display dates beyond 2038.\n"
"However, it will be correctly handled up to 2106.\n" "However, it will be correctly handled up to 2106.\n"
@ -4451,7 +4445,7 @@ msgstr "kan ikke oprette %s: %s\n"
msgid "NOTE: backup of card key saved to `%s'\n" msgid "NOTE: backup of card key saved to `%s'\n"
msgstr "hemmelige nøgler import: %lu\n" msgstr "hemmelige nøgler import: %lu\n"
#: g10/keyid.c:539 g10/keyid.c:551 g10/keyid.c:563 g10/keyid.c:575 #: g10/keyid.c:540 g10/keyid.c:552 g10/keyid.c:564 g10/keyid.c:576
msgid "never " msgid "never "
msgstr "" msgstr ""
@ -5491,26 +5485,26 @@ msgstr ""
msgid "okay, we are the anonymous recipient.\n" msgid "okay, we are the anonymous recipient.\n"
msgstr "" msgstr ""
#: g10/pubkey-enc.c:226 #: g10/pubkey-enc.c:227
msgid "old encoding of the DEK is not supported\n" msgid "old encoding of the DEK is not supported\n"
msgstr "" msgstr ""
#: g10/pubkey-enc.c:247 #: g10/pubkey-enc.c:248
#, fuzzy, c-format #, fuzzy, c-format
msgid "cipher algorithm %d%s is unknown or disabled\n" msgid "cipher algorithm %d%s is unknown or disabled\n"
msgstr "valgte cifferalgoritme %d er ugyldig\n" msgstr "valgte cifferalgoritme %d er ugyldig\n"
#: g10/pubkey-enc.c:285 #: g10/pubkey-enc.c:286
#, c-format #, c-format
msgid "WARNING: cipher algorithm %s not found in recipient preferences\n" msgid "WARNING: cipher algorithm %s not found in recipient preferences\n"
msgstr "" msgstr ""
#: g10/pubkey-enc.c:305 #: g10/pubkey-enc.c:306
#, fuzzy, c-format #, fuzzy, c-format
msgid "NOTE: secret key %s expired at %s\n" msgid "NOTE: secret key %s expired at %s\n"
msgstr "hemmelige nøgler import: %lu\n" msgstr "hemmelige nøgler import: %lu\n"
#: g10/pubkey-enc.c:311 #: g10/pubkey-enc.c:312
#, fuzzy #, fuzzy
msgid "NOTE: key has been revoked" msgid "NOTE: key has been revoked"
msgstr "nøgle %08lX: nøgle er blevet annulleret!\n" msgstr "nøgle %08lX: nøgle er blevet annulleret!\n"
@ -5676,12 +5670,12 @@ msgstr ""
msgid "DSA requires the hash length to be a multiple of 8 bits\n" msgid "DSA requires the hash length to be a multiple of 8 bits\n"
msgstr "" msgstr ""
#: g10/seskey.c:243 #: g10/seskey.c:242
#, c-format #, c-format
msgid "DSA key %s uses an unsafe (%u bit) hash\n" msgid "DSA key %s uses an unsafe (%u bit) hash\n"
msgstr "" msgstr ""
#: g10/seskey.c:255 #: g10/seskey.c:254
#, c-format #, c-format
msgid "DSA key %s requires a %u bit or larger hash\n" msgid "DSA key %s requires a %u bit or larger hash\n"
msgstr "" msgstr ""
@ -6195,7 +6189,7 @@ msgstr ""
msgid "input line %u too long or missing LF\n" msgid "input line %u too long or missing LF\n"
msgstr "" msgstr ""
#: jnlib/logging.c:619 #: jnlib/logging.c:626
#, c-format #, c-format
msgid "you found a bug ... (%s:%d)\n" msgid "you found a bug ... (%s:%d)\n"
msgstr "du fandt en fejl ... (%s:%d)\n" msgstr "du fandt en fejl ... (%s:%d)\n"
@ -6228,10 +6222,6 @@ msgstr "sl
msgid "Please report bugs to " msgid "Please report bugs to "
msgstr "Rapportér venligst fejl til <gnupg-bugs@gnu.org>.\n" msgstr "Rapportér venligst fejl til <gnupg-bugs@gnu.org>.\n"
#: kbx/kbxutil.c:108
msgid ".\n"
msgstr ""
#: kbx/kbxutil.c:112 #: kbx/kbxutil.c:112
#, fuzzy #, fuzzy
msgid "Usage: kbxutil [options] [files] (-h for help)" msgid "Usage: kbxutil [options] [files] (-h for help)"
@ -6263,47 +6253,52 @@ msgstr "ingen standard offentlig n
msgid "reading public key failed: %s\n" msgid "reading public key failed: %s\n"
msgstr "fjernelse af beskyttelse fejlede: %s\n" msgstr "fjernelse af beskyttelse fejlede: %s\n"
#: scd/app-openpgp.c:1017 scd/app-openpgp.c:1953 #: scd/app-openpgp.c:1017 scd/app-openpgp.c:1978
msgid "response does not contain the public key data\n" msgid "response does not contain the public key data\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1025 scd/app-openpgp.c:1961 #: scd/app-openpgp.c:1025 scd/app-openpgp.c:1986
msgid "response does not contain the RSA modulus\n" msgid "response does not contain the RSA modulus\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1034 scd/app-openpgp.c:1971 #: scd/app-openpgp.c:1034 scd/app-openpgp.c:1996
msgid "response does not contain the RSA public exponent\n" msgid "response does not contain the RSA public exponent\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1302 scd/app-openpgp.c:1390 scd/app-openpgp.c:2222 #: scd/app-openpgp.c:1306
msgid "||Please enter your PIN at the reader's keypad"
msgstr ""
#: scd/app-openpgp.c:1310 scd/app-openpgp.c:1324 scd/app-openpgp.c:1415
#: scd/app-openpgp.c:2247
#, c-format #, c-format
msgid "PIN callback returned error: %s\n" msgid "PIN callback returned error: %s\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1308 scd/app-openpgp.c:1396 scd/app-openpgp.c:2228 #: scd/app-openpgp.c:1331 scd/app-openpgp.c:1421 scd/app-openpgp.c:2253
#, c-format #, c-format
msgid "PIN for CHV%d is too short; minimum length is %d\n" msgid "PIN for CHV%d is too short; minimum length is %d\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1317 scd/app-openpgp.c:1331 scd/app-openpgp.c:1406 #: scd/app-openpgp.c:1342 scd/app-openpgp.c:1356 scd/app-openpgp.c:1431
#: scd/app-openpgp.c:2237 scd/app-openpgp.c:2251 #: scd/app-openpgp.c:2262 scd/app-openpgp.c:2276
#, fuzzy, c-format #, fuzzy, c-format
msgid "verify CHV%d failed: %s\n" msgid "verify CHV%d failed: %s\n"
msgstr "påklædning af beskyttelse fejlede: %s\n" msgstr "påklædning af beskyttelse fejlede: %s\n"
#: scd/app-openpgp.c:1354 #: scd/app-openpgp.c:1379
msgid "access to admin commands is not configured\n" msgid "access to admin commands is not configured\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1369 scd/app-openpgp.c:2461 #: scd/app-openpgp.c:1394 scd/app-openpgp.c:2486
msgid "error retrieving CHV status from card\n" msgid "error retrieving CHV status from card\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1375 scd/app-openpgp.c:2470 #: scd/app-openpgp.c:1400 scd/app-openpgp.c:2495
msgid "card is permanently locked!\n" msgid "card is permanently locked!\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1380 #: scd/app-openpgp.c:1405
#, c-format #, c-format
msgid "%d Admin PIN attempts remaining before card is permanently locked\n" msgid "%d Admin PIN attempts remaining before card is permanently locked\n"
msgstr "" msgstr ""
@ -6311,114 +6306,114 @@ msgstr ""
#. TRANSLATORS: Do not translate the "|A|" prefix but #. TRANSLATORS: Do not translate the "|A|" prefix but
#. keep it at the start of the string. We need this elsewhere #. keep it at the start of the string. We need this elsewhere
#. to get some infos on the string. #. to get some infos on the string.
#: scd/app-openpgp.c:1387 #: scd/app-openpgp.c:1412
msgid "|A|Admin PIN" msgid "|A|Admin PIN"
msgstr "" msgstr ""
#. TRANSLATORS: Do not translate the "|*|" prefixes but #. TRANSLATORS: Do not translate the "|*|" prefixes but
#. keep it at the start of the string. We need this elsewhere #. keep it at the start of the string. We need this elsewhere
#. to get some infos on the string. #. to get some infos on the string.
#: scd/app-openpgp.c:1536 #: scd/app-openpgp.c:1561
msgid "|AN|New Admin PIN" msgid "|AN|New Admin PIN"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1536 #: scd/app-openpgp.c:1561
msgid "|N|New PIN" msgid "|N|New PIN"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1540 #: scd/app-openpgp.c:1565
#, fuzzy, c-format #, fuzzy, c-format
msgid "error getting new PIN: %s\n" msgid "error getting new PIN: %s\n"
msgstr "fejl ved oprettelse af kodesætning: %s\n" msgstr "fejl ved oprettelse af kodesætning: %s\n"
#: scd/app-openpgp.c:1590 scd/app-openpgp.c:2039 #: scd/app-openpgp.c:1615 scd/app-openpgp.c:2064
#, fuzzy #, fuzzy
msgid "error reading application data\n" msgid "error reading application data\n"
msgstr "fejl ved læsning af '%s': %s\n" msgstr "fejl ved læsning af '%s': %s\n"
#: scd/app-openpgp.c:1596 scd/app-openpgp.c:2046 #: scd/app-openpgp.c:1621 scd/app-openpgp.c:2071
#, fuzzy #, fuzzy
msgid "error reading fingerprint DO\n" msgid "error reading fingerprint DO\n"
msgstr "fejl i trailerlinie\n" msgstr "fejl i trailerlinie\n"
#: scd/app-openpgp.c:1606 #: scd/app-openpgp.c:1631
#, fuzzy #, fuzzy
msgid "key already exists\n" msgid "key already exists\n"
msgstr "fjern nøgle fra den hemmelige nøglering" msgstr "fjern nøgle fra den hemmelige nøglering"
#: scd/app-openpgp.c:1610 #: scd/app-openpgp.c:1635
msgid "existing key will be replaced\n" msgid "existing key will be replaced\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1612 #: scd/app-openpgp.c:1637
#, fuzzy #, fuzzy
msgid "generating new key\n" msgid "generating new key\n"
msgstr "generér et nyt nøglepar" msgstr "generér et nyt nøglepar"
#: scd/app-openpgp.c:1779 #: scd/app-openpgp.c:1804
msgid "creation timestamp missing\n" msgid "creation timestamp missing\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1786 #: scd/app-openpgp.c:1811
#, c-format #, c-format
msgid "RSA modulus missing or not of size %d bits\n" msgid "RSA modulus missing or not of size %d bits\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1793 #: scd/app-openpgp.c:1818
#, c-format #, c-format
msgid "RSA public exponent missing or larger than %d bits\n" msgid "RSA public exponent missing or larger than %d bits\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1801 scd/app-openpgp.c:1808 #: scd/app-openpgp.c:1826 scd/app-openpgp.c:1833
#, c-format #, c-format
msgid "RSA prime %s missing or not of size %d bits\n" msgid "RSA prime %s missing or not of size %d bits\n"
msgstr "" msgstr ""
# er det klogt at oversætte TrustDB? # er det klogt at oversætte TrustDB?
#: scd/app-openpgp.c:1871 #: scd/app-openpgp.c:1896
#, fuzzy, c-format #, fuzzy, c-format
msgid "failed to store the key: %s\n" msgid "failed to store the key: %s\n"
msgstr "kunne ikke initialisere TillidsDB: %s\n" msgstr "kunne ikke initialisere TillidsDB: %s\n"
#: scd/app-openpgp.c:1930 #: scd/app-openpgp.c:1955
msgid "please wait while key is being generated ...\n" msgid "please wait while key is being generated ...\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:1944 #: scd/app-openpgp.c:1969
#, fuzzy #, fuzzy
msgid "generating key failed\n" msgid "generating key failed\n"
msgstr "fjernelse af beskyttelse fejlede: %s\n" msgstr "fjernelse af beskyttelse fejlede: %s\n"
#: scd/app-openpgp.c:1947 #: scd/app-openpgp.c:1972
#, fuzzy, c-format #, fuzzy, c-format
msgid "key generation completed (%d seconds)\n" msgid "key generation completed (%d seconds)\n"
msgstr "Nøgleoprettelse annulleret.\n" msgstr "Nøgleoprettelse annulleret.\n"
#: scd/app-openpgp.c:2004 #: scd/app-openpgp.c:2029
msgid "invalid structure of OpenPGP card (DO 0x93)\n" msgid "invalid structure of OpenPGP card (DO 0x93)\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:2141 #: scd/app-openpgp.c:2166
#, fuzzy, c-format #, fuzzy, c-format
msgid "card does not support digest algorithm %s\n" msgid "card does not support digest algorithm %s\n"
msgstr "%s signatur fra: %s\n" msgstr "%s signatur fra: %s\n"
#: scd/app-openpgp.c:2202 #: scd/app-openpgp.c:2227
#, c-format #, c-format
msgid "signatures created so far: %lu\n" msgid "signatures created so far: %lu\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:2210 #: scd/app-openpgp.c:2235
#, c-format #, c-format
msgid "||Please enter the PIN%%0A[sigs done: %lu]" msgid "||Please enter the PIN%%0A[sigs done: %lu]"
msgstr "" msgstr ""
#: scd/app-openpgp.c:2475 #: scd/app-openpgp.c:2500
msgid "" msgid ""
"verification of Admin PIN is currently prohibited through this command\n" "verification of Admin PIN is currently prohibited through this command\n"
msgstr "" msgstr ""
#: scd/app-openpgp.c:2548 scd/app-openpgp.c:2558 #: scd/app-openpgp.c:2573 scd/app-openpgp.c:2583
#, fuzzy, c-format #, fuzzy, c-format
msgid "can't access %s - invalid OpenPGP card?\n" msgid "can't access %s - invalid OpenPGP card?\n"
msgstr "ingen gyldig OpenPGP data fundet.\n" msgstr "ingen gyldig OpenPGP data fundet.\n"
@ -6471,16 +6466,16 @@ msgid ""
"Smartcard daemon for GnuPG\n" "Smartcard daemon for GnuPG\n"
msgstr "" msgstr ""
#: scd/scdaemon.c:672 #: scd/scdaemon.c:682
msgid "please use the option `--daemon' to run the program in the background\n" msgid "please use the option `--daemon' to run the program in the background\n"
msgstr "" msgstr ""
#: scd/scdaemon.c:1013 #: scd/scdaemon.c:1030
#, c-format #, c-format
msgid "handler for fd %d started\n" msgid "handler for fd %d started\n"
msgstr "" msgstr ""
#: scd/scdaemon.c:1018 #: scd/scdaemon.c:1035
#, c-format #, c-format
msgid "handler for fd %d terminated\n" msgid "handler for fd %d terminated\n"
msgstr "" msgstr ""
@ -6655,35 +6650,35 @@ msgstr ""
msgid "(this is the MD2 algorithm)\n" msgid "(this is the MD2 algorithm)\n"
msgstr "" msgstr ""
#: sm/certdump.c:61 sm/certdump.c:147 #: sm/certdump.c:68 sm/certdump.c:154
#, fuzzy #, fuzzy
msgid "none" msgid "none"
msgstr "n" msgstr "n"
#: sm/certdump.c:156 #: sm/certdump.c:163
#, fuzzy #, fuzzy
msgid "[none]" msgid "[none]"
msgstr "ukendt version" msgstr "ukendt version"
#: sm/certdump.c:529 sm/certdump.c:592 #: sm/certdump.c:536 sm/certdump.c:599
#, fuzzy #, fuzzy
msgid "[Error - invalid encoding]" msgid "[Error - invalid encoding]"
msgstr "fejl i trailerlinie\n" msgstr "fejl i trailerlinie\n"
#: sm/certdump.c:537 #: sm/certdump.c:544
msgid "[Error - out of core]" msgid "[Error - out of core]"
msgstr "" msgstr ""
#: sm/certdump.c:572 #: sm/certdump.c:579
msgid "[Error - No name]" msgid "[Error - No name]"
msgstr "" msgstr ""
#: sm/certdump.c:597 #: sm/certdump.c:604
#, fuzzy #, fuzzy
msgid "[Error - invalid DN]" msgid "[Error - invalid DN]"
msgstr "fejl i trailerlinie\n" msgstr "fejl i trailerlinie\n"
#: sm/certdump.c:758 #: sm/certdump.c:818
#, fuzzy, c-format #, fuzzy, c-format
msgid "" msgid ""
"Please enter the passphrase to unlock the secret key for:\n" "Please enter the passphrase to unlock the secret key for:\n"
@ -7180,12 +7175,12 @@ msgstr ""
msgid " using certificate ID %08lX\n" msgid " using certificate ID %08lX\n"
msgstr "" msgstr ""
#: sm/verify.c:506 #: sm/verify.c:509
#, fuzzy #, fuzzy
msgid "Good signature from" msgid "Good signature from"
msgstr "God signatur fra \"" msgstr "God signatur fra \""
#: sm/verify.c:507 #: sm/verify.c:510
#, fuzzy #, fuzzy
msgid " aka" msgid " aka"
msgstr " alias \"" msgstr " alias \""

209
po/de.po
View File

@ -9,8 +9,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnupg-1.9.90\n" "Project-Id-Version: gnupg-1.9.90\n"
"Report-Msgid-Bugs-To: translations@gnupg.org\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n"
"POT-Creation-Date: 2006-11-10 00:40+0100\n" "POT-Creation-Date: 2006-11-21 10:53+0100\n"
"PO-Revision-Date: 2006-11-097 23:35+0100\n" "PO-Revision-Date: 2006-11-21 10:59+0100\n"
"Last-Translator: Walter Koch <koch@u32.de>\n" "Last-Translator: Walter Koch <koch@u32.de>\n"
"Language-Team: German <de@li.org>\n" "Language-Team: German <de@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -134,7 +134,7 @@ msgstr ""
"Bitte geben Sie eine Passphrase ein, um den empfangenen geheimen Schlüssel%%" "Bitte geben Sie eine Passphrase ein, um den empfangenen geheimen Schlüssel%%"
"0A %s%%0A im Schlüsselspeicher des gpg-agenten zu schützen" "0A %s%%0A im Schlüsselspeicher des gpg-agenten zu schützen"
#: agent/command-ssh.c:2857 #: agent/command-ssh.c:2853
#, c-format #, c-format
msgid "failed to create stream from socket: %s\n" msgid "failed to create stream from socket: %s\n"
msgstr "Das Erzeugen eines Datenstrom aus dem Socket schlug fehl: %s\n" msgstr "Das Erzeugen eines Datenstrom aus dem Socket schlug fehl: %s\n"
@ -275,23 +275,17 @@ msgstr "Die ssh-agent-Emulation anschalten"
msgid "|FILE|write environment settings also to FILE" msgid "|FILE|write environment settings also to FILE"
msgstr "|DATEI|Schreibe die Umgebungsvariabeln auf DATEI" msgstr "|DATEI|Schreibe die Umgebungsvariabeln auf DATEI"
#: agent/gpg-agent.c:238 agent/preset-passphrase.c:96 agent/protect-tool.c:143 #: agent/gpg-agent.c:241 agent/preset-passphrase.c:96 agent/protect-tool.c:143
#: scd/scdaemon.c:190 sm/gpgsm.c:517 tools/gpg-connect-agent.c:123 #: scd/scdaemon.c:190 sm/gpgsm.c:517 tools/gpg-connect-agent.c:123
#: tools/gpgconf.c:86 tools/symcryptrun.c:225 #: tools/gpgconf.c:86 tools/symcryptrun.c:225
msgid "Please report bugs to <" msgid "Please report bugs to <"
msgstr "Fehlerberichte bitte an <" msgstr "Fehlerberichte bitte an <"
#: agent/gpg-agent.c:238 agent/preset-passphrase.c:96 agent/protect-tool.c:143 #: agent/gpg-agent.c:244
#: scd/scdaemon.c:190 sm/gpgsm.c:517 tools/gpg-connect-agent.c:123
#: tools/gpgconf.c:86 tools/symcryptrun.c:225
msgid ">.\n"
msgstr ">.\n"
#: agent/gpg-agent.c:241
msgid "Usage: gpg-agent [options] (-h for help)" msgid "Usage: gpg-agent [options] (-h for help)"
msgstr "Aufruf: gpg-agent [Optionen] (-h für Hilfe)" msgstr "Aufruf: gpg-agent [Optionen] (-h für Hilfe)"
#: agent/gpg-agent.c:243 #: agent/gpg-agent.c:246
msgid "" msgid ""
"Syntax: gpg-agent [options] [command [args]]\n" "Syntax: gpg-agent [options] [command [args]]\n"
"Secret key management for GnuPG\n" "Secret key management for GnuPG\n"
@ -299,23 +293,23 @@ msgstr ""
"Syntax: gpg-agent [Optionen] [Befehl [Argumente]]\n" "Syntax: gpg-agent [Optionen] [Befehl [Argumente]]\n"
"Verwaltung von geheimen Schlüsseln für GnuPG\n" "Verwaltung von geheimen Schlüsseln für GnuPG\n"
#: agent/gpg-agent.c:302 #: agent/gpg-agent.c:305
#, c-format #, c-format
msgid "out of core in secure memory while allocating %lu bytes" msgid "out of core in secure memory while allocating %lu bytes"
msgstr "" msgstr ""
"Kein sicherer Speicher mehr vorhanden, als %lu Byte zugewiesen werden sollten" "Kein sicherer Speicher mehr vorhanden, als %lu Byte zugewiesen werden sollten"
#: agent/gpg-agent.c:305 #: agent/gpg-agent.c:308
#, c-format #, c-format
msgid "out of core while allocating %lu bytes" msgid "out of core while allocating %lu bytes"
msgstr "Kein Speicher mehr vorhanden, als %lu Byte zugewiesen werden sollten" msgstr "Kein Speicher mehr vorhanden, als %lu Byte zugewiesen werden sollten"
#: agent/gpg-agent.c:336 g10/gpg.c:923 scd/scdaemon.c:264 sm/gpgsm.c:646 #: agent/gpg-agent.c:339 g10/gpg.c:923 scd/scdaemon.c:264 sm/gpgsm.c:646
#, c-format #, c-format
msgid "invalid debug-level `%s' given\n" msgid "invalid debug-level `%s' given\n"
msgstr "ungültige Debugebene `%s' angegeben\n" msgstr "ungültige Debugebene `%s' angegeben\n"
#: agent/gpg-agent.c:507 agent/protect-tool.c:1073 g10/gpg.c:1808 #: agent/gpg-agent.c:510 agent/protect-tool.c:1073 g10/gpg.c:1808
#: kbx/kbxutil.c:432 scd/scdaemon.c:356 sm/gpgsm.c:767 #: kbx/kbxutil.c:432 scd/scdaemon.c:356 sm/gpgsm.c:767
#: tools/symcryptrun.c:1056 #: tools/symcryptrun.c:1056
#, c-format #, c-format
@ -323,114 +317,114 @@ msgid "libgcrypt is too old (need %s, have %s)\n"
msgstr "" msgstr ""
"Die Bibliothek \"libgcrypt\" is zu alt (benötigt wird %s, vorhanden ist %s)\n" "Die Bibliothek \"libgcrypt\" is zu alt (benötigt wird %s, vorhanden ist %s)\n"
#: agent/gpg-agent.c:601 g10/gpg.c:2007 scd/scdaemon.c:433 sm/gpgsm.c:864 #: agent/gpg-agent.c:604 g10/gpg.c:2007 scd/scdaemon.c:433 sm/gpgsm.c:864
#, c-format #, c-format
msgid "NOTE: no default option file `%s'\n" msgid "NOTE: no default option file `%s'\n"
msgstr "Hinweis: Keine voreingestellte Optionendatei '%s' vorhanden\n" msgstr "Hinweis: Keine voreingestellte Optionendatei '%s' vorhanden\n"
#: agent/gpg-agent.c:606 agent/gpg-agent.c:1129 g10/gpg.c:2011 #: agent/gpg-agent.c:609 agent/gpg-agent.c:1160 g10/gpg.c:2011
#: scd/scdaemon.c:438 sm/gpgsm.c:868 tools/symcryptrun.c:989 #: scd/scdaemon.c:438 sm/gpgsm.c:868 tools/symcryptrun.c:989
#, c-format #, c-format
msgid "option file `%s': %s\n" msgid "option file `%s': %s\n"
msgstr "Optionendatei '%s': %s\n" msgstr "Optionendatei '%s': %s\n"
#: agent/gpg-agent.c:614 g10/gpg.c:2018 scd/scdaemon.c:446 sm/gpgsm.c:875 #: agent/gpg-agent.c:617 g10/gpg.c:2018 scd/scdaemon.c:446 sm/gpgsm.c:875
#, c-format #, c-format
msgid "reading options from `%s'\n" msgid "reading options from `%s'\n"
msgstr "Optionen werden aus '%s' gelesen\n" msgstr "Optionen werden aus '%s' gelesen\n"
#: agent/gpg-agent.c:914 g10/plaintext.c:136 g10/plaintext.c:141 #: agent/gpg-agent.c:930 g10/plaintext.c:136 g10/plaintext.c:141
#: g10/plaintext.c:158 #: g10/plaintext.c:158
#, c-format #, c-format
msgid "error creating `%s': %s\n" msgid "error creating `%s': %s\n"
msgstr "Fehler beim Erstellen von `%s': %s\n" msgstr "Fehler beim Erstellen von `%s': %s\n"
#: agent/gpg-agent.c:1179 agent/gpg-agent.c:1282 agent/gpg-agent.c:1286 #: agent/gpg-agent.c:1210 agent/gpg-agent.c:1313 agent/gpg-agent.c:1317
#: agent/gpg-agent.c:1322 agent/gpg-agent.c:1326 g10/exec.c:174 #: agent/gpg-agent.c:1353 agent/gpg-agent.c:1357 g10/exec.c:174
#: g10/openfile.c:416 scd/scdaemon.c:916 #: g10/openfile.c:416 scd/scdaemon.c:932
#, c-format #, c-format
msgid "can't create directory `%s': %s\n" msgid "can't create directory `%s': %s\n"
msgstr "Verzeichnis `%s' kann nicht erzeugt werden: %s\n" msgstr "Verzeichnis `%s' kann nicht erzeugt werden: %s\n"
#: agent/gpg-agent.c:1193 scd/scdaemon.c:930 #: agent/gpg-agent.c:1224 scd/scdaemon.c:946
msgid "name of socket too long\n" msgid "name of socket too long\n"
msgstr "Der Name des Sockets ist zu lang\n" msgstr "Der Name des Sockets ist zu lang\n"
#: agent/gpg-agent.c:1219 scd/scdaemon.c:956 #: agent/gpg-agent.c:1250 scd/scdaemon.c:972
#, c-format #, c-format
msgid "can't create socket: %s\n" msgid "can't create socket: %s\n"
msgstr "Socket kann nicht erzeugt werden: %s\n" msgstr "Socket kann nicht erzeugt werden: %s\n"
#: agent/gpg-agent.c:1248 scd/scdaemon.c:985 #: agent/gpg-agent.c:1279 scd/scdaemon.c:1001
#, c-format #, c-format
msgid "error binding socket to `%s': %s\n" msgid "error binding socket to `%s': %s\n"
msgstr "Der Socket kann nicht an `%s' gebunden werden: %s\n" msgstr "Der Socket kann nicht an `%s' gebunden werden: %s\n"
#: agent/gpg-agent.c:1256 scd/scdaemon.c:993 #: agent/gpg-agent.c:1287 scd/scdaemon.c:1009
#, c-format #, c-format
msgid "listen() failed: %s\n" msgid "listen() failed: %s\n"
msgstr "Der listen()-Aufruf ist fehlgeschlagen: %s\n" msgstr "Der listen()-Aufruf ist fehlgeschlagen: %s\n"
#: agent/gpg-agent.c:1262 scd/scdaemon.c:999 #: agent/gpg-agent.c:1293 scd/scdaemon.c:1015
#, c-format #, c-format
msgid "listening on socket `%s'\n" msgid "listening on socket `%s'\n"
msgstr "Es wird auf Socket `%s' gehört\n" msgstr "Es wird auf Socket `%s' gehört\n"
#: agent/gpg-agent.c:1290 agent/gpg-agent.c:1332 g10/openfile.c:419 #: agent/gpg-agent.c:1321 agent/gpg-agent.c:1363 g10/openfile.c:419
#, c-format #, c-format
msgid "directory `%s' created\n" msgid "directory `%s' created\n"
msgstr "Verzeichnis `%s' erzeugt\n" msgstr "Verzeichnis `%s' erzeugt\n"
#: agent/gpg-agent.c:1338 #: agent/gpg-agent.c:1369
#, c-format #, c-format
msgid "stat() failed for `%s': %s\n" msgid "stat() failed for `%s': %s\n"
msgstr "stat()-Aufruf für `%s' fehlgeschlagen: %s\n" msgstr "stat()-Aufruf für `%s' fehlgeschlagen: %s\n"
#: agent/gpg-agent.c:1342 #: agent/gpg-agent.c:1373
#, c-format #, c-format
msgid "can't use `%s' as home directory\n" msgid "can't use `%s' as home directory\n"
msgstr "Die Datei `%s' kann nicht als Home-Verzeichnis benutzt werden\n" msgstr "Die Datei `%s' kann nicht als Home-Verzeichnis benutzt werden\n"
#: agent/gpg-agent.c:1441 #: agent/gpg-agent.c:1475
#, c-format #, c-format
msgid "handler 0x%lx for fd %d started\n" msgid "handler 0x%lx for fd %d started\n"
msgstr "Handhabungsroutine 0x%lx für fd %d gestartet\n" msgstr "Handhabungsroutine 0x%lx für fd %d gestartet\n"
#: agent/gpg-agent.c:1446 #: agent/gpg-agent.c:1480
#, c-format #, c-format
msgid "handler 0x%lx for fd %d terminated\n" msgid "handler 0x%lx for fd %d terminated\n"
msgstr "Handhabungsroutine 0x%lx für den fd %d beendet\n" msgstr "Handhabungsroutine 0x%lx für den fd %d beendet\n"
#: agent/gpg-agent.c:1460 #: agent/gpg-agent.c:1497
#, c-format #, c-format
msgid "ssh handler 0x%lx for fd %d started\n" msgid "ssh handler 0x%lx for fd %d started\n"
msgstr "SSH-Handhabungsroutine 0x%lx für fd %d gestartet\n" msgstr "SSH-Handhabungsroutine 0x%lx für fd %d gestartet\n"
#: agent/gpg-agent.c:1465 #: agent/gpg-agent.c:1502
#, c-format #, c-format
msgid "ssh handler 0x%lx for fd %d terminated\n" msgid "ssh handler 0x%lx for fd %d terminated\n"
msgstr "SSH-Handhabungsroutine 0x%lx für fd %d beendet\n" msgstr "SSH-Handhabungsroutine 0x%lx für fd %d beendet\n"
#: agent/gpg-agent.c:1559 scd/scdaemon.c:1115 #: agent/gpg-agent.c:1598 scd/scdaemon.c:1134
#, c-format #, c-format
msgid "pth_select failed: %s - waiting 1s\n" msgid "pth_select failed: %s - waiting 1s\n"
msgstr "pth_select()-Aufruf fehlgeschlagen: %s - warte 1s\n" msgstr "pth_select()-Aufruf fehlgeschlagen: %s - warte 1s\n"
#: agent/gpg-agent.c:1643 scd/scdaemon.c:1172 #: agent/gpg-agent.c:1704 scd/scdaemon.c:1201
#, c-format #, c-format
msgid "%s %s stopped\n" msgid "%s %s stopped\n"
msgstr "%s %s angehalten\n" msgstr "%s %s angehalten\n"
#: agent/gpg-agent.c:1664 #: agent/gpg-agent.c:1725
msgid "no gpg-agent running in this session\n" msgid "no gpg-agent running in this session\n"
msgstr "Der gpg-agent läuft nicht für diese Session\n" msgstr "Der gpg-agent läuft nicht für diese Session\n"
#: agent/gpg-agent.c:1674 common/simple-pwquery.c:324 g10/call-agent.c:137 #: agent/gpg-agent.c:1735 common/simple-pwquery.c:324 g10/call-agent.c:137
#: sm/call-agent.c:144 tools/gpg-connect-agent.c:713 #: sm/call-agent.c:144 tools/gpg-connect-agent.c:713
msgid "malformed GPG_AGENT_INFO environment variable\n" msgid "malformed GPG_AGENT_INFO environment variable\n"
msgstr "fehlerhaft aufgebaute GPG_AGENT_INFO - Umgebungsvariable\n" msgstr "fehlerhaft aufgebaute GPG_AGENT_INFO - Umgebungsvariable\n"
#: agent/gpg-agent.c:1686 common/simple-pwquery.c:336 g10/call-agent.c:149 #: agent/gpg-agent.c:1747 common/simple-pwquery.c:336 g10/call-agent.c:149
#: sm/call-agent.c:156 tools/gpg-connect-agent.c:724 #: sm/call-agent.c:156 tools/gpg-connect-agent.c:724
#, c-format #, c-format
msgid "gpg-agent protocol version %d is not supported\n" msgid "gpg-agent protocol version %d is not supported\n"
@ -4367,7 +4361,7 @@ msgstr "Key verfällt am %s\n"
msgid "Signature expires at %s\n" msgid "Signature expires at %s\n"
msgstr "Unterschrift verfällt am %s\n" msgstr "Unterschrift verfällt am %s\n"
#: g10/keygen.c:1856 #: g10/keygen.c:1854
msgid "" msgid ""
"Your system can't display dates beyond 2038.\n" "Your system can't display dates beyond 2038.\n"
"However, it will be correctly handled up to 2106.\n" "However, it will be correctly handled up to 2106.\n"
@ -4607,7 +4601,7 @@ msgstr "Sicherungsdatei '%s' kann nicht erzeugt werden: %s\n"
msgid "NOTE: backup of card key saved to `%s'\n" msgid "NOTE: backup of card key saved to `%s'\n"
msgstr "Hinweis: Sicherung des Kartenschlüssels wurde auf `%s' gespeichert\n" msgstr "Hinweis: Sicherung des Kartenschlüssels wurde auf `%s' gespeichert\n"
#: g10/keyid.c:539 g10/keyid.c:551 g10/keyid.c:563 g10/keyid.c:575 #: g10/keyid.c:540 g10/keyid.c:552 g10/keyid.c:564 g10/keyid.c:576
msgid "never " msgid "never "
msgstr "niemals " msgstr "niemals "
@ -5609,14 +5603,14 @@ msgid "no valid addressees\n"
msgstr "Keine gültigen Adressaten\n" msgstr "Keine gültigen Adressaten\n"
#: g10/pkclist.c:1468 #: g10/pkclist.c:1468
#, fuzzy, c-format #, c-format
msgid "Note: key %s has no %s feature\n" msgid "Note: key %s has no %s feature\n"
msgstr "Schlüssel %s hat keine User-IDs\n" msgstr "Hinweis: Schlüssel %s besitzt nicht die %s Eigenschaft\n"
#: g10/pkclist.c:1493 #: g10/pkclist.c:1493
#, fuzzy, c-format #, c-format
msgid "Note: key %s has no preference for %s\n" msgid "Note: key %s has no preference for %s\n"
msgstr "Schlüssel %s hat keine User-IDs\n" msgstr "Hinweis: Schlüssel %s hat keine Einstellung für %s\n"
#: g10/plaintext.c:91 #: g10/plaintext.c:91
msgid "data not saved; use option \"--output\" to save it\n" msgid "data not saved; use option \"--output\" to save it\n"
@ -5653,28 +5647,28 @@ msgstr "Ungenannter Empfänger; Versuch mit geheimen Schlüssel %s ...\n"
msgid "okay, we are the anonymous recipient.\n" msgid "okay, we are the anonymous recipient.\n"
msgstr "Alles klar, wir sind der ungenannte Empfänger.\n" msgstr "Alles klar, wir sind der ungenannte Empfänger.\n"
#: g10/pubkey-enc.c:226 #: g10/pubkey-enc.c:227
msgid "old encoding of the DEK is not supported\n" msgid "old encoding of the DEK is not supported\n"
msgstr "alte Kodierung des DEK wird nicht unterstützt\n" msgstr "alte Kodierung des DEK wird nicht unterstützt\n"
#: g10/pubkey-enc.c:247 #: g10/pubkey-enc.c:248
#, c-format #, c-format
msgid "cipher algorithm %d%s is unknown or disabled\n" msgid "cipher algorithm %d%s is unknown or disabled\n"
msgstr "Verschüsselungsverfahren %d%s ist unbekannt oder abgeschaltet\n" msgstr "Verschüsselungsverfahren %d%s ist unbekannt oder abgeschaltet\n"
#: g10/pubkey-enc.c:285 #: g10/pubkey-enc.c:286
#, c-format #, c-format
msgid "WARNING: cipher algorithm %s not found in recipient preferences\n" msgid "WARNING: cipher algorithm %s not found in recipient preferences\n"
msgstr "" msgstr ""
"WARNUNG: Das Verschlüsselungsverfahren %s wurde nicht in den " "WARNUNG: Das Verschlüsselungsverfahren %s wurde nicht in den "
"Empfängereinstellungen gefunden\n" "Empfängereinstellungen gefunden\n"
#: g10/pubkey-enc.c:305 #: g10/pubkey-enc.c:306
#, c-format #, c-format
msgid "NOTE: secret key %s expired at %s\n" msgid "NOTE: secret key %s expired at %s\n"
msgstr "Hinweis: geheimer Schlüssel %s verfällt am %s\n" msgstr "Hinweis: geheimer Schlüssel %s verfällt am %s\n"
#: g10/pubkey-enc.c:311 #: g10/pubkey-enc.c:312
msgid "NOTE: key has been revoked" msgid "NOTE: key has been revoked"
msgstr "Hinweis: Schlüssel wurde widerrufen" msgstr "Hinweis: Schlüssel wurde widerrufen"
@ -5848,12 +5842,12 @@ msgstr ""
msgid "DSA requires the hash length to be a multiple of 8 bits\n" msgid "DSA requires the hash length to be a multiple of 8 bits\n"
msgstr "Für DSA muß die Hashlänge ein Vielfaches von 8 Bit sein\n" msgstr "Für DSA muß die Hashlänge ein Vielfaches von 8 Bit sein\n"
#: g10/seskey.c:243 #: g10/seskey.c:242
#, c-format #, c-format
msgid "DSA key %s uses an unsafe (%u bit) hash\n" msgid "DSA key %s uses an unsafe (%u bit) hash\n"
msgstr "DSA-Schlüssel %s verwendet einen unsicheren (%u Bit-) Hash\n" msgstr "DSA-Schlüssel %s verwendet einen unsicheren (%u Bit-) Hash\n"
#: g10/seskey.c:255 #: g10/seskey.c:254
#, c-format #, c-format
msgid "DSA key %s requires a %u bit or larger hash\n" msgid "DSA key %s requires a %u bit or larger hash\n"
msgstr "DSA-Schlüssel %s benötigt einen mindestens %u Bit langen Hash\n" msgstr "DSA-Schlüssel %s benötigt einen mindestens %u Bit langen Hash\n"
@ -6414,7 +6408,7 @@ msgstr ""
msgid "input line %u too long or missing LF\n" msgid "input line %u too long or missing LF\n"
msgstr "Eingabezeile %u ist zu lang oder es fehlt ein LF\n" msgstr "Eingabezeile %u ist zu lang oder es fehlt ein LF\n"
#: jnlib/logging.c:619 #: jnlib/logging.c:626
#, c-format #, c-format
msgid "you found a bug ... (%s:%d)\n" msgid "you found a bug ... (%s:%d)\n"
msgstr "Sie haben eine Bug (Programmfehler) gefunden ... (%s:%d)\n" msgstr "Sie haben eine Bug (Programmfehler) gefunden ... (%s:%d)\n"
@ -6446,10 +6440,6 @@ msgstr "Alle Debug Flags setzen"
msgid "Please report bugs to " msgid "Please report bugs to "
msgstr "Bitte richten sie Berichte über Bugs (Softwarefehler) an " msgstr "Bitte richten sie Berichte über Bugs (Softwarefehler) an "
#: kbx/kbxutil.c:108
msgid ".\n"
msgstr ".\n"
#: kbx/kbxutil.c:112 #: kbx/kbxutil.c:112
msgid "Usage: kbxutil [options] [files] (-h for help)" msgid "Usage: kbxutil [options] [files] (-h for help)"
msgstr "Aufruf: kbxutil [Optionen] [Dateien] (-h für Hilfe)" msgstr "Aufruf: kbxutil [Optionen] [Dateien] (-h für Hilfe)"
@ -6481,47 +6471,52 @@ msgstr "Das Erzeugungsdatum konnte nicht gespeichert werden: %s\n"
msgid "reading public key failed: %s\n" msgid "reading public key failed: %s\n"
msgstr "Lesen des öffentlichen Schlüssels fehlgeschlagen: %s\n" msgstr "Lesen des öffentlichen Schlüssels fehlgeschlagen: %s\n"
#: scd/app-openpgp.c:1017 scd/app-openpgp.c:1953 #: scd/app-openpgp.c:1017 scd/app-openpgp.c:1978
msgid "response does not contain the public key data\n" msgid "response does not contain the public key data\n"
msgstr "Die Antwort enthält keine öffentliche Schlüssel-Daten\n" msgstr "Die Antwort enthält keine öffentliche Schlüssel-Daten\n"
#: scd/app-openpgp.c:1025 scd/app-openpgp.c:1961 #: scd/app-openpgp.c:1025 scd/app-openpgp.c:1986
msgid "response does not contain the RSA modulus\n" msgid "response does not contain the RSA modulus\n"
msgstr "Die Antwort enthält das RSA-Modulus nicht\n" msgstr "Die Antwort enthält das RSA-Modulus nicht\n"
#: scd/app-openpgp.c:1034 scd/app-openpgp.c:1971 #: scd/app-openpgp.c:1034 scd/app-openpgp.c:1996
msgid "response does not contain the RSA public exponent\n" msgid "response does not contain the RSA public exponent\n"
msgstr "Antwort enthält den öffentlichen RSA-Exponenten nicht\n" msgstr "Antwort enthält den öffentlichen RSA-Exponenten nicht\n"
#: scd/app-openpgp.c:1302 scd/app-openpgp.c:1390 scd/app-openpgp.c:2222 #: scd/app-openpgp.c:1306
msgid "||Please enter your PIN at the reader's keypad"
msgstr "||Bitte die PIN auf der Tastatur des Kartenleser eingeben"
#: scd/app-openpgp.c:1310 scd/app-openpgp.c:1324 scd/app-openpgp.c:1415
#: scd/app-openpgp.c:2247
#, c-format #, c-format
msgid "PIN callback returned error: %s\n" msgid "PIN callback returned error: %s\n"
msgstr "PIN-Callback meldete Fehler: %s\n" msgstr "PIN-Callback meldete Fehler: %s\n"
#: scd/app-openpgp.c:1308 scd/app-openpgp.c:1396 scd/app-openpgp.c:2228 #: scd/app-openpgp.c:1331 scd/app-openpgp.c:1421 scd/app-openpgp.c:2253
#, c-format #, c-format
msgid "PIN for CHV%d is too short; minimum length is %d\n" msgid "PIN for CHV%d is too short; minimum length is %d\n"
msgstr "PIN für CHV%d ist zu kurz; die Mindestlänge beträgt %d\n" msgstr "PIN für CHV%d ist zu kurz; die Mindestlänge beträgt %d\n"
#: scd/app-openpgp.c:1317 scd/app-openpgp.c:1331 scd/app-openpgp.c:1406 #: scd/app-openpgp.c:1342 scd/app-openpgp.c:1356 scd/app-openpgp.c:1431
#: scd/app-openpgp.c:2237 scd/app-openpgp.c:2251 #: scd/app-openpgp.c:2262 scd/app-openpgp.c:2276
#, c-format #, c-format
msgid "verify CHV%d failed: %s\n" msgid "verify CHV%d failed: %s\n"
msgstr "Prüfung des CHV%d fehlgeschlagen: %s\n" msgstr "Prüfung des CHV%d fehlgeschlagen: %s\n"
#: scd/app-openpgp.c:1354 #: scd/app-openpgp.c:1379
msgid "access to admin commands is not configured\n" msgid "access to admin commands is not configured\n"
msgstr "Zugriff auf Admin-Befehle ist nicht eingerichtet\n" msgstr "Zugriff auf Admin-Befehle ist nicht eingerichtet\n"
#: scd/app-openpgp.c:1369 scd/app-openpgp.c:2461 #: scd/app-openpgp.c:1394 scd/app-openpgp.c:2486
msgid "error retrieving CHV status from card\n" msgid "error retrieving CHV status from card\n"
msgstr "Fehler beim Holen des CHV-Status' von der Karte\n" msgstr "Fehler beim Holen des CHV-Status' von der Karte\n"
#: scd/app-openpgp.c:1375 scd/app-openpgp.c:2470 #: scd/app-openpgp.c:1400 scd/app-openpgp.c:2495
msgid "card is permanently locked!\n" msgid "card is permanently locked!\n"
msgstr "Karte ist dauerhaft gesperrt!\n" msgstr "Karte ist dauerhaft gesperrt!\n"
#: scd/app-openpgp.c:1380 #: scd/app-openpgp.c:1405
#, c-format #, c-format
msgid "%d Admin PIN attempts remaining before card is permanently locked\n" msgid "%d Admin PIN attempts remaining before card is permanently locked\n"
msgstr "Noch %d Admin-PIN-Versuche, bis die Karte dauerhaft geperrt ist\n" msgstr "Noch %d Admin-PIN-Versuche, bis die Karte dauerhaft geperrt ist\n"
@ -6529,110 +6524,110 @@ msgstr "Noch %d Admin-PIN-Versuche, bis die Karte dauerhaft geperrt ist\n"
#. TRANSLATORS: Do not translate the "|A|" prefix but #. TRANSLATORS: Do not translate the "|A|" prefix but
#. keep it at the start of the string. We need this elsewhere #. keep it at the start of the string. We need this elsewhere
#. to get some infos on the string. #. to get some infos on the string.
#: scd/app-openpgp.c:1387 #: scd/app-openpgp.c:1412
msgid "|A|Admin PIN" msgid "|A|Admin PIN"
msgstr "|A|Admin-PIN" msgstr "|A|Admin-PIN"
#. TRANSLATORS: Do not translate the "|*|" prefixes but #. TRANSLATORS: Do not translate the "|*|" prefixes but
#. keep it at the start of the string. We need this elsewhere #. keep it at the start of the string. We need this elsewhere
#. to get some infos on the string. #. to get some infos on the string.
#: scd/app-openpgp.c:1536 #: scd/app-openpgp.c:1561
msgid "|AN|New Admin PIN" msgid "|AN|New Admin PIN"
msgstr "|AN|Neue Admin-PIN" msgstr "|AN|Neue Admin-PIN"
#: scd/app-openpgp.c:1536 #: scd/app-openpgp.c:1561
msgid "|N|New PIN" msgid "|N|New PIN"
msgstr "|N|Neue PIN" msgstr "|N|Neue PIN"
#: scd/app-openpgp.c:1540 #: scd/app-openpgp.c:1565
#, c-format #, c-format
msgid "error getting new PIN: %s\n" msgid "error getting new PIN: %s\n"
msgstr "Fehler beim Abfragen einer neuen PIN: %s\n" msgstr "Fehler beim Abfragen einer neuen PIN: %s\n"
#: scd/app-openpgp.c:1590 scd/app-openpgp.c:2039 #: scd/app-openpgp.c:1615 scd/app-openpgp.c:2064
msgid "error reading application data\n" msgid "error reading application data\n"
msgstr "Fehler beim Lesen der Anwendungsdaten\n" msgstr "Fehler beim Lesen der Anwendungsdaten\n"
#: scd/app-openpgp.c:1596 scd/app-openpgp.c:2046 #: scd/app-openpgp.c:1621 scd/app-openpgp.c:2071
msgid "error reading fingerprint DO\n" msgid "error reading fingerprint DO\n"
msgstr "Fehler beim Lesen des Fingerabdrucks DO\n" msgstr "Fehler beim Lesen des Fingerabdrucks DO\n"
#: scd/app-openpgp.c:1606 #: scd/app-openpgp.c:1631
msgid "key already exists\n" msgid "key already exists\n"
msgstr "Schlüssel existiert bereits\n" msgstr "Schlüssel existiert bereits\n"
#: scd/app-openpgp.c:1610 #: scd/app-openpgp.c:1635
msgid "existing key will be replaced\n" msgid "existing key will be replaced\n"
msgstr "Existierender Schlüssel wird ersetzt werden\n" msgstr "Existierender Schlüssel wird ersetzt werden\n"
#: scd/app-openpgp.c:1612 #: scd/app-openpgp.c:1637
msgid "generating new key\n" msgid "generating new key\n"
msgstr "neue Schlüssel werden erzeugt\n" msgstr "neue Schlüssel werden erzeugt\n"
#: scd/app-openpgp.c:1779 #: scd/app-openpgp.c:1804
msgid "creation timestamp missing\n" msgid "creation timestamp missing\n"
msgstr "Erzeugungsdatum fehlt\n" msgstr "Erzeugungsdatum fehlt\n"
#: scd/app-openpgp.c:1786 #: scd/app-openpgp.c:1811
#, c-format #, c-format
msgid "RSA modulus missing or not of size %d bits\n" msgid "RSA modulus missing or not of size %d bits\n"
msgstr "Der RSA Modulus fehlt oder ist nicht %d Bits lang\n" msgstr "Der RSA Modulus fehlt oder ist nicht %d Bits lang\n"
#: scd/app-openpgp.c:1793 #: scd/app-openpgp.c:1818
#, c-format #, c-format
msgid "RSA public exponent missing or larger than %d bits\n" msgid "RSA public exponent missing or larger than %d bits\n"
msgstr "der öffentliche Exponent fehlt oder ist zu groß (mehr als %d Bit)\n" msgstr "der öffentliche Exponent fehlt oder ist zu groß (mehr als %d Bit)\n"
#: scd/app-openpgp.c:1801 scd/app-openpgp.c:1808 #: scd/app-openpgp.c:1826 scd/app-openpgp.c:1833
#, c-format #, c-format
msgid "RSA prime %s missing or not of size %d bits\n" msgid "RSA prime %s missing or not of size %d bits\n"
msgstr "Die RSA Primzahl %s fehlt oder ist nicht %d Bits lang\n" msgstr "Die RSA Primzahl %s fehlt oder ist nicht %d Bits lang\n"
#: scd/app-openpgp.c:1871 #: scd/app-openpgp.c:1896
#, c-format #, c-format
msgid "failed to store the key: %s\n" msgid "failed to store the key: %s\n"
msgstr "Speichern des Schlüssels fehlgeschlagen: %s\n" msgstr "Speichern des Schlüssels fehlgeschlagen: %s\n"
#: scd/app-openpgp.c:1930 #: scd/app-openpgp.c:1955
msgid "please wait while key is being generated ...\n" msgid "please wait while key is being generated ...\n"
msgstr "Bitte warten, der Schlüssel wird erzeugt ...\n" msgstr "Bitte warten, der Schlüssel wird erzeugt ...\n"
#: scd/app-openpgp.c:1944 #: scd/app-openpgp.c:1969
msgid "generating key failed\n" msgid "generating key failed\n"
msgstr "Schlüsselerzeugung fehlgeschlagen\n" msgstr "Schlüsselerzeugung fehlgeschlagen\n"
#: scd/app-openpgp.c:1947 #: scd/app-openpgp.c:1972
#, c-format #, c-format
msgid "key generation completed (%d seconds)\n" msgid "key generation completed (%d seconds)\n"
msgstr "Schlüsselerzeugung abgeschlossen (%d Sekunden)\n" msgstr "Schlüsselerzeugung abgeschlossen (%d Sekunden)\n"
#: scd/app-openpgp.c:2004 #: scd/app-openpgp.c:2029
msgid "invalid structure of OpenPGP card (DO 0x93)\n" msgid "invalid structure of OpenPGP card (DO 0x93)\n"
msgstr "Ungültige Struktur der OpenPGP-Karte (DO 0x93)}\n" msgstr "Ungültige Struktur der OpenPGP-Karte (DO 0x93)}\n"
#: scd/app-openpgp.c:2141 #: scd/app-openpgp.c:2166
#, c-format #, c-format
msgid "card does not support digest algorithm %s\n" msgid "card does not support digest algorithm %s\n"
msgstr "Die Hashmethode %s wird von der Karte nicht unterstützt\n" msgstr "Die Hashmethode %s wird von der Karte nicht unterstützt\n"
#: scd/app-openpgp.c:2202 #: scd/app-openpgp.c:2227
#, c-format #, c-format
msgid "signatures created so far: %lu\n" msgid "signatures created so far: %lu\n"
msgstr "Anzahl bereits erzeugter Signaturen: %lu\n" msgstr "Anzahl bereits erzeugter Signaturen: %lu\n"
#: scd/app-openpgp.c:2210 #: scd/app-openpgp.c:2235
#, c-format #, c-format
msgid "||Please enter the PIN%%0A[sigs done: %lu]" msgid "||Please enter the PIN%%0A[sigs done: %lu]"
msgstr "||Bitte die PIN eingeben%%0A[Sigs erzeugt: %lu]" msgstr "||Bitte die PIN eingeben%%0A[Sigs erzeugt: %lu]"
#: scd/app-openpgp.c:2475 #: scd/app-openpgp.c:2500
msgid "" msgid ""
"verification of Admin PIN is currently prohibited through this command\n" "verification of Admin PIN is currently prohibited through this command\n"
msgstr "" msgstr ""
"Die Überprüfung der Admin PIN is momentan durch einen Befehl verboten " "Die Überprüfung der Admin PIN is momentan durch einen Befehl verboten "
"worden\n" "worden\n"
#: scd/app-openpgp.c:2548 scd/app-openpgp.c:2558 #: scd/app-openpgp.c:2573 scd/app-openpgp.c:2583
#, c-format #, c-format
msgid "can't access %s - invalid OpenPGP card?\n" msgid "can't access %s - invalid OpenPGP card?\n"
msgstr "Kann auf %s nicht zugreifen - ungültige OpenPGP-Karte?\n" msgstr "Kann auf %s nicht zugreifen - ungültige OpenPGP-Karte?\n"
@ -6681,18 +6676,18 @@ msgstr ""
"Synatx: scdaemon [Optionen] [Befehl [Argumente]]\n" "Synatx: scdaemon [Optionen] [Befehl [Argumente]]\n"
"Smartcard Daemon für GnuPG\n" "Smartcard Daemon für GnuPG\n"
#: scd/scdaemon.c:672 #: scd/scdaemon.c:682
msgid "please use the option `--daemon' to run the program in the background\n" msgid "please use the option `--daemon' to run the program in the background\n"
msgstr "" msgstr ""
"Bitte die Option `--daemon' nutzen um das Programm im Hintergund " "Bitte die Option `--daemon' nutzen um das Programm im Hintergund "
"auszuführen\n" "auszuführen\n"
#: scd/scdaemon.c:1013 #: scd/scdaemon.c:1030
#, c-format #, c-format
msgid "handler for fd %d started\n" msgid "handler for fd %d started\n"
msgstr "Handhabungsroutine für fd %d gestartet\n" msgstr "Handhabungsroutine für fd %d gestartet\n"
#: scd/scdaemon.c:1018 #: scd/scdaemon.c:1035
#, c-format #, c-format
msgid "handler for fd %d terminated\n" msgid "handler for fd %d terminated\n"
msgstr "Handhabungsroutine für den fd %d beendet\n" msgstr "Handhabungsroutine für den fd %d beendet\n"
@ -6864,31 +6859,31 @@ msgstr "DSA benötigt einen 160-bit Hash Algorithmus\n"
msgid "(this is the MD2 algorithm)\n" msgid "(this is the MD2 algorithm)\n"
msgstr "(Dies ist der MD2 Algorithmus)\n" msgstr "(Dies ist der MD2 Algorithmus)\n"
#: sm/certdump.c:61 sm/certdump.c:147 #: sm/certdump.c:68 sm/certdump.c:154
msgid "none" msgid "none"
msgstr "keine" msgstr "keine"
#: sm/certdump.c:156 #: sm/certdump.c:163
msgid "[none]" msgid "[none]"
msgstr "[keine]" msgstr "[keine]"
#: sm/certdump.c:529 sm/certdump.c:592 #: sm/certdump.c:536 sm/certdump.c:599
msgid "[Error - invalid encoding]" msgid "[Error - invalid encoding]"
msgstr "[Fehler - Ungültige Kodierung]" msgstr "[Fehler - Ungültige Kodierung]"
#: sm/certdump.c:537 #: sm/certdump.c:544
msgid "[Error - out of core]" msgid "[Error - out of core]"
msgstr "[Fehler - Nich genügend Speicher]" msgstr "[Fehler - Nich genügend Speicher]"
#: sm/certdump.c:572 #: sm/certdump.c:579
msgid "[Error - No name]" msgid "[Error - No name]"
msgstr "[Fehler - Kein Name]" msgstr "[Fehler - Kein Name]"
#: sm/certdump.c:597 #: sm/certdump.c:604
msgid "[Error - invalid DN]" msgid "[Error - invalid DN]"
msgstr "[Fehler - Ungültiger DN]" msgstr "[Fehler - Ungültiger DN]"
#: sm/certdump.c:758 #: sm/certdump.c:818
#, c-format #, c-format
msgid "" msgid ""
"Please enter the passphrase to unlock the secret key for:\n" "Please enter the passphrase to unlock the secret key for:\n"
@ -7386,11 +7381,11 @@ msgstr "[Datum nicht vorhanden]"
msgid " using certificate ID %08lX\n" msgid " using certificate ID %08lX\n"
msgstr "mittels Zertifikat ID %08lX\n" msgstr "mittels Zertifikat ID %08lX\n"
#: sm/verify.c:506 #: sm/verify.c:509
msgid "Good signature from" msgid "Good signature from"
msgstr "Korrekte Signatur von" msgstr "Korrekte Signatur von"
#: sm/verify.c:507 #: sm/verify.c:510
msgid " aka" msgid " aka"
msgstr " alias" msgstr " alias"
@ -7741,3 +7736,9 @@ msgstr "keine Klasse angegeben\n"
#, c-format #, c-format
msgid "class %s is not supported\n" msgid "class %s is not supported\n"
msgstr "Klasse %s wird nicht unterstützt\n" msgstr "Klasse %s wird nicht unterstützt\n"
#~ msgid ">.\n"
#~ msgstr ">.\n"
#~ msgid ".\n"
#~ msgstr ".\n"

Some files were not shown because too many files have changed in this diff Show More