summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libc/ChangeLog418
-rw-r--r--libc/NEWS32
-rw-r--r--libc/Versions.def1
-rw-r--r--libc/crypt/Makefile11
-rw-r--r--libc/crypt/crypt-entry.c32
-rw-r--r--libc/crypt/sha256-crypt.c345
-rw-r--r--libc/crypt/sha256.c304
-rw-r--r--libc/crypt/sha256.h58
-rw-r--r--libc/crypt/sha256c-test.c61
-rw-r--r--libc/crypt/sha256test.c92
-rw-r--r--libc/crypt/sha512-crypt.c357
-rw-r--r--libc/crypt/sha512.c336
-rw-r--r--libc/crypt/sha512.h58
-rw-r--r--libc/crypt/sha512c-test.c62
-rw-r--r--libc/crypt/sha512test.c113
-rw-r--r--libc/debug/Makefile24
-rw-r--r--libc/debug/Versions3
-rw-r--r--libc/debug/fortify_fail.c1
-rw-r--r--libc/debug/tst-chk1.c42
-rw-r--r--libc/debug/tst-chk4.cc1
-rw-r--r--libc/debug/tst-chk5.cc2
-rw-r--r--libc/debug/tst-chk6.cc2
-rw-r--r--libc/debug/tst-lfschk4.cc2
-rw-r--r--libc/debug/tst-lfschk5.cc2
-rw-r--r--libc/debug/tst-lfschk6.cc2
-rw-r--r--libc/elf/dl-lookup.c91
-rw-r--r--libc/elf/dl-object.c1
-rw-r--r--libc/elf/dl-runtime.c10
-rw-r--r--libc/elf/dl-sym.c3
-rw-r--r--libc/iconv/iconv_open.c49
-rw-r--r--libc/iconvdata/Makefile8
-rw-r--r--libc/iconvdata/TESTS2
-rw-r--r--libc/iconvdata/gconv-modules5
-rw-r--r--libc/iconvdata/mac-centraleurope.c29
-rwxr-xr-xlibc/iconvdata/tst-tables.sh1
-rw-r--r--libc/include/features.h3
-rw-r--r--libc/include/link.h2
-rw-r--r--libc/include/stdio.h19
-rw-r--r--libc/include/wchar.h19
-rw-r--r--libc/inet/inet_net.c2
-rw-r--r--libc/inet/tst-network.c4
-rw-r--r--libc/intl/dcigettext.c35
-rw-r--r--libc/intl/gettextP.h1
-rw-r--r--libc/intl/loadmsgcat.c4
-rw-r--r--libc/io/bits/fcntl2.h248
-rw-r--r--libc/io/fcntl.h5
-rw-r--r--libc/io/sys/stat.h2
-rw-r--r--libc/libio/bits/stdio-ldbl.h19
-rw-r--r--libc/libio/bits/stdio.h9
-rw-r--r--libc/libio/bits/stdio2.h84
-rw-r--r--libc/libio/libio.h3
-rw-r--r--libc/libio/libioP.h2
-rw-r--r--libc/libio/stdio.h66
-rw-r--r--libc/locale/programs/charmap-dir.c3
-rw-r--r--libc/localedata/ChangeLog8
-rw-r--r--libc/localedata/charmaps/MAC-CENTRALEUROPE261
-rw-r--r--libc/localedata/locales/de_CH5
-rw-r--r--libc/math/bits/cmathcalls.h3
-rw-r--r--libc/misc/bits/syslog-ldbl.h2
-rw-r--r--libc/misc/bits/syslog.h19
-rw-r--r--libc/misc/sys/cdefs.h22
-rw-r--r--libc/misc/sys/syslog.h2
-rw-r--r--libc/po/cs.po9432
-rw-r--r--libc/posix/regcomp.c5
-rw-r--r--libc/posix/unistd.h2
-rw-r--r--libc/resolv/ns_print.c49
-rw-r--r--libc/rt/Makefile4
-rw-r--r--libc/rt/Versions3
-rw-r--r--libc/rt/bits/mqueue2.h56
-rw-r--r--libc/rt/mq_open.c16
-rw-r--r--libc/rt/mqueue.h6
-rw-r--r--libc/socket/sys/socket.h5
-rw-r--r--libc/stdio-common/Makefile26
-rw-r--r--libc/stdio-common/Versions4
-rw-r--r--libc/stdio-common/isoc99_fscanf.c40
-rw-r--r--libc/stdio-common/isoc99_scanf.c42
-rw-r--r--libc/stdio-common/isoc99_sscanf.c37
-rw-r--r--libc/stdio-common/isoc99_vfscanf.c35
-rw-r--r--libc/stdio-common/isoc99_vscanf.c34
-rw-r--r--libc/stdio-common/isoc99_vsscanf.c47
-rw-r--r--libc/stdio-common/scanf13.c187
-rw-r--r--libc/stdio-common/scanf14.c63
-rw-r--r--libc/stdio-common/scanf15.c54
-rw-r--r--libc/stdio-common/vfscanf.c350
-rw-r--r--libc/stdlib/stdlib.h2
-rw-r--r--libc/string/bits/string3.h158
-rw-r--r--libc/string/stratcliff.c322
-rw-r--r--libc/string/string.h2
-rw-r--r--libc/sysdeps/alpha/fpu/bits/mathinline.h2
-rw-r--r--libc/sysdeps/generic/ldsodefs.h4
-rw-r--r--libc/sysdeps/i386/fpu/bits/mathinline.h2
-rw-r--r--libc/sysdeps/i386/i486/bits/string.h2
-rw-r--r--libc/sysdeps/i386/i586/memcpy.S7
-rw-r--r--libc/sysdeps/i386/i586/mempcpy.S1
-rw-r--r--libc/sysdeps/i386/i586/memset.S7
-rw-r--r--libc/sysdeps/ia64/fpu/bits/mathinline.h2
-rw-r--r--libc/sysdeps/ieee754/ldbl-opt/Makefile6
-rw-r--r--libc/sysdeps/ieee754/ldbl-opt/Versions8
-rw-r--r--libc/sysdeps/ieee754/ldbl-opt/nldbl-compat.c153
-rw-r--r--libc/sysdeps/ieee754/ldbl-opt/nldbl-compat.h14
-rw-r--r--libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_fscanf.c15
-rw-r--r--libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_fwscanf.c15
-rw-r--r--libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_scanf.c15
-rw-r--r--libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_sscanf.c15
-rw-r--r--libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_swscanf.c15
-rw-r--r--libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vfscanf.c8
-rw-r--r--libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vfwscanf.c8
-rw-r--r--libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vscanf.c8
-rw-r--r--libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vsscanf.c8
-rw-r--r--libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vswscanf.c8
-rw-r--r--libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vwscanf.c8
-rw-r--r--libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_wscanf.c15
-rw-r--r--libc/sysdeps/posix/getaddrinfo.c47
-rw-r--r--libc/sysdeps/powerpc/fpu/bits/mathinline.h2
-rw-r--r--libc/sysdeps/s390/bits/string.h2
-rw-r--r--libc/sysdeps/s390/fpu/bits/mathinline.h2
-rw-r--r--libc/sysdeps/sparc/fpu/bits/mathinline.h2
-rw-r--r--libc/sysdeps/sparc/sparc32/elf/start.S7
-rw-r--r--libc/sysdeps/sparc/sparc64/elf/start.S7
-rw-r--r--libc/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h14
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/Makefile2
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/bits/fcntl.h14
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/call_fallocate.S7
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/posix_fallocate.c4
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/posix_fallocate64.c4
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/syscalls.list1
-rw-r--r--libc/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h14
-rw-r--r--libc/sysdeps/unix/sysv/linux/mq_open.c14
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h14
-rw-r--r--libc/sysdeps/unix/sysv/linux/s390/bits/fcntl.h14
-rw-r--r--libc/sysdeps/unix/sysv/linux/sh/bits/fcntl.h14
-rw-r--r--libc/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h14
-rw-r--r--libc/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S4
-rw-r--r--libc/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S2
-rw-r--r--libc/sysdeps/unix/sysv/linux/sys/sysmacros.h10
-rw-r--r--libc/sysdeps/unix/sysv/linux/syscalls.list6
-rw-r--r--libc/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h14
-rw-r--r--libc/sysdeps/x86_64/cacheinfo.c76
-rw-r--r--libc/sysdeps/x86_64/fpu/bits/mathinline.h2
-rw-r--r--libc/sysdeps/x86_64/memcpy.S338
-rw-r--r--libc/wcsmbs/Makefile16
-rw-r--r--libc/wcsmbs/Versions4
-rw-r--r--libc/wcsmbs/bits/wchar-ldbl.h19
-rw-r--r--libc/wcsmbs/bits/wchar2.h76
-rw-r--r--libc/wcsmbs/isoc99_fwscanf.c41
-rw-r--r--libc/wcsmbs/isoc99_swscanf.c38
-rw-r--r--libc/wcsmbs/isoc99_vfwscanf.c36
-rw-r--r--libc/wcsmbs/isoc99_vswscanf.c49
-rw-r--r--libc/wcsmbs/isoc99_vwscanf.c35
-rw-r--r--libc/wcsmbs/isoc99_wscanf.c43
-rw-r--r--libc/wcsmbs/wchar.h66
-rw-r--r--libc/wcsmbs/wcsatcliff.c20
-rw-r--r--libc/wcsmbs/wcsnlen.c13
-rw-r--r--ports/ChangeLog.arm10
-rw-r--r--ports/ChangeLog.hppa10
-rw-r--r--ports/ChangeLog.mips5
-rw-r--r--ports/sysdeps/hppa/nptl/tls.h2
-rw-r--r--ports/sysdeps/unix/sysv/linux/arm/bits/fcntl.h14
-rw-r--r--ports/sysdeps/unix/sysv/linux/arm/kernel-features.h4
-rw-r--r--ports/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h9
-rw-r--r--ports/sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h8
-rw-r--r--ports/sysdeps/unix/sysv/linux/mips/bits/fcntl.h14
162 files changed, 11527 insertions, 4395 deletions
diff --git a/libc/ChangeLog b/libc/ChangeLog
index c0b4fb50b..682c2e3d1 100644
--- a/libc/ChangeLog
+++ b/libc/ChangeLog
@@ -1,3 +1,421 @@
+2007-09-24 Ulrich Drepper <drepper@redhat.com>
+
+ [BZ #5058]
+ * intl/gettextP.h (struct loaded_domain): Add conversions_lock member.
+ * intl/loadmsgcat.c (_nl_load_domain): Initialize conversions_lock.
+ (_nl_unload_domain): Finalize conversions_lock.
+ * intl/dcigettext.c (_nl_find_msg): Take conversions_lock before
+ handling table of known conversions.
+
+2007-09-24 Jakub Jelinek <jakub@redhat.com>
+
+ * sysdeps/posix/getaddrinfo.c (getaddrinfo): Use
+ close_not_cancel_no_status instead of close.
+
+2007-09-13 Aurelien Jarno <aurelien@aurel32.net>
+
+ [BZ #5028]
+ * posix/regcomp.c (lookup_collation_sequence_value): Check that
+ nrules != 0 for multibyte chars.
+
+2007-09-23 Ulrich Drepper <drepper@redhat.com>
+
+ * resolv/ns_print.c (ns_sprintrrf): Handle ns_t_a6 and ns_t_opt.
+ Provide better error message in case the type is unknown.
+
+ [BZ #4963]
+ * wcsmbs/wcsnlen.c: Don't reference before checking the length.
+ * string/stratcliff.c: Make usable to test wide char functions.
+ * wcsmbs/wcsatcliff.c: New file.
+ * wcsmbs/Makefiel (tests): Add wcsatcliff.
+
+ [BZ #4972]
+ * iconvdata/Makefile (modules): Add MAC-CENTRALEUROPE.
+ (distribute): Add mac-centraleurope.c.
+ (gen-8bit-gap-modules): Add mac-centraleurope.
+ * iconvdata/mac-centraleurope.c: New file.
+ * iconvdata/gconv-modules: Add entries for MAC-CENTRALEUROPE.
+ * iconvdata/TESTS: Likewise.
+ * iconvdata/tst-tables.sh: Likewise.
+
+ [BZ #5043]
+ * iconv/iconv_open.c (iconv_open): For large codeset names use malloc.
+
+2007-09-21 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/x86_64/cacheinfo.c (__x86_64_data_cache_size_half): Renamed
+ from __x86_64_core_cache_size_half.
+ (init_cacheinfo): Compute shared cache size for AMD processors with
+ shared L3 correctly.
+ * sysdeps/x86_64/memcpy.S: Adjust for __x86_64_data_cache_size_half
+ name change.
+ Patch in large parts by Evandro Menezes.
+
+2007-09-19 Ulrich Drepper <drepper@redhat.com>
+
+ * elf/dl-lookup.c (add_dependency): Handle failing memory
+ allocation for dependency list. Remove unnecessary check.
+
+ * sysdeps/posix/getaddrinfo.c (getaddrinfo): Avoid unnecessary
+ open/close when determining source addresses.
+
+ * crypt/Makefile (libcrypt-routines): Add sha256-crypt, sha256,
+ sha512-crypt, and sha512.
+ (tests): Add sha256test, sha256c-test, sha512test, and sha512c-test.
+ (distribute): Add sha256.h and sha512.h.
+ * crypt/crypt-entry.c (crypt): Recognize the new $5$ and $6$ prefixes
+ and call the appropriate code.
+ * crypt/sha256-crypt.c: New file.
+ * crypt/sha256.c: New file.
+ * crypt/sha256.h: New file.
+ * crypt/sha256c-test.c: New file.
+ * crypt/sha256test.c: New file.
+ * crypt/sha512-crypt.c: New file.
+ * crypt/sha512.c: New file.
+ * crypt/sha512.h: New file.
+ * crypt/sha512c-test.c: New file.
+ * crypt/sha512test.c: New file.
+
+2007-09-19 Jakub Jelinek <jakub@redhat.com>
+
+ * misc/bits/syslog.h (syslog): Remove extraneous argument from
+ the inline, pass __USE_FORTIFY_LEVEL - 1 as second argument to
+ __syslog_chk.
+
+2007-09-18 Jakub Jelinek <jakub@redhat.com>
+
+ * locale/programs/charmap-dir.c (charmap_aliases): Use %ms instead of
+ %as in fscanf format strings.
+
+ * sysdeps/sparc/sparc32/elf/start.S: Remove cfi_* markup.
+ * sysdeps/sparc/sparc64/elf/start.S: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__thread_start):
+ Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S (__thread_start):
+ Likewise.
+
+ * sysdeps/generic/ldsodefs.h (DL_LOOKUP_GSCOPE_LOCK): New definition.
+ * elf/dl-runtime.c (_dl_fixup, _dl_profile_fixup): Or in
+ DL_LOOKUP_GSCOPE_LOCK into flags after THREAD_GSCOPE_SET_FLAG ().
+ * elf/dl-sym.c (do_sym): Likewise.
+ * include/link.h (struct link_map): Add l_serial field.
+ * elf/dl-object.c (_dl_new_object): Initialize l_serial.
+ * elf/dl-lookup.c (add_dependency): Add flags argument.
+ Remember map->l_serial, if DL_LOOKUP_GSCOPE_LOCK is among
+ flags, use THREAD_GSCOPE_RESET_FLAG before and
+ THREAD_GSCOPE_SET_FLAG after
+ __rtld_lock_lock_recursive (GL(dl_load_lock)) to avoid deadlock.
+ Don't dereference map until it has been found on some list.
+ If map->l_serial changed, return -1.
+
+2007-09-17 Jakub Jelinek <jakub@redhat.com>
+
+ * include/stdio.h (__isoc99_fscanf, __isoc99_scanf,
+ __isoc99_sscanf, __isoc99_vscanf): New prototypes.
+ (__isoc99_vsscanf, __isoc99_vfscanf): New prototypes, add
+ libc_hidden_proto.
+ * include/wchar.h (__isoc99_fwscanf, __isoc99_wscanf,
+ __isoc99_swscanf, __isoc99_vwscanf): New prototypes.
+ (__isoc99_vswscanf, __isoc99_vfwscanf): New prototypes,
+ add libc_hidden_proto.
+ * libio/stdio.h (fscanf, scanf, sscanf, vfscanf, vscanf,
+ vsscanf): Redirect to __isoc99_* if strict ISO C99 or POSIX
+ conformance requested.
+ * wcsmbs/wchar.h (fwscanf, wscanf, swscanf, vfwscanf, vwscanf,
+ vswscanf): Redirect to __isoc99_* if strict ISO C99 or POSIX
+ conformance requested.
+ * libio/bits/stdio-ldbl.h (fscanf, scanf, sscanf, vfscanf, vscanf,
+ vsscanf): Redirect to __nldbl___isoc99_* if strict ISO C99 or POSIX
+ conformance requested.
+ * wcsmbs/bits/wchar-ldbl.h (fwscanf, wscanf, swscanf, vfwscanf,
+ vwscanf, vswscanf): Redirect to __nldbl___isoc99_* if strict
+ ISO C99 or POSIX conformance requested.
+ * stdio-common/Versions (libc): Export __isoc99_scanf@@GLIBC_2.7,
+ __isoc99_vscanf@@GLIBC_2.7, __isoc99_fscanf@@GLIBC_2.7,
+ __isoc99_vfscanf@@GLIBC_2.7, __isoc99_sscanf@@GLIBC_2.7
+ and __isoc99_vsscanf@@GLIBC_2.7.
+ * stdio-common/Makefile (routines): Add isoc99_scanf, isoc99_vscanf,
+ isoc99_fscanf, isoc99_vfscanf, isoc99_sscanf and isoc99_vsscanf.
+ (tests): Add scanf14.
+ (CFLAGS-vfprintf.c, CFLAGS-fprintf.c, CFLAGS-printf.c,
+ CFLAGS-vfwprintf.c, CFLAGS-vfscanf.c, CFLAGS-vfwscanf.c,
+ CFLAGS-fscanf.c, CFLAGS-scanf.c, CFLAGS-isoc99_vfscanf.c,
+ CFLAGS-isoc99_vscanf.c, CFLAGS-isoc99_fscanf.c,
+ CFLAGS-isoc99_scanf.c): Add $(exceptions).
+ (CFLAGS-scanf15.c): Add various -I paths to prevent the compiler
+ from using internal headers.
+ * wcsmbs/Versions (libc): Export __isoc99_wscanf@@GLIBC_2.7,
+ __isoc99_vwscanf@@GLIBC_2.7, __isoc99_fwscanf@@GLIBC_2.7,
+ __isoc99_vfwscanf@@GLIBC_2.7, __isoc99_swscanf@@GLIBC_2.7
+ and __isoc99_vswscanf@@GLIBC_2.7.
+ * wcsmbs/Makefile (routines): Add isoc99_wscanf, isoc99_vwscanf,
+ isoc99_fwscanf, isoc99_vfwscanf, isoc99_swscanf and isoc99_vswscanf.
+ (CFLAGS-isoc99_wscanf.c, CFLAGS-isoc99_fwscanf.c,
+ CFLAGS-isoc99_vwscanf.c, CFLAGS-isoc99_vfwscanf.c): Add $(exceptions).
+ (CPPFLAGS): Add -D_IO_MTSAFE_IO if needed.
+ * stdio-common/isoc99_scanf.c: New file.
+ * stdio-common/isoc99_vsscanf.c: New file.
+ * stdio-common/isoc99_vscanf.c: New file.
+ * stdio-common/isoc99_vfscanf.c: New file.
+ * stdio-common/isoc99_fscanf.c: New file.
+ * stdio-common/isoc99_sscanf.c: New file.
+ * wcsmbs/isoc99_fwscanf.c: New file.
+ * wcsmbs/isoc99_vswscanf.c: New file.
+ * wcsmbs/isoc99_swscanf.c: New file.
+ * wcsmbs/isoc99_wscanf.c: New file.
+ * wcsmbs/isoc99_vwscanf.c: New file.
+ * wcsmbs/isoc99_vfwscanf.c: New file.
+ * libio/libio.h (_IO_FLAGS2_SCANF_STD): Define.
+ * libio/libioP.h (_IO_acquire_lock_clear_flags2_fct): Also
+ clear _IO_FLAGS2_SCANF_STD bit from _flags2.
+ * stdio-common/vfscanf.c (_IO_vfscanf_internal): Don't
+ handle %as, %aS and %a[ if _IO_FLAGS2_SCANF_STD is set in _flags2.
+ * stdio-common/scanf14.c: New test.
+ * stdio-common/scanf15.c: New test.
+ * sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add
+ isoc99_scanf, isoc99_fscanf, isoc99_sscanf,
+ isoc99_vscanf, isoc99_vfscanf, isoc99_vsscanf,
+ isoc99_wscanf, isoc99_fwscanf, isoc99_swscanf,
+ isoc99_vwscanf, isoc99_vfwscanf and isoc99_vswscanf.
+ * sysdeps/ieee754/ldbl-opt/Versions (libc): Export
+ __nldbl___isoc99_scanf@@GLIBC_2.7,
+ __nldbl___isoc99_fscanf@@GLIBC_2.7,
+ __nldbl___isoc99_sscanf@@GLIBC_2.7,
+ __nldbl___isoc99_vscanf@@GLIBC_2.7,
+ __nldbl___isoc99_vfscanf@@GLIBC_2.7,
+ __nldbl___isoc99_vsscanf@@GLIBC_2.7,
+ __nldbl___isoc99_wscanf@@GLIBC_2.7,
+ __nldbl___isoc99_fwscanf@@GLIBC_2.7,
+ __nldbl___isoc99_swscanf@@GLIBC_2.7,
+ __nldbl___isoc99_vwscanf@@GLIBC_2.7,
+ __nldbl___isoc99_vfwscanf@@GLIBC_2.7
+ and __nldbl___isoc99_vswscanf@@GLIBC_2.7.
+ * sysdeps/ieee754/ldbl-opt/nldbl-compat.h (__isoc99_scanf,
+ __isoc99_fscanf, __isoc99_sscanf, __isoc99_vscanf,
+ __isoc99_vfscanf, __isoc99_vsscanf, __isoc99_wscanf,
+ __isoc99_fwscanf, __isoc99_swscanf, __isoc99_vwscanf,
+ __isoc99_vfwscanf, __isoc99_vswscanf): Add NLDBL_DECL.
+ * sysdeps/ieee754/ldbl-opt/nldbl-compat.c
+ (__nldbl___isoc99_scanf, __nldbl___isoc99_fscanf,
+ __nldbl___isoc99_sscanf, __nldbl___isoc99_vscanf,
+ __nldbl___isoc99_vfscanf, __nldbl___isoc99_vsscanf,
+ __nldbl___isoc99_wscanf, __nldbl___isoc99_fwscanf,
+ __nldbl___isoc99_swscanf, __nldbl___isoc99_vwscanf,
+ __nldbl___isoc99_vfwscanf, __nldbl___isoc99_vswscanf): New
+ functions.
+ * sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vfscanf.c: New file.
+ * sysdeps/ieee754/ldbl-opt/nldbl-isoc99_swscanf.c: New file.
+ * sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vwscanf.c: New file.
+ * sysdeps/ieee754/ldbl-opt/nldbl-isoc99_wscanf.c: New file.
+ * sysdeps/ieee754/ldbl-opt/nldbl-isoc99_scanf.c: New file.
+ * sysdeps/ieee754/ldbl-opt/nldbl-isoc99_sscanf.c: New file.
+ * sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vsscanf.c: New file.
+ * sysdeps/ieee754/ldbl-opt/nldbl-isoc99_fwscanf.c: New file.
+ * sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vfwscanf.c: New file.
+ * sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vswscanf.c: New file.
+ * sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vscanf.c: New file.
+ * sysdeps/ieee754/ldbl-opt/nldbl-isoc99_fscanf.c: New file.
+
+ * stdio-common/Makefile (tests): Add scanf13.
+ (scanf13-ENV): New.
+ * stdio-common/vfscanf.c (_IO_vfscanf_internal): Handle
+ m modifier followed by l.
+ (STRING_ARG): Add width argument.
+ (_IO_vfscanf_internal) <case L_('c')>: Handle %mc.
+ <case L_('C')>: Handle %mlc and %mC.
+ <case L_('s'), case L_('S'), case L_('[')>: Adjust STRING_ARG
+ arguments.
+ * stdio-common/scanf13.c: New test.
+
+ * libio/libioP.h (_IO_acquire_lock_clear_flags2_fct): Clear
+ the _IO_FLAGS2_FORTIFY bit from _flags2 rather than _flags.
+
+2007-09-18 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/unix/sysv/linux/i386/bits/fcntl.h: Correct return value
+ type and __THROW marker of splice, vmsplice, and tee.
+ * sysdeps/unix/sysv/linux/ia64/bits/fcntl.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h: Likewise.
+ * sysdeps/unix/sysv/linux/s390/bits/fcntl.h: Likewise.
+ * sysdeps/unix/sysv/linux/sh/bits/fcntl.h: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h: Likewise.
+ * sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Likewise.
+ * sysdeps/unix/sysv/linux/syscalls.list: Mark splice, vmsplice, and tee
+ as cancellation points.
+
+2003-11-01 Daniel Jacobowitz <dan@debian.org>
+
+ * sysdeps/unix/sysv/linux/dl-osinfo.h (_dl_discover_osversion): Don't
+ parse more than three parts of the version number.
+
+2007-09-15 Ulrich Drepper <drepper@redhat.com>
+
+ * stdio-common/vfscanf.c (_IO_vfwscanf): Add support for 'm'
+ modifier. Patch by Jakub Jelinek.
+
+2007-08-26 Jakub Jelinek <jakub@redhat.com>
+
+ * sysdeps/unix/sysv/linux/i386/Makefile (sysdep_routines): Add
+ call_fallocate in misc subdir.
+ * sysdeps/unix/sysv/linux/i386/call_fallocate.S: New file.
+ * sysdeps/unix/sysv/linux/i386/syscalls.list (fallocate64): Remove.
+ * sysdeps/unix/sysv/linux/i386/posix_fallocate.c: Use __call_fallocate
+ instead of __fallocate64.
+ * sysdeps/unix/sysv/linux/i386/posix_fallocate64.c: Likewise.
+
+2007-09-15 Jakub Jelinek <jakub@redhat.com>
+
+ * rt/Versions (librt): Export __mq_open_2@@GLIBC_2.7.
+ * rt/Makefile (headers): Add bits/mqueue2.h.
+ * rt/mqueue.h: Include bits/mqueue2.h if -D_FORTIFY_SOURCE=2,
+ optimizing with GCC and __va_arg_pack_len is defined.
+ * rt/bits/mqueue2.h: New file.
+ * rt/mq_open.c (__mq_open): Renamed from mq_open.
+ (mq_open): New strong_alias.
+ (__mq_open_2): New function.
+ * sysdeps/unix/sysv/linux/mq_open.c (__mq_open): Renamed from mq_open.
+ (mq_open): New strong_alias.
+ (__mq_open_2): New function.
+ * debug/Versions (libc): Export __fortify_fail@@GLIBC_PRIVATE.
+ * Versions.def (librt): Add GLIBC_2.7 version.
+ * debug/fortify_fail.c (__fortify_fail): Add libc_hidden_def.
+ * include/stdio.h (__fortify_fail): Add libc_hidden_proto.
+
+ * misc/sys/cdefs.h (__errordecl, __va_arg_pack_len): Define.
+ * io/fcntl.h: Include bits/fcntl2.h when __va_arg_pack_len
+ is defined rather than when not C++.
+ * io/bits/fcntl2.h (__open_alias, __open64_alias, __openat_alias,
+ __openat64_alias): New redirects.
+ (__open_too_many_args, __open_missing_mode, __open64_too_many_args,
+ __open64_missing_mode, __openat_too_many_args, __openat_missing_mode,
+ __openat64_too_many_args, __openat64_missing_mode): New __errordecls.
+ (open, open64, openat, openat64): Rewrite as __extern_always_inline
+ functions instead of function-like macros.
+
+2007-09-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/i586/memcpy.S (__memcpy_chk): New definition.
+ * sysdeps/i386/i586/mempcpy.S (__memcpy_chk): New definition.
+ * sysdeps/i386/i586/memset.S (__memset_chk): New definition.
+
+2007-09-15 Mike Frysinger <vapier@gentoo.org>
+
+ * inet/inet_net.c: Reset digit to 0 for inputs starting with "0x".
+ * inet/tst-network.c (tests): Add edge case tests for "0", "0x", "0x0".
+
+2007-09-14 Mike Frysinger <vapier@gentoo.org>
+
+ * inet/tst-network.c: Increment ERRORS for failing tests.
+
+2007-09-07 Jakub Jelinek <jakub@redhat.com>
+
+ * misc/sys/cdefs.h (__va_arg_pack): Define for GCC 4.3+.
+ * misc/bits/syslog.h (syslog): When __va_arg_pack is defined,
+ implement as __extern_always_inline function.
+ (vsyslog): Define as __extern_always_inline function unconditionally.
+ * libio/bits/stdio2.h (sprintf, snprintf, printf, fprintf):
+ When __va_arg_pack is defined, implement as __extern_always_inline
+ functions.
+ (vsprintf, vsnprintf, vprintf, vfprintf): Define as
+ __extern_always_inline functions unconditionally.
+ * libio/bits/stdio.h (vprintf): Ifdef out the inline when
+ bits/stdio2.h will be included.
+ * wcsmbs/bits/wchar2.h (__swprintf_alias): New redirect.
+ (swprintf, wprintf, fwprintf): When __va_arg_pack is defined,
+ implement as __extern_always_inline functions.
+ (vswprintf, vwprintf, vfwprintf): Define as
+ __extern_always_inline functions unconditionally.
+ * debug/tst-chk1.c (do_test): Enable remaining tests for C++.
+
+2007-09-03 Jakub Jelinek <jakub@redhat.com>
+
+ * misc/sys/cdefs.h (__extern_inline, __extern_always_inline): Only
+ define in C++ for GCC 4.3+, in C++ always use __gnu_inline__
+ attribute.
+ * include/features.h (__USE_EXTERN_INLINES): Define only when
+ __extern_inline is defined.
+ * stdlib/stdlib.h: Include bits/stdlib.h when __extern_always_inline
+ is defined instead of when not __cplusplus.
+ * misc/sys/syslog.h: Include bits/syslog.h when __extern_always_inline
+ is defined instead of when not __cplusplus.
+ * socket/sys/socket.h: Include bits/socket2.h when
+ __extern_always_inline is defined instead of when not __cplusplus.
+ * libio/stdio.h: Include bits/stdio2.h when __extern_always_inline
+ is defined instead of when not __cplusplus.
+ * posix/unistd.h: Include bits/unistd.h when __extern_always_inline
+ is defined instead of when not __cplusplus.
+ * string/string.h: Include bits/string3.h when __extern_always_inline
+ is defined instead of when not __cplusplus.
+ * wcsmbs/wchar.h: Include bits/wchar2.h when __extern_always_inline
+ is defined instead of when not __cplusplus.
+ (btowc, wctob): Don't guard the inlines with ifndef __cplusplus.
+ * io/fcntl.h: Don't include bits/fcntl2.h if __extern_always_inline
+ is not defined.
+ * misc/bits/syslog-ldbl.h: Guard *_chk stuff with
+ defined __extern_always_inline instead of !defined __cplusplus.
+ * libio/bits/stdio-ldbl.h: Likewise.
+ * wcsmbs/bits/wchar-ldbl.h: Likewise.
+ * misc/bits/syslog.h (syslog): Don't define for C++.
+ (vsyslog): Use __extern_always_inline function for C++ instead of
+ a macro.
+ * libio/bits/stdio.h (__STDIO_INLINE): Define to __extern_inline
+ whenever that macro is defined.
+ (vprintf): Don't provide the inline for C++.
+ (fread_unlocked, fwrite_unlocked): Don't define the macros for C++.
+ * libio/bits/stdio2.h (sprintf, snprintf, printf, fprintf): Don't
+ define the macros for C++.
+ (vsprintf, vsnprintf, vprintf, vfprintf): Define as
+ __extern_always_inline functions for C++.
+ * io/sys/stat.h (stat, lstat, fstat, fstatat, mknod, mknodat,
+ stat64, lstat64, fstat64, fstatat64): Don't define if not
+ __USE_EXTERN_INLINES.
+ * wcsmbs/bits/wchar2.h: Fix #error message.
+ (swprintf, wprintf, fwprintf): Don't define the macros for C++.
+ (vswprintf, vwprintf, vfwprintf): Define using
+ __extern_always_inline functions for C++.
+ * string/bits/string3.h: Don't #undef macros if __cplusplus.
+ (memcpy, memmove, mempcpy, memset, bcopy, bzero, strcpy, stpcpy,
+ strncpy, strcat, strncat): Define as __extern_always_inline
+ functions instead of macros for C++.
+ * math/bits/cmathcalls.h: Guard __extern_inline routines with
+ defined __extern_inline.
+ * sysdeps/alpha/fpu/bits/mathinline.h (__MATH_INLINE): Define
+ to __extern_inline whenever that macro is defined.
+ * sysdeps/ia64/fpu/bits/mathinline.h (__MATH_INLINE): Likewise.
+ * sysdeps/i386/fpu/bits/mathinline.h (__MATH_INLINE): Likewise.
+ * sysdeps/i386/i486/bits/string.h (__STRING_INLINE): Likewise.
+ * sysdeps/s390/bits/string.h (__STRING_INLINE): Likewise.
+ * sysdeps/s390/fpu/bits/mathinline.h (__MATH_INLINE): Likewise.
+ * sysdeps/powerpc/fpu/bits/mathinline.h (__MATH_INLINE): Likewise.
+ * sysdeps/x86_64/fpu/bits/mathinline.h (__MATH_INLINE): Likewise.
+ * sysdeps/sparc/fpu/bits/mathinline.h (__MATH_INLINE): Likewise.
+ * sysdeps/unix/sysv/linux/sys/sysmacros.h (gnu_dev_major,
+ gnu_dev_minor, gnu_dev_makedev): Remove __extern_inline from
+ prototypes. Only provide __extern_inline routines if
+ __USE_EXTERN_INLINES.
+ * debug/Makefile: Add rules to build and run tst-{,lfs}chk{4,5,6}
+ tests.
+ * debug/tst-chk1.c (do_prepare, do_test): Allow compilation as C++.
+ For now avoid some *printf tests in C++. Skip all testing
+ if __USE_FORTIFY_LEVEL is defined, but __extern_always_inline macro
+ is not.
+ * debug/tst-chk4.cc: New file.
+ * debug/tst-chk5.cc: New file.
+ * debug/tst-chk6.cc: New file.
+ * debug/tst-lfschk4.cc: New file.
+ * debug/tst-lfschk5.cc: New file.
+ * debug/tst-lfschk6.cc: New file.
+ * include/wchar.h (__vfwprintf_chk, __vswprintf_chk): Avoid
+ prototypes in C++.
+ * include/stdio.h (__sprintf_chk, __snprintf_chk, __vsprintf_chk,
+ __vsnprintf_chk, __printf_chk, __fprintf_chk, __vprintf_chk,
+ __vfprintf_chk, __fgets_unlocked_chk, __fgets_chk): Likewise.
+
+2007-09-13 Ulrich Drepper <drepper@redhat.com>
+
+ * po/cs.po: Update from translation team.
+
2007-09-11 Roland McGrath <roland@redhat.com>
* posix/Makefile ($(objpfx)getconf.speclist): Make it empty if cross
diff --git a/libc/NEWS b/libc/NEWS
index e8168363b..0c5080025 100644
--- a/libc/NEWS
+++ b/libc/NEWS
@@ -1,10 +1,40 @@
-GNU C Library NEWS -- history of user-visible changes. 2007-4-25
+GNU C Library NEWS -- history of user-visible changes. 2007-9-19
Copyright (C) 1992-2006, 2007 Free Software Foundation, Inc.
See the end for copying conditions.
Please send GNU C library bug reports via <http://sources.redhat.com/bugzilla/>
using `glibc' in the "product" field.
+Version 2.7
+
+* More checking functions: fread, fread_unlocked, open*, mq_open.
+ Implemented by Jakub Jelinek and Ulrich Drepper.
+
+* Extend fortification to C++. Implemented by Jakub Jelinek.
+
+* Implement 'm' modifier for scanf. Add stricter C99/SUS compliance
+ by not recognizing 'a' as a modifier when those specs are requested.
+ Implemented by Jakub Jelinek.
+
+* PPC optimizations to math and string functions.
+ Implemented by Steven Munroe.
+
+* New interfaces: mkostemp, mkostemp64. Like mkstemp* but allow additonal
+ options to be passed. Implemented by Ulrich Drepper.
+
+* More CPU set manipulation functions. Implemented by Ulrich Drepper.
+
+* Handle private futexes in the NPTL implementation.
+ Implemented by Jakub Jelinek and Ulrich Drepper.
+
+* Add support for O_CLOEXEC. Implement in Hurd. Use throughout libc.
+ Implemented by Roland McGrath and Ulrich Drepper.
+
+* Linux/x86-64 vDSO support. Implemented by Ulrich Drepper.
+
+* SHA-256 and SHA-512 based password encryption.
+ Implemented by Ulrich Drepper.
+
Version 2.6
* New Linux interfaces: epoll_pwait, sched_getcpu.
diff --git a/libc/Versions.def b/libc/Versions.def
index 7365b54a1..af377826e 100644
--- a/libc/Versions.def
+++ b/libc/Versions.def
@@ -100,6 +100,7 @@ librt {
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
+ GLIBC_2.7
}
libutil {
GLIBC_2.0
diff --git a/libc/crypt/Makefile b/libc/crypt/Makefile
index 575221a1c..28f82193b 100644
--- a/libc/crypt/Makefile
+++ b/libc/crypt/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1996, 2000, 2001 Free Software Foundation, Inc.
+# Copyright (C) 1996, 2000, 2001, 2007 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -26,12 +26,13 @@ headers := crypt.h
extra-libs := libcrypt
extra-libs-others := $(extra-libs)
-libcrypt-routines := crypt-entry md5-crypt md5 crypt crypt_util
+libcrypt-routines := crypt-entry md5-crypt md5 sha256-crypt sha256 \
+ sha512-crypt sha512 crypt crypt_util
-tests := cert md5test md5c-test
+tests := cert md5test md5c-test sha256test sha256c-test sha512test sha512c-test
distribute := ufc-crypt.h crypt-private.h ufc.c speeds.c README.ufc-crypt \
- Banner md5.h
+ Banner md5.h sha256.h sha512.h
include ../Makeconfig
@@ -40,6 +41,8 @@ routines += $(libcrypt-routines)
endif
$(objpfx)md5test: $(objpfx)md5.o
+$(objpfx)sha256test: $(objpfx)sha256.o
+$(objpfx)sha512test: $(objpfx)sha512.o
include ../Rules
diff --git a/libc/crypt/crypt-entry.c b/libc/crypt/crypt-entry.c
index ca219bb69..fdddad2c5 100644
--- a/libc/crypt/crypt-entry.c
+++ b/libc/crypt/crypt-entry.c
@@ -1,7 +1,7 @@
/*
* UFC-crypt: ultra fast crypt(3) implementation
*
- * Copyright (C) 1991, 1992, 1993, 1996, 1997 Free Software Foundation, Inc.
+ * Copyright (C) 1991,1992,1993,1996,1997,2007 Free Software Foundation, Inc.
*
* The GNU C Library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -55,6 +55,12 @@ void _ufc_clearmem (char *start, int cnt);
extern char *__md5_crypt_r (const char *key, const char *salt, char *buffer,
int buflen);
extern char *__md5_crypt (const char *key, const char *salt);
+extern char *__sha256_crypt_r (const char *key, const char *salt,
+ char *buffer, int buflen);
+extern char *__sha256_crypt (const char *key, const char *salt);
+extern char *__sha512_crypt_r (const char *key, const char *salt,
+ char *buffer, int buflen);
+extern char *__sha512_crypt (const char *key, const char *salt);
#endif
/* Define our magic string to mark salt for MD5 encryption
@@ -62,6 +68,12 @@ extern char *__md5_crypt (const char *key, const char *salt);
encryption implementations. */
static const char md5_salt_prefix[] = "$1$";
+/* Magic string for SHA256 encryption. */
+static const char sha256_salt_prefix[] = "$5$";
+
+/* Magic string for SHA512 encryption. */
+static const char sha512_salt_prefix[] = "$6$";
+
/* For use by the old, non-reentrant routines (crypt/encrypt/setkey) */
extern struct crypt_data _ufc_foobar;
@@ -84,6 +96,16 @@ __crypt_r (key, salt, data)
if (strncmp (md5_salt_prefix, salt, sizeof (md5_salt_prefix) - 1) == 0)
return __md5_crypt_r (key, salt, (char *) data,
sizeof (struct crypt_data));
+
+ /* Try to find out whether we have to use SHA256 encryption replacement. */
+ if (strncmp (sha256_salt_prefix, salt, sizeof (sha256_salt_prefix) - 1) == 0)
+ return __sha256_crypt_r (key, salt, (char *) data,
+ sizeof (struct crypt_data));
+
+ /* Try to find out whether we have to use SHA512 encryption replacement. */
+ if (strncmp (sha512_salt_prefix, salt, sizeof (sha512_salt_prefix) - 1) == 0)
+ return __sha512_crypt_r (key, salt, (char *) data,
+ sizeof (struct crypt_data));
#endif
/*
@@ -126,6 +148,14 @@ crypt (key, salt)
/* Try to find out whether we have to use MD5 encryption replacement. */
if (strncmp (md5_salt_prefix, salt, sizeof (md5_salt_prefix) - 1) == 0)
return __md5_crypt (key, salt);
+
+ /* Try to find out whether we have to use SHA256 encryption replacement. */
+ if (strncmp (sha256_salt_prefix, salt, sizeof (sha256_salt_prefix) - 1) == 0)
+ return __sha256_crypt (key, salt);
+
+ /* Try to find out whether we have to use SHA512 encryption replacement. */
+ if (strncmp (sha512_salt_prefix, salt, sizeof (sha512_salt_prefix) - 1) == 0)
+ return __sha512_crypt (key, salt);
#endif
return __crypt_r (key, salt, &_ufc_foobar);
diff --git a/libc/crypt/sha256-crypt.c b/libc/crypt/sha256-crypt.c
new file mode 100644
index 000000000..0db13e466
--- /dev/null
+++ b/libc/crypt/sha256-crypt.c
@@ -0,0 +1,345 @@
+/* One way encryption based on SHA256 sum.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2007.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#include <assert.h>
+#include <errno.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/param.h>
+
+#include "sha256.h"
+
+
+/* Define our magic string to mark salt for SHA256 "encryption"
+ replacement. */
+static const char sha256_salt_prefix[] = "$5$";
+
+/* Prefix for optional rounds specification. */
+static const char sha256_rounds_prefix[] = "rounds=";
+
+/* Maximum salt string length. */
+#define SALT_LEN_MAX 16
+/* Default number of rounds if not explicitly specified. */
+#define ROUNDS_DEFAULT 5000
+/* Minimum number of rounds. */
+#define ROUNDS_MIN 1000
+/* Maximum number of rounds. */
+#define ROUNDS_MAX 999999999
+
+/* Table with characters for base64 transformation. */
+static const char b64t[64] =
+"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
+
+
+/* Prototypes for local functions. */
+extern char *__sha256_crypt_r (const char *key, const char *salt,
+ char *buffer, int buflen);
+extern char *__sha256_crypt (const char *key, const char *salt);
+
+
+char *
+__sha256_crypt_r (key, salt, buffer, buflen)
+ const char *key;
+ const char *salt;
+ char *buffer;
+ int buflen;
+{
+ unsigned char alt_result[32]
+ __attribute__ ((__aligned__ (__alignof__ (uint32_t))));
+ unsigned char temp_result[32]
+ __attribute__ ((__aligned__ (__alignof__ (uint32_t))));
+ struct sha256_ctx ctx;
+ struct sha256_ctx alt_ctx;
+ size_t salt_len;
+ size_t key_len;
+ size_t cnt;
+ char *cp;
+ char *copied_key = NULL;
+ char *copied_salt = NULL;
+ char *p_bytes;
+ char *s_bytes;
+ /* Default number of rounds. */
+ size_t rounds = ROUNDS_DEFAULT;
+ bool rounds_custom = false;
+
+ /* Find beginning of salt string. The prefix should normally always
+ be present. Just in case it is not. */
+ if (strncmp (sha256_salt_prefix, salt, sizeof (sha256_salt_prefix) - 1) == 0)
+ /* Skip salt prefix. */
+ salt += sizeof (sha256_salt_prefix) - 1;
+
+ if (strncmp (salt, sha256_rounds_prefix, sizeof (sha256_rounds_prefix) - 1)
+ == 0)
+ {
+ const char *num = salt + sizeof (sha256_rounds_prefix) - 1;
+ char *endp;
+ unsigned long int srounds = strtoul (num, &endp, 10);
+ if (*endp == '$')
+ {
+ salt = endp + 1;
+ rounds = MAX (ROUNDS_MIN, MIN (srounds, ROUNDS_MAX));
+ rounds_custom = true;
+ }
+ }
+
+ salt_len = MIN (strcspn (salt, "$"), SALT_LEN_MAX);
+ key_len = strlen (key);
+
+ if ((key - (char *) 0) % __alignof__ (uint32_t) != 0)
+ {
+ char *tmp = (char *) alloca (key_len + __alignof__ (uint32_t));
+ key = copied_key =
+ memcpy (tmp + __alignof__ (uint32_t)
+ - (tmp - (char *) 0) % __alignof__ (uint32_t),
+ key, key_len);
+ assert ((key - (char *) 0) % __alignof__ (uint32_t) == 0);
+ }
+
+ if ((salt - (char *) 0) % __alignof__ (uint32_t) != 0)
+ {
+ char *tmp = (char *) alloca (salt_len + __alignof__ (uint32_t));
+ salt = copied_salt =
+ memcpy (tmp + __alignof__ (uint32_t)
+ - (tmp - (char *) 0) % __alignof__ (uint32_t),
+ salt, salt_len);
+ assert ((salt - (char *) 0) % __alignof__ (uint32_t) == 0);
+ }
+
+ /* Prepare for the real work. */
+ __sha256_init_ctx (&ctx);
+
+ /* Add the key string. */
+ __sha256_process_bytes (key, key_len, &ctx);
+
+ /* The last part is the salt string. This must be at most 8
+ characters and it ends at the first `$' character (for
+ compatibility with existing implementations). */
+ __sha256_process_bytes (salt, salt_len, &ctx);
+
+
+ /* Compute alternate SHA256 sum with input KEY, SALT, and KEY. The
+ final result will be added to the first context. */
+ __sha256_init_ctx (&alt_ctx);
+
+ /* Add key. */
+ __sha256_process_bytes (key, key_len, &alt_ctx);
+
+ /* Add salt. */
+ __sha256_process_bytes (salt, salt_len, &alt_ctx);
+
+ /* Add key again. */
+ __sha256_process_bytes (key, key_len, &alt_ctx);
+
+ /* Now get result of this (32 bytes) and add it to the other
+ context. */
+ __sha256_finish_ctx (&alt_ctx, alt_result);
+
+ /* Add for any character in the key one byte of the alternate sum. */
+ for (cnt = key_len; cnt > 32; cnt -= 32)
+ __sha256_process_bytes (alt_result, 32, &ctx);
+ __sha256_process_bytes (alt_result, cnt, &ctx);
+
+ /* Take the binary representation of the length of the key and for every
+ 1 add the alternate sum, for every 0 the key. */
+ for (cnt = key_len; cnt > 0; cnt >>= 1)
+ if ((cnt & 1) != 0)
+ __sha256_process_bytes (alt_result, 32, &ctx);
+ else
+ __sha256_process_bytes (key, key_len, &ctx);
+
+ /* Create intermediate result. */
+ __sha256_finish_ctx (&ctx, alt_result);
+
+ /* Start computation of P byte sequence. */
+ __sha256_init_ctx (&alt_ctx);
+
+ /* For every character in the password add the entire password. */
+ for (cnt = 0; cnt < key_len; ++cnt)
+ __sha256_process_bytes (key, key_len, &alt_ctx);
+
+ /* Finish the digest. */
+ __sha256_finish_ctx (&alt_ctx, temp_result);
+
+ /* Create byte sequence P. */
+ cp = p_bytes = alloca (key_len);
+ for (cnt = key_len; cnt >= 32; cnt -= 32)
+ cp = mempcpy (cp, temp_result, 32);
+ memcpy (cp, temp_result, cnt);
+
+ /* Start computation of S byte sequence. */
+ __sha256_init_ctx (&alt_ctx);
+
+ /* For every character in the password add the entire password. */
+ for (cnt = 0; cnt < 16 + alt_result[0]; ++cnt)
+ __sha256_process_bytes (salt, salt_len, &alt_ctx);
+
+ /* Finish the digest. */
+ __sha256_finish_ctx (&alt_ctx, temp_result);
+
+ /* Create byte sequence S. */
+ cp = s_bytes = alloca (salt_len);
+ for (cnt = salt_len; cnt >= 32; cnt -= 32)
+ cp = mempcpy (cp, temp_result, 32);
+ memcpy (cp, temp_result, cnt);
+
+ /* Repeatedly run the collected hash value through SHA256 to burn
+ CPU cycles. */
+ for (cnt = 0; cnt < rounds; ++cnt)
+ {
+ /* New context. */
+ __sha256_init_ctx (&ctx);
+
+ /* Add key or last result. */
+ if ((cnt & 1) != 0)
+ __sha256_process_bytes (p_bytes, key_len, &ctx);
+ else
+ __sha256_process_bytes (alt_result, 32, &ctx);
+
+ /* Add salt for numbers not divisible by 3. */
+ if (cnt % 3 != 0)
+ __sha256_process_bytes (s_bytes, salt_len, &ctx);
+
+ /* Add key for numbers not divisible by 7. */
+ if (cnt % 7 != 0)
+ __sha256_process_bytes (p_bytes, key_len, &ctx);
+
+ /* Add key or last result. */
+ if ((cnt & 1) != 0)
+ __sha256_process_bytes (alt_result, 32, &ctx);
+ else
+ __sha256_process_bytes (p_bytes, key_len, &ctx);
+
+ /* Create intermediate result. */
+ __sha256_finish_ctx (&ctx, alt_result);
+ }
+
+ /* Now we can construct the result string. It consists of three
+ parts. */
+ cp = __stpncpy (buffer, sha256_salt_prefix, MAX (0, buflen));
+ buflen -= sizeof (sha256_salt_prefix) - 1;
+
+ if (rounds_custom)
+ {
+ int n = snprintf (cp, MAX (0, buflen), "%s%zu$",
+ sha256_rounds_prefix, rounds);
+ cp += n;
+ buflen -= n;
+ }
+
+ cp = __stpncpy (cp, salt, MIN ((size_t) MAX (0, buflen), salt_len));
+ buflen -= MIN ((size_t) MAX (0, buflen), salt_len);
+
+ if (buflen > 0)
+ {
+ *cp++ = '$';
+ --buflen;
+ }
+
+#define b64_from_24bit(B2, B1, B0, N) \
+ do { \
+ unsigned int w = ((B2) << 16) | ((B1) << 8) | (B0); \
+ int n = (N); \
+ while (n-- > 0 && buflen > 0) \
+ { \
+ *cp++ = b64t[w & 0x3f]; \
+ --buflen; \
+ w >>= 6; \
+ } \
+ } while (0)
+
+ b64_from_24bit (alt_result[0], alt_result[10], alt_result[20], 4);
+ b64_from_24bit (alt_result[21], alt_result[1], alt_result[11], 4);
+ b64_from_24bit (alt_result[12], alt_result[22], alt_result[2], 4);
+ b64_from_24bit (alt_result[3], alt_result[13], alt_result[23], 4);
+ b64_from_24bit (alt_result[24], alt_result[4], alt_result[14], 4);
+ b64_from_24bit (alt_result[15], alt_result[25], alt_result[5], 4);
+ b64_from_24bit (alt_result[6], alt_result[16], alt_result[26], 4);
+ b64_from_24bit (alt_result[27], alt_result[7], alt_result[17], 4);
+ b64_from_24bit (alt_result[18], alt_result[28], alt_result[8], 4);
+ b64_from_24bit (alt_result[9], alt_result[19], alt_result[29], 4);
+ b64_from_24bit (0, alt_result[31], alt_result[30], 3);
+ if (buflen <= 0)
+ {
+ __set_errno (ERANGE);
+ buffer = NULL;
+ }
+ else
+ *cp = '\0'; /* Terminate the string. */
+
+ /* Clear the buffer for the intermediate result so that people
+ attaching to processes or reading core dumps cannot get any
+ information. We do it in this way to clear correct_words[]
+ inside the SHA256 implementation as well. */
+ __sha256_init_ctx (&ctx);
+ __sha256_finish_ctx (&ctx, alt_result);
+ memset (temp_result, '\0', sizeof (temp_result));
+ memset (p_bytes, '\0', key_len);
+ memset (s_bytes, '\0', salt_len);
+ memset (&ctx, '\0', sizeof (ctx));
+ memset (&alt_ctx, '\0', sizeof (alt_ctx));
+ if (copied_key != NULL)
+ memset (copied_key, '\0', key_len);
+ if (copied_salt != NULL)
+ memset (copied_salt, '\0', salt_len);
+
+ return buffer;
+}
+
+#ifndef _LIBC
+# define libc_freeres_ptr(decl) decl
+#endif
+libc_freeres_ptr (static char *buffer);
+
+/* This entry point is equivalent to the `crypt' function in Unix
+ libcs. */
+char *
+__sha256_crypt (const char *key, const char *salt)
+{
+ /* We don't want to have an arbitrary limit in the size of the
+ password. We can compute an upper bound for the size of the
+ result in advance and so we can prepare the buffer we pass to
+ `sha256_crypt_r'. */
+ static int buflen;
+ int needed = (sizeof (sha256_salt_prefix) - 1
+ + sizeof (sha256_rounds_prefix) + 9 + 1
+ + strlen (salt) + 1 + 43 + 1);
+
+ if (buflen < needed)
+ {
+ char *new_buffer = (char *) realloc (buffer, needed);
+ if (new_buffer == NULL)
+ return NULL;
+
+ buffer = new_buffer;
+ buflen = needed;
+ }
+
+ return __sha256_crypt_r (key, salt, buffer, buflen);
+}
+
+#ifndef _LIBC
+static void
+__attribute__ ((__destructor__))
+free_mem (void)
+{
+ free (buffer);
+}
+#endif
diff --git a/libc/crypt/sha256.c b/libc/crypt/sha256.c
new file mode 100644
index 000000000..941612e17
--- /dev/null
+++ b/libc/crypt/sha256.c
@@ -0,0 +1,304 @@
+/* Functions to compute SHA256 message digest of files or memory blocks.
+ according to the definition of SHA256 in FIPS 180-2.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+/* Written by Ulrich Drepper <drepper@redhat.com>, 2007. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <endian.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+
+#include "sha256.h"
+
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+# ifdef _LIBC
+# include <byteswap.h>
+# define SWAP(n) bswap_32 (n)
+# else
+# define SWAP(n) \
+ (((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24))
+# endif
+#else
+# define SWAP(n) (n)
+#endif
+
+
+/* This array contains the bytes used to pad the buffer to the next
+ 64-byte boundary. (FIPS 180-2:5.1.1) */
+static const unsigned char fillbuf[64] = { 0x80, 0 /* , 0, 0, ... */ };
+
+
+/* Constants for SHA256 from FIPS 180-2:4.2.2. */
+static const uint32_t K[64] =
+ {
+ 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
+ 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
+ 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
+ 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
+ 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
+ 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
+ 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
+ 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
+ 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
+ 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
+ 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
+ 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
+ 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
+ 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
+ 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
+ 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
+ };
+
+
+/* Process LEN bytes of BUFFER, accumulating context into CTX.
+ It is assumed that LEN % 64 == 0. */
+static void
+sha256_process_block (const void *buffer, size_t len, struct sha256_ctx *ctx)
+{
+ const uint32_t *words = buffer;
+ size_t nwords = len / sizeof (uint32_t);
+ uint32_t a = ctx->H[0];
+ uint32_t b = ctx->H[1];
+ uint32_t c = ctx->H[2];
+ uint32_t d = ctx->H[3];
+ uint32_t e = ctx->H[4];
+ uint32_t f = ctx->H[5];
+ uint32_t g = ctx->H[6];
+ uint32_t h = ctx->H[7];
+
+ /* First increment the byte count. FIPS 180-2 specifies the possible
+ length of the file up to 2^64 bits. Here we only compute the
+ number of bytes. Do a double word increment. */
+ ctx->total[0] += len;
+ if (ctx->total[0] < len)
+ ++ctx->total[1];
+
+ /* Process all bytes in the buffer with 64 bytes in each round of
+ the loop. */
+ while (nwords > 0)
+ {
+ uint32_t W[64];
+ uint32_t a_save = a;
+ uint32_t b_save = b;
+ uint32_t c_save = c;
+ uint32_t d_save = d;
+ uint32_t e_save = e;
+ uint32_t f_save = f;
+ uint32_t g_save = g;
+ uint32_t h_save = h;
+
+ /* Operators defined in FIPS 180-2:4.1.2. */
+#define Ch(x, y, z) ((x & y) ^ (~x & z))
+#define Maj(x, y, z) ((x & y) ^ (x & z) ^ (y & z))
+#define S0(x) (CYCLIC (x, 2) ^ CYCLIC (x, 13) ^ CYCLIC (x, 22))
+#define S1(x) (CYCLIC (x, 6) ^ CYCLIC (x, 11) ^ CYCLIC (x, 25))
+#define R0(x) (CYCLIC (x, 7) ^ CYCLIC (x, 18) ^ (x >> 3))
+#define R1(x) (CYCLIC (x, 17) ^ CYCLIC (x, 19) ^ (x >> 10))
+
+ /* It is unfortunate that C does not provide an operator for
+ cyclic rotation. Hope the C compiler is smart enough. */
+#define CYCLIC(w, s) ((w >> s) | (w << (32 - s)))
+
+ /* Compute the message schedule according to FIPS 180-2:6.2.2 step 2. */
+ for (unsigned int t = 0; t < 16; ++t)
+ {
+ W[t] = SWAP (*words);
+ ++words;
+ }
+ for (unsigned int t = 16; t < 64; ++t)
+ W[t] = R1 (W[t - 2]) + W[t - 7] + R0 (W[t - 15]) + W[t - 16];
+
+ /* The actual computation according to FIPS 180-2:6.2.2 step 3. */
+ for (unsigned int t = 0; t < 64; ++t)
+ {
+ uint32_t T1 = h + S1 (e) + Ch (e, f, g) + K[t] + W[t];
+ uint32_t T2 = S0 (a) + Maj (a, b, c);
+ h = g;
+ g = f;
+ f = e;
+ e = d + T1;
+ d = c;
+ c = b;
+ b = a;
+ a = T1 + T2;
+ }
+
+ /* Add the starting values of the context according to FIPS 180-2:6.2.2
+ step 4. */
+ a += a_save;
+ b += b_save;
+ c += c_save;
+ d += d_save;
+ e += e_save;
+ f += f_save;
+ g += g_save;
+ h += h_save;
+
+ /* Prepare for the next round. */
+ nwords -= 16;
+ }
+
+ /* Put checksum in context given as argument. */
+ ctx->H[0] = a;
+ ctx->H[1] = b;
+ ctx->H[2] = c;
+ ctx->H[3] = d;
+ ctx->H[4] = e;
+ ctx->H[5] = f;
+ ctx->H[6] = g;
+ ctx->H[7] = h;
+}
+
+
+/* Initialize structure containing state of computation.
+ (FIPS 180-2:5.3.2) */
+void
+__sha256_init_ctx (ctx)
+ struct sha256_ctx *ctx;
+{
+ ctx->H[0] = 0x6a09e667;
+ ctx->H[1] = 0xbb67ae85;
+ ctx->H[2] = 0x3c6ef372;
+ ctx->H[3] = 0xa54ff53a;
+ ctx->H[4] = 0x510e527f;
+ ctx->H[5] = 0x9b05688c;
+ ctx->H[6] = 0x1f83d9ab;
+ ctx->H[7] = 0x5be0cd19;
+
+ ctx->total[0] = ctx->total[1] = 0;
+ ctx->buflen = 0;
+}
+
+
+/* Process the remaining bytes in the internal buffer and the usual
+ prolog according to the standard and write the result to RESBUF.
+
+ IMPORTANT: On some systems it is required that RESBUF is correctly
+ aligned for a 32 bits value. */
+void *
+__sha256_finish_ctx (ctx, resbuf)
+ struct sha256_ctx *ctx;
+ void *resbuf;
+{
+ /* Take yet unprocessed bytes into account. */
+ uint32_t bytes = ctx->buflen;
+ size_t pad;
+
+ /* Now count remaining bytes. */
+ ctx->total[0] += bytes;
+ if (ctx->total[0] < bytes)
+ ++ctx->total[1];
+
+ pad = bytes >= 56 ? 64 + 56 - bytes : 56 - bytes;
+ memcpy (&ctx->buffer[bytes], fillbuf, pad);
+
+ /* Put the 64-bit file length in *bits* at the end of the buffer. */
+ *(uint32_t *) &ctx->buffer[bytes + pad + 4] = SWAP (ctx->total[0] << 3);
+ *(uint32_t *) &ctx->buffer[bytes + pad] = SWAP ((ctx->total[1] << 3) |
+ (ctx->total[0] >> 29));
+
+ /* Process last bytes. */
+ sha256_process_block (ctx->buffer, bytes + pad + 8, ctx);
+
+ /* Put result from CTX in first 32 bytes following RESBUF. */
+ for (unsigned int i = 0; i < 8; ++i)
+ ((uint32_t *) resbuf)[i] = SWAP (ctx->H[i]);
+
+ return resbuf;
+}
+
+
+void
+__sha256_process_bytes (buffer, len, ctx)
+ const void *buffer;
+ size_t len;
+ struct sha256_ctx *ctx;
+{
+ /* When we already have some bits in our internal buffer concatenate
+ both inputs first. */
+ if (ctx->buflen != 0)
+ {
+ size_t left_over = ctx->buflen;
+ size_t add = 128 - left_over > len ? len : 128 - left_over;
+
+ memcpy (&ctx->buffer[left_over], buffer, add);
+ ctx->buflen += add;
+
+ if (ctx->buflen > 64)
+ {
+ sha256_process_block (ctx->buffer, ctx->buflen & ~63, ctx);
+
+ ctx->buflen &= 63;
+ /* The regions in the following copy operation cannot overlap. */
+ memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~63],
+ ctx->buflen);
+ }
+
+ buffer = (const char *) buffer + add;
+ len -= add;
+ }
+
+ /* Process available complete blocks. */
+ if (len >= 64)
+ {
+#if !_STRING_ARCH_unaligned
+/* To check alignment gcc has an appropriate operator. Other
+ compilers don't. */
+# if __GNUC__ >= 2
+# define UNALIGNED_P(p) (((uintptr_t) p) % __alignof__ (uint32_t) != 0)
+# else
+# define UNALIGNED_P(p) (((uintptr_t) p) % sizeof (uint32_t) != 0)
+# endif
+ if (UNALIGNED_P (buffer))
+ while (len > 64)
+ {
+ sha256_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx);
+ buffer = (const char *) buffer + 64;
+ len -= 64;
+ }
+ else
+#endif
+ {
+ sha256_process_block (buffer, len & ~63, ctx);
+ buffer = (const char *) buffer + (len & ~63);
+ len &= 63;
+ }
+ }
+
+ /* Move remaining bytes into internal buffer. */
+ if (len > 0)
+ {
+ size_t left_over = ctx->buflen;
+
+ memcpy (&ctx->buffer[left_over], buffer, len);
+ left_over += len;
+ if (left_over >= 64)
+ {
+ sha256_process_block (ctx->buffer, 64, ctx);
+ left_over -= 64;
+ memcpy (ctx->buffer, &ctx->buffer[64], left_over);
+ }
+ ctx->buflen = left_over;
+ }
+}
diff --git a/libc/crypt/sha256.h b/libc/crypt/sha256.h
new file mode 100644
index 000000000..be8b0772c
--- /dev/null
+++ b/libc/crypt/sha256.h
@@ -0,0 +1,58 @@
+/* Declaration of functions and data types used for SHA256 sum computing
+ library functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#ifndef _SHA256_H
+#define _SHA256_H 1
+
+#include <limits.h>
+#include <stdint.h>
+#include <stdio.h>
+
+
+/* Structure to save state of computation between the single steps. */
+struct sha256_ctx
+{
+ uint32_t H[8];
+
+ uint32_t total[2];
+ uint32_t buflen;
+ char buffer[128] __attribute__ ((__aligned__ (__alignof__ (uint32_t))));
+};
+
+/* Initialize structure containing state of computation.
+ (FIPS 180-2: 5.3.2) */
+extern void __sha256_init_ctx (struct sha256_ctx *ctx) __THROW;
+
+/* Starting with the result of former calls of this function (or the
+ initialization function update the context for the next LEN bytes
+ starting at BUFFER.
+ It is NOT required that LEN is a multiple of 64. */
+extern void __sha256_process_bytes (const void *buffer, size_t len,
+ struct sha256_ctx *ctx) __THROW;
+
+/* Process the remaining bytes in the buffer and put result from CTX
+ in first 32 bytes following RESBUF.
+
+ IMPORTANT: On some systems it is required that RESBUF is correctly
+ aligned for a 32 bits value. */
+extern void *__sha256_finish_ctx (struct sha256_ctx *ctx, void *resbuf)
+ __THROW;
+
+#endif /* sha256.h */
diff --git a/libc/crypt/sha256c-test.c b/libc/crypt/sha256c-test.c
new file mode 100644
index 000000000..58aec07da
--- /dev/null
+++ b/libc/crypt/sha256c-test.c
@@ -0,0 +1,61 @@
+#include <crypt.h>
+#include <stdio.h>
+#include <string.h>
+
+static const struct
+{
+ const char *salt;
+ const char *input;
+ const char *expected;
+} tests[] =
+{
+ { "$5$saltstring", "Hello world!",
+ "$5$saltstring$5B8vYYiY.CVt1RlTTf8KbXBH3hsxY/GNooZaBBGWEc5" },
+ { "$5$rounds=10000$saltstringsaltstring", "Hello world!",
+ "$5$rounds=10000$saltstringsaltst$3xv.VbSHBb41AL9AvLeujZkZRBAwqFMz2."
+ "opqey6IcA" },
+ { "$5$rounds=5000$toolongsaltstring", "This is just a test",
+ "$5$rounds=5000$toolongsaltstrin$Un/5jzAHMgOGZ5.mWJpuVolil07guHPvOW8"
+ "mGRcvxa5" },
+ { "$5$rounds=1400$anotherlongsaltstring",
+ "a very much longer text to encrypt. This one even stretches over more"
+ "than one line.",
+ "$5$rounds=1400$anotherlongsalts$Rx.j8H.h8HjEDGomFU8bDkXm3XIUnzyxf12"
+ "oP84Bnq1" },
+ { "$5$rounds=77777$short",
+ "we have a short salt string but not a short password",
+ "$5$rounds=77777$short$JiO1O3ZpDAxGJeaDIuqCoEFysAe1mZNJRs3pw0KQRd/" },
+ { "$5$rounds=123456$asaltof16chars..", "a short string",
+ "$5$rounds=123456$asaltof16chars..$gP3VQ/6X7UUEW3HkBn2w1/Ptq2jxPyzV/"
+ "cZKmF/wJvD" },
+ { "$5$rounds=10$roundstoolow", "the minimum number is still observed",
+ "$5$rounds=1000$roundstoolow$yfvwcWrQ8l/K0DAWyuPMDNHpIVlTQebY9l/gL97"
+ "2bIC" },
+};
+#define ntests (sizeof (tests) / sizeof (tests[0]))
+
+
+
+static int
+do_test (void)
+{
+ int result = 0;
+ int i;
+
+ for (i = 0; i < ntests; ++i)
+ {
+ char *cp = crypt (tests[i].input, tests[i].salt);
+
+ if (strcmp (cp, tests[i].expected) != 0)
+ {
+ printf ("test %d: expected \"%s\", got \"%s\"\n",
+ i, tests[i].expected, cp);
+ result = 1;
+ }
+ }
+
+ return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/libc/crypt/sha256test.c b/libc/crypt/sha256test.c
new file mode 100644
index 000000000..b13a3c511
--- /dev/null
+++ b/libc/crypt/sha256test.c
@@ -0,0 +1,92 @@
+#include <string.h>
+#include "sha256.h"
+
+static const struct
+{
+ const char *input;
+ const char result[32];
+} tests[] =
+ {
+ /* Test vectors from FIPS 180-2: appendix B.1. */
+ { "abc",
+ "\xba\x78\x16\xbf\x8f\x01\xcf\xea\x41\x41\x40\xde\x5d\xae\x22\x23"
+ "\xb0\x03\x61\xa3\x96\x17\x7a\x9c\xb4\x10\xff\x61\xf2\x00\x15\xad" },
+ /* Test vectors from FIPS 180-2: appendix B.2. */
+ { "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
+ "\x24\x8d\x6a\x61\xd2\x06\x38\xb8\xe5\xc0\x26\x93\x0c\x3e\x60\x39"
+ "\xa3\x3c\xe4\x59\x64\xff\x21\x67\xf6\xec\xed\xd4\x19\xdb\x06\xc1" },
+ /* Test vectors from the NESSIE project. */
+ { "",
+ "\xe3\xb0\xc4\x42\x98\xfc\x1c\x14\x9a\xfb\xf4\xc8\x99\x6f\xb9\x24"
+ "\x27\xae\x41\xe4\x64\x9b\x93\x4c\xa4\x95\x99\x1b\x78\x52\xb8\x55" },
+ { "a",
+ "\xca\x97\x81\x12\xca\x1b\xbd\xca\xfa\xc2\x31\xb3\x9a\x23\xdc\x4d"
+ "\xa7\x86\xef\xf8\x14\x7c\x4e\x72\xb9\x80\x77\x85\xaf\xee\x48\xbb" },
+ { "message digest",
+ "\xf7\x84\x6f\x55\xcf\x23\xe1\x4e\xeb\xea\xb5\xb4\xe1\x55\x0c\xad"
+ "\x5b\x50\x9e\x33\x48\xfb\xc4\xef\xa3\xa1\x41\x3d\x39\x3c\xb6\x50" },
+ { "abcdefghijklmnopqrstuvwxyz",
+ "\x71\xc4\x80\xdf\x93\xd6\xae\x2f\x1e\xfa\xd1\x44\x7c\x66\xc9\x52"
+ "\x5e\x31\x62\x18\xcf\x51\xfc\x8d\x9e\xd8\x32\xf2\xda\xf1\x8b\x73" },
+ { "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
+ "\x24\x8d\x6a\x61\xd2\x06\x38\xb8\xe5\xc0\x26\x93\x0c\x3e\x60\x39"
+ "\xa3\x3c\xe4\x59\x64\xff\x21\x67\xf6\xec\xed\xd4\x19\xdb\x06\xc1" },
+ { "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
+ "\xdb\x4b\xfc\xbd\x4d\xa0\xcd\x85\xa6\x0c\x3c\x37\xd3\xfb\xd8\x80"
+ "\x5c\x77\xf1\x5f\xc6\xb1\xfd\xfe\x61\x4e\xe0\xa7\xc8\xfd\xb4\xc0" },
+ { "123456789012345678901234567890123456789012345678901234567890"
+ "12345678901234567890",
+ "\xf3\x71\xbc\x4a\x31\x1f\x2b\x00\x9e\xef\x95\x2d\xd8\x3c\xa8\x0e"
+ "\x2b\x60\x02\x6c\x8e\x93\x55\x92\xd0\xf9\xc3\x08\x45\x3c\x81\x3e" }
+ };
+
+
+int
+main (void)
+{
+ struct sha256_ctx ctx;
+ char sum[32];
+ int result = 0;
+ int cnt;
+
+ for (cnt = 0; cnt < (int) (sizeof (tests) / sizeof (tests[0])); ++cnt)
+ {
+ __sha256_init_ctx (&ctx);
+ __sha256_process_bytes (tests[cnt].input, strlen (tests[cnt].input),
+ &ctx);
+ __sha256_finish_ctx (&ctx, sum);
+ if (memcmp (tests[cnt].result, sum, 32) != 0)
+ {
+ printf ("test %d run %d failed\n", cnt, 1);
+ result = 1;
+ }
+
+ __sha256_init_ctx (&ctx);
+ for (int i = 0; tests[cnt].input[i] != '\0'; ++i)
+ __sha256_process_bytes (&tests[cnt].input[i], 1, &ctx);
+ __sha256_finish_ctx (&ctx, sum);
+ if (memcmp (tests[cnt].result, sum, 32) != 0)
+ {
+ printf ("test %d run %d failed\n", cnt, 2);
+ result = 1;
+ }
+ }
+
+ /* Test vector from FIPS 180-2: appendix B.3. */
+ char buf[1000];
+ memset (buf, 'a', sizeof (buf));
+ __sha256_init_ctx (&ctx);
+ for (int i = 0; i < 1000; ++i)
+ __sha256_process_bytes (buf, sizeof (buf), &ctx);
+ __sha256_finish_ctx (&ctx, sum);
+ static const char expected[32] =
+ "\xcd\xc7\x6e\x5c\x99\x14\xfb\x92\x81\xa1\xc7\xe2\x84\xd7\x3e\x67"
+ "\xf1\x80\x9a\x48\xa4\x97\x20\x0e\x04\x6d\x39\xcc\xc7\x11\x2c\xd0";
+ if (memcmp (expected, sum, 32) != 0)
+ {
+ printf ("test %d failed\n", cnt);
+ result = 1;
+ }
+
+ return result;
+}
diff --git a/libc/crypt/sha512-crypt.c b/libc/crypt/sha512-crypt.c
new file mode 100644
index 000000000..4b8949f5f
--- /dev/null
+++ b/libc/crypt/sha512-crypt.c
@@ -0,0 +1,357 @@
+/* One way encryption based on SHA512 sum.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2007.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#include <assert.h>
+#include <errno.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/param.h>
+
+#include "sha512.h"
+
+
+/* Define our magic string to mark salt for SHA512 "encryption"
+ replacement. */
+static const char sha512_salt_prefix[] = "$6$";
+
+/* Prefix for optional rounds specification. */
+static const char sha512_rounds_prefix[] = "rounds=";
+
+/* Maximum salt string length. */
+#define SALT_LEN_MAX 16
+/* Default number of rounds if not explicitly specified. */
+#define ROUNDS_DEFAULT 5000
+/* Minimum number of rounds. */
+#define ROUNDS_MIN 1000
+/* Maximum number of rounds. */
+#define ROUNDS_MAX 999999999
+
+/* Table with characters for base64 transformation. */
+static const char b64t[64] =
+"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
+
+
+/* Prototypes for local functions. */
+extern char *__sha512_crypt_r (const char *key, const char *salt,
+ char *buffer, int buflen);
+extern char *__sha512_crypt (const char *key, const char *salt);
+
+
+char *
+__sha512_crypt_r (key, salt, buffer, buflen)
+ const char *key;
+ const char *salt;
+ char *buffer;
+ int buflen;
+{
+ unsigned char alt_result[64]
+ __attribute__ ((__aligned__ (__alignof__ (uint64_t))));
+ unsigned char temp_result[64]
+ __attribute__ ((__aligned__ (__alignof__ (uint64_t))));
+ struct sha512_ctx ctx;
+ struct sha512_ctx alt_ctx;
+ size_t salt_len;
+ size_t key_len;
+ size_t cnt;
+ char *cp;
+ char *copied_key = NULL;
+ char *copied_salt = NULL;
+ char *p_bytes;
+ char *s_bytes;
+ /* Default number of rounds. */
+ size_t rounds = ROUNDS_DEFAULT;
+ bool rounds_custom = false;
+
+ /* Find beginning of salt string. The prefix should normally always
+ be present. Just in case it is not. */
+ if (strncmp (sha512_salt_prefix, salt, sizeof (sha512_salt_prefix) - 1) == 0)
+ /* Skip salt prefix. */
+ salt += sizeof (sha512_salt_prefix) - 1;
+
+ if (strncmp (salt, sha512_rounds_prefix, sizeof (sha512_rounds_prefix) - 1)
+ == 0)
+ {
+ const char *num = salt + sizeof (sha512_rounds_prefix) - 1;
+ char *endp;
+ unsigned long int srounds = strtoul (num, &endp, 10);
+ if (*endp == '$')
+ {
+ salt = endp + 1;
+ rounds = MAX (ROUNDS_MIN, MIN (srounds, ROUNDS_MAX));
+ rounds_custom = true;
+ }
+ }
+
+ salt_len = MIN (strcspn (salt, "$"), SALT_LEN_MAX);
+ key_len = strlen (key);
+
+ if ((key - (char *) 0) % __alignof__ (uint64_t) != 0)
+ {
+ char *tmp = (char *) alloca (key_len + __alignof__ (uint64_t));
+ key = copied_key =
+ memcpy (tmp + __alignof__ (uint64_t)
+ - (tmp - (char *) 0) % __alignof__ (uint64_t),
+ key, key_len);
+ assert ((key - (char *) 0) % __alignof__ (uint64_t) == 0);
+ }
+
+ if ((salt - (char *) 0) % __alignof__ (uint64_t) != 0)
+ {
+ char *tmp = (char *) alloca (salt_len + __alignof__ (uint64_t));
+ salt = copied_salt =
+ memcpy (tmp + __alignof__ (uint64_t)
+ - (tmp - (char *) 0) % __alignof__ (uint64_t),
+ salt, salt_len);
+ assert ((salt - (char *) 0) % __alignof__ (uint64_t) == 0);
+ }
+
+ /* Prepare for the real work. */
+ __sha512_init_ctx (&ctx);
+
+ /* Add the key string. */
+ __sha512_process_bytes (key, key_len, &ctx);
+
+ /* The last part is the salt string. This must be at most 8
+ characters and it ends at the first `$' character (for
+ compatibility with existing implementations). */
+ __sha512_process_bytes (salt, salt_len, &ctx);
+
+
+ /* Compute alternate SHA512 sum with input KEY, SALT, and KEY. The
+ final result will be added to the first context. */
+ __sha512_init_ctx (&alt_ctx);
+
+ /* Add key. */
+ __sha512_process_bytes (key, key_len, &alt_ctx);
+
+ /* Add salt. */
+ __sha512_process_bytes (salt, salt_len, &alt_ctx);
+
+ /* Add key again. */
+ __sha512_process_bytes (key, key_len, &alt_ctx);
+
+ /* Now get result of this (64 bytes) and add it to the other
+ context. */
+ __sha512_finish_ctx (&alt_ctx, alt_result);
+
+ /* Add for any character in the key one byte of the alternate sum. */
+ for (cnt = key_len; cnt > 64; cnt -= 64)
+ __sha512_process_bytes (alt_result, 64, &ctx);
+ __sha512_process_bytes (alt_result, cnt, &ctx);
+
+ /* Take the binary representation of the length of the key and for every
+ 1 add the alternate sum, for every 0 the key. */
+ for (cnt = key_len; cnt > 0; cnt >>= 1)
+ if ((cnt & 1) != 0)
+ __sha512_process_bytes (alt_result, 64, &ctx);
+ else
+ __sha512_process_bytes (key, key_len, &ctx);
+
+ /* Create intermediate result. */
+ __sha512_finish_ctx (&ctx, alt_result);
+
+ /* Start computation of P byte sequence. */
+ __sha512_init_ctx (&alt_ctx);
+
+ /* For every character in the password add the entire password. */
+ for (cnt = 0; cnt < key_len; ++cnt)
+ __sha512_process_bytes (key, key_len, &alt_ctx);
+
+ /* Finish the digest. */
+ __sha512_finish_ctx (&alt_ctx, temp_result);
+
+ /* Create byte sequence P. */
+ cp = p_bytes = alloca (key_len);
+ for (cnt = key_len; cnt >= 64; cnt -= 64)
+ cp = mempcpy (cp, temp_result, 64);
+ memcpy (cp, temp_result, cnt);
+
+ /* Start computation of S byte sequence. */
+ __sha512_init_ctx (&alt_ctx);
+
+ /* For every character in the password add the entire password. */
+ for (cnt = 0; cnt < 16 + alt_result[0]; ++cnt)
+ __sha512_process_bytes (salt, salt_len, &alt_ctx);
+
+ /* Finish the digest. */
+ __sha512_finish_ctx (&alt_ctx, temp_result);
+
+ /* Create byte sequence S. */
+ cp = s_bytes = alloca (salt_len);
+ for (cnt = salt_len; cnt >= 64; cnt -= 64)
+ cp = mempcpy (cp, temp_result, 64);
+ memcpy (cp, temp_result, cnt);
+
+ /* Repeatedly run the collected hash value through SHA512 to burn
+ CPU cycles. */
+ for (cnt = 0; cnt < rounds; ++cnt)
+ {
+ /* New context. */
+ __sha512_init_ctx (&ctx);
+
+ /* Add key or last result. */
+ if ((cnt & 1) != 0)
+ __sha512_process_bytes (p_bytes, key_len, &ctx);
+ else
+ __sha512_process_bytes (alt_result, 64, &ctx);
+
+ /* Add salt for numbers not divisible by 3. */
+ if (cnt % 3 != 0)
+ __sha512_process_bytes (s_bytes, salt_len, &ctx);
+
+ /* Add key for numbers not divisible by 7. */
+ if (cnt % 7 != 0)
+ __sha512_process_bytes (p_bytes, key_len, &ctx);
+
+ /* Add key or last result. */
+ if ((cnt & 1) != 0)
+ __sha512_process_bytes (alt_result, 64, &ctx);
+ else
+ __sha512_process_bytes (p_bytes, key_len, &ctx);
+
+ /* Create intermediate result. */
+ __sha512_finish_ctx (&ctx, alt_result);
+ }
+
+ /* Now we can construct the result string. It consists of three
+ parts. */
+ cp = __stpncpy (buffer, sha512_salt_prefix, MAX (0, buflen));
+ buflen -= sizeof (sha512_salt_prefix) - 1;
+
+ if (rounds_custom)
+ {
+ int n = snprintf (cp, MAX (0, buflen), "%s%zu$",
+ sha512_rounds_prefix, rounds);
+ cp += n;
+ buflen -= n;
+ }
+
+ cp = __stpncpy (cp, salt, MIN ((size_t) MAX (0, buflen), salt_len));
+ buflen -= MIN ((size_t) MAX (0, buflen), salt_len);
+
+ if (buflen > 0)
+ {
+ *cp++ = '$';
+ --buflen;
+ }
+
+#define b64_from_24bit(B2, B1, B0, N) \
+ do { \
+ unsigned int w = ((B2) << 16) | ((B1) << 8) | (B0); \
+ int n = (N); \
+ while (n-- > 0 && buflen > 0) \
+ { \
+ *cp++ = b64t[w & 0x3f]; \
+ --buflen; \
+ w >>= 6; \
+ } \
+ } while (0)
+
+ b64_from_24bit (alt_result[0], alt_result[21], alt_result[42], 4);
+ b64_from_24bit (alt_result[22], alt_result[43], alt_result[1], 4);
+ b64_from_24bit (alt_result[44], alt_result[2], alt_result[23], 4);
+ b64_from_24bit (alt_result[3], alt_result[24], alt_result[45], 4);
+ b64_from_24bit (alt_result[25], alt_result[46], alt_result[4], 4);
+ b64_from_24bit (alt_result[47], alt_result[5], alt_result[26], 4);
+ b64_from_24bit (alt_result[6], alt_result[27], alt_result[48], 4);
+ b64_from_24bit (alt_result[28], alt_result[49], alt_result[7], 4);
+ b64_from_24bit (alt_result[50], alt_result[8], alt_result[29], 4);
+ b64_from_24bit (alt_result[9], alt_result[30], alt_result[51], 4);
+ b64_from_24bit (alt_result[31], alt_result[52], alt_result[10], 4);
+ b64_from_24bit (alt_result[53], alt_result[11], alt_result[32], 4);
+ b64_from_24bit (alt_result[12], alt_result[33], alt_result[54], 4);
+ b64_from_24bit (alt_result[34], alt_result[55], alt_result[13], 4);
+ b64_from_24bit (alt_result[56], alt_result[14], alt_result[35], 4);
+ b64_from_24bit (alt_result[15], alt_result[36], alt_result[57], 4);
+ b64_from_24bit (alt_result[37], alt_result[58], alt_result[16], 4);
+ b64_from_24bit (alt_result[59], alt_result[17], alt_result[38], 4);
+ b64_from_24bit (alt_result[18], alt_result[39], alt_result[60], 4);
+ b64_from_24bit (alt_result[40], alt_result[61], alt_result[19], 4);
+ b64_from_24bit (alt_result[62], alt_result[20], alt_result[41], 4);
+ b64_from_24bit (0, 0, alt_result[63], 2);
+
+ if (buflen <= 0)
+ {
+ __set_errno (ERANGE);
+ buffer = NULL;
+ }
+ else
+ *cp = '\0'; /* Terminate the string. */
+
+ /* Clear the buffer for the intermediate result so that people
+ attaching to processes or reading core dumps cannot get any
+ information. We do it in this way to clear correct_words[]
+ inside the SHA512 implementation as well. */
+ __sha512_init_ctx (&ctx);
+ __sha512_finish_ctx (&ctx, alt_result);
+ memset (temp_result, '\0', sizeof (temp_result));
+ memset (p_bytes, '\0', key_len);
+ memset (s_bytes, '\0', salt_len);
+ memset (&ctx, '\0', sizeof (ctx));
+ memset (&alt_ctx, '\0', sizeof (alt_ctx));
+ if (copied_key != NULL)
+ memset (copied_key, '\0', key_len);
+ if (copied_salt != NULL)
+ memset (copied_salt, '\0', salt_len);
+
+ return buffer;
+}
+
+#ifndef _LIBC
+# define libc_freeres_ptr(decl) decl
+#endif
+libc_freeres_ptr (static char *buffer);
+
+/* This entry point is equivalent to the `crypt' function in Unix
+ libcs. */
+char *
+__sha512_crypt (const char *key, const char *salt)
+{
+ /* We don't want to have an arbitrary limit in the size of the
+ password. We can compute an upper bound for the size of the
+ result in advance and so we can prepare the buffer we pass to
+ `sha512_crypt_r'. */
+ static int buflen;
+ int needed = (sizeof (sha512_salt_prefix) - 1
+ + sizeof (sha512_rounds_prefix) + 9 + 1
+ + strlen (salt) + 1 + 86 + 1);
+
+ if (buflen < needed)
+ {
+ char *new_buffer = (char *) realloc (buffer, needed);
+ if (new_buffer == NULL)
+ return NULL;
+
+ buffer = new_buffer;
+ buflen = needed;
+ }
+
+ return __sha512_crypt_r (key, salt, buffer, buflen);
+}
+
+#ifndef _LIBC
+static void
+__attribute__ ((__destructor__))
+free_mem (void)
+{
+ free (buffer);
+}
+#endif
diff --git a/libc/crypt/sha512.c b/libc/crypt/sha512.c
new file mode 100644
index 000000000..02127476f
--- /dev/null
+++ b/libc/crypt/sha512.c
@@ -0,0 +1,336 @@
+/* Functions to compute SHA512 message digest of files or memory blocks.
+ according to the definition of SHA512 in FIPS 180-2.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+/* Written by Ulrich Drepper <drepper@redhat.com>, 2007. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <endian.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+
+#include "sha512.h"
+
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+# ifdef _LIBC
+# include <byteswap.h>
+# define SWAP(n) bswap_64 (n)
+# else
+# define SWAP(n) \
+ (((n) << 56) \
+ | (((n) & 0xff00) << 40) \
+ | (((n) & 0xff0000) << 24) \
+ | (((n) & 0xff000000) << 8) \
+ | (((n) >> 8) & 0xff000000) \
+ | (((n) >> 24) & 0xff0000) \
+ | (((n) >> 40) & 0xff00) \
+ | ((n) >> 56))
+# endif
+#else
+# define SWAP(n) (n)
+#endif
+
+
+/* This array contains the bytes used to pad the buffer to the next
+ 64-byte boundary. (FIPS 180-2:5.1.2) */
+static const unsigned char fillbuf[128] = { 0x80, 0 /* , 0, 0, ... */ };
+
+
+/* Constants for SHA512 from FIPS 180-2:4.2.3. */
+static const uint64_t K[80] =
+ {
+ UINT64_C (0x428a2f98d728ae22), UINT64_C (0x7137449123ef65cd),
+ UINT64_C (0xb5c0fbcfec4d3b2f), UINT64_C (0xe9b5dba58189dbbc),
+ UINT64_C (0x3956c25bf348b538), UINT64_C (0x59f111f1b605d019),
+ UINT64_C (0x923f82a4af194f9b), UINT64_C (0xab1c5ed5da6d8118),
+ UINT64_C (0xd807aa98a3030242), UINT64_C (0x12835b0145706fbe),
+ UINT64_C (0x243185be4ee4b28c), UINT64_C (0x550c7dc3d5ffb4e2),
+ UINT64_C (0x72be5d74f27b896f), UINT64_C (0x80deb1fe3b1696b1),
+ UINT64_C (0x9bdc06a725c71235), UINT64_C (0xc19bf174cf692694),
+ UINT64_C (0xe49b69c19ef14ad2), UINT64_C (0xefbe4786384f25e3),
+ UINT64_C (0x0fc19dc68b8cd5b5), UINT64_C (0x240ca1cc77ac9c65),
+ UINT64_C (0x2de92c6f592b0275), UINT64_C (0x4a7484aa6ea6e483),
+ UINT64_C (0x5cb0a9dcbd41fbd4), UINT64_C (0x76f988da831153b5),
+ UINT64_C (0x983e5152ee66dfab), UINT64_C (0xa831c66d2db43210),
+ UINT64_C (0xb00327c898fb213f), UINT64_C (0xbf597fc7beef0ee4),
+ UINT64_C (0xc6e00bf33da88fc2), UINT64_C (0xd5a79147930aa725),
+ UINT64_C (0x06ca6351e003826f), UINT64_C (0x142929670a0e6e70),
+ UINT64_C (0x27b70a8546d22ffc), UINT64_C (0x2e1b21385c26c926),
+ UINT64_C (0x4d2c6dfc5ac42aed), UINT64_C (0x53380d139d95b3df),
+ UINT64_C (0x650a73548baf63de), UINT64_C (0x766a0abb3c77b2a8),
+ UINT64_C (0x81c2c92e47edaee6), UINT64_C (0x92722c851482353b),
+ UINT64_C (0xa2bfe8a14cf10364), UINT64_C (0xa81a664bbc423001),
+ UINT64_C (0xc24b8b70d0f89791), UINT64_C (0xc76c51a30654be30),
+ UINT64_C (0xd192e819d6ef5218), UINT64_C (0xd69906245565a910),
+ UINT64_C (0xf40e35855771202a), UINT64_C (0x106aa07032bbd1b8),
+ UINT64_C (0x19a4c116b8d2d0c8), UINT64_C (0x1e376c085141ab53),
+ UINT64_C (0x2748774cdf8eeb99), UINT64_C (0x34b0bcb5e19b48a8),
+ UINT64_C (0x391c0cb3c5c95a63), UINT64_C (0x4ed8aa4ae3418acb),
+ UINT64_C (0x5b9cca4f7763e373), UINT64_C (0x682e6ff3d6b2b8a3),
+ UINT64_C (0x748f82ee5defb2fc), UINT64_C (0x78a5636f43172f60),
+ UINT64_C (0x84c87814a1f0ab72), UINT64_C (0x8cc702081a6439ec),
+ UINT64_C (0x90befffa23631e28), UINT64_C (0xa4506cebde82bde9),
+ UINT64_C (0xbef9a3f7b2c67915), UINT64_C (0xc67178f2e372532b),
+ UINT64_C (0xca273eceea26619c), UINT64_C (0xd186b8c721c0c207),
+ UINT64_C (0xeada7dd6cde0eb1e), UINT64_C (0xf57d4f7fee6ed178),
+ UINT64_C (0x06f067aa72176fba), UINT64_C (0x0a637dc5a2c898a6),
+ UINT64_C (0x113f9804bef90dae), UINT64_C (0x1b710b35131c471b),
+ UINT64_C (0x28db77f523047d84), UINT64_C (0x32caab7b40c72493),
+ UINT64_C (0x3c9ebe0a15c9bebc), UINT64_C (0x431d67c49c100d4c),
+ UINT64_C (0x4cc5d4becb3e42b6), UINT64_C (0x597f299cfc657e2a),
+ UINT64_C (0x5fcb6fab3ad6faec), UINT64_C (0x6c44198c4a475817)
+ };
+
+
+/* Process LEN bytes of BUFFER, accumulating context into CTX.
+ It is assumed that LEN % 128 == 0. */
+static void
+sha512_process_block (const void *buffer, size_t len, struct sha512_ctx *ctx)
+{
+ const uint64_t *words = buffer;
+ size_t nwords = len / sizeof (uint64_t);
+ uint64_t a = ctx->H[0];
+ uint64_t b = ctx->H[1];
+ uint64_t c = ctx->H[2];
+ uint64_t d = ctx->H[3];
+ uint64_t e = ctx->H[4];
+ uint64_t f = ctx->H[5];
+ uint64_t g = ctx->H[6];
+ uint64_t h = ctx->H[7];
+
+ /* First increment the byte count. FIPS 180-2 specifies the possible
+ length of the file up to 2^128 bits. Here we only compute the
+ number of bytes. Do a double word increment. */
+ ctx->total[0] += len;
+ if (ctx->total[0] < len)
+ ++ctx->total[1];
+
+ /* Process all bytes in the buffer with 128 bytes in each round of
+ the loop. */
+ while (nwords > 0)
+ {
+ uint64_t W[80];
+ uint64_t a_save = a;
+ uint64_t b_save = b;
+ uint64_t c_save = c;
+ uint64_t d_save = d;
+ uint64_t e_save = e;
+ uint64_t f_save = f;
+ uint64_t g_save = g;
+ uint64_t h_save = h;
+
+ /* Operators defined in FIPS 180-2:4.1.2. */
+#define Ch(x, y, z) ((x & y) ^ (~x & z))
+#define Maj(x, y, z) ((x & y) ^ (x & z) ^ (y & z))
+#define S0(x) (CYCLIC (x, 28) ^ CYCLIC (x, 34) ^ CYCLIC (x, 39))
+#define S1(x) (CYCLIC (x, 14) ^ CYCLIC (x, 18) ^ CYCLIC (x, 41))
+#define R0(x) (CYCLIC (x, 1) ^ CYCLIC (x, 8) ^ (x >> 7))
+#define R1(x) (CYCLIC (x, 19) ^ CYCLIC (x, 61) ^ (x >> 6))
+
+ /* It is unfortunate that C does not provide an operator for
+ cyclic rotation. Hope the C compiler is smart enough. */
+#define CYCLIC(w, s) ((w >> s) | (w << (64 - s)))
+
+ /* Compute the message schedule according to FIPS 180-2:6.3.2 step 2. */
+ for (unsigned int t = 0; t < 16; ++t)
+ {
+ W[t] = SWAP (*words);
+ ++words;
+ }
+ for (unsigned int t = 16; t < 80; ++t)
+ W[t] = R1 (W[t - 2]) + W[t - 7] + R0 (W[t - 15]) + W[t - 16];
+
+ /* The actual computation according to FIPS 180-2:6.3.2 step 3. */
+ for (unsigned int t = 0; t < 80; ++t)
+ {
+ uint64_t T1 = h + S1 (e) + Ch (e, f, g) + K[t] + W[t];
+ uint64_t T2 = S0 (a) + Maj (a, b, c);
+ h = g;
+ g = f;
+ f = e;
+ e = d + T1;
+ d = c;
+ c = b;
+ b = a;
+ a = T1 + T2;
+ }
+
+ /* Add the starting values of the context according to FIPS 180-2:6.3.2
+ step 4. */
+ a += a_save;
+ b += b_save;
+ c += c_save;
+ d += d_save;
+ e += e_save;
+ f += f_save;
+ g += g_save;
+ h += h_save;
+
+ /* Prepare for the next round. */
+ nwords -= 16;
+ }
+
+ /* Put checksum in context given as argument. */
+ ctx->H[0] = a;
+ ctx->H[1] = b;
+ ctx->H[2] = c;
+ ctx->H[3] = d;
+ ctx->H[4] = e;
+ ctx->H[5] = f;
+ ctx->H[6] = g;
+ ctx->H[7] = h;
+}
+
+
+/* Initialize structure containing state of computation.
+ (FIPS 180-2:5.3.3) */
+void
+__sha512_init_ctx (ctx)
+ struct sha512_ctx *ctx;
+{
+ ctx->H[0] = UINT64_C (0x6a09e667f3bcc908);
+ ctx->H[1] = UINT64_C (0xbb67ae8584caa73b);
+ ctx->H[2] = UINT64_C (0x3c6ef372fe94f82b);
+ ctx->H[3] = UINT64_C (0xa54ff53a5f1d36f1);
+ ctx->H[4] = UINT64_C (0x510e527fade682d1);
+ ctx->H[5] = UINT64_C (0x9b05688c2b3e6c1f);
+ ctx->H[6] = UINT64_C (0x1f83d9abfb41bd6b);
+ ctx->H[7] = UINT64_C (0x5be0cd19137e2179);
+
+ ctx->total[0] = ctx->total[1] = 0;
+ ctx->buflen = 0;
+}
+
+
+/* Process the remaining bytes in the internal buffer and the usual
+ prolog according to the standard and write the result to RESBUF.
+
+ IMPORTANT: On some systems it is required that RESBUF is correctly
+ aligned for a 32 bits value. */
+void *
+__sha512_finish_ctx (ctx, resbuf)
+ struct sha512_ctx *ctx;
+ void *resbuf;
+{
+ /* Take yet unprocessed bytes into account. */
+ uint64_t bytes = ctx->buflen;
+ size_t pad;
+
+ /* Now count remaining bytes. */
+ ctx->total[0] += bytes;
+ if (ctx->total[0] < bytes)
+ ++ctx->total[1];
+
+ pad = bytes >= 112 ? 128 + 112 - bytes : 112 - bytes;
+ memcpy (&ctx->buffer[bytes], fillbuf, pad);
+
+ /* Put the 128-bit file length in *bits* at the end of the buffer. */
+ *(uint64_t *) &ctx->buffer[bytes + pad + 8] = SWAP (ctx->total[0] << 3);
+ *(uint64_t *) &ctx->buffer[bytes + pad] = SWAP ((ctx->total[1] << 3) |
+ (ctx->total[0] >> 61));
+
+ /* Process last bytes. */
+ sha512_process_block (ctx->buffer, bytes + pad + 16, ctx);
+
+ /* Put result from CTX in first 64 bytes following RESBUF. */
+ for (unsigned int i = 0; i < 8; ++i)
+ ((uint64_t *) resbuf)[i] = SWAP (ctx->H[i]);
+
+ return resbuf;
+}
+
+
+void
+__sha512_process_bytes (buffer, len, ctx)
+ const void *buffer;
+ size_t len;
+ struct sha512_ctx *ctx;
+{
+ /* When we already have some bits in our internal buffer concatenate
+ both inputs first. */
+ if (ctx->buflen != 0)
+ {
+ size_t left_over = ctx->buflen;
+ size_t add = 256 - left_over > len ? len : 256 - left_over;
+
+ memcpy (&ctx->buffer[left_over], buffer, add);
+ ctx->buflen += add;
+
+ if (ctx->buflen > 128)
+ {
+ sha512_process_block (ctx->buffer, ctx->buflen & ~127, ctx);
+
+ ctx->buflen &= 127;
+ /* The regions in the following copy operation cannot overlap. */
+ memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~127],
+ ctx->buflen);
+ }
+
+ buffer = (const char *) buffer + add;
+ len -= add;
+ }
+
+ /* Process available complete blocks. */
+ if (len >= 128)
+ {
+#if !_STRING_ARCH_unaligned
+/* To check alignment gcc has an appropriate operator. Other
+ compilers don't. */
+# if __GNUC__ >= 2
+# define UNALIGNED_P(p) (((uintptr_t) p) % __alignof__ (uint64_t) != 0)
+# else
+# define UNALIGNED_P(p) (((uintptr_t) p) % sizeof (uint64_t) != 0)
+# endif
+ if (UNALIGNED_P (buffer))
+ while (len > 128)
+ {
+ sha512_process_block (memcpy (ctx->buffer, buffer, 128), 128,
+ ctx);
+ buffer = (const char *) buffer + 128;
+ len -= 128;
+ }
+ else
+#endif
+ {
+ sha512_process_block (buffer, len & ~127, ctx);
+ buffer = (const char *) buffer + (len & ~127);
+ len &= 127;
+ }
+ }
+
+ /* Move remaining bytes into internal buffer. */
+ if (len > 0)
+ {
+ size_t left_over = ctx->buflen;
+
+ memcpy (&ctx->buffer[left_over], buffer, len);
+ left_over += len;
+ if (left_over >= 128)
+ {
+ sha512_process_block (ctx->buffer, 128, ctx);
+ left_over -= 128;
+ memcpy (ctx->buffer, &ctx->buffer[128], left_over);
+ }
+ ctx->buflen = left_over;
+ }
+}
diff --git a/libc/crypt/sha512.h b/libc/crypt/sha512.h
new file mode 100644
index 000000000..9952c5f86
--- /dev/null
+++ b/libc/crypt/sha512.h
@@ -0,0 +1,58 @@
+/* Declaration of functions and data types used for SHA512 sum computing
+ library functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#ifndef _SHA512_H
+#define _SHA512_H 1
+
+#include <limits.h>
+#include <stdint.h>
+#include <stdio.h>
+
+
+/* Structure to save state of computation between the single steps. */
+struct sha512_ctx
+{
+ uint64_t H[8];
+
+ uint64_t total[2];
+ uint64_t buflen;
+ char buffer[256] __attribute__ ((__aligned__ (__alignof__ (uint64_t))));
+};
+
+/* Initialize structure containing state of computation.
+ (FIPS 180-2: 5.3.3) */
+extern void __sha512_init_ctx (struct sha512_ctx *ctx) __THROW;
+
+/* Starting with the result of former calls of this function (or the
+ initialization function update the context for the next LEN bytes
+ starting at BUFFER.
+ It is NOT required that LEN is a multiple of 128. */
+extern void __sha512_process_bytes (const void *buffer, size_t len,
+ struct sha512_ctx *ctx) __THROW;
+
+/* Process the remaining bytes in the buffer and put result from CTX
+ in first 64 bytes following RESBUF.
+
+ IMPORTANT: On some systems it is required that RESBUF is correctly
+ aligned for a 64 bits value. */
+extern void *__sha512_finish_ctx (struct sha512_ctx *ctx, void *resbuf)
+ __THROW;
+
+#endif /* sha512.h */
diff --git a/libc/crypt/sha512c-test.c b/libc/crypt/sha512c-test.c
new file mode 100644
index 000000000..4c888feb4
--- /dev/null
+++ b/libc/crypt/sha512c-test.c
@@ -0,0 +1,62 @@
+#include <crypt.h>
+#include <stdio.h>
+#include <string.h>
+
+static const struct
+{
+ const char *salt;
+ const char *input;
+ const char *expected;
+} tests[] =
+{
+ { "$6$saltstring", "Hello world!",
+ "$6$saltstring$svn8UoSVapNtMuq1ukKS4tPQd8iKwSMHWjl/O817G3uBnIFNjnQJu"
+ "esI68u4OTLiBFdcbYEdFCoEOfaS35inz1" },
+ { "$6$rounds=10000$saltstringsaltstring", "Hello world!",
+ "$6$rounds=10000$saltstringsaltst$OW1/O6BYHV6BcXZu8QVeXbDWra3Oeqh0sb"
+ "HbbMCVNSnCM/UrjmM0Dp8vOuZeHBy/YTBmSK6H9qs/y3RnOaw5v." },
+ { "$6$rounds=5000$toolongsaltstring", "This is just a test",
+ "$6$rounds=5000$toolongsaltstrin$lQ8jolhgVRVhY4b5pZKaysCLi0QBxGoNeKQ"
+ "zQ3glMhwllF7oGDZxUhx1yxdYcz/e1JSbq3y6JMxxl8audkUEm0" },
+ { "$6$rounds=1400$anotherlongsaltstring",
+ "a very much longer text to encrypt. This one even stretches over more"
+ "than one line.",
+ "$6$rounds=1400$anotherlongsalts$POfYwTEok97VWcjxIiSOjiykti.o/pQs.wP"
+ "vMxQ6Fm7I6IoYN3CmLs66x9t0oSwbtEW7o7UmJEiDwGqd8p4ur1" },
+ { "$6$rounds=77777$short",
+ "we have a short salt string but not a short password",
+ "$6$rounds=77777$short$WuQyW2YR.hBNpjjRhpYD/ifIw05xdfeEyQoMxIXbkvr0g"
+ "ge1a1x3yRULJ5CCaUeOxFmtlcGZelFl5CxtgfiAc0" },
+ { "$6$rounds=123456$asaltof16chars..", "a short string",
+ "$6$rounds=123456$asaltof16chars..$BtCwjqMJGx5hrJhZywWvt0RLE8uZ4oPwc"
+ "elCjmw2kSYu.Ec6ycULevoBK25fs2xXgMNrCzIMVcgEJAstJeonj1" },
+ { "$6$rounds=10$roundstoolow", "the minimum number is still observed",
+ "$6$rounds=1000$roundstoolow$kUMsbe306n21p9R.FRkW3IGn.S9NPN0x50YhH1x"
+ "hLsPuWGsUSklZt58jaTfF4ZEQpyUNGc0dqbpBYYBaHHrsX." },
+};
+#define ntests (sizeof (tests) / sizeof (tests[0]))
+
+
+static int
+do_test (void)
+{
+ int result = 0;
+ int i;
+
+ for (i = 0; i < ntests; ++i)
+ {
+ char *cp = crypt (tests[i].input, tests[i].salt);
+
+ if (strcmp (cp, tests[i].expected) != 0)
+ {
+ printf ("test %d: expected \"%s\", got \"%s\"\n",
+ i, tests[i].expected, cp);
+ result = 1;
+ }
+ }
+
+ return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/libc/crypt/sha512test.c b/libc/crypt/sha512test.c
new file mode 100644
index 000000000..792e9a751
--- /dev/null
+++ b/libc/crypt/sha512test.c
@@ -0,0 +1,113 @@
+#include <string.h>
+#include "sha512.h"
+
+static const struct
+{
+ const char *input;
+ const char result[64];
+} tests[] =
+ {
+ /* Test vectors from FIPS 180-2: appendix C.1. */
+ { "abc",
+ "\xdd\xaf\x35\xa1\x93\x61\x7a\xba\xcc\x41\x73\x49\xae\x20\x41\x31"
+ "\x12\xe6\xfa\x4e\x89\xa9\x7e\xa2\x0a\x9e\xee\xe6\x4b\x55\xd3\x9a"
+ "\x21\x92\x99\x2a\x27\x4f\xc1\xa8\x36\xba\x3c\x23\xa3\xfe\xeb\xbd"
+ "\x45\x4d\x44\x23\x64\x3c\xe8\x0e\x2a\x9a\xc9\x4f\xa5\x4c\xa4\x9f" },
+ /* Test vectors from FIPS 180-2: appendix C.2. */
+ { "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmn"
+ "hijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu",
+ "\x8e\x95\x9b\x75\xda\xe3\x13\xda\x8c\xf4\xf7\x28\x14\xfc\x14\x3f"
+ "\x8f\x77\x79\xc6\xeb\x9f\x7f\xa1\x72\x99\xae\xad\xb6\x88\x90\x18"
+ "\x50\x1d\x28\x9e\x49\x00\xf7\xe4\x33\x1b\x99\xde\xc4\xb5\x43\x3a"
+ "\xc7\xd3\x29\xee\xb6\xdd\x26\x54\x5e\x96\xe5\x5b\x87\x4b\xe9\x09" },
+ /* Test vectors from the NESSIE project. */
+ { "",
+ "\xcf\x83\xe1\x35\x7e\xef\xb8\xbd\xf1\x54\x28\x50\xd6\x6d\x80\x07"
+ "\xd6\x20\xe4\x05\x0b\x57\x15\xdc\x83\xf4\xa9\x21\xd3\x6c\xe9\xce"
+ "\x47\xd0\xd1\x3c\x5d\x85\xf2\xb0\xff\x83\x18\xd2\x87\x7e\xec\x2f"
+ "\x63\xb9\x31\xbd\x47\x41\x7a\x81\xa5\x38\x32\x7a\xf9\x27\xda\x3e" },
+ { "a",
+ "\x1f\x40\xfc\x92\xda\x24\x16\x94\x75\x09\x79\xee\x6c\xf5\x82\xf2"
+ "\xd5\xd7\xd2\x8e\x18\x33\x5d\xe0\x5a\xbc\x54\xd0\x56\x0e\x0f\x53"
+ "\x02\x86\x0c\x65\x2b\xf0\x8d\x56\x02\x52\xaa\x5e\x74\x21\x05\x46"
+ "\xf3\x69\xfb\xbb\xce\x8c\x12\xcf\xc7\x95\x7b\x26\x52\xfe\x9a\x75" },
+ { "message digest",
+ "\x10\x7d\xbf\x38\x9d\x9e\x9f\x71\xa3\xa9\x5f\x6c\x05\x5b\x92\x51"
+ "\xbc\x52\x68\xc2\xbe\x16\xd6\xc1\x34\x92\xea\x45\xb0\x19\x9f\x33"
+ "\x09\xe1\x64\x55\xab\x1e\x96\x11\x8e\x8a\x90\x5d\x55\x97\xb7\x20"
+ "\x38\xdd\xb3\x72\xa8\x98\x26\x04\x6d\xe6\x66\x87\xbb\x42\x0e\x7c" },
+ { "abcdefghijklmnopqrstuvwxyz",
+ "\x4d\xbf\xf8\x6c\xc2\xca\x1b\xae\x1e\x16\x46\x8a\x05\xcb\x98\x81"
+ "\xc9\x7f\x17\x53\xbc\xe3\x61\x90\x34\x89\x8f\xaa\x1a\xab\xe4\x29"
+ "\x95\x5a\x1b\xf8\xec\x48\x3d\x74\x21\xfe\x3c\x16\x46\x61\x3a\x59"
+ "\xed\x54\x41\xfb\x0f\x32\x13\x89\xf7\x7f\x48\xa8\x79\xc7\xb1\xf1" },
+ { "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
+ "\x20\x4a\x8f\xc6\xdd\xa8\x2f\x0a\x0c\xed\x7b\xeb\x8e\x08\xa4\x16"
+ "\x57\xc1\x6e\xf4\x68\xb2\x28\xa8\x27\x9b\xe3\x31\xa7\x03\xc3\x35"
+ "\x96\xfd\x15\xc1\x3b\x1b\x07\xf9\xaa\x1d\x3b\xea\x57\x78\x9c\xa0"
+ "\x31\xad\x85\xc7\xa7\x1d\xd7\x03\x54\xec\x63\x12\x38\xca\x34\x45" },
+ { "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
+ "\x1e\x07\xbe\x23\xc2\x6a\x86\xea\x37\xea\x81\x0c\x8e\xc7\x80\x93"
+ "\x52\x51\x5a\x97\x0e\x92\x53\xc2\x6f\x53\x6c\xfc\x7a\x99\x96\xc4"
+ "\x5c\x83\x70\x58\x3e\x0a\x78\xfa\x4a\x90\x04\x1d\x71\xa4\xce\xab"
+ "\x74\x23\xf1\x9c\x71\xb9\xd5\xa3\xe0\x12\x49\xf0\xbe\xbd\x58\x94" },
+ { "123456789012345678901234567890123456789012345678901234567890"
+ "12345678901234567890",
+ "\x72\xec\x1e\xf1\x12\x4a\x45\xb0\x47\xe8\xb7\xc7\x5a\x93\x21\x95"
+ "\x13\x5b\xb6\x1d\xe2\x4e\xc0\xd1\x91\x40\x42\x24\x6e\x0a\xec\x3a"
+ "\x23\x54\xe0\x93\xd7\x6f\x30\x48\xb4\x56\x76\x43\x46\x90\x0c\xb1"
+ "\x30\xd2\xa4\xfd\x5d\xd1\x6a\xbb\x5e\x30\xbc\xb8\x50\xde\xe8\x43" }
+ };
+
+
+int
+main (void)
+{
+ struct sha512_ctx ctx;
+ char sum[64];
+ int result = 0;
+ int cnt;
+
+ for (cnt = 0; cnt < (int) (sizeof (tests) / sizeof (tests[0])); ++cnt)
+ {
+ __sha512_init_ctx (&ctx);
+ __sha512_process_bytes (tests[cnt].input, strlen (tests[cnt].input),
+ &ctx);
+ __sha512_finish_ctx (&ctx, sum);
+ if (memcmp (tests[cnt].result, sum, 64) != 0)
+ {
+ printf ("test %d run %d failed\n", cnt, 1);
+ result = 1;
+ }
+
+ __sha512_init_ctx (&ctx);
+ for (int i = 0; tests[cnt].input[i] != '\0'; ++i)
+ __sha512_process_bytes (&tests[cnt].input[i], 1, &ctx);
+ __sha512_finish_ctx (&ctx, sum);
+ if (memcmp (tests[cnt].result, sum, 64) != 0)
+ {
+ printf ("test %d run %d failed\n", cnt, 2);
+ result = 1;
+ }
+ }
+
+ /* Test vector from FIPS 180-2: appendix C.3. */
+ char buf[1000];
+ memset (buf, 'a', sizeof (buf));
+ __sha512_init_ctx (&ctx);
+ for (int i = 0; i < 1000; ++i)
+ __sha512_process_bytes (buf, sizeof (buf), &ctx);
+ __sha512_finish_ctx (&ctx, sum);
+ static const char expected[64] =
+ "\xe7\x18\x48\x3d\x0c\xe7\x69\x64\x4e\x2e\x42\xc7\xbc\x15\xb4\x63"
+ "\x8e\x1f\x98\xb1\x3b\x20\x44\x28\x56\x32\xa8\x03\xaf\xa9\x73\xeb"
+ "\xde\x0f\xf2\x44\x87\x7e\xa6\x0a\x4c\xb0\x43\x2c\xe5\x77\xc3\x1b"
+ "\xeb\x00\x9c\x5c\x2c\x49\xaa\x2e\x4e\xad\xb2\x17\xad\x8c\xc0\x9b";
+ if (memcmp (expected, sum, 64) != 0)
+ {
+ printf ("test %d failed\n", cnt);
+ result = 1;
+ }
+
+ return result;
+}
diff --git a/libc/debug/Makefile b/libc/debug/Makefile
index 336aea8f3..fb52f50ed 100644
--- a/libc/debug/Makefile
+++ b/libc/debug/Makefile
@@ -83,15 +83,37 @@ CFLAGS-recvfrom_chk.c = -fexceptions -fasynchronous-unwind-tables
CFLAGS-tst-chk1.c = -Wno-format
CFLAGS-tst-chk2.c = -Wno-format
CFLAGS-tst-chk3.c = -Wno-format
+CFLAGS-tst-chk4.cc = -Wno-format
+CFLAGS-tst-chk5.cc = -Wno-format
+CFLAGS-tst-chk6.cc = -Wno-format
+CFLAGS-tst-lfschk1.c = -Wno-format
+CFLAGS-tst-lfschk2.c = -Wno-format
+CFLAGS-tst-lfschk3.c = -Wno-format
+CFLAGS-tst-lfschk4.cc = -Wno-format
+CFLAGS-tst-lfschk5.cc = -Wno-format
+CFLAGS-tst-lfschk6.cc = -Wno-format
tst-chk1-ENV = LOCPATH=$(common-objpfx)localedata
tst-chk2-ENV = LOCPATH=$(common-objpfx)localedata
tst-chk3-ENV = LOCPATH=$(common-objpfx)localedata
+tst-chk4-ENV = LOCPATH=$(common-objpfx)localedata
+tst-chk5-ENV = LOCPATH=$(common-objpfx)localedata
+tst-chk6-ENV = LOCPATH=$(common-objpfx)localedata
tst-lfschk1-ENV = LOCPATH=$(common-objpfx)localedata
tst-lfschk2-ENV = LOCPATH=$(common-objpfx)localedata
tst-lfschk3-ENV = LOCPATH=$(common-objpfx)localedata
+tst-lfschk4-ENV = LOCPATH=$(common-objpfx)localedata
+tst-lfschk5-ENV = LOCPATH=$(common-objpfx)localedata
+tst-lfschk6-ENV = LOCPATH=$(common-objpfx)localedata
+LDFLAGS-tst-chk4 = -lstdc++
+LDFLAGS-tst-chk5 = -lstdc++
+LDFLAGS-tst-chk6 = -lstdc++
+LDFLAGS-tst-lfschk4 = -lstdc++
+LDFLAGS-tst-lfschk5 = -lstdc++
+LDFLAGS-tst-lfschk6 = -lstdc++
tests = tst-chk1 tst-chk2 tst-chk3 \
- tst-lfschk1 tst-lfschk2 tst-lfschk3 test-strcpy_chk test-stpcpy_chk
+ tst-lfschk1 tst-lfschk2 tst-lfschk3 test-strcpy_chk test-stpcpy_chk \
+ tst-chk4 tst-chk5 tst-chk6 tst-lfschk4 tst-lfschk5 tst-lfschk6
tests-$(OPTION_EGLIBC_BACKTRACE) += backtrace-tst
extra-libs = libSegFault libpcprofile
diff --git a/libc/debug/Versions b/libc/debug/Versions
index 31c1e83a6..e467cc060 100644
--- a/libc/debug/Versions
+++ b/libc/debug/Versions
@@ -42,4 +42,7 @@ libc {
GLIBC_2.7 {
__fread_chk; __fread_unlocked_chk;
}
+ GLIBC_PRIVATE {
+ __fortify_fail;
+ }
}
diff --git a/libc/debug/fortify_fail.c b/libc/debug/fortify_fail.c
index 66494a678..3b5821e93 100644
--- a/libc/debug/fortify_fail.c
+++ b/libc/debug/fortify_fail.c
@@ -32,3 +32,4 @@ __fortify_fail (msg)
__libc_message (2, "*** %s ***: %s terminated\n",
msg, __libc_argv[0] ?: "<unknown>");
}
+libc_hidden_def (__fortify_fail)
diff --git a/libc/debug/tst-chk1.c b/libc/debug/tst-chk1.c
index 26ace2897..78a61be53 100644
--- a/libc/debug/tst-chk1.c
+++ b/libc/debug/tst-chk1.c
@@ -49,7 +49,7 @@ do_prepare (void)
}
const char *strs = "abcdefgh\nABCDEFGHI\nabcdefghij\nABCDEFGHIJ";
- if (write (temp_fd, strs, strlen (strs)) != strlen (strs))
+ if ((size_t) write (temp_fd, strs, strlen (strs)) != strlen (strs))
{
puts ("could not write test strings into file");
unlink (temp_filename);
@@ -102,7 +102,7 @@ int num2 = 987654;
chk_fail_ok = 0; \
FAIL (); \
}
-#if __USE_FORTIFY_LEVEL >= 2
+#if __USE_FORTIFY_LEVEL >= 2 && (!defined __cplusplus || defined __va_arg_pack)
#define CHK_FAIL2_START CHK_FAIL_START
#define CHK_FAIL2_END CHK_FAIL_END
#else
@@ -142,6 +142,12 @@ do_test (void)
#endif
);
+#if defined __USE_FORTIFY_LEVEL && !defined __extern_always_inline
+ printf ("Test skipped");
+ if (l0 == 0)
+ return 0;
+#endif
+
/* These ops can be done without runtime checking of object size. */
memcpy (buf, "abcdefghij", 10);
memmove (buf + 1, buf, 9);
@@ -280,7 +286,7 @@ do_test (void)
CHK_FAIL_END
CHK_FAIL_START
- p = mempcpy (buf + 6, "abcde", l0 + 5);
+ p = (char *) mempcpy (buf + 6, "abcde", l0 + 5);
CHK_FAIL_END
CHK_FAIL_START
@@ -303,6 +309,7 @@ do_test (void)
stpncpy (buf + 6, "cd", l0 + 5);
CHK_FAIL_END
+# if !defined __cplusplus || defined __va_arg_pack
CHK_FAIL_START
sprintf (buf + 8, "%d", num1);
CHK_FAIL_END
@@ -310,6 +317,7 @@ do_test (void)
CHK_FAIL_START
snprintf (buf + 8, l0 + 3, "%d", num2);
CHK_FAIL_END
+# endif
memcpy (buf, str1 + 2, l0 + 9);
CHK_FAIL_START
@@ -330,18 +338,18 @@ do_test (void)
CHK_FAIL_END
CHK_FAIL_START
- p = mempcpy (a.buf1 + 6, "abcde", l0 + 5);
+ p = (char *) mempcpy (a.buf1 + 6, "abcde", l0 + 5);
CHK_FAIL_END
CHK_FAIL_START
memset (a.buf1 + 9, 'j', l0 + 2);
CHK_FAIL_END
-#if __USE_FORTIFY_LEVEL >= 2
-# define O 0
-#else
-# define O 1
-#endif
+# if __USE_FORTIFY_LEVEL >= 2
+# define O 0
+# else
+# define O 1
+# endif
CHK_FAIL_START
strcpy (a.buf1 + (O + 4), str1 + 5);
@@ -355,6 +363,7 @@ do_test (void)
strncpy (a.buf1 + (O + 6), "X", l0 + 4);
CHK_FAIL_END
+# if !defined __cplusplus || defined __va_arg_pack
CHK_FAIL_START
sprintf (a.buf1 + (O + 7), "%d", num1);
CHK_FAIL_END
@@ -362,6 +371,7 @@ do_test (void)
CHK_FAIL_START
snprintf (a.buf1 + (O + 7), l0 + 3, "%d", num2);
CHK_FAIL_END
+# endif
memcpy (a.buf1, str1 + (3 - O), l0 + 8 + O);
CHK_FAIL_START
@@ -919,7 +929,8 @@ do_test (void)
else
{
const char *sendstr = "abcdefgh\nABCDEFGH\n0123456789\n";
- if (send (sp[0], sendstr, strlen (sendstr), 0) != strlen (sendstr))
+ if ((size_t) send (sp[0], sendstr, strlen (sendstr), 0)
+ != strlen (sendstr))
FAIL ();
char recvbuf[12];
@@ -951,29 +962,30 @@ do_test (void)
struct sockaddr_un sa_un;
sl = sizeof (sa_un);
- if (recvfrom (sp[1], recvbuf, sizeof recvbuf, MSG_PEEK, &sa_un, &sl)
+ if (recvfrom (sp[1], recvbuf, sizeof recvbuf, MSG_PEEK,
+ (struct sockaddr *) &sa_un, &sl)
!= sizeof recvbuf
|| memcmp (recvbuf, sendstr, sizeof recvbuf) != 0)
FAIL ();
sl = sizeof (sa_un);
if (recvfrom (sp[1], recvbuf + 6, l0 + sizeof recvbuf - 7, MSG_PEEK,
- &sa_un, &sl) != sizeof recvbuf - 7
+ (struct sockaddr *) &sa_un, &sl) != sizeof recvbuf - 7
|| memcmp (recvbuf + 6, sendstr, sizeof recvbuf - 7) != 0)
FAIL ();
#if __USE_FORTIFY_LEVEL >= 1
CHK_FAIL_START
sl = sizeof (sa_un);
- if (recvfrom (sp[1], recvbuf + 1, sizeof recvbuf, MSG_PEEK, &sa_un, &sl)
- != sizeof recvbuf)
+ if (recvfrom (sp[1], recvbuf + 1, sizeof recvbuf, MSG_PEEK,
+ (struct sockaddr *) &sa_un, &sl) != sizeof recvbuf)
FAIL ();
CHK_FAIL_END
CHK_FAIL_START
sl = sizeof (sa_un);
if (recvfrom (sp[1], recvbuf + 4, l0 + sizeof recvbuf - 3, MSG_PEEK,
- &sa_un, &sl) != sizeof recvbuf - 3)
+ (struct sockaddr *) &sa_un, &sl) != sizeof recvbuf - 3)
FAIL ();
CHK_FAIL_END
#endif
diff --git a/libc/debug/tst-chk4.cc b/libc/debug/tst-chk4.cc
new file mode 100644
index 000000000..c82e6aac8
--- /dev/null
+++ b/libc/debug/tst-chk4.cc
@@ -0,0 +1 @@
+#include "tst-chk1.c"
diff --git a/libc/debug/tst-chk5.cc b/libc/debug/tst-chk5.cc
new file mode 100644
index 000000000..be37ce2d2
--- /dev/null
+++ b/libc/debug/tst-chk5.cc
@@ -0,0 +1,2 @@
+#define _FORTIFY_SOURCE 1
+#include "tst-chk1.c"
diff --git a/libc/debug/tst-chk6.cc b/libc/debug/tst-chk6.cc
new file mode 100644
index 000000000..38b8e4fb3
--- /dev/null
+++ b/libc/debug/tst-chk6.cc
@@ -0,0 +1,2 @@
+#define _FORTIFY_SOURCE 2
+#include "tst-chk1.c"
diff --git a/libc/debug/tst-lfschk4.cc b/libc/debug/tst-lfschk4.cc
new file mode 100644
index 000000000..f3e6d47d5
--- /dev/null
+++ b/libc/debug/tst-lfschk4.cc
@@ -0,0 +1,2 @@
+#define _FILE_OFFSET_BITS 64
+#include "tst-chk1.c"
diff --git a/libc/debug/tst-lfschk5.cc b/libc/debug/tst-lfschk5.cc
new file mode 100644
index 000000000..95d4db1d3
--- /dev/null
+++ b/libc/debug/tst-lfschk5.cc
@@ -0,0 +1,2 @@
+#define _FILE_OFFSET_BITS 64
+#include "tst-chk2.c"
diff --git a/libc/debug/tst-lfschk6.cc b/libc/debug/tst-lfschk6.cc
new file mode 100644
index 000000000..50a1ae125
--- /dev/null
+++ b/libc/debug/tst-lfschk6.cc
@@ -0,0 +1,2 @@
+#define _FILE_OFFSET_BITS 64
+#include "tst-chk3.c"
diff --git a/libc/elf/dl-lookup.c b/libc/elf/dl-lookup.c
index f4e5ce805..c529007ca 100644
--- a/libc/elf/dl-lookup.c
+++ b/libc/elf/dl-lookup.c
@@ -86,36 +86,42 @@ dl_new_hash (const char *s)
/* Add extra dependency on MAP to UNDEF_MAP. */
static int
internal_function
-add_dependency (struct link_map *undef_map, struct link_map *map)
+add_dependency (struct link_map *undef_map, struct link_map *map, int flags)
{
struct link_map **list;
struct link_map *runp;
unsigned int act;
unsigned int i;
int result = 0;
+ unsigned long long int serial;
/* Avoid self-references and references to objects which cannot be
unloaded anyway. */
if (undef_map == map)
return 0;
- /* Make sure nobody can unload the object while we are at it. */
- __rtld_lock_lock_recursive (GL(dl_load_lock));
-
- /* Avoid references to objects which cannot be unloaded anyway. */
- if (map->l_type != lt_loaded
- || (map->l_flags_1 & DF_1_NODELETE) != 0)
- goto out;
+ /* Save serial number of the target MAP. */
+ serial = map->l_serial;
- /* If the object with the undefined reference cannot be removed ever
- just make sure the same is true for the object which contains the
- definition. */
- if (undef_map->l_type != lt_loaded
- || (undef_map->l_flags_1 & DF_1_NODELETE) != 0)
+ /* Make sure nobody can unload the object while we are at it. */
+ if (__builtin_expect (flags & DL_LOOKUP_GSCOPE_LOCK, 0))
{
- map->l_flags_1 |= DF_1_NODELETE;
- goto out;
+ /* We can't just call __rtld_lock_lock_recursive (GL(dl_load_lock))
+ here, that can result in ABBA deadlock. */
+ THREAD_GSCOPE_RESET_FLAG ();
+ __rtld_lock_lock_recursive (GL(dl_load_lock));
+ THREAD_GSCOPE_SET_FLAG ();
+ /* While MAP value won't change, after THREAD_GSCOPE_RESET_FLAG ()
+ it can e.g. point to unallocated memory. So avoid the optimizer
+ treating the above read from MAP->l_serial as ensurance it
+ can safely dereference it. */
+ map = atomic_forced_read (map);
}
+ else
+ __rtld_lock_lock_recursive (GL(dl_load_lock));
+
+ /* From this point on it is unsafe to dereference MAP, until it
+ has been found in one of the lists. */
/* Determine whether UNDEF_MAP already has a reference to MAP. First
look in the normal dependencies. */
@@ -125,7 +131,7 @@ add_dependency (struct link_map *undef_map, struct link_map *map)
for (i = 0; list[i] != NULL; ++i)
if (list[i] == map)
- goto out;
+ goto out_check;
}
/* No normal dependency. See whether we already had to add it
@@ -135,7 +141,7 @@ add_dependency (struct link_map *undef_map, struct link_map *map)
for (i = 0; i < act; ++i)
if (list[i] == map)
- goto out;
+ goto out_check;
/* The object is not yet in the dependency list. Before we add
it make sure just one more time the object we are about to
@@ -148,7 +154,29 @@ add_dependency (struct link_map *undef_map, struct link_map *map)
if (runp != NULL)
{
- /* The object is still available. Add the reference now. */
+ /* The object is still available. */
+
+ /* MAP could have been dlclosed, freed and then some other dlopened
+ library could have the same link_map pointer. */
+ if (map->l_serial != serial)
+ goto out_check;
+
+ /* Avoid references to objects which cannot be unloaded anyway. */
+ assert (map->l_type == lt_loaded);
+ if ((map->l_flags_1 & DF_1_NODELETE) != 0)
+ goto out;
+
+ /* If the object with the undefined reference cannot be removed ever
+ just make sure the same is true for the object which contains the
+ definition. */
+ if (undef_map->l_type != lt_loaded
+ || (undef_map->l_flags_1 & DF_1_NODELETE) != 0)
+ {
+ map->l_flags_1 |= DF_1_NODELETE;
+ goto out;
+ }
+
+ /* Add the reference now. */
if (__builtin_expect (act >= undef_map->l_reldepsmax, 0))
{
/* Allocate more memory for the dependency list. Since this
@@ -169,13 +197,13 @@ add_dependency (struct link_map *undef_map, struct link_map *map)
}
/* If we didn't manage to allocate memory for the list this is
- no fatal mistake. We simply increment the use counter of the
- referenced object and don't record the dependencies. This
- means this increment can never be reverted and the object
- will never be unloaded. This is semantically the correct
+ no fatal mistake. We simply make sure the referenced object
+ cannot be unloaded. This is semantically the correct
behavior. */
if (__builtin_expect (act < undef_map->l_reldepsmax, 1))
undef_map->l_reldeps[undef_map->l_reldepsact++] = map;
+ else
+ map->l_flags_1 |= DF_1_NODELETE;
/* Display information if we are debugging. */
if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0))
@@ -196,6 +224,11 @@ add_dependency (struct link_map *undef_map, struct link_map *map)
__rtld_lock_unlock_recursive (GL(dl_load_lock));
return result;
+
+ out_check:
+ if (map->l_serial != serial)
+ result = -1;
+ goto out;
}
static void
@@ -227,9 +260,11 @@ _dl_lookup_symbol_x (const char *undef_name, struct link_map *undef_map,
bump_num_relocations ();
- /* No other flag than DL_LOOKUP_ADD_DEPENDENCY is allowed if we look
- up a versioned symbol. */
- assert (version == NULL || (flags & ~(DL_LOOKUP_ADD_DEPENDENCY)) == 0);
+ /* No other flag than DL_LOOKUP_ADD_DEPENDENCY or DL_LOOKUP_GSCOPE_LOCK
+ is allowed if we look up a versioned symbol. */
+ assert (version == NULL
+ || (flags & ~(DL_LOOKUP_ADD_DEPENDENCY | DL_LOOKUP_GSCOPE_LOCK))
+ == 0);
size_t i = 0;
if (__builtin_expect (skip_map != NULL, 0))
@@ -335,10 +370,12 @@ _dl_lookup_symbol_x (const char *undef_name, struct link_map *undef_map,
runtime lookups. */
&& (flags & DL_LOOKUP_ADD_DEPENDENCY) != 0
/* Add UNDEF_MAP to the dependencies. */
- && add_dependency (undef_map, current_value.m) < 0)
+ && add_dependency (undef_map, current_value.m, flags) < 0)
/* Something went wrong. Perhaps the object we tried to reference
was just removed. Try finding another definition. */
- return _dl_lookup_symbol_x (undef_name, undef_map, ref, symbol_scope,
+ return _dl_lookup_symbol_x (undef_name, undef_map, ref,
+ (flags & DL_LOOKUP_GSCOPE_LOCK)
+ ? undef_map->l_scope : symbol_scope,
version, type_class, flags, skip_map);
/* The object is used. */
diff --git a/libc/elf/dl-object.c b/libc/elf/dl-object.c
index 22ae83239..0e45aea39 100644
--- a/libc/elf/dl-object.c
+++ b/libc/elf/dl-object.c
@@ -103,6 +103,7 @@ _dl_new_object (char *realname, const char *libname, int type,
else
GL(dl_ns)[nsid]._ns_loaded = new;
++GL(dl_ns)[nsid]._ns_nloaded;
+ new->l_serial = GL(dl_load_adds);
++GL(dl_load_adds);
/* If we have no loader the new object acts as it. */
diff --git a/libc/elf/dl-runtime.c b/libc/elf/dl-runtime.c
index ee2b8b5f6..968e29340 100644
--- a/libc/elf/dl-runtime.c
+++ b/libc/elf/dl-runtime.c
@@ -100,7 +100,10 @@ _dl_fixup (
we are not using any threads (yet). */
int flags = DL_LOOKUP_ADD_DEPENDENCY;
if (!RTLD_SINGLE_THREAD_P)
- THREAD_GSCOPE_SET_FLAG ();
+ {
+ THREAD_GSCOPE_SET_FLAG ();
+ flags |= DL_LOOKUP_GSCOPE_LOCK;
+ }
result = _dl_lookup_symbol_x (strtab + sym->st_name, l, &sym, l->l_scope,
version, ELF_RTYPE_CLASS_PLT, flags, NULL);
@@ -192,7 +195,10 @@ _dl_profile_fixup (
we are not using any threads (yet). */
int flags = DL_LOOKUP_ADD_DEPENDENCY;
if (!RTLD_SINGLE_THREAD_P)
- THREAD_GSCOPE_SET_FLAG ();
+ {
+ THREAD_GSCOPE_SET_FLAG ();
+ flags |= DL_LOOKUP_GSCOPE_LOCK;
+ }
result = _dl_lookup_symbol_x (strtab + refsym->st_name, l,
&defsym, l->l_scope, version,
diff --git a/libc/elf/dl-sym.c b/libc/elf/dl-sym.c
index b12ff375f..43c8274b7 100644
--- a/libc/elf/dl-sym.c
+++ b/libc/elf/dl-sym.c
@@ -123,7 +123,8 @@ do_sym (void *handle, const char *name, void *who,
args.name = name;
args.map = match;
args.vers = vers;
- args.flags = flags | DL_LOOKUP_ADD_DEPENDENCY;
+ args.flags
+ = flags | DL_LOOKUP_ADD_DEPENDENCY | DL_LOOKUP_GSCOPE_LOCK;
args.refp = &ref;
THREAD_GSCOPE_SET_FLAG ();
diff --git a/libc/iconv/iconv_open.c b/libc/iconv/iconv_open.c
index fc94fa5fe..e4fed93ec 100644
--- a/libc/iconv/iconv_open.c
+++ b/libc/iconv/iconv_open.c
@@ -18,8 +18,10 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
+#include <alloca.h>
#include <errno.h>
#include <iconv.h>
+#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
@@ -30,28 +32,49 @@
iconv_t
iconv_open (const char *tocode, const char *fromcode)
{
- char *tocode_conv;
- char *fromcode_conv;
- size_t tocode_len;
- size_t fromcode_len;
- __gconv_t cd;
- int res;
-
/* Normalize the name. We remove all characters beside alpha-numeric,
'_', '-', '/', '.', and ':'. */
- tocode_len = strlen (tocode);
- tocode_conv = (char *) alloca (tocode_len + 3);
+ size_t tocode_len = strlen (tocode) + 3;
+ char *tocode_conv;
+ bool tocode_usealloca = __libc_use_alloca (tocode_len);
+ if (tocode_usealloca)
+ tocode_conv = (char *) alloca (tocode_len);
+ else
+ {
+ tocode_conv = (char *) malloc (tocode_len);
+ if (tocode_conv == NULL)
+ return (iconv_t) -1;
+ }
strip (tocode_conv, tocode);
tocode = (tocode_conv[2] == '\0' && tocode[0] != '\0'
? upstr (tocode_conv, tocode) : tocode_conv);
- fromcode_len = strlen (fromcode);
- fromcode_conv = (char *) alloca (fromcode_len + 3);
+ size_t fromcode_len = strlen (fromcode) + 3;
+ char *fromcode_conv;
+ bool fromcode_usealloca = __libc_use_alloca (fromcode_len);
+ if (fromcode_usealloca)
+ fromcode_conv = (char *) alloca (fromcode_len);
+ else
+ {
+ fromcode_conv = (char *) malloc (fromcode_len);
+ if (fromcode_conv == NULL)
+ {
+ if (! tocode_usealloca)
+ free (tocode_conv);
+ return (iconv_t) -1;
+ }
+ }
strip (fromcode_conv, fromcode);
fromcode = (fromcode_conv[2] == '\0' && fromcode[0] != '\0'
? upstr (fromcode_conv, fromcode) : fromcode_conv);
- res = __gconv_open (tocode, fromcode, &cd, 0);
+ __gconv_t cd;
+ int res = __gconv_open (tocode, fromcode, &cd, 0);
+
+ if (! fromcode_usealloca)
+ free (fromcode_conv);
+ if (! tocode_usealloca)
+ free (tocode_conv);
if (__builtin_expect (res, __GCONV_OK) != __GCONV_OK)
{
@@ -59,7 +82,7 @@ iconv_open (const char *tocode, const char *fromcode)
if (res == __GCONV_NOCONV || res == __GCONV_NODB)
__set_errno (EINVAL);
- return (iconv_t) -1;
+ cd = (iconv_t) -1;
}
return (iconv_t) cd;
diff --git a/libc/iconvdata/Makefile b/libc/iconvdata/Makefile
index a2e6651d1..29c9fe590 100644
--- a/libc/iconvdata/Makefile
+++ b/libc/iconvdata/Makefile
@@ -61,7 +61,8 @@ modules-$(OPTION_EGLIBC_CHARSETS) \
IBM1142 IBM1143 IBM1144 IBM1145 IBM1146 IBM1147 IBM1148 \
IBM1149 IBM1166 IBM1167 IBM4517 IBM4899 IBM4909 IBM4971 \
IBM5347 IBM9030 IBM9066 IBM9448 IBM12712 IBM16804 \
- IBM1364 IBM1371 IBM1388 IBM1390 IBM1399 ISO_11548-1 MIK BRF
+ IBM1364 IBM1371 IBM1388 IBM1390 IBM1399 ISO_11548-1 MIK BRF \
+ MAC-CENTRALEUROPE
modules.so := $(addsuffix .so, $(modules-y))
@@ -200,7 +201,7 @@ distribute := gconv-modules extra-module.mk gap.awk gaptab.awk gconv.map \
ibm12712.c ibm12712.h ibm16804.c ibm16804.h \
ibm1364.c ibm1364.h ibm1371.c ibm1371.h ibm1388.c ibm1388.h \
ibm1390.c ibm1390.h ibm1399.c ibm1399.h iso_11548-1.c mik.c \
- brf.c
+ brf.c mac-centraleurope.c
# We build the transformation modules only when we build shared libs.
ifeq (yes,$(build-shared))
@@ -241,7 +242,8 @@ gen-8bit-gap-modules := koi8-r latin-greek latin-greek-1 ibm256 ibm273 \
iso8859-13 iso8859-14 iso8859-15 mac-uk sami-ws2 \
iso-ir-197 tis-620 koi8-u ibm874 cp10007 koi8-t \
georgian-ps georgian-academy iso-ir-209 mac-sami \
- iso8859-11 ibm866nav pt154 rk1048 mik brf
+ iso8859-11 ibm866nav pt154 rk1048 mik brf \
+ mac-centraleurope
gen-special-modules := iso8859-7jp
diff --git a/libc/iconvdata/TESTS b/libc/iconvdata/TESTS
index 2743cc1ff..251f24b73 100644
--- a/libc/iconvdata/TESTS
+++ b/libc/iconvdata/TESTS
@@ -167,3 +167,5 @@ IBM1399 IBM1399 N UTF8
ISO_11548-1 ISO_11548-1 - UTF8
MIK MIK Y UTF8
BRF BRF - UTF8
+MAC-SAMI MAC-SAMI Y UTF8
+MAC-CENTRALEUROPE MAC-CENTRALEUROPE Y UTF8
diff --git a/libc/iconvdata/gconv-modules b/libc/iconvdata/gconv-modules
index 8d4667fc8..fc8e3cdb2 100644
--- a/libc/iconvdata/gconv-modules
+++ b/libc/iconvdata/gconv-modules
@@ -1911,3 +1911,8 @@ module INTERNAL MIK// MIK 1
# from to module cost
module BRF// INTERNAL BRF 1
module INTERNAL BRF// BRF 1
+
+# from to module cost
+alias CP1282// MAC-CENTRALEUROPE//
+module MAC-CENTRALEUROPE// INTERNAL MAC-CENTRALEUROPE 1
+module INTERNAL MAC-CENTRALEUROPE// MAC-CENTRALEUROPE 1
diff --git a/libc/iconvdata/mac-centraleurope.c b/libc/iconvdata/mac-centraleurope.c
new file mode 100644
index 000000000..41bcf3955
--- /dev/null
+++ b/libc/iconvdata/mac-centraleurope.c
@@ -0,0 +1,29 @@
+/* Conversion from and to MAC-CENTRALEUROPE.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2007.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#include <stdint.h>
+
+/* Get the conversion table. */
+#define TABLES <mac-centraleurope.h>
+
+#define CHARSET_NAME "MAC-CENTRALEUROPE//"
+#define HAS_HOLES 0 /* All 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/libc/iconvdata/tst-tables.sh b/libc/iconvdata/tst-tables.sh
index 257dd7284..3b34615eb 100755
--- a/libc/iconvdata/tst-tables.sh
+++ b/libc/iconvdata/tst-tables.sh
@@ -210,6 +210,7 @@ cat <<EOF |
RK1048
MIK
BRF
+ MAC-CENTRALEUROPE
#
# Multibyte encodings come here
#
diff --git a/libc/include/features.h b/libc/include/features.h
index 97e65ba2d..3b90e078d 100644
--- a/libc/include/features.h
+++ b/libc/include/features.h
@@ -340,7 +340,8 @@
/* Decide whether we can define 'extern inline' functions in headers. */
#if __GNUC_PREREQ (2, 7) && defined __OPTIMIZE__ \
- && !defined __OPTIMIZE_SIZE__ && !defined __NO_INLINE__
+ && !defined __OPTIMIZE_SIZE__ && !defined __NO_INLINE__ \
+ && defined __extern_inline
# define __USE_EXTERN_INLINES 1
#endif
diff --git a/libc/include/link.h b/libc/include/link.h
index ccbbb8c45..b373eeaf5 100644
--- a/libc/include/link.h
+++ b/libc/include/link.h
@@ -286,6 +286,8 @@ struct link_map
ElfW(Addr) l_relro_addr;
size_t l_relro_size;
+ unsigned long long int l_serial;
+
/* Audit information. This array apparent must be the last in the
structure. Never add something after it. */
struct auditstate
diff --git a/libc/include/stdio.h b/libc/include/stdio.h
index 748523d4d..084c02ea1 100644
--- a/libc/include/stdio.h
+++ b/libc/include/stdio.h
@@ -27,6 +27,7 @@ extern int __vsscanf (__const char *__restrict __s,
_G_va_list __arg)
__attribute__ ((__format__ (__scanf__, 2, 0)));
+#ifndef __cplusplus
extern int __sprintf_chk (char *, int, size_t, const char *, ...) __THROW;
extern int __snprintf_chk (char *, size_t, int, size_t, const char *, ...)
__THROW;
@@ -40,6 +41,23 @@ extern int __vprintf_chk (int, const char *, _G_va_list);
extern int __vfprintf_chk (FILE *, int, const char *, _G_va_list);
extern char *__fgets_unlocked_chk (char *buf, size_t size, int n, FILE *fp);
extern char *__fgets_chk (char *buf, size_t size, int n, FILE *fp);
+#endif
+
+extern int __isoc99_fscanf (FILE *__restrict __stream,
+ __const char *__restrict __format, ...) __wur;
+extern int __isoc99_scanf (__const char *__restrict __format, ...) __wur;
+extern int __isoc99_sscanf (__const char *__restrict __s,
+ __const char *__restrict __format, ...) __THROW;
+extern int __isoc99_vfscanf (FILE *__restrict __s,
+ __const char *__restrict __format,
+ _G_va_list __arg) __wur;
+extern int __isoc99_vscanf (__const char *__restrict __format,
+ _G_va_list __arg) __wur;
+extern int __isoc99_vsscanf (__const char *__restrict __s,
+ __const char *__restrict __format,
+ _G_va_list __arg) __THROW;
+libc_hidden_proto (__isoc99_vsscanf)
+libc_hidden_proto (__isoc99_vfscanf)
/* Prototypes for compatibility functions. */
extern FILE *__new_tmpfile (void);
@@ -65,6 +83,7 @@ extern void __libc_fatal (__const char *__message)
__attribute__ ((__noreturn__));
extern void __libc_message (int do_abort, __const char *__fnt, ...);
extern void __fortify_fail (const char *msg) __attribute__ ((noreturn));
+libc_hidden_proto (__fortify_fail)
/* Acquire ownership of STREAM. */
extern void __flockfile (FILE *__stream);
diff --git a/libc/include/wchar.h b/libc/include/wchar.h
index b5f74da0f..bca847731 100644
--- a/libc/include/wchar.h
+++ b/libc/include/wchar.h
@@ -152,6 +152,7 @@ extern int __vfwprintf (__FILE *__restrict __s,
__const wchar_t *__restrict __format,
__gnuc_va_list __arg)
/* __attribute__ ((__format__ (__wprintf__, 2, 0))) */;
+#ifndef __cplusplus
extern int __vfwprintf_chk (FILE *__restrict __s, int __flag,
const wchar_t *__restrict __format,
__gnuc_va_list __arg)
@@ -163,6 +164,24 @@ extern int __vswprintf_chk (wchar_t *__restrict __s, size_t __n,
/* __attribute__ ((__format__ (__wprintf__, 5, 0))) */;
libc_hidden_proto (__vfwprintf_chk)
libc_hidden_proto (__vswprintf_chk)
+#endif
+
+extern int __isoc99_fwscanf (__FILE *__restrict __stream,
+ __const wchar_t *__restrict __format, ...);
+extern int __isoc99_wscanf (__const wchar_t *__restrict __format, ...);
+extern int __isoc99_swscanf (__const wchar_t *__restrict __s,
+ __const wchar_t *__restrict __format, ...)
+ __THROW;
+extern int __isoc99_vfwscanf (__FILE *__restrict __s,
+ __const wchar_t *__restrict __format,
+ __gnuc_va_list __arg);
+extern int __isoc99_vwscanf (__const wchar_t *__restrict __format,
+ __gnuc_va_list __arg);
+extern int __isoc99_vswscanf (__const wchar_t *__restrict __s,
+ __const wchar_t *__restrict __format,
+ __gnuc_va_list __arg) __THROW;
+libc_hidden_proto (__isoc99_vswscanf)
+libc_hidden_proto (__isoc99_vfwscanf)
/* Internal functions. */
extern size_t __mbsrtowcs_l (wchar_t *dst, const char **src, size_t len,
diff --git a/libc/inet/inet_net.c b/libc/inet/inet_net.c
index e9331c592..d58f1ae8e 100644
--- a/libc/inet/inet_net.c
+++ b/libc/inet/inet_net.c
@@ -55,7 +55,7 @@ again:
if (*cp == '0')
digit = 1, base = 8, cp++;
if (*cp == 'x' || *cp == 'X')
- base = 16, cp++;
+ digit = 0, base = 16, cp++;
while ((c = *cp) != 0) {
if (isdigit(c)) {
if (base == 8 && (c == '8' || c == '9'))
diff --git a/libc/inet/tst-network.c b/libc/inet/tst-network.c
index 428388805..5491740e3 100644
--- a/libc/inet/tst-network.c
+++ b/libc/inet/tst-network.c
@@ -34,7 +34,10 @@ struct
{"1.0", 0x100},
{"1", 0x1},
{"192.168.0.0", 0xC0A80000},
+ {"0", 0},
+ {"0x0", 0},
/* Now some invalid addresses. */
+ {"0x", INADDR_NONE},
{"141.30.225.2800", INADDR_NONE},
{"141.76.1.1.1", INADDR_NONE},
{"141.76.1.11.", INADDR_NONE},
@@ -61,6 +64,7 @@ main (void)
if (res != tests[i].number)
{
+ ++errors;
printf ("Test failed for inet_network (\"%s\"):\n",
tests[i].network);
printf ("Expected return value %u (0x%x) but got %u (0x%x).\n",
diff --git a/libc/intl/dcigettext.c b/libc/intl/dcigettext.c
index 767e43add..1d8ed919c 100644
--- a/libc/intl/dcigettext.c
+++ b/libc/intl/dcigettext.c
@@ -854,6 +854,9 @@ _nl_find_msg (domain_file, domainbinding, msgid, convert, lengthp)
/* We are supposed to do a conversion. */
const char *encoding = get_output_charset (domainbinding);
+ /* Protect against reallocation of the table. */
+ __libc_rwlock_rdlock (domain->conversions_lock);
+
/* Search whether a table with converted translations for this
encoding has already been allocated. */
size_t nconversions = domain->nconversions;
@@ -870,8 +873,25 @@ _nl_find_msg (domain_file, domainbinding, msgid, convert, lengthp)
}
}
+ __libc_rwlock_unlock (domain->conversions_lock);
+
if (convd == NULL)
{
+ /* We have to allocate a new conversions table. */
+ __libc_rwlock_wrlock (domain->conversions_lock);
+
+ /* Maybe in the meantime somebody added the translation.
+ Recheck. */
+ for (i = nconversions; i > 0; )
+ {
+ i--;
+ if (strcmp (domain->conversions[i].encoding, encoding) == 0)
+ {
+ convd = &domain->conversions[i];
+ goto found_convd;
+ }
+ }
+
/* Allocate a table for the converted translations for this
encoding. */
struct converted_domain *new_conversions =
@@ -880,9 +900,13 @@ _nl_find_msg (domain_file, domainbinding, msgid, convert, lengthp)
(nconversions + 1) * sizeof (struct converted_domain));
if (__builtin_expect (new_conversions == NULL, 0))
- /* Nothing we can do, no more memory. We cannot use the
- translation because it might be encoded incorrectly. */
- return (char *) -1;
+ {
+ /* Nothing we can do, no more memory. We cannot use the
+ translation because it might be encoded incorrectly. */
+ unlock_fail:
+ __libc_rwlock_unlock (domain->conversions_lock);
+ return (char *) -1;
+ }
domain->conversions = new_conversions;
@@ -891,7 +915,7 @@ _nl_find_msg (domain_file, domainbinding, msgid, convert, lengthp)
if (__builtin_expect (encoding == NULL, 0))
/* Nothing we can do, no more memory. We cannot use the
translation because it might be encoded incorrectly. */
- return (char *) -1;
+ goto unlock_fail;
convd = &new_conversions[nconversions];
convd->encoding = encoding;
@@ -993,6 +1017,9 @@ _nl_find_msg (domain_file, domainbinding, msgid, convert, lengthp)
convd->conv_tab = NULL;
/* Here domain->conversions is still == new_conversions. */
domain->nconversions++;
+
+ found_convd:
+ __libc_rwlock_unlock (domain->conversions_lock);
}
if (
diff --git a/libc/intl/gettextP.h b/libc/intl/gettextP.h
index f680a9a0a..f1aa329e4 100644
--- a/libc/intl/gettextP.h
+++ b/libc/intl/gettextP.h
@@ -147,6 +147,7 @@ struct loaded_domain
/* Cache of charset conversions of the translated strings. */
struct converted_domain *conversions;
size_t nconversions;
+ __libc_rwlock_define (, conversions_lock);
const struct expression *plural;
unsigned long int nplurals;
diff --git a/libc/intl/loadmsgcat.c b/libc/intl/loadmsgcat.c
index 1c47475ec..537fd6013 100644
--- a/libc/intl/loadmsgcat.c
+++ b/libc/intl/loadmsgcat.c
@@ -1,5 +1,5 @@
/* Load needed message catalogs.
- Copyright (C) 1995-2005 Free Software Foundation, Inc.
+ Copyright (C) 1995-2005, 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -1252,6 +1252,7 @@ _nl_load_domain (domain_file, domainbinding)
/* No caches of converted translations so far. */
domain->conversions = NULL;
domain->nconversions = 0;
+ __libc_rwlock_init (domain->conversions_lock);
/* Get the header entry and look for a plural specification. */
nullentry = _nl_find_msg (domain_file, domainbinding, "", 0, &nullentrylen);
@@ -1290,6 +1291,7 @@ _nl_unload_domain (domain)
}
if (domain->conversions != NULL)
free (domain->conversions);
+ __libc_rwlock_fini (domain->conversions_lock);
if (domain->malloced)
free (domain->malloced);
diff --git a/libc/io/bits/fcntl2.h b/libc/io/bits/fcntl2.h
index 5b9fcd5e7..fbe85852c 100644
--- a/libc/io/bits/fcntl2.h
+++ b/libc/io/bits/fcntl2.h
@@ -25,161 +25,149 @@
appropriate third/fourth parameter. */
#ifndef __USE_FILE_OFFSET64
extern int __open_2 (__const char *__path, int __oflag) __nonnull ((1));
+extern int __REDIRECT (__open_alias, (__const char *__path, int __oflag, ...),
+ open) __nonnull ((1));
#else
-extern int __REDIRECT (__open_2, (__const char *__file, int __oflag),
+extern int __REDIRECT (__open_2, (__const char *__path, int __oflag),
__open64_2) __nonnull ((1));
+extern int __REDIRECT (__open_alias, (__const char *__path, int __oflag, ...),
+ open64) __nonnull ((1));
#endif
+__errordecl (__open_too_many_args,
+ "open can be called either with 2 or 3 arguments, not more");
+__errordecl (__open_missing_mode,
+ "open with O_CREAT in second argument needs 3 arguments");
-#define open(fname, flags, ...) \
- (__extension__ \
- ({ int ___r; \
- /* If the compiler complains about an invalid type, excess elements, \
- etc. in the initialization this means a parameter of the wrong type \
- has been passed to open. */ \
- int ___arr[] = { __VA_ARGS__ }; \
- if (__builtin_constant_p (flags) && ((flags) & O_CREAT) != 0) \
- { \
- /* If the compiler complains about the size of this array type the \
- mode parameter is missing since O_CREAT has been used. */ \
- typedef int __open_missing_mode[((flags) & O_CREAT) != 0 \
- ? ((long int) sizeof (___arr) \
- - (long int) sizeof (int)) : 1];\
- } \
- if (sizeof (___arr) == 0) \
- { \
- if (__builtin_constant_p (flags) && ((flags) & O_CREAT) == 0) \
- ___r = open (fname, flags); \
- else \
- ___r = __open_2 (fname, flags); \
- } \
- else \
- { \
- /* If the compiler complains about the size of this array type too \
- many parameters have been passed to open. */ \
- typedef int __open_too_many_args[-(sizeof (___arr) \
- > sizeof (int))]; \
- ___r = open (fname, flags, ___arr[0]); \
- } \
- ___r; \
- }))
+__extern_always_inline int
+open (__const char *__path, int __oflag, ...)
+{
+ if (__va_arg_pack_len () > 1)
+ __open_too_many_args ();
+
+ if (__builtin_constant_p (__oflag))
+ {
+ if ((__oflag & O_CREAT) != 0 && __va_arg_pack_len () < 1)
+ {
+ __open_missing_mode ();
+ return __open_2 (__path, __oflag);
+ }
+ return __open_alias (__path, __oflag, __va_arg_pack ());
+ }
+
+ if (__va_arg_pack_len () < 1)
+ return __open_2 (__path, __oflag);
+
+ return __open_alias (__path, __oflag, __va_arg_pack ());
+}
#ifdef __USE_LARGEFILE64
extern int __open64_2 (__const char *__path, int __oflag) __nonnull ((1));
+extern int __REDIRECT (__open64_alias, (__const char *__path, int __oflag,
+ ...), open64) __nonnull ((1));
+__errordecl (__open64_too_many_args,
+ "open64 can be called either with 2 or 3 arguments, not more");
+__errordecl (__open64_missing_mode,
+ "open64 with O_CREAT in second argument needs 3 arguments");
+
+__extern_always_inline int
+open64 (__const char *__path, int __oflag, ...)
+{
+ if (__va_arg_pack_len () > 1)
+ __open64_too_many_args ();
-# define open64(fname, flags, ...) \
- (__extension__ \
- ({ int ___r; \
- /* If the compiler complains about an invalid type, excess elements, \
- etc. in the initialization this means a parameter of the wrong type \
- has been passed to open64. */ \
- int ___arr[] = { __VA_ARGS__ }; \
- if (__builtin_constant_p (flags) && ((flags) & O_CREAT) != 0) \
- { \
- /* If the compiler complains about the size of this array type the \
- mode parameter is missing since O_CREAT has been used. */ \
- typedef int __open_missing_mode[((flags) & O_CREAT) != 0 \
- ? ((long int) sizeof (___arr) \
- - (long int) sizeof (int)) : 1];\
- } \
- if (sizeof (___arr) == 0) \
- { \
- if (__builtin_constant_p (flags) && ((flags) & O_CREAT) == 0) \
- ___r = open64 (fname, flags); \
- else \
- ___r = __open64_2 (fname, flags); \
- } \
- else \
- { \
- /* If the compiler complains about the size of this array type too \
- many parameters have been passed to open64. */ \
- typedef int __open_too_many_args[-(sizeof (___arr) \
- > sizeof (int))]; \
- ___r = open64 (fname, flags, ___arr[0]); \
- } \
- ___r; \
- }))
+ if (__builtin_constant_p (__oflag))
+ {
+ if ((__oflag & O_CREAT) != 0 && __va_arg_pack_len () < 1)
+ {
+ __open64_missing_mode ();
+ return __open64_2 (__path, __oflag);
+ }
+ return __open64_alias (__path, __oflag, __va_arg_pack ());
+ }
+
+ if (__va_arg_pack_len () < 1)
+ return __open64_2 (__path, __oflag);
+
+ return __open64_alias (__path, __oflag, __va_arg_pack ());
+}
#endif
+
#ifdef __USE_ATFILE
# ifndef __USE_FILE_OFFSET64
extern int __openat_2 (int __fd, __const char *__path, int __oflag)
__nonnull ((2));
+extern int __REDIRECT (__openat_alias, (int __fd, __const char *__path,
+ int __oflag, ...), openat)
+ __nonnull ((2));
# else
-extern int __REDIRECT (__openat_2, (int __fd, __const char *__file,
+extern int __REDIRECT (__openat_2, (int __fd, __const char *__path,
int __oflag), __openat64_2)
__nonnull ((2));
+extern int __REDIRECT (__openat_alias, (int __fd, __const char *__path,
+ int __oflag, ...), openat64)
+ __nonnull ((2));
# endif
+__errordecl (__openat_too_many_args,
+ "openat can be called either with 3 or 4 arguments, not more");
+__errordecl (__openat_missing_mode,
+ "openat with O_CREAT in third argument needs 4 arguments");
+
+__extern_always_inline int
+openat (int __fd, __const char *__path, int __oflag, ...)
+{
+ if (__va_arg_pack_len () > 1)
+ __openat_too_many_args ();
+
+ if (__builtin_constant_p (__oflag))
+ {
+ if ((__oflag & O_CREAT) != 0 && __va_arg_pack_len () < 1)
+ {
+ __openat_missing_mode ();
+ return __openat_2 (__fd, __path, __oflag);
+ }
+ return __openat_alias (__fd, __path, __oflag, __va_arg_pack ());
+ }
+
+ if (__va_arg_pack_len () < 1)
+ return __openat_2 (__fd, __path, __oflag);
-# define openat(fd, fname, flags, ...) \
- (__extension__ \
- ({ int ___r; \
- /* If the compiler complains about an invalid type, excess elements, \
- etc. in the initialization this means a parameter of the wrong type \
- has been passed to openat. */ \
- int ___arr[] = { __VA_ARGS__ }; \
- if (__builtin_constant_p (flags) && ((flags) & O_CREAT) != 0) \
- { \
- /* If the compiler complains about the size of this array type the \
- mode parameter is missing since O_CREAT has been used. */ \
- typedef int __open_missing_mode[((flags) & O_CREAT) != 0 \
- ? ((long int) sizeof (___arr) \
- - (long int) sizeof (int)) : 1];\
- } \
- if (sizeof (___arr) == 0) \
- { \
- if (__builtin_constant_p (flags) && ((flags) & O_CREAT) == 0) \
- ___r = openat (fd, fname, flags); \
- else \
- ___r = __openat_2 (fd, fname, flags); \
- } \
- else \
- { \
- /* If the compiler complains about the size of this array type too \
- many parameters have been passed to openat. */ \
- typedef int __open_too_many_args[-(sizeof (___arr) \
- > sizeof (int))]; \
- ___r = openat (fd, fname, flags, ___arr[0]); \
- } \
- ___r; \
- }))
+ return __openat_alias (__fd, __path, __oflag, __va_arg_pack ());
+}
# ifdef __USE_LARGEFILE64
extern int __openat64_2 (int __fd, __const char *__path, int __oflag)
__nonnull ((2));
+extern int __REDIRECT (__openat64_alias, (int __fd, __const char *__path,
+ int __oflag, ...), openat64)
+ __nonnull ((2));
+__errordecl (__openat64_too_many_args,
+ "openat64 can be called either with 3 or 4 arguments, not more");
+__errordecl (__openat64_missing_mode,
+ "openat64 with O_CREAT in third argument needs 4 arguments");
+
+__extern_always_inline int
+openat64 (int __fd, __const char *__path, int __oflag, ...)
+{
+ if (__va_arg_pack_len () > 1)
+ __openat64_too_many_args ();
+
+ if (__builtin_constant_p (__oflag))
+ {
+ if ((__oflag & O_CREAT) != 0 && __va_arg_pack_len () < 1)
+ {
+ __openat64_missing_mode ();
+ return __openat64_2 (__fd, __path, __oflag);
+ }
+ return __openat64_alias (__fd, __path, __oflag, __va_arg_pack ());
+ }
+
+ if (__va_arg_pack_len () < 1)
+ return __openat64_2 (__fd, __path, __oflag);
-# define openat64(fd, fname, flags, ...) \
- (__extension__ \
- ({ int ___r; \
- /* If the compiler complains about an invalid type, excess elements, \
- etc. in the initialization this means a parameter of the wrong type \
- has been passed to openat64. */ \
- int ___arr[] = { __VA_ARGS__ }; \
- if (__builtin_constant_p (flags) && ((flags) & O_CREAT) != 0) \
- { \
- /* If the compiler complains about the size of this array type the \
- mode parameter is missing since O_CREAT has been used. */ \
- typedef int __open_missing_mode[((flags) & O_CREAT) != 0 \
- ? ((long int) sizeof (___arr) \
- - (long int) sizeof (int)) : 1];\
- } \
- if (sizeof (___arr) == 0) \
- { \
- if (__builtin_constant_p (flags) && ((flags) & O_CREAT) == 0) \
- ___r = openat64 (fd, fname, flags); \
- else \
- ___r = __openat64_2 (fd, fname, flags); \
- } \
- else \
- { \
- /* If the compiler complains about the size of this array type too \
- many parameters have been passed to openat64. */ \
- typedef int __open_too_many_args[-(sizeof (___arr) \
- > sizeof (int))]; \
- ___r = openat64 (fd, fname, flags, ___arr[0]); \
- } \
- ___r; \
- }))
+ return __openat64_alias (__fd, __path, __oflag, __va_arg_pack ());
+}
# endif
#endif
diff --git a/libc/io/fcntl.h b/libc/io/fcntl.h
index c89bf625b..330bb3088 100644
--- a/libc/io/fcntl.h
+++ b/libc/io/fcntl.h
@@ -211,8 +211,9 @@ extern int posix_fallocate64 (int __fd, __off64_t __offset, __off64_t __len);
#endif
-/* Define some macros helping to catch common problems. */
-#if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus
+/* Define some inlines helping to catch common problems. */
+#if __USE_FORTIFY_LEVEL > 0 && defined __extern_always_inline \
+ && defined __va_arg_pack_len
# include <bits/fcntl2.h>
#endif
diff --git a/libc/io/sys/stat.h b/libc/io/sys/stat.h
index 15ae35b19..364c43f8f 100644
--- a/libc/io/sys/stat.h
+++ b/libc/io/sys/stat.h
@@ -444,7 +444,7 @@ extern int __xmknodat (int __ver, int __fd, __const char *__path,
__mode_t __mode, __dev_t *__dev)
__THROW __nonnull ((3, 5));
-#if defined __GNUC__ && __GNUC__ >= 2
+#if defined __GNUC__ && __GNUC__ >= 2 && defined __USE_EXTERN_INLINES
/* Inlined versions of the real stat and mknod functions. */
__extern_inline int
diff --git a/libc/libio/bits/stdio-ldbl.h b/libc/libio/bits/stdio-ldbl.h
index 7a4291225..c93e6c48f 100644
--- a/libc/libio/bits/stdio-ldbl.h
+++ b/libc/libio/bits/stdio-ldbl.h
@@ -1,5 +1,5 @@
/* -mlong-double-64 compatibility mode for stdio functions.
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -28,9 +28,17 @@ __LDBL_REDIR_DECL (sprintf)
__LDBL_REDIR_DECL (vfprintf)
__LDBL_REDIR_DECL (vprintf)
__LDBL_REDIR_DECL (vsprintf)
+#if defined __USE_ISOC99 && !defined __USE_GNU \
+ && !defined __REDIRECT \
+ && (defined __STRICT_ANSI__ || defined __USE_XOPEN2K)
+__LDBL_REDIR1_DECL (fscanf, __nldbl___isoc99_fscanf)
+__LDBL_REDIR1_DECL (scanf, __nldbl___isoc99_scanf)
+__LDBL_REDIR1_DECL (sscanf, __nldbl___isoc99_sscanf)
+#else
__LDBL_REDIR_DECL (fscanf)
__LDBL_REDIR_DECL (scanf)
__LDBL_REDIR_DECL (sscanf)
+#endif
__END_NAMESPACE_STD
#if defined __USE_BSD || defined __USE_ISOC99 || defined __USE_UNIX98
@@ -42,9 +50,16 @@ __END_NAMESPACE_C99
#ifdef __USE_ISOC99
__BEGIN_NAMESPACE_C99
+# if !defined __USE_GNU && !defined __REDIRECT \
+ && (defined __STRICT_ANSI__ || defined __USE_XOPEN2K)
+__LDBL_REDIR1_DECL (vfscanf, __nldbl___isoc99_vfscanf)
+__LDBL_REDIR1_DECL (vscanf, __nldbl___isoc99_vscanf)
+__LDBL_REDIR1_DECL (vsscanf, __nldbl___isoc99_vsscanf)
+# else
__LDBL_REDIR_DECL (vfscanf)
__LDBL_REDIR_DECL (vsscanf)
__LDBL_REDIR_DECL (vscanf)
+# endif
__END_NAMESPACE_C99
#endif
@@ -58,7 +73,7 @@ __LDBL_REDIR_DECL (obstack_printf)
__LDBL_REDIR_DECL (obstack_vprintf)
#endif
-#if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus
+#if __USE_FORTIFY_LEVEL > 0 && defined __extern_always_inline
__LDBL_REDIR_DECL (__sprintf_chk)
__LDBL_REDIR_DECL (__vsprintf_chk)
# if defined __USE_BSD || defined __USE_ISOC99 || defined __USE_UNIX98
diff --git a/libc/libio/bits/stdio.h b/libc/libio/bits/stdio.h
index 4d23f28db..49303c690 100644
--- a/libc/libio/bits/stdio.h
+++ b/libc/libio/bits/stdio.h
@@ -21,7 +21,7 @@
# error "Never include <bits/stdio.h> directly; use <stdio.h> instead."
#endif
-#ifdef __cplusplus
+#ifndef __extern_inline
# define __STDIO_INLINE inline
#else
# define __STDIO_INLINE __extern_inline
@@ -29,12 +29,16 @@
#ifdef __USE_EXTERN_INLINES
+/* For -D_FORTIFY_SOURCE{,=2} bits/stdio2.h will define a different
+ inline. */
+# if !(__USE_FORTIFY_LEVEL > 0 && defined __extern_always_inline)
/* Write formatted output to stdout from argument list ARG. */
__STDIO_INLINE int
vprintf (__const char *__restrict __fmt, _G_va_list __arg)
{
return vfprintf (stdout, __fmt, __arg);
}
+# endif
/* Read a character from stdin. */
__STDIO_INLINE int
@@ -135,7 +139,8 @@ __NTH (ferror_unlocked (FILE *__stream))
#endif /* Use extern inlines. */
-#if defined __USE_MISC && defined __GNUC__ && defined __OPTIMIZE__
+#if defined __USE_MISC && defined __GNUC__ && defined __OPTIMIZE__ \
+ && !defined __cplusplus
/* Perform some simple optimizations. */
# define fread_unlocked(ptr, size, n, stream) \
(__extension__ ((__builtin_constant_p (size) && __builtin_constant_p (n) \
diff --git a/libc/libio/bits/stdio2.h b/libc/libio/bits/stdio2.h
index 89f5770ee..841a0ff6a 100644
--- a/libc/libio/bits/stdio2.h
+++ b/libc/libio/bits/stdio2.h
@@ -27,11 +27,26 @@ extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen,
__const char *__restrict __format,
_G_va_list __ap) __THROW;
-#define sprintf(str, ...) \
+#ifdef __va_arg_pack
+__extern_always_inline int
+__NTH (sprintf (char *__restrict __s, __const char *__restrict __fmt, ...))
+{
+ return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
+ __bos (__s), __fmt, __va_arg_pack ());
+}
+#elif !defined __cplusplus
+# define sprintf(str, ...) \
__builtin___sprintf_chk (str, __USE_FORTIFY_LEVEL - 1, __bos (str), \
__VA_ARGS__)
-#define vsprintf(str, fmt, ap) \
- __builtin___vsprintf_chk (str, __USE_FORTIFY_LEVEL - 1, __bos (str), fmt, ap)
+#endif
+
+__extern_always_inline int
+__NTH (vsprintf (char *__restrict __s, __const char *__restrict __fmt,
+ _G_va_list __ap))
+{
+ return __builtin___vsprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
+ __bos (__s), __fmt, __ap);
+}
#if defined __USE_BSD || defined __USE_ISOC99 || defined __USE_UNIX98
@@ -42,12 +57,27 @@ extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag,
size_t __slen, __const char *__restrict __format,
_G_va_list __ap) __THROW;
-# define snprintf(str, len, ...) \
+# ifdef __va_arg_pack
+__extern_always_inline int
+__NTH (snprintf (char *__restrict __s, size_t __n,
+ __const char *__restrict __fmt, ...))
+{
+ return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
+ __bos (__s), __fmt, __va_arg_pack ());
+}
+# elif !defined __cplusplus
+# define snprintf(str, len, ...) \
__builtin___snprintf_chk (str, len, __USE_FORTIFY_LEVEL - 1, __bos (str), \
__VA_ARGS__)
-# define vsnprintf(str, len, fmt, ap) \
- __builtin___vsnprintf_chk (str, len, __USE_FORTIFY_LEVEL - 1, __bos (str), \
- fmt, ap)
+# endif
+
+__extern_always_inline int
+__NTH (vsnprintf (char *__restrict __s, size_t __n,
+ __const char *__restrict __fmt, _G_va_list __ap))
+{
+ return __builtin___vsnprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
+ __bos (__s), __fmt, __ap);
+}
#endif
@@ -61,14 +91,42 @@ extern int __vfprintf_chk (FILE *__restrict __stream, int __flag,
extern int __vprintf_chk (int __flag, __const char *__restrict __format,
_G_va_list __ap);
-# define printf(...) \
+# ifdef __va_arg_pack
+__extern_always_inline int
+fprintf (FILE *__restrict __stream, __const char *__restrict __fmt, ...)
+{
+ return __fprintf_chk (__stream, __USE_FORTIFY_LEVEL - 1, __fmt,
+ __va_arg_pack ());
+}
+
+__extern_always_inline int
+printf (__const char *__restrict __fmt, ...)
+{
+ return __printf_chk (__USE_FORTIFY_LEVEL - 1, __fmt, __va_arg_pack ());
+}
+# elif !defined __cplusplus
+# define printf(...) \
__printf_chk (__USE_FORTIFY_LEVEL - 1, __VA_ARGS__)
-# define fprintf(stream, ...) \
+# define fprintf(stream, ...) \
__fprintf_chk (stream, __USE_FORTIFY_LEVEL - 1, __VA_ARGS__)
-# define vprintf(format, ap) \
- __vprintf_chk (__USE_FORTIFY_LEVEL - 1, format, ap)
-# define vfprintf(stream, format, ap) \
- __vfprintf_chk (stream, __USE_FORTIFY_LEVEL - 1, format, ap)
+# endif
+
+__extern_always_inline int
+vprintf (__const char *__restrict __fmt, _G_va_list __ap)
+{
+#ifdef __USE_EXTERN_INLINES
+ return __vfprintf_chk (stdout, __USE_FORTIFY_LEVEL - 1, __fmt, __ap);
+#else
+ return __vprintf_chk (__USE_FORTIFY_LEVEL - 1, __fmt, __ap);
+#endif
+}
+
+__extern_always_inline int
+vfprintf (FILE *__restrict __stream,
+ __const char *__restrict __fmt, _G_va_list __ap)
+{
+ return __vfprintf_chk (__stream, __USE_FORTIFY_LEVEL - 1, __fmt, __ap);
+}
#endif
diff --git a/libc/libio/libio.h b/libc/libio/libio.h
index a80788385..643812f72 100644
--- a/libc/libio/libio.h
+++ b/libc/libio/libio.h
@@ -143,6 +143,9 @@
# define _IO_FLAGS2_FORTIFY 4
#endif
#define _IO_FLAGS2_USER_WBUF 8
+#ifdef _LIBC
+# define _IO_FLAGS2_SCANF_STD 16
+#endif
/* These are "formatting flags" matching the iostream fmtflags enum values. */
#define _IO_SKIPWS 01
diff --git a/libc/libio/libioP.h b/libc/libio/libioP.h
index b99b81743..854f04929 100644
--- a/libc/libio/libioP.h
+++ b/libc/libio/libioP.h
@@ -974,7 +974,7 @@ __attribute__ ((__always_inline__))
_IO_acquire_lock_clear_flags2_fct (_IO_FILE **p)
{
_IO_FILE *fp = *p;
- fp->_flags &= ~_IO_FLAGS2_FORTIFY;
+ fp->_flags2 &= ~(_IO_FLAGS2_FORTIFY | _IO_FLAGS2_SCANF_STD);
if ((fp->_flags & _IO_USER_LOCK) == 0)
_IO_funlockfile (fp);
}
diff --git a/libc/libio/stdio.h b/libc/libio/stdio.h
index 8e6694a6b..47c6cb0a9 100644
--- a/libc/libio/stdio.h
+++ b/libc/libio/stdio.h
@@ -410,6 +410,34 @@ extern int scanf (__const char *__restrict __format, ...) __wur;
/* Read formatted input from S. */
extern int sscanf (__const char *__restrict __s,
__const char *__restrict __format, ...) __THROW;
+
+#if defined __USE_ISOC99 && !defined __USE_GNU \
+ && (!defined __LDBL_COMPAT || !defined __REDIRECT) \
+ && (defined __STRICT_ANSI__ || defined __USE_XOPEN2K)
+# ifdef __REDIRECT
+/* For strict ISO C99 or POSIX compliance disallow %as, %aS and %a[
+ GNU extension which conflicts with valid %a followed by letter
+ s, S or [. */
+extern int __REDIRECT (fscanf, (FILE *__restrict __stream,
+ __const char *__restrict __format, ...),
+ __isoc99_fscanf) __wur;
+extern int __REDIRECT (scanf, (__const char *__restrict __format, ...),
+ __isoc99_scanf) __wur;
+extern int __REDIRECT (sscanf, (__const char *__restrict __s,
+ __const char *__restrict __format, ...),
+ __isoc99_sscanf) __THROW;
+# else
+extern int __isoc99_fscanf (FILE *__restrict __stream,
+ __const char *__restrict __format, ...) __wur;
+extern int __isoc99_scanf (__const char *__restrict __format, ...) __wur;
+extern int __isoc99_sscanf (__const char *__restrict __s,
+ __const char *__restrict __format, ...) __THROW;
+# define fscanf __isoc99_fscanf
+# define scanf __isoc99_scanf
+# define sscanf __isoc99_sscanf
+# endif
+#endif
+
__END_NAMESPACE_STD
#ifdef __USE_ISOC99
@@ -433,6 +461,42 @@ extern int vscanf (__const char *__restrict __format, _G_va_list __arg)
extern int vsscanf (__const char *__restrict __s,
__const char *__restrict __format, _G_va_list __arg)
__THROW __attribute__ ((__format__ (__scanf__, 2, 0)));
+
+# if !defined __USE_GNU \
+ && (!defined __LDBL_COMPAT || !defined __REDIRECT) \
+ && (defined __STRICT_ANSI__ || defined __USE_XOPEN2K)
+# ifdef __REDIRECT
+/* For strict ISO C99 or POSIX compliance disallow %as, %aS and %a[
+ GNU extension which conflicts with valid %a followed by letter
+ s, S or [. */
+extern int __REDIRECT (vfscanf,
+ (FILE *__restrict __s,
+ __const char *__restrict __format, _G_va_list __arg),
+ __isoc99_vfscanf)
+ __attribute__ ((__format__ (__scanf__, 2, 0))) __wur;
+extern int __REDIRECT (vscanf, (__const char *__restrict __format,
+ _G_va_list __arg), __isoc99_vfscanf)
+ __attribute__ ((__format__ (__scanf__, 1, 0))) __wur;
+extern int __REDIRECT (vsscanf,
+ (__const char *__restrict __s,
+ __const char *__restrict __format, _G_va_list __arg),
+ __isoc99_vsscanf)
+ __THROW __attribute__ ((__format__ (__scanf__, 2, 0)));
+# else
+extern int __isoc99_vfscanf (FILE *__restrict __s,
+ __const char *__restrict __format,
+ _G_va_list __arg) __wur;
+extern int __isoc99_vscanf (__const char *__restrict __format,
+ _G_va_list __arg) __wur;
+extern int __isoc99_vsscanf (__const char *__restrict __s,
+ __const char *__restrict __format,
+ _G_va_list __arg) __THROW;
+# define vfscanf __isoc99_vfscanf
+# define vscanf __isoc99_vsscanf
+# define vsscanf __isoc99_vsscanf
+# endif
+# endif
+
__END_NAMESPACE_C99
#endif /* Use ISO C9x. */
@@ -838,7 +902,7 @@ extern void funlockfile (FILE *__stream) __THROW;
#ifdef __USE_EXTERN_INLINES
# include <bits/stdio.h>
#endif
-#if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus
+#if __USE_FORTIFY_LEVEL > 0 && defined __extern_always_inline
# include <bits/stdio2.h>
#endif
#ifdef __LDBL_COMPAT
diff --git a/libc/locale/programs/charmap-dir.c b/libc/locale/programs/charmap-dir.c
index dc14c94fc..90c2599a6 100644
--- a/libc/locale/programs/charmap-dir.c
+++ b/libc/locale/programs/charmap-dir.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2001, 2002, 2003, 2005, 2007
+ Free Software Foundation, Inc.
This file is part of the GNU C Library.
This program is free software; you can redistribute it and/or modify
diff --git a/libc/localedata/ChangeLog b/libc/localedata/ChangeLog
index 7d39671a0..9d35cdd41 100644
--- a/libc/localedata/ChangeLog
+++ b/libc/localedata/ChangeLog
@@ -1,3 +1,11 @@
+2007-09-23 Ulrich Drepper <drepper@redhat.com>
+
+ [BZ #4556]
+ * locales/de_CH: Fix d_fmt.
+
+ [BZ #4972]
+ * charmaps/MAC-CENTRALEUROPE: New file.
+
2007-08-24 Ulrich Drepper <drepper@redhat.com>
[BZ #3842]
diff --git a/libc/localedata/charmaps/MAC-CENTRALEUROPE b/libc/localedata/charmaps/MAC-CENTRALEUROPE
new file mode 100644
index 000000000..386cfe916
--- /dev/null
+++ b/libc/localedata/charmaps/MAC-CENTRALEUROPE
@@ -0,0 +1,261 @@
+<code_set_name> MAC_CENTRALEUROPE
+<comment> %
+<escape_char> /
+
+%alias CP1282
+<U0000> /x00 NULL
+<U0001> /x01 START OF HEADING
+<U0002> /x02 START OF TEXT
+<U0003> /x03 END OF TEXT
+<U0004> /x04 END OF TRANSMISSION
+<U0005> /x05 ENQUIRY
+<U0006> /x06 ACKNOWLEDGE
+<U0007> /x07 BELL
+<U0008> /x08 BACKSPACE
+<U0009> /x09 HORIZONTAL TABULATION
+<U000A> /x0a LINE FEED
+<U000B> /x0b VERTICAL TABULATION
+<U000C> /x0c FORM FEED
+<U000D> /x0d CARRIAGE RETURN
+<U000E> /x0e SHIFT OUT
+<U000F> /x0f SHIFT IN
+<U0010> /x10 DATA LINK ESCAPE
+<U0011> /x11 DEVICE CONTROL ONE
+<U0012> /x12 DEVICE CONTROL TWO
+<U0013> /x13 DEVICE CONTROL THREE
+<U0014> /x14 DEVICE CONTROL FOUR
+<U0015> /x15 NEGATIVE ACKNOWLEDGE
+<U0016> /x16 SYNCHRONOUS IDLE
+<U0017> /x17 END OF TRANSMISSION BLOCK
+<U0018> /x18 CANCEL
+<U0019> /x19 END OF MEDIUM
+<U001A> /x1a SUBSTITUTE
+<U001B> /x1b ESCAPE
+<U001C> /x1c FILE SEPARATOR
+<U001D> /x1d GROUP SEPARATOR
+<U001E> /x1e RECORD SEPARATOR
+<U001F> /x1f UNIT SEPARATOR
+<U0020> /x20 SPACE
+<U0021> /x21 EXCLAMATION MARK
+<U0022> /x22 QUOTATION MARK
+<U0023> /x23 NUMBER SIGN
+<U0024> /x24 DOLLAR SIGN
+<U0025> /x25 PERCENT SIGN
+<U0026> /x26 AMPERSAND
+<U0027> /x27 APOSTROPHE
+<U0028> /x28 LEFT PARENTHESIS
+<U0029> /x29 RIGHT PARENTHESIS
+<U002A> /x2a ASTERISK
+<U002B> /x2b PLUS SIGN
+<U002C> /x2c COMMA
+<U002D> /x2d HYPHEN-MINUS
+<U002E> /x2e FULL STOP
+<U002F> /x2f SOLIDUS
+<U0030> /x30 DIGIT ZERO
+<U0031> /x31 DIGIT ONE
+<U0032> /x32 DIGIT TWO
+<U0033> /x33 DIGIT THREE
+<U0034> /x34 DIGIT FOUR
+<U0035> /x35 DIGIT FIVE
+<U0036> /x36 DIGIT SIX
+<U0037> /x37 DIGIT SEVEN
+<U0038> /x38 DIGIT EIGHT
+<U0039> /x39 DIGIT NINE
+<U003A> /x3a COLON
+<U003B> /x3b SEMICOLON
+<U003C> /x3c LESS-THAN SIGN
+<U003D> /x3d EQUALS SIGN
+<U003E> /x3e GREATER-THAN SIGN
+<U003F> /x3f QUESTION MARK
+<U0040> /x40 COMMERCIAL AT
+<U0041> /x41 LATIN CAPITAL LETTER A
+<U0042> /x42 LATIN CAPITAL LETTER B
+<U0043> /x43 LATIN CAPITAL LETTER C
+<U0044> /x44 LATIN CAPITAL LETTER D
+<U0045> /x45 LATIN CAPITAL LETTER E
+<U0046> /x46 LATIN CAPITAL LETTER F
+<U0047> /x47 LATIN CAPITAL LETTER G
+<U0048> /x48 LATIN CAPITAL LETTER H
+<U0049> /x49 LATIN CAPITAL LETTER I
+<U004A> /x4a LATIN CAPITAL LETTER J
+<U004B> /x4b LATIN CAPITAL LETTER K
+<U004C> /x4c LATIN CAPITAL LETTER L
+<U004D> /x4d LATIN CAPITAL LETTER M
+<U004E> /x4e LATIN CAPITAL LETTER N
+<U004F> /x4f LATIN CAPITAL LETTER O
+<U0050> /x50 LATIN CAPITAL LETTER P
+<U0051> /x51 LATIN CAPITAL LETTER Q
+<U0052> /x52 LATIN CAPITAL LETTER R
+<U0053> /x53 LATIN CAPITAL LETTER S
+<U0054> /x54 LATIN CAPITAL LETTER T
+<U0055> /x55 LATIN CAPITAL LETTER U
+<U0056> /x56 LATIN CAPITAL LETTER V
+<U0057> /x57 LATIN CAPITAL LETTER W
+<U0058> /x58 LATIN CAPITAL LETTER X
+<U0059> /x59 LATIN CAPITAL LETTER Y
+<U005A> /x5a LATIN CAPITAL LETTER Z
+<U005B> /x5b LEFT SQUARE BRACKET
+<U005C> /x5c REVERSE SOLIDUS
+<U005D> /x5d RIGHT SQUARE BRACKET
+<U005E> /x5e CIRCUMFLEX ACCENT
+<U005F> /x5f LOW LINE
+<U0060> /x60 GRAVE ACCENT
+<U0061> /x61 LATIN SMALL LETTER A
+<U0062> /x62 LATIN SMALL LETTER B
+<U0063> /x63 LATIN SMALL LETTER C
+<U0064> /x64 LATIN SMALL LETTER D
+<U0065> /x65 LATIN SMALL LETTER E
+<U0066> /x66 LATIN SMALL LETTER F
+<U0067> /x67 LATIN SMALL LETTER G
+<U0068> /x68 LATIN SMALL LETTER H
+<U0069> /x69 LATIN SMALL LETTER I
+<U006A> /x6a LATIN SMALL LETTER J
+<U006B> /x6b LATIN SMALL LETTER K
+<U006C> /x6c LATIN SMALL LETTER L
+<U006D> /x6d LATIN SMALL LETTER M
+<U006E> /x6e LATIN SMALL LETTER N
+<U006F> /x6f LATIN SMALL LETTER O
+<U0070> /x70 LATIN SMALL LETTER P
+<U0071> /x71 LATIN SMALL LETTER Q
+<U0072> /x72 LATIN SMALL LETTER R
+<U0073> /x73 LATIN SMALL LETTER S
+<U0074> /x74 LATIN SMALL LETTER T
+<U0075> /x75 LATIN SMALL LETTER U
+<U0076> /x76 LATIN SMALL LETTER V
+<U0077> /x77 LATIN SMALL LETTER W
+<U0078> /x78 LATIN SMALL LETTER X
+<U0079> /x79 LATIN SMALL LETTER Y
+<U007A> /x7a LATIN SMALL LETTER Z
+<U007B> /x7b LEFT CURLY BRACKET
+<U007C> /x7c VERTICAL LINE
+<U007D> /x7d RIGHT CURLY BRACKET
+<U007E> /x7e TILDE
+<U007F> /x7f DELETE
+<U00C4> /x80 LATIN CAPITAL LETTER A WITH DIAERESIS
+<U0100> /x81 LATIN CAPITAL LETTER A WITH MACRON
+<U0101> /x82 LATIN SMALL LETTER A WITH MACRON
+<U00C9> /x83 LATIN CAPITAL LETTER E WITH ACUTE
+<U0104> /x84 LATIN CAPITAL LETTER A WITH OGONEK
+<U00D6> /x85 LATIN CAPITAL LETTER O WITH DIAERESIS
+<U00DC> /x86 LATIN CAPITAL LETTER U WITH DIAERESIS
+<U00E1> /x87 LATIN SMALL LETTER A WITH ACUTE
+<U0105> /x88 LATIN SMALL LETTER A WITH OGONEK
+<U010C> /x89 LATIN CAPITAL LETTER C WITH CARON
+<U00E4> /x8a LATIN SMALL LETTER A WITH DIAERESIS
+<U010D> /x8b LATIN SMALL LETTER C WITH CARON
+<U0106> /x8c LATIN CAPITAL LETTER C WITH ACUTE
+<U0107> /x8d LATIN SMALL LETTER C WITH ACUTE
+<U00E9> /x8e LATIN SMALL LETTER E WITH ACUTE
+<U0179> /x8f LATIN CAPITAL LETTER Z WITH ACUTE
+<U017A> /x90 LATIN SMALL LETTER Z WITH ACUTE
+<U010E> /x91 LATIN CAPITAL LETTER D WITH CARON
+<U00ED> /x92 LATIN SMALL LETTER I WITH ACUTE
+<U010F> /x93 LATIN SMALL LETTER D WITH CARON
+<U0112> /x94 LATIN CAPITAL LETTER E WITH MACRON
+<U0113> /x95 LATIN SMALL LETTER E WITH MACRON
+<U0116> /x96 LATIN CAPITAL LETTER E WITH DOT ABOVE
+<U00F3> /x97 LATIN SMALL LETTER O WITH ACUTE
+<U0117> /x98 LATIN SMALL LETTER E WITH DOT ABOVE
+<U00F4> /x99 LATIN SMALL LETTER O WITH CIRCUMFLEX
+<U00F6> /x9a LATIN SMALL LETTER O WITH DIAERESIS
+<U00F5> /x9b LATIN SMALL LETTER O WITH TILDE
+<U00FA> /x9c LATIN SMALL LETTER U WITH ACUTE
+<U011A> /x9d LATIN CAPITAL LETTER E WITH CARON
+<U011B> /x9e LATIN SMALL LETTER E WITH CARON
+<U00FC> /x9f LATIN SMALL LETTER U WITH DIAERESIS
+<U2020> /xa0 DAGGER
+<U00B0> /xa1 DEGREE SIGN
+<U0118> /xa2 LATIN CAPITAL LETTER E WITH OGONEK
+<U00A3> /xa3 POUND SIGN
+<U00A7> /xa4 SECTION SIGN
+<U2022> /xa5 BULLET
+<U00B6> /xa6 PILCROW SIGN
+<U00DF> /xa7 LATIN SMALL LETTER SHARP S
+<U00AE> /xa8 REGISTERED SIGN
+<U00A9> /xa9 COPYRIGHT SIGN
+<U2122> /xaa TRADE MARK SIGN
+<U0119> /xab LATIN SMALL LETTER E WITH OGONEK
+<U00A8> /xac DIAERESIS
+<U2260> /xad NOT EQUAL TO
+<U0123> /xae LATIN SMALL LETTER G WITH CEDILLA
+<U012E> /xaf LATIN CAPITAL LETTER I WITH OGONEK
+<U012F> /xb0 LATIN SMALL LETTER I WITH OGONEK
+<U012A> /xb1 LATIN CAPITAL LETTER I WITH MACRON
+<U2264> /xb2 LESS-THAN OR EQUAL TO
+<U2265> /xb3 GREATER-THAN OR EQUAL TO
+<U012B> /xb4 LATIN SMALL LETTER I WITH MACRON
+<U0136> /xb5 LATIN CAPITAL LETTER K WITH CEDILLA
+<U2202> /xb6 PARTIAL DIFFERENTIAL
+<U2211> /xb7 N-ARY SUMMATION
+<U0142> /xb8 LATIN SMALL LETTER L WITH STROKE
+<U013B> /xb9 LATIN CAPITAL LETTER L WITH CEDILLA
+<U013C> /xba LATIN SMALL LETTER L WITH CEDILLA
+<U013D> /xbb LATIN CAPITAL LETTER L WITH CARON
+<U013E> /xbc LATIN SMALL LETTER L WITH CARON
+<U0139> /xbd LATIN CAPITAL LETTER L WITH ACUTE
+<U013A> /xbe LATIN SMALL LETTER L WITH ACUTE
+<U0145> /xbf LATIN CAPITAL LETTER N WITH CEDILLA
+<U0146> /xc0 LATIN SMALL LETTER N WITH CEDILLA
+<U0143> /xc1 LATIN CAPITAL LETTER N WITH ACUTE
+<U00AC> /xc2 NOT SIGN
+<U221A> /xc3 SQUARE ROOT
+<U0144> /xc4 LATIN SMALL LETTER N WITH ACUTE
+<U0147> /xc5 LATIN CAPITAL LETTER N WITH CARON
+<U2206> /xc6 INCREMENT
+<U00AB> /xc7 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+<U00BB> /xc8 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+<U2026> /xc9 HORIZONTAL ELLIPSIS
+<U00A0> /xca NO-BREAK SPACE
+<U0148> /xcb LATIN SMALL LETTER N WITH CARON
+<U0150> /xcc LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+<U00D5> /xcd LATIN CAPITAL LETTER O WITH TILDE
+<U0151> /xce LATIN SMALL LETTER O WITH DOUBLE ACUTE
+<U014C> /xcf LATIN CAPITAL LETTER O WITH MACRON
+<U2013> /xd0 EN DASH
+<U2014> /xd1 EM DASH
+<U201C> /xd2 LEFT DOUBLE QUOTATION MARK
+<U201D> /xd3 RIGHT DOUBLE QUOTATION MARK
+<U2018> /xd4 LEFT SINGLE QUOTATION MARK
+<U2019> /xd5 RIGHT SINGLE QUOTATION MARK
+<U00F7> /xd6 DIVISION SIGN
+<U25CA> /xd7 LOZENGE
+<U014D> /xd8 LATIN SMALL LETTER O WITH MACRON
+<U0154> /xd9 LATIN CAPITAL LETTER R WITH ACUTE
+<U0155> /xda LATIN SMALL LETTER R WITH ACUTE
+<U0158> /xdb LATIN CAPITAL LETTER R WITH CARON
+<U2039> /xdc SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+<U203A> /xdd SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+<U0159> /xde LATIN SMALL LETTER R WITH CARON
+<U0156> /xdf LATIN CAPITAL LETTER R WITH CEDILLA
+<U0157> /xe0 LATIN SMALL LETTER R WITH CEDILLA
+<U0160> /xe1 LATIN CAPITAL LETTER S WITH CARON
+<U201A> /xe2 SINGLE LOW-9 QUOTATION MARK
+<U201E> /xe3 DOUBLE LOW-9 QUOTATION MARK
+<U0161> /xe4 LATIN SMALL LETTER S WITH CARON
+<U015A> /xe5 LATIN CAPITAL LETTER S WITH ACUTE
+<U015B> /xe6 LATIN SMALL LETTER S WITH ACUTE
+<U00C1> /xe7 LATIN CAPITAL LETTER A WITH ACUTE
+<U0164> /xe8 LATIN CAPITAL LETTER T WITH CARON
+<U0165> /xe9 LATIN SMALL LETTER T WITH CARON
+<U00CD> /xea LATIN CAPITAL LETTER I WITH ACUTE
+<U017D> /xeb LATIN CAPITAL LETTER Z WITH CARON
+<U017E> /xec LATIN SMALL LETTER Z WITH CARON
+<U016A> /xed LATIN CAPITAL LETTER U WITH MACRON
+<U00D3> /xee LATIN CAPITAL LETTER O WITH ACUTE
+<U00D4> /xef LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+<U016B> /xf0 LATIN SMALL LETTER U WITH MACRON
+<U016E> /xf1 LATIN CAPITAL LETTER U WITH RING ABOVE
+<U00DA> /xf2 LATIN CAPITAL LETTER U WITH ACUTE
+<U016F> /xf3 LATIN SMALL LETTER U WITH RING ABOVE
+<U0170> /xf4 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+<U0171> /xf5 LATIN SMALL LETTER U WITH DOUBLE ACUTE
+<U0172> /xf6 LATIN CAPITAL LETTER U WITH OGONEK
+<U0173> /xf7 LATIN SMALL LETTER U WITH OGONEK
+<U00DD> /xf8 LATIN CAPITAL LETTER Y WITH ACUTE
+<U00FD> /xf9 LATIN SMALL LETTER Y WITH ACUTE
+<U0137> /xfa LATIN SMALL LETTER K WITH CEDILLA
+<U017B> /xfb LATIN CAPITAL LETTER Z WITH DOT ABOVE
+<U0141> /xfc LATIN CAPITAL LETTER L WITH STROKE
+<U017C> /xfd LATIN SMALL LETTER Z WITH DOT ABOVE
+<U0122> /xfe LATIN CAPITAL LETTER G WITH CEDILLA
+<U02C7> /xff CARON
diff --git a/libc/localedata/locales/de_CH b/libc/localedata/locales/de_CH
index 84963b56f..170a797d3 100644
--- a/libc/localedata/locales/de_CH
+++ b/libc/localedata/locales/de_CH
@@ -15,7 +15,6 @@ escape_char /
% Date: 1996-10-15
% Users: general
% Repertoiremap: mnemonic.ds
-% Charset: ISO-8859-1
% Distribution and use is free, also
% for commercial purposes.
@@ -30,7 +29,7 @@ fax ""
language "German"
territory "Switzerland"
revision "1.0"
-date "2000-06-29"
+date "2007-09-23"
%
category "de_CH:2000";LC_IDENTIFICATION
category "de_CH:2000";LC_CTYPE
@@ -114,7 +113,7 @@ mon "<U004A><U0061><U006E><U0075><U0061><U0072>";/
"<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
"<U0044><U0065><U007A><U0065><U006D><U0062><U0065><U0072>"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
-d_fmt "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>"
+d_fmt "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
t_fmt "<U0025><U0054>"
am_pm "";""
t_fmt_ampm ""
diff --git a/libc/math/bits/cmathcalls.h b/libc/math/bits/cmathcalls.h
index db7f69c72..9c7fdbe9e 100644
--- a/libc/math/bits/cmathcalls.h
+++ b/libc/math/bits/cmathcalls.h
@@ -132,7 +132,8 @@ __MATHDECL (_Mdouble_,creal, (_Mdouble_complex_ __z));
/* Now some optimized versions. GCC has handy notations for these
functions. Recent GCC handles these as builtin functions so does
not need inlines. */
-#if defined __GNUC__ && !__GNUC_PREREQ (2, 97) && defined __OPTIMIZE__
+#if defined __GNUC__ && !__GNUC_PREREQ (2, 97) && defined __OPTIMIZE__ \
+ && defined __extern_inline
/* Imaginary part of Z. */
__extern_inline _Mdouble_
diff --git a/libc/misc/bits/syslog-ldbl.h b/libc/misc/bits/syslog-ldbl.h
index d153c8f8c..714e70c20 100644
--- a/libc/misc/bits/syslog-ldbl.h
+++ b/libc/misc/bits/syslog-ldbl.h
@@ -27,7 +27,7 @@ __LDBL_REDIR_DECL (syslog)
__LDBL_REDIR_DECL (vsyslog)
#endif
-#if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus
+#if __USE_FORTIFY_LEVEL > 0 && defined __extern_always_inline
__LDBL_REDIR_DECL (__syslog_chk)
# ifdef __USE_BSD
diff --git a/libc/misc/bits/syslog.h b/libc/misc/bits/syslog.h
index c0427214e..853b30c84 100644
--- a/libc/misc/bits/syslog.h
+++ b/libc/misc/bits/syslog.h
@@ -1,5 +1,5 @@
/* Checking macros for syslog functions.
- Copyright (C) 2005 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,8 +25,16 @@
extern void __syslog_chk (int __pri, int __flag, __const char *__fmt, ...)
__attribute__ ((__format__ (__printf__, 3, 4)));
-#define syslog(pri, ...) \
+#ifdef __va_arg_pack
+__extern_always_inline void
+syslog (int __pri, __const char *__fmt, ...)
+{
+ return __syslog_chk (__pri, __USE_FORTIFY_LEVEL - 1, __fmt, __va_arg_pack ());
+}
+#elif !defined __cplusplus
+# define syslog(pri, ...) \
__syslog_chk (pri, __USE_FORTIFY_LEVEL - 1, __VA_ARGS__)
+#endif
#ifdef __USE_BSD
@@ -34,6 +42,9 @@ extern void __vsyslog_chk (int __pri, int __flag, __const char *__fmt,
__gnuc_va_list __ap)
__attribute__ ((__format__ (__printf__, 3, 0)));
-# define vsyslog(pri, fmt, ap) \
- __vsyslog_chk (pri, __USE_FORTIFY_LEVEL - 1, fmt, ap)
+__extern_always_inline void
+vsyslog (int __pri, __const char *__fmt, __gnuc_va_list __ap)
+{
+ return __vsyslog_chk (__pri, __USE_FORTIFY_LEVEL - 1, __fmt, __ap);
+}
#endif
diff --git a/libc/misc/sys/cdefs.h b/libc/misc/sys/cdefs.h
index ab7d327c5..26b9490ba 100644
--- a/libc/misc/sys/cdefs.h
+++ b/libc/misc/sys/cdefs.h
@@ -132,6 +132,7 @@
#define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)
#define __bos0(ptr) __builtin_object_size (ptr, 0)
#define __warndecl(name, msg) extern void name (void)
+#define __errordecl(name, msg) extern void name (void)
/* Support for flexible arrays. */
@@ -281,13 +282,22 @@
/* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
inline semantics, unless -fgnu89-inline is used. */
-#ifdef __GNUC_STDC_INLINE__
-# define __extern_inline extern __inline __attribute__ ((__gnu_inline__))
-# define __extern_always_inline \
+#if !defined __cplusplus || __GNUC_PREREQ (4,3)
+# if defined __GNUC_STDC_INLINE__ || defined __cplusplus
+# define __extern_inline extern __inline __attribute__ ((__gnu_inline__))
+# define __extern_always_inline \
extern __always_inline __attribute__ ((__gnu_inline__))
-#else
-# define __extern_inline extern __inline
-# define __extern_always_inline extern __always_inline
+# else
+# define __extern_inline extern __inline
+# define __extern_always_inline extern __always_inline
+# endif
+#endif
+
+/* GCC 4.3 and above allow passing all anonymous arguments of an
+ __extern_always_inline function to some other vararg function. */
+#if __GNUC_PREREQ (4,3)
+# define __va_arg_pack() __builtin_va_arg_pack ()
+# define __va_arg_pack_len() __builtin_va_arg_pack_len ()
#endif
/* It is possible to compile containing GCC extensions even if GCC is
diff --git a/libc/misc/sys/syslog.h b/libc/misc/sys/syslog.h
index 4ed57c278..22da1ce3e 100644
--- a/libc/misc/sys/syslog.h
+++ b/libc/misc/sys/syslog.h
@@ -203,7 +203,7 @@ extern void vsyslog (int __pri, __const char *__fmt, __gnuc_va_list __ap)
/* Define some macros helping to catch buffer overflows. */
-#if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus
+#if __USE_FORTIFY_LEVEL > 0 && defined __extern_always_inline
# include <bits/syslog.h>
#endif
#ifdef __LDBL_COMPAT
diff --git a/libc/po/cs.po b/libc/po/cs.po
index d5dfdaec8..c75e0b3f4 100644
--- a/libc/po/cs.po
+++ b/libc/po/cs.po
@@ -5,4781 +5,7051 @@
# Thanks to:
# Petr Kolar <Petr.Kolar@vslib.cz>
# Stanislav Brabec <utx@k332.feld.cvut.cz>, 1998.
+# Petr Pisar <petr.pisar@atlas.cz>, 2007.
#
# Describe of some function:
# error(status, errnum, "message") => "progname: message: error_message"
# perror("message") => "message: error_message"
#
# Notes:
-# host, name, hostname - jméno, název, oznaèení?
+# host, name, hostname - jméno, název, oznaÄení?
# Untranslated: netid, nettype
# Translations of "socket" => "soket",
-# byte => bajt, "out of memory" => "nedostatek pamìti"
+# byte => bajt, "out of memory" => "nedostatek paměti"
+# collation something => ???
+# ellipsis range => ???
#
msgid ""
msgstr ""
-"Project-Id-Version: libc 2.1.3\n"
-"POT-Creation-Date: 2000-02-16 10:39-0800\n"
-"PO-Revision-Date: 2000-04-18 13:36+02:00\n"
-"Last-Translator: Vladimir Michl <Vladimir.Michl@seznam.cz>\n"
-"Language-Team: Czech <cs@li.org>\n"
+"Project-Id-Version: libc 2.6.1\n"
+"POT-Creation-Date: 2007-08-04 11:37+0200\n"
+"PO-Revision-Date: 2007-08-29 22:15+0200\n"
+"Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
+"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: nis/nis_print.c:273
-msgid "\t\tAccess Rights : "
-msgstr "\t\tPøístupová práva : "
+#: argp/argp-help.c:228
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: Parametr ARGP_HELP_FMT vyžaduje hodnotu"
-#: nis/nis_print.c:271
-msgid "\t\tAttributes : "
-msgstr "\t\tAtributy : "
+#: argp/argp-help.c:238
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Neznámý parametr ARGP_HELP_FMT"
-#: sunrpc/rpc_main.c:1414
+# Garbage -> nesmysly
+#: argp/argp-help.c:251
#, c-format
-msgid "\t%s [-abkCLNTM][-Dname[=value]] [-i size] [-I [-K seconds]] [-Y path] infile\n"
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Smetí v ARGP_HELP_FMT: %s"
+
+#: argp/argp-help.c:1215
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Argumenty požadované dlouhými pÅ™epínaÄi jsou také požadovány jejich krátkými formami."
+
+#: argp/argp-help.c:1601
+msgid "Usage:"
+msgstr "Použití:"
+
+#: argp/argp-help.c:1605
+msgid " or: "
+msgstr " nebo: "
+
+#: argp/argp-help.c:1617
+msgid " [OPTION...]"
+msgstr " [PŘEPÃNAČ…]"
+
+#: argp/argp-help.c:1644
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "Více informací získáte příkazy „%s --help“ nebo „%s --usage“.\n"
+
+#: argp/argp-help.c:1672
+#, c-format
+msgid "Report bugs to %s.\n"
msgstr ""
-"\t%s [-abkCLNTM][-Dnázev[=hodnota]] [-i velikost] [-I [-K sekundy]]\n"
-" [-Y cesta] vst_soubor\n"
+"Chyby v programu oznamujte na adrese %s (pouze anglicky),\n"
+"připomínky k překladu zasílejte na adresu\n"
+"<translation-team-cs@lists.sourceforge.net> (Äesky).\n"
+
+#: argp/argp-parse.c:102
+msgid "Give this help list"
+msgstr "Vypíše tuto nápovědu"
+
+#: argp/argp-parse.c:103
+msgid "Give a short usage message"
+msgstr "Vypíše krátký návod na použití"
+
+#: argp/argp-parse.c:104
+msgid "Set the program name"
+msgstr "Nastaví název programu"
+
+#: argp/argp-parse.c:106
+msgid "Hang for SECS seconds (default 3600)"
+msgstr "PoÄkání SECS sekund (implicitnÄ› 3600)"
+
+#: argp/argp-parse.c:167
+msgid "Print program version"
+msgstr "Vypíše oznaÄení verze programu"
+
+#: argp/argp-parse.c:183
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(CHYBA PROGRAMU) Neznámá verze!?"
-#: sunrpc/rpc_main.c:1416
+#: argp/argp-parse.c:623
#, c-format
-msgid "\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o outfile] [infile]\n"
+msgid "%s: Too many arguments\n"
+msgstr "%s: Příliš mnoho argumentů\n"
+
+#: argp/argp-parse.c:766
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(CHYBA PROGRAMU) PÅ™epínaÄ mÄ›l být rozpoznán!?"
+
+#: assert/assert-perr.c:57
+#, c-format
+msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n"
+msgstr "%s%s%s:%u: %s%sNeoÄekávaná chyba: %s.\n"
+
+#: assert/assert.c:57
+#, c-format
+msgid "%s%s%s:%u: %s%sAssertion `%s' failed.\n"
+msgstr "%s%s%s:%u: %s%sPředpoklad „%s“ nesplněn.\n"
+
+#: catgets/gencat.c:110 catgets/gencat.c:114 nscd/nscd.c:97 nss/makedb.c:61
+msgid "NAME"
+msgstr "NÃZEV"
+
+# See "gencat --help" output for better understadning why leading space is
+# needed.
+#: catgets/gencat.c:111
+msgid "Create C header file NAME containing symbol definitions"
+msgstr " Vytvoří hlaviÄkový soubor NÃZEV pro jazyk C obsahující definice symbolů"
+
+#: catgets/gencat.c:113
+msgid "Do not use existing catalog, force new output file"
+msgstr " Nepoužívá existující katalog, vytvoří nový výstupní soubor"
+
+#: catgets/gencat.c:114 nss/makedb.c:61
+msgid "Write output to file NAME"
+msgstr "Zapsání výstup do souboru SOUBOR"
+
+#: catgets/gencat.c:119
+msgid ""
+"Generate message catalog.\vIf INPUT-FILE is -, input is read from standard input. If OUTPUT-FILE\n"
+"is -, output is written to standard output.\n"
msgstr ""
-"\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o výst_soubor]\n"
-" [vst_soubor]\n"
+"Generuje katalog zpráv.\vJe-li VSTUPNÃ_SOUBOR -, vstup bude naÄten ze standardního vstupu.\n"
+"Je-li VÃSTUPNÃ_SOUBOR -, výstup bude zapsán na standardní výstup.\n"
+
+#: catgets/gencat.c:124
+msgid ""
+"-o OUTPUT-FILE [INPUT-FILE]...\n"
+"[OUTPUT-FILE [INPUT-FILE]...]"
+msgstr ""
+"-o VÃSTUPNÃ_SOUBOR [VSTUPNÃ_SOUBOR]…\n"
+"[ VÃSTUPNÃ_SOUBOR [VSTUPNÃ_SOUBOR]…]"
-#: sunrpc/rpc_main.c:1419
+#: catgets/gencat.c:232 debug/pcprofiledump.c:199 iconv/iconv_prog.c:411
+#: iconv/iconvconfig.c:380 locale/programs/localedef.c:371
+#: login/programs/pt_chown.c:88 malloc/memusagestat.c:526 nss/makedb.c:231
+msgid ""
+"For bug reporting instructions, please see:\n"
+"<http://www.gnu.org/software/libc/bugs.html>.\n"
+msgstr ""
+"Rady, jak nahlásit chybu, naleznete na:\n"
+"<http://www.gnu.org/software/libc/bugs.html>.\n"
+
+#: catgets/gencat.c:246 debug/xtrace.sh:64 elf/ldconfig.c:287
+#: elf/ldd.bash.in:39 elf/sprof.c:355 iconv/iconv_prog.c:426
+#: iconv/iconvconfig.c:395 locale/programs/locale.c:275
+#: locale/programs/localedef.c:387 login/programs/pt_chown.c:59
+#: malloc/memusage.sh:71 nscd/nscd.c:406 nss/getent.c:83 nss/makedb.c:245
+#: posix/getconf.c:1012
#, c-format
-msgid "\t%s [-n netid]* [-o outfile] [infile]\n"
-msgstr "\t%s [-n netid]* [-o výst_soubor] [vst_soubor]\n"
+msgid ""
+"Copyright (C) %s Free Software Foundation, Inc.\n"
+"This is free software; see the source for copying conditions. There is NO\n"
+"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+msgstr ""
+"Copyright © %s Free Software Foundation, Inc.\n"
+"Toto je volné programové vybavení; podmínky pro kopírování a rozšiřování\n"
+"naleznete ve zdrojových textech. Toto programové vybavení je zcela BEZ ZÃRUKY,\n"
+"a to i bez záruky PRODEJNOSTI nebo VHODNOSTI PRO NĚJAKà KONKRÉTNà ÚČEL.\n"
-#: sunrpc/rpc_main.c:1418
+#: catgets/gencat.c:251 debug/xtrace.sh:68 elf/ldconfig.c:292 elf/sprof.c:361
+#: iconv/iconv_prog.c:431 iconv/iconvconfig.c:400 locale/programs/locale.c:280
+#: locale/programs/localedef.c:392 malloc/memusage.sh:75 nscd/nscd.c:411
+#: nss/getent.c:88 nss/makedb.c:250 posix/getconf.c:1017
#, c-format
-msgid "\t%s [-s nettype]* [-o outfile] [infile]\n"
-msgstr "\t%s [-s nettype]* [-o výst_soubor] [vst_soubor]\n"
+msgid "Written by %s.\n"
+msgstr "Autor: %s.\n"
-#: nis/nis_print.c:235
-msgid "\tAccess rights: "
-msgstr "\tPøístupová práva: "
+#: catgets/gencat.c:282
+msgid "*standard input*"
+msgstr "*standardní vstup*"
-#: nis/nis_print.c:293
+#: catgets/gencat.c:288 iconv/iconv_charmap.c:158 iconv/iconv_prog.c:298
+#: nss/makedb.c:170
#, c-format
-msgid "\tEntry data of type %s\n"
-msgstr "\tVstupní data typu %s\n"
+msgid "cannot open input file `%s'"
+msgstr "vstupní soubor „%s“ nelze otevřít"
+
+#: catgets/gencat.c:417 catgets/gencat.c:494
+msgid "illegal set number"
+msgstr "nepovolené Äíslo sady"
-#: nis/nis_print.c:171
+#: catgets/gencat.c:444
+msgid "duplicate set definition"
+msgstr "duplicitní definice sady"
+
+#: catgets/gencat.c:446 catgets/gencat.c:623 catgets/gencat.c:677
+msgid "this is the first definition"
+msgstr "toto je první definice"
+
+#: catgets/gencat.c:522
#, c-format
-msgid "\tName : %s\n"
-msgstr "\tNázev : %s\n"
+msgid "unknown set `%s'"
+msgstr "neznámá sada „%s“"
-#: nis/nis_print.c:172
-msgid "\tPublic Key : "
-msgstr "\tVeøejný klíè : "
+#: catgets/gencat.c:563
+msgid "invalid quote character"
+msgstr "chybný znak s uvozovkami"
-#: nis/nis_print.c:234
+#: catgets/gencat.c:576
#, c-format
-msgid "\tType : %s\n"
-msgstr "\tTyp : %s\n"
+msgid "unknown directive `%s': line ignored"
+msgstr "neznámá direktiva „%s“: řádek ignorován"
+
+#: catgets/gencat.c:621
+msgid "duplicated message number"
+msgstr "duplicitní Äíslo zprávy"
+
+#: catgets/gencat.c:674
+msgid "duplicated message identifier"
+msgstr "duplicitní identifikátor zprávy"
+
+#: catgets/gencat.c:731
+msgid "invalid character: message ignored"
+msgstr "chybný znak: zpráva ignorována"
+
+#: catgets/gencat.c:774
+msgid "invalid line"
+msgstr "chybný řádek"
+
+#: catgets/gencat.c:828
+msgid "malformed line ignored"
+msgstr "deformovaný řádek bude ignorován"
-#: nis/nis_print.c:201
+#: catgets/gencat.c:992 catgets/gencat.c:1033 nss/makedb.c:183
#, c-format
-msgid "\tUniversal addresses (%u)\n"
-msgstr "\tUniverzální adresy (%u)\n"
+msgid "cannot open output file `%s'"
+msgstr "výstupní soubor „%s“ nelze otevřít"
-#: nis/nis_print.c:269
+#: catgets/gencat.c:1195 locale/programs/linereader.c:560
+msgid "invalid escape sequence"
+msgstr "chybná escape sekvence"
+
+#: catgets/gencat.c:1217
+msgid "unterminated message"
+msgstr "neukonÄená zpráva"
+
+#: catgets/gencat.c:1241
#, c-format
-msgid "\t[%d]\tName : %s\n"
-msgstr "\t[%d]\tNázev : %s\n"
+msgid "while opening old catalog file"
+msgstr "během otvírání starého katalogu"
-#: nis/nis_print.c:296
+#: catgets/gencat.c:1332
#, c-format
-msgid "\t[%u] - [%u bytes] "
-msgstr "\t[%u] - [%u bajtù] "
+msgid "conversion modules not available"
+msgstr "převodní modul není dostupný"
+
+#: catgets/gencat.c:1358
+#, c-format
+msgid "cannot determine escape character"
+msgstr "nelze urÄit escapovací znak"
+
+#: debug/pcprofiledump.c:52
+msgid "Don't buffer output"
+msgstr "Nebufferovat výstup"
+
+#: debug/pcprofiledump.c:57
+msgid "Dump information generated by PC profiling."
+msgstr "Vypíše informace získané při profilování přes PC."
-#: nscd/nscd_stat.c:153
+#: debug/pcprofiledump.c:60
+msgid "[FILE]"
+msgstr "[SOUBOR]"
+
+#: debug/pcprofiledump.c:100
+#, c-format
+msgid "cannot open input file"
+msgstr "vstupní soubor nelze otevřít"
+
+#: debug/pcprofiledump.c:106
+#, c-format
+msgid "cannot read header"
+msgstr "hlaviÄku nelze pÅ™eÄíst"
+
+#: debug/pcprofiledump.c:170
+#, c-format
+msgid "invalid pointer size"
+msgstr "neplatná velikost ukazatele"
+
+#: debug/xtrace.sh:27 debug/xtrace.sh:45
+msgid "Usage: xtrace [OPTION]... PROGRAM [PROGRAMOPTION]...\\n"
+msgstr "Použití: xtrace [PŘEPÃNAÄŒ]… PROGRAM [PŘEPÃNAÄŒ_PROGRAMU]…\\n"
+
+#: debug/xtrace.sh:33
+msgid "Try \\`xtrace --help' for more information.\\n"
+msgstr "Pro více informací zkuste příkaz „xtrace --help“.\\n"
+
+#: debug/xtrace.sh:39
+msgid "xtrace: option \\`$1' requires an argument.\\n"
+msgstr "xtrace: pÅ™epínaÄ â€ž$1“ vyžaduje argument.\\n"
+
+#: debug/xtrace.sh:46
msgid ""
+"Trace execution of program by printing currently executed function.\n"
"\n"
-"%s cache:\n"
+" --data=FILE Don't run the program, just print the data from FILE.\n"
"\n"
-"%15s cache is enabled\n"
-"%15Zd suggested size\n"
-"%15ld seconds time to live for positive entries\n"
-"%15ld seconds time to live for negative entries\n"
-"%15ld cache hits on positive entries\n"
-"%15ld cache hits on negative entries\n"
-"%15ld cache misses on positive entries\n"
-"%15ld cache misses on negative entries\n"
-"%15ld%% cache hit rate\n"
-"%15s check /etc/%s for changes\n"
+" -?,--help Print this help and exit\n"
+" --usage Give a short usage message\n"
+" -V,--version Print version information and exit\n"
+"\n"
+"Mandatory arguments to long options are also mandatory for any corresponding\n"
+"short options.\n"
+"\n"
+"For bug reporting instructions, please see:\n"
+"<http://www.gnu.org/software/libc/bugs.html>.\\n"
msgstr ""
+"Sleduje běh programu a vypisuje právě prováděné funkce.\n"
"\n"
-"%s cache:\n"
+" --data=SOUBOR Nespustí program, jen vypíše data ze SOUBORU.\n"
+"\n"
+" -?,--help Vypíše tuto nápovÄ›du a skonÄí\n"
+" --usage Vrátí krátký návod k použití\n"
+" -V,--version Vypíše informace o verzi a skonÄí\n"
"\n"
-"%15s cache je povolena\n"
-"%15Zd navrhovaná velikost\n"
-"%15ld sekund ¾ivotnost pozitivních záznamù\n"
-"%15ld sekund ¾ivotnost negativních záznamù\n"
-"%15ld úspìchù cache pro pozitivní záznamy\n"
-"%15ld úspìchù cache pro negativní záznamy\n"
-"%15ld neúspìchù cache pro pozitivní záznamy\n"
-"%15ld neúspìchù cache pro negativní záznamy\n"
-"%15ld%% úspì¹nost cache\n"
-"%15s zkontrolujte zmìny v /etc/%s\n"
-
-#: nis/nis_print.c:251
-msgid "\nGroup Members :\n"
-msgstr "\nÈlenové skupin :\n"
-
-#: nis/nis_print.c:322
-msgid "\nTime to Live : "
-msgstr "\n®ivotnost : "
+"Povinné argumenty dlouhých pÅ™epínaÄů jsou také povinné u odpovídajících\n"
+"krátkých pÅ™epínaÄů.\n"
+"\n"
+"Návod, jak nahlásit chybu, naleznete na:\n"
+"<http://www.gnu.org/software/libc/bugs.html>.\\n"
-#: sunrpc/rpcinfo.c:679
-msgid " rpcinfo -b prognum versnum\n"
-msgstr " rpcinfo -b èíslo_programu èíslo_verze\n"
+# Říká, že žádný pÅ™epínaÄ takového jména nebyl nalezen.
+#: debug/xtrace.sh:125
+msgid "xtrace: unrecognized option \\`$1'\\n"
+msgstr "xtrace: nerozpoznaný pÅ™epínaÄ â€ž$1“\\n"
-#: sunrpc/rpcinfo.c:680
-msgid " rpcinfo -d prognum versnum\n"
-msgstr " rpcinfo -d èíslo_programu èíslo_verze\n"
+#: debug/xtrace.sh:138
+msgid "No program name given\\n"
+msgstr "Nezadán žádný název programu\\n"
-#: sunrpc/rpcinfo.c:678
-msgid " rpcinfo -p [ host ]\n"
-msgstr " rpcinfo -p [ poèítaè ]\n"
+#: debug/xtrace.sh:146
+#, sh-format
+msgid "executable \\`$program' not found\\n"
+msgstr "spustitelný program „$program“ nenalezen\\n"
-#: sunrpc/rpcinfo.c:676
-msgid " rpcinfo [ -n portnum ] -t host prognum [ versnum ]\n"
-msgstr " rpcinfo [ -n èíslo_portu ] -t poèítaè èíslo_programu [ èíslo_verze ]\n"
+#: debug/xtrace.sh:150
+#, sh-format
+msgid "\\`$program' is no executable\\n"
+msgstr "„$program“ není spustitelný\\n"
-#: nscd/nscd_stat.c:145 nscd/nscd_stat.c:147
-msgid " no"
-msgstr " ne"
+#: dlfcn/dlinfo.c:64
+msgid "RTLD_SELF used in code not dynamically loaded"
+msgstr "RTLD_SELF je použito pro kód, který není dynamicky zaveden"
-#: nscd/nscd_stat.c:145 nscd/nscd_stat.c:147
-msgid " yes"
-msgstr " ano"
+#: dlfcn/dlinfo.c:73
+msgid "unsupported dlinfo request"
+msgstr "nepodporovaný požadavek dlinfo"
-#: nis/nis_print.c:348
+#: dlfcn/dlmopen.c:64
+msgid "invalid namespace"
+msgstr "neplatný jmenný prostor"
+
+#: dlfcn/dlmopen.c:69
+msgid "invalid mode"
+msgstr "neplatný režim"
+
+#: dlfcn/dlopen.c:64
+msgid "invalid mode parameter"
+msgstr "neplatný parametr režimu"
+
+#: elf/cache.c:68
+msgid "unknown"
+msgstr "neznámý"
+
+#: elf/cache.c:111
+msgid "Unknown OS"
+msgstr "Neznámý OS"
+
+#: elf/cache.c:116
#, c-format
-msgid " Data Length = %u\n"
-msgstr " Délka dat = %u\n"
+msgid ", OS ABI: %s %d.%d.%d"
+msgstr ", ABI OS: %s %d.%d.%d"
-#: nis/nis_print_group_entry.c:121
-msgid " Explicit members:\n"
-msgstr " Explicitní èlenové:\n"
+#: elf/cache.c:142 elf/ldconfig.c:1236
+#, c-format
+msgid "Can't open cache file %s\n"
+msgstr "Soubor s keší %s nelze otevřít\n"
-#: nis/nis_print_group_entry.c:145 nis/nis_print_group_entry.c:161
-msgid " Explicit nonmembers:\n"
-msgstr " Explicitní neèlenové:\n"
+#: elf/cache.c:154
+#, c-format
+msgid "mmap of cache file failed.\n"
+msgstr "mmap na souboru s keší selhala.\n"
-#: nis/nis_print_group_entry.c:129
-msgid " Implicit members:\n"
-msgstr " Implicitní èlenové:\n"
+#: elf/cache.c:158 elf/cache.c:168
+#, c-format
+msgid "File is not a cache file.\n"
+msgstr "Soubor neobsahuje keš.\n"
-#: nis/nis_print_group_entry.c:153
-msgid " Implicit nonmembers:\n"
-msgstr " Implicitní neèlenové:\n"
+#: elf/cache.c:201 elf/cache.c:211
+#, c-format
+msgid "%d libs found in cache `%s'\n"
+msgstr "V keši „%2$s“ nalezeno knihoven: %1$d\n"
-#: nis/nis_print_group_entry.c:126
-msgid " No explicit members\n"
-msgstr " ®ádní explicitní èlenové\n"
+#: elf/cache.c:410
+#, c-format
+msgid "Can't remove old temporary cache file %s"
+msgstr "Starý doÄasný soubor s keší „%s“ nelze odstranit"
-#: nis/nis_print_group_entry.c:150
-msgid " No explicit nonmembers\n"
-msgstr " ®ádní explicitní neèlenové\n"
+#: elf/cache.c:417
+#, c-format
+msgid "Can't create temporary cache file %s"
+msgstr "Nelze vytvoÅ™it doÄasný soubor s keší %s"
-#: nis/nis_print_group_entry.c:134
-msgid " No implicit members\n"
-msgstr " ®ádní implicitní èlenové\n"
+#: elf/cache.c:425 elf/cache.c:435 elf/cache.c:439 elf/cache.c:443
+#, c-format
+msgid "Writing of cache data failed"
+msgstr "Zápis kešovaných dat selhal"
-#: nis/nis_print_group_entry.c:158
-msgid " No implicit nonmembers\n"
-msgstr " ®ádní implicitní neèlenové\n"
+#: elf/cache.c:450
+#, c-format
+msgid "Changing access rights of %s to %#o failed"
+msgstr "Změna přístupových práv k %s na %#o se nezdařila"
-#: nis/nis_print_group_entry.c:142
-msgid " No recursive members\n"
-msgstr " ®ádní rekurzivní èlenové\n"
+#: elf/cache.c:455
+#, c-format
+msgid "Renaming of %s to %s failed"
+msgstr "Přejmenování z %s na %s selhalo"
-#: nis/nis_print_group_entry.c:166
-msgid " No recursive nonmembers\n"
-msgstr " ®ádní rekurzivní neèlenové\n"
+#: elf/dl-close.c:378 elf/dl-open.c:460
+msgid "cannot create scope list"
+msgstr "seznam rozsahů nelze vytvořit"
-#: nis/nis_print_group_entry.c:137
-msgid " Recursive members:\n"
-msgstr " Rekurzivní èlenové:\n"
+#: elf/dl-close.c:724
+msgid "shared object not open"
+msgstr "sdílený objekt není otevřen"
-#: sunrpc/rpcinfo.c:574
-msgid " program vers proto port\n"
-msgstr " program verz proto port\n"
+#: elf/dl-deps.c:112
+msgid "DST not allowed in SUID/SGID programs"
+msgstr "V SUID/SGID programech není DST povoleno"
-#: argp/argp-help.c:1573
-msgid " or: "
-msgstr " nebo: "
+#: elf/dl-deps.c:125 elf/dl-open.c:282
+msgid "empty dynamic string token substitution"
+msgstr "prázdné nahrazená dynamického řetězcového dílku (DST)"
-#: timezone/zic.c:423
+#: elf/dl-deps.c:131
#, c-format
-msgid " (rule from \"%s\", line %d)"
-msgstr " (pravidlo z \"%s\", øádek %d)"
+msgid "cannot load auxiliary `%s' because of empty dynamic string token substitution\n"
+msgstr "pomocnou „%s“ nelze naÄíst kvůli prázdnému nahrazení dynamických Å™etÄ›zcových dílků\n"
-#: argp/argp-help.c:1585
-msgid " [OPTION...]"
-msgstr " [PØEPÍNAÈ...]"
+#: elf/dl-deps.c:472
+msgid "cannot allocate dependency list"
+msgstr "dynamický seznam nelze alokovat"
+
+#: elf/dl-deps.c:505 elf/dl-deps.c:560
+msgid "cannot allocate symbol search list"
+msgstr "seznam pro vyhledávání symbolů nelze alokovat"
+
+#: elf/dl-deps.c:545
+msgid "Filters not supported with LD_TRACE_PRELINKING"
+msgstr "Filtry s LD_TRACE_PRELINKING nejsou podporovány"
+
+#: elf/dl-error.c:77
+msgid "DYNAMIC LINKER BUG!!!"
+msgstr "CHYBA DYNAMICKÉHO LINKERU!!!"
+
+#: elf/dl-error.c:124
+msgid "error while loading shared libraries"
+msgstr "chyba bÄ›hem naÄítání sdílených knihoven"
+
+#: elf/dl-fptr.c:88
+msgid "cannot map pages for fdesc table"
+msgstr "stránky pro tabulku fdesc nelze namapovat"
+
+#: elf/dl-fptr.c:192
+msgid "cannot map pages for fptr table"
+msgstr "stránky pro tabulku fptr nelze namapovat"
+
+#: elf/dl-fptr.c:221
+msgid "internal error: symidx out of range of fptr table"
+msgstr "vnitřní chyba: symidx mimo rozsah tabulky fptr"
+
+#: elf/dl-load.c:372
+msgid "cannot allocate name record"
+msgstr "nelze alokovat paměť pro záznam jména"
+
+#: elf/dl-load.c:474 elf/dl-load.c:582 elf/dl-load.c:667 elf/dl-load.c:780
+msgid "cannot create cache for search path"
+msgstr "keš pro vyhledávací cestu nelze vytvořit"
+
+#: elf/dl-load.c:565
+msgid "cannot create RUNPATH/RPATH copy"
+msgstr "nelze vytvořit kopii RUNPATH/RPATH"
+
+#: elf/dl-load.c:653
+msgid "cannot create search path array"
+msgstr "nelze vytvořit pole vyhledávacích cest"
+
+#: elf/dl-load.c:864
+msgid "cannot stat shared object"
+msgstr "nelze získat informace o sdíleném objektu"
+
+#: elf/dl-load.c:934
+msgid "cannot open zero fill device"
+msgstr "nulami vyplněné zařízení (zero) nelze otevřít"
+
+#: elf/dl-load.c:979 elf/dl-load.c:2224
+msgid "cannot create shared object descriptor"
+msgstr "deskriptor sdíleného objektu nelze vytvořit"
+
+#: elf/dl-load.c:998 elf/dl-load.c:1656 elf/dl-load.c:1748
+msgid "cannot read file data"
+msgstr "data ze souboru nelze naÄíst"
+
+#: elf/dl-load.c:1042
+msgid "ELF load command alignment not page-aligned"
+msgstr "Zarovnání kódu zavadÄ›Äe formátu ELF nelícuje se stránkou"
+
+#: elf/dl-load.c:1049
+msgid "ELF load command address/offset not properly aligned"
+msgstr "Adresa/ofset kódu zavadÄ›Äe formátu ELF není správnÄ› zarovnána"
+
+#: elf/dl-load.c:1132
+msgid "cannot allocate TLS data structures for initial thread"
+msgstr "Datové struktury TLS prvního vlákna nelze alokovat"
+
+#: elf/dl-load.c:1155
+msgid "cannot handle TLS data"
+msgstr "nelze zpracovat data TLS"
+
+#: elf/dl-load.c:1174
+msgid "object file has no loadable segments"
+msgstr "objektový soubor nemá žádné nahratelné segmenty"
+
+#: elf/dl-load.c:1210
+msgid "failed to map segment from shared object"
+msgstr "namapování segmentu ze sdíleného objektu se nepodařilo"
+
+#: elf/dl-load.c:1236
+msgid "cannot dynamically load executable"
+msgstr "spustitelný kód nelze dynamicky nahrát"
+
+# s/z
+#: elf/dl-load.c:1298
+msgid "cannot change memory protections"
+msgstr "ochranu paměti nelze změnit"
+
+#: elf/dl-load.c:1317
+msgid "cannot map zero-fill pages"
+msgstr "nulami vyplněné stránky nelze mapovat"
+
+#: elf/dl-load.c:1331
+msgid "object file has no dynamic section"
+msgstr "objektový soubor nemá žádnou dynamickou sekci"
+
+#: elf/dl-load.c:1354
+msgid "shared object cannot be dlopen()ed"
+msgstr "sdílený objekt nebylo možné naÄíst funkcí dlopen()"
+
+#: elf/dl-load.c:1367
+msgid "cannot allocate memory for program header"
+msgstr "nelze alokovat paměť pro hlaviÄku programu"
+
+#: elf/dl-load.c:1384 elf/dl-open.c:218
+msgid "invalid caller"
+msgstr "nepřípustný kód volání"
+
+#: elf/dl-load.c:1423
+msgid "cannot enable executable stack as shared object requires"
+msgstr "nemohu povolit spustitelnost zásobníku, jak vyžaduje sdílený objekt"
-#: locale/programs/ld-collate.c:370 locale/programs/ld-ctype.c:1476
-msgid " done\n"
-msgstr " dokonèeno\n"
+#: elf/dl-load.c:1436
+msgid "cannot close file descriptor"
+msgstr "deskriptor souboru nelze zavřít"
-#: timezone/zic.c:420
+#: elf/dl-load.c:1478
+msgid "cannot create searchlist"
+msgstr "vyhledávací seznam nelze vytvořit"
+
+#: elf/dl-load.c:1656
+msgid "file too short"
+msgstr "soubor je příliš krátký"
+
+#: elf/dl-load.c:1685
+msgid "invalid ELF header"
+msgstr "neplatný hlaviÄka ELF"
+
+#: elf/dl-load.c:1697
+msgid "ELF file data encoding not big-endian"
+msgstr "Kódování dat souboru ELF nemá velkou endianitu"
+
+#: elf/dl-load.c:1699
+msgid "ELF file data encoding not little-endian"
+msgstr "Kódování dat souboru ELF nemá malou endianitu"
+
+#: elf/dl-load.c:1703
+msgid "ELF file version ident does not match current one"
+msgstr "ident verze souboru ELF se neshoduje se souÄasnou"
+
+#: elf/dl-load.c:1707
+msgid "ELF file OS ABI invalid"
+msgstr "Chybné ABI OS souboru ELF"
+
+#: elf/dl-load.c:1709
+msgid "ELF file ABI version invalid"
+msgstr "Chybná verze ABI souboru ELF"
+
+#: elf/dl-load.c:1712
+msgid "internal error"
+msgstr "vnitřní chyba"
+
+#: elf/dl-load.c:1719
+msgid "ELF file version does not match current one"
+msgstr "Verze souboru ELD se neshoduje se souÄasnou"
+
+#: elf/dl-load.c:1727
+msgid "only ET_DYN and ET_EXEC can be loaded"
+msgstr "jen ET_DYN a ET_EXEC mohou být nahráni"
+
+#: elf/dl-load.c:1733
+msgid "ELF file's phentsize not the expected size"
+msgstr "phentsize souboru ELF má neoÄekávanou velikost"
+
+#: elf/dl-load.c:2240
+msgid "wrong ELF class: ELFCLASS64"
+msgstr "chybná třída ELF: ELFCLASS64"
+
+#: elf/dl-load.c:2241
+msgid "wrong ELF class: ELFCLASS32"
+msgstr "chybná třída ELF: ELFCLASS32"
+
+#: elf/dl-load.c:2244
+msgid "cannot open shared object file"
+msgstr "sdílený objektový soubor nelze otevřít"
+
+#: elf/dl-lookup.c:261
+msgid "relocation error"
+msgstr "chyba při přemisťování"
+
+#: elf/dl-lookup.c:289
+msgid "symbol lookup error"
+msgstr "chyba při vyhledávání symbolu"
+
+#: elf/dl-open.c:114
+msgid "cannot extend global scope"
+msgstr "globální rozsah nelze rozšířit"
+
+#: elf/dl-open.c:512
+msgid "TLS generation counter wrapped! Please report this."
+msgstr "ČítaÄ generátoru TLS oříznut! Prosím, tuto skuteÄnost nahlaste."
+
+#: elf/dl-open.c:549
+msgid "invalid mode for dlopen()"
+msgstr "neplatný mód pro dlopen()"
+
+#: elf/dl-open.c:566
+msgid "no more namespaces available for dlmopen()"
+msgstr "pro dlmopen() již není dostupný žádný další jmenný prostor"
+
+#: elf/dl-open.c:579
+msgid "invalid target namespace in dlmopen()"
+msgstr "neplatný cílový jmenný prostor v dlmopen()"
+
+#: elf/dl-reloc.c:54
+msgid "cannot allocate memory in static TLS block"
+msgstr "nelze alokovat paměť uvnitř statického bloku TLS"
+
+#: elf/dl-reloc.c:196
+msgid "cannot make segment writable for relocation"
+msgstr "segment nelze kvůli pÅ™emístÄ›ní uÄinit zapisovatelný"
+
+#: elf/dl-reloc.c:277
#, c-format
-msgid "\"%s\", line %d: %s"
-msgstr "\"%s\", øádek %d: %s"
+msgid "%s: no PLTREL found in object %s\n"
+msgstr "%s: v objektu %s nenalezen žádný PLTREL\n"
-#: timezone/zic.c:984
+#: elf/dl-reloc.c:288
#, c-format
-msgid "\"Zone %s\" line and -l option are mutually exclusive"
-msgstr "Øádek \"Zone %s\" a volba -l se navzájem vyluèují"
+msgid "%s: out of memory to store relocation results for %s\n"
+msgstr "%s: pro uložení výsledků přemístění %s není dost paměti\n"
+
+#: elf/dl-reloc.c:304
+msgid "cannot restore segment prot after reloc"
+msgstr "segment prot nelze po reloc obnovit"
+
+#: elf/dl-reloc.c:329
+msgid "cannot apply additional memory protection after relocation"
+msgstr "po pÅ™emístÄ›ní nelze nelze uplatnit dodateÄnou ochranu pamÄ›ti"
+
+#: elf/dl-sym.c:161
+msgid "RTLD_NEXT used in code not dynamically loaded"
+msgstr "RTLD_NEXT je použito pro kód, který není dynamicky zaveden"
+
+#: elf/dl-sysdep.c:474 elf/dl-sysdep.c:486
+msgid "cannot create capability list"
+msgstr "nelze vytvořit seznam kvalifikací"
+
+#: elf/dl-tls.c:825
+msgid "cannot create TLS data structures"
+msgstr "datové struktury TLS nelze vytvořit"
+
+#: elf/dl-version.c:303
+msgid "cannot allocate version reference table"
+msgstr "tabulku odkazů na verze nelze alokovat"
+
+#: elf/ldconfig.c:135
+msgid "Print cache"
+msgstr "Vypsat keš"
+
+#: elf/ldconfig.c:136
+msgid "Generate verbose messages"
+msgstr "Vypisuje podrobné zprávy"
+
+#: elf/ldconfig.c:137
+msgid "Don't build cache"
+msgstr "Nevybuduje keš"
+
+#: elf/ldconfig.c:138
+msgid "Don't generate links"
+msgstr "Nevygeneruje odkazy"
+
+#: elf/ldconfig.c:139
+msgid "Change to and use ROOT as root directory"
+msgstr "Přepne se do a použije KOŘEN jako kořenový adresář"
-#: timezone/zic.c:992
+#: elf/ldconfig.c:139
+msgid "ROOT"
+msgstr "KOŘEN"
+
+#: elf/ldconfig.c:140
+msgid "CACHE"
+msgstr "KEÅ "
+
+#: elf/ldconfig.c:140
+msgid "Use CACHE as cache file"
+msgstr "Použije KEŠ jako soubor s keší"
+
+#: elf/ldconfig.c:141
+msgid "CONF"
+msgstr "KONFIG"
+
+#: elf/ldconfig.c:141
+msgid "Use CONF as configuration file"
+msgstr "Použije KONFIG jako konfiguraÄní soubor"
+
+#: elf/ldconfig.c:142
+msgid "Only process directories specified on the command line. Don't build cache."
+msgstr "Zpracuje jen adresáře uvedené na příkazovém řádku. Nevybuduje keš."
+
+#: elf/ldconfig.c:143
+msgid "Manually link individual libraries."
+msgstr "RuÄnÄ› odkazuje jednotlivé knihovny."
+
+#: elf/ldconfig.c:144
+msgid "FORMAT"
+msgstr "FORMÃT"
+
+#: elf/ldconfig.c:144
+msgid "Format to use: new, old or compat (default)"
+msgstr "Který formát použije: „new“ (nový), „old“ (starý) nebo „compat“ (kompatibilní)"
+
+#: elf/ldconfig.c:152
+msgid "Configure Dynamic Linker Run Time Bindings."
+msgstr "Nastaví vazby dynamického linkeru pro dobu běhu"
+
+#: elf/ldconfig.c:310
#, c-format
-msgid "\"Zone %s\" line and -p option are mutually exclusive"
-msgstr "Øádek \"Zone %s\" a volba -p se navzájem vyluèují"
+msgid "Path `%s' given more than once"
+msgstr "Cesta „%s“ zadána více krát"
-#: sunrpc/rpc_main.c:1399
-msgid "\"infile\" is required for template generation flags.\n"
-msgstr "\"vst_soubor\" je vy¾adován pøi pou¾ití pøíznakù tvorby vzoru.\n"
+#: elf/ldconfig.c:350
+#, c-format
+msgid "%s is not a known library type"
+msgstr "%s není knihovna známého typu"
-#: argp/argp-help.c:210
+#: elf/ldconfig.c:375
#, c-format
-msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
-msgstr "%.*s: Parameter ARGP_HELP_FMT vy¾aduje hodnotu"
+msgid "Can't stat %s"
+msgstr "Nelze získat informace o %s"
-#: argp/argp-help.c:219
+#: elf/ldconfig.c:449
#, c-format
-msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
-msgstr "%.*s: Neznámý parameter ARGP_HELP_FMT"
+msgid "Can't stat %s\n"
+msgstr "Nelze získat informace o %s\n"
-# Za %s se nic nedosazuje, zprava je vypsana tak jak je.
-#: timezone/zic.c:794
+#: elf/ldconfig.c:459
#, c-format
-msgid "%s in ruleless zone"
-msgstr "%s v èasovém pásmu bez pravidel"
+msgid "%s is not a symbolic link\n"
+msgstr "%s není symbolický odkaz\n"
-#: assert/assert.c:51
+#: elf/ldconfig.c:478
#, c-format
-msgid "%s%s%s:%u: %s%sAssertion `%s' failed.\n"
-msgstr "%s%s%s:%u: %s%sPøedpoklad `%s' nesplnìn.\n"
+msgid "Can't unlink %s"
+msgstr "Nelze smazat odkaz na %s"
-#: assert/assert-perr.c:52
+#: elf/ldconfig.c:484
#, c-format
-msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n"
-msgstr "%s%s%s:%u: %s%sNeoèekávaná chyba: %s.\n"
+msgid "Can't link %s to %s"
+msgstr "Odkaz na %2$s z %1$s nelze vytvořit"
-#: stdio-common/psignal.c:47
+#: elf/ldconfig.c:490
+msgid " (changed)\n"
+msgstr " (změněno)\n"
+
+#: elf/ldconfig.c:492
+msgid " (SKIPPED)\n"
+msgstr " (PŘESKOČENO)\n"
+
+#: elf/ldconfig.c:547
#, c-format
-msgid "%s%sUnknown signal %d\n"
-msgstr "%s%sNeznámý signál %d\n"
+msgid "Can't find %s"
+msgstr "%s nezle nalézt"
-#: timezone/zic.c:2229
+#: elf/ldconfig.c:563 elf/ldconfig.c:737 elf/ldconfig.c:784
#, c-format
-msgid "%s: %d did not sign extend correctly\n"
-msgstr "%s: pøi pøetypování %d do¹lo k chybì znaménka\n"
+msgid "Cannot lstat %s"
+msgstr "Informace o symbolickém odkazu %s nelze získat"
-#: locale/programs/charmap.c:261
+#: elf/ldconfig.c:570
#, c-format
-msgid "%s: <mb_cur_max> must be greater than <mb_cur_min>\n"
-msgstr "%s: <mb_cur_max> musí být vìt¹í ne¾ <mb_cur_min>\n"
+msgid "Ignored file %s since it is not a regular file."
+msgstr "Soubor %s ignorován, neb se nejedná o obyÄejný soubor."
-#: sunrpc/rpc_main.c:421
+#: elf/ldconfig.c:578
#, c-format
-msgid "%s: C preprocessor failed with exit code %d\n"
-msgstr "%s: preprocesor jazyka C skonèil s výstupním kódem %d\n"
+msgid "No link created since soname could not be found for %s"
+msgstr "Protože nebyl nalezen název sdílené knihovny (soname) %s, žádný odkaz nebyl vytvořeni."
-#: sunrpc/rpc_main.c:418
+#: elf/ldconfig.c:669
#, c-format
-msgid "%s: C preprocessor failed with signal %d\n"
-msgstr "%s: preprocesor jazyka C ukonèen signálem %d\n"
+msgid "Can't open directory %s"
+msgstr "Adresář %s nelze otevřít"
-#: timezone/zic.c:1495
+#: elf/ldconfig.c:749
#, c-format
-msgid "%s: Can't create %s: %s\n"
-msgstr "%s: %s nelze vytvoøit: %s\n"
+msgid "Cannot stat %s"
+msgstr "Informace o %s nelze získat"
-#: timezone/zic.c:2207
+#: elf/ldconfig.c:806 elf/readlib.c:91
#, c-format
-msgid "%s: Can't create directory %s: %s\n"
-msgstr "%s: Adresáø %s nelze vytvoøit: %s\n"
+msgid "Input file %s not found.\n"
+msgstr "Vstupní soubor %s nebyl nalezen.\n"
-#: timezone/zic.c:646
+#: elf/ldconfig.c:857
#, c-format
-msgid "%s: Can't link from %s to %s: %s\n"
-msgstr "%s: Odkaz na %s z %s nelze vytvoøit: %s\n"
+msgid "libc5 library %s in wrong directory"
+msgstr "libc5 knihovna %s je ve špatném adresáři"
-#: timezone/zic.c:820
+#: elf/ldconfig.c:860
#, c-format
-msgid "%s: Can't open %s: %s\n"
-msgstr "%s: %s nelze otevøít: %s\n"
+msgid "libc6 library %s in wrong directory"
+msgstr "libc6 knihovna %s je ve špatném adresáři"
-#: timezone/zic.c:1485
+#: elf/ldconfig.c:863
#, c-format
-msgid "%s: Can't remove %s: %s\n"
-msgstr "%s: %s nelze smazat: %s\n"
+msgid "libc4 library %s in wrong directory"
+msgstr "libc4 knihovna %s je ve špatném adresáři"
-#: timezone/zic.c:631
+#: elf/ldconfig.c:890
#, c-format
-msgid "%s: Can't unlink %s: %s\n"
-msgstr "%s: %s nelze smazat: %s\n"
+msgid "libraries %s and %s in directory %s have same soname but different type."
+msgstr "knihovny %s a %s z adresáře %s mají stejný název (soname), ale rozdílný typ."
-#: timezone/zic.c:889
+#: elf/ldconfig.c:997
#, c-format
-msgid "%s: Error closing %s: %s\n"
-msgstr "%s: Chyba pøi uzavírání %s: %s\n"
+msgid "Can't open configuration file %s"
+msgstr "KonfiguraÄní soubor %s nelze otevřít"
-#: timezone/zic.c:882
+#: elf/ldconfig.c:1061
#, c-format
-msgid "%s: Error reading %s\n"
-msgstr "%s: Chyba pøi ètení %s\n"
+msgid "%s:%u: bad syntax in hwcap line"
+msgstr "%s:%u: chybná syntaxe na řádku hwcap"
-#: timezone/zdump.c:266
+#: elf/ldconfig.c:1067
#, c-format
-msgid "%s: Error writing "
-msgstr "%s: Chyba pøi zápisu na "
+msgid "%s:%u: hwcap index %lu above maximum %u"
+msgstr "%s:%u: index hwcap %lu přesáhl maximum %u"
-#: timezone/zic.c:1561
+#: elf/ldconfig.c:1074 elf/ldconfig.c:1082
#, c-format
-msgid "%s: Error writing %s\n"
-msgstr "%s: Chyba pøi zápisu %s\n"
+msgid "%s:%u: hwcap index %lu already defined as %s"
+msgstr "%s:%u: index hwcap %lu již definován jako %s"
-#: timezone/zic.c:867
+#: elf/ldconfig.c:1085
#, c-format
-msgid "%s: Leap line in non leap seconds file %s\n"
-msgstr "%s: øádek Leap v souboru nepøestupných sekund %s\n"
+msgid "%s:%u: duplicate hwcap %lu %s"
+msgstr "%s:%u: duplicitní hwcap %lu %s"
-#: timezone/zic.c:361
+#: elf/ldconfig.c:1107
#, c-format
-msgid "%s: Memory exhausted: %s\n"
-msgstr "%s: Pamì» vyèerpána: %s\n"
+msgid "need absolute file name for configuration file when using -r"
+msgstr "PÅ™i použití -r je tÅ™eba zadat absolutní jméno konfiguraÄního souboru"
-#: timezone/zic.c:526
+#: elf/ldconfig.c:1114 locale/programs/xmalloc.c:70 malloc/obstack.c:434
+#: malloc/obstack.c:436 posix/getconf.c:985 posix/getconf.c:1163
#, c-format
-msgid "%s: More than one -L option specified\n"
-msgstr "%s: Pøepínaè -L zadán více ne¾ jednou\n"
+msgid "memory exhausted"
+msgstr "paměť vyÄerpána"
-#: timezone/zic.c:486
+#: elf/ldconfig.c:1144
#, c-format
-msgid "%s: More than one -d option specified\n"
-msgstr "%s: Pøepínaè -d zadán více ne¾ jednou\n"
+msgid "%s:%u: cannot read directory %s"
+msgstr "%s:%u: adresář %s nelze naÄíst"
-#: timezone/zic.c:496
+#: elf/ldconfig.c:1189
#, c-format
-msgid "%s: More than one -l option specified\n"
-msgstr "%s: Pøepínaè -l zadán více ne¾ jednou\n"
+msgid "relative path `%s' used to build cache"
+msgstr "pro vybudování keše byla použita relativní cesta „%s“"
-#: timezone/zic.c:506
+#: elf/ldconfig.c:1215
#, c-format
-msgid "%s: More than one -p option specified\n"
-msgstr "%s: Pøepínaè -p zadán více ne¾ jednou\n"
+msgid "Can't chdir to /"
+msgstr "Nelze se přepnout do adresáře /"
-#: timezone/zic.c:516
+#: elf/ldconfig.c:1257
#, c-format
-msgid "%s: More than one -y option specified\n"
-msgstr "%s: Pøepínaè -y zadán více ne¾ jednou\n"
+msgid "Can't open cache file directory %s\n"
+msgstr "Adresář %s se soubory keší nelze otevřít\n"
+
+#: elf/ldd.bash.in:43
+msgid "Written by %s and %s.\n"
+msgstr "Napsali %s a %s.\n"
-#: argp/argp-parse.c:640
+#: elf/ldd.bash.in:48
+msgid ""
+"Usage: ldd [OPTION]... FILE...\n"
+" --help print this help and exit\n"
+" --version print version information and exit\n"
+" -d, --data-relocs process data relocations\n"
+" -r, --function-relocs process data and function relocations\n"
+" -u, --unused print unused direct dependencies\n"
+" -v, --verbose print all information\n"
+"For bug reporting instructions, please see:\n"
+"<http://www.gnu.org/software/libc/bugs.html>."
+msgstr ""
+"Použití: ldd [PŘEPÃNAÄŒ]… SOUBOR…\n"
+" --help vypíše tuto nápovÄ›du a skonÄí\n"
+" --version vypíše informace o verzi a skonÄí\n"
+" -d, --data-relocs provede přemístění dat\n"
+" -r, --function-relocs provede přemístění dat a funkcí\n"
+" -u, --unused vypíše nepoužité přímé závislosti\n"
+" -v, --verbose vypíše všechny informace\n"
+"Návod, jak nahlásit chybu, naleznete na:\n"
+"<http://www.gnu.org/software/libc/bugs.html>."
+
+#: elf/ldd.bash.in:80
+msgid "ldd: option \\`$1' is ambiguous"
+msgstr "ldd: pÅ™epínaÄ â€ž$1“ není jednoznaÄný"
+
+# Říká, že žádný pÅ™epínaÄ takového jména nebyl nalezen.
+#: elf/ldd.bash.in:87
+msgid "unrecognized option"
+msgstr "nerozpoznaný pÅ™epínaÄ"
+
+#: elf/ldd.bash.in:88 elf/ldd.bash.in:126
+msgid "Try \\`ldd --help' for more information."
+msgstr "Více informací získáte příkazem „ldd --help“."
+
+#: elf/ldd.bash.in:125
+msgid "missing file arguments"
+msgstr "postrádám souborové argumenty"
+
+# Adresář nebo soubor neexistuje
+#. TRANS No such file or directory. This is a ``file doesn't exist'' error
+#. TRANS for ordinary files that are referenced in contexts where they are
+#. TRANS expected to already exist.
+#: elf/ldd.bash.in:148 sysdeps/gnu/errlist.c:36
+msgid "No such file or directory"
+msgstr "není souborem ani adresářem"
+
+#: elf/ldd.bash.in:151 inet/rcmd.c:483
+msgid "not regular file"
+msgstr "není obyÄejným souborem"
+
+#: elf/ldd.bash.in:154
+msgid "warning: you do not have execution permission for"
+msgstr "varování: nemáte práva ke spuštení"
+
+#: elf/ldd.bash.in:183
+msgid "\tnot a dynamic executable"
+msgstr "\tnení dynamickým spustitelným kódem"
+
+#: elf/ldd.bash.in:191
+msgid "exited with unknown exit code"
+msgstr "skonÄil s neznám výstupním kódem"
+
+#: elf/ldd.bash.in:196
+msgid "error: you do not have read permission for"
+msgstr "chyba: nemáte oprávnÄ›ní Äíst"
+
+#: elf/readelflib.c:35
#, c-format
-msgid "%s: Too many arguments\n"
-msgstr "%s: Pøíli¹ mnoho argumentù\n"
+msgid "file %s is truncated\n"
+msgstr "soubor %s je zkrácen\n"
-#: login/programs/database.c:129
+#: elf/readelflib.c:67
#, c-format
-msgid "%s: cannot get modification time"
-msgstr "%s: èas poslední zmìny souboru nelze zjistit"
+msgid "%s is a 32 bit ELF file.\n"
+msgstr "%s je 32bitový soubor typu ELF.\n"
-#: timezone/zic.c:1928
+#: elf/readelflib.c:69
#, c-format
-msgid "%s: command was '%s', result was %d\n"
-msgstr "%s: pøíkaz byl '%s', a jeho výsledek byl %d\n"
+msgid "%s is a 64 bit ELF file.\n"
+msgstr "%s je 64bitový souboru typu ELF.\n"
-#: locale/programs/charmap.c:676 locale/programs/locfile.c:1014
+#: elf/readelflib.c:71
#, c-format
-msgid "%s: error in state machine"
-msgstr "%s: chyba ve stavovém automatu"
+msgid "Unknown ELFCLASS in file %s.\n"
+msgstr "Neznámá ELFCLASS v souboru %s.\n"
-# Rozdíl mezi 'illegal option' a 'invalid option' není ¾ádný. To která zpráva
-# je vypisována je dáno tím, zda má být výstup podle normy 'POSIX' nebo ne.
-# 'Illegal option' je POSIXové.
-#: posix/getopt.c:788
+#: elf/readelflib.c:78
#, c-format
-msgid "%s: illegal option -- %c\n"
-msgstr "%s: neznámý pøepínaè -- %c\n"
+msgid "%s is not a shared object file (Type: %d).\n"
+msgstr "%s není sdíleným objektovým souborem (typ: %d).\n"
-# Vysvìtlení viz 'illegal option'
-#: posix/getopt.c:791
+#: elf/readelflib.c:109
#, c-format
-msgid "%s: invalid option -- %c\n"
-msgstr "%s: neznámý pøepínaè -- %c\n"
+msgid "more than one dynamic segment\n"
+msgstr "více jak jeden dynamický segment\n"
-#: posix/getopt.c:711
+#: elf/readlib.c:97
#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: pøepínaè `%c%s' musí být zadán bez argumentu\n"
+msgid "Cannot fstat file %s.\n"
+msgstr "O souboru %s nelze získat informace službou fstat().\n"
-#: posix/getopt.c:681
+#: elf/readlib.c:108
#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: pøepínaè `%s' není jednoznaèný\n"
+msgid "File %s is empty, not checked."
+msgstr "Soubor %s je prázdný, nezkontrolováno."
-#: posix/getopt.c:729 posix/getopt.c:902
+#: elf/readlib.c:114
#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%s: pøepínaè `%s' vy¾aduje argument\n"
+msgid "File %s is too small, not checked."
+msgstr "Soubor %s je příliš malý, nezkontrolováno."
-#: posix/getopt.c:706
+#: elf/readlib.c:124
#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s: pøepínaè `--%s' musí být zadán bez argumentu\n"
+msgid "Cannot mmap file %s.\n"
+msgstr "Soubor %s nelze namapovat.\n"
-#: posix/getopt.c:886
+#: elf/readlib.c:162
#, c-format
-msgid "%s: option `-W %s' doesn't allow an argument\n"
-msgstr "%s: pøepínaè `-W %s' musí být zadán bez argumentu\n"
+msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n"
+msgstr "%s není soubor typu ELF – na svém zaÄátku má chybné magické bajty.\n"
+
+#: elf/sprof.c:77
+msgid "Output selection:"
+msgstr "Výběr výstupu:"
+
+#: elf/sprof.c:79
+msgid "print list of count paths and their number of use"
+msgstr "vypíše seznam symbolů a poÄet jejich použití"
+
+#: elf/sprof.c:81
+msgid "generate flat profile with counts and ticks"
+msgstr "vytvoří jednoduchý profil s poÄty a tiky"
+
+#: elf/sprof.c:82
+msgid "generate call graph"
+msgstr "vytvoří graf volání"
+
+#: elf/sprof.c:89
+msgid ""
+"Read and display shared object profiling data.\vFor bug reporting instructions, please see:\n"
+"<http://www.gnu.org/software/libc/bugs.html>.\n"
+msgstr ""
+"NaÄte a zobrazí profilovací data sdíleného objektu.\vNávod, jak nahlásit chybu, naleznete na:\n"
+"<http://www.gnu.org/software/libc/bugs.html>.\n"
-#: posix/getopt.c:868
+#: elf/sprof.c:94
+msgid "SHOBJ [PROFDATA]"
+msgstr "SDÃLENÃ_OBJEKT [PROF_DATA]"
+
+#: elf/sprof.c:400
#, c-format
-msgid "%s: option `-W %s' is ambiguous\n"
-msgstr "%s: pøepínaè `-W %s' není jednoznaèný\n"
+msgid "failed to load shared object `%s'"
+msgstr "sdílený objekt „%s“ se nepodařilo zavést"
-#: posix/getopt.c:821 posix/getopt.c:951
+#: elf/sprof.c:409
#, c-format
-msgid "%s: option requires an argument -- %c\n"
-msgstr "%s: pøepínaè vy¾aduje argument -- %c\n"
+msgid "cannot create internal descriptors"
+msgstr "interní deskriptory nelze vytvořit"
-#: sunrpc/rpc_main.c:287
+#: elf/sprof.c:528
#, c-format
-msgid "%s: output would overwrite %s\n"
-msgstr "%s: výstup by pøepsal %s\n"
+msgid "Reopening shared object `%s' failed"
+msgstr "Znovuotevření sdíleného objektu „%s“ nebylo úspěšné"
-#: timezone/zic.c:874 timezone/zic.c:1288 timezone/zic.c:1313
+#: elf/sprof.c:535 elf/sprof.c:629
#, c-format
-msgid "%s: panic: Invalid l_value %d\n"
-msgstr "%s: fatální chyba: Nepøípustná l_hodnota %d\n"
+msgid "reading of section headers failed"
+msgstr "chyba pÅ™i Ättení hlaviÄek sekcí"
-#: locale/programs/charmap.c:683 locale/programs/repertoire.c:301
+#: elf/sprof.c:543 elf/sprof.c:637
#, c-format
-msgid "%s: premature end of file"
-msgstr "%s: pøedèasný konec souboru"
+msgid "reading of section header string table failed"
+msgstr "chyba pÅ™i naÄítání tabulky Å™etÄ›zců z hlaviÄky sekce"
-#: sunrpc/rpc_main.c:294
+#: elf/sprof.c:569
#, c-format
-msgid "%s: unable to open %s: %m\n"
-msgstr "%s: %s nelze otevøít: %m\n"
+msgid "*** Cannot read debuginfo file name: %m\n"
+msgstr "*** Nelze pÅ™eÄíst název souboru s ladícími informaci: %m\n"
-# Øíká, ¾e ¾ádný pøepínaè takového jména nebyl nalezen.
-#: posix/getopt.c:762
+#: elf/sprof.c:589
#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s: neznámý pøepínaè `%c%s'\n"
+msgid "cannot determine file name"
+msgstr "název souboru nelze urÄit"
-# Øíká, ¾e ¾ádný pøepínaè takového jména nebyl nalezen.
-#: posix/getopt.c:758
+#: elf/sprof.c:622
#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s: neznámý pøepínaè `--%s'\n"
+msgid "reading of ELF header failed"
+msgstr "chyba pÅ™i Ätení hlaviÄky ELF"
-#: timezone/zic.c:445
+#: elf/sprof.c:658
#, c-format
-msgid ""
-"%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] [ -d directory ]\n"
-"\t[ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"
+msgid "*** The file `%s' is stripped: no detailed analysis possible\n"
msgstr ""
-"%s: Pou¾ití: %s [ -s ] [ -v ] [ -l lokální_èas ]\n"
-" [ -p posixová_pravidla ] [ -d adresáø ] [ -L pøestupných_sekund ]\n"
-" [ -y typ_roku ] [ soubor ... ]\n"
+"*** Ze souboru „%s“ byly odstraněny ladící informace: podrobná analýza\n"
+"není možná\n"
-#: timezone/zdump.c:174
+#: elf/sprof.c:688
#, c-format
-msgid "%s: usage is %s [ -v ] [ -c cutoff ] zonename ...\n"
-msgstr "%s: Pou¾ití: %s [ -v ] [ -c limit ] èasové_pásmo ...\n"
+msgid "failed to load symbol data"
+msgstr "data symbolů se nepodaÅ™ila naÄíst"
-#: sunrpc/rpc_main.c:306
+#: elf/sprof.c:755
#, c-format
-msgid "%s: while writing output %s: %m"
-msgstr "%s: bìhem zápisu do %s: %m"
+msgid "cannot load profiling data"
+msgstr "profilovací data nelze naÄíst"
-#: argp/argp-parse.c:164
-msgid "(PROGRAM ERROR) No version known!?"
-msgstr "(CHYBA PROGRAMU) Neznámá verze!?"
+#: elf/sprof.c:764
+#, c-format
+msgid "while stat'ing profiling data file"
+msgstr "během funkce stat() na soubor profilovacích informací"
-#: argp/argp-parse.c:781
-msgid "(PROGRAM ERROR) Option should have been recognized!?"
-msgstr "(CHYBA PROGRAMU) Pøepínaè mìl být rozpoznán!?"
+#: elf/sprof.c:772
+#, c-format
+msgid "profiling data file `%s' does not match shared object `%s'"
+msgstr "profilovací data „%s“ nesouhlasí se sdíleným objektem „%s“"
-#: nis/nis_print.c:129
-msgid "(Unknown object)\n"
-msgstr "(Neznámý objekt)\n"
+#: elf/sprof.c:783
+#, c-format
+msgid "failed to mmap the profiling data file"
+msgstr "soubor profilovacích dat se nepodařilo namapovat mmapem"
-#: sunrpc/clnt_perr.c:124
+#: elf/sprof.c:791
#, c-format
-msgid "(unknown authentication error - %d)"
-msgstr "(neznámá chyba pøi ovìøování toto¾nosti - %d)"
+msgid "error while closing the profiling data file"
+msgstr "chyba během uzavírání souboru profilovacích dat"
-# Vypisováno následovnì:
-# IP-adresa jméno_stroje
-#: sunrpc/rpcinfo.c:613
-msgid "(unknown)"
-msgstr "(?)"
+#: elf/sprof.c:800 elf/sprof.c:870
+#, c-format
+msgid "cannot create internal descriptor"
+msgstr "interní deskriptor nelze vytvořit"
-#: elf/sprof.c:570
+#: elf/sprof.c:846
#, c-format
-msgid "*** The file `%s' is stripped: no detailed analysis possible\n"
-msgstr ""
-"*** Ze souboru `%s' byly odstranìny ladící informace: podrobná analýza\n"
-"není mo¾ná\n"
+msgid "`%s' is no correct profile data file for `%s'"
+msgstr "„%s“ nejsou správná profilovací data pro „%s“"
-#: catgets/gencat.c:267
-msgid "*standard input*"
-msgstr "*standardní vstup*"
+#: elf/sprof.c:1027 elf/sprof.c:1085
+#, c-format
+msgid "cannot allocate symbol data"
+msgstr "paměť pro symboly nelze alokovat"
+
+#: iconv/iconv_charmap.c:176 iconv/iconv_prog.c:316
+#, c-format
+msgid "error while closing input `%s'"
+msgstr "chyba během uzavírání vstupu „%s“"
+
+#: iconv/iconv_charmap.c:450
+#, c-format
+msgid "illegal input sequence at position %Zd"
+msgstr "nepovolená vstupní sekvence na pozici %Zd"
+
+#: iconv/iconv_charmap.c:469 iconv/iconv_prog.c:526
+#, c-format
+msgid "incomplete character or shift sequence at end of buffer"
+msgstr "nekompletní znak nebo shift sekvence na konci vyrovnávací paměti"
+
+#: iconv/iconv_charmap.c:514 iconv/iconv_charmap.c:550 iconv/iconv_prog.c:569
+#: iconv/iconv_prog.c:605
+#, c-format
+msgid "error while reading the input"
+msgstr "chyba bÄ›hem Ätení vstupu"
+
+#: iconv/iconv_charmap.c:532 iconv/iconv_prog.c:587
+#, c-format
+msgid "unable to allocate buffer for input"
+msgstr "vyrovnávací paměť pro vstup nelze alokovat"
+
+#: iconv/iconv_prog.c:60
+msgid "Input/Output format specification:"
+msgstr "Zadání vstupně/výstupního formátu:"
+
+#: iconv/iconv_prog.c:61
+msgid "encoding of original text"
+msgstr "kódování vstupního textu"
+
+#: iconv/iconv_prog.c:62
+msgid "encoding for output"
+msgstr "výstupní kódování"
+
+#: iconv/iconv_prog.c:63
+msgid "Information:"
+msgstr "Informace:"
+
+#: iconv/iconv_prog.c:64
+msgid "list all known coded character sets"
+msgstr "vypíše všechny známé znakové sady"
+
+#: iconv/iconv_prog.c:65 locale/programs/localedef.c:127
+msgid "Output control:"
+msgstr "Řízení výstupu:"
+
+#: iconv/iconv_prog.c:66
+msgid "omit invalid characters from output"
+msgstr "vynechá nepřípustné znaky na výstupu"
+
+#: iconv/iconv_prog.c:67
+msgid "output file"
+msgstr "výstupní soubor"
+
+#: iconv/iconv_prog.c:68
+msgid "suppress warnings"
+msgstr "potlaÄí varování"
+
+#: iconv/iconv_prog.c:69
+msgid "print progress information"
+msgstr "vypisuje informace o průběhu"
+
+#: iconv/iconv_prog.c:74
+msgid "Convert encoding of given files from one encoding to another."
+msgstr "Konvertuje zadané soubory z jednoho kódování do druhého."
+
+#: iconv/iconv_prog.c:78
+msgid "[FILE...]"
+msgstr "[SOUBOR…]"
+
+#: iconv/iconv_prog.c:200
+#, c-format
+msgid "cannot open output file"
+msgstr "výstupní soubor nelze otevřít"
+
+#: iconv/iconv_prog.c:242
+#, c-format
+msgid "conversions from `%s' and to `%s' are not supported"
+msgstr "konverze z „%s“ a do „%s“ není podporována"
-#: catgets/gencat.c:121
+#: iconv/iconv_prog.c:247
+#, c-format
+msgid "conversion from `%s' is not supported"
+msgstr "konverze z „%s“ není podporována"
+
+#: iconv/iconv_prog.c:254
+#, c-format
+msgid "conversion to `%s' is not supported"
+msgstr "konverze do „%s“ není podporována"
+
+#: iconv/iconv_prog.c:258
+#, c-format
+msgid "conversion from `%s' to `%s' is not supported"
+msgstr "konverze z „%s“ do „%s“ není podporována"
+
+#: iconv/iconv_prog.c:268
+#, c-format
+msgid "failed to start conversion processing"
+msgstr "konverze se nezdařila"
+
+#: iconv/iconv_prog.c:362
+#, c-format
+msgid "error while closing output file"
+msgstr "chyba během uzavírání výstupního souboru"
+
+#: iconv/iconv_prog.c:471 iconv/iconv_prog.c:497
+#, c-format
+msgid "conversion stopped due to problem in writing the output"
+msgstr "konverze zastavena kvůli problému při zápisu výstupu"
+
+#: iconv/iconv_prog.c:522
+#, c-format
+msgid "illegal input sequence at position %ld"
+msgstr "nepovolená vstupní sekvence na pozici %ld"
+
+#: iconv/iconv_prog.c:530
+#, c-format
+msgid "internal error (illegal descriptor)"
+msgstr "vnitřní chyba (nepřípustný deskriptor)"
+
+#: iconv/iconv_prog.c:533
+#, c-format
+msgid "unknown iconv() error %d"
+msgstr "neznámá chyba funkce iconv() (%d)"
+
+#: iconv/iconv_prog.c:779
msgid ""
-"-o OUTPUT-FILE [INPUT-FILE]...\n"
-"[OUTPUT-FILE [INPUT-FILE]...]"
+"The following list contain all the coded character sets known. This does\n"
+"not necessarily mean that all combinations of these names can be used for\n"
+"the FROM and TO command line parameters. One coded character set can be\n"
+"listed with several different names (aliases).\n"
+"\n"
+" "
msgstr ""
-"-o VÝSTUPNÍ_SOUBOR [VSTUPNÍ_SOUBOR]...\n"
-"[ VÝSTUPNÍ_SOUBOR [VSTUPNÍ_SOUBOR]...]"
+"Následující seznam obsahuje všechny známé znakové sady. To nutně neznamená,\n"
+"že všechny kombinace těchto názvů mohou být použity pro argumenty Z a DO.\n"
+"Jedna znaková sada může být uvedena pod vícerými názvy (přezdívkami).\n"
+"\n"
+" "
-#: stdio-common/../sysdeps/gnu/errlist.c:796
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:114
-msgid ".lib section in a.out corrupted"
-msgstr "Po¹kozená sekce .lib v a.out"
+#: iconv/iconvconfig.c:110
+msgid "Create fastloading iconv module configuration file."
+msgstr "Vytvoří konfiguraÄní soubor modulu iconv pro rychlé naÄítání"
-# ni¾¹í verze, vy¹¹í verze
-#: sunrpc/clnt_perr.c:110 sunrpc/clnt_perr.c:131
-#, c-format
-msgid "; low version = %lu, high version = %lu"
-msgstr "; podverze = %lu, verze = %lu"
+#: iconv/iconvconfig.c:114
+msgid "[DIR...]"
+msgstr "[ADRESÃŘ…]"
-#: sunrpc/clnt_perr.c:117
-msgid "; why = "
-msgstr "; dùvod = "
+#: iconv/iconvconfig.c:127
+msgid "Prefix used for all file accesses"
+msgstr "Předpona použitá pro přístup ke každému souboru"
-#: locale/programs/charset.c:98
+#: iconv/iconvconfig.c:128
+msgid "Put output in FILE instead of installed location (--prefix does not apply to FILE)"
+msgstr "Výstup uloží do SOUBORU na místo cílového místa instalace (--prefix se nevztahuje na SOUBOR)"
+
+#: iconv/iconvconfig.c:132
+msgid "Do not search standard directories, only those on the command line"
+msgstr "Neprohledává standardní adresáře, jen ty z příkazové řádky"
+
+#: iconv/iconvconfig.c:301
#, c-format
-msgid "<%s> and <%s> are illegal names for range"
-msgstr "<%s> a <%s> jsou zakázané názvy pro rozsah"
+msgid "Directory arguments required when using --nostdlib"
+msgstr "Za použití --nostdlib je třeba zadat adresářové argumenty"
-#: locale/programs/ld-ctype.c:428
+#: iconv/iconvconfig.c:343 locale/programs/localedef.c:291
#, c-format
-msgid "<SP> character must not be in class `%s'"
-msgstr "znak <SP> nesmí ve tøídì `%s' být"
+msgid "no output file produced because warnings were issued"
+msgstr "výstupní soubor nebyl vytvořen, protože se vyskytla varování"
-#: locale/programs/ld-ctype.c:416
+#: iconv/iconvconfig.c:429
#, c-format
-msgid "<SP> character not in class `%s'"
-msgstr "znak <SP> ve tøídì `%s' není"
+msgid "while inserting in search tree"
+msgstr "během vkládání do vyhledávacího stromu"
-#. TRANS The experienced user will know what is wrong.
-#. TRANS @c This error code is a joke. Its perror text is part of the joke.
-#. TRANS @c Don't change it.
-#: stdio-common/../sysdeps/gnu/errlist.c:621
-msgid "?"
-msgstr "?"
+#: iconv/iconvconfig.c:1238
+#, c-format
+msgid "cannot generate output file"
+msgstr "výstupní soubor nelze vytvořit"
-#: sysdeps/generic/siglist.h:34 sysdeps/gnu/siglist.h:28
-msgid "Aborted"
-msgstr "Neúspì¹nì ukonèen (SIGABRT)"
+#: inet/rcmd.c:157
+msgid "rcmd: Cannot allocate memory\n"
+msgstr "rcmd: Nelze alokovat paměť\n"
-#: nis/nis_print.c:320
-msgid "Access Rights : "
-msgstr "Pøístupová práva: "
+#: inet/rcmd.c:172
+msgid "rcmd: socket: All ports in use\n"
+msgstr "rcmd: soket: Volný port nebyl nalezen\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:792
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:113
-msgid "Accessing a corrupted shared library"
-msgstr "Pou¾ití po¹kozené sdílené knihovny"
+# připojen na adresu %s:
+# spojení s adresou %s:
+#: inet/rcmd.c:200
+#, c-format
+msgid "connect to address %s: "
+msgstr "připojení na adresou %s: "
-#. TRANS The requested socket address is already in use. @xref{Socket Addresses}.
-#: stdio-common/../sysdeps/gnu/errlist.c:366
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:154
-msgid "Address already in use"
-msgstr "Adresa je u¾ívána"
+#: inet/rcmd.c:213
+#, c-format
+msgid "Trying %s...\n"
+msgstr "Zkouší se %s…\n"
-#: posix/../sysdeps/posix/gai_strerror.c:30
-msgid "Address family for hostname not supported"
-msgstr "Tøída adres není podporována"
+#: inet/rcmd.c:249
+#, c-format
+msgid "rcmd: write (setting up stderr): %m\n"
+msgstr "rcmd: write (nastavování stderr): %m\n"
-#. TRANS The address family specified for a socket is not supported; it is
-#. TRANS inconsistent with the protocol being used on the socket. @xref{Sockets}.
-#: stdio-common/../sysdeps/gnu/errlist.c:361
-msgid "Address family not supported by protocol"
-msgstr "Tøída adres není podporována protokolem"
+#: inet/rcmd.c:265
+#, c-format
+msgid "rcmd: poll (setting up stderr): %m\n"
+msgstr "rcmd: poll (nastavování stderr): %m\n"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:153
-msgid "Address family not supported by protocol family"
-msgstr "Tøída adres není podporována tøídou protokolù"
+#: inet/rcmd.c:268
+msgid "poll: protocol failure in circuit setup\n"
+msgstr "poll: chyba protokolu během přípravy okruhu\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:760
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:97
-msgid "Advertise error"
-msgstr "Chyba pøi zveøejnìní"
+#: inet/rcmd.c:301
+msgid "socket: protocol failure in circuit setup\n"
+msgstr "soket: chyba protokolu při přípravě okruhu\n"
-#: stdio-common/../sysdeps/unix/siglist.c:39 sysdeps/generic/siglist.h:40
-#: sysdeps/gnu/siglist.h:34
-msgid "Alarm clock"
-msgstr "Budík (SIGALRM)"
+#: inet/rcmd.c:325
+#, c-format
+msgid "rcmd: %s: short read"
+msgstr "rcmd: %s: krátce naÄteno"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:82
-msgid "Anode table overflow"
-msgstr "Pøeteèení tabulky A-uzlù"
+#: inet/rcmd.c:481
+msgid "lstat failed"
+msgstr "funkce lstat() skonÄila s chybou"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:36
-msgid "Arg list too long"
-msgstr "Pøíli¹ dlouhý seznam argumentù"
+#: inet/rcmd.c:488
+msgid "cannot open"
+msgstr "nelze otevřít"
-#. TRANS Argument list too long; used when the arguments passed to a new program
-#. TRANS being executed with one of the @code{exec} functions (@pxref{Executing a
-#. TRANS File}) occupy too much memory space. This condition never arises in the
-#. TRANS GNU system.
-#: stdio-common/../sysdeps/gnu/errlist.c:69
-msgid "Argument list too long"
-msgstr "Pøíli¹ dlouhý seznam argumentù"
+#: inet/rcmd.c:490
+msgid "fstat failed"
+msgstr "funkce fstat() skonÄila s chybou"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:62
-msgid "Argument out of domain"
-msgstr "Argument je mimo definièní obor"
+#: inet/rcmd.c:492
+msgid "bad owner"
+msgstr "chybný vlastník"
-#: nis/nis_error.c:65
-msgid "Attempt to remove a non-empty table"
-msgstr "Pokus o odstranìní neprázdné tabulky"
+#: inet/rcmd.c:494
+msgid "writeable by other than owner"
+msgstr "zapisovatelný nejen pro vlastníka"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:115
-msgid "Attempting to link in more shared libraries than system limit"
-msgstr "Pokus o pøipojení více sdílených knihoven ne¾ je limit systému"
+# někde existuje pevný odkaz
+#: inet/rcmd.c:496
+msgid "hard linked somewhere"
+msgstr "na soubor se odkazuje více pevných odkazů"
-#: stdio-common/../sysdeps/gnu/errlist.c:800
-msgid "Attempting to link in too many shared libraries"
-msgstr "Pokus o pøipojení pøíli¹ mnoha sdílených knihoven"
+#: inet/ruserpass.c:170 inet/ruserpass.c:193
+msgid "out of memory"
+msgstr "nedostatek paměti"
-#: sunrpc/clnt_perr.c:328
-msgid "Authentication OK"
-msgstr "Ovìøení toto¾nosti bylo úspì¹né"
+#: inet/ruserpass.c:184
+msgid "Error: .netrc file is readable by others."
+msgstr "Chyba: soubor .netrc je Äitelný i pro ostatní."
-#. TRANS ???
-#: stdio-common/../sysdeps/gnu/errlist.c:561
-msgid "Authentication error"
-msgstr "Ovìøení toto¾nosti bylo neúspì¹né"
+#: inet/ruserpass.c:185
+msgid "Remove password or make file unreadable by others."
+msgstr "Odstraňte heslo nebo zakažte Ätení souboru ostatním."
-#: nis/nis_print.c:105
-msgid "BOGUS OBJECT\n"
-msgstr "POCHYBNÝ OBJEKT\n"
+#: inet/ruserpass.c:277
+#, c-format
+msgid "Unknown .netrc keyword %s"
+msgstr "Neznámé klíÄové slovo v .netrc: %s"
-#. TRANS Bad address; an invalid pointer was detected.
-#. TRANS In the GNU system, this error never happens; you get a signal instead.
-#: stdio-common/../sysdeps/gnu/errlist.c:114
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:43
-msgid "Bad address"
-msgstr "Chybná adresa"
+#: libidn/nfkc.c:464
+msgid "Character out of range for UTF-8"
+msgstr "Znak mimo povolený rozsah UTF-8"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:79
-msgid "Bad exchange descriptor"
-msgstr "Chybný popisovaè výmìníku"
+#: locale/programs/charmap-dir.c:58
+#, c-format
+msgid "cannot read character map directory `%s'"
+msgstr "adresář „%s“ znakových sad nelze naÄíst"
-#. TRANS Bad file descriptor; for example, I/O on a descriptor that has been
-#. TRANS closed or reading from a descriptor open only for writing (or vice
-#. TRANS versa).
-#: stdio-common/../sysdeps/gnu/errlist.c:82
-msgid "Bad file descriptor"
-msgstr "Chybný popisovaè souboru"
+#: locale/programs/charmap.c:138
+#, c-format
+msgid "character map file `%s' not found"
+msgstr "soubor „%s“ znakové sady nebyl nalezen"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:38
-msgid "Bad file number"
-msgstr "Chybné èíslo souboru"
+#: locale/programs/charmap.c:195
+#, c-format
+msgid "default character map file `%s' not found"
+msgstr "implicitní soubor „%s“ znakové sady nebyl nalezen"
-#: stdio-common/../sysdeps/gnu/errlist.c:748
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:86
-msgid "Bad font file format"
-msgstr "Chybný formát fontu"
+#: locale/programs/charmap.c:258
+#, c-format
+msgid "character map `%s' is not ASCII compatible, locale not ISO C compliant\n"
+msgstr "znaková sada „%s“ není kompatibilní s ASCII, národní prostředí nebude v souladu s ISO C\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:640
-msgid "Bad message"
-msgstr "Chybná zpráva"
+#: locale/programs/charmap.c:337
+#, c-format
+msgid "%s: <mb_cur_max> must be greater than <mb_cur_min>\n"
+msgstr "%s: <mb_cur_max> musí být větší než <mb_cur_min>\n"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:83
-msgid "Bad request code"
-msgstr "Neplatný kód po¾adavku"
+#: locale/programs/charmap.c:357 locale/programs/charmap.c:374
+#: locale/programs/repertoire.c:175
+#, c-format
+msgid "syntax error in prolog: %s"
+msgstr "syntaktická chyba v prologu: %s"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:80
-msgid "Bad request descriptor"
-msgstr "Neplatný popisovaè po¾adavku"
+#: locale/programs/charmap.c:358
+msgid "invalid definition"
+msgstr "chybná definice"
-#: stdio-common/../sysdeps/unix/siglist.c:37 sysdeps/generic/siglist.h:63
-#: sysdeps/gnu/siglist.h:57
-msgid "Bad system call"
-msgstr "Chybné volání systému (SIGSYS)"
+#: locale/programs/charmap.c:375 locale/programs/locfile.c:126
+#: locale/programs/locfile.c:153 locale/programs/repertoire.c:176
+msgid "bad argument"
+msgstr "chybný argument"
-#: posix/../sysdeps/posix/gai_strerror.c:32
-msgid "Bad value for ai_flags"
-msgstr "Chybná hodnota ai_flags"
+#: locale/programs/charmap.c:403
+#, c-format
+msgid "duplicate definition of <%s>"
+msgstr "duplicitní definice <%s>"
-#: locale/programs/localedef.c:101
-msgid "Be strictly POSIX conform"
-msgstr "Pøesný soulad s POSIX"
+#: locale/programs/charmap.c:410
+#, c-format
+msgid "value for <%s> must be 1 or greater"
+msgstr "hodnota pro <%s> musí být 1 nebo větší"
-#: nis/nis_print.c:301
-msgid "Binary data\n"
-msgstr "Binární data\n"
+#: locale/programs/charmap.c:422
+#, c-format
+msgid "value of <%s> must be greater or equal than the value of <%s>"
+msgstr "hodnota <%s> musí být větší nebo rovna hodnotě <%s>"
-#. TRANS A file that isn't a block special file was given in a situation that
-#. TRANS requires one. For example, trying to mount an ordinary file as a file
-#. TRANS system in Unix gives this error.
-#: stdio-common/../sysdeps/gnu/errlist.c:121
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:44
-msgid "Block device required"
-msgstr "Vy¾adováno blokové zaøízení"
+#: locale/programs/charmap.c:445 locale/programs/repertoire.c:184
+#, c-format
+msgid "argument to <%s> must be a single character"
+msgstr "argument pro <%s> musí být jednoznakový"
-#: sunrpc/pmap_rmt.c:347
-msgid "Broadcast poll problem"
-msgstr "Problém pøi volání poll pro v¹esmìrové vysílání"
+#: locale/programs/charmap.c:471
+msgid "character sets with locking states are not supported"
+msgstr "znakové sady se uzamykacími stavy nejsou podporovány"
-#. TRANS Broken pipe; there is no process reading from the other end of a pipe.
-#. TRANS Every library function that returns this error code also generates a
-#. TRANS @code{SIGPIPE} signal; this signal terminates the program if not handled
-#. TRANS or blocked. Thus, your program will never actually see @code{EPIPE}
-#. TRANS unless it has handled or blocked @code{SIGPIPE}.
-#: stdio-common/../sysdeps/gnu/errlist.c:234
-#: stdio-common/../sysdeps/unix/siglist.c:38
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:61
-#: sysdeps/generic/siglist.h:39 sysdeps/gnu/siglist.h:33
-msgid "Broken pipe"
-msgstr "Pøeru¹ena roura (SIGPIPE)"
+#: locale/programs/charmap.c:498 locale/programs/charmap.c:552
+#: locale/programs/charmap.c:584 locale/programs/charmap.c:678
+#: locale/programs/charmap.c:733 locale/programs/charmap.c:774
+#: locale/programs/charmap.c:815
+#, c-format
+msgid "syntax error in %s definition: %s"
+msgstr "syntaktická chyba v definici %s: %s"
-#: stdio-common/../sysdeps/unix/siglist.c:35 sysdeps/generic/siglist.h:37
-#: sysdeps/gnu/siglist.h:31
-msgid "Bus error"
-msgstr "Chyba na sbìrnici (neplatná adresa) (SIGBUS)"
+#: locale/programs/charmap.c:499 locale/programs/charmap.c:679
+#: locale/programs/charmap.c:775 locale/programs/repertoire.c:231
+msgid "no symbolic name given"
+msgstr "žádné symbolické jméno nebylo zadáno"
-#: nis/nis_print.c:45
-msgid "CDS"
-msgstr "CDS"
+#: locale/programs/charmap.c:553
+msgid "invalid encoding given"
+msgstr "zadáno nepřípustné kódování"
-#: stdio-common/../sysdeps/unix/siglist.c:49 sysdeps/generic/siglist.h:50
-#: sysdeps/gnu/siglist.h:44
-msgid "CPU time limit exceeded"
-msgstr "Pøekroèen èasový limit pro procesor (SIGXCPU)"
+#: locale/programs/charmap.c:562
+msgid "too few bytes in character encoding"
+msgstr "v kódu znaku je příliš málo bajtů"
-#: nis/nis_error.c:32
-msgid "Cache expired"
-msgstr "®ivotnost cache vypr¹ela"
+#: locale/programs/charmap.c:564
+msgid "too many bytes in character encoding"
+msgstr "v kódu znaku je příliš mnoho bajtů"
-#: stdio-common/../sysdeps/gnu/errlist.c:788
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:112
-msgid "Can not access a needed shared library"
-msgstr "K potøebné sdílené knihovnì nelze pøistoupit"
+#: locale/programs/charmap.c:586 locale/programs/charmap.c:734
+#: locale/programs/charmap.c:817 locale/programs/repertoire.c:297
+msgid "no symbolic name given for end of range"
+msgstr "žádné symbolické jméno nebylo pro konec rozsahu zadáno"
+
+#: locale/programs/charmap.c:610 locale/programs/ld-address.c:600
+#: locale/programs/ld-collate.c:2677 locale/programs/ld-collate.c:3828
+#: locale/programs/ld-ctype.c:2232 locale/programs/ld-ctype.c:2984
+#: locale/programs/ld-identification.c:452
+#: locale/programs/ld-measurement.c:238 locale/programs/ld-messages.c:332
+#: locale/programs/ld-monetary.c:943 locale/programs/ld-name.c:307
+#: locale/programs/ld-numeric.c:368 locale/programs/ld-paper.c:241
+#: locale/programs/ld-telephone.c:313 locale/programs/ld-time.c:1221
+#: locale/programs/repertoire.c:314
+#, c-format
+msgid "%1$s: definition does not end with `END %1$s'"
+msgstr "%1$s: definice nekonÄí na „END %1$s“"
+
+#: locale/programs/charmap.c:643
+msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
+msgstr "definici CHARMAP mohou následovat pouze definice WIDTH"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:116
-msgid "Can not exec a shared library directly"
-msgstr "Sdílenou knihovnu nelze spustit pøímo"
+#: locale/programs/charmap.c:651 locale/programs/charmap.c:714
+#, c-format
+msgid "value for %s must be an integer"
+msgstr "hodnota pro %s musí být celé Äíslo"
-#: nis/ypclnt.c:779
-msgid "Can't bind to server which serves this domain"
-msgstr "K serveru obsluhujícímu tuto doménu se nelze pøipojit"
+#: locale/programs/charmap.c:842
+#, c-format
+msgid "%s: error in state machine"
+msgstr "%s: chyba ve stavovém automatu"
+
+#: locale/programs/charmap.c:850 locale/programs/ld-address.c:616
+#: locale/programs/ld-collate.c:2674 locale/programs/ld-collate.c:3844
+#: locale/programs/ld-ctype.c:2229 locale/programs/ld-ctype.c:3001
+#: locale/programs/ld-identification.c:468
+#: locale/programs/ld-measurement.c:254 locale/programs/ld-messages.c:348
+#: locale/programs/ld-monetary.c:959 locale/programs/ld-name.c:323
+#: locale/programs/ld-numeric.c:384 locale/programs/ld-paper.c:257
+#: locale/programs/ld-telephone.c:329 locale/programs/ld-time.c:1237
+#: locale/programs/locfile.c:826 locale/programs/repertoire.c:325
+#, c-format
+msgid "%s: premature end of file"
+msgstr "%s: pÅ™edÄasný konec souboru"
-#: nis/ypclnt.c:791
-msgid "Can't communicate with portmapper"
-msgstr "S portmapperem nelze komunikovat"
+#: locale/programs/charmap.c:869 locale/programs/charmap.c:880
+#, c-format
+msgid "unknown character `%s'"
+msgstr "neznámý znak „%s“"
-#: nis/ypclnt.c:793
-msgid "Can't communicate with ypbind"
-msgstr "S ypbind nelze komunikovat"
+#: locale/programs/charmap.c:888
+#, c-format
+msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
+msgstr "poÄet bajtů sekvence pro poÄátek a konec rozsahu není stejný: %d vs. %d"
-#: nis/ypclnt.c:795
-msgid "Can't communicate with ypserv"
-msgstr "S ypserv nelze komunikovat"
+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2957
+#: locale/programs/repertoire.c:420
+msgid "invalid names for character range"
+msgstr "nepovolené názvy pro rozsah znaků"
-#. TRANS No memory available. The system cannot allocate more virtual memory
-#. TRANS because its capacity is full.
-#: stdio-common/../sysdeps/gnu/errlist.c:103
-msgid "Cannot allocate memory"
-msgstr "Nelze alokovat pamì»"
+#: locale/programs/charmap.c:1005 locale/programs/repertoire.c:432
+msgid "hexadecimal range format should use only capital characters"
+msgstr "šestnáctkový formát rozsahu by měl používat jen velká písmena"
-#. TRANS The requested socket address is not available; for example, you tried
-#. TRANS to give a socket a name that doesn't match the local host name.
-#. TRANS @xref{Socket Addresses}.
-#: stdio-common/../sysdeps/gnu/errlist.c:373
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:155
-msgid "Cannot assign requested address"
-msgstr "Po¾adovanou adresu nelze pøiøadit"
+#: locale/programs/charmap.c:1023 locale/programs/repertoire.c:450
+#, c-format
+msgid "<%s> and <%s> are invalid names for range"
+msgstr "<%s> a <%s> nejsou platné názvy pro rozsah"
-#: sunrpc/pmap_rmt.c:264
-msgid "Cannot create socket for broadcast rpc"
-msgstr "Soket pro v¹esmìrové rpc vysílání nelze vytvoøit"
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:457
+msgid "upper limit in range is smaller than lower limit"
+msgstr "horní mez rozsahu je menší než dolní mez"
-#: stdio-common/../sysdeps/gnu/errlist.c:804
-msgid "Cannot exec a shared library directly"
-msgstr "Sdílenou knihovnu nelze pøímo spustit"
+#: locale/programs/charmap.c:1087
+msgid "resulting bytes for range not representable."
+msgstr "výsledné bajty rozsahu nejsou reprezentovatelné."
-#: sunrpc/rpc_main.c:1404
-msgid "Cannot have more than one file generation flag!\n"
-msgstr "Více ne¾ jeden pøíznak tvorby souboru nelze pou¾ít!\n"
+#: locale/programs/ld-address.c:133 locale/programs/ld-collate.c:1536
+#: locale/programs/ld-ctype.c:420 locale/programs/ld-identification.c:133
+#: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97
+#: locale/programs/ld-monetary.c:194 locale/programs/ld-name.c:94
+#: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91
+#: locale/programs/ld-telephone.c:94 locale/programs/ld-time.c:159
+#, c-format
+msgid "No definition for %s category found"
+msgstr "Žádná definice kategorie %s nebyla nalezena"
-#: sunrpc/pmap_rmt.c:360
-msgid "Cannot receive reply to broadcast"
-msgstr "Odpovìï na v¹esmìrové vysílání nepøi¹la"
+#: locale/programs/ld-address.c:144 locale/programs/ld-address.c:182
+#: locale/programs/ld-address.c:200 locale/programs/ld-address.c:229
+#: locale/programs/ld-address.c:301 locale/programs/ld-address.c:320
+#: locale/programs/ld-address.c:333 locale/programs/ld-identification.c:146
+#: locale/programs/ld-measurement.c:105 locale/programs/ld-monetary.c:206
+#: locale/programs/ld-monetary.c:250 locale/programs/ld-monetary.c:266
+#: locale/programs/ld-monetary.c:278 locale/programs/ld-name.c:105
+#: locale/programs/ld-name.c:142 locale/programs/ld-numeric.c:112
+#: locale/programs/ld-numeric.c:126 locale/programs/ld-paper.c:102
+#: locale/programs/ld-paper.c:111 locale/programs/ld-telephone.c:105
+#: locale/programs/ld-telephone.c:162 locale/programs/ld-time.c:175
+#: locale/programs/ld-time.c:196
+#, c-format
+msgid "%s: field `%s' not defined"
+msgstr "%s: položka „%s“ není definována"
-#: sunrpc/pmap_clnt.c:133
-msgid "Cannot register service"
-msgstr "Slu¾bu nelze registrovat"
+#: locale/programs/ld-address.c:156 locale/programs/ld-address.c:208
+#: locale/programs/ld-address.c:238 locale/programs/ld-address.c:276
+#: locale/programs/ld-name.c:117 locale/programs/ld-telephone.c:117
+#, c-format
+msgid "%s: field `%s' must not be empty"
+msgstr "%s: položka „%s“ nesmí být prázdná"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:172
-msgid "Cannot send after socket shutdown"
-msgstr "Nelze vysílat po pøeru¹ení spojení"
+#: locale/programs/ld-address.c:168
+#, c-format
+msgid "%s: invalid escape `%%%c' sequence in field `%s'"
+msgstr "%s: chybná escape sekvence „%%%c“ v položce „%s“"
-#. TRANS The socket has already been shut down.
-#: stdio-common/../sysdeps/gnu/errlist.c:434
-msgid "Cannot send after transport endpoint shutdown"
-msgstr "Spojení bylo pøeru¹eno"
+#: locale/programs/ld-address.c:219
+#, c-format
+msgid "%s: terminology language code `%s' not defined"
+msgstr "%s: názvoslovný kód jazyka „%s“ není definován"
-#: sunrpc/pmap_rmt.c:322
-msgid "Cannot send broadcast packet"
-msgstr "V¹esmìrový paket nelze poslat"
+#: locale/programs/ld-address.c:244
+#, c-format
+msgid "%s: field `%s' must not be defined"
+msgstr "%s: položka „%s“ nesmí být definována"
-#: sunrpc/pmap_rmt.c:271
-msgid "Cannot set socket option SO_BROADCAST"
-msgstr "Volbu SO_BROADCAST pro soket nelze nastavit"
+#: locale/programs/ld-address.c:258 locale/programs/ld-address.c:287
+#, c-format
+msgid "%s: language abbreviation `%s' not defined"
+msgstr "%s: zkratka jazyka „%s“ není definována"
-#: sunrpc/rpc_main.c:1191
-msgid "Cannot specify more than one input file!\n"
-msgstr "Více ne¾ jeden vstupní soubor nelze zadat!\n"
+#: locale/programs/ld-address.c:265 locale/programs/ld-address.c:293
+#: locale/programs/ld-address.c:327 locale/programs/ld-address.c:339
+#, c-format
+msgid "%s: `%s' value does not match `%s' value"
+msgstr "%s: hodnota „%s“ nesouhlasí s hodnotou „%s“"
-#: sunrpc/rpc_main.c:1361
-msgid "Cannot use netid flag with inetd flag!\n"
-msgstr "Pøíznaky netid a inetd nelze pou¾ít souèasnì!\n"
+#: locale/programs/ld-address.c:312
+#, c-format
+msgid "%s: numeric country code `%d' not valid"
+msgstr "%s: Äíselný kód zemÄ› „%d“ není platný"
-#: sunrpc/rpc_main.c:1373
-msgid "Cannot use netid flag without TIRPC!\n"
-msgstr "Pøíznak netid nelze bez TIRPC pou¾ít!\n"
+#: locale/programs/ld-address.c:508 locale/programs/ld-address.c:545
+#: locale/programs/ld-address.c:583 locale/programs/ld-ctype.c:2608
+#: locale/programs/ld-identification.c:364
+#: locale/programs/ld-measurement.c:221 locale/programs/ld-messages.c:301
+#: locale/programs/ld-monetary.c:701 locale/programs/ld-monetary.c:736
+#: locale/programs/ld-monetary.c:777 locale/programs/ld-name.c:280
+#: locale/programs/ld-numeric.c:263 locale/programs/ld-paper.c:224
+#: locale/programs/ld-telephone.c:288 locale/programs/ld-time.c:1126
+#: locale/programs/ld-time.c:1168
+#, c-format
+msgid "%s: field `%s' declared more than once"
+msgstr "%s: položka „%s“ deklarována více krát"
-#: sunrpc/rpc_main.c:1380
-msgid "Cannot use table flags with newstyle!\n"
-msgstr "Pøi pou¾ití nového stylu nelze pøíznaky tabulky pou¾ít!\n"
+#: locale/programs/ld-address.c:512 locale/programs/ld-address.c:550
+#: locale/programs/ld-identification.c:368 locale/programs/ld-messages.c:311
+#: locale/programs/ld-monetary.c:705 locale/programs/ld-monetary.c:740
+#: locale/programs/ld-name.c:284 locale/programs/ld-numeric.c:267
+#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:1020
+#: locale/programs/ld-time.c:1089 locale/programs/ld-time.c:1131
+#, c-format
+msgid "%s: unknown character in field `%s'"
+msgstr "%s: neznámý znak v položce „%s“"
-#: stdio-common/../sysdeps/gnu/errlist.c:688
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:66
-msgid "Channel number out of range"
-msgstr "Èíslo kanálu mimo povolený rozsah"
+#: locale/programs/ld-address.c:597 locale/programs/ld-collate.c:3826
+#: locale/programs/ld-ctype.c:2981 locale/programs/ld-identification.c:449
+#: locale/programs/ld-measurement.c:235 locale/programs/ld-messages.c:330
+#: locale/programs/ld-monetary.c:941 locale/programs/ld-name.c:305
+#: locale/programs/ld-numeric.c:366 locale/programs/ld-paper.c:239
+#: locale/programs/ld-telephone.c:311 locale/programs/ld-time.c:1219
+#, c-format
+msgid "%s: incomplete `END' line"
+msgstr "%s: neúplný řádek „END“"
-#: nis/nis_print.c:264
+#: locale/programs/ld-address.c:607 locale/programs/ld-collate.c:522
+#: locale/programs/ld-collate.c:574 locale/programs/ld-collate.c:870
+#: locale/programs/ld-collate.c:883 locale/programs/ld-collate.c:2664
+#: locale/programs/ld-collate.c:3835 locale/programs/ld-ctype.c:1960
+#: locale/programs/ld-ctype.c:2219 locale/programs/ld-ctype.c:2806
+#: locale/programs/ld-ctype.c:2992 locale/programs/ld-identification.c:459
+#: locale/programs/ld-measurement.c:245 locale/programs/ld-messages.c:339
+#: locale/programs/ld-monetary.c:950 locale/programs/ld-name.c:314
+#: locale/programs/ld-numeric.c:375 locale/programs/ld-paper.c:248
+#: locale/programs/ld-telephone.c:320 locale/programs/ld-time.c:1228
#, c-format
-msgid "Character Separator : %c\n"
-msgstr "Oddìlovaè znakù : %c\n"
+msgid "%s: syntax error"
+msgstr "%s: chyba syntaxe"
-#: stdio-common/../sysdeps/unix/siglist.c:45 sysdeps/generic/siglist.h:46
-#: sysdeps/gnu/siglist.h:40
-msgid "Child exited"
-msgstr "Potomek skonèil (SIGCHLD)"
+#: locale/programs/ld-collate.c:397
+#, c-format
+msgid "`%.*s' already defined in charmap"
+msgstr "„%.*s“ již definováno v mapě znaků"
-#: sunrpc/clnt_perr.c:347
-msgid "Client credential too weak"
-msgstr "Oprávnìní klienta je nepostaèující"
+#: locale/programs/ld-collate.c:406
+#, c-format
+msgid "`%.*s' already defined in repertoire"
+msgstr "„%.*s“ již definováno v repertoáru"
-#: nis/nis_print.c:266
-msgid "Columns :\n"
-msgstr "Sloupce :\n"
+#: locale/programs/ld-collate.c:413
+#, c-format
+msgid "`%.*s' already defined as collating symbol"
+msgstr "„%.*s“ již definovaná jako řadicí symbol"
-#: stdio-common/../sysdeps/gnu/errlist.c:768
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:99
-msgid "Communication error on send"
-msgstr "Chyba komunikace pøi vysílaní"
+#: locale/programs/ld-collate.c:420
+#, c-format
+msgid "`%.*s' already defined as collating element"
+msgstr "„%.*s“ již definováno jako řadicí prvek"
-#: locale/programs/localedef.c:109
-msgid "Compile locale specification"
-msgstr "Kompiluje definice národního prostøedí."
+#: locale/programs/ld-collate.c:451 locale/programs/ld-collate.c:477
+#, c-format
+msgid "%s: `forward' and `backward' are mutually excluding each other"
+msgstr "%s: poÅ™adí Å™azení „forward“ (dopÅ™edné) a „backward“ (zpÄ›tné) se navzájem vyluÄují"
-#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: stdio-common/../sysdeps/gnu/errlist.c:631
-msgid "Computer bought the farm"
-msgstr "Poèítaè koupil farmu"
+#: locale/programs/ld-collate.c:461 locale/programs/ld-collate.c:487
+#: locale/programs/ld-collate.c:503
+#, c-format
+msgid "%s: `%s' mentioned more than once in definition of weight %d"
+msgstr "%s: “%s“ zmíněno v definici o váze %d více krát"
-#: locale/programs/ld-ctype.c:1438
-msgid "Computing table size for character classes might take a while..."
-msgstr "Výpoèet velkosti tabulky pro tøídy znakù (mù¾e chvíli trvat)..."
+#: locale/programs/ld-collate.c:559
+#, c-format
+msgid "%s: too many rules; first entry only had %d"
+msgstr "%s: příliš mnoho pravidel, jen první položka jich má %d"
-#: locale/programs/ld-collate.c:336
-msgid "Computing table size for collation information might take a while..."
-msgstr "Výpoèet velkosti tabulky pro informace o øazení (mù¾e chvíli trvat)..."
+#: locale/programs/ld-collate.c:595
+#, c-format
+msgid "%s: not enough sorting rules"
+msgstr "%s: nedostatek řadicích pravidel"
-#. TRANS A remote host refused to allow the network connection (typically because
-#. TRANS it is not running the requested service).
-#: stdio-common/../sysdeps/gnu/errlist.c:451
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:175
-msgid "Connection refused"
-msgstr "Spojení odmítnuto"
+# prázdné jméno váhy - řádek ignorován
+#: locale/programs/ld-collate.c:760
+#, c-format
+msgid "%s: empty weight string not allowed"
+msgstr "%s: řetězec s prázdnou váhou není povolen"
-#. TRANS A network connection was closed for reasons outside the control of the
-#. TRANS local host, such as by the remote machine rebooting or an unrecoverable
-#. TRANS protocol violation.
-#: stdio-common/../sysdeps/gnu/errlist.c:401
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:160
-msgid "Connection reset by peer"
-msgstr "Spojení zru¹eno druhou stranou"
+#: locale/programs/ld-collate.c:855
+#, c-format
+msgid "%s: weights must use the same ellipsis symbol as the name"
+msgstr "%s: váhy musí používat stejný symbol výpustky jako jméno"
-# Èasový limit pro pøipojení vypr¹el
-#. TRANS A socket operation with a specified timeout received no response during
-#. TRANS the timeout period.
-#: stdio-common/../sysdeps/gnu/errlist.c:445
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:174
-msgid "Connection timed out"
-msgstr "Spojení bylo pøíli¹ dlouho neaktivní"
+#: locale/programs/ld-collate.c:911
+#, c-format
+msgid "%s: too many values"
+msgstr "%s: příliš mnoho hodnot"
-#: stdio-common/../sysdeps/unix/siglist.c:44 sysdeps/generic/siglist.h:45
-#: sysdeps/gnu/siglist.h:39
-msgid "Continued"
-msgstr "Je pokraèováno (SIGCONT)"
+#: locale/programs/ld-collate.c:1031 locale/programs/ld-collate.c:1206
+#, c-format
+msgid "order for `%.*s' already defined at %s:%Zu"
+msgstr "pořadí „%.*s“ již definováno v %s:%Zu"
-#: iconv/iconv_prog.c:66
-msgid "Convert encoding of given files from one encoding to another."
-msgstr "Konvertuje zadané soubory z jednoho kódování do druhého."
+#: locale/programs/ld-collate.c:1081
+#, c-format
+msgid "%s: the start and the end symbol of a range must stand for characters"
+msgstr "%s: poÄáteÄní a koncový symbol rozsahu musí být znakem"
-#: db2/makedb.c:58
-msgid "Convert key to lower case"
-msgstr "Pøevádí klíèe na malá písmena"
+#: locale/programs/ld-collate.c:1108
+#, c-format
+msgid "%s: byte sequences of first and last character must have the same length"
+msgstr "%s: sekvence bajtů prvního a posledního znaku musí mít stejnou délku"
-#: catgets/gencat.c:237 db2/makedb.c:242 elf/sprof.c:355
-#: iconv/iconv_prog.c:294 locale/programs/locale.c:267
-#: locale/programs/localedef.c:400 nscd/nscd.c:277 nscd/nscd_nischeck.c:90
-#: nss/getent.c:66 posix/getconf.c:624
+#: locale/programs/ld-collate.c:1150
#, c-format
-msgid ""
-"Copyright (C) %s Free Software Foundation, Inc.\n"
-"This is free software; see the source for copying conditions. There is NO\n"
-"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
-msgstr ""
-" Copyright (C) %s Free Software Foundation, Inc.\n"
-" Toto je volné programové vybavení; podmínky pro kopírování a roz¹iøování\n"
-"naleznete ve zdrojových textech. Toto programové vybavení je zcela BEZ ZÁRUKY,\n"
-"a to i bez záruky PRODEJNOSTI nebo VHODNOSTI PRO NÌJAKÝ KONKRÉTNÍ ÚÈEL.\n"
+msgid "%s: byte sequence of first character of range is not lower than that of the last character"
+msgstr "%s: sekvence bajtů prvního znaku z rozsahu není menší než sekvence posledního znaku"
-# ®urnálový soubor?
-#: nscd/nscd_conf.c:165
+#: locale/programs/ld-collate.c:1275
#, c-format
-msgid "Could not create log file \"%s\""
-msgstr "®urnálový (log) soubor \"%s\" nelze vytvoøit"
+msgid "%s: symbolic range ellipsis must not directly follow `order_start'"
+msgstr "%s: výpustky symbolického rozsahu nesmí následovat hned za „order_start“"
-#: catgets/gencat.c:108
-msgid "Create C header file NAME containing symbol definitions"
-msgstr "Vytvoøí hlavièkový soubor NÁZEV pro jazyk C obsahující definice symbolù"
+#: locale/programs/ld-collate.c:1279
+#, c-format
+msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'"
+msgstr "%s: výpustky symbolického rozsahu nesmí být přímo následovány „order_end“"
-#: locale/programs/localedef.c:100
-msgid "Create output even if warning messages were issued"
-msgstr "Vytvoøí výstupní soubor i pøi výskytu varování"
+#: locale/programs/ld-collate.c:1299 locale/programs/ld-ctype.c:1477
+#, c-format
+msgid "`%s' and `%.*s' are not valid names for symbolic range"
+msgstr "„%s“ a „%.*s“ nejsou platné názvy pro symbolický rozsah"
-#: db2/makedb.c:68
-msgid "Create simple DB database from textual input."
-msgstr "Vytváøí jednoduché databáze typu DB z textového vstupu."
+#: locale/programs/ld-collate.c:1349 locale/programs/ld-collate.c:3763
+#, c-format
+msgid "%s: order for `%.*s' already defined at %s:%Zu"
+msgstr "%s: pořadí pro „%.*s“ již definováno v %s:%Zu"
-#: nis/nis_print.c:325
+#: locale/programs/ld-collate.c:1358
#, c-format
-msgid "Creation Time : %s"
-msgstr "Èas vytvoøení : %s"
+msgid "%s: `%s' must be a character"
+msgstr "%s: „%s“ musí být znak"
-# Nepøípustný odkaz mezi zaøízeními
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:47
-msgid "Cross-device link"
-msgstr "Odkaz mezi zaøízeními"
+#: locale/programs/ld-collate.c:1552
+#, c-format
+msgid "%s: `position' must be used for a specific level in all sections or none"
+msgstr "%s: „position“ (pozice) musí být použita pro urÄitou úrovÄ›n ve vÅ¡ech sekcích, nebo v žádných"
-#: nis/nss_nisplus/nisplus-publickey.c:95
-#: nis/nss_nisplus/nisplus-publickey.c:171
+#: locale/programs/ld-collate.c:1577
#, c-format
-msgid "DES entry for netname %s not unique\n"
-msgstr "DES záznam pro sí»ové jméno %s není jednoznaèný\n"
+msgid "symbol `%s' not defined"
+msgstr "symbol „%s“ nedefinován"
-#: nis/nis_print.c:111
-msgid "DIRECTORY\n"
-msgstr "ADRESÁØ\n"
+#: locale/programs/ld-collate.c:1653 locale/programs/ld-collate.c:1759
+#, c-format
+msgid "symbol `%s' has the same encoding as"
+msgstr "symbol „%s“ má stejné kódování jako"
-#: nis/nis_print.c:41
-msgid "DNANS"
-msgstr "DNANS"
+#: locale/programs/ld-collate.c:1657 locale/programs/ld-collate.c:1763
+#, c-format
+msgid "symbol `%s'"
+msgstr "symbol „%s“"
-#: nis/nis_print.c:37
-msgid "DNS"
-msgstr "DNS"
+#: locale/programs/ld-collate.c:1805
+#, c-format
+msgid "no definition of `UNDEFINED'"
+msgstr "chybí definice symbolu „UNDEFINED“"
-#: nis/nis_error.c:51
-msgid "Database for table does not exist"
-msgstr "Databáze pro tabulku neexistuje"
+#: locale/programs/ld-collate.c:1834
+#, c-format
+msgid "too many errors; giving up"
+msgstr "příliš mnoho chyb, vzdávám to"
-#: nis/ypclnt.c:805
-msgid "Database is busy"
-msgstr "Databáze je pou¾ívána"
+#: locale/programs/ld-collate.c:2762
+#, c-format
+msgid "%s: duplicate definition of `%s'"
+msgstr "%s: duplicitní definice „%s“"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:74
-msgid "Deadlock situation detected/avoided"
-msgstr "Uváznutí detekováno/bylo mu zabránìno"
+#: locale/programs/ld-collate.c:2798
+#, c-format
+msgid "%s: duplicate declaration of section `%s'"
+msgstr "%s: duplicitní deklarace sekce „%s“"
-#: nis/nis_print.c:225
-msgid "Default Access rights :\n"
-msgstr "Implicitní pøíst. práva :\n"
+#: locale/programs/ld-collate.c:2937
+#, c-format
+msgid "%s: unknown character in collating symbol name"
+msgstr "%s: neznámý znak v názvu řadicího symbolu"
-#. TRANS No default destination address was set for the socket. You get this
-#. TRANS error when you try to transmit data over a connectionless socket,
-#. TRANS without first specifying a destination for the data with @code{connect}.
-#: stdio-common/../sysdeps/gnu/errlist.c:429
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:125
-msgid "Destination address required"
-msgstr "Cílovou adresu je nutné zadat"
+#: locale/programs/ld-collate.c:3069
+#, c-format
+msgid "%s: unknown character in equivalent definition name"
+msgstr "%s: neznámý znak ve jméně definice rovnocennosti"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:45
-msgid "Device busy"
-msgstr "Zaøízení je pou¾íváno"
+#: locale/programs/ld-collate.c:3082
+#, c-format
+msgid "%s: unknown character in equivalent definition value"
+msgstr "%s: neznámý znak v hodnotě definice rovnocennosti"
-#: stdio-common/../sysdeps/gnu/errlist.c:668
-msgid "Device not a stream"
-msgstr "Zaøízení není proudem"
+#: locale/programs/ld-collate.c:3092
+#, c-format
+msgid "%s: unknown symbol `%s' in equivalent definition"
+msgstr "%s: neznámý symbol „%s“ v definici rovnocennosti"
-#. TRANS No such device or address. The system tried to use the device
-#. TRANS represented by a file you specified, and it couldn't find the device.
-#. TRANS This can mean that the device file was installed incorrectly, or that
-#. TRANS the physical device is missing or not correctly attached to the
-#. TRANS computer.
-#: stdio-common/../sysdeps/gnu/errlist.c:61
-msgid "Device not configured"
-msgstr "Zaøízení není nakonfigurováno"
+#: locale/programs/ld-collate.c:3101
+msgid "error while adding equivalent collating symbol"
+msgstr "chyba při přidávání rovnocenného řadicího symbolu"
-#. TRANS Resource busy; a system resource that can't be shared is already in use.
-#. TRANS For example, if you try to delete a file that is the root of a currently
-#. TRANS mounted filesystem, you get this error.
-#: stdio-common/../sysdeps/gnu/errlist.c:128
-msgid "Device or resource busy"
-msgstr "Zaøízení nebo zdroj jsou pou¾ívány"
+#: locale/programs/ld-collate.c:3131
+#, c-format
+msgid "duplicate definition of script `%s'"
+msgstr "duplicitní definice skriptu „%s“"
-#: nis/nis_print.c:179
+#: locale/programs/ld-collate.c:3179
#, c-format
-msgid "Diffie-Hellmann (%d bits)\n"
-msgstr "Diffie-Hellmann (bitù: %d)\n"
+msgid "%s: unknown section name `%.*s'"
+msgstr "%s: jméno sekce „%.*s“ není známo"
-#: nis/nis_print.c:317
+#: locale/programs/ld-collate.c:3208
#, c-format
-msgid "Directory : %s\n"
-msgstr "Adresáø : %s\n"
+msgid "%s: multiple order definitions for section `%s'"
+msgstr "%s: násobná definice pořadí pro sekci „%s“"
-#. TRANS Directory not empty, where an empty directory was expected. Typically,
-#. TRANS this error occurs when you are trying to delete a directory.
-#: stdio-common/../sysdeps/gnu/errlist.c:480
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:122
-msgid "Directory not empty"
-msgstr "Adresáø není prázdný"
+#: locale/programs/ld-collate.c:3233
+#, c-format
+msgid "%s: invalid number of sorting rules"
+msgstr "%s: neplatné Äíslo Å™adicího pravidla"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:78
-msgid "Disc quota exceeded"
-msgstr "Pøekroèena disková kvóta"
+#: locale/programs/ld-collate.c:3260
+#, c-format
+msgid "%s: multiple order definitions for unnamed section"
+msgstr "%s: násobná definice pořadí pro nepojmenovanou sekci"
-#. TRANS The user's disk quota was exceeded.
-#: stdio-common/../sysdeps/gnu/errlist.c:498
-msgid "Disk quota exceeded"
-msgstr "Pøekroèena disková kvóta"
+#: locale/programs/ld-collate.c:3314 locale/programs/ld-collate.c:3442
+#: locale/programs/ld-collate.c:3804
+#, c-format
+msgid "%s: missing `order_end' keyword"
+msgstr "%s: chybí klíÄové slovo „order_end“"
-#: nscd/nscd.c:83
-msgid "Do not fork and display messages on the current tty"
-msgstr "Nespou¹tí samostatný proces a vypisuje zprávy na aktuálním terminálu"
+#: locale/programs/ld-collate.c:3375
+#, c-format
+msgid "%s: order for collating symbol %.*s not yet defined"
+msgstr "%s: pořadí pro řadicí symbol %.*s nebylo ještě definováno"
-#: db2/makedb.c:61
-msgid "Do not print messages while building database"
-msgstr "Bìhem tvorby databáze nevypisuje zprávy"
+#: locale/programs/ld-collate.c:3393
+#, c-format
+msgid "%s: order for collating element %.*s not yet defined"
+msgstr "%s: pořadí pro řadicí prvek %.*s nebylo ještě definováno"
-#: catgets/gencat.c:110
-msgid "Do not use existing catalog, force new output file"
-msgstr "Nepou¾ívá existující katalog, vytvoøí nový výstupní soubor"
+#: locale/programs/ld-collate.c:3404
+#, c-format
+msgid "%s: cannot reorder after %.*s: symbol not known"
+msgstr "%s: po %.*s nelze změnit pořadí: symbol není znám"
-#: nis/ypclnt.c:851
-msgid "Domain not bound"
-msgstr "Doména není pøipojena"
+#: locale/programs/ld-collate.c:3456 locale/programs/ld-collate.c:3816
+#, c-format
+msgid "%s: missing `reorder-end' keyword"
+msgstr "%s: chybí klíÄové slovo „reorder-end“"
-#: stdio-common/../sysdeps/unix/siglist.c:32 sysdeps/generic/siglist.h:60
-#: sysdeps/gnu/siglist.h:54
-msgid "EMT trap"
-msgstr "EMT past (SIGEMT)"
+#: locale/programs/ld-collate.c:3490 locale/programs/ld-collate.c:3688
+#, c-format
+msgid "%s: section `%.*s' not known"
+msgstr "%s: sekce „%.*s“ není známa"
-#: nis/nis_print.c:120
-msgid "ENTRY\n"
-msgstr "ZÁZNAM\n"
+#: locale/programs/ld-collate.c:3555
+#, c-format
+msgid "%s: bad symbol <%.*s>"
+msgstr "%s: chybný symbol <%.*s>"
-#: nis/nis_print.c:299
-msgid "Encrypted data\n"
-msgstr "©ifrovaná data\n"
+#: locale/programs/ld-collate.c:3751
+#, c-format
+msgid "%s: cannot have `%s' as end of ellipsis range"
+msgstr "%s: nemohu mít „%s“ jako konec výpustkového rozsahu"
-#: nis/nis_error.c:52
-msgid "Entry/table type mismatch"
-msgstr "Typ záznamu/tabulky nesouhlasí"
+#: locale/programs/ld-collate.c:3800
+#, c-format
+msgid "%s: empty category description not allowed"
+msgstr "%s: prázdný popis kategorie není dovolen"
+
+#: locale/programs/ld-collate.c:3819
+#, c-format
+msgid "%s: missing `reorder-sections-end' keyword"
+msgstr "%s: chybí klíÄové slovo „reorder-sections-end“"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:29
-msgid "Error 0"
-msgstr "Chyba 0"
+#: locale/programs/ld-ctype.c:439
+#, c-format
+msgid "No character set name specified in charmap"
+msgstr "V mapÄ› znaků není urÄena znaková sada"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:129
-msgid "Error 100"
-msgstr "Chyba 100"
+#: locale/programs/ld-ctype.c:468
+#, c-format
+msgid "character L'\\u%0*x' in class `%s' must be in class `%s'"
+msgstr "znak L'\\u%0*x' ve třídě „%s“ musí být ve třídě „%s“"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:130
-msgid "Error 101"
-msgstr "Chyba 101"
+#: locale/programs/ld-ctype.c:483
+#, c-format
+msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'"
+msgstr "znak L'\\u%0*x' ve třídě „%s“ nesmí být ve třídě „%s“"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:131
-msgid "Error 102"
-msgstr "Chyba 102"
+#: locale/programs/ld-ctype.c:497 locale/programs/ld-ctype.c:555
+#, c-format
+msgid "internal error in %s, line %u"
+msgstr "vnitřní chyba ve funkci %s na řádku %u"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:132
-msgid "Error 103"
-msgstr "Chyba 103"
+#: locale/programs/ld-ctype.c:526
+#, c-format
+msgid "character '%s' in class `%s' must be in class `%s'"
+msgstr "znak „%s“ ve třídě „%s“ musí být ve třídě „%s“"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:133
-msgid "Error 104"
-msgstr "Chyba 104"
+#: locale/programs/ld-ctype.c:542
+#, c-format
+msgid "character '%s' in class `%s' must not be in class `%s'"
+msgstr "znak „%s“ ve třídě „%s“ nesmí být ve třídě „%s“"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:134
-msgid "Error 105"
-msgstr "Chyba 105"
+#: locale/programs/ld-ctype.c:572 locale/programs/ld-ctype.c:610
+#, c-format
+msgid "<SP> character not in class `%s'"
+msgstr "znak <SP> ve třídě „%s“ není"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:135
-msgid "Error 106"
-msgstr "Chyba 106"
+#: locale/programs/ld-ctype.c:584 locale/programs/ld-ctype.c:621
+#, c-format
+msgid "<SP> character must not be in class `%s'"
+msgstr "znak <SP> nesmí ve třídě „%s“ být"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:136
-msgid "Error 107"
-msgstr "Chyba 107"
+#: locale/programs/ld-ctype.c:599
+#, c-format
+msgid "character <SP> not defined in character map"
+msgstr "znak <SP> není ve znakové sadě definován"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:137
-msgid "Error 108"
-msgstr "Chyba 108"
+#: locale/programs/ld-ctype.c:714
+#, c-format
+msgid "`digit' category has not entries in groups of ten"
+msgstr "kategorie „digit“ (Äíslice) nemá položky ve skupinách po deseti"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:138
-msgid "Error 109"
-msgstr "Chyba 109"
+#: locale/programs/ld-ctype.c:763
+#, c-format
+msgid "no input digits defined and none of the standard names in the charmap"
+msgstr "nedefinovány žádné vstupní Äíslice a žádná standardní jména v mapÄ› znaků"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:139
-msgid "Error 110"
-msgstr "Chyba 110"
+#: locale/programs/ld-ctype.c:828
+#, c-format
+msgid "not all characters used in `outdigit' are available in the charmap"
+msgstr "ne vÅ¡echny znaky použité v „outdigit“ (výstupní Äíslice) jsou dostupné v mapÄ› znaků"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:140
-msgid "Error 111"
-msgstr "Chyba 111"
+#: locale/programs/ld-ctype.c:845
+#, c-format
+msgid "not all characters used in `outdigit' are available in the repertoire"
+msgstr "ne vÅ¡echny znaky použité v „outdigit“ (výstupní Äíslice) jsou dostupné v repertoáru"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:141
-msgid "Error 112"
-msgstr "Chyba 112"
+#: locale/programs/ld-ctype.c:1245
+#, c-format
+msgid "character class `%s' already defined"
+msgstr "třída znaků „%s“ již je definována"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:142
-msgid "Error 113"
-msgstr "Chyba 113"
+#: locale/programs/ld-ctype.c:1251
+#, c-format
+msgid "implementation limit: no more than %Zd character classes allowed"
+msgstr "implementaÄní omezení: maximální poÄet tříd znaků je %Zd"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:143
-msgid "Error 114"
-msgstr "Chyba 114"
+#: locale/programs/ld-ctype.c:1277
+#, c-format
+msgid "character map `%s' already defined"
+msgstr "znaková sada „%s“ již je definována"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:144
-msgid "Error 115"
-msgstr "Chyba 115"
+#: locale/programs/ld-ctype.c:1283
+#, c-format
+msgid "implementation limit: no more than %d character maps allowed"
+msgstr "implementaÄní omezení: maximální poÄet znakových sad je %d"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:145
-msgid "Error 116"
-msgstr "Chyba 116"
+#: locale/programs/ld-ctype.c:1548 locale/programs/ld-ctype.c:1673
+#: locale/programs/ld-ctype.c:1779 locale/programs/ld-ctype.c:2471
+#: locale/programs/ld-ctype.c:3467
+#, c-format
+msgid "%s: field `%s' does not contain exactly ten entries"
+msgstr "%s: pole „%s“ neobsahuje přesně deset položek"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:146
-msgid "Error 117"
-msgstr "Chyba 117"
+#: locale/programs/ld-ctype.c:1576 locale/programs/ld-ctype.c:2150
+#, c-format
+msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
+msgstr "horní mez rozsahu <U%0*X> je menší než dolní mez <U%0*X>"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:147
-msgid "Error 118"
-msgstr "Chyba 118"
+#: locale/programs/ld-ctype.c:1703
+msgid "start and end character sequence of range must have the same length"
+msgstr "úvodní a závÄ›reÄná sekvence znaků rozsahu musí mít stejnou délku"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:148
-msgid "Error 119"
-msgstr "Chyba 119"
+#: locale/programs/ld-ctype.c:1710
+msgid "to-value character sequence is smaller than from-value sequence"
+msgstr "sekvence znaků horní meze je menší než sekvence dolní meze"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:165
-msgid "Error 136"
-msgstr "Chyba 136"
+#: locale/programs/ld-ctype.c:2070 locale/programs/ld-ctype.c:2121
+msgid "premature end of `translit_ignore' definition"
+msgstr "pÅ™edÄasný konec definice „translit_ignore“"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:171
-msgid "Error 142"
-msgstr "Chyba 142"
+#: locale/programs/ld-ctype.c:2076 locale/programs/ld-ctype.c:2127
+#: locale/programs/ld-ctype.c:2169
+msgid "syntax error"
+msgstr "chyba syntaxe"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:87
-msgid "Error 58"
-msgstr "Chyba 58"
+#: locale/programs/ld-ctype.c:2303
+#, c-format
+msgid "%s: syntax error in definition of new character class"
+msgstr "%s: syntaktická chyba v definici nové třídy znaků"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:88
-msgid "Error 59"
-msgstr "Chyba 59"
+#: locale/programs/ld-ctype.c:2318
+#, c-format
+msgid "%s: syntax error in definition of new character map"
+msgstr "%s: syntaktická chyba v definici nové znakové sady"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:101
-msgid "Error 72"
-msgstr "Chyba 72"
+#: locale/programs/ld-ctype.c:2493
+msgid "ellipsis range must be marked by two operands of same type"
+msgstr "výpustkový rozsah musí být vyznaÄen dvÄ›ma operandy stejného typu"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:102
-msgid "Error 73"
-msgstr "Chyba 73"
+#: locale/programs/ld-ctype.c:2502
+msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
+msgstr "s hodnotami symbolického jmenného rozsahu nelze použit absolutní výpustku „...“"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:104
-msgid "Error 75"
-msgstr "Chyba 75"
+#: locale/programs/ld-ctype.c:2517
+msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
+msgstr "spolu s hodnotami UCS rozsahu se musí použít šestnáctková symbolická výpustka „..“"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:105
-msgid "Error 76"
-msgstr "Chyba 76"
+#: locale/programs/ld-ctype.c:2531
+msgid "with character code range values one must use the absolute ellipsis `...'"
+msgstr "spolu s hodnotami rozsahu kódů znaku se misí použít absolutní výpustka „...“"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:120
-msgid "Error 91"
-msgstr "Chyba 91"
+#: locale/programs/ld-ctype.c:2682
+#, c-format
+msgid "duplicated definition for mapping `%s'"
+msgstr "duplicitní definice mapovaní „%s“"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:121
-msgid "Error 92"
-msgstr "Chyba 92"
+#: locale/programs/ld-ctype.c:2768 locale/programs/ld-ctype.c:2912
+#, c-format
+msgid "%s: `translit_start' section does not end with `translit_end'"
+msgstr "%s: sekce „translit_start“ nekonÄí na „translit_end“"
-#: nis/nis_error.c:56
-msgid "Error in RPC subsystem"
-msgstr "Chyba v subsystému RPC"
+#: locale/programs/ld-ctype.c:2863
+#, c-format
+msgid "%s: duplicate `default_missing' definition"
+msgstr "%s: duplicitní definice „default_missing“"
-#: nis/nis_error.c:66
-msgid "Error in accessing NIS+ cold start file. Is NIS+ installed?"
-msgstr "Chyba pøi pøístupu k souboru studeného startu NIS+. Je NIS+ nainstalováno?"
+#: locale/programs/ld-ctype.c:2868
+msgid "previous definition was here"
+msgstr "předchozí definice byla zde"
-#: string/../sysdeps/mach/_strerror.c:57
-#: sysdeps/mach/hurd/mips/dl-machine.c:67
-msgid "Error in unknown error system: "
-msgstr "Chyba z neznámého chybového systému: "
+#: locale/programs/ld-ctype.c:2890
+#, c-format
+msgid "%s: no representable `default_missing' definition found"
+msgstr "%s: nenalezena žádná reprezentovatelná definice „default_missing“"
-#: nis/nis_error.c:59
-msgid "Error while talking to callback proc"
-msgstr "Chyba bìhem komunikace s procedurou zpìtného volání"
+#: locale/programs/ld-ctype.c:3043 locale/programs/ld-ctype.c:3127
+#: locale/programs/ld-ctype.c:3147 locale/programs/ld-ctype.c:3168
+#: locale/programs/ld-ctype.c:3189 locale/programs/ld-ctype.c:3210
+#: locale/programs/ld-ctype.c:3231 locale/programs/ld-ctype.c:3271
+#: locale/programs/ld-ctype.c:3292 locale/programs/ld-ctype.c:3359
+#: locale/programs/ld-ctype.c:3401 locale/programs/ld-ctype.c:3426
+#, c-format
+msgid "%s: character `%s' not defined while needed as default value"
+msgstr "%s: znak „%s“ potřebný jako implicitní hodnota není definován"
-#: inet/ruserpass.c:176
-msgid "Error: .netrc file is readable by others."
-msgstr "Chyba: soubor .netrc je èitelný i pro ostatní."
+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3132
+#: locale/programs/ld-ctype.c:3152 locale/programs/ld-ctype.c:3173
+#: locale/programs/ld-ctype.c:3194 locale/programs/ld-ctype.c:3215
+#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3276
+#: locale/programs/ld-ctype.c:3297 locale/programs/ld-ctype.c:3364
+#, c-format
+msgid "%s: character `%s' in charmap not representable with one byte"
+msgstr "%s: znak „%s“ z mapy znaků není reprezentovatelný jedním bajtem"
-#: stdio-common/../sysdeps/gnu/errlist.c:728
-msgid "Exchange full"
-msgstr "Plný výmìník"
+#: locale/programs/ld-ctype.c:3408 locale/programs/ld-ctype.c:3433
+#, c-format
+msgid "%s: character `%s' needed as default value not representable with one byte"
+msgstr "%s: znak „%s“ potřebný jako implicitní hodnota není reprezentovatelný jedním bajtem"
-#. TRANS Invalid executable file format. This condition is detected by the
-#. TRANS @code{exec} functions; see @ref{Executing a File}.
-#: stdio-common/../sysdeps/gnu/errlist.c:75
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:37
-msgid "Exec format error"
-msgstr "Chybný formát spustitelného souboru"
+#: locale/programs/ld-ctype.c:3489
+#, c-format
+msgid "no output digits defined and none of the standard names in the charmap"
+msgstr "nedefinovány žádné výstupní Äíslice a žádná standardní jména v mapÄ› znaků"
-#: locale/programs/localedef.c:187
-msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
-msgstr "FATÁLNÍ CHYBA: systém nedefinuje `_POSIX2_LOCALEDEF'"
+#: locale/programs/ld-ctype.c:3780
+#, c-format
+msgid "%s: transliteration data from locale `%s' not available"
+msgstr "%s: přepisovací data pro národní prostřední „%s“ nejsou dostupná"
-#: locale/programs/localedef.c:91 locale/programs/localedef.c:93
-#: locale/programs/localedef.c:95
-msgid "FILE"
-msgstr "SOUBOR"
+#: locale/programs/ld-ctype.c:3881
+#, c-format
+msgid "%s: table for class \"%s\": %lu bytes\n"
+msgstr "%s: tabulka pro třídu „%s“: %lu bajtů\n"
-#: locale/programs/localedef.c:96
-msgid "FILE contains mapping from symbolic names to UCS4 values"
-msgstr "SOUBOR obsahující mapování symbolických názvù na UCS4 hodnoty"
+#: locale/programs/ld-ctype.c:3950
+#, c-format
+msgid "%s: table for map \"%s\": %lu bytes\n"
+msgstr "%s: tabulka pro mapu „%s“: %lu bajtů\n"
-#: sunrpc/clnt_perr.c:355
-msgid "Failed (unspecified error)"
-msgstr "Chyba (blí¾e nespecifikovaná)"
+#: locale/programs/ld-ctype.c:4083
+#, c-format
+msgid "%s: table for width: %lu bytes\n"
+msgstr "%s: tabulka se šířkou: %lu bajtů\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:780
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:110
-msgid "File descriptor in bad state"
-msgstr "Deskriptor souboru se nachází v chybném stavu"
+#: locale/programs/ld-identification.c:170
+#, c-format
+msgid "%s: no identification for category `%s'"
+msgstr "%s: kategorii „%s“ chybí identifikace"
-#. TRANS File exists; an existing file was specified in a context where it only
-#. TRANS makes sense to specify a new file.
-#: stdio-common/../sysdeps/gnu/errlist.c:134
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:46
-msgid "File exists"
-msgstr "Soubor ji¾ existuje"
+#: locale/programs/ld-identification.c:435
+#, c-format
+msgid "%s: duplicate category version definition"
+msgstr "%s: duplicitní definice verze kategorie"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:85
-msgid "File locking deadlock"
-msgstr "Vzájemné zablokování pøi zamykaní souboru"
+#: locale/programs/ld-measurement.c:113
+#, c-format
+msgid "%s: invalid value for field `%s'"
+msgstr "%s: neplatná hodnota položky „%s“"
-#: stdio-common/../sysdeps/gnu/errlist.c:744
-msgid "File locking deadlock error"
-msgstr "Vzájemné zablokování pøi zamykaní souboru"
+#: locale/programs/ld-messages.c:114 locale/programs/ld-messages.c:148
+#, c-format
+msgid "%s: field `%s' undefined"
+msgstr "%s: položka „%s“ není definována"
-#. TRANS Filename too long (longer than @code{PATH_MAX}; @pxref{Limits for
-#. TRANS Files}) or host name too long (in @code{gethostname} or
-#. TRANS @code{sethostname}; @pxref{Host Identification}).
-#: stdio-common/../sysdeps/gnu/errlist.c:464
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:107
-msgid "File name too long"
-msgstr "Pøíli¹ dlouhé jméno souboru"
+#: locale/programs/ld-messages.c:121 locale/programs/ld-messages.c:155
+#: locale/programs/ld-monetary.c:256 locale/programs/ld-numeric.c:118
+#, c-format
+msgid "%s: value for field `%s' must not be an empty string"
+msgstr "%s: hodnota položky „%s“ nesmí být prázdný řetězec"
-#: stdio-common/../sysdeps/unix/siglist.c:50 sysdeps/generic/siglist.h:51
-#: sysdeps/gnu/siglist.h:45
-msgid "File size limit exceeded"
-msgstr "Pøekroèen limit délky souboru (SIGXFS2)"
+#: locale/programs/ld-messages.c:137 locale/programs/ld-messages.c:171
+#, c-format
+msgid "%s: no correct regular expression for field `%s': %s"
+msgstr "%s: pro položku „%s“ není korektní regulární výraz: %s"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:52
-msgid "File table overflow"
-msgstr "Pøeteèení tabulky souborù"
+#: locale/programs/ld-monetary.c:224
+#, c-format
+msgid "%s: value of field `int_curr_symbol' has wrong length"
+msgstr "%s: hodnota položky „int_curr_symbol“ má chybnou délku"
-#. TRANS File too big; the size of a file would be larger than allowed by the system.
-#: stdio-common/../sysdeps/gnu/errlist.c:202
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:56
-msgid "File too large"
-msgstr "Soubor je pøíli¹ velký"
+#: locale/programs/ld-monetary.c:237
+#, c-format
+msgid "%s: value of field `int_curr_symbol' does not correspond to a valid name in ISO 4217"
+msgstr "%s: hodnota položky „int_curr_symbol“ neodpovídá platnému jménu dle ISO 4217"
-#: nis/nis_error.c:37
-msgid "First/next chain broken"
-msgstr "První dal¹í øetìzec poru¹en"
+#: locale/programs/ld-monetary.c:285 locale/programs/ld-monetary.c:315
+#, c-format
+msgid "%s: value for field `%s' must be in range %d...%d"
+msgstr "%s: hodnota položky „%s“ musí být v rozsahu %d–%d"
-# Výjimka pohyblivé øádové èárky?
-#: stdio-common/../sysdeps/unix/siglist.c:33 sysdeps/generic/siglist.h:35
-#: sysdeps/gnu/siglist.h:29
-msgid "Floating point exception"
-msgstr "Výjimka matematického koprocesoru (SIGFPE)"
+#: locale/programs/ld-monetary.c:747 locale/programs/ld-numeric.c:274
+#, c-format
+msgid "%s: value for field `%s' must be a single character"
+msgstr "%s: hodnota položku „%s“ musí být jednoznaková"
-#: nis/nis_error.c:67
-msgid "Full resync required for directory"
-msgstr "Adresáø vy¾aduje úplnou resynchronizaci"
+#: locale/programs/ld-monetary.c:844 locale/programs/ld-numeric.c:318
+#, c-format
+msgid "%s: `-1' must be last entry in `%s' field"
+msgstr "%s: „-1“ musí být posledním údajem v položce „%s“"
-#. TRANS Function not implemented. This indicates that the function called is
-#. TRANS not implemented at all, either in the C library itself or in the
-#. TRANS operating system. When you get this error, you can be sure that this
-#. TRANS particular function will always fail with @code{ENOSYS} unless you
-#. TRANS install a new version of the C library or the operating system.
-#: stdio-common/../sysdeps/gnu/errlist.c:575
-msgid "Function not implemented"
-msgstr "Funkce není implementována"
+#: locale/programs/ld-monetary.c:866 locale/programs/ld-numeric.c:335
+#, c-format
+msgid "%s: values for field `%s' must be smaller than 127"
+msgstr "%s: hodnoty položky „%s“ musí být menší než 127"
-#: nis/nis_print.c:114
-msgid "GROUP\n"
-msgstr "SKUPINA\n"
+#: locale/programs/ld-monetary.c:909
+msgid "conversion rate value cannot be zero"
+msgstr "hodnota převodního poměru nesmí být nula"
-# Garbage -> nesmysly
-#: argp/argp-help.c:231
+#: locale/programs/ld-name.c:129 locale/programs/ld-telephone.c:126
+#: locale/programs/ld-telephone.c:149
#, c-format
-msgid "Garbage in ARGP_HELP_FMT: %s"
-msgstr "Smetí v ARGP_HELP_FMT: %s"
+msgid "%s: invalid escape sequence in field `%s'"
+msgstr "%s: chybná escape-sekvence v položce „%s“"
-#: catgets/gencat.c:116
-msgid ""
-"Generate message catalog.\\vIf INPUT-FILE is -, input is read from standard input. If OUTPUT-FILE\n"
-"is -, output is written to standard output.\n"
-msgstr ""
-" Generuje katalog zpráv.\\vJe-li VSTUPNÍ_SOUBOR -, vstup bude naèten ze\n"
-"standardního vstupu. Je-li VÝSTUPNÍ_SOUBOR -, výstup bude zapsán na standardní\n"
-"výstup.\n"
+#: locale/programs/ld-time.c:247
+#, c-format
+msgid "%s: direction flag in string %Zd in `era' field is not '+' nor '-'"
+msgstr "%s: příznak směru v řetězci (%Zd) položky není „+“ ani „-“"
-#: nis/nis_error.c:36
-msgid "Generic system error"
-msgstr "Obecná chyba systému"
+#: locale/programs/ld-time.c:258
+#, c-format
+msgid "%s: direction flag in string %Zd in `era' field is not a single character"
+msgstr "%s: příznak směru v řetězci (%Zd) položky „era“ není jednoznakový"
-#: locale/programs/locale.c:75
-msgid "Get locale-specific information."
-msgstr "Získání urèitých informací o národním prostøedí."
+#: locale/programs/ld-time.c:271
+#, c-format
+msgid "%s: invalid number for offset in string %Zd in `era' field"
+msgstr "%s: chybná hodnota posunutí v řetězci (%Zd) položky „era“"
-#: argp/argp-parse.c:88
-msgid "Give a short usage message"
-msgstr "Vypí¹e krátký návod na pou¾ití"
+#: locale/programs/ld-time.c:279
+#, c-format
+msgid "%s: garbage at end of offset value in string %Zd in `era' field"
+msgstr "%s: smetí na konci hodnoty posunutí v řetězci %Zd položky „era“"
-#: argp/argp-parse.c:87
-msgid "Give this help list"
-msgstr "Vypí¹e tuto nápovìdu"
+#: locale/programs/ld-time.c:330
+#, c-format
+msgid "%s: invalid starting date in string %Zd in `era' field"
+msgstr "%s: neplatné poÄáteÄní datum v Å™etÄ›zci %Zd položky „era“"
-# Vdìèná chyba?
-#. TRANS This error code has no purpose.
-#: stdio-common/../sysdeps/gnu/errlist.c:636
-msgid "Gratuitous error"
-msgstr "Dobrovolná chyba"
+#: locale/programs/ld-time.c:339
+#, c-format
+msgid "%s: garbage at end of starting date in string %Zd in `era' field "
+msgstr "%s: smetí na konci poÄáteÄního data v Å™etÄ›zci %Zd položky „era“"
-#: nis/nis_print.c:319
+#: locale/programs/ld-time.c:358
#, c-format
-msgid "Group : %s\n"
-msgstr "Skupina : %s\n"
+msgid "%s: starting date is invalid in string %Zd in `era' field"
+msgstr "%s: nepovolené poÄáteÄní datum v Å™etÄ›zci %Zd položky „era“"
-#: nis/nis_print.c:248
-msgid "Group Flags :"
-msgstr "Pøíznaky skupiny :"
+#: locale/programs/ld-time.c:407
+#, c-format
+msgid "%s: invalid stopping date in string %Zd in `era' field"
+msgstr "%s: neplatné koncové datum v řetězci %Zd položky „era“"
-#: nis/nis_print_group_entry.c:113
+#: locale/programs/ld-time.c:416
#, c-format
-msgid "Group entry for \"%s.%s\" group:\n"
-msgstr "Záznam skupiny pro skupinu \"%s.%s\":\n"
+msgid "%s: garbage at end of stopping date in string %Zd in `era' field"
+msgstr "%s: smetí na konci koncového data v řetězci %Zd položky „era“"
-#: argp/argp-parse.c:91
-msgid "Hang for SECS seconds (default 3600)"
-msgstr "Poèkání SECS sekund (implicitnì 3600)"
+#: locale/programs/ld-time.c:435
+#, c-format
+msgid "%s: stopping date is invalid in string %Zd in `era' field"
+msgstr "%s: nepovolené koncové datum v řetězci %Zd položky „era“"
-#: stdio-common/../sysdeps/unix/siglist.c:26 sysdeps/generic/siglist.h:29
-#: sysdeps/gnu/siglist.h:23
-msgid "Hangup"
-msgstr "Odpojen terminál (SIGHUP)"
+#: locale/programs/ld-time.c:444
+#, c-format
+msgid "%s: missing era name in string %Zd in `era' field"
+msgstr "%s: řetězec %Zd položky „era“ neobsahuje jméno éry"
-#: nscd/grpcache.c:251
+#: locale/programs/ld-time.c:456
#, c-format
-msgid "Haven't found \"%d\" in group cache!"
-msgstr "\"%d\" nebylo v cache pamìti pro skupiny nalezeno!"
+msgid "%s: missing era format in string %Zd in `era' field"
+msgstr "%s: řetězec %Zd položky „era“ neobsahuje formát éry"
-#: nscd/pwdcache.c:249
+#: locale/programs/ld-time.c:497
#, c-format
-msgid "Haven't found \"%d\" in password cache!"
-msgstr "\"%d\" nebylo v cache pamìti pro hesla nalezeno!"
+msgid "%s: third operand for value of field `%s' must not be larger than %d"
+msgstr "%s: třetí operand hodnoty pole „%s“ nesmí být větší než %d"
-#: nscd/grpcache.c:212
+#: locale/programs/ld-time.c:505 locale/programs/ld-time.c:513
+#: locale/programs/ld-time.c:521
#, c-format
-msgid "Haven't found \"%s\" in group cache!"
-msgstr "\"%s\" nebylo v cache pamìti pro skupiny nalezeno!"
+msgid "%s: values for field `%s' must not be larger than %d"
+msgstr "%s: hodnoty položky „%s“ nesmí být větší než %d"
-#: nscd/hstcache.c:291 nscd/hstcache.c:333 nscd/hstcache.c:378
-#: nscd/hstcache.c:422
+#: locale/programs/ld-time.c:1004
#, c-format
-msgid "Haven't found \"%s\" in hosts cache!"
-msgstr "\"%s\" nebylo v cache pamìti pro poèítaèe nalezeno!"
+msgid "%s: too few values for field `%s'"
+msgstr "%s: příliš málo hodnot pro položku „%s“"
-#: nscd/pwdcache.c:210
+#: locale/programs/ld-time.c:1049
+msgid "extra trailing semicolon"
+msgstr "středník přebývající na konci"
+
+#: locale/programs/ld-time.c:1052
#, c-format
-msgid "Haven't found \"%s\" in password cache!"
-msgstr "\"%s\" nebylo v cache pamìti pro hesla nalezeno!"
+msgid "%s: too many values for field `%s'"
+msgstr "%s: příliš mnoho hodnot pro položku „%s“"
-#. TRANS The remote host for a requested network connection is down.
-#: stdio-common/../sysdeps/gnu/errlist.c:469
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:176
-msgid "Host is down"
-msgstr "Poèítaè není v provozu"
+#: locale/programs/linereader.c:130
+msgid "trailing garbage at end of line"
+msgstr "smetí na konci řádku"
-#: resolv/herror.c:75
-msgid "Host name lookup failure"
-msgstr "Název poèítaèe se nepodaøilo nalézt"
+#: locale/programs/linereader.c:298
+msgid "garbage at end of number"
+msgstr "smetí na konci Äísla"
-# Vzdálená V/V chyba
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:34
-msgid "I/O error"
-msgstr "Chyba vstupu/výstupu"
+#: locale/programs/linereader.c:410
+msgid "garbage at end of character code specification"
+msgstr "smetí na konci specifikace kódu znaku"
-#: stdio-common/../sysdeps/unix/siglist.c:48 sysdeps/generic/siglist.h:49
-#: sysdeps/gnu/siglist.h:43
-msgid "I/O possible"
-msgstr "Vstup/Výstup mo¾ný (SIGIO)"
+#: locale/programs/linereader.c:496
+msgid "unterminated symbolic name"
+msgstr "neukonÄené symbolické jméno"
-#: db2/makedb.c:71
+#: locale/programs/linereader.c:623
+msgid "illegal escape sequence at end of string"
+msgstr "chybná escape-sekvence na konci řetězce"
+
+#: locale/programs/linereader.c:627 locale/programs/linereader.c:855
+msgid "unterminated string"
+msgstr "neukonÄený Å™etÄ›zec"
+
+#: locale/programs/linereader.c:669
+msgid "non-symbolic character value should not be used"
+msgstr "hodnota nesymbolického znaku by neměla být používána"
+
+#: locale/programs/linereader.c:816
+#, c-format
+msgid "symbol `%.*s' not in charmap"
+msgstr "symbol „%.*s“ není v mapě znaků"
+
+#: locale/programs/linereader.c:837
+#, c-format
+msgid "symbol `%.*s' not in repertoire map"
+msgstr "symbol „%.*s“ není v mapě repertoárů"
+
+#: locale/programs/locale.c:74
+msgid "System information:"
+msgstr "Systémové informace:"
+
+#: locale/programs/locale.c:76
+msgid "Write names of available locales"
+msgstr "Vypíše názvy dostupných národních prostředí"
+
+#: locale/programs/locale.c:78
+msgid "Write names of available charmaps"
+msgstr "Vypíše názvy dostupných znakových sad"
+
+#: locale/programs/locale.c:79
+msgid "Modify output format:"
+msgstr "Změna výstupního formátu:"
+
+#: locale/programs/locale.c:80
+msgid "Write names of selected categories"
+msgstr "Vypíše názvy vybraných kategorií"
+
+#: locale/programs/locale.c:81
+msgid "Write names of selected keywords"
+msgstr "Vypíše názvy vybraných klíÄových slov"
+
+#: locale/programs/locale.c:82
+msgid "Print more information"
+msgstr "Vypisuje další informace"
+
+#: locale/programs/locale.c:87
msgid ""
-"INPUT-FILE OUTPUT-FILE\n"
-"-o OUTPUT-FILE INPUT-FILE\n"
-"-u INPUT-FILE"
+"Get locale-specific information.\vFor bug reporting instructions, please see:\n"
+"<http://www.gnu.org/software/libc/bugs.html>.\n"
msgstr ""
-"VSTUPNÍ_SOUBOR VÝSTUPNÍ_SOUBOR\n"
-"-o VÝSTUPNÍ_SOUBOR VSTUPNÍ_SOUBOR\n"
-"-u VSTUPNÍ_SOUBOR"
+"Vrátí informace o národním prostředí.\vNávod, jak nahlásit chybu, naleznete na:\n"
+"<http://www.gnu.org/software/libc/bugs.html>.\n"
-#: stdio-common/../sysdeps/unix/siglist.c:31
-msgid "IOT trap"
-msgstr "IOT past (SIGIOT)"
+#: locale/programs/locale.c:92
+msgid ""
+"NAME\n"
+"[-a|-m]"
+msgstr ""
+"NÃZEV\n"
+"[-a|-m]"
-#: nis/nis_print.c:35
-msgid "IVY"
-msgstr "IVY"
+#: locale/programs/locale.c:193
+#, c-format
+msgid "Cannot set LC_CTYPE to default locale"
+msgstr "LC_CTYPE nelze nastavit na implicitní národní prostředí"
-#: stdio-common/../sysdeps/gnu/errlist.c:644
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:65
-msgid "Identifier removed"
-msgstr "Identifikátor odstranìn"
+#: locale/programs/locale.c:195
+#, c-format
+msgid "Cannot set LC_MESSAGES to default locale"
+msgstr "LC_MESSAGES nelze nastavit na implicitní národní prostředí"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:117
-msgid "Illegal byte sequence"
-msgstr "Nedovolené poøadí bajtù"
+#: locale/programs/locale.c:208
+#, c-format
+msgid "Cannot set LC_COLLATE to default locale"
+msgstr "LC_COLLATE nelze nastavit na implicitní národní prostředí"
-#: stdio-common/../sysdeps/unix/siglist.c:29 sysdeps/generic/siglist.h:32
-#: sysdeps/gnu/siglist.h:26
-msgid "Illegal instruction"
-msgstr "Nedovolená instrukce (SIGILL)"
+#: locale/programs/locale.c:224
+#, c-format
+msgid "Cannot set LC_ALL to default locale"
+msgstr "LC_ALL nelze nastavit na implicitní národní prostředí"
-#: nis/nis_error.c:61
-msgid "Illegal object type for operation"
-msgstr "Nedovolený typ objektu pro operaci"
+#: locale/programs/locale.c:500
+#, c-format
+msgid "while preparing output"
+msgstr "během přípravy výstupu"
-#. TRANS Invalid seek operation (such as on a pipe).
-#: stdio-common/../sysdeps/gnu/errlist.c:213
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:58
-msgid "Illegal seek"
-msgstr "Nedovolené nastavení pozice"
+#: locale/programs/localedef.c:120
+msgid "Input Files:"
+msgstr "Vstupní soubory:"
-#. TRANS Inappropriate file type or format. The file was the wrong type for the
-#. TRANS operation, or a data file had the wrong format.
-#. TRANS
-#. TRANS On some systems @code{chmod} returns this error if you try to set the
-#. TRANS sticky bit on a non-directory file; @pxref{Setting Permissions}.
-#: stdio-common/../sysdeps/gnu/errlist.c:556
-msgid "Inappropriate file type or format"
-msgstr "Nevhodný typ nebo formát souboru"
+#: locale/programs/localedef.c:122
+msgid "Symbolic character names defined in FILE"
+msgstr "Symbolické názvy znaků budou Äteny ze SOUBORU (znakové sady)"
-#. TRANS Inappropriate I/O control operation, such as trying to set terminal
-#. TRANS modes on an ordinary file.
-#: stdio-common/../sysdeps/gnu/errlist.c:188
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:54
-msgid "Inappropriate ioctl for device"
-msgstr "Pro toto zaøízení nevhodné ioctl"
+#: locale/programs/localedef.c:123
+msgid "Source definitions are found in FILE"
+msgstr "NaÄte zdrojovou definici národního prostÅ™edí ze SOUBORU"
-#. TRANS In the GNU system, servers supporting the @code{term} protocol return
-#. TRANS this error for certain operations when the caller is not in the
-#. TRANS foreground process group of the terminal. Users do not usually see this
-#. TRANS error because functions such as @code{read} and @code{write} translate
-#. TRANS it into a @code{SIGTTIN} or @code{SIGTTOU} signal. @xref{Job Control},
-#. TRANS for information on process groups and these signals.
-#: stdio-common/../sysdeps/gnu/errlist.c:607
-msgid "Inappropriate operation for background process"
-msgstr "Nevhodná operace pro proces na pozadí"
+#: locale/programs/localedef.c:125
+msgid "FILE contains mapping from symbolic names to UCS4 values"
+msgstr "SOUBOR obsahující mapování symbolických názvů na UCS4 hodnoty"
-#: sysdeps/generic/siglist.h:69 sysdeps/gnu/siglist.h:63
-msgid "Information request"
-msgstr "®ádost o informaci (SIGINFO)"
+#: locale/programs/localedef.c:129
+msgid "Create output even if warning messages were issued"
+msgstr "Vytvoří výstupní soubor i při výskytu varování"
-#: iconv/iconv_prog.c:57
-msgid "Information:"
-msgstr "Informace:"
+#: locale/programs/localedef.c:130
+msgid "Create old-style tables"
+msgstr "Vytvoří tabulky ve starém stylu"
-#: locale/programs/localedef.c:90
-msgid "Input Files:"
-msgstr "Vstupní soubory:"
+#: locale/programs/localedef.c:131
+msgid "Optional output file prefix"
+msgstr "Volitelná předpona výstupních souborů"
-#: iconv/iconv_prog.c:54
-msgid "Input/Output format specification:"
-msgstr "Zadání vstupnì/výstupního formátu:"
+#: locale/programs/localedef.c:132
+msgid "Be strictly POSIX conform"
+msgstr "Přesný soulad s POSIX"
-#. TRANS Input/output error; usually used for physical read or write errors.
-#: stdio-common/../sysdeps/gnu/errlist.c:52
-msgid "Input/output error"
-msgstr "Chyba vstupu/výstupu"
+#: locale/programs/localedef.c:134
+msgid "Suppress warnings and information messages"
+msgstr "PotlaÄí varovné a informaÄní zprávy"
-#: nis/ypclnt.c:785
-msgid "Internal NIS error"
-msgstr "Vnitøní chyba NIS"
+# Verbose
+#: locale/programs/localedef.c:135
+msgid "Print more messages"
+msgstr "Vypíše více informací o průběhu"
-#: nis/ypclnt.c:849
-msgid "Internal ypbind error"
-msgstr "Vnitøní chyba ypbind"
+#: locale/programs/localedef.c:136
+msgid "Archive control:"
+msgstr "Řízení archivace:"
-#: stdio-common/../sysdeps/unix/siglist.c:27 sysdeps/generic/siglist.h:30
-#: sysdeps/gnu/siglist.h:24
-msgid "Interrupt"
-msgstr "Pøeru¹ení (SIGINT)"
+#: locale/programs/localedef.c:138
+msgid "Don't add new data to archive"
+msgstr "Do archivu nová data do nepřidá"
-#. TRANS Interrupted function call; an asynchronous signal occurred and prevented
-#. TRANS completion of the call. When this happens, you should try the call
-#. TRANS again.
-#. TRANS
-#. TRANS You can choose to have functions resume after a signal that is handled,
-#. TRANS rather than failing with @code{EINTR}; see @ref{Interrupted
-#. TRANS Primitives}.
-#: stdio-common/../sysdeps/gnu/errlist.c:47
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:33
-msgid "Interrupted system call"
-msgstr "Pøeru¹ené volání systému"
+#: locale/programs/localedef.c:140
+msgid "Add locales named by parameters to archive"
+msgstr "Do archivu přidá nová národní prostředí dle parametrů"
-#: stdio-common/../sysdeps/gnu/errlist.c:684
-msgid "Interrupted system call should be restarted"
-msgstr "Pøeru¹ené volání systému by mìlo být znovu spu¹tìno"
+#: locale/programs/localedef.c:141
+msgid "Replace existing archive content"
+msgstr "Existující obsah archivu bude nahrazen"
-#. TRANS Invalid argument. This is used to indicate various kinds of problems
-#. TRANS with passing the wrong argument to a library function.
-#: stdio-common/../sysdeps/gnu/errlist.c:164
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:51
-msgid "Invalid argument"
-msgstr "Nepøípustný argument"
+#: locale/programs/localedef.c:143
+msgid "Remove locales named by parameters from archive"
+msgstr "Z archivu odstraní národní prostředí dle parametrů"
-#: posix/regex.c:1034
-msgid "Invalid back reference"
-msgstr "Neplatný zpìtný odkaz"
+#: locale/programs/localedef.c:144
+msgid "List content of archive"
+msgstr "Vypíše obsah archivu"
-#: posix/regex.c:1028
-msgid "Invalid character class name"
-msgstr "Nepøípustný název tøídy znakù"
+#: locale/programs/localedef.c:146
+msgid "locale.alias file to consult when making archive"
+msgstr "Soubor locale.alias, který bude použit při vytváření archivu"
-#: sunrpc/clnt_perr.c:331
-msgid "Invalid client credential"
-msgstr "Neplatné oprávnìní klienta"
+#: locale/programs/localedef.c:151
+msgid "Compile locale specification"
+msgstr "Kompiluje definice národního prostředí."
-# Chybný ovìøovaè klienta
-#: sunrpc/clnt_perr.c:339
-msgid "Invalid client verifier"
-msgstr "Neplatné ovìøení klienta"
+#: locale/programs/localedef.c:154
+msgid ""
+"NAME\n"
+"[--add-to-archive|--delete-from-archive] FILE...\n"
+"--list-archive [FILE]"
+msgstr ""
+"JMÉNO\n"
+"[--add-to-archive|--delete-from-archive] SOUBOR…\n"
+"--list-archive [SOUBOR]"
-#: posix/regex.c:1025
-msgid "Invalid collation character"
-msgstr "Pro øazení nepøípustný znak"
+#: locale/programs/localedef.c:232
+#, c-format
+msgid "cannot create directory for output files"
+msgstr "adresář pro výstupní soubory nelze vytvořit"
-#: posix/regex.c:1046
-msgid "Invalid content of \\{\\}"
-msgstr "Nepøípustný obsah \\{\\}"
+#: locale/programs/localedef.c:243
+#, c-format
+msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
+msgstr "FATÃLNà CHYBA: systém nedefinuje „_POSIX2_LOCALEDEF“"
-# Nepøípustný odkaz mezi zaøízeními
-#. TRANS An attempt to make an improper link across file systems was detected.
-#. TRANS This happens not only when you use @code{link} (@pxref{Hard Links}) but
-#. TRANS also when you rename a file with @code{rename} (@pxref{Renaming Files}).
-#: stdio-common/../sysdeps/gnu/errlist.c:141
-msgid "Invalid cross-device link"
-msgstr "Odkaz mezi zaøízeními není pøípustný"
+#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
+#: locale/programs/localedef.c:599 locale/programs/localedef.c:619
+#, c-format
+msgid "cannot open locale definition file `%s'"
+msgstr "soubor „%s“ definice národního prostředí nelze otevřít"
-#: stdio-common/../sysdeps/gnu/errlist.c:720
-msgid "Invalid exchange"
-msgstr "Nepøípustná výmìna"
+#: locale/programs/localedef.c:285
+#, c-format
+msgid "cannot write output files to `%s'"
+msgstr "výstupní soubory nelze do „%s“ zapsat"
-#: nis/nis_error.c:44
-msgid "Invalid object for operation"
-msgstr "Neplatný objekt pro operaci"
+#: locale/programs/localedef.c:366
+#, c-format
+msgid ""
+"System's directory for character maps : %s\n"
+" repertoire maps: %s\n"
+" locale path : %s\n"
+"%s"
+msgstr ""
+"Systémový adresář pro znakové sady: : %s\n"
+" repertoáry znaků : %s\n"
+" lokalizaÄní soubory : %s\n"
+"%s"
-#. TRANS While decoding a multibyte character the function came along an invalid
-#. TRANS or an incomplete sequence of bytes or the given wide character is invalid.
-#: stdio-common/../sysdeps/gnu/errlist.c:597
-msgid "Invalid or incomplete multibyte or wide character"
-msgstr "Nepøípustný nebo nekompletní vícebajtový nebo ¹iroký znak"
+#: locale/programs/localedef.c:567
+#, c-format
+msgid "circular dependencies between locale definitions"
+msgstr "kruhové závislosti mezi definicemi národního prostředí"
-#: posix/regex.c:1055
-msgid "Invalid preceding regular expression"
-msgstr "Nepøípustný pøedchozí regulární výraz"
+#: locale/programs/localedef.c:573
+#, c-format
+msgid "cannot add already read locale `%s' a second time"
+msgstr "již naÄtené národní prostÅ™edí „%s“ nelze po druhé pÅ™idat"
-#: posix/regex.c:1049
-msgid "Invalid range end"
-msgstr "Nepøípustný konec rozsahu"
+#: locale/programs/locarchive.c:88 locale/programs/locarchive.c:261
+#, c-format
+msgid "cannot create temporary file"
+msgstr "doÄasný soubor nelze vytvoÅ™it"
-#: posix/regex.c:1022
-msgid "Invalid regular expression"
-msgstr "Nepøípustný regulární výraz"
+#: locale/programs/locarchive.c:118 locale/programs/locarchive.c:307
+#, c-format
+msgid "cannot initialize archive file"
+msgstr "soubor s archivem nelze inicializovat"
-#: stdio-common/../sysdeps/gnu/errlist.c:736
-msgid "Invalid request code"
-msgstr "Neplatný kód ¾ádosti"
+#: locale/programs/locarchive.c:125 locale/programs/locarchive.c:314
+#, c-format
+msgid "cannot resize archive file"
+msgstr "souboru s archivem nelze změnit velikost "
-#: stdio-common/../sysdeps/gnu/errlist.c:724
-msgid "Invalid request descriptor"
-msgstr "Nepøípustný deskriptor ¾ádosti"
+#: locale/programs/locarchive.c:134 locale/programs/locarchive.c:323
+#: locale/programs/locarchive.c:527
+#, c-format
+msgid "cannot map archive header"
+msgstr "hlaviÄku ze souboru s archivem nelze namapovat"
-# Chybný ovìøovaè serveru
-#: sunrpc/clnt_perr.c:351
-msgid "Invalid server verifier"
-msgstr "Neplatné ovìøení serveru"
+#: locale/programs/locarchive.c:156
+#, c-format
+msgid "failed to create new locale archive"
+msgstr "vytvoření nového archivu národního prostředí selhalo"
-#: stdio-common/../sysdeps/gnu/errlist.c:740
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:84
-msgid "Invalid slot"
-msgstr "Neplatný slot"
+#: locale/programs/locarchive.c:168
+#, c-format
+msgid "cannot change mode of new locale archive"
+msgstr "přístupová práva k novému archivu národního prostředí nelze změnit"
-#: nscd/nscd.c:88
-msgid "Invalidate the specified cache"
-msgstr "Zneplatnìní zadané cache"
+#: locale/programs/locarchive.c:255
+#, c-format
+msgid "cannot map locale archive file"
+msgstr "soubor národního prostředí nelze namapovat"
-#. TRANS File is a directory; you cannot open a directory for writing,
-#. TRANS or create or remove hard links to it.
-#: stdio-common/../sysdeps/gnu/errlist.c:158
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:50
-msgid "Is a directory"
-msgstr "je adresáøem"
+#: locale/programs/locarchive.c:331
+#, c-format
+msgid "cannot lock new archive"
+msgstr "nový archiv nelze zamknout"
-# Je pojmenovaný typ souboru
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:168
-msgid "Is a name file"
-msgstr "Je názvový soubor"
+#: locale/programs/locarchive.c:396
+#, c-format
+msgid "cannot extend locale archive file"
+msgstr "soubor s archivem národního prostředí nelze rozšířit"
-# Je pojmenovaný typ souboru
-#: stdio-common/../sysdeps/gnu/errlist.c:824
-msgid "Is a named type file"
-msgstr "Je soubor zadaného typu"
+#: locale/programs/locarchive.c:405
+#, c-format
+msgid "cannot change mode of resized locale archive"
+msgstr "přístupová práva změněného archivu národního prostředí nelze změnit"
-#: nis/nis_print.c:187
-msgid "Kerberos.\n"
-msgstr "Kerberos.\n"
+#: locale/programs/locarchive.c:413
+#, c-format
+msgid "cannot rename new archive"
+msgstr "nový archiv nelze přejmenovat"
-#: stdio-common/../sysdeps/unix/siglist.c:34 sysdeps/generic/siglist.h:36
-#: sysdeps/gnu/siglist.h:30
-msgid "Killed"
-msgstr "Zabit (SIGKILL)"
+#: locale/programs/locarchive.c:466
+#, c-format
+msgid "cannot open locale archive \"%s\""
+msgstr "soubor „%s“ národního prostředí nelze otevřít"
-#: nis/nis_print.c:123
-msgid "LINK\n"
-msgstr "ODKAZ\n"
+#: locale/programs/locarchive.c:471
+#, c-format
+msgid "cannot stat locale archive \"%s\""
+msgstr "nelze vykonat stat() pro archiv národního prostředí „%s“"
-#: nis/nis_local_names.c:125
+#: locale/programs/locarchive.c:490
#, c-format
-msgid "LOCAL entry for UID %d in directory %s not unique\n"
-msgstr "LOKÁLNÍ záznam pro UID %d v adresáøi %s není unikátní\n"
+msgid "cannot lock locale archive \"%s\""
+msgstr "archiv „%s“ národního prostředí nelze zamknout"
-# Úroveò 2 zastavena
-#: stdio-common/../sysdeps/gnu/errlist.c:716
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:73
-msgid "Level 2 halted"
-msgstr "Úroveò 2 - zastaveno"
+#: locale/programs/locarchive.c:513
+#, c-format
+msgid "cannot read archive header"
+msgstr "hlaviÄku archivu nelze pÅ™eÄíst"
-# Úroveò 2 není synchronizována
-#: stdio-common/../sysdeps/gnu/errlist.c:692
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:67
-msgid "Level 2 not synchronized"
-msgstr "Úroveò 2 - není synchronizováno"
+#: locale/programs/locarchive.c:573
+#, c-format
+msgid "locale '%s' already exists"
+msgstr "národní prostředí „%s“ již existuje"
-# Úroveò 3 zastavena
-#: stdio-common/../sysdeps/gnu/errlist.c:696
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:68
-msgid "Level 3 halted"
-msgstr "Úroveò 3 - zastaveno"
+#: locale/programs/locarchive.c:804 locale/programs/locarchive.c:819
+#: locale/programs/locarchive.c:831 locale/programs/locarchive.c:843
+#: locale/programs/locfile.c:344
+#, c-format
+msgid "cannot add to locale archive"
+msgstr "do archivu národního prostředí nelze přidávat"
-# Úroveò 3 nastavena na výchozí hodnoty
-#: stdio-common/../sysdeps/gnu/errlist.c:700
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:69
-msgid "Level 3 reset"
-msgstr "Úroveò 3 - nastaveno na výchozí hodnoty"
+#: locale/programs/locarchive.c:998
+#, c-format
+msgid "locale alias file `%s' not found"
+msgstr "soubor „%s“ s přezdívkami národních prostředí není k nalezení"
-# Odkaz byl zpøetrhán?
-#: stdio-common/../sysdeps/gnu/errlist.c:656
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:96
-msgid "Link has been severed"
-msgstr "Odkaz byl znièen"
+#: locale/programs/locarchive.c:1142
+#, c-format
+msgid "Adding %s\n"
+msgstr "Přidávám %s\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:704
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:70
-msgid "Link number out of range"
-msgstr "Èíslo odkazu mimo rozsah"
+#: locale/programs/locarchive.c:1148
+#, c-format
+msgid "stat of \"%s\" failed: %s: ignored"
+msgstr "stat() na „%s“ selhal: %s: ignorováno"
-#: nis/nis_error.c:53
-msgid "Link points to illegal name"
-msgstr "Odkaz odkazuje na nedovolený název"
+#: locale/programs/locarchive.c:1154
+#, c-format
+msgid "\"%s\" is no directory; ignored"
+msgstr "„%s“ není adresářem: ignorováno"
-#: nis/nis_print.c:282
-msgid "Linked Object Type : "
-msgstr "Typ odkazovaného objektu : "
+#: locale/programs/locarchive.c:1161
+#, c-format
+msgid "cannot open directory \"%s\": %s: ignored"
+msgstr "adresář „%s“ nelze otevřít: %s: ignorováno"
-#: nis/nis_print.c:284
+#: locale/programs/locarchive.c:1233
#, c-format
-msgid "Linked to : %s\n"
-msgstr "Odkazuje na : %s\n"
+msgid "incomplete set of locale files in \"%s\""
+msgstr "neúplná sada souborů národních prostředí v „%s“"
-#: nis/ypclnt.c:797
-msgid "Local domain name not set"
-msgstr "Jméno místní domény není nastaveno"
+#: locale/programs/locarchive.c:1297
+#, c-format
+msgid "cannot read all files in \"%s\": ignored"
+msgstr "vÅ¡echny soubory v „%s“ nelze pÅ™eÄíst: ignorováno"
-#: nis/ypclnt.c:787
-msgid "Local resource allocation failure"
-msgstr "Chyba pøi pøidìlování místních prostøedkù"
+#: locale/programs/locarchive.c:1367
+#, c-format
+msgid "locale \"%s\" not in archive"
+msgstr "národní prostředí „%s“ není v archivu"
-#: stdio-common/../sysdeps/gnu/errlist.c:752
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:93
-msgid "Machine is not on the network"
-msgstr "Poèítaè není v síti"
+#: locale/programs/locfile.c:132
+#, c-format
+msgid "argument to `%s' must be a single character"
+msgstr "argument pro „%s“ musí být jednoznakový"
-#: nis/nis_error.c:45
-msgid "Malformed name, or illegal name"
-msgstr "Chybnì formovaný nebo nepøípustný název"
+#: locale/programs/locfile.c:252
+msgid "syntax error: not inside a locale definition section"
+msgstr "syntaktická chyba: není uvnitř sekce pro definici národního prostředí"
-#: argp/argp-help.c:1186
-msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
-msgstr " Argumenty po¾adované dlouhými pøepínaèi, jsou také po¾adovány jejich krátkými formami."
+#: locale/programs/locfile.c:626
+#, c-format
+msgid "cannot open output file `%s' for category `%s'"
+msgstr "výstupní soubor „%s“ pro kategorii „%s“ nelze otevřít"
-#: nis/nis_print.c:168
-msgid "Master Server :\n"
-msgstr "Hlavní server:\n"
+#: locale/programs/locfile.c:650
+#, c-format
+msgid "failure while writing data for category `%s'"
+msgstr "chyba během zápisu dat kategorie „%s“"
-#: nis/nis_error.c:75
-msgid "Master server busy, full dump rescheduled."
-msgstr "Hlavní server je zaneprázdnìn, úplný pøenos byl pøeplánován."
+#: locale/programs/locfile.c:746
+#, c-format
+msgid "cannot create output file `%s' for category `%s'"
+msgstr "výstupní soubor „%s“ pro kategorii „%s“ nelze vytvořit"
-#: posix/../sysdeps/posix/gai_strerror.c:35
-msgid "Memory allocation failure"
-msgstr "Alokace pamìti nebyla úspì¹ná"
+#: locale/programs/locfile.c:782
+msgid "expect string argument for `copy'"
+msgstr "jako argument pro „copy“ oÄekáván Å™etÄ›zec"
-#: posix/regex.c:1052
-msgid "Memory exhausted"
-msgstr "Pamì» vyèerpána"
+#: locale/programs/locfile.c:786
+msgid "locale name should consist only of portable characters"
+msgstr "jméno národního prostředí by mělo být tvořeno jen přenositelnými znaky"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:81
-msgid "Message tables full"
-msgstr "Tabulky zpráv jsou plné"
+#: locale/programs/locfile.c:805
+msgid "no other keyword shall be specified when `copy' is used"
+msgstr "pÅ™i použití „copy“ není dovoleno použít žádné jiné klíÄové slovo"
-#. TRANS The size of a message sent on a socket was larger than the supported
-#. TRANS maximum size.
-#: stdio-common/../sysdeps/gnu/errlist.c:317
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:126
-msgid "Message too long"
-msgstr "Pøíli¹ dlouhá zpráva"
+#: locale/programs/locfile.c:819
+#, c-format
+msgid "`%1$s' definition does not end with `END %1$s'"
+msgstr "Definice „%1$s“ nekonÄí „END %1$s“"
-#: nis/nis_error.c:57
-msgid "Missing or malformed attribute"
-msgstr "Chybìjící nebo chybnì formovaný atribut"
+#: locale/programs/repertoire.c:230 locale/programs/repertoire.c:271
+#: locale/programs/repertoire.c:296
+#, c-format
+msgid "syntax error in repertoire map definition: %s"
+msgstr "syntaktická chyba v definici repertoáru znaků: %s"
-#: nis/nis_print.c:327
+#: locale/programs/repertoire.c:272
+msgid "no <Uxxxx> or <Uxxxxxxxx> value given"
+msgstr "hodnota <Uxxxx> nebo <Uxxxxxxxx> nebyla zadána"
+
+#: locale/programs/repertoire.c:332
#, c-format
-msgid "Mod. Time : %s"
-msgstr "Èas zmìny : %s"
+msgid "cannot save new repertoire map"
+msgstr "nový repertoár znaků nelze uložit"
-# Modifikace selhala
-# Chyba NIS_IBMODERROR
-#: nis/nis_error.c:50
-msgid "Modification failed"
-msgstr "Zmìna nebyla provedena"
+#: locale/programs/repertoire.c:343
+#, c-format
+msgid "repertoire map file `%s' not found"
+msgstr "soubor „%s“ repertoáru znaků nebyl nalezen"
-# Chyba NIS_MODFAIL
-#: nis/nis_error.c:63
-msgid "Modify operation failed"
-msgstr "Operace zmìny nebyla provedena úspì¹nì"
+#: login/programs/pt_chown.c:74
+#, c-format
+msgid "Set the owner, group and access permission of the slave pseudo terminal corresponding to the master pseudo terminal passed on file descriptor `%d'. This is the helper program for the `grantpt' function. It is not intended to be run directly from the command line.\n"
+msgstr "Nastaví vlastníka, skupinu a přístupová práva podřízenému pseudoterminálu, který přísluší nadřízenému pseudoterminálu, na základÄ› deskriptoru souboru „%d“. Toto je pomocný program pro funkci „grantpt“ a není urÄen pro přímé volání z příkazové řádky.\n"
-#: locale/programs/locale.c:68
-msgid "Modify output format:"
-msgstr "Zmìna výstupního formátu:"
+#: login/programs/pt_chown.c:84
+#, c-format
+msgid ""
+"The owner is set to the current user, the group is set to `%s', and the access permission is set to `%o'.\n"
+"\n"
+"%s"
+msgstr ""
+"Vlastník bude nastaven podle souÄasného uživatele, skupina na „%s“ a přístupová práva na „%o“.\n"
+"\n"
+"%s"
-#: stdio-common/../sysdeps/gnu/errlist.c:648
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:103
-msgid "Multihop attempted"
-msgstr "Pokus o spojení pøes více uzlù"
+#: login/programs/pt_chown.c:161
+#, c-format
+msgid "too many arguments"
+msgstr "příliš mnoho argumentů"
-#: catgets/gencat.c:107 catgets/gencat.c:111 db2/makedb.c:59
-#: locale/programs/localedef.c:112 nscd/nscd.c:80
-msgid "NAME"
-msgstr "NÁZEV"
+#: login/programs/pt_chown.c:169
+#, c-format
+msgid "needs to be installed setuid `root'"
+msgstr "je třeba být nainstalován se SUID bitem a vlastníkem „root“"
-#: locale/programs/locale.c:78
+#: malloc/mcheck.c:330
+msgid "memory is consistent, library is buggy\n"
+msgstr "paměť je konzistentní, knihovna je chybná\n"
+
+#: malloc/mcheck.c:333
+msgid "memory clobbered before allocated block\n"
+msgstr "paměť pÅ™ed zaÄátkem pÅ™idÄ›leného bloku pÅ™epsána\n"
+
+#: malloc/mcheck.c:336
+msgid "memory clobbered past end of allocated block\n"
+msgstr "paměť za koncem přiděleného bloku přepsána\n"
+
+#: malloc/mcheck.c:339
+msgid "block freed twice\n"
+msgstr "blok uvolněn dvakrát\n"
+
+#: malloc/mcheck.c:342
+msgid "bogus mcheck_status, library is buggy\n"
+msgstr "pochybný mcheck_status, knihovna je chybná\n"
+
+#: malloc/memusage.sh:27
+msgid "Try \\`memusage --help' for more information."
+msgstr "Více informací získáte příkazem „memusage --help“."
+
+#: malloc/memusage.sh:33
+msgid "memusage: option \\`$1' requires an argument"
+msgstr "memusage: pÅ™epínaÄ â€ž$1“ vyžaduje argument"
+
+#: malloc/memusage.sh:39
msgid ""
-"NAME\n"
-"[-a|-m]"
+"Usage: memusage [OPTION]... PROGRAM [PROGRAMOPTION]...\n"
+"Profile memory usage of PROGRAM.\n"
+"\n"
+" -n,--progname=NAME Name of the program file to profile\n"
+" -p,--png=FILE Generate PNG graphic and store it in FILE\n"
+" -d,--data=FILE Generate binary data file and store it in FILE\n"
+" -u,--unbuffered Don't buffer output\n"
+" -b,--buffer=SIZE Collect SIZE entries before writing them out\n"
+" --no-timer Don't collect additional information through timer\n"
+" -m,--mmap Also trace mmap & friends\n"
+"\n"
+" -?,--help Print this help and exit\n"
+" --usage Give a short usage message\n"
+" -V,--version Print version information and exit\n"
+"\n"
+" The following options only apply when generating graphical output:\n"
+" -t,--time-based Make graph linear in time\n"
+" -T,--total Also draw graph of total memory use\n"
+" --title=STRING Use STRING as title of the graph\n"
+" -x,--x-size=SIZE Make graphic SIZE pixels wide\n"
+" -y,--y-size=SIZE Make graphic SIZE pixels high\n"
+"\n"
+"Mandatory arguments to long options are also mandatory for any corresponding\n"
+"short options.\n"
+"\n"
+"For bug reporting instructions, please see:\n"
+"<http://www.gnu.org/software/libc/bugs.html>."
msgstr ""
-"NÁZEV\n"
-"[-a|-m]"
+"Použití: memusage [PŘEPÃNAÄŒ]… PROGRAM [PŘEPÃNAÄŒE_PROGRAMU]…\n"
+"Vyšetří využití paměti PROGRAMEM.\n"
+"\n"
+" -n,--progname=JMÉNO Jméno souboru s programem, který se má vyšetřit\n"
+" -p,--png=SOUBOR Generuje PNG obrázek a uloží jej do SOUBORU\n"
+" -d,--data=SOUBOR Generuje binární data uloží je do SOUBORU\n"
+" -u,--unbuffered Nebufferuje výstup\n"
+" -b,--buffer=VELIKOST Posbírá VELIKOST položek dříve, než je vypíše\n"
+" --no-timer Další informace neshromažÄuje za použití ÄasovaÄe\n"
+" -m,--mmap Také sleduje mmap() a podobné\n"
+"\n"
+" -?,--help Vypíše tuto nápovÄ›du a skonÄí\n"
+" --usage Vrátí krátký návod na použití\n"
+" -V,--version Vypíše informace o verzi a skonÄí\n"
+"\n"
+" Následující pÅ™epínaÄe mají smysl jen pÅ™i grafickém výstupu:\n"
+" -t,--time-based UdÄ›lá graf lineární v Äase\n"
+" -T,--total Vykreslí také graf celkového využití paměti\n"
+" --title=ŘETĚZEC Jako nadpis grafu se použije ŘETĚZEC\n"
+" -x,--x-size=VELIKOST Šířka obrázku v pixelech\n"
+" -y,--y-size=VELIKOST Výška obrázku v pixelech\n"
+"\n"
+"Argumenty povinné u dlouhých pÅ™epínaÄů jsou také povinné u jejich\n"
+"krátkých forem\n"
+"\n"
+"Návod, jak nahlásit chybu, naleznete na:\n"
+"<http://www.gnu.org/software/libc/bugs.html>."
-#: nis/nis_print.c:31
-msgid "NIS"
-msgstr "NIS"
+#: malloc/memusage.sh:99
+msgid ""
+"Syntax: memusage [--data=FILE] [--progname=NAME] [--png=FILE] [--unbuffered]\n"
+" [--buffer=SIZE] [--no-timer] [--time-based] [--total]\n"
+" [--title=STRING] [--x-size=SIZE] [--y-size=SIZE]\n"
+" PROGRAM [PROGRAMOPTION]..."
+msgstr ""
+"Syntaxe: memusage [--data=SOUBOR] [--progname=JMÉNO] [--png=SOUBOR]\n"
+" [--unbuffered] [--buffer=VELIKOST] [--no-timer] [--time-based]\n"
+" [--total] [--title=ŘETĚZEC] [--x-size=VELIKOST] [--y-size=VELIKOST]\n"
+" PROGRAM [PŘEPÃNAÄŒ_PROGRAMU]…"
-#: nis/ypclnt.c:801
-msgid "NIS client/server version mismatch - can't supply service"
-msgstr "Rozdílné verze NIS klienta a serveru - slu¾bu nelze poskytnout"
+#: malloc/memusage.sh:191
+msgid "memusage: option \\`${1##*=}' is ambiguous"
+msgstr "memusage: pÅ™epínaÄ â€ž${1##*=}“ není jednoznaÄný"
-#: nis/ypclnt.c:799
-msgid "NIS map database is bad"
-msgstr "NIS map databáze je chybná"
+#: malloc/memusage.sh:200
+msgid "memusage: unrecognized option \\`$1'"
+msgstr "memusage: nerozpoznaný pÅ™epínaÄ â€ž$1“"
-#: nis/nis_error.c:68
-msgid "NIS+ operation failed"
-msgstr "NIS+ operace nebyla provedena úspì¹nì"
+#: malloc/memusage.sh:213
+msgid "No program name given"
+msgstr "Nezadán žádný název programu"
+
+#: malloc/memusagestat.c:54
+msgid "Name output file"
+msgstr "Název výstupního souboru"
+
+#: malloc/memusagestat.c:55
+msgid "Title string used in output graphic"
+msgstr "Text nadpisu použitý ve výstupní grafice"
+
+#: malloc/memusagestat.c:56
+msgid "Generate output linear to time (default is linear to number of function calls)"
+msgstr "Vytvoří výstup lineární v Äase (implicitní chování je linearita vzhledem k poÄtu volání funkce) "
+
+#: malloc/memusagestat.c:58
+msgid "Also draw graph for total memory consumption"
+msgstr "Vykreslí také graf celkové spotřeby paměti"
+
+#: malloc/memusagestat.c:59
+msgid "Make output graphic VALUE pixels wide"
+msgstr "Vytvoří výstupní grafiku širokou VELIKOST pixelů"
+
+#: malloc/memusagestat.c:60
+msgid "Make output graphic VALUE pixels high"
+msgstr "Vytvoří výstupní grafiku vysokou VELIKOST pixelů"
+
+#: malloc/memusagestat.c:65
+msgid "Generate graphic from memory profiling data"
+msgstr "Vykreslí obrázek na základě dat z šetření"
+
+#: malloc/memusagestat.c:68
+msgid "DATAFILE [OUTFILE]"
+msgstr "DATOVÃ_SOUBOR [VÃSTUPNÃ_SOUBOR]"
+
+#: misc/error.c:118 timezone/zic.c:417
+msgid "Unknown system error"
+msgstr "Neznámá chyba systému"
+
+#: nis/nis_callback.c:189
+msgid "unable to free arguments"
+msgstr "argumenty nelze uvolnit"
+
+#: nis/nis_error.h:1 nis/ypclnt.c:822 nis/ypclnt.c:910 posix/regcomp.c:132
+#: sysdeps/gnu/errlist.c:20
+msgid "Success"
+msgstr "Úspěch"
+
+#: nis/nis_error.h:2
+msgid "Probable success"
+msgstr "Pravděpodobně úspěch"
-#: nis/nis_error.c:33
+#: nis/nis_error.h:3
+msgid "Not found"
+msgstr "Nebylo nalezeno"
+
+#: nis/nis_error.h:4
+msgid "Probably not found"
+msgstr "Pravděpodobně nebylo nalezeno"
+
+#: nis/nis_error.h:5
+msgid "Cache expired"
+msgstr "Životnost cache vypršela"
+
+#: nis/nis_error.h:6
msgid "NIS+ servers unreachable"
-msgstr "NIS+ server není dostupný"
+msgstr "NIS+ server není dostupný"
-#: nis/nis_error.c:69
-msgid "NIS+ service is unavailable or not installed"
-msgstr "Slu¾ba NIS+ není dostupná nebo nainstalovaná"
+#: nis/nis_error.h:7
+msgid "Unknown object"
+msgstr "Neznámý objekt"
-#: nis/nis_print.c:108
-msgid "NO OBJECT\n"
-msgstr "®ÁDNÝ OBJEKT\n"
+#: nis/nis_error.h:8
+msgid "Server busy, try again"
+msgstr "Server je zaneprázdněn, zkuste to znovu"
-#: nscd/nscd.c:84
-msgid "NUMBER"
-msgstr "POÈET"
+#: nis/nis_error.h:9
+msgid "Generic system error"
+msgstr "Obecná chyba systému"
-#: nis/nis_print.c:162
-#, c-format
-msgid "Name : `%s'\n"
-msgstr "Název : `%s'\n"
+#: nis/nis_error.h:10
+msgid "First/next chain broken"
+msgstr "První další řetězec porušen"
-#: nscd/nscd.c:94
-msgid "Name Service Cache Daemon."
-msgstr "NSC (Name Service Cache) démon."
+#. TRANS Permission denied; the file permissions do not allow the attempted operation.
+#: nis/nis_error.h:11 nis/ypclnt.c:867 sysdeps/gnu/errlist.c:157
+msgid "Permission denied"
+msgstr "Přístup odmítnut"
+
+#: nis/nis_error.h:12
+msgid "Not owner"
+msgstr "Není vlastníkem"
# Chyba NIS_NOT_ME
-#: nis/nis_error.c:40
+#: nis/nis_error.h:13
msgid "Name not served by this server"
-msgstr "Jméno není tímto serverem obsluhováno"
+msgstr "Jméno není tímto serverem obsluhováno"
-#: stdio-common/../sysdeps/gnu/errlist.c:776
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:109
-msgid "Name not unique on network"
-msgstr "Jméno v síti není jednoznaèné"
+#: nis/nis_error.h:14
+msgid "Server out of memory"
+msgstr "Paměť serveru byla vyÄerpána"
-#: posix/../sysdeps/posix/gai_strerror.c:37
-msgid "Name or service not known"
-msgstr "Neznámé jméno nebo slu¾ba"
+#: nis/nis_error.h:15
+msgid "Object with same name exists"
+msgstr "Objekt se stejným názvem již existuje"
-#: nis/nis_error.c:49
+#: nis/nis_error.h:16
+msgid "Not master server for this domain"
+msgstr "Není hlavní server pro tuto doménu"
+
+#: nis/nis_error.h:17
+msgid "Invalid object for operation"
+msgstr "Neplatný objekt pro operaci"
+
+#: nis/nis_error.h:18
+msgid "Malformed name, or illegal name"
+msgstr "Chybně formovaný nebo nepřípustný název"
+
+#: nis/nis_error.h:19
+msgid "Unable to create callback"
+msgstr "Zpětné volání nelze vytvořit"
+
+#: nis/nis_error.h:20
+msgid "Results sent to callback proc"
+msgstr "Výsledky zaslány proceduře zpětného volání"
+
+#: nis/nis_error.h:21
+msgid "Not found, no such name"
+msgstr "Nebylo nalezeno, takový název neexistuje"
+
+#: nis/nis_error.h:22
msgid "Name/entry isn't unique"
-msgstr "Jméno/záznam nejsou jednoznaèné"
+msgstr "Jméno/záznam nejsou jednoznaÄné"
+
+# Modifikace selhala
+# Chyba NIS_IBMODERROR
+#: nis/nis_error.h:23
+msgid "Modification failed"
+msgstr "Změna nebyla provedena"
+
+#: nis/nis_error.h:24
+msgid "Database for table does not exist"
+msgstr "Databáze pro tabulku neexistuje"
+
+#: nis/nis_error.h:25
+msgid "Entry/table type mismatch"
+msgstr "Typ záznamu/tabulky nesouhlasí"
+
+#: nis/nis_error.h:26
+msgid "Link points to illegal name"
+msgstr "Odkaz odkazuje na nedovolený název"
+
+#: nis/nis_error.h:27
+msgid "Partial success"
+msgstr "ČásteÄný úspÄ›ch"
+
+#: nis/nis_error.h:28
+msgid "Too many attributes"
+msgstr "Příliš mnoho atributů"
-#: nis/nis_error.c:58
+#: nis/nis_error.h:29
+msgid "Error in RPC subsystem"
+msgstr "Chyba v subsystému RPC"
+
+#: nis/nis_error.h:30
+msgid "Missing or malformed attribute"
+msgstr "Chybějící nebo chybně formovaný atribut"
+
+#: nis/nis_error.h:31
msgid "Named object is not searchable"
-msgstr "Pojmenovaný objekt není prohledávatelný"
+msgstr "Pojmenovaný objekt není prohledávatelný"
-# Potøebuje ovìøovací objekt
-#. TRANS ???
-#: stdio-common/../sysdeps/gnu/errlist.c:566
-msgid "Need authenticator"
-msgstr "Je tøeba ovìøovaèe"
+#: nis/nis_error.h:32
+msgid "Error while talking to callback proc"
+msgstr "Chyba během komunikace s procedurou zpětného volání"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:158
-msgid "Network dropped connection because of reset"
-msgstr "Sí» zru¹ila spojení (problém se vzdáleným poèítaèem)"
+# Zaznamenán prostor názvů mimo NIS+
+#: nis/nis_error.h:33
+msgid "Non NIS+ namespace encountered"
+msgstr "Spatřen prostor názvů mimo NIS+"
-#. TRANS A network connection was reset because the remote host crashed.
-#: stdio-common/../sysdeps/gnu/errlist.c:389
-msgid "Network dropped connection on reset"
-msgstr "Sí» zru¹ila spojení (problém se vzdáleným poèítaèem)"
+#: nis/nis_error.h:34
+msgid "Illegal object type for operation"
+msgstr "Nedovolený typ objektu pro operaci"
-#. TRANS A socket operation failed because the network was down.
-#: stdio-common/../sysdeps/gnu/errlist.c:378
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:156
-msgid "Network is down"
-msgstr "Sí»ování je mimo provoz"
+#: nis/nis_error.h:35
+msgid "Passed object is not the same object on server"
+msgstr "Došlý objekt není na serveru tímtéž objektem"
-#. TRANS A socket operation failed because the subnet containing the remote host
-#. TRANS was unreachable.
-#: stdio-common/../sysdeps/gnu/errlist.c:384
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:157
-msgid "Network is unreachable"
-msgstr "Sí» není dostupná"
+# Chyba NIS_MODFAIL
+#: nis/nis_error.h:36
+msgid "Modify operation failed"
+msgstr "Operace změny nebyla provedena úspěšně"
-#: stdio-common/../sysdeps/gnu/errlist.c:712
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:72
-msgid "No CSI structure available"
-msgstr "CSI struktura není dostupná"
+#: nis/nis_error.h:37
+msgid "Query illegal for named table"
+msgstr "Zakázaná otázka pro danou tabulku"
-#: stdio-common/../sysdeps/gnu/errlist.c:820
-msgid "No XENIX semaphores available"
-msgstr "XENIX semafory nejsou dostupné"
+#: nis/nis_error.h:38
+msgid "Attempt to remove a non-empty table"
+msgstr "Pokus o odstranění neprázdné tabulky"
-#: posix/../sysdeps/posix/gai_strerror.c:36
-msgid "No address associated with hostname"
-msgstr "Jméno poèítaèe nemá pøiøazenu adresu"
+#: nis/nis_error.h:39
+msgid "Error in accessing NIS+ cold start file. Is NIS+ installed?"
+msgstr "Chyba při přístupu k souboru studeného startu NIS+. Je NIS+ nainstalováno?"
-#: resolv/herror.c:77
-msgid "No address associated with name"
-msgstr "Jméno nemá pøiøazenu adresu"
+#: nis/nis_error.h:40
+msgid "Full resync required for directory"
+msgstr "Adresář vyžaduje úplnou resynchronizaci"
-#: stdio-common/../sysdeps/gnu/errlist.c:732
-msgid "No anode"
-msgstr "®ádný anode"
+#: nis/nis_error.h:41
+msgid "NIS+ operation failed"
+msgstr "NIS+ operace nebyla provedena úspěšně"
-#. TRANS The kernel's buffers for I/O operations are all in use. In GNU, this
-#. TRANS error is always synonymous with @code{ENOMEM}; you may get one or the
-#. TRANS other from network operations.
-#: stdio-common/../sysdeps/gnu/errlist.c:408
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:161
-msgid "No buffer space available"
-msgstr "Pro V/V vyrovnávací pamì» není volná pamì»"
+#: nis/nis_error.h:42
+msgid "NIS+ service is unavailable or not installed"
+msgstr "Služba NIS+ není dostupná nebo nainstalovaná"
-#. TRANS There are no child processes. This error happens on operations that are
-#. TRANS supposed to manipulate child processes, when there aren't any processes
-#. TRANS to manipulate.
-#: stdio-common/../sysdeps/gnu/errlist.c:89
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:39
-msgid "No child processes"
-msgstr "®ádný potomek neexistuje"
+#: nis/nis_error.h:43
+msgid "Yes, 42 is the meaning of life"
+msgstr "Ano, 42 je smysl života"
-#: stdio-common/../sysdeps/gnu/errlist.c:652
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:90
-msgid "No data available"
-msgstr "Data nejsou k dispozici"
+#: nis/nis_error.h:44
+msgid "Unable to authenticate NIS+ server"
+msgstr "Totožnost NIS+ serveru nelze ověřit"
-#: nis/nis_error.c:73
-msgid "No file space on server"
-msgstr "Na serveru není místo pro soubory"
+#: nis/nis_error.h:45
+msgid "Unable to authenticate NIS+ client"
+msgstr "Totožnost NIS+ klienta nelze ověřit"
-#. TRANS No locks available. This is used by the file locking facilities; see
-#. TRANS @ref{File Locks}. This error is never generated by the GNU system, but
-#. TRANS it can result from an operation to an NFS server running another
-#. TRANS operating system.
-#: stdio-common/../sysdeps/gnu/errlist.c:547
-msgid "No locks available"
-msgstr "Zámky nejsou k dispozici"
+#: nis/nis_error.h:46
+msgid "No file space on server"
+msgstr "Na serveru není místo pro soubory"
-# Nenalezeno
-#: posix/regex.c:1019
-msgid "No match"
-msgstr "®ádná shoda"
+#: nis/nis_error.h:47
+msgid "Unable to create process on server"
+msgstr "Na serveru nelze vytvořit proces"
-#: stdio-common/../sysdeps/gnu/errlist.c:832
-msgid "No medium found"
-msgstr "Médium nebylo nalezeno"
+#: nis/nis_error.h:48
+msgid "Master server busy, full dump rescheduled."
+msgstr "Hlavní server je zaneprázdněn, úplný přenos byl přeplánován."
-#: stdio-common/../sysdeps/gnu/errlist.c:660
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:64
-msgid "No message of desired type"
-msgstr "®ádná zpráva ¾ádaného typu"
+#: nis/nis_local_names.c:122
+#, c-format
+msgid "LOCAL entry for UID %d in directory %s not unique\n"
+msgstr "LOKÃLNà záznam pro UID %d v adresáři %s není unikátní\n"
-# V NIS databázi ji¾ nejsou dal¹í záznamy
-#: nis/ypclnt.c:789
-msgid "No more records in map database"
-msgstr "®ádné dal¹í záznamy v map databázi"
+#: nis/nis_print.c:51
+msgid "UNKNOWN"
+msgstr "NEZNÃMÃ"
-#: posix/regex.c:5569
-msgid "No previous regular expression"
-msgstr "Pøedchozí regulární výraz neexistuje"
+#: nis/nis_print.c:109
+msgid "BOGUS OBJECT\n"
+msgstr "POCHYBNÃ OBJEKT\n"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:75
-msgid "No record locks available"
-msgstr "Nejsou ¾ádné volné zámky záznamù"
+#: nis/nis_print.c:112
+msgid "NO OBJECT\n"
+msgstr "ŽÃDNà OBJEKT\n"
-#: sunrpc/rpcinfo.c:570
-msgid "No remote programs registered.\n"
-msgstr "®ádné vzdálené programy nejsou registrovány.\n"
+#: nis/nis_print.c:115
+msgid "DIRECTORY\n"
+msgstr "ADRESÃŘ\n"
-#. TRANS The remote host for a requested network connection is not reachable.
-#: stdio-common/../sysdeps/gnu/errlist.c:474
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:177
-msgid "No route to host"
-msgstr "K poèítaèi neexistuje cesta"
+#: nis/nis_print.c:118
+msgid "GROUP\n"
+msgstr "SKUPINA\n"
-#. TRANS No space left on device; write operation on a file failed because the
-#. TRANS disk is full.
-#: stdio-common/../sysdeps/gnu/errlist.c:208
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:57
-msgid "No space left on device"
-msgstr "Na zaøízení není volné místo"
+#: nis/nis_print.c:121
+msgid "TABLE\n"
+msgstr "TABULKA\n"
-#. TRANS The wrong type of device was given to a function that expects a
-#. TRANS particular sort of device.
-#: stdio-common/../sysdeps/gnu/errlist.c:147
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:48
-msgid "No such device"
-msgstr "Takové zaøízení neexistuje"
+#: nis/nis_print.c:124
+msgid "ENTRY\n"
+msgstr "ZÃZNAM\n"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:35
-msgid "No such device or address"
-msgstr "Takové zaøízení nebo adresa neexistuje"
+#: nis/nis_print.c:127
+msgid "LINK\n"
+msgstr "ODKAZ\n"
-# Adresáø nebo soubor neexistuje
-#. TRANS No such file or directory. This is a ``file doesn't exist'' error
-#. TRANS for ordinary files that are referenced in contexts where they are
-#. TRANS expected to already exist.
-#: stdio-common/../sysdeps/gnu/errlist.c:31
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:31
-msgid "No such file or directory"
-msgstr "není souborem ani adresáøem"
+#: nis/nis_print.c:130
+msgid "PRIVATE\n"
+msgstr "SOUKROMÃ\n"
-#: nis/ypclnt.c:783
-msgid "No such key in map"
-msgstr "Tento klíè v mapì neexistuje"
+#: nis/nis_print.c:133
+msgid "(Unknown object)\n"
+msgstr "(Neznámý objekt)\n"
-#: nis/ypclnt.c:781
-msgid "No such map in server's domain"
-msgstr "Tato mapa se v doménì serveru nenachází"
+#: nis/nis_print.c:167
+#, c-format
+msgid "Name : `%s'\n"
+msgstr "Název : „%s“\n"
-#. TRANS No process matches the specified process ID.
-#: stdio-common/../sysdeps/gnu/errlist.c:36
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:32
-msgid "No such process"
-msgstr "Tento proces neexistuje"
+#: nis/nis_print.c:168
+#, c-format
+msgid "Type : %s\n"
+msgstr "Typ : %s\n"
-# Zaznamenán prostor názvù mimo NIS+
-#: nis/nis_error.c:60
-msgid "Non NIS+ namespace encountered"
-msgstr "Spatøen prostor názvù mimo NIS+"
+#: nis/nis_print.c:173
+msgid "Master Server :\n"
+msgstr "Hlavní server:\n"
-#: posix/../sysdeps/posix/gai_strerror.c:33
-msgid "Non-recoverable failure in name resolution"
-msgstr "Neopravitelná chyba pøi vyhodnocení názvu"
+# Replika :
+#: nis/nis_print.c:175
+msgid "Replicate :\n"
+msgstr "Kopie:\n"
#: nis/nis_print.c:176
+#, c-format
+msgid "\tName : %s\n"
+msgstr "\tNázev : %s\n"
+
+#: nis/nis_print.c:177
+msgid "\tPublic Key : "
+msgstr "\tVeÅ™ejný klÃ­Ä : "
+
+#: nis/nis_print.c:181
msgid "None.\n"
-msgstr "®ádný.\n"
+msgstr "Žádný.\n"
-# Nejde o pojmenovaný XENIX soubor
-# není XENIXovsky pojmenovaný typ souboru
-#: stdio-common/../sysdeps/gnu/errlist.c:816
-msgid "Not a XENIX named type file"
-msgstr "Nejde o pojmenovaný XENIX soubor"
+#: nis/nis_print.c:184
+#, c-format
+msgid "Diffie-Hellmann (%d bits)\n"
+msgstr "Diffie-Hellmann (bitů: %d)\n"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:106
-msgid "Not a data message"
-msgstr "Není datovou zprávou"
+#: nis/nis_print.c:189
+#, c-format
+msgid "RSA (%d bits)\n"
+msgstr "RSA (bitů: %d)\n"
-#. TRANS A file that isn't a directory was specified when a directory is required.
-#: stdio-common/../sysdeps/gnu/errlist.c:152
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:49
-msgid "Not a directory"
-msgstr "není adresáøem"
+#: nis/nis_print.c:192
+msgid "Kerberos.\n"
+msgstr "Kerberos.\n"
-# Nejde o pojmenovaný XENIX soubor
-# není XENIXovsky pojmenovaný typ souboru
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:166
-msgid "Not a name file"
-msgstr "Nejde o názvový soubor"
+#: nis/nis_print.c:195
+#, c-format
+msgid "Unknown (type = %d, bits = %d)\n"
+msgstr "Neznámý (typ = %d, bitů = %d)\n"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:89
-msgid "Not a stream device"
-msgstr "Není zaøízení typu proud"
+#: nis/nis_print.c:206
+#, c-format
+msgid "\tUniversal addresses (%u)\n"
+msgstr "\tUniverzální adresy (%u)\n"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:167
-msgid "Not available"
-msgstr "Není k dispozici"
+#: nis/nis_print.c:228
+msgid "Time to live : "
+msgstr "Životnost : "
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:41
-msgid "Not enough space"
-msgstr "Není volné místo"
+#: nis/nis_print.c:230
+msgid "Default Access rights :\n"
+msgstr "Implicitní příst. práva :\n"
-#: nis/nis_error.c:30
-msgid "Not found"
-msgstr "Nebylo nalezeno"
+#: nis/nis_print.c:239
+#, c-format
+msgid "\tType : %s\n"
+msgstr "\tTyp : %s\n"
-#: nis/nis_error.c:48
-msgid "Not found, no such name"
-msgstr "Nebylo nalezeno, takový název neexistuje"
+#: nis/nis_print.c:240
+msgid "\tAccess rights: "
+msgstr "\tPřístupová práva: "
-#: nis/nis_error.c:43
-msgid "Not master server for this domain"
-msgstr "Není hlavní server pro tuto doménu"
+#: nis/nis_print.c:254
+msgid "Group Flags :"
+msgstr "Příznaky skupiny :"
-#: nis/nis_error.c:39
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:30
-msgid "Not owner"
-msgstr "Není vlastníkem"
+#: nis/nis_print.c:257
+msgid ""
+"\n"
+"Group Members :\n"
+msgstr ""
+"\n"
+"Členové skupin :\n"
-#. TRANS Not supported. A function returns this error when certain parameter
-#. TRANS values are valid, but the functionality they request is not available.
-#. TRANS This can mean that the function does not implement a particular command
-#. TRANS or option value or flag bit at all. For functions that operate on some
-#. TRANS object given in a parameter, such as a file descriptor or a port, it
-#. TRANS might instead mean that only @emph{that specific object} (file
-#. TRANS descriptor, port, etc.) is unable to support the other parameters given;
-#. TRANS different file descriptors might support different ranges of parameter
-#. TRANS values.
-#. TRANS
-#. TRANS If the entire function is not available at all in the implementation,
-#. TRANS it returns @code{ENOSYS} instead.
-#: stdio-common/../sysdeps/gnu/errlist.c:591
-msgid "Not supported"
-msgstr "Není podporován"
+#: nis/nis_print.c:269
+#, c-format
+msgid "Table Type : %s\n"
+msgstr "Typ tabulky : %s\n"
-#: nis/nis_print.c:263
+#: nis/nis_print.c:270
#, c-format
msgid "Number of Columns : %d\n"
-msgstr "Poèet sloupcù : %d\n"
+msgstr "PoÄet sloupců : %d\n"
-#: nis/nis_print.c:362
+#: nis/nis_print.c:271
#, c-format
-msgid "Number of objects : %u\n"
-msgstr "Poèet objektù : %u\n"
+msgid "Character Separator : %c\n"
+msgstr "OddÄ›lovaÄ znaků : %c\n"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:119
-msgid "Number of symbolic links encountered during path name traversal exceeds MAXSYMLINKS"
-msgstr "Poèet symbolických odkazù zji¹tìných pøi procházení cesty pøekroèil MAXSYMLINKS"
+#: nis/nis_print.c:272
+#, c-format
+msgid "Search Path : %s\n"
+msgstr "Prohledávací cesta : %s\n"
-#. TRANS Domain error; used by mathematical functions when an argument value does
-#. TRANS not fall into the domain over which the function is defined.
-#: stdio-common/../sysdeps/gnu/errlist.c:240
-msgid "Numerical argument out of domain"
-msgstr "Èíselný rozsah mimo definièní obor funkce"
+#: nis/nis_print.c:273
+msgid "Columns :\n"
+msgstr "Sloupce :\n"
-#. TRANS Range error; used by mathematical functions when the result value is
-#. TRANS not representable because of overflow or underflow.
-#: stdio-common/../sysdeps/gnu/errlist.c:246
-msgid "Numerical result out of range"
-msgstr "Èíselný výsledek mimo rozsah"
+#: nis/nis_print.c:276
+#, c-format
+msgid "\t[%d]\tName : %s\n"
+msgstr "\t[%d]\tNázev : %s\n"
-#: nis/nis_print.c:366
+#: nis/nis_print.c:278
+msgid "\t\tAttributes : "
+msgstr "\t\tAtributy : "
+
+#: nis/nis_print.c:280
+msgid "\t\tAccess Rights : "
+msgstr "\t\tPřístupová práva : "
+
+#: nis/nis_print.c:290
+msgid "Linked Object Type : "
+msgstr "Typ odkazovaného objektu : "
+
+#: nis/nis_print.c:292
#, c-format
-msgid "Object #%d:\n"
-msgstr "Objekt #%d:\n"
+msgid "Linked to : %s\n"
+msgstr "Odkazuje na : %s\n"
-#: nis/nis_print.c:316
+#: nis/nis_print.c:302
+#, c-format
+msgid "\tEntry data of type %s\n"
+msgstr "\tVstupní data typu %s\n"
+
+#: nis/nis_print.c:305
+#, c-format
+msgid "\t[%u] - [%u bytes] "
+msgstr "\t[%u] - [%u bajtů] "
+
+#: nis/nis_print.c:308
+msgid "Encrypted data\n"
+msgstr "Šifrovaná data\n"
+
+#: nis/nis_print.c:310
+msgid "Binary data\n"
+msgstr "Binární data\n"
+
+#: nis/nis_print.c:326
#, c-format
msgid "Object Name : %s\n"
-msgstr "Název objektu : %s\n"
+msgstr "Název objektu : %s\n"
+
+#: nis/nis_print.c:327
+#, c-format
+msgid "Directory : %s\n"
+msgstr "Adresář : %s\n"
#: nis/nis_print.c:328
+#, c-format
+msgid "Owner : %s\n"
+msgstr "Vlastník : %s\n"
+
+#: nis/nis_print.c:329
+#, c-format
+msgid "Group : %s\n"
+msgstr "Skupina : %s\n"
+
+#: nis/nis_print.c:330
+msgid "Access Rights : "
+msgstr "Přístupová práva: "
+
+#: nis/nis_print.c:332
+#, c-format
+msgid ""
+"\n"
+"Time to Live : "
+msgstr ""
+"\n"
+"Životnost : "
+
+#: nis/nis_print.c:335
+#, c-format
+msgid "Creation Time : %s"
+msgstr "Čas vytvoření : %s"
+
+#: nis/nis_print.c:337
+#, c-format
+msgid "Mod. Time : %s"
+msgstr "Čas změny : %s"
+
+#: nis/nis_print.c:338
msgid "Object Type : "
msgstr "Typ objektu : "
-#. TRANS An attempt was made to NFS-mount a remote file system with a file name that
-#. TRANS already specifies an NFS-mounted file.
-#. TRANS (This is an error on some operating systems, but we expect it to work
-#. TRANS properly on the GNU system, making this error code impossible.)
-#: stdio-common/../sysdeps/gnu/errlist.c:514
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:95
-msgid "Object is remote"
-msgstr "Objekt je vzdálený"
+#: nis/nis_print.c:358
+#, c-format
+msgid " Data Length = %u\n"
+msgstr " Délka dat = %u\n"
-#: nis/nis_error.c:42
-msgid "Object with same name exists"
-msgstr "Objekt se stejným názvem ji¾ existuje"
+#: nis/nis_print.c:372
+#, c-format
+msgid "Status : %s\n"
+msgstr "Stav : %s\n"
-#: timezone/zic.c:2023
-msgid "Odd number of quotation marks"
-msgstr "Lichý poèet uvozovek"
+#: nis/nis_print.c:373
+#, c-format
+msgid "Number of objects : %u\n"
+msgstr "PoÄet objektů : %u\n"
-#: nscd/nscd.c:191 nscd/nscd.c:211 nscd/nscd.c:217
-msgid "Only root is allowed to use this option!"
-msgstr "Tento pøepínaè je dostupný pouze superu¾ivateli!"
+#: nis/nis_print.c:377
+#, c-format
+msgid "Object #%d:\n"
+msgstr "Objekt #%d:\n"
-#. TRANS An operation is already in progress on an object that has non-blocking
-#. TRANS mode selected.
-#: stdio-common/../sysdeps/gnu/errlist.c:306
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:178
-msgid "Operation already in progress"
-msgstr "Operace probíhá"
+#: nis/nis_print_group_entry.c:117
+#, c-format
+msgid "Group entry for \"%s.%s\" group:\n"
+msgstr "Záznam skupiny pro skupinu „%s.%s“:\n"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:76
-msgid "Operation canceled"
-msgstr "Operace zru¹ena"
+#: nis/nis_print_group_entry.c:125
+msgid " Explicit members:\n"
+msgstr " Explicitní Älenové:\n"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:118
-msgid "Operation not applicable"
-msgstr "Operace není pou¾itelná"
+#: nis/nis_print_group_entry.c:130
+msgid " No explicit members\n"
+msgstr " Žádní explicitní Älenové\n"
-#. TRANS Operation not permitted; only the owner of the file (or other resource)
-#. TRANS or processes with special privileges can perform the operation.
-#: stdio-common/../sysdeps/gnu/errlist.c:24
-msgid "Operation not permitted"
-msgstr "Operace není povolena"
+#: nis/nis_print_group_entry.c:133
+msgid " Implicit members:\n"
+msgstr " Implicitní Älenové:\n"
-#. TRANS The operation you requested is not supported. Some socket functions
-#. TRANS don't make sense for all types of sockets, and others may not be
-#. TRANS implemented for all communications protocols. In the GNU system, this
-#. TRANS error can happen for many calls when the object does not support the
-#. TRANS particular operation; it is a generic indication that the server knows
-#. TRANS nothing to do for that call.
-#: stdio-common/../sysdeps/gnu/errlist.c:350
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:77
-msgid "Operation not supported"
-msgstr "Operace není podporována"
+#: nis/nis_print_group_entry.c:138
+msgid " No implicit members\n"
+msgstr " Žádní implicitní Älenové\n"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:151
-msgid "Operation not supported on transport endpoint"
-msgstr "Operace není podporována na cílovém bodu cesty"
+#: nis/nis_print_group_entry.c:141
+msgid " Recursive members:\n"
+msgstr " Rekurzivní Älenové:\n"
-#. TRANS An operation that cannot complete immediately was initiated on an object
-#. TRANS that has non-blocking mode selected. Some functions that must always
-#. TRANS block (such as @code{connect}; @pxref{Connecting}) never return
-#. TRANS @code{EAGAIN}. Instead, they return @code{EINPROGRESS} to indicate that
-#. TRANS the operation has begun and will take some time. Attempts to manipulate
-#. TRANS the object before the call completes return @code{EALREADY}. You can
-#. TRANS use the @code{select} function to find out when the pending operation
-#. TRANS has completed; @pxref{Waiting for I/O}.
-#: stdio-common/../sysdeps/gnu/errlist.c:300
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:179
-msgid "Operation now in progress"
-msgstr "Operace probíhá"
+#: nis/nis_print_group_entry.c:146
+msgid " No recursive members\n"
+msgstr " Žádní rekurzivní Älenové\n"
-# Operace by blokovala
-#. TRANS In the GNU C library, this is another name for @code{EAGAIN} (above).
-#. TRANS The values are always the same, on every operating system.
-#. TRANS
-#. TRANS C libraries in many older Unix systems have @code{EWOULDBLOCK} as a
-#. TRANS separate error code.
-#: stdio-common/../sysdeps/gnu/errlist.c:288
-msgid "Operation would block"
-msgstr "Operace byla pøeru¹ena"
+#: nis/nis_print_group_entry.c:149
+msgid " Explicit nonmembers:\n"
+msgstr " Explicitní neÄlenové:\n"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:128
-msgid "Option not supported by protocol"
-msgstr "Volba není protokolem podporována"
+#: nis/nis_print_group_entry.c:154
+msgid " No explicit nonmembers\n"
+msgstr " Žádní explicitní neÄlenové\n"
-# Zdroje proudu vyèerpány
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:92
-msgid "Out of stream resources"
-msgstr "Ji¾ nejsou volné proudy"
+#: nis/nis_print_group_entry.c:157
+msgid " Implicit nonmembers:\n"
+msgstr " Implicitní neÄlenové:\n"
-# Zdroje proudu vyèerpány
-#: stdio-common/../sysdeps/gnu/errlist.c:664
-msgid "Out of streams resources"
-msgstr "Ji¾ nejsou volné proudy"
+#: nis/nis_print_group_entry.c:162
+msgid " No implicit nonmembers\n"
+msgstr " Žádní implicitní neÄlenové\n"
-#: iconv/iconv_prog.c:59 locale/programs/localedef.c:98
-msgid "Output control:"
-msgstr "Øízení výstupu:"
+#: nis/nis_print_group_entry.c:165
+msgid " Recursive nonmembers:\n"
+msgstr " Rekurzivní neÄlenové:\n"
-#: elf/sprof.c:72
-msgid "Output selection:"
-msgstr "Výbìr výstupu:"
+#: nis/nis_print_group_entry.c:170
+msgid " No recursive nonmembers\n"
+msgstr " Žádní rekurzivní neÄlenové\n"
-#: nis/nis_print.c:318
+#: nis/nss_nisplus/nisplus-publickey.c:101
+#: nis/nss_nisplus/nisplus-publickey.c:183
#, c-format
-msgid "Owner : %s\n"
-msgstr "Vlastník : %s\n"
-
-#: nis/nis_print.c:126
-msgid "PRIVATE\n"
-msgstr "SOUKROMÝ\n"
+msgid "DES entry for netname %s not unique\n"
+msgstr "DES záznam pro síťové jméno %s není jednoznaÄný\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:756
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:94
-msgid "Package not installed"
-msgstr "Balík není nainstalován"
+# zpráva vyjadřuje, že v %s má být seznam id skupin, ale není tomu tak
+#: nis/nss_nisplus/nisplus-publickey.c:220
+#, c-format
+msgid "netname2user: missing group id list in `%s'"
+msgstr "netname2user: v „%s“ není seznam id skupin."
-#: nscd/nscd_conf.c:82
+#: nis/nss_nisplus/nisplus-publickey.c:302
+#: nis/nss_nisplus/nisplus-publickey.c:308
+#: nis/nss_nisplus/nisplus-publickey.c:373
+#: nis/nss_nisplus/nisplus-publickey.c:382
#, c-format
-msgid "Parse error: %s"
-msgstr "Chyba analýzy: %s"
+msgid "netname2user: (nis+ lookup): %s\n"
+msgstr "netname2user: (nis+ lookup): %s\n"
-#: nis/nis_error.c:54
-msgid "Partial success"
-msgstr "Èásteèný úspìch"
+#: nis/nss_nisplus/nisplus-publickey.c:321
+#, c-format
+msgid "netname2user: DES entry for %s in directory %s not unique"
+msgstr "netname2user: DES záznam pro %s v adresáři %s není jednoznaÄný"
-#: nis/nis_error.c:62
-msgid "Passed object is not the same object on server"
-msgstr "Do¹lý objekt není na serveru tímté¾ objektem"
+#: nis/nss_nisplus/nisplus-publickey.c:339
+#, c-format
+msgid "netname2user: principal name `%s' too long"
+msgstr "netname2user: hlavní (principal) název „%s“ je příliš dlouhý"
-#. TRANS Permission denied; the file permissions do not allow the attempted operation.
-#: nis/nis_error.c:38 nis/ypclnt.c:803
-#: stdio-common/../sysdeps/gnu/errlist.c:108
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:42
-msgid "Permission denied"
-msgstr "Pøístup odmítnut"
+# netname2user: LOCAL záznam pro %s v adresáři %s není jednoznaÄný
+#: nis/nss_nisplus/nisplus-publickey.c:395
+#, c-format
+msgid "netname2user: LOCAL entry for %s in directory %s not unique"
+msgstr "netname2user: LOKÃLNà záznam pro %s v adresáři %s není jednoznaÄný"
-#: sysdeps/generic/siglist.h:71 sysdeps/gnu/siglist.h:65
-msgid "Power failure"
-msgstr "Výpadek napájení (SIGPWR)"
+#: nis/nss_nisplus/nisplus-publickey.c:402
+msgid "netname2user: should not have uid 0"
+msgstr "netname2user: neměl bych mít uid 0"
-#: posix/regex.c:1058
-msgid "Premature end of regular expression"
-msgstr "Pøedèasný konec regulárního výrazu"
+#: nis/ypclnt.c:825
+msgid "Request arguments bad"
+msgstr "Chybné argumenty žádosti"
-#: db2/makedb.c:63
-msgid "Print content of database file, one entry a line"
-msgstr "Vypí¹e obsah databázového souboru, jeden záznam na øádek"
+#: nis/ypclnt.c:828
+msgid "RPC failure on NIS operation"
+msgstr "Selhal RPC při NIS operaci"
-#: nscd/nscd.c:86
-msgid "Print current configuration statistic"
-msgstr "Vypí¹e statistiky aktuální konfigurace"
+#: nis/ypclnt.c:831
+msgid "Can't bind to server which serves this domain"
+msgstr "K serveru obsluhujícímu tuto doménu se nelze připojit"
-# Verbose
-#: locale/programs/localedef.c:104
-msgid "Print more messages"
-msgstr "Vypí¹e více informací o prùbìhu"
+#: nis/ypclnt.c:834
+msgid "No such map in server's domain"
+msgstr "Tato mapa se v doméně serveru nenachází"
-#: argp/argp-parse.c:148
-msgid "Print program version"
-msgstr "Vypí¹e oznaèení verze programu"
+#: nis/ypclnt.c:837
+msgid "No such key in map"
+msgstr "Tento klÃ­Ä v mapÄ› neexistuje"
-#: nis/nis_error.c:29
-msgid "Probable success"
-msgstr "Pravdìpodobnì úspìch"
+#: nis/ypclnt.c:840
+msgid "Internal NIS error"
+msgstr "Vnitřní chyba NIS"
-#: nis/nis_error.c:31
-msgid "Probably not found"
-msgstr "Pravdìpodobnì nebylo nalezeno"
+#: nis/ypclnt.c:843
+msgid "Local resource allocation failure"
+msgstr "Chyba při přidělování místních prostředků"
-#: stdio-common/../sysdeps/unix/siglist.c:52 sysdeps/generic/siglist.h:53
-#: sysdeps/gnu/siglist.h:47
-msgid "Profiling timer expired"
-msgstr "Profilovací èasovaè vypr¹el (SIGPROF)"
+# V NIS databázi již nejsou další záznamy
+#: nis/ypclnt.c:846
+msgid "No more records in map database"
+msgstr "Žádné další záznamy v map databázi"
-#: stdio-common/../sysdeps/gnu/errlist.c:708
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:71
-msgid "Protocol driver not attached"
-msgstr "Ovladaè protokolu nepøipojen"
+#: nis/ypclnt.c:849
+msgid "Can't communicate with portmapper"
+msgstr "S portmapperem nelze komunikovat"
-#: stdio-common/../sysdeps/gnu/errlist.c:676
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:100
-msgid "Protocol error"
-msgstr "Chyba protokolu"
+#: nis/ypclnt.c:852
+msgid "Can't communicate with ypbind"
+msgstr "S ypbind nelze komunikovat"
-#. TRANS The socket communications protocol family you requested is not supported.
-#: stdio-common/../sysdeps/gnu/errlist.c:355
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:152
-msgid "Protocol family not supported"
-msgstr "Rodina protokolù není podporována"
+#: nis/ypclnt.c:855
+msgid "Can't communicate with ypserv"
+msgstr "S ypserv nelze komunikovat"
-#. TRANS You specified a socket option that doesn't make sense for the
-#. TRANS particular protocol being used by the socket. @xref{Socket Options}.
-#: stdio-common/../sysdeps/gnu/errlist.c:328
-msgid "Protocol not available"
-msgstr "Protokol není k dispozici"
+#: nis/ypclnt.c:858
+msgid "Local domain name not set"
+msgstr "Jméno místní domény není nastaveno"
-#. TRANS The socket domain does not support the requested communications protocol
-#. TRANS (perhaps because the requested protocol is completely invalid).
-#. TRANS @xref{Creating a Socket}.
-#: stdio-common/../sysdeps/gnu/errlist.c:335
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:149
-msgid "Protocol not supported"
-msgstr "Protokol není podporován"
+#: nis/ypclnt.c:861
+msgid "NIS map database is bad"
+msgstr "NIS map databáze je chybná"
-#. TRANS The socket type does not support the requested communications protocol.
-#: stdio-common/../sysdeps/gnu/errlist.c:322
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:127
-msgid "Protocol wrong type for socket"
-msgstr "Protokol nepodporuje sokety"
+#: nis/ypclnt.c:864
+msgid "NIS client/server version mismatch - can't supply service"
+msgstr "Rozdílné verze NIS klienta a serveru - službu nelze poskytnout"
-#: nis/nis_error.c:64
-msgid "Query illegal for named table"
-msgstr "Zakázaná otázka pro danou tabulku"
+#: nis/ypclnt.c:870
+msgid "Database is busy"
+msgstr "Databáze je používána"
-#: stdio-common/../sysdeps/unix/siglist.c:28 sysdeps/generic/siglist.h:31
-#: sysdeps/gnu/siglist.h:25
-msgid "Quit"
-msgstr "Konec (SIGQUIT)"
+#: nis/ypclnt.c:873
+msgid "Unknown NIS error code"
+msgstr "Neznámý chybový kód služby NIS"
-#: stdio-common/../sysdeps/gnu/errlist.c:772
-msgid "RFS specific error"
-msgstr "RFS-specifická chyba"
+#: nis/ypclnt.c:913
+msgid "Internal ypbind error"
+msgstr "Vnitřní chyba ypbind"
-#. TRANS ???
-#: stdio-common/../sysdeps/gnu/errlist.c:539
-msgid "RPC bad procedure for program"
-msgstr "Chybná RPC procedura pro program"
+#: nis/ypclnt.c:916
+msgid "Domain not bound"
+msgstr "Doména není připojena"
-#: nis/ypclnt.c:777
-msgid "RPC failure on NIS operation"
-msgstr "Selhal RPC pøi NIS operaci"
+#: nis/ypclnt.c:919
+msgid "System resource allocation failure"
+msgstr "Přidělení systémového prostředku nebylo úspěšné"
-#. TRANS ???
-#: stdio-common/../sysdeps/gnu/errlist.c:529
-msgid "RPC program not available"
-msgstr "RPC program není k dispozici"
+#: nis/ypclnt.c:922
+msgid "Unknown ypbind error"
+msgstr "Neznámá chyba ypbind"
-#. TRANS ???
-#: stdio-common/../sysdeps/gnu/errlist.c:534
-msgid "RPC program version wrong"
-msgstr "Chybná verze RPC programu"
+#: nis/ypclnt.c:963
+msgid "yp_update: cannot convert host to netname\n"
+msgstr "yp_update: název poÄítaÄe nelze konvertovat na síťový název\n"
-#. TRANS ???
-#: stdio-common/../sysdeps/gnu/errlist.c:519
-msgid "RPC struct is bad"
-msgstr "RPC struktura je chybná"
+#: nis/ypclnt.c:981
+msgid "yp_update: cannot get server address\n"
+msgstr "yp_update: adresu serveru nelze zjistit\n"
-#. TRANS ???
-#: stdio-common/../sysdeps/gnu/errlist.c:524
-msgid "RPC version wrong"
-msgstr "Chybná verze RPC"
+#: nscd/aicache.c:77 nscd/hstcache.c:462
+#, c-format
+msgid "Haven't found \"%s\" in hosts cache!"
+msgstr "„%s“ nebylo v cache pamÄ›ti pro poÄítaÄe nalezeno!"
-#: sunrpc/clnt_perr.c:270
-msgid "RPC: (unknown error code)"
-msgstr "RPC: (neznámý chybový kód)"
+#: nscd/aicache.c:79 nscd/hstcache.c:464
+#, c-format
+msgid "Reloading \"%s\" in hosts cache!"
+msgstr "Znovu naÄítám „%s“ do keÅ¡e pro jména poÄítaÄů!"
-#: sunrpc/clnt_perr.c:189
-msgid "RPC: Authentication error"
-msgstr "RPC: Chyba pøi ovìøování toto¾nosti"
+#: nscd/cache.c:146
+#, c-format
+msgid "add new entry \"%s\" of type %s for %s to cache%s"
+msgstr "přidat novou položku „%s“ typu %s pro %s fo keše%s"
-#: sunrpc/clnt_perr.c:169
-msgid "RPC: Can't decode result"
-msgstr "RPC: Výsledek nelze dekódovat"
+#: nscd/cache.c:148
+msgid " (first)"
+msgstr " (první)"
-#: sunrpc/clnt_perr.c:165
-msgid "RPC: Can't encode arguments"
-msgstr "RPC: Argumenty nelze zakódovat"
+#: nscd/cache.c:256 nscd/connections.c:786
+#, c-format
+msgid "cannot stat() file `%s': %s"
+msgstr "na soubor „%s“ nelze vykonat stat(): %s"
-#: sunrpc/clnt_perr.c:229
-msgid "RPC: Failed (unspecified error)"
-msgstr "RPC: Chyba (blí¾e neurèená)"
+#: nscd/cache.c:285
+#, c-format
+msgid "pruning %s cache; time %ld"
+msgstr "Äistím keÅ¡ %s, Äas %ld"
-#: sunrpc/clnt_perr.c:185
-msgid "RPC: Incompatible versions of RPC"
-msgstr "RPC: Nekompatibilní verze RPC"
+#: nscd/cache.c:312
+#, c-format
+msgid "considering %s entry \"%s\", timeout %<PRIu64>"
+msgstr "zvažuji %s-položku „%s“, životnost %<PRIu64>"
-#: sunrpc/clnt_perr.c:221
-msgid "RPC: Port mapper failure"
-msgstr "RPC: Chyba portmapperu"
+#: nscd/connections.c:505 nscd/connections.c:517 nscd/connections.c:529
+#: nscd/connections.c:548
+#, c-format
+msgid "invalid persistent database file \"%s\": %s"
+msgstr "chybný soubor „%s“ s trvalou databází: %s"
-#: sunrpc/clnt_perr.c:201
-msgid "RPC: Procedure unavailable"
-msgstr "RPC: Procedura není k dispozici"
+#: nscd/connections.c:519
+msgid "header size does not match"
+msgstr "velikost hlaviÄky nesouhlasí"
-#: sunrpc/clnt_perr.c:225
-msgid "RPC: Program not registered"
-msgstr "RPC: Program není registrován"
+#: nscd/connections.c:531
+msgid "file size does not match"
+msgstr "velikost souboru nesouhlasí"
-#: sunrpc/clnt_perr.c:193
-msgid "RPC: Program unavailable"
-msgstr "RPC: Program není k dispozici"
+#: nscd/connections.c:550
+msgid "verification failed"
+msgstr "ověření selhalo"
-#: sunrpc/clnt_perr.c:197
-msgid "RPC: Program/version mismatch"
-msgstr "RPC: Nesouhlasí program nebo verze"
+#: nscd/connections.c:564
+#, c-format
+msgid "suggested size of table for database %s larger than the persistent database's table"
+msgstr "navrhovaná velikost tabulky pro databázi %s je větší než tabulka trvalých databází"
-#: sunrpc/clnt_perr.c:209
-msgid "RPC: Remote system error"
-msgstr "RPC: Chyba vzdáleného systému"
+#: nscd/connections.c:574 nscd/connections.c:655
+#, c-format
+msgid "cannot create read-only descriptor for \"%s\"; no mmap"
+msgstr "deskriptor jen-pro-Ätení „%s“ nelze vytvoÅ™it: žádný mmap"
-#: sunrpc/clnt_perr.c:205
-msgid "RPC: Server can't decode arguments"
-msgstr "RPC: Server nemù¾e dekódovat argumenty"
+#: nscd/connections.c:634
+#, c-format
+msgid "database for %s corrupted or simultaneously used; remove %s manually if necessary and restart"
+msgstr "Databáze pro %s je poÅ¡kozena nebo vícenásobnÄ› používána. Je-li tÅ™eba, ruÄnÄ› odstraňte %s a restartuje."
-#: sunrpc/clnt_perr.c:162
-msgid "RPC: Success"
-msgstr "RPC: Úspìch"
+#: nscd/connections.c:641
+#, c-format
+msgid "cannot create %s; no persistent database used"
+msgstr "%s nelze vytvořit, žádná trvalá databáze nebude použita"
-#: sunrpc/clnt_perr.c:181
-msgid "RPC: Timed out"
-msgstr "RPC: Èasovaè vypr¹el"
+#: nscd/connections.c:644
+#, c-format
+msgid "cannot create %s; no sharing possible"
+msgstr "%s nelze vytvořit, sdílení není možno"
-# Nelze pøijímat
-#: sunrpc/clnt_perr.c:177
-msgid "RPC: Unable to receive"
-msgstr "RPC: Nelze pøijmout"
+#: nscd/connections.c:715
+#, c-format
+msgid "cannot write to database file %s: %s"
+msgstr "do databázového soubor %s nelze zapsat: %s"
-# Nelze vysílat
-#: sunrpc/clnt_perr.c:173
-msgid "RPC: Unable to send"
-msgstr "RPC: Nelze vyslat"
+#: nscd/connections.c:749
+#, c-format
+msgid "cannot set socket to close on exec: %s; disabling paranoia mode"
+msgstr "soket nelze nastavit na uzavření při spuštění, %s, vypínám paranoidní režim"
-#: sunrpc/clnt_perr.c:213
-msgid "RPC: Unknown host"
-msgstr "RPC: Neznámý poèítaè"
+#: nscd/connections.c:799
+#, c-format
+msgid "cannot open socket: %s"
+msgstr "soket nelze otevřít: %s"
-#: sunrpc/clnt_perr.c:217
-msgid "RPC: Unknown protocol"
-msgstr "RPC: Neznámý protokol"
+#: nscd/connections.c:816
+#, c-format
+msgid "cannot change socket to nonblocking mode: %s"
+msgstr "soket nelze přepnout do neblokujícího režimu: %s"
-#: nis/nis_print.c:184
+#: nscd/connections.c:824
#, c-format
-msgid "RSA (%d bits)\n"
-msgstr "RSA (bitù: %d)\n"
+msgid "cannot set socket to close on exec: %s"
+msgstr "soket nelze nastavit na uzavření při spuštění, %s"
-#: elf/dlsym.c:59 elf/dlvsym.c:62
-msgid "RTLD_NEXT used in code not dynamically loaded"
-msgstr "RTLD_NEXT je pou¾ito pro kód, který není dynamicky zaveden"
+#: nscd/connections.c:835
+#, c-format
+msgid "cannot enable socket to accept connections: %s"
+msgstr "soket nemůže přijímat spojení: %s"
-#: elf/sprof.c:84
-msgid "Read and display shared object profiling data"
-msgstr "Pøeètení a vypsání profilovacích dat sdíleného objektu."
+#: nscd/connections.c:926
+#, c-format
+msgid "provide access to FD %d, for %s"
+msgstr "poskytnout přístup na deskriptor souboru %d pro %s"
-#: nscd/nscd.c:81
-msgid "Read configuration data from NAME"
-msgstr "Naètení údajù o konfiguraci ze souboru NÁZEV"
+#: nscd/connections.c:938
+#, c-format
+msgid "cannot handle old request version %d; current version is %d"
+msgstr "žádost staré verze (%d) nelze zpracovat; aktuální verze je %d"
-#. TRANS An attempt was made to modify something on a read-only file system.
-#: stdio-common/../sysdeps/gnu/errlist.c:218
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:59
-msgid "Read-only file system"
-msgstr "Systém souborù je pouze pro ètení"
+#: nscd/connections.c:980 nscd/connections.c:1033
+#, c-format
+msgid "cannot write result: %s"
+msgstr "výsledek nelze zapsat: %s"
-# Signál reálného èasu %d"
-#: string/strsignal.c:66
+#: nscd/connections.c:1116
#, c-format
-msgid "Real-time signal %d"
-msgstr "Real-timeový signál %d"
+msgid "error getting caller's id: %s"
+msgstr "chyba při zjišťování id volajícího: %s"
-#: posix/regex.c:1061
-msgid "Regular expression too big"
-msgstr "Regulární výraz je pøíli¹ velký"
+#: nscd/connections.c:1175
+#, c-format
+msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode"
+msgstr "/proc/self/cmdline nelze otevřít: %s, vypínám paranoidní režim"
-# Vzdálená V/V chyba
-#: stdio-common/../sysdeps/gnu/errlist.c:828
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:169
-msgid "Remote I/O error"
-msgstr "Chyba vstupu/výstupu na vzdáleném poèítaèi"
+#: nscd/connections.c:1189
+#, c-format
+msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode"
+msgstr "/proc/self/cmdline nelze naÄíst: %s, vypínám paranoidní režim"
-#: stdio-common/../sysdeps/gnu/errlist.c:784
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:111
-msgid "Remote address changed"
-msgstr "Vzdálená adresa byla zmìnila"
+#: nscd/connections.c:1229
+#, c-format
+msgid "cannot change to old UID: %s; disabling paranoia mode"
+msgstr "nelze se přepnout do starého UID: %s. vypínám paranoidní režim"
-#: inet/ruserpass.c:177
-msgid "Remove password or make file unreadable by others."
-msgstr "Odstraòte heslo nebo zaka¾te ètení souboru ostatním."
+#: nscd/connections.c:1239
+#, c-format
+msgid "cannot change to old GID: %s; disabling paranoia mode"
+msgstr "nelze se přepnout do starého GID: %s, vypínám paranoidní režim"
-#: elf/sprof.c:533
+#: nscd/connections.c:1252
#, c-format
-msgid "Reopening shared object `%s' failed"
-msgstr "Znovuotevøení sdíleného objektu `%s' nebylo úspì¹né"
+msgid "cannot change to old working directory: %s; disabling paranoia mode"
+msgstr "nelze se přepnout do starého pracovního adresáře: %s. vypínám paranoidní režim"
-# Replika :
-#: nis/nis_print.c:170
-msgid "Replicate :\n"
-msgstr "Kopie:\n"
+#: nscd/connections.c:1280
+#, c-format
+msgid "re-exec failed: %s; disabling paranoia mode"
+msgstr "znovuspuštění selhalo: %s, vypínám paranoidní režim"
-#: argp/argp-help.c:1640
+#: nscd/connections.c:1289
#, c-format
-msgid "Report bugs to %s.\n"
-msgstr ""
-" Chyby v programu oznamujte na adrese %s (pouze anglicky),\n"
-"pøipomínky k pøekladu zasílejte na adresu <cs@li.org> (èesky).\n"
+msgid "cannot change current working directory to \"/\": %s"
+msgstr "souÄasný pracovní adresář nelze zmÄ›nit na „/“: %s"
-#: catgets/gencat.c:224 db2/makedb.c:229 iconv/iconv_prog.c:280
-#: locale/programs/locale.c:254 locale/programs/localedef.c:386
-msgid "Report bugs using the `glibcbug' script to <bugs@gnu.org>.\n"
-msgstr ""
-" Chyby v programu oznamujte pomocí skriptu `glibcbug' na adresu <bugs@gnu.org>\n"
-"(pouze anglicky), pøipomínky k pøekladu zasílejte na <cs@li.org> (èesky).\n"
+#: nscd/connections.c:1407
+#, c-format
+msgid "short read while reading request: %s"
+msgstr "neúplné Ätení žádosti: „%s“"
-#: nis/ypclnt.c:775
-msgid "Request arguments bad"
-msgstr "Chybné argumenty ¾ádosti"
+#: nscd/connections.c:1438
+#, c-format
+msgid "key length in request too long: %d"
+msgstr "délka klíÄe v žádosti je příliÅ¡ dlouhá: %d"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:170
-msgid "Reserved for future use"
-msgstr "Rezervováno pro budoucí pou¾ití"
+#: nscd/connections.c:1451
+#, c-format
+msgid "short read while reading request key: %s"
+msgstr "neúplné Ätení klíÄe žádosti: %s"
-#: resolv/herror.c:73
-msgid "Resolver Error 0 (no error)"
-msgstr "Resolver vrací stav 0 (bez chyby)"
+#: nscd/connections.c:1460
+#, c-format
+msgid "handle_request: request received (Version = %d) from PID %ld"
+msgstr "handle_request: žádost přijata (verze = %d) od PID %ld"
-#: resolv/herror.c:117
-msgid "Resolver internal error"
-msgstr "Vnitøní chyba resolveru"
+#: nscd/connections.c:1465
+#, c-format
+msgid "handle_request: request received (Version = %d)"
+msgstr "handle_request: žádost přijata (verze = %d)"
-#. TRANS Deadlock avoided; allocating a system resource would have resulted in a
-#. TRANS deadlock situation. The system does not guarantee that it will notice
-#. TRANS all such situations. This error means you got lucky and the system
-#. TRANS noticed; it might just hang. @xref{File Locks}, for an example.
-#: stdio-common/../sysdeps/gnu/errlist.c:97
-msgid "Resource deadlock avoided"
-msgstr "Bylo zabránìno vzájemnému zablokování prostøedkù"
+#: nscd/connections.c:1826
+#, c-format
+msgid "could only start %d threads; terminating"
+msgstr "spustit mohu jen %d vláken, konÄím"
-#: stdio-common/../sysdeps/unix/siglist.c:54 sysdeps/generic/siglist.h:74
-#: sysdeps/gnu/siglist.h:68
-msgid "Resource lost"
-msgstr "Prostøedek byl ztracen"
+#: nscd/connections.c:1874 nscd/connections.c:1875 nscd/connections.c:1892
+#: nscd/connections.c:1901 nscd/connections.c:1919 nscd/connections.c:1930
+#: nscd/connections.c:1941
+#, c-format
+msgid "Failed to run nscd as user '%s'"
+msgstr "Spuštění nscd pod uživatelem „%s“ selhalo"
-#. TRANS Resource temporarily unavailable; the call might work if you try again
-#. TRANS later. The macro @code{EWOULDBLOCK} is another name for @code{EAGAIN};
-#. TRANS they are always the same in the GNU C library.
-#. TRANS
-#. TRANS This error can happen in a few different situations:
-#. TRANS
-#. TRANS @itemize @bullet
-#. TRANS @item
-#. TRANS An operation that would block was attempted on an object that has
-#. TRANS non-blocking mode selected. Trying the same operation again will block
-#. TRANS until some external condition makes it possible to read, write, or
-#. TRANS connect (whatever the operation). You can use @code{select} to find out
-#. TRANS when the operation will be possible; @pxref{Waiting for I/O}.
-#. TRANS
-#. TRANS @strong{Portability Note:} In many older Unix systems, this condition
-#. TRANS was indicated by @code{EWOULDBLOCK}, which was a distinct error code
-#. TRANS different from @code{EAGAIN}. To make your program portable, you should
-#. TRANS check for both codes and treat them the same.
-#. TRANS
-#. TRANS @item
-#. TRANS A temporary resource shortage made an operation impossible. @code{fork}
-#. TRANS can return this error. It indicates that the shortage is expected to
-#. TRANS pass, so your program can try the call again later and it may succeed.
-#. TRANS It is probably a good idea to delay for a few seconds before trying it
-#. TRANS again, to allow time for other processes to release scarce resources.
-#. TRANS Such shortages are usually fairly serious and affect the whole system,
-#. TRANS so usually an interactive program should report the error to the user
-#. TRANS and return to its command loop.
-#. TRANS @end itemize
-#: stdio-common/../sysdeps/gnu/errlist.c:279
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:40
-msgid "Resource temporarily unavailable"
-msgstr "Prostøedek je doèasnì nepøístupný"
+#: nscd/connections.c:1893
+#, c-format
+msgid "initial getgrouplist failed"
+msgstr "prvotní získání seznamu skupin (getgrouplist) selhalo"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:63
-msgid "Result too large"
-msgstr "Výsledek je pøíli¹ velký"
+#: nscd/connections.c:1902
+#, c-format
+msgid "getgrouplist failed"
+msgstr "getgrouplist (získej seznam skupin) selhalo"
-#: nis/nis_error.c:47
-msgid "Results sent to callback proc"
-msgstr "Výsledky zaslány proceduøe zpìtného volání"
+#: nscd/connections.c:1920
+#, c-format
+msgid "setgroups failed"
+msgstr "funkce setgroups() selhala"
-#: elf/sprof.c:87
-msgid "SHOBJ [PROFDATA]"
-msgstr "SDÍLENÝ_OBJEKT [PROF_DATA]"
+#: nscd/grpcache.c:402 nscd/hstcache.c:412 nscd/initgrcache.c:412
+#: nscd/pwdcache.c:397 nscd/servicescache.c:342
+#, c-format
+msgid "short write in %s: %s"
+msgstr "neúplný zápis v %s(): %s"
-#: nis/nis_print.c:33
-msgid "SUNYP"
-msgstr "SUNYP"
+#: nscd/grpcache.c:445 nscd/initgrcache.c:78
+#, c-format
+msgid "Haven't found \"%s\" in group cache!"
+msgstr "„%s“ nebylo v cache paměti pro skupiny nalezeno!"
-#: nis/nis_print.c:265
+#: nscd/grpcache.c:447 nscd/initgrcache.c:80
#, c-format
-msgid "Search Path : %s\n"
-msgstr "Prohledávací cesta : %s\n"
+msgid "Reloading \"%s\" in group cache!"
+msgstr "Znovunahrávám „%s“ do keše skupin!"
-#: stdio-common/../sysdeps/unix/siglist.c:36 sysdeps/generic/siglist.h:38
-#: sysdeps/gnu/siglist.h:32
-msgid "Segmentation fault"
-msgstr "Neoprávnìný pøístup do pamìti (SIGSEGV)"
+#: nscd/grpcache.c:524
+#, c-format
+msgid "Invalid numeric gid \"%s\"!"
+msgstr "Chybná Äíselné GID „%s“!"
-#: nis/nis_error.c:35
-msgid "Server busy, try again"
-msgstr "Server je zaneprázdnìn, zkuste to znovu"
+#: nscd/mem.c:383
+#, c-format
+msgid "freed %zu bytes in %s cache"
+msgstr "z keše %2$s uvolněno %1$zu bajtů"
-#: nis/nis_error.c:41
-msgid "Server out of memory"
-msgstr "Pamì» serveru byla vyèerpána"
+#: nscd/mem.c:512
+#, c-format
+msgid "no more memory for database '%s'"
+msgstr "Žádná další paměť pro databázi „%s“"
-#: sunrpc/clnt_perr.c:335
-msgid "Server rejected credential"
-msgstr "Server odmítl oprávnìní"
+#: nscd/nscd.c:98
+msgid "Read configuration data from NAME"
+msgstr "NaÄtení údajů o konfiguraci ze souboru NÃZEV"
-# Server odmítl ovìøovaèe
-#: sunrpc/clnt_perr.c:343
-msgid "Server rejected verifier"
-msgstr "Server odmítl ovìøení"
+#: nscd/nscd.c:100
+msgid "Do not fork and display messages on the current tty"
+msgstr "Nespouští samostatný proces a vypisuje zprávy na aktuálním terminálu"
-#: posix/../sysdeps/posix/gai_strerror.c:38
-msgid "Servname not supported for ai_socktype"
-msgstr "Jméno serveru není pro ai_socktype podporováno"
+#: nscd/nscd.c:101
+msgid "NUMBER"
+msgstr "POÄŒET"
-#: argp/argp-parse.c:89
-msgid "Set the program name"
-msgstr "Nastaví název programu"
+#: nscd/nscd.c:101
+msgid "Start NUMBER threads"
+msgstr "Spustí POČET vláken"
-#: nscd/nscd.c:85
+#: nscd/nscd.c:102
msgid "Shut the server down"
-msgstr "Zastavení serveru"
-
-#: stdio-common/../sysdeps/unix/siglist.c:25
-msgid "Signal 0"
-msgstr "Signál 0"
+msgstr "Zastavení serveru"
-#. TRANS A file that isn't a socket was specified when a socket is required.
-#: stdio-common/../sysdeps/gnu/errlist.c:311
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:124
-msgid "Socket operation on non-socket"
-msgstr "Soketová operace na objektu, který není soketem"
+#: nscd/nscd.c:103
+msgid "Print current configuration statistic"
+msgstr "Vypíše statistiky aktuální konfigurace"
-#. TRANS The socket type is not supported.
-#: stdio-common/../sysdeps/gnu/errlist.c:340
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:150
-msgid "Socket type not supported"
-msgstr "Typ soket není podporován"
+#: nscd/nscd.c:104
+msgid "TABLE"
+msgstr "TABULKA"
-#. TRANS A network connection was aborted locally.
-#: stdio-common/../sysdeps/gnu/errlist.c:394
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:159
-msgid "Software caused connection abort"
-msgstr "Software zpùsobil ukonèení spojení (abort)"
+#: nscd/nscd.c:105
+msgid "Invalidate the specified cache"
+msgstr "Zneplatnění zadané cache"
-#: sunrpc/rpcinfo.c:658
-msgid "Sorry. You are not root\n"
-msgstr "Lituji, nejste superu¾ivatel\n"
+#: nscd/nscd.c:106
+msgid "TABLE,yes"
+msgstr "TABULKA,yes"
-#: locale/programs/localedef.c:94
-msgid "Source definitions are found in FILE"
-msgstr "Naète zdrojovou definici národního prostøedí ze SOUBORu"
+#: nscd/nscd.c:107
+msgid "Use separate cache for each user"
+msgstr "Použije oddělenou cache pro každého uživatele"
-#: stdio-common/../sysdeps/gnu/errlist.c:764
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:98
-msgid "Srmount error"
-msgstr "Chyba srmount"
+#: nscd/nscd.c:112
+msgid "Name Service Cache Daemon."
+msgstr "NSC (Name Service Cache) démon [pro kešování jmenných služeb]."
-#: sysdeps/generic/siglist.h:66 sysdeps/gnu/siglist.h:60
-msgid "Stack fault"
-msgstr "Poru¹en zásobník (SIGSTKFLT)\""
+#: nscd/nscd.c:144 nss/getent.c:858 nss/makedb.c:123
+#, c-format
+msgid "wrong number of arguments"
+msgstr "chybný poÄet argumentů"
-# Neplatný NFS souborový ukazatel
-#. TRANS Stale NFS file handle. This indicates an internal confusion in the NFS
-#. TRANS system which is due to file system rearrangements on the server host.
-#. TRANS Repairing this condition usually requires unmounting and remounting
-#. TRANS the NFS file system on the local host.
-#: stdio-common/../sysdeps/gnu/errlist.c:506
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:180
-msgid "Stale NFS file handle"
-msgstr "Zastaralý odkaz na NFS soubor"
+#: nscd/nscd.c:154
+#, c-format
+msgid "failure while reading configuration file; this is fatal"
+msgstr "chyba pÅ™i naÄítání konfiguraÄního souboru, toto je fatální"
-#: nscd/nscd.c:84
-msgid "Start NUMBER threads"
-msgstr "Spustí POÈET vláken"
+#: nscd/nscd.c:163
+#, c-format
+msgid "already running"
+msgstr "již běží"
-#: nis/nis_print.c:361
+#: nscd/nscd.c:178 nscd/nscd.c:233
#, c-format
-msgid "Status : %s\n"
-msgstr "Stav : %s\n"
+msgid "cannot fork"
+msgstr "nelze vytvořit potomka pomocí fork()"
-#: stdio-common/../sysdeps/unix/siglist.c:43 sysdeps/generic/siglist.h:44
-#: sysdeps/gnu/siglist.h:38
-msgid "Stopped"
-msgstr "Pozastaven (SIGTSTP)"
+#: nscd/nscd.c:241
+#, c-format
+msgid "cannot change current working directory to \"/\""
+msgstr "nelze zmÄ›nit souÄasný pracovní adresář na „/“"
-#: stdio-common/../sysdeps/unix/siglist.c:42 sysdeps/generic/siglist.h:43
-#: sysdeps/gnu/siglist.h:37
-msgid "Stopped (signal)"
-msgstr "Pozastaven (SIGSTOP)"
+#: nscd/nscd.c:249
+msgid "Could not create log file"
+msgstr "Soubor s protokolem nelze vytvořit"
-#: stdio-common/../sysdeps/unix/siglist.c:46 sysdeps/generic/siglist.h:47
-#: sysdeps/gnu/siglist.h:41
-msgid "Stopped (tty input)"
-msgstr "Pozastaven (tty input) (SIGTTIN)"
+#: nscd/nscd.c:302 nscd/nscd.c:327 nscd/nscd_stat.c:172
+#, c-format
+msgid "Only root is allowed to use this option!"
+msgstr "Tento pÅ™epínaÄ je dostupný pouze superuživateli!"
-#: stdio-common/../sysdeps/unix/siglist.c:47 sysdeps/generic/siglist.h:48
-#: sysdeps/gnu/siglist.h:42
-msgid "Stopped (tty output)"
-msgstr "Pozastaven (tty output) (SIGTTOU)"
+#: nscd/nscd.c:364 nscd/nscd_stat.c:191
+#, c-format
+msgid "write incomplete"
+msgstr "neúplný zápis"
-# Chyba roury proudù
-#: stdio-common/../sysdeps/gnu/errlist.c:808
-msgid "Streams pipe error"
-msgstr "Chyba proudové roury"
+#: nscd/nscd.c:375
+#, c-format
+msgid "cannot read invalidate ACK"
+msgstr "zneplatnÄ›ný ACK (potvrzení) nelze naÄíst"
-#: stdio-common/../sysdeps/gnu/errlist.c:812
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:164
-msgid "Structure needs cleaning"
-msgstr "Struktura potøebuje opravu"
+#: nscd/nscd.c:381
+#, c-format
+msgid "invalidation failed"
+msgstr "zneplatnění selhalo"
-#: nis/nis_error.c:28 nis/ypclnt.c:773 nis/ypclnt.c:847 posix/regex.c:1016
-#: stdio-common/../sysdeps/gnu/errlist.c:19
-msgid "Success"
-msgstr "Úspìch"
+#: nscd/nscd.c:391
+#, c-format
+msgid "secure services not implemented anymore"
+msgstr "bezpeÄné služby již nejsou implementovány"
-#: locale/programs/localedef.c:103
-msgid "Suppress warnings and information messages"
-msgstr "Potlaèí varovné a informaèní zprávy"
+#: nscd/nscd_conf.c:57
+#, c-format
+msgid "database %s is not supported"
+msgstr "databáze %s není podporována"
-#: locale/programs/localedef.c:92
-msgid "Symbolic character names defined in FILE"
-msgstr "Symbolické názvy znakù budou èteny ze SOUBORu (znakové sady)"
+#: nscd/nscd_conf.c:108
+#, c-format
+msgid "Parse error: %s"
+msgstr "Chyba analýzy: %s"
-#: posix/../sysdeps/posix/gai_strerror.c:40
-msgid "System error"
-msgstr "Chyba systému"
+#: nscd/nscd_conf.c:193
+#, c-format
+msgid "Must specify user name for server-user option"
+msgstr "U volby server-user musíte uvést jméno uživatele"
-#: locale/programs/locale.c:63
-msgid "System information:"
-msgstr "Systémové informace:"
+#: nscd/nscd_conf.c:200
+#, c-format
+msgid "Must specify user name for stat-user option"
+msgstr "U volby stat-user musíte uvést jméno uživatele"
-#: nis/ypclnt.c:853
-msgid "System resource allocation failure"
-msgstr "Pøidìlení systémového prostøedku nebylo úspì¹né"
+#: nscd/nscd_conf.c:244
+#, c-format
+msgid "invalid value for 'reload-count': %u"
+msgstr "neplatná hodnota pro „reload-count“: %u"
-#: locale/programs/localedef.c:381
+#: nscd/nscd_conf.c:259
#, c-format
-msgid ""
-"System's directory for character maps : %s\n"
-" repertoire maps: %s\n"
-" locale path : %s\n"
-"%s"
-msgstr ""
-"Systémový adresáø pro znakové sady: : %s\n"
-" repertoáry znakù : %s\n"
-" lokalizaèní soubory : %s\n"
-"%s"
+msgid "Must specify value for restart-interval option"
+msgstr "U volby restart-interval musíte uvést hodnotu"
-#: nscd/nscd.c:87
-msgid "TABLE"
-msgstr "TABULKA"
+# Volba na řádku v nscd.conf nenalezena
+#: nscd/nscd_conf.c:273
+#, c-format
+msgid "Unknown option: %s %s %s"
+msgstr "Neznámá volba: %s %s %s"
-#: nis/nis_print.c:117
-msgid "TABLE\n"
-msgstr "TABULKA\n"
+#: nscd/nscd_conf.c:286
+#, c-format
+msgid "cannot get current working directory: %s; disabling paranoia mode"
+msgstr "nelze získat název souÄasného pracovního adresáře: %s, vypínám paranoidní režim"
-#: nscd/nscd.c:89
-msgid "TABLE,yes"
-msgstr "TABULKA,yes"
+#: nscd/nscd_conf.c:306
+#, c-format
+msgid "maximum file size for %s database too small"
+msgstr "maximální velikost souboru pro databázi %s je příliš malá"
-#: nis/nis_print.c:262
+#: nscd/nscd_stat.c:141
#, c-format
-msgid "Table Type : %s\n"
-msgstr "Typ tabulky : %s\n"
+msgid "cannot write statistics: %s"
+msgstr "statistiku nelze zapsat: %s"
-#: posix/../sysdeps/posix/gai_strerror.c:31
-msgid "Temporary failure in name resolution"
-msgstr "Doèasná chyba pøi vyhodnocování jména"
+#: nscd/nscd_stat.c:156
+msgid "yes"
+msgstr "ano"
-#: stdio-common/../sysdeps/unix/siglist.c:40 sysdeps/generic/siglist.h:41
-#: sysdeps/gnu/siglist.h:35
-msgid "Terminated"
-msgstr "Ukonèen (SIGTERM)"
+#: nscd/nscd_stat.c:157
+msgid "no"
+msgstr "ne"
-#. TRANS An attempt to execute a file that is currently open for writing, or
-#. TRANS write to a file that is currently being executed. Often using a
-#. TRANS debugger to run a program is considered having it open for writing and
-#. TRANS will cause this error. (The name stands for ``text file busy''.) This
-#. TRANS is not an error in the GNU system; the text is copied as necessary.
-#: stdio-common/../sysdeps/gnu/errlist.c:197
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:55
-msgid "Text file busy"
-msgstr "Soubor je pou¾íván"
+#: nscd/nscd_stat.c:168
+#, c-format
+msgid "Only root or %s is allowed to use this option!"
+msgstr "Tento pÅ™epínaÄ je dostupný pouze uživateli root nebo %s!"
+
+#: nscd/nscd_stat.c:179
+#, c-format
+msgid "nscd not running!\n"
+msgstr "nscd neběží!\n"
-#: iconv/iconv_prog.c:578
+#: nscd/nscd_stat.c:203
+#, c-format
+msgid "cannot read statistics data"
+msgstr "statistické údaje nelze naÄíst"
+
+#: nscd/nscd_stat.c:206
+#, c-format
msgid ""
-"The following list contain all the coded character sets known. This does\n"
-"not necessarily mean that all combinations of these names can be used for\n"
-"the FROM and TO command line parameters. One coded character set can be\n"
-"listed with several different names (aliases).\n"
-" Some of the names are no plain strings but instead regular expressions and\n"
-"they match a variety of names which can be given as parameters to the\n"
-"program.\n"
+"nscd configuration:\n"
"\n"
-" "
+"%15d server debug level\n"
msgstr ""
-" Následující seznam obsahuje v¹echny známé znakové sady. To nutnì neznamená,\n"
-"¾e v¹echny kombinace tìchto názvù mohou být pou¾ity pro argumenty Z a DO.\n"
-"Jedna znaková sada mù¾e být uvedena pod vícerými názvy (pøezdívkami).\n"
-" Nìkteré z názvù nejsou obyèejné øetìzce, ale regulární výrazy, které\n"
-"urèují mo¾né parametry programu.\n"
+"konfigurace nscd:\n"
"\n"
-" "
+"%15d ladící úroveň serveru\n"
-#: nis/nis_print.c:223
-msgid "Time to live : "
-msgstr "®ivotnost : "
+#: nscd/nscd_stat.c:230
+#, c-format
+msgid "%3ud %2uh %2um %2lus server runtime\n"
+msgstr "%3ud %2uh %2um %2lus doba běhu serveru\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:680
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:91
-msgid "Timer expired"
-msgstr "Èasovaè vypr¹el"
+# See nscd -g for indentation reasons
+#: nscd/nscd_stat.c:233
+#, c-format
+msgid " %2uh %2um %2lus server runtime\n"
+msgstr " %2uh %2um %2lus doba běhu serveru\n"
-#: nis/nis_error.c:55
-msgid "Too many attributes"
-msgstr "Pøíli¹ mnoho atributù"
+#: nscd/nscd_stat.c:235
+#, c-format
+msgid " %2um %2lus server runtime\n"
+msgstr " %2um %2lus doba běhu serveru\n"
-#. TRANS Too many levels of symbolic links were encountered in looking up a file name.
-#. TRANS This often indicates a cycle of symbolic links.
-#: stdio-common/../sysdeps/gnu/errlist.c:457
-msgid "Too many levels of symbolic links"
-msgstr "Pøíli¹ mnoho úrovní symbolických odkazù"
+#: nscd/nscd_stat.c:237
+#, c-format
+msgid " %2lus server runtime\n"
+msgstr " %2lus doba běhu serveru\n"
-#. TRANS Too many links; the link count of a single file would become too large.
-#. TRANS @code{rename} can cause this error if the file being renamed already has
-#. TRANS as many links as it can take (@pxref{Renaming Files}).
-#: stdio-common/../sysdeps/gnu/errlist.c:225
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:60
-msgid "Too many links"
-msgstr "Pøíli¹ mnoho odkazù"
+#: nscd/nscd_stat.c:239
+#, c-format
+msgid ""
+"%15d current number of threads\n"
+"%15d maximum number of threads\n"
+"%15lu number of times clients had to wait\n"
+"%15s paranoia mode enabled\n"
+"%15lu restart internal\n"
+msgstr ""
+"%15d souÄasný poÄet vláken\n"
+"%15d maximální poÄet vláken\n"
+"%15lu kolik krát musely klienty Äekat\n"
+"%15s paranoidní režim zapnut\n"
+"%15lu vnitřních restartů\n"
-#. TRANS The current process has too many files open and can't open any more.
-#. TRANS Duplicate descriptors do count toward this limit.
-#. TRANS
-#. TRANS In BSD and GNU, the number of open files is controlled by a resource
-#. TRANS limit that can usually be increased. If you get this error, you might
-#. TRANS want to increase the @code{RLIMIT_NOFILE} limit or make it unlimited;
-#. TRANS @pxref{Limits on Resources}.
-#: stdio-common/../sysdeps/gnu/errlist.c:175
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:53
-msgid "Too many open files"
-msgstr "Pøekroèen limit poètu otevøených souborù"
+#: nscd/nscd_stat.c:273
+#, c-format
+msgid ""
+"\n"
+"%s cache:\n"
+"\n"
+"%15s cache is enabled\n"
+"%15s cache is persistent\n"
+"%15s cache is shared\n"
+"%15zu suggested size\n"
+"%15zu total data pool size\n"
+"%15zu used data pool size\n"
+"%15lu seconds time to live for positive entries\n"
+"%15lu seconds time to live for negative entries\n"
+"%15<PRIuMAX> cache hits on positive entries\n"
+"%15<PRIuMAX> cache hits on negative entries\n"
+"%15<PRIuMAX> cache misses on positive entries\n"
+"%15<PRIuMAX> cache misses on negative entries\n"
+"%15lu%% cache hit rate\n"
+"%15zu current number of cached values\n"
+"%15zu maximum number of cached values\n"
+"%15zu maximum chain length searched\n"
+"%15<PRIuMAX> number of delays on rdlock\n"
+"%15<PRIuMAX> number of delays on wrlock\n"
+"%15<PRIuMAX> memory allocations failed\n"
+"%15s check /etc/%s for changes\n"
+msgstr ""
+"\n"
+"keš %s:\n"
+"\n"
+"%15s keš je povolena\n"
+"%15s keš je trvalá\n"
+"%15s keš je sdílená\n"
+"%15zu navrhovaná velikost\n"
+"%15zu celková velikost datového rezervoáru\n"
+"%15zu použitá velikost datového rezervoáru\n"
+"%15lu sekund životnost pozitivních záznamů\n"
+"%15lu sekund životnost negativních záznamů\n"
+"%15<PRIuMAX> úspěchů keše pro pozitivní záznamy\n"
+"%15<PRIuMAX> úspěchů keše pro negativní záznamy\n"
+"%15<PRIuMAX> neúspěchů keše pro pozitivní záznamy\n"
+"%15<PRIuMAX> neúspěchů keše pro negativní záznamy\n"
+"%15lu%% úspěšnost keš\n"
+"%15zu souÄasný poÄet keÅ¡ovaných hodnot\n"
+"%15zu maximální poÄet keÅ¡ovaných hodnot\n"
+"%15zu maximální prohledávaná délka řetězce\n"
+"%15<PRIuMAX> poÄet zdržení v zámcích pro Ätení\n"
+"%15<PRIuMAX> poÄet zdržení v zámcích pro zápis\n"
+"%15<PRIuMAX> selhání alokace paměti\n"
+"%15s kontrolovat změny v /etc/%s\n"
+
+#: nscd/pwdcache.c:440
+#, c-format
+msgid "Haven't found \"%s\" in password cache!"
+msgstr "„%s“ nebylo v keš pro hesla nalezeno!"
-#. TRANS There are too many distinct file openings in the entire system. Note
-#. TRANS that any number of linked channels count as just one file opening; see
-#. TRANS @ref{Linked Channels}. This error never occurs in the GNU system.
-#: stdio-common/../sysdeps/gnu/errlist.c:182
-msgid "Too many open files in system"
-msgstr "V celém systému je pøíli¹ mnoho otevøených souborù"
+#: nscd/pwdcache.c:442
+#, c-format
+msgid "Reloading \"%s\" in password cache!"
+msgstr "ZnovunaÄítám „%s“ do keÅ¡e pro hesla!"
-#. TRANS This means that the per-user limit on new process would be exceeded by
-#. TRANS an attempted @code{fork}. @xref{Limits on Resources}, for details on
-#. TRANS the @code{RLIMIT_NPROC} limit.
-#: stdio-common/../sysdeps/gnu/errlist.c:487
-msgid "Too many processes"
-msgstr "Pøekroèen limit poètu procesù aktuálního u¾ivatele"
+#: nscd/pwdcache.c:520
+#, c-format
+msgid "Invalid numeric uid \"%s\"!"
+msgstr "Neplatné Äíselné UID „%s“"
-# Pøíli¹ mnoho odkazù - nelze spojit
-#. TRANS ???
-#: stdio-common/../sysdeps/gnu/errlist.c:439
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:173
-msgid "Too many references: cannot splice"
-msgstr "Pøíli¹ mnoho odkazù - nelze spojit"
+#: nscd/selinux.c:156
+#, c-format
+msgid "Failed opening connection to the audit subsystem: %m"
+msgstr "Otevření spojení do auditního subsystému selhalo: %m"
-#. TRANS The file quota system is confused because there are too many users.
-#. TRANS @c This can probably happen in a GNU system when using NFS.
-#: stdio-common/../sysdeps/gnu/errlist.c:493
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:123
-msgid "Too many users"
-msgstr "Pøíli¹ mnoho u¾ivatelù"
+#: nscd/selinux.c:177
+msgid "Failed to set keep-capabilities"
+msgstr "Nastavení „keep“ kvalifikací selhalo"
-#: stdio-common/../sysdeps/unix/siglist.c:30 sysdeps/generic/siglist.h:33
-#: sysdeps/gnu/siglist.h:27
-msgid "Trace/breakpoint trap"
-msgstr "Trasovací/ladící past (SIGTRAP)"
+#: nscd/selinux.c:178 nscd/selinux.c:241
+#, c-format
+msgid "prctl(KEEPCAPS) failed"
+msgstr "prctl(KEEPCAPS) selhalo"
-#: posix/regex.c:1031
-msgid "Trailing backslash"
-msgstr "Koncové zpìtné lomítko"
+#: nscd/selinux.c:192
+msgid "Failed to initialize drop of capabilities"
+msgstr "Příprava na vzdání se kvalifikací selhala"
-# Pøekladaè zastaven?
-#. TRANS In the GNU system, opening a file returns this error when the file is
-#. TRANS translated by a program and the translator program dies while starting
-#. TRANS up, before it has connected to the file.
-#: stdio-common/../sysdeps/gnu/errlist.c:614
-msgid "Translator died"
-msgstr "Pøekladatel zemøel"
+#: nscd/selinux.c:193
+#, c-format
+msgid "cap_init failed"
+msgstr "funkce cap_init() selhala"
-#. TRANS You tried to connect a socket that is already connected.
-#. TRANS @xref{Connecting}.
-#: stdio-common/../sysdeps/gnu/errlist.c:414
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:162
-msgid "Transport endpoint is already connected"
-msgstr "Koncový komunikaèní bod je u¾ pøipojen"
+#: nscd/selinux.c:214 nscd/selinux.c:231
+msgid "Failed to drop capabilities"
+msgstr "Vzdání se kvalifikací selhalo"
-#. TRANS The socket is not connected to anything. You get this error when you
-#. TRANS try to transmit data over a socket, without first specifying a
-#. TRANS destination for the data. For a connectionless socket (for datagram
-#. TRANS protocols, such as UDP), you get @code{EDESTADDRREQ} instead.
-#: stdio-common/../sysdeps/gnu/errlist.c:422
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:163
-msgid "Transport endpoint is not connected"
-msgstr "Koncový komunikaèní bod není pøipojen"
+#: nscd/selinux.c:215 nscd/selinux.c:232
+#, c-format
+msgid "cap_set_proc failed"
+msgstr "cap_set_proc selhala"
+
+#: nscd/selinux.c:240
+msgid "Failed to unset keep-capabilities"
+msgstr "Vypnutí „keep“ kvalifikací selhalo"
-#: argp/argp-help.c:1612
+#: nscd/selinux.c:256
+msgid "Failed to determine if kernel supports SELinux"
+msgstr "Nelze zjistit, zda jádro podporuje SELinux"
+
+#: nscd/selinux.c:271
#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
-msgstr "Více informací získáte pøíkazy `%s --help' nebo `%s --usage'.\n"
+msgid "Failed to start AVC thread"
+msgstr "Spuštění vlákna AVC selhalo"
-#: inet/rcmd.c:150
+#: nscd/selinux.c:293
#, c-format
-msgid "Trying %s...\n"
-msgstr "Zkou¹í se %s...\n"
+msgid "Failed to create AVC lock"
+msgstr "Vytvoření zámku AVC selhalo"
-#: nis/nis_print.c:163
+#: nscd/selinux.c:333
#, c-format
-msgid "Type : %s\n"
-msgstr "Typ : %s\n"
+msgid "Failed to start AVC"
+msgstr "Spuštění AVC selhalo"
-#: nis/nis_print.c:47
-msgid "UNKNOWN"
-msgstr "NEZNÁMÝ"
+#: nscd/selinux.c:335
+msgid "Access Vector Cache (AVC) started"
+msgstr "Keš přístupových vektorů (AVC) nastartována"
-#: nis/nis_error.c:72
-msgid "Unable to authenticate NIS+ client"
-msgstr "Toto¾nost NIS+ klienta nelze ovìøit"
+#: nscd/selinux.c:356
+msgid "Error getting context of socket peer"
+msgstr "Chyba při zjišťování kontextu dvojice soketů"
-#: nis/nis_error.c:71
-msgid "Unable to authenticate NIS+ server"
-msgstr "Toto¾nost NIS+ serveru nelze ovìøit"
+#: nscd/selinux.c:361
+msgid "Error getting context of nscd"
+msgstr "Chyba při zjišťování kontextu nscd"
-#: nis/nis_error.c:46
-msgid "Unable to create callback"
-msgstr "Zpìtné volání nelze vytvoøit"
+#: nscd/selinux.c:367
+msgid "Error getting sid from context"
+msgstr "Chyba při získávání SID z kontextu"
-#: nis/nis_error.c:74
-msgid "Unable to create process on server"
-msgstr "Na serveru nelze vytvoøit proces"
+#: nscd/selinux.c:399
+#, c-format
+msgid ""
+"\n"
+"SELinux AVC Statistics:\n"
+"\n"
+"%15u entry lookups\n"
+"%15u entry hits\n"
+"%15u entry misses\n"
+"%15u entry discards\n"
+"%15u CAV lookups\n"
+"%15u CAV hits\n"
+"%15u CAV probes\n"
+"%15u CAV misses\n"
+msgstr ""
+"\n"
+"Statistika selinuxové AVC:\n"
+"\n"
+"%15u hledaných položek\n"
+"%15u úspěchů keše\n"
+"%15u neúspěchů keše\n"
+"%15u zahozených položek\n"
+"%15u vyhledávaných CAV\n"
+"%15u úspěšných CAV\n"
+"%15u zkoušených CAV\n"
+"%15u neúspěšných CAV\n"
-#: nis/nis_print.c:190
+#: nscd/servicescache.c:389
#, c-format
-msgid "Unknown (type = %d, bits = %d)\n"
-msgstr "Neznámý (typ = %d, bitù = %d)\n"
+msgid "Haven't found \"%s\" in services cache!"
+msgstr "„%s“ nebylo v keši pro služby nalezeno!"
-#: inet/ruserpass.c:263
+#: nscd/servicescache.c:391
#, c-format
-msgid "Unknown .netrc keyword %s"
-msgstr "Neznámé klíèové slovo v .netrc: %s"
+msgid "Reloading \"%s\" in services cache!"
+msgstr "Znovu naÄítám „%s“ do keÅ¡e pro služby!"
-#: nis/ypclnt.c:807
-msgid "Unknown NIS error code"
-msgstr "Neznámý chybový kód slu¾by NIS"
+#: nss/getent.c:52
+msgid "database [key ...]"
+msgstr "databáze [klíÄ…]"
+
+#: nss/getent.c:57
+msgid "Service configuration to be used"
+msgstr "Konfigurace služby, která má být použita"
+
+#: nss/getent.c:62
+msgid ""
+"Get entries from administrative database.\vFor bug reporting instructions, please see:\n"
+"<http://www.gnu.org/software/libc/bugs.html>.\n"
+msgstr ""
+"Získá položky z administrativní databáze.\vNávod, jak nahlásit chybu, naleznete na:\n"
+"<http://www.gnu.org/software/libc/bugs.html>.\n"
-#: nss/getent.c:512
+#: nss/getent.c:145 nss/getent.c:394
+#, c-format
+msgid "Enumeration not supported on %s\n"
+msgstr "VýÄet není podporován na %s\n"
+
+#: nss/getent.c:782
+#, c-format
+msgid "Unknown database name"
+msgstr "Neznámé jméno databáze"
+
+#: nss/getent.c:808
+msgid "Supported databases:\n"
+msgstr "Podporované databáze:\n"
+
+#: nss/getent.c:868
#, c-format
msgid "Unknown database: %s\n"
-msgstr "Neznámá databáze: %s\n"
+msgstr "Neznámá databáze: %s\n"
-#: posix/../sysdeps/posix/gai_strerror.c:51
-msgid "Unknown error"
-msgstr "Neznámá chyba"
+#: nss/makedb.c:60
+msgid "Convert key to lower case"
+msgstr "PÅ™evádí klíÄe na malá písmena"
-#: string/../sysdeps/generic/_strerror.c:48
-#: string/../sysdeps/mach/_strerror.c:87
-#: sysdeps/mach/hurd/mips/dl-machine.c:82
-msgid "Unknown error "
-msgstr "Neznámá chyba "
+#: nss/makedb.c:63
+msgid "Do not print messages while building database"
+msgstr "Během tvorby databáze nevypisuje zprávy"
-#: resolv/herror.c:74
-msgid "Unknown host"
-msgstr "Neznámý poèítaè"
+#: nss/makedb.c:65
+msgid "Print content of database file, one entry a line"
+msgstr "Vypíše obsah databázového souboru, jeden záznam na řádek"
-#: nis/nis_error.c:34
-msgid "Unknown object"
-msgstr "Neznámý objekt"
+#: nss/makedb.c:70
+msgid "Create simple DB database from textual input."
+msgstr "Vytváří jednoduché databáze typu DB z textového vstupu."
+
+#: nss/makedb.c:73
+msgid ""
+"INPUT-FILE OUTPUT-FILE\n"
+"-o OUTPUT-FILE INPUT-FILE\n"
+"-u INPUT-FILE"
+msgstr ""
+"VSTUPNÃ_SOUBOR VÃSTUPNÃ_SOUBOR\n"
+"-o VÃSTUPNÃ_SOUBOR VSTUPNÃ_SOUBOR\n"
+"-u VSTUPNÃ_SOUBOR"
-# Volba na øádku v nscd.conf nenalezena
-#: nscd/nscd_conf.c:179
+#: nss/makedb.c:142
#, c-format
-msgid "Unknown option: %s %s %s"
-msgstr "Neznámá volba: %s %s %s"
+msgid "No usable database library found."
+msgstr "Žádná použitelná databázová knihovna nebyla nalezena."
-#: resolv/herror.c:120
-msgid "Unknown resolver error"
-msgstr "Neznámá chyba resolveru"
+#: nss/makedb.c:149
+#, c-format
+msgid "cannot open database file `%s': %s"
+msgstr "databázový soubor „%s“ nelze otevřít: %s"
-#: resolv/herror.c:76
-msgid "Unknown server error"
-msgstr "Neznámá chyba serveru"
+#: nss/makedb.c:151
+msgid "incorrectly formatted file"
+msgstr "chybně formátovaný soubor"
-#: string/strsignal.c:70
+#: nss/makedb.c:331
+msgid "duplicate key"
+msgstr "duplicitní klíÄ"
+
+#: nss/makedb.c:337
#, c-format
-msgid "Unknown signal %d"
-msgstr "Neznámý signál %d"
+msgid "while writing database file"
+msgstr "během zápisu databáze"
-#: misc/error.c:107 timezone/zic.c:386
-msgid "Unknown system error"
-msgstr "Neznámá chyba systému"
+#: nss/makedb.c:348
+#, c-format
+msgid "problems while reading `%s'"
+msgstr "problémy bÄ›hem Ätení „%s“"
-#: nis/ypclnt.c:855
-msgid "Unknown ypbind error"
-msgstr "Neznámá chyba ypbind"
+#: nss/makedb.c:368 nss/makedb.c:385
+#, c-format
+msgid "while reading database"
+msgstr "bÄ›hem Ätení databáze"
-#: posix/regex.c:1040
-msgid "Unmatched ( or \\("
-msgstr "Nepárová ( or \\("
+#: posix/getconf.c:945
+#, c-format
+msgid "Usage: %s [-v specification] variable_name [pathname]\n"
+msgstr "Použití: %s [-v SPECIFIKACE] JMÉNO_PROMĚNNÉ [CESTA]\n"
-#: posix/regex.c:1064
-msgid "Unmatched ) or \\)"
-msgstr "Nepárová ) or \\)"
+# Indent as "Usage: " translation
+#: posix/getconf.c:948
+#, c-format
+msgid " %s -a [pathname]\n"
+msgstr " %s -a [CESTA]\n"
-#: posix/regex.c:1037
-msgid "Unmatched [ or [^"
-msgstr "Nepárová [ or [^"
+#: posix/getconf.c:1067
+#, c-format
+msgid "unknown specification \"%s\""
+msgstr "neznámá specifikace „%s“"
-#: posix/regex.c:1043
-msgid "Unmatched \\{"
-msgstr "Nepárová \\{"
+#: posix/getconf.c:1095
+#, c-format
+msgid "Couldn't execute %s"
+msgstr "Nelze spustit %s"
-#: posix/getconf.c:692
+#: posix/getconf.c:1135 posix/getconf.c:1151
+msgid "undefined"
+msgstr "není definováno"
+
+#: posix/getconf.c:1173
#, c-format
msgid "Unrecognized variable `%s'"
-msgstr "Neznámá promìnná `%s'"
+msgstr "Neznámá proměnná „%s“"
-# Urgentní stav V/V?
-#: stdio-common/../sysdeps/unix/siglist.c:41 sysdeps/generic/siglist.h:42
-#: sysdeps/gnu/siglist.h:36
-msgid "Urgent I/O condition"
-msgstr "Naléhavá V/V situace (SIGURG)"
+#: posix/getopt.c:571 posix/getopt.c:587
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: pÅ™epínaÄ â€ž%s“ není jednoznaÄný\n"
-#: argp/argp-help.c:1569
-msgid "Usage:"
-msgstr "Pou¾ití:"
+#: posix/getopt.c:620 posix/getopt.c:624
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: pÅ™epínaÄ â€ž--%s“ musí být zadán bez argumentu\n"
-#: posix/getconf.c:604
+#: posix/getopt.c:633 posix/getopt.c:638
#, c-format
-msgid "Usage: %s variable_name [pathname]\n"
-msgstr "Pou¾ití: %s jméno_promìnné [cesta]\n"
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: pÅ™epínaÄ â€ž%c%s“ musí být zadán bez argumentu\n"
-#: sunrpc/rpcinfo.c:674
-msgid "Usage: rpcinfo [ -n portnum ] -u host prognum [ versnum ]\n"
-msgstr "Pou¾ití: rpcinfo [ -n èíslo_portu ] -u poèítaè èíslo_programu [ èíslo_verze ]\n"
+#: posix/getopt.c:681 posix/getopt.c:700 posix/getopt.c:1016
+#: posix/getopt.c:1035
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: pÅ™epínaÄ â€ž%s“ vyžaduje argument\n"
-#: nscd/nscd.c:89
-msgid "Use separate cache for each user"
-msgstr "Pou¾ije oddìlenou cache pro ka¾dého u¾ivatele"
+# Říká, že žádný pÅ™epínaÄ takového jména nebyl nalezen.
+#: posix/getopt.c:738 posix/getopt.c:741
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: neznámý pÅ™epínaÄ â€ž--%s“\n"
-#: stdio-common/../sysdeps/unix/siglist.c:55 sysdeps/generic/siglist.h:55
-#: sysdeps/gnu/siglist.h:49
-msgid "User defined signal 1"
-msgstr "U¾ivatelem definovaný signál 1 (SIGUSR1)"
+# Říká, že žádný pÅ™epínaÄ takového jména nebyl nalezen.
+#: posix/getopt.c:749 posix/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: neznámý pÅ™epínaÄ â€ž%c%s“\n"
-#: stdio-common/../sysdeps/unix/siglist.c:56 sysdeps/generic/siglist.h:56
-#: sysdeps/gnu/siglist.h:50
-msgid "User defined signal 2"
-msgstr "U¾ivatelem definovaný signál 2 (SIGUSR2)"
+# Rozdíl mezi 'illegal option' a 'invalid option' není žádný. To která zpráva
+# je vypisována je dáno tím, zda má být výstup podle normy 'POSIX' nebo ne.
+# 'Illegal option' je POSIXové.
+#: posix/getopt.c:804 posix/getopt.c:807
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: neznámý pÅ™epínaÄ -- %c\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:672
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:108
-msgid "Value too large for defined data type"
-msgstr "Hodnota je pøíli¹ velká pro daný datový typ"
+# Vysvětlení viz 'illegal option'
+#: posix/getopt.c:813 posix/getopt.c:816
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: neznámý pÅ™epínaÄ -- %c\n"
-#: stdio-common/../sysdeps/unix/siglist.c:51 sysdeps/generic/siglist.h:52
-#: sysdeps/gnu/siglist.h:46
-msgid "Virtual timer expired"
-msgstr "Virtuální èasovaè vypr¹el (SIGVTALRM)"
+#: posix/getopt.c:868 posix/getopt.c:884 posix/getopt.c:1088
+#: posix/getopt.c:1106
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: pÅ™epínaÄ vyžaduje argument – %c\n"
-#: timezone/zic.c:1927
-msgid "Wild result from command execution"
-msgstr "Vykonaný pøíkaz dal podivný výsledek"
+#: posix/getopt.c:937 posix/getopt.c:953
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: pÅ™epínaÄ â€ž-W %s“ není jednoznaÄný\n"
-#: stdio-common/../sysdeps/unix/siglist.c:53 sysdeps/generic/siglist.h:54
-#: sysdeps/gnu/siglist.h:48
-msgid "Window changed"
-msgstr "Okno se zmìnilo (SIGWINCH)"
+#: posix/getopt.c:977 posix/getopt.c:995
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: pÅ™epínaÄ â€ž-W %s“ musí být zadán bez argumentu\n"
-#: locale/programs/locale.c:67
-msgid "Write names of available charmaps"
-msgstr "Vypsání názvù dostupných znakových sad"
+# Nenalezeno
+#: posix/regcomp.c:135
+msgid "No match"
+msgstr "Žádná shoda"
-#: locale/programs/locale.c:65
-msgid "Write names of available locales"
-msgstr "Vypsání názvù dostupných národních prostøedí"
+#: posix/regcomp.c:138
+msgid "Invalid regular expression"
+msgstr "Nepřípustný regulární výraz"
-#: locale/programs/locale.c:69
-msgid "Write names of selected categories"
-msgstr "Vypsání názvù vybraných kategorií"
+#: posix/regcomp.c:141
+msgid "Invalid collation character"
+msgstr "Pro řazení nepřípustný znak"
-#: locale/programs/locale.c:70
-msgid "Write names of selected keywords"
-msgstr "Vypsání názvù vybraných klíèových slov"
+#: posix/regcomp.c:144
+msgid "Invalid character class name"
+msgstr "Nepřípustný název třídy znaků"
-#: catgets/gencat.c:111 db2/makedb.c:59
-msgid "Write output to file NAME"
-msgstr "Zapsání výstup do souboru SOUBOR"
+#: posix/regcomp.c:147
+msgid "Trailing backslash"
+msgstr "Koncové zpětné lomítko"
-#: catgets/gencat.c:242 db2/makedb.c:247 elf/sprof.c:361
-#: iconv/iconv_prog.c:299 locale/programs/locale.c:272
-#: locale/programs/localedef.c:405 nscd/nscd.c:282 nscd/nscd_nischeck.c:95
-#: nss/getent.c:71 posix/getconf.c:629
-#, c-format
-msgid "Written by %s.\n"
-msgstr "Autor: %s.\n"
+#: posix/regcomp.c:150
+msgid "Invalid back reference"
+msgstr "Neplatný zpětný odkaz"
-#: stdio-common/../sysdeps/gnu/errlist.c:836
-msgid "Wrong medium type"
-msgstr "Chybný typ média"
+#: posix/regcomp.c:153
+msgid "Unmatched [ or [^"
+msgstr "Nepárová [ or [^"
-#: nis/nis_print.c:39
-msgid "X500"
-msgstr "X500"
+#: posix/regcomp.c:156
+msgid "Unmatched ( or \\("
+msgstr "Nepárová ( or \\("
-#: nis/nis_print.c:43
-msgid "XCHS"
-msgstr "XCHS"
+#: posix/regcomp.c:159
+msgid "Unmatched \\{"
+msgstr "Nepárová \\{"
-#: nis/ypclnt.c:171
-#, c-format
-msgid "YPBINDPROC_DOMAIN: %s\n"
-msgstr "YPBINDPROC_DOMAIN: %s\n"
+#: posix/regcomp.c:162
+msgid "Invalid content of \\{\\}"
+msgstr "Nepřípustný obsah \\{\\}"
-#: nis/nis_error.c:70
-msgid "Yes, 42 is the meaning of life"
-msgstr "Ano, 42 je smysl ¾ivota"
+#: posix/regcomp.c:165
+msgid "Invalid range end"
+msgstr "Nepřípustný konec rozsahu"
-#. TRANS You did @strong{what}?
-#: stdio-common/../sysdeps/gnu/errlist.c:626
-msgid "You really blew it this time"
-msgstr "Tentokrát jste to skuteènì zvoral"
+#: posix/regcomp.c:168
+msgid "Memory exhausted"
+msgstr "Paměť vyÄerpána"
-#: timezone/zic.c:1089
-msgid "Zone continuation line end time is not after end time of previous line"
-msgstr "Koncový èas pokraèovacího øádku Zone není vìt¹í ne¾ koncový èas pøedcházejícího øádku"
+#: posix/regcomp.c:171
+msgid "Invalid preceding regular expression"
+msgstr "Nepřípustný předchozí regulární výraz"
-#: iconv/iconv_prog.c:70
-msgid "[FILE...]"
-msgstr "[SOUBOR...]"
+#: posix/regcomp.c:174
+msgid "Premature end of regular expression"
+msgstr "PÅ™edÄasný konec regulárního výrazu"
-#: sunrpc/pmap_clnt.c:71
-msgid "__get_myaddress: ioctl (get interface configuration)"
-msgstr "__get_myaddress: ioctl (ètení konfigurace rozhraní)"
+#: posix/regcomp.c:177
+msgid "Regular expression too big"
+msgstr "Regulární výraz je příliš velký"
+
+#: posix/regcomp.c:180
+msgid "Unmatched ) or \\)"
+msgstr "Nepárová ) or \\)"
-#: locale/programs/charmap.c:480 locale/programs/locfile.c:477
-#: locale/programs/repertoire.c:290
+#: posix/regcomp.c:660
+msgid "No previous regular expression"
+msgstr "Předchozí regulární výraz neexistuje"
+
+#: posix/wordexp.c:1798
+msgid "parameter null or not set"
+msgstr "parametr je nullový nebo prázdný"
+
+#: resolv/herror.c:68
+msgid "Resolver Error 0 (no error)"
+msgstr "Resolver vrací stav 0 (bez chyby)"
+
+#: resolv/herror.c:69
+msgid "Unknown host"
+msgstr "Neznámý poÄítaÄ"
+
+#: resolv/herror.c:70
+msgid "Host name lookup failure"
+msgstr "Název poÄítaÄe se nepodaÅ™ilo nalézt"
+
+#: resolv/herror.c:71
+msgid "Unknown server error"
+msgstr "Neznámá chyba serveru"
+
+#: resolv/herror.c:72
+msgid "No address associated with name"
+msgstr "Jméno nemá přiřazenu adresu"
+
+#: resolv/herror.c:107
+msgid "Resolver internal error"
+msgstr "Vnitřní chyba resolveru"
+
+#: resolv/herror.c:110
+msgid "Unknown resolver error"
+msgstr "Neznámá chyba resolveru"
+
+#: resolv/res_hconf.c:124
#, c-format
-msgid "`%1$s' definition does not end with `END %1$s'"
-msgstr "Definice `%1$s' nekonèí `END %1$s'"
+msgid "%s: line %d: cannot specify more than %d trim domains"
+msgstr "%s: řádek %d: ořezových domén nelze zadat více jak %d"
-#: elf/sprof.c:762
+#: resolv/res_hconf.c:145
#, c-format
-msgid "`%s' is no correct profile data file for `%s'"
-msgstr "`%s' nejsou správná profilovací data pro `%s'"
+msgid "%s: line %d: list delimiter not followed by domain"
+msgstr "%s: řádek %d: oddÄ›lovaÄ prvků seznamu není následován doménou"
-#: locale/programs/ld-monetary.c:369 locale/programs/ld-numeric.c:193
+#: resolv/res_hconf.c:204
#, c-format
-msgid "`-1' must be last entry in `%s' field in `%s' category"
-msgstr "`-1' musí být posledním údajem v polo¾ce `%s' kategorie `%s'"
+msgid "%s: line %d: expected `on' or `off', found `%s'\n"
+msgstr "%s: řádek %d: oÄekáváno „on“ (zapnuto), nebo „off“ (vypnuto), ale nalezeno „%s“\n"
-#: locale/programs/ld-collate.c:1670
-msgid "`...' must only be used in `...' and `UNDEFINED' entries"
-msgstr "`...' mù¾e být pou¾ito jen v polo¾kách `...' a `UNDEFINED'"
+#: resolv/res_hconf.c:247
+#, c-format
+msgid "%s: line %d: bad command `%s'\n"
+msgstr "%s: řádek %d: chybný příkaz „%s“\n"
-#: locale/programs/locfile.c:674
-msgid "`from' expected after first argument to `collating-element'"
-msgstr "Za prvním argumentem pro `collating-element' je oèekáváno `from'"
+#: resolv/res_hconf.c:282
+#, c-format
+msgid "%s: line %d: ignoring trailing garbage `%s'\n"
+msgstr "%s: řádek %d: ignoruji závÄ›reÄné smetí „%s“\n"
-#: locale/programs/ld-collate.c:1122
-msgid "`from' string in collation element declaration contains unknown character"
-msgstr "Øetìzec `z-èeho' v deklaraci prvku øazení obsahuje neznámý znak"
+#: stdio-common/psignal.c:51
+#, c-format
+msgid "%s%sUnknown signal %d\n"
+msgstr "%s%sNeznámý signál %d\n"
-#: posix/../sysdeps/posix/gai_strerror.c:34
-msgid "ai_family not supported"
-msgstr "ai_family není podporován"
+#: stdio-common/psignal.c:52
+msgid "Unknown signal"
+msgstr "Neznámý signál"
-#: posix/../sysdeps/posix/gai_strerror.c:39
-msgid "ai_socktype not supported"
-msgstr "ai_socktype není podporován"
+#: string/_strerror.c:45 sysdeps/mach/_strerror.c:87
+msgid "Unknown error "
+msgstr "Neznámá chyba "
-#: nscd/nscd.c:127
-msgid "already running"
-msgstr "ji¾ bì¾í"
+#: string/strerror.c:43
+msgid "Unknown error"
+msgstr "Neznámá chyba"
-#: locale/programs/charmap.c:352 locale/programs/repertoire.c:164
+# Signál reálného Äasu %d"
+#: string/strsignal.c:65
#, c-format
-msgid "argument to <%s> must be a single character"
-msgstr "argument pro <%s> musí být jednoznakový"
+msgid "Real-time signal %d"
+msgstr "Real-timeový signál %d"
-#: locale/programs/locfile.c:240
+#: string/strsignal.c:69
#, c-format
-msgid "argument to `%s' must be a single character"
-msgstr "argument pro `%s' musí být jednoznakový"
-
-#: sunrpc/auth_unix.c:310
-msgid "auth_none.c - Fatal marshalling problem"
-msgstr "auth_none.c - Fatální chyba marshallingu"
+msgid "Unknown signal %d"
+msgstr "Neznámý signál %d"
-#: sunrpc/auth_unix.c:105 sunrpc/auth_unix.c:111 sunrpc/auth_unix.c:141
+#: sunrpc/auth_unix.c:114
msgid "authunix_create: out of memory\n"
-msgstr "authunix_create: nedostatek pamìti\n"
+msgstr "authunix_create: nedostatek paměti\n"
-#: locale/programs/charmap.c:297 locale/programs/locfile.c:234
-#: locale/programs/locfile.c:261 locale/programs/repertoire.c:156
-msgid "bad argument"
-msgstr "chybný argument"
+#: sunrpc/auth_unix.c:350
+msgid "auth_unix.c: Fatal marshalling problem"
+msgstr "auth_unix.c: Fatální chyba marshallingu"
-#: inet/rcmd.c:326
-msgid "bad owner"
-msgstr "chybný vlastník"
+# nižší verze, vyšší verze
+#: sunrpc/clnt_perr.c:118 sunrpc/clnt_perr.c:139
+#, c-format
+msgid "; low version = %lu, high version = %lu"
+msgstr "; podverze = %lu, verze = %lu"
-#: timezone/zic.c:1211
-msgid "blank FROM field on Link line"
-msgstr "prázdná polo¾ka OD v øádku Link"
+#: sunrpc/clnt_perr.c:125
+msgid "; why = "
+msgstr "; důvod = "
-#: timezone/zic.c:1215
-msgid "blank TO field on Link line"
-msgstr "prázdná polo¾ka DO v øádku Link"
+#: sunrpc/clnt_perr.c:132
+#, c-format
+msgid "(unknown authentication error - %d)"
+msgstr "(neznámá chyba při ověřování totožnosti – %d)"
-#: malloc/mcheck.c:208
-msgid "block freed twice\n"
-msgstr "blok uvolnìn dvakrát\n"
+#: sunrpc/clnt_perr.c:172
+msgid "RPC: Success"
+msgstr "RPC: Úspěch"
-#: malloc/mcheck.c:211
-msgid "bogus mcheck_status, library is buggy\n"
-msgstr "pochybný mcheck_status, knihovna je chybná\n"
+#: sunrpc/clnt_perr.c:175
+msgid "RPC: Can't encode arguments"
+msgstr "RPC: Argumenty nelze zakódovat"
-#: sunrpc/pmap_rmt.c:185
-msgid "broadcast: ioctl (get interface configuration)"
-msgstr "v¹esmìrové vysílání: ioctl (ètení konfigurace rozhraní)"
+#: sunrpc/clnt_perr.c:179
+msgid "RPC: Can't decode result"
+msgstr "RPC: Výsledek nelze dekódovat"
-#: sunrpc/pmap_rmt.c:194
-msgid "broadcast: ioctl (get interface flags)"
-msgstr "v¹esmìrové vysílání: ioctl (ètení pøíznakù rozhraní)"
+# Nelze vysílat
+#: sunrpc/clnt_perr.c:183
+msgid "RPC: Unable to send"
+msgstr "RPC: Nelze vyslat"
-#: login/programs/request.c:167
-msgid "buffer overflow"
-msgstr "pøeteèení vyrovnávací pamìti"
+# Nelze přijímat
+#: sunrpc/clnt_perr.c:187
+msgid "RPC: Unable to receive"
+msgstr "RPC: Nelze přijmout"
-#: sunrpc/svc_udp.c:446
-msgid "cache_set: could not allocate new rpc_buffer"
-msgstr "cache_set: ne¹lo alokovat vyrovnávací pamì» pro rpc"
+#: sunrpc/clnt_perr.c:191
+msgid "RPC: Timed out"
+msgstr "RPC: ÄŒasovaÄ vyprÅ¡el"
-#: sunrpc/svc_udp.c:440
-msgid "cache_set: victim alloc failed"
-msgstr "cache_set: alokace nové polo¾ky cache se nezdaøila"
+#: sunrpc/clnt_perr.c:195
+msgid "RPC: Incompatible versions of RPC"
+msgstr "RPC: Nekompatibilní verze RPC"
-#: sunrpc/svc_udp.c:429
-msgid "cache_set: victim not found"
-msgstr "cache_set: obì» nenalezena"
+#: sunrpc/clnt_perr.c:199
+msgid "RPC: Authentication error"
+msgstr "RPC: Chyba při ověřování totožnosti"
-#: timezone/zic.c:1752
-msgid "can't determine time zone abbreviation to use just after until time"
-msgstr "zkratku èasového pásma pro pou¾ití ihned po èasovém údaji nelze nelézt"
+#: sunrpc/clnt_perr.c:203
+msgid "RPC: Program unavailable"
+msgstr "RPC: Program není k dispozici"
-#: sunrpc/svc_simple.c:75
-#, c-format
-msgid "can't reassign procedure number %d\n"
-msgstr "èíslo procedury %d nelze znovu pøidìlit\n"
+#: sunrpc/clnt_perr.c:207
+msgid "RPC: Program/version mismatch"
+msgstr "RPC: Nesouhlasí program nebo verze"
-#: locale/programs/localedef.c:276
-#, c-format
-msgid "cannot `stat' locale file `%s'"
-msgstr "nelze vykonat `stat' pro soubor národního prostøedí `%s'"
+#: sunrpc/clnt_perr.c:211
+msgid "RPC: Procedure unavailable"
+msgstr "RPC: Procedura není k dispozici"
-#: elf/sprof.c:931 elf/sprof.c:983
-msgid "cannot allocate symbol data"
-msgstr "pamì» pro symboly nelze alokovat"
+#: sunrpc/clnt_perr.c:215
+msgid "RPC: Server can't decode arguments"
+msgstr "RPC: Server nemůže dekódovat argumenty"
-#: elf/sprof.c:715 elf/sprof.c:773
-msgid "cannot create internal descriptor"
-msgstr "interní deskriptor nelze vytvoøit"
+#: sunrpc/clnt_perr.c:219
+msgid "RPC: Remote system error"
+msgstr "RPC: Chyba vzdáleného systému"
-#: elf/sprof.c:413
-msgid "cannot create internal descriptors"
-msgstr "interní deskriptory nelze vytvoøit"
+#: sunrpc/clnt_perr.c:223
+msgid "RPC: Unknown host"
+msgstr "RPC: Neznámý poÄítaÄ"
-#: nscd/connections.c:183
-#, c-format
-msgid "cannot enable socket to accept connections: %s"
-msgstr "soket nemù¾e pøijímat spojení: %s"
+#: sunrpc/clnt_perr.c:227
+msgid "RPC: Unknown protocol"
+msgstr "RPC: Neznámý protokol"
-#: sunrpc/rpc_main.c:341
-#, c-format
-msgid "cannot find C preprocessor: %s \n"
-msgstr "preprocesor jazyka C nelze nalézt: %s \n"
+#: sunrpc/clnt_perr.c:231
+msgid "RPC: Port mapper failure"
+msgstr "RPC: Chyba portmapperu"
-#: sunrpc/rpc_main.c:349
-msgid "cannot find any C preprocessor (cpp)\n"
-msgstr "¾ádný preprocesor jazyka C (cpp) nelze nalézt\n"
+#: sunrpc/clnt_perr.c:235
+msgid "RPC: Program not registered"
+msgstr "RPC: Program není registrován"
-#: nscd/connections.c:224
-#, c-format
-msgid "cannot handle old request version %d; current version is %d"
-msgstr "¾ádost staré verze (%d) nelze zpracovat; aktuální verze je %d"
+#: sunrpc/clnt_perr.c:239
+msgid "RPC: Failed (unspecified error)"
+msgstr "RPC: Chyba (blíže neurÄená)"
-#: locale/programs/ld-collate.c:1328
-#, c-format
-msgid "cannot insert collation element `%.*s'"
-msgstr "prvek øazení `%.*s' nelze vlo¾it"
+#: sunrpc/clnt_perr.c:280
+msgid "RPC: (unknown error code)"
+msgstr "RPC: (neznámý chybový kód)"
-#: locale/programs/ld-collate.c:1507 locale/programs/ld-collate.c:1514
-msgid "cannot insert into result table"
-msgstr "do výsledné tabulky nelze vkládat"
+#: sunrpc/clnt_perr.c:342
+msgid "Authentication OK"
+msgstr "Ověření totožnosti bylo úspěšné"
-#: locale/programs/ld-collate.c:1179 locale/programs/ld-collate.c:1222
-#, c-format
-msgid "cannot insert new collating symbol definition: %s"
-msgstr "nový symbol øazení nelze vlo¾it: %s"
+#: sunrpc/clnt_perr.c:345
+msgid "Invalid client credential"
+msgstr "Neplatné oprávnění klienta"
-#: elf/sprof.c:670
-msgid "cannot load profiling data"
-msgstr "profilovací data nelze naèíst"
+#: sunrpc/clnt_perr.c:349
+msgid "Server rejected credential"
+msgstr "Server odmítl oprávnění"
-#: inet/rcmd.c:322
-msgid "cannot open"
-msgstr "nelze otevøít"
+# Chybný ověřovaÄ klienta
+#: sunrpc/clnt_perr.c:353
+msgid "Invalid client verifier"
+msgstr "Neplatné ověření klienta"
-#: sysdeps/unix/sysv/linux/lddlibc4.c:64
-#, c-format
-msgid "cannot open `%s'"
-msgstr "`%s' nelze otevøít"
+# Server odmítl ověřovaÄe
+#: sunrpc/clnt_perr.c:357
+msgid "Server rejected verifier"
+msgstr "Server odmítl ověření"
-#: db2/makedb.c:146
-#, c-format
-msgid "cannot open database file `%s': %s"
-msgstr "databázový soubor `%s' nelze otevøít: %s"
+#: sunrpc/clnt_perr.c:361
+msgid "Client credential too weak"
+msgstr "OprávnÄ›ní klienta je nepostaÄující"
-#: catgets/gencat.c:273 db2/makedb.c:167 iconv/iconv_prog.c:177
-#, c-format
-msgid "cannot open input file `%s'"
-msgstr "vstupní soubor `%s' nelze otevøít"
+# Chybný ověřovaÄ serveru
+#: sunrpc/clnt_perr.c:365
+msgid "Invalid server verifier"
+msgstr "Neplatné ověření serveru"
-#: locale/programs/localedef.c:195
-#, c-format
-msgid "cannot open locale definition file `%s'"
-msgstr "soubor `%s' definice národního prostøedí nelze otevøít"
+#: sunrpc/clnt_perr.c:369
+msgid "Failed (unspecified error)"
+msgstr "Chyba (blíže nespecifikovaná)"
-#: iconv/iconv_prog.c:155
-msgid "cannot open output file"
-msgstr "výstupní soubor nelze otevøít"
+#: sunrpc/clnt_raw.c:117
+msgid "clnt_raw.c: fatal header serialization error"
+msgstr "clnt_raw.c: fatální chyba pÅ™i serializaci hlaviÄky."
-#: catgets/gencat.c:780 catgets/gencat.c:821 db2/makedb.c:181
-#, c-format
-msgid "cannot open output file `%s'"
-msgstr "výstupní soubor `%s' nelze otevøít"
+#: sunrpc/clnt_tcp.c:131
+msgid "clnttcp_create: out of memory\n"
+msgstr "clnttcp_create: nedostatek paměti\n"
-#: locale/programs/locfile.c:1135
-#, c-format
-msgid "cannot open output file `%s' for category `%s'"
-msgstr "výstupní soubor `%s' pro kategorii `%s' nelze otevøít"
+#: sunrpc/clnt_udp.c:139
+msgid "clntudp_create: out of memory\n"
+msgstr "clntudp_create: nedostatek paměti\n"
-#: nscd/connections.c:165
-#, c-format
-msgid "cannot open socket: %s"
-msgstr "soket nelze otevøít: %s"
+#: sunrpc/clnt_unix.c:128
+msgid "clntunix_create: out of memory\n"
+msgstr "clntunix_create: nedostatek paměti\n"
-# s/z
-#: locale/programs/ld-collate.c:1374
-msgid "cannot process order specification"
-msgstr "zadané poøadí øazení nelze zpracovat"
+#: sunrpc/pm_getmaps.c:83
+msgid "pmap_getmaps.c: rpc problem"
+msgstr "pmap_getmaps.c: problém s RPC"
-#: locale/programs/locale.c:449
-#, c-format
-msgid "cannot read character map directory `%s'"
-msgstr "adresáø `%s' znakových sad nelze naèíst"
+#: sunrpc/pmap_clnt.c:129
+msgid "Cannot register service"
+msgstr "Službu nelze registrovat"
-#: nscd/connections.c:125
-msgid "cannot read configuration file; this is fatal"
-msgstr "konfiguraèní soubor nelze naèíst (fatální)"
+#: sunrpc/pmap_rmt.c:248
+msgid "Cannot create socket for broadcast rpc"
+msgstr "Soket pro všesměrové rpc vysílání nelze vytvořit"
-#: login/programs/request.c:91
-msgid "cannot read from client"
-msgstr "od klienta nelze èíst"
+#: sunrpc/pmap_rmt.c:255
+msgid "Cannot set socket option SO_BROADCAST"
+msgstr "Volbu SO_BROADCAST pro soket nelze nastavit"
-#: sysdeps/unix/sysv/linux/lddlibc4.c:68
+#: sunrpc/pmap_rmt.c:307
+msgid "Cannot send broadcast packet"
+msgstr "Všesměrový paket nelze poslat"
+
+#: sunrpc/pmap_rmt.c:332
+msgid "Broadcast poll problem"
+msgstr "Problém při volání poll pro všesměrové vysílání"
+
+#: sunrpc/pmap_rmt.c:345
+msgid "Cannot receive reply to broadcast"
+msgstr "OdpovÄ›Ä na vÅ¡esmÄ›rové vysílání nepÅ™iÅ¡la"
+
+#: sunrpc/rpc_main.c:286
#, c-format
-msgid "cannot read header from `%s'"
-msgstr "hlavièku ze souboru `%s' nelze pøeèíst"
+msgid "%s: output would overwrite %s\n"
+msgstr "%s: výstup by přepsal %s\n"
-#: locale/programs/locale.c:306
+#: sunrpc/rpc_main.c:293
#, c-format
-msgid "cannot read locale directory `%s'"
-msgstr "adresáø `%s' národních prostøedí nelze naèíst"
+msgid "%s: unable to open %s: %m\n"
+msgstr "%s: %s nelze otevřít: %m\n"
-#: locale/programs/localedef.c:300
+#: sunrpc/rpc_main.c:305
#, c-format
-msgid "cannot read locale file `%s'"
-msgstr "soubor `%s' národního prostøedí nelze èíst"
+msgid "%s: while writing output %s: %m"
+msgstr "%s: během zápisu do %s: %m"
-#: locale/programs/locfile.c:289 locale/programs/locfile.c:308
-#: locale/programs/locfile.c:327 locale/programs/locfile.c:346
-#: locale/programs/locfile.c:365 locale/programs/locfile.c:384
+#: sunrpc/rpc_main.c:340
#, c-format
-msgid "cannot read repertoire map `%s'"
-msgstr "repertoár znakù `%s' nelze èíst"
+msgid "cannot find C preprocessor: %s \n"
+msgstr "preprocesor jazyka C nelze nalézt: %s \n"
-#: nscd/nscd_stat.c:127
-msgid "cannot read statistics data"
-msgstr "statistické údaje nelze naèíst"
+#: sunrpc/rpc_main.c:348
+msgid "cannot find any C preprocessor (cpp)\n"
+msgstr "žádný preprocesor jazyka C (cpp) nelze nalézt\n"
-#: nscd/cache.c:150 nscd/connections.c:151
+#: sunrpc/rpc_main.c:417
#, c-format
-msgid "cannot stat() file `%s': %s"
-msgstr "stat() nelze na soubor `%s' vykonat stat(): %s"
+msgid "%s: C preprocessor failed with signal %d\n"
+msgstr "%s: preprocesor jazyka C ukonÄen signálem %d\n"
-#: locale/programs/localedef.c:325
+#: sunrpc/rpc_main.c:420
#, c-format
-msgid "cannot write output files to `%s'"
-msgstr "výstupní soubory nelze do `%s' zapsat"
+msgid "%s: C preprocessor failed with exit code %d\n"
+msgstr "%s: preprocesor jazyka C skonÄil s výstupním kódem %d\n"
-#: nscd/connections.c:260 nscd/connections.c:281
+#: sunrpc/rpc_main.c:460
#, c-format
-msgid "cannot write result: %s"
-msgstr "výsledek nelze zapsat: %s"
+msgid "illegal nettype: `%s'\n"
+msgstr "nepovolený nettype: „%s“\n"
-#: nscd/nscd_stat.c:86
+#: sunrpc/rpc_main.c:1122
#, c-format
-msgid "cannot write statistics: %s"
-msgstr "statistiku nelze zapsat: %s"
+msgid "rpcgen: too many defines\n"
+msgstr "rpcgen: příliš mnoho definic\n"
-#: login/programs/request.c:120
-msgid "cannot write to client"
-msgstr "ke klientovi nelze zapisovat"
+#: sunrpc/rpc_main.c:1134
+#, c-format
+msgid "rpcgen: arglist coding error\n"
+msgstr "rpcgen: chyba při vkládání do seznamu argumentů\n"
-#: locale/programs/localedef.c:439
-msgid "category data requested more than once: should not happen"
-msgstr "údaje kategorie po¾adovány více ne¾ jednou - to by se nemìlo stát"
+#. TRANS: the file will not be removed; this is an
+#. TRANS: informative message.
+#: sunrpc/rpc_main.c:1167
+#, c-format
+msgid "file `%s' already exists and may be overwritten\n"
+msgstr "soubor „%s“ již existuje a může být přepsán\n"
-#: locale/programs/ld-ctype.c:278
+#: sunrpc/rpc_main.c:1212
#, c-format
-msgid "character '%s' in class `%s' must be in class `%s'"
-msgstr "znak '%s' ve tøídì `%s' musí být ve tøídì `%s'"
+msgid "Cannot specify more than one input file!\n"
+msgstr "Více než jeden vstupní soubor nelze zadat!\n"
+
+#: sunrpc/rpc_main.c:1382
+msgid "This implementation doesn't support newstyle or MT-safe code!\n"
+msgstr "Tato implementace nepodporuje nový MT-bezpeÄný kód!\n"
-#: locale/programs/ld-ctype.c:303
+#: sunrpc/rpc_main.c:1391
#, c-format
-msgid "character '%s' in class `%s' must not be in class `%s'"
-msgstr "znak '%s' ve tøídì `%s' nesmí být ve tøídì `%s'"
+msgid "Cannot use netid flag with inetd flag!\n"
+msgstr "Příznaky netid a inetd nelze použít souÄasnÄ›!\n"
-#: locale/programs/ld-ctype.c:405
-msgid "character <SP> not defined in character map"
-msgstr "znak <SP> není ve znakové sadì definován"
+#: sunrpc/rpc_main.c:1403
+msgid "Cannot use netid flag without TIRPC!\n"
+msgstr "Příznak netid nelze bez TIRPC použít!\n"
-#: locale/programs/ld-ctype.c:355
+#: sunrpc/rpc_main.c:1410
+msgid "Cannot use table flags with newstyle!\n"
+msgstr "Při použití nového stylu nelze příznaky tabulky použít!\n"
+
+#: sunrpc/rpc_main.c:1429
#, c-format
-msgid "character L'%s' (index %Zd) in class `%s' must be in class `%s'"
-msgstr "znak L'%s' (index %Zd) ve tøídì `%s' musí být ve tøídì `%s'"
+msgid "\"infile\" is required for template generation flags.\n"
+msgstr "„vst_soubor“ je vyžadován při použití příznaků tvorby vzoru.\n"
-#: locale/programs/ld-ctype.c:380
+#: sunrpc/rpc_main.c:1434
#, c-format
-msgid "character L'%s' (index %Zd) in class `%s' must not be in class `%s'"
-msgstr "znak L'%s' (index %Zd) ve tøídì `%s' nesmí být ve tøídì `%s'"
+msgid "Cannot have more than one file generation flag!\n"
+msgstr "Více než jeden příznak tvorby souboru nelze použít!\n"
-#: locale/programs/ld-ctype.c:1107 locale/programs/ld-ctype.c:1183
-#: locale/programs/ld-ctype.c:1196 locale/programs/ld-ctype.c:1209
-#: locale/programs/ld-ctype.c:1222 locale/programs/ld-ctype.c:1235
-#: locale/programs/ld-ctype.c:1248 locale/programs/ld-ctype.c:1279
-#: locale/programs/ld-ctype.c:1292 locale/programs/ld-ctype.c:1343
-#: locale/programs/ld-ctype.c:1374 locale/programs/ld-ctype.c:1386
+#: sunrpc/rpc_main.c:1443
#, c-format
-msgid "character `%s' not defined while needed as default value"
-msgstr "znak `%s', potøebný jako implicitní hodnota, není definován"
+msgid "usage: %s infile\n"
+msgstr "Použití: %s vstupní_soubor\n"
-#: locale/programs/ld-ctype.c:967
+#: sunrpc/rpc_main.c:1444
#, c-format
-msgid "character class `%s' already defined"
-msgstr "tøída znakù `%s' ji¾ je definována"
+msgid "\t%s [-abkCLNTM][-Dname[=value]] [-i size] [-I [-K seconds]] [-Y path] infile\n"
+msgstr ""
+"\t%s [-abkCLNTM][-Dnázev[=hodnota]] [-i velikost] [-I [-K sekundy]]\n"
+" [-Y cesta] vst_soubor\n"
-#: locale/programs/ld-ctype.c:999
+#: sunrpc/rpc_main.c:1446
#, c-format
-msgid "character map `%s' already defined"
-msgstr "znaková sada `%s' ji¾ je definována"
+msgid "\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o outfile] [infile]\n"
+msgstr ""
+"\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o výst_soubor]\n"
+" [vst_soubor]\n"
-#: locale/programs/charmap.c:83
+#: sunrpc/rpc_main.c:1448
#, c-format
-msgid "character map file `%s' not found"
-msgstr "soubor `%s' znakové sady nebyl nalezen"
+msgid "\t%s [-s nettype]* [-o outfile] [infile]\n"
+msgstr "\t%s [-s nettype]* [-o výst_soubor] [vst_soubor]\n"
-#: sunrpc/clnt_raw.c:110
-msgid "clnt_raw.c - Fatal header serialization error."
-msgstr "clnt_raw.c - Fatální chyba pøi serializaci hlavièky."
+#: sunrpc/rpc_main.c:1449
+#, c-format
+msgid "\t%s [-n netid]* [-o outfile] [infile]\n"
+msgstr "\t%s [-n netid]* [-o výst_soubor] [vst_soubor]\n"
-#: sunrpc/clnt_tcp.c:125 sunrpc/clnt_tcp.c:133
-msgid "clnttcp_create: out of memory\n"
-msgstr "clnttcp_create: nedostatek pamìti\n"
+#: sunrpc/rpc_scan.c:114
+msgid "constant or identifier expected"
+msgstr "oÄekávána konstanta nebo identifikátor"
-#: sunrpc/clnt_udp.c:125 sunrpc/clnt_udp.c:135
-msgid "clntudp_create: out of memory\n"
-msgstr "clntudp_create: nedostatek pamìti\n"
+#: sunrpc/rpc_scan.c:310
+msgid "illegal character in file: "
+msgstr "nepovolený znak v souboru: "
-#: sunrpc/clnt_unix.c:123 sunrpc/clnt_unix.c:131
-msgid "clntunix_create: out of memory\n"
-msgstr "clntunix_create: nedostatek pamìti\n"
+# neukonÄená Å™etÄ›zcová konstanta
+#: sunrpc/rpc_scan.c:349 sunrpc/rpc_scan.c:375
+msgid "unterminated string constant"
+msgstr "neukonÄený Å™etÄ›zec"
-#: locale/programs/ld-collate.c:1343
-#, c-format
-msgid "collation element `%.*s' appears more than once: ignore line"
-msgstr "prvek øazení `%.*s' uveden více ne¾ jednou - øádek ignorován"
+#: sunrpc/rpc_scan.c:381
+msgid "empty char string"
+msgstr "prázdný znakový řetězec"
+
+#: sunrpc/rpc_scan.c:523 sunrpc/rpc_scan.c:533
+msgid "preprocessor error"
+msgstr "chyba preprocesoru"
-#: locale/programs/ld-collate.c:1361
+#: sunrpc/rpcinfo.c:237 sunrpc/rpcinfo.c:383
#, c-format
-msgid "collation symbol `%.*s' appears more than once: ignore line"
-msgstr "symbol øazení `%.*s' uveden více ne¾ jednou - øádek ignorován"
+msgid "program %lu is not available\n"
+msgstr "program %lu není dostupný\n"
-#: locale/programs/locfile.c:658
+#: sunrpc/rpcinfo.c:264 sunrpc/rpcinfo.c:310 sunrpc/rpcinfo.c:333
+#: sunrpc/rpcinfo.c:407 sunrpc/rpcinfo.c:453 sunrpc/rpcinfo.c:476
+#: sunrpc/rpcinfo.c:510
#, c-format
-msgid "collation symbol expected after `%s'"
-msgstr "po `%s' je oèekáván symbol øazení"
+msgid "program %lu version %lu is not available\n"
+msgstr "program %lu verze %lu není dostupný\n"
-# pøipojen na adresu %s:
-# spojení s adresou %s:
-#: inet/rcmd.c:143
+#: sunrpc/rpcinfo.c:515
#, c-format
-msgid "connect to address %s: "
-msgstr "pøipojení na adresou %s: "
+msgid "program %lu version %lu ready and waiting\n"
+msgstr "program %lu verze %lu je pÅ™ipraven a Äeká\n"
-#: sunrpc/rpc_scan.c:115
-msgid "constant or identifier expected"
-msgstr "oèekávána konstanta nebo identifikátor"
+#: sunrpc/rpcinfo.c:556 sunrpc/rpcinfo.c:563
+msgid "rpcinfo: can't contact portmapper"
+msgstr "rpcinfo: s portmapperem se nelze spojit"
-#: iconv/iconv_prog.c:144
-#, c-format
-msgid "conversion from `%s' to `%s' not supported"
-msgstr "konverze z `%s' do `%s' není podporována"
+#: sunrpc/rpcinfo.c:570
+msgid "No remote programs registered.\n"
+msgstr "Žádné vzdálené programy nejsou registrovány.\n"
-#: iconv/iconv_prog.c:328 iconv/iconv_prog.c:353
-msgid "conversion stopped due to problem in writing the output"
-msgstr "konverze zastavena kvùli problému pøi zápisu výstupu"
+#: sunrpc/rpcinfo.c:574
+msgid " program vers proto port\n"
+msgstr " program verz proto port\n"
-#: sunrpc/svc_simple.c:83
-msgid "couldn't create an rpc server\n"
-msgstr "rpc server nebylo mo¾no vytvoøit\n"
+# Vypisováno následovně:
+# IP-adresa jméno_stroje
+#: sunrpc/rpcinfo.c:613
+msgid "(unknown)"
+msgstr "(?)"
-#: sunrpc/svc_simple.c:91
+#: sunrpc/rpcinfo.c:637
#, c-format
-msgid "couldn't register prog %d vers %d\n"
-msgstr "program %d verze %d nebylo mo¾no zaregistrovat\n"
+msgid "rpcinfo: broadcast failed: %s\n"
+msgstr "rpcinfo: všesměrové vysílání nebylo úspěšné: %s\n"
-#: nss/getent.c:50
-msgid "database [key ...]"
-msgstr "databáze [klíè ...]"
+#: sunrpc/rpcinfo.c:658
+msgid "Sorry. You are not root\n"
+msgstr "Lituji, nejste superuživatel\n"
-#: locale/programs/charmap.c:170
+#: sunrpc/rpcinfo.c:665
#, c-format
-msgid "default character map file `%s' not found"
-msgstr "implicitní soubor `%s' znakové sady nebyl nalezen"
+msgid "rpcinfo: Could not delete registration for prog %s version %s\n"
+msgstr "rpcinfo: Registraci programu %s verze %s nelze zrušit\n"
-#: locale/programs/ld-time.c:163
+#: sunrpc/rpcinfo.c:674
+msgid "Usage: rpcinfo [ -n portnum ] -u host prognum [ versnum ]\n"
+msgstr "Použití: rpcinfo [ -n Äíslo_portu ] -u poÄítaÄ Äíslo_programu [ Äíslo_verze ]\n"
+
+#: sunrpc/rpcinfo.c:676
+msgid " rpcinfo [ -n portnum ] -t host prognum [ versnum ]\n"
+msgstr " rpcinfo [ -n Äíslo_portu ] -t poÄítaÄ Äíslo_programu [ Äíslo_verze ]\n"
+
+#: sunrpc/rpcinfo.c:678
+msgid " rpcinfo -p [ host ]\n"
+msgstr " rpcinfo -p [ poÄítaÄ ]\n"
+
+#: sunrpc/rpcinfo.c:679
+msgid " rpcinfo -b prognum versnum\n"
+msgstr " rpcinfo -b Äíslo_programu Äíslo_verze\n"
+
+#: sunrpc/rpcinfo.c:680
+msgid " rpcinfo -d prognum versnum\n"
+msgstr " rpcinfo -d Äíslo_programu Äíslo_verze\n"
+
+#: sunrpc/rpcinfo.c:695
#, c-format
-msgid "direction flag in string %d in `era' field in category `%s' is not '+' nor '-'"
-msgstr "pøíznak smìru v øetìzci (%d) polo¾ky `era' v kategorii `%s' není '+' ani '-'"
+msgid "rpcinfo: %s is unknown service\n"
+msgstr "rpcinfo: %s je neznámá služba\n"
-#: locale/programs/ld-time.c:174
+#: sunrpc/rpcinfo.c:732
#, c-format
-msgid "direction flag in string %d in `era' field in category `%s' is not a single character"
-msgstr "pøíznak smìru v øetìzci (%d) polo¾ky `era' v kategorii `%s' není jednoznakový"
+msgid "rpcinfo: %s is unknown host\n"
+msgstr "rpcinfo: %s je neznámý poÄítaÄ\n"
-#: locale/programs/charset.c:64 locale/programs/charset.c:118
+#: sunrpc/svc_run.c:70
+msgid "svc_run: - out of memory"
+msgstr "svc_run: – nedostatek paměti"
+
+#: sunrpc/svc_run.c:90
+msgid "svc_run: - poll failed"
+msgstr "svc_run: služba poll selhala"
+
+#: sunrpc/svc_simple.c:87
#, c-format
-msgid "duplicate character name `%s'"
-msgstr "duplicitní název znaku `%s'"
+msgid "can't reassign procedure number %ld\n"
+msgstr "Äíslo procedury %ld nelze znovu pÅ™idÄ›lit\n"
-#: locale/programs/ld-collate.c:1154
-msgid "duplicate collating element definition"
-msgstr "duplicitní definice prvku øazení"
+#: sunrpc/svc_simple.c:97
+msgid "couldn't create an rpc server\n"
+msgstr "rpc server nebylo možno vytvořit\n"
-#: locale/programs/ld-collate.c:1301
+#: sunrpc/svc_simple.c:105
#, c-format
-msgid "duplicate definition for character `%.*s'"
-msgstr "duplicitní definice znaku `%.*s'"
+msgid "couldn't register prog %ld vers %ld\n"
+msgstr "program %ld verze %ld nebylo možno zaregistrovat\n"
-#: db2/makedb.c:328
-msgid "duplicate key"
-msgstr "duplicitní klíè"
+#: sunrpc/svc_simple.c:113
+msgid "registerrpc: out of memory\n"
+msgstr "registerrpc: nedostatek paměti\n"
-#: catgets/gencat.c:389
-msgid "duplicate set definition"
-msgstr "duplicitní definice sady"
+#: sunrpc/svc_simple.c:173
+#, c-format
+msgid "trouble replying to prog %d\n"
+msgstr "problémy při odpovídání programu %d\n"
-#: timezone/zic.c:1004
+# nikdy neregistrovaný program (%d)
+#: sunrpc/svc_simple.c:182
#, c-format
-msgid "duplicate zone name %s (file \"%s\", line %d)"
-msgstr "duplicitní oznaèení èasového pásma %s (soubor \"%s\", øádek %d)"
+msgid "never registered prog %d\n"
+msgstr "dosud neregistrovaný program (%d)\n"
-#: catgets/gencat.c:556
-msgid "duplicated message identifier"
-msgstr "duplicitní identifikátor zprávy"
+#: sunrpc/svc_tcp.c:155
+msgid "svc_tcp.c - tcp socket creation problem"
+msgstr "svc_tcp.c –  při vytváření tcp soketu vznikla chyba"
-#: catgets/gencat.c:528
-msgid "duplicated message number"
-msgstr "duplicitní èíslo zprávy"
+#: sunrpc/svc_tcp.c:170
+msgid "svc_tcp.c - cannot getsockname or listen"
+msgstr "svc_tcp.c – při getsockname nebo listen vznikla chyba"
-#: sunrpc/rpc_scan.c:382
-msgid "empty char string"
-msgstr "prázdný znakový øetìzec"
+#: sunrpc/svc_tcp.c:179
+msgid "svctcp_create: out of memory\n"
+msgstr "svctcp_create: nedostatek paměti\n"
+
+#: sunrpc/svc_tcp.c:218
+msgid "svc_tcp: makefd_xprt: out of memory\n"
+msgstr "svc_tcp: makefd_xprt: nedostatek paměti\n"
+
+#: sunrpc/svc_udp.c:128
+msgid "svcudp_create: socket creation problem"
+msgstr "svcudp_create: soket nelze vytvořit"
+
+#: sunrpc/svc_udp.c:142
+msgid "svcudp_create - cannot getsockname"
+msgstr "svcudp_create - při getsockname vznikla chyba"
-# prázdné jméno váhy - øádek ignorován
-#: locale/programs/ld-collate.c:1714
-msgid "empty weight name: line ignored"
-msgstr "prázdný váhový název - øádek ignorován"
+#: sunrpc/svc_udp.c:152
+msgid "svcudp_create: out of memory\n"
+msgstr "svcudp_create: nedostatek paměti\n"
-#: sunrpc/svc_udp.c:372
+#: sunrpc/svc_udp.c:174
+msgid "svcudp_create: xp_pad is too small for IP_PKTINFO\n"
+msgstr "svcudp_create: xp_pad je pro IP_PKTINFO příliš malý\n"
+
+#: sunrpc/svc_udp.c:474
msgid "enablecache: cache already enabled"
-msgstr "enablecache: cache ji¾ je povolena"
+msgstr "enablecache: cache již je povolena"
-#: sunrpc/svc_udp.c:378
+#: sunrpc/svc_udp.c:480
msgid "enablecache: could not allocate cache"
-msgstr "enablecache: cache nebylo mo¾no alokovat"
+msgstr "enablecache: cache nebylo možno alokovat"
-#: sunrpc/svc_udp.c:386
+#: sunrpc/svc_udp.c:489
msgid "enablecache: could not allocate cache data"
-msgstr "enablecache: nebylo mo¾no alokovat místo pro data v cache"
+msgstr "enablecache: nebylo možno alokovat místo pro data v cache"
-#: sunrpc/svc_udp.c:393
+#: sunrpc/svc_udp.c:497
msgid "enablecache: could not allocate cache fifo"
-msgstr "enablecache: nebylo mo¾no alokovat frontu pro cache"
+msgstr "enablecache: nebylo možno alokovat frontu pro cache"
-#: iconv/iconv_prog.c:56
-msgid "encoding for output"
-msgstr "výstupní kódování"
+#: sunrpc/svc_udp.c:532
+msgid "cache_set: victim not found"
+msgstr "cache_set: oběť nenalezena"
-#: iconv/iconv_prog.c:55
-msgid "encoding of original text"
-msgstr "kódování vstupního textu"
+#: sunrpc/svc_udp.c:543
+msgid "cache_set: victim alloc failed"
+msgstr "cache_set: alokace nové položky cache se nezdařila"
-#: locale/programs/ld-collate.c:1433
-msgid "end point of ellipsis range is bigger then start"
-msgstr "koncový bod `...' je vìt¹í ne¾ poèáteèní"
+#: sunrpc/svc_udp.c:550
+msgid "cache_set: could not allocate new rpc_buffer"
+msgstr "cache_set: nešlo alokovat vyrovnávací paměť pro rpc"
-#: nscd/connections.c:357 nscd/connections.c:444
-#, c-format
-msgid "error getting caller's id: %s"
-msgstr "chyba pøi zji¹»ování id volajícího: %s"
+#: sunrpc/svc_unix.c:150
+msgid "svc_unix.c - AF_UNIX socket creation problem"
+msgstr "svc_unix.c – při vytváření AF_UNIX soketu vznikla chyba"
-#: iconv/iconv_prog.c:193
-#, c-format
-msgid "error while closing input `%s'"
-msgstr "chyba bìhem uzavírání vstupu `%s'"
+#: sunrpc/svc_unix.c:166
+msgid "svc_unix.c - cannot getsockname or listen"
+msgstr "svc_unix.c – při getsockname nebo listen vznikla chyba"
-#: iconv/iconv_prog.c:239
-msgid "error while closing output file"
-msgstr "chyba bìhem uzavírání výstupního souboru"
+#: sunrpc/svc_unix.c:176
+msgid "svcunix_create: out of memory\n"
+msgstr "svcunix_create: nedostatek paměti\n"
-#: elf/sprof.c:706
-msgid "error while closing the profiling data file"
-msgstr "chyba bìhem uzavírání souboru profilovacích dat"
+#: sunrpc/svc_unix.c:215
+msgid "svc_unix: makefd_xprt: out of memory\n"
+msgstr "svc_unix: makefd_xprt: nedostatek paměti\n"
-#: locale/programs/ld-collate.c:1162
-msgid "error while inserting collation element into hash table"
-msgstr "chyba bìhem vkládání prvku øazení do ha¹ovací tabulky"
+#: sunrpc/xdr.c:566
+msgid "xdr_bytes: out of memory\n"
+msgstr "xdr_bytes: nedostatek paměti\n"
-#: locale/programs/ld-collate.c:1174
-msgid "error while inserting to hash table"
-msgstr "chyba bìhem vkládání do hashovací tabulky"
+#: sunrpc/xdr.c:718
+msgid "xdr_string: out of memory\n"
+msgstr "xdr_string: nedostatek paměti\n"
-#: iconv/iconv_prog.c:417 iconv/iconv_prog.c:448
-msgid "error while reading the input"
-msgstr "chyba bìhem ètení vstupu"
+#: sunrpc/xdr_array.c:106
+msgid "xdr_array: out of memory\n"
+msgstr "xdr_array: nedostatek paměti\n"
-#: locale/programs/locfile.c:601
-msgid "expect string argument for `copy'"
-msgstr "jako argument pro `copy' oèekáván øetìzec"
+#: sunrpc/xdr_rec.c:156
+msgid "xdrrec_create: out of memory\n"
+msgstr "xdrrec_create: nedostatek paměti\n"
-#: timezone/zic.c:894
-msgid "expected continuation line not found"
-msgstr "oèekávaný pokraèovací øádek nebyl nalezen"
+#: sunrpc/xdr_ref.c:86
+msgid "xdr_reference: out of memory\n"
+msgstr "xdr_reference: nedostatek paměti\n"
-#: elf/sprof.c:404
-#, c-format
-msgid "failed to load shared object `%s'"
-msgstr "sdílený objekt `%s' se nepodaøilo zavést"
+#: sysdeps/generic/siglist.h:29 sysdeps/unix/siglist.c:27
+msgid "Hangup"
+msgstr "Odpojen terminál (SIGHUP)"
-#: elf/sprof.c:600
-msgid "failed to load symbol data"
-msgstr "data symbolù se nepodaøila naèíst"
+#: sysdeps/generic/siglist.h:30 sysdeps/unix/siglist.c:28
+msgid "Interrupt"
+msgstr "Přerušení (SIGINT)"
-#: elf/sprof.c:698
-msgid "failed to mmap the profiling data file"
-msgstr "soubor profilovacích dat se nepodaøilo mmap-ovat"
+#: sysdeps/generic/siglist.h:31 sysdeps/unix/siglist.c:29
+msgid "Quit"
+msgstr "Konec (SIGQUIT)"
-#: iconv/iconv_prog.c:147
-msgid "failed to start conversion processing"
-msgstr "konverze se nezdaøila"
+#: sysdeps/generic/siglist.h:32 sysdeps/unix/siglist.c:30
+msgid "Illegal instruction"
+msgstr "Nedovolená instrukce (SIGILL)"
+
+#: sysdeps/generic/siglist.h:33 sysdeps/unix/siglist.c:31
+msgid "Trace/breakpoint trap"
+msgstr "Trasovací/ladící past (SIGTRAP)"
+
+#: sysdeps/generic/siglist.h:34
+msgid "Aborted"
+msgstr "NeúspěšnÄ› ukonÄen (SIGABRT)"
+
+# Výjimka pohyblivé řádové Äárky?
+#: sysdeps/generic/siglist.h:35 sysdeps/unix/siglist.c:34
+msgid "Floating point exception"
+msgstr "Výjimka matematického koprocesoru (SIGFPE)"
+
+#: sysdeps/generic/siglist.h:36 sysdeps/unix/siglist.c:35
+msgid "Killed"
+msgstr "Zabit (SIGKILL)"
+
+#: sysdeps/generic/siglist.h:37 sysdeps/unix/siglist.c:36
+msgid "Bus error"
+msgstr "Chyba na sběrnici (neplatná adresa) (SIGBUS)"
+
+#: sysdeps/generic/siglist.h:38 sysdeps/unix/siglist.c:37
+msgid "Segmentation fault"
+msgstr "Neoprávněný přístup do paměti (SIGSEGV)"
+
+#. TRANS Broken pipe; there is no process reading from the other end of a pipe.
+#. TRANS Every library function that returns this error code also generates a
+#. TRANS @code{SIGPIPE} signal; this signal terminates the program if not handled
+#. TRANS or blocked. Thus, your program will never actually see @code{EPIPE}
+#. TRANS unless it has handled or blocked @code{SIGPIPE}.
+#: sysdeps/generic/siglist.h:39 sysdeps/gnu/errlist.c:359
+#: sysdeps/unix/siglist.c:39
+msgid "Broken pipe"
+msgstr "Přerušena roura (SIGPIPE)"
+
+#: sysdeps/generic/siglist.h:40 sysdeps/unix/siglist.c:40
+msgid "Alarm clock"
+msgstr "Budík (SIGALRM)"
+
+#: sysdeps/generic/siglist.h:41 sysdeps/unix/siglist.c:41
+msgid "Terminated"
+msgstr "UkonÄen (SIGTERM)"
+
+# Urgentní stav V/V?
+#: sysdeps/generic/siglist.h:42 sysdeps/unix/siglist.c:42
+msgid "Urgent I/O condition"
+msgstr "Naléhavá V/V situace (SIGURG)"
+
+#: sysdeps/generic/siglist.h:43 sysdeps/unix/siglist.c:43
+msgid "Stopped (signal)"
+msgstr "Pozastaven (SIGSTOP)"
+
+#: sysdeps/generic/siglist.h:44 sysdeps/unix/siglist.c:44
+msgid "Stopped"
+msgstr "Pozastaven (SIGTSTP)"
+
+#: sysdeps/generic/siglist.h:45 sysdeps/unix/siglist.c:45
+msgid "Continued"
+msgstr "Je pokraÄováno (SIGCONT)"
+
+#: sysdeps/generic/siglist.h:46 sysdeps/unix/siglist.c:46
+msgid "Child exited"
+msgstr "Potomek skonÄil (SIGCHLD)"
+
+#: sysdeps/generic/siglist.h:47 sysdeps/unix/siglist.c:47
+msgid "Stopped (tty input)"
+msgstr "Pozastaven (tty input) (SIGTTIN)"
+
+#: sysdeps/generic/siglist.h:48 sysdeps/unix/siglist.c:48
+msgid "Stopped (tty output)"
+msgstr "Pozastaven (tty output) (SIGTTOU)"
+
+#: sysdeps/generic/siglist.h:49 sysdeps/unix/siglist.c:49
+msgid "I/O possible"
+msgstr "Vstup/Výstup možný (SIGIO)"
+
+#: sysdeps/generic/siglist.h:50 sysdeps/unix/siglist.c:50
+msgid "CPU time limit exceeded"
+msgstr "PÅ™ekroÄen Äasový limit pro procesor (SIGXCPU)"
+
+#: sysdeps/generic/siglist.h:51 sysdeps/unix/siglist.c:51
+msgid "File size limit exceeded"
+msgstr "PÅ™ekroÄen limit délky souboru (SIGXFS2)"
+
+#: sysdeps/generic/siglist.h:52 sysdeps/unix/siglist.c:52
+msgid "Virtual timer expired"
+msgstr "Virtuální ÄasovaÄ vyprÅ¡el (SIGVTALRM)"
+
+#: sysdeps/generic/siglist.h:53 sysdeps/unix/siglist.c:53
+msgid "Profiling timer expired"
+msgstr "Profilovací ÄasovaÄ vyprÅ¡el (SIGPROF)"
+
+#: sysdeps/generic/siglist.h:54 sysdeps/unix/siglist.c:54
+msgid "Window changed"
+msgstr "Okno se změnilo (SIGWINCH)"
+
+#: sysdeps/generic/siglist.h:55 sysdeps/unix/siglist.c:56
+msgid "User defined signal 1"
+msgstr "Uživatelem definovaný signál 1 (SIGUSR1)"
+
+#: sysdeps/generic/siglist.h:56 sysdeps/unix/siglist.c:57
+msgid "User defined signal 2"
+msgstr "Uživatelem definovaný signál 2 (SIGUSR2)"
+
+#: sysdeps/generic/siglist.h:60 sysdeps/unix/siglist.c:33
+msgid "EMT trap"
+msgstr "EMT past (SIGEMT)"
+
+#: sysdeps/generic/siglist.h:63 sysdeps/unix/siglist.c:38
+msgid "Bad system call"
+msgstr "Chybné volání systému (SIGSYS)"
+
+#: sysdeps/generic/siglist.h:66
+msgid "Stack fault"
+msgstr "Porušen zásobník (SIGSTKFLT)\""
+
+#: sysdeps/generic/siglist.h:69
+msgid "Information request"
+msgstr "Žádost o informaci (SIGINFO)"
+
+#: sysdeps/generic/siglist.h:71
+msgid "Power failure"
+msgstr "Výpadek napájení (SIGPWR)"
+
+#: sysdeps/generic/siglist.h:74 sysdeps/unix/siglist.c:55
+msgid "Resource lost"
+msgstr "Prostředek byl ztracen"
+
+#. TRANS Operation not permitted; only the owner of the file (or other resource)
+#. TRANS or processes with special privileges can perform the operation.
+#: sysdeps/gnu/errlist.c:25
+msgid "Operation not permitted"
+msgstr "Operace není povolena"
+
+#. TRANS No process matches the specified process ID.
+#: sysdeps/gnu/errlist.c:45
+msgid "No such process"
+msgstr "Tento proces neexistuje"
+
+#. TRANS Interrupted function call; an asynchronous signal occurred and prevented
+#. TRANS completion of the call. When this happens, you should try the call
+#. TRANS again.
+#. TRANS
+#. TRANS You can choose to have functions resume after a signal that is handled,
+#. TRANS rather than failing with @code{EINTR}; see @ref{Interrupted
+#. TRANS Primitives}.
+#: sysdeps/gnu/errlist.c:60
+msgid "Interrupted system call"
+msgstr "Přerušené volání systému"
+
+#. TRANS Input/output error; usually used for physical read or write errors.
+#: sysdeps/gnu/errlist.c:69
+msgid "Input/output error"
+msgstr "Chyba vstupu/výstupu"
+
+#. TRANS No such device or address. The system tried to use the device
+#. TRANS represented by a file you specified, and it couldn't find the device.
+#. TRANS This can mean that the device file was installed incorrectly, or that
+#. TRANS the physical device is missing or not correctly attached to the
+#. TRANS computer.
+#: sysdeps/gnu/errlist.c:82
+msgid "No such device or address"
+msgstr "Takové zařízení nebo adresa neexistuje"
+
+#. TRANS Argument list too long; used when the arguments passed to a new program
+#. TRANS being executed with one of the @code{exec} functions (@pxref{Executing a
+#. TRANS File}) occupy too much memory space. This condition never arises in the
+#. TRANS GNU system.
+#: sysdeps/gnu/errlist.c:94
+msgid "Argument list too long"
+msgstr "Příliš dlouhý seznam argumentů"
+
+#. TRANS Invalid executable file format. This condition is detected by the
+#. TRANS @code{exec} functions; see @ref{Executing a File}.
+#: sysdeps/gnu/errlist.c:104
+msgid "Exec format error"
+msgstr "Chybný formát spustitelného souboru"
+
+#. TRANS Bad file descriptor; for example, I/O on a descriptor that has been
+#. TRANS closed or reading from a descriptor open only for writing (or vice
+#. TRANS versa).
+#: sysdeps/gnu/errlist.c:115
+msgid "Bad file descriptor"
+msgstr "Chybný popisovaÄ souboru"
+
+#. TRANS There are no child processes. This error happens on operations that are
+#. TRANS supposed to manipulate child processes, when there aren't any processes
+#. TRANS to manipulate.
+#: sysdeps/gnu/errlist.c:126
+msgid "No child processes"
+msgstr "Žádný potomek neexistuje"
+
+#. TRANS Deadlock avoided; allocating a system resource would have resulted in a
+#. TRANS deadlock situation. The system does not guarantee that it will notice
+#. TRANS all such situations. This error means you got lucky and the system
+#. TRANS noticed; it might just hang. @xref{File Locks}, for an example.
+#: sysdeps/gnu/errlist.c:138
+msgid "Resource deadlock avoided"
+msgstr "Bylo zabráněno vzájemnému zablokování prostředků"
+
+#. TRANS No memory available. The system cannot allocate more virtual memory
+#. TRANS because its capacity is full.
+#: sysdeps/gnu/errlist.c:148
+msgid "Cannot allocate memory"
+msgstr "Nelze alokovat paměť"
+
+#. TRANS Bad address; an invalid pointer was detected.
+#. TRANS In the GNU system, this error never happens; you get a signal instead.
+#: sysdeps/gnu/errlist.c:167
+msgid "Bad address"
+msgstr "Chybná adresa"
+
+#. TRANS A file that isn't a block special file was given in a situation that
+#. TRANS requires one. For example, trying to mount an ordinary file as a file
+#. TRANS system in Unix gives this error.
+#: sysdeps/gnu/errlist.c:178
+msgid "Block device required"
+msgstr "Vyžadováno blokové zařízení"
+
+#. TRANS Resource busy; a system resource that can't be shared is already in use.
+#. TRANS For example, if you try to delete a file that is the root of a currently
+#. TRANS mounted filesystem, you get this error.
+#: sysdeps/gnu/errlist.c:189
+msgid "Device or resource busy"
+msgstr "Zařízení nebo zdroj jsou používány"
+
+#. TRANS File exists; an existing file was specified in a context where it only
+#. TRANS makes sense to specify a new file.
+#: sysdeps/gnu/errlist.c:199
+msgid "File exists"
+msgstr "Soubor již existuje"
+
+# Nepřípustný odkaz mezi zařízeními
+#. TRANS An attempt to make an improper link across file systems was detected.
+#. TRANS This happens not only when you use @code{link} (@pxref{Hard Links}) but
+#. TRANS also when you rename a file with @code{rename} (@pxref{Renaming Files}).
+#: sysdeps/gnu/errlist.c:210
+msgid "Invalid cross-device link"
+msgstr "Odkaz mezi zařízeními není přípustný"
+
+#. TRANS The wrong type of device was given to a function that expects a
+#. TRANS particular sort of device.
+#: sysdeps/gnu/errlist.c:220
+msgid "No such device"
+msgstr "Takové zařízení neexistuje"
+
+#. TRANS A file that isn't a directory was specified when a directory is required.
+#: sysdeps/gnu/errlist.c:229
+msgid "Not a directory"
+msgstr "není adresářem"
+
+#. TRANS File is a directory; you cannot open a directory for writing,
+#. TRANS or create or remove hard links to it.
+#: sysdeps/gnu/errlist.c:239
+msgid "Is a directory"
+msgstr "je adresářem"
+
+#. TRANS Invalid argument. This is used to indicate various kinds of problems
+#. TRANS with passing the wrong argument to a library function.
+#: sysdeps/gnu/errlist.c:249
+msgid "Invalid argument"
+msgstr "Nepřípustný argument"
+
+#. TRANS The current process has too many files open and can't open any more.
+#. TRANS Duplicate descriptors do count toward this limit.
+#. TRANS
+#. TRANS In BSD and GNU, the number of open files is controlled by a resource
+#. TRANS limit that can usually be increased. If you get this error, you might
+#. TRANS want to increase the @code{RLIMIT_NOFILE} limit or make it unlimited;
+#. TRANS @pxref{Limits on Resources}.
+#: sysdeps/gnu/errlist.c:264
+msgid "Too many open files"
+msgstr "PÅ™ekroÄen limit poÄtu otevÅ™ených souborů"
+
+#. TRANS There are too many distinct file openings in the entire system. Note
+#. TRANS that any number of linked channels count as just one file opening; see
+#. TRANS @ref{Linked Channels}. This error never occurs in the GNU system.
+#: sysdeps/gnu/errlist.c:275
+msgid "Too many open files in system"
+msgstr "V celém systému je příliš mnoho otevřených souborů"
+
+#. TRANS Inappropriate I/O control operation, such as trying to set terminal
+#. TRANS modes on an ordinary file.
+#: sysdeps/gnu/errlist.c:285
+msgid "Inappropriate ioctl for device"
+msgstr "Pro toto zařízení nevhodné ioctl"
+
+#. TRANS An attempt to execute a file that is currently open for writing, or
+#. TRANS write to a file that is currently being executed. Often using a
+#. TRANS debugger to run a program is considered having it open for writing and
+#. TRANS will cause this error. (The name stands for ``text file busy''.) This
+#. TRANS is not an error in the GNU system; the text is copied as necessary.
+#: sysdeps/gnu/errlist.c:298
+msgid "Text file busy"
+msgstr "Soubor je používán"
+
+#. TRANS File too big; the size of a file would be larger than allowed by the system.
+#: sysdeps/gnu/errlist.c:307
+msgid "File too large"
+msgstr "Soubor je příliš velký"
+
+#. TRANS No space left on device; write operation on a file failed because the
+#. TRANS disk is full.
+#: sysdeps/gnu/errlist.c:317
+msgid "No space left on device"
+msgstr "Na zařízení není volné místo"
+
+#. TRANS Invalid seek operation (such as on a pipe).
+#: sysdeps/gnu/errlist.c:326
+msgid "Illegal seek"
+msgstr "Nedovolené nastavení pozice"
+
+#. TRANS An attempt was made to modify something on a read-only file system.
+#: sysdeps/gnu/errlist.c:335
+msgid "Read-only file system"
+msgstr "Systém souborů je pouze pro Ätení"
+
+#. TRANS Too many links; the link count of a single file would become too large.
+#. TRANS @code{rename} can cause this error if the file being renamed already has
+#. TRANS as many links as it can take (@pxref{Renaming Files}).
+#: sysdeps/gnu/errlist.c:346
+msgid "Too many links"
+msgstr "Příliš mnoho odkazů"
+
+#. TRANS Domain error; used by mathematical functions when an argument value does
+#. TRANS not fall into the domain over which the function is defined.
+#: sysdeps/gnu/errlist.c:369
+msgid "Numerical argument out of domain"
+msgstr "Číselný rozsah mimo definiÄní obor funkce"
+
+#. TRANS Range error; used by mathematical functions when the result value is
+#. TRANS not representable because of overflow or underflow.
+#: sysdeps/gnu/errlist.c:379
+msgid "Numerical result out of range"
+msgstr "Číselný výsledek mimo rozsah"
+
+#. TRANS Resource temporarily unavailable; the call might work if you try again
+#. TRANS later. The macro @code{EWOULDBLOCK} is another name for @code{EAGAIN};
+#. TRANS they are always the same in the GNU C library.
+#. TRANS
+#. TRANS This error can happen in a few different situations:
+#. TRANS
+#. TRANS @itemize @bullet
+#. TRANS @item
+#. TRANS An operation that would block was attempted on an object that has
+#. TRANS non-blocking mode selected. Trying the same operation again will block
+#. TRANS until some external condition makes it possible to read, write, or
+#. TRANS connect (whatever the operation). You can use @code{select} to find out
+#. TRANS when the operation will be possible; @pxref{Waiting for I/O}.
+#. TRANS
+#. TRANS @strong{Portability Note:} In many older Unix systems, this condition
+#. TRANS was indicated by @code{EWOULDBLOCK}, which was a distinct error code
+#. TRANS different from @code{EAGAIN}. To make your program portable, you should
+#. TRANS check for both codes and treat them the same.
+#. TRANS
+#. TRANS @item
+#. TRANS A temporary resource shortage made an operation impossible. @code{fork}
+#. TRANS can return this error. It indicates that the shortage is expected to
+#. TRANS pass, so your program can try the call again later and it may succeed.
+#. TRANS It is probably a good idea to delay for a few seconds before trying it
+#. TRANS again, to allow time for other processes to release scarce resources.
+#. TRANS Such shortages are usually fairly serious and affect the whole system,
+#. TRANS so usually an interactive program should report the error to the user
+#. TRANS and return to its command loop.
+#. TRANS @end itemize
+#: sysdeps/gnu/errlist.c:416
+msgid "Resource temporarily unavailable"
+msgstr "ProstÅ™edek je doÄasnÄ› nepřístupný"
+
+# Operace by blokovala
+#. TRANS In the GNU C library, this is another name for @code{EAGAIN} (above).
+#. TRANS The values are always the same, on every operating system.
+#. TRANS
+#. TRANS C libraries in many older Unix systems have @code{EWOULDBLOCK} as a
+#. TRANS separate error code.
+#: sysdeps/gnu/errlist.c:429
+msgid "Operation would block"
+msgstr "Operace byla přerušena"
+
+#. TRANS An operation that cannot complete immediately was initiated on an object
+#. TRANS that has non-blocking mode selected. Some functions that must always
+#. TRANS block (such as @code{connect}; @pxref{Connecting}) never return
+#. TRANS @code{EAGAIN}. Instead, they return @code{EINPROGRESS} to indicate that
+#. TRANS the operation has begun and will take some time. Attempts to manipulate
+#. TRANS the object before the call completes return @code{EALREADY}. You can
+#. TRANS use the @code{select} function to find out when the pending operation
+#. TRANS has completed; @pxref{Waiting for I/O}.
+#: sysdeps/gnu/errlist.c:445
+msgid "Operation now in progress"
+msgstr "Operace probíhá"
+
+#. TRANS An operation is already in progress on an object that has non-blocking
+#. TRANS mode selected.
+#: sysdeps/gnu/errlist.c:455
+msgid "Operation already in progress"
+msgstr "Operace probíhá"
+
+#. TRANS A file that isn't a socket was specified when a socket is required.
+#: sysdeps/gnu/errlist.c:464
+msgid "Socket operation on non-socket"
+msgstr "Soketová operace na objektu, který není soketem"
+
+#. TRANS The size of a message sent on a socket was larger than the supported
+#. TRANS maximum size.
+#: sysdeps/gnu/errlist.c:474
+msgid "Message too long"
+msgstr "Příliš dlouhá zpráva"
+
+#. TRANS The socket type does not support the requested communications protocol.
+#: sysdeps/gnu/errlist.c:483
+msgid "Protocol wrong type for socket"
+msgstr "Protokol nepodporuje sokety"
+
+#. TRANS You specified a socket option that doesn't make sense for the
+#. TRANS particular protocol being used by the socket. @xref{Socket Options}.
+#: sysdeps/gnu/errlist.c:493
+msgid "Protocol not available"
+msgstr "Protokol není k dispozici"
+
+#. TRANS The socket domain does not support the requested communications protocol
+#. TRANS (perhaps because the requested protocol is completely invalid).
+#. TRANS @xref{Creating a Socket}.
+#: sysdeps/gnu/errlist.c:504
+msgid "Protocol not supported"
+msgstr "Protokol není podporován"
+
+#. TRANS The socket type is not supported.
+#: sysdeps/gnu/errlist.c:513
+msgid "Socket type not supported"
+msgstr "Typ soket není podporován"
+
+#. TRANS The operation you requested is not supported. Some socket functions
+#. TRANS don't make sense for all types of sockets, and others may not be
+#. TRANS implemented for all communications protocols. In the GNU system, this
+#. TRANS error can happen for many calls when the object does not support the
+#. TRANS particular operation; it is a generic indication that the server knows
+#. TRANS nothing to do for that call.
+#: sysdeps/gnu/errlist.c:527
+msgid "Operation not supported"
+msgstr "Operace není podporována"
+
+#. TRANS The socket communications protocol family you requested is not supported.
+#: sysdeps/gnu/errlist.c:536
+msgid "Protocol family not supported"
+msgstr "Rodina protokolů není podporována"
+
+#. TRANS The address family specified for a socket is not supported; it is
+#. TRANS inconsistent with the protocol being used on the socket. @xref{Sockets}.
+#: sysdeps/gnu/errlist.c:546
+msgid "Address family not supported by protocol"
+msgstr "Třída adres není podporována protokolem"
+
+#. TRANS The requested socket address is already in use. @xref{Socket Addresses}.
+#: sysdeps/gnu/errlist.c:555
+msgid "Address already in use"
+msgstr "Adresa je užívána"
+
+#. TRANS The requested socket address is not available; for example, you tried
+#. TRANS to give a socket a name that doesn't match the local host name.
+#. TRANS @xref{Socket Addresses}.
+#: sysdeps/gnu/errlist.c:566
+msgid "Cannot assign requested address"
+msgstr "Požadovanou adresu nelze přiřadit"
+
+#. TRANS A socket operation failed because the network was down.
+#: sysdeps/gnu/errlist.c:575
+msgid "Network is down"
+msgstr "Síťování je mimo provoz"
+
+#. TRANS A socket operation failed because the subnet containing the remote host
+#. TRANS was unreachable.
+#: sysdeps/gnu/errlist.c:585
+msgid "Network is unreachable"
+msgstr "Síť není dostupná"
+
+#. TRANS A network connection was reset because the remote host crashed.
+#: sysdeps/gnu/errlist.c:594
+msgid "Network dropped connection on reset"
+msgstr "Síť zruÅ¡ila spojení (problém se vzdáleným poÄítaÄem)"
+
+#. TRANS A network connection was aborted locally.
+#: sysdeps/gnu/errlist.c:603
+msgid "Software caused connection abort"
+msgstr "Software způsobil ukonÄení spojení (abort)"
+
+#. TRANS A network connection was closed for reasons outside the control of the
+#. TRANS local host, such as by the remote machine rebooting or an unrecoverable
+#. TRANS protocol violation.
+#: sysdeps/gnu/errlist.c:614
+msgid "Connection reset by peer"
+msgstr "Spojení zrušeno druhou stranou"
+
+#. TRANS The kernel's buffers for I/O operations are all in use. In GNU, this
+#. TRANS error is always synonymous with @code{ENOMEM}; you may get one or the
+#. TRANS other from network operations.
+#: sysdeps/gnu/errlist.c:625
+msgid "No buffer space available"
+msgstr "Pro V/V vyrovnávací paměť není volná paměť"
+
+#. TRANS You tried to connect a socket that is already connected.
+#. TRANS @xref{Connecting}.
+#: sysdeps/gnu/errlist.c:635
+msgid "Transport endpoint is already connected"
+msgstr "Koncový komunikaÄní bod je už pÅ™ipojen"
+
+#. TRANS The socket is not connected to anything. You get this error when you
+#. TRANS try to transmit data over a socket, without first specifying a
+#. TRANS destination for the data. For a connectionless socket (for datagram
+#. TRANS protocols, such as UDP), you get @code{EDESTADDRREQ} instead.
+#: sysdeps/gnu/errlist.c:647
+msgid "Transport endpoint is not connected"
+msgstr "Koncový komunikaÄní bod není pÅ™ipojen"
+
+#. TRANS No default destination address was set for the socket. You get this
+#. TRANS error when you try to transmit data over a connectionless socket,
+#. TRANS without first specifying a destination for the data with @code{connect}.
+#: sysdeps/gnu/errlist.c:658
+msgid "Destination address required"
+msgstr "Cílovou adresu je nutné zadat"
+
+#. TRANS The socket has already been shut down.
+#: sysdeps/gnu/errlist.c:667
+msgid "Cannot send after transport endpoint shutdown"
+msgstr "Spojení bylo přerušeno"
+
+# Příliš mnoho odkazů - nelze spojit
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:676
+msgid "Too many references: cannot splice"
+msgstr "Příliš mnoho odkazů - nelze spojit"
+
+# Časový limit pro připojení vypršel
+#. TRANS A socket operation with a specified timeout received no response during
+#. TRANS the timeout period.
+#: sysdeps/gnu/errlist.c:686
+msgid "Connection timed out"
+msgstr "Spojení bylo příliš dlouho neaktivní"
+
+#. TRANS A remote host refused to allow the network connection (typically because
+#. TRANS it is not running the requested service).
+#: sysdeps/gnu/errlist.c:696
+msgid "Connection refused"
+msgstr "Spojení odmítnuto"
+
+#. TRANS Too many levels of symbolic links were encountered in looking up a file name.
+#. TRANS This often indicates a cycle of symbolic links.
+#: sysdeps/gnu/errlist.c:706
+msgid "Too many levels of symbolic links"
+msgstr "Příliš mnoho úrovní symbolických odkazů"
+
+#. TRANS Filename too long (longer than @code{PATH_MAX}; @pxref{Limits for
+#. TRANS Files}) or host name too long (in @code{gethostname} or
+#. TRANS @code{sethostname}; @pxref{Host Identification}).
+#: sysdeps/gnu/errlist.c:717
+msgid "File name too long"
+msgstr "Příliš dlouhé jméno souboru"
+
+#. TRANS The remote host for a requested network connection is down.
+#: sysdeps/gnu/errlist.c:726
+msgid "Host is down"
+msgstr "PoÄítaÄ není v provozu"
+
+#. TRANS The remote host for a requested network connection is not reachable.
+#: sysdeps/gnu/errlist.c:735
+msgid "No route to host"
+msgstr "K poÄítaÄi neexistuje cesta"
+
+#. TRANS Directory not empty, where an empty directory was expected. Typically,
+#. TRANS this error occurs when you are trying to delete a directory.
+#: sysdeps/gnu/errlist.c:745
+msgid "Directory not empty"
+msgstr "Adresář není prázdný"
+
+#. TRANS This means that the per-user limit on new process would be exceeded by
+#. TRANS an attempted @code{fork}. @xref{Limits on Resources}, for details on
+#. TRANS the @code{RLIMIT_NPROC} limit.
+#: sysdeps/gnu/errlist.c:756
+msgid "Too many processes"
+msgstr "PÅ™ekroÄen limit poÄtu procesů aktuálního uživatele"
+
+#. TRANS The file quota system is confused because there are too many users.
+#. TRANS @c This can probably happen in a GNU system when using NFS.
+#: sysdeps/gnu/errlist.c:766
+msgid "Too many users"
+msgstr "Příliš mnoho uživatelů"
+
+#. TRANS The user's disk quota was exceeded.
+#: sysdeps/gnu/errlist.c:775
+msgid "Disk quota exceeded"
+msgstr "PÅ™ekroÄena disková kvóta"
+
+# Neplatný NFS souborový ukazatel
+#. TRANS Stale NFS file handle. This indicates an internal confusion in the NFS
+#. TRANS system which is due to file system rearrangements on the server host.
+#. TRANS Repairing this condition usually requires unmounting and remounting
+#. TRANS the NFS file system on the local host.
+#: sysdeps/gnu/errlist.c:787
+msgid "Stale NFS file handle"
+msgstr "Zastaralý odkaz na NFS soubor"
+
+#. TRANS An attempt was made to NFS-mount a remote file system with a file name that
+#. TRANS already specifies an NFS-mounted file.
+#. TRANS (This is an error on some operating systems, but we expect it to work
+#. TRANS properly on the GNU system, making this error code impossible.)
+#: sysdeps/gnu/errlist.c:799
+msgid "Object is remote"
+msgstr "Objekt je vzdálený"
+
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:808
+msgid "RPC struct is bad"
+msgstr "RPC struktura je chybná"
+
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:817
+msgid "RPC version wrong"
+msgstr "Chybná verze RPC"
+
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:826
+msgid "RPC program not available"
+msgstr "RPC program není k dispozici"
+
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:835
+msgid "RPC program version wrong"
+msgstr "Chybná verze RPC programu"
+
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:844
+msgid "RPC bad procedure for program"
+msgstr "Chybná RPC procedura pro program"
+
+#. TRANS No locks available. This is used by the file locking facilities; see
+#. TRANS @ref{File Locks}. This error is never generated by the GNU system, but
+#. TRANS it can result from an operation to an NFS server running another
+#. TRANS operating system.
+#: sysdeps/gnu/errlist.c:856
+msgid "No locks available"
+msgstr "Zámky nejsou k dispozici"
+
+#. TRANS Inappropriate file type or format. The file was the wrong type for the
+#. TRANS operation, or a data file had the wrong format.
+#. TRANS
+#. TRANS On some systems @code{chmod} returns this error if you try to set the
+#. TRANS sticky bit on a non-directory file; @pxref{Setting Permissions}.
+#: sysdeps/gnu/errlist.c:869
+msgid "Inappropriate file type or format"
+msgstr "Nevhodný typ nebo formát souboru"
+
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:878
+msgid "Authentication error"
+msgstr "Ověření totožnosti bylo neúspěšné"
+
+# Potřebuje ověřovací objekt
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:887
+msgid "Need authenticator"
+msgstr "Je tÅ™eba ověřovaÄe"
+
+#. TRANS Function not implemented. This indicates that the function called is
+#. TRANS not implemented at all, either in the C library itself or in the
+#. TRANS operating system. When you get this error, you can be sure that this
+#. TRANS particular function will always fail with @code{ENOSYS} unless you
+#. TRANS install a new version of the C library or the operating system.
+#: sysdeps/gnu/errlist.c:900
+msgid "Function not implemented"
+msgstr "Funkce není implementována"
+
+#. TRANS Not supported. A function returns this error when certain parameter
+#. TRANS values are valid, but the functionality they request is not available.
+#. TRANS This can mean that the function does not implement a particular command
+#. TRANS or option value or flag bit at all. For functions that operate on some
+#. TRANS object given in a parameter, such as a file descriptor or a port, it
+#. TRANS might instead mean that only @emph{that specific object} (file
+#. TRANS descriptor, port, etc.) is unable to support the other parameters given;
+#. TRANS different file descriptors might support different ranges of parameter
+#. TRANS values.
+#. TRANS
+#. TRANS If the entire function is not available at all in the implementation,
+#. TRANS it returns @code{ENOSYS} instead.
+#: sysdeps/gnu/errlist.c:920
+msgid "Not supported"
+msgstr "Není podporován"
+
+#. TRANS While decoding a multibyte character the function came along an invalid
+#. TRANS or an incomplete sequence of bytes or the given wide character is invalid.
+#: sysdeps/gnu/errlist.c:930
+msgid "Invalid or incomplete multibyte or wide character"
+msgstr "Nepřípustný nebo nekompletní vícebajtový nebo široký znak"
+
+#. TRANS In the GNU system, servers supporting the @code{term} protocol return
+#. TRANS this error for certain operations when the caller is not in the
+#. TRANS foreground process group of the terminal. Users do not usually see this
+#. TRANS error because functions such as @code{read} and @code{write} translate
+#. TRANS it into a @code{SIGTTIN} or @code{SIGTTOU} signal. @xref{Job Control},
+#. TRANS for information on process groups and these signals.
+#: sysdeps/gnu/errlist.c:944
+msgid "Inappropriate operation for background process"
+msgstr "Nevhodná operace pro proces na pozadí"
+
+# PÅ™ekladaÄ zastaven?
+#. TRANS In the GNU system, opening a file returns this error when the file is
+#. TRANS translated by a program and the translator program dies while starting
+#. TRANS up, before it has connected to the file.
+#: sysdeps/gnu/errlist.c:955
+msgid "Translator died"
+msgstr "Překladatel zemřel"
+
+#. TRANS The experienced user will know what is wrong.
+#. TRANS @c This error code is a joke. Its perror text is part of the joke.
+#. TRANS @c Don't change it.
+#: sysdeps/gnu/errlist.c:966
+msgid "?"
+msgstr "?"
+
+#. TRANS You did @strong{what}?
+#: sysdeps/gnu/errlist.c:975
+msgid "You really blew it this time"
+msgstr "Tentokrát jste to skuteÄnÄ› zvoral"
+
+#. TRANS Go home and have a glass of warm, dairy-fresh milk.
+#: sysdeps/gnu/errlist.c:984
+msgid "Computer bought the farm"
+msgstr "PoÄítaÄ koupil farmu"
+
+# VdÄ›Äná chyba?
+#. TRANS This error code has no purpose.
+#: sysdeps/gnu/errlist.c:993
+msgid "Gratuitous error"
+msgstr "Dobrovolná chyba"
+
+#: sysdeps/gnu/errlist.c:1001
+msgid "Bad message"
+msgstr "Chybná zpráva"
+
+#: sysdeps/gnu/errlist.c:1009
+msgid "Identifier removed"
+msgstr "Identifikátor odstraněn"
+
+#: sysdeps/gnu/errlist.c:1017
+msgid "Multihop attempted"
+msgstr "Pokus o spojení přes více uzlů"
+
+#: sysdeps/gnu/errlist.c:1025
+msgid "No data available"
+msgstr "Data nejsou k dispozici"
+
+# Odkaz byl zpřetrhán?
+#: sysdeps/gnu/errlist.c:1033
+msgid "Link has been severed"
+msgstr "Odkaz byl zniÄen"
+
+#: sysdeps/gnu/errlist.c:1041
+msgid "No message of desired type"
+msgstr "Žádná zpráva žádaného typu"
+
+# Zdroje proudu vyÄerpány
+#: sysdeps/gnu/errlist.c:1049
+msgid "Out of streams resources"
+msgstr "Již nejsou volné proudy"
+
+#: sysdeps/gnu/errlist.c:1057
+msgid "Device not a stream"
+msgstr "Zařízení není proudem"
+
+#: sysdeps/gnu/errlist.c:1065
+msgid "Value too large for defined data type"
+msgstr "Hodnota je příliš velká pro daný datový typ"
+
+#: sysdeps/gnu/errlist.c:1073
+msgid "Protocol error"
+msgstr "Chyba protokolu"
+
+#: sysdeps/gnu/errlist.c:1081
+msgid "Timer expired"
+msgstr "ÄŒasovaÄ vyprÅ¡el"
+
+#. TRANS Operation canceled; an asynchronous operation was canceled before it
+#. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel},
+#. TRANS the normal result is for the operations affected to complete with this
+#. TRANS error; @pxref{Cancel AIO Operations}.
+#: sysdeps/gnu/errlist.c:1093
+msgid "Operation canceled"
+msgstr "Operace zrušena"
+
+#: sysdeps/gnu/errlist.c:1101
+msgid "Interrupted system call should be restarted"
+msgstr "Přerušené volání systému by mělo být znovu spuštěno"
+
+#: sysdeps/gnu/errlist.c:1109
+msgid "Channel number out of range"
+msgstr "Číslo kanálu mimo povolený rozsah"
+
+# Úroveň 2 není synchronizována
+#: sysdeps/gnu/errlist.c:1117
+msgid "Level 2 not synchronized"
+msgstr "Úroveň 2 - není synchronizováno"
+
+# Úroveň 3 zastavena
+#: sysdeps/gnu/errlist.c:1125
+msgid "Level 3 halted"
+msgstr "Úroveň 3 - zastaveno"
+
+# Úroveň 3 nastavena na výchozí hodnoty
+#: sysdeps/gnu/errlist.c:1133
+msgid "Level 3 reset"
+msgstr "Úroveň 3 - nastaveno na výchozí hodnoty"
+
+#: sysdeps/gnu/errlist.c:1141
+msgid "Link number out of range"
+msgstr "Číslo odkazu mimo rozsah"
+
+#: sysdeps/gnu/errlist.c:1149
+msgid "Protocol driver not attached"
+msgstr "OvladaÄ protokolu nepÅ™ipojen"
+
+#: sysdeps/gnu/errlist.c:1157
+msgid "No CSI structure available"
+msgstr "CSI struktura není dostupná"
+
+# Úroveň 2 zastavena
+#: sysdeps/gnu/errlist.c:1165
+msgid "Level 2 halted"
+msgstr "Úroveň 2 - zastaveno"
+
+#: sysdeps/gnu/errlist.c:1173
+msgid "Invalid exchange"
+msgstr "Nepřípustná výměna"
+
+#: sysdeps/gnu/errlist.c:1181
+msgid "Invalid request descriptor"
+msgstr "Nepřípustný deskriptor žádosti"
+
+#: sysdeps/gnu/errlist.c:1189
+msgid "Exchange full"
+msgstr "Plný výměník"
+
+#: sysdeps/gnu/errlist.c:1197
+msgid "No anode"
+msgstr "Žádný anode"
+
+#: sysdeps/gnu/errlist.c:1205
+msgid "Invalid request code"
+msgstr "Neplatný kód žádosti"
+
+#: sysdeps/gnu/errlist.c:1213
+msgid "Invalid slot"
+msgstr "Neplatný slot"
+
+#: sysdeps/gnu/errlist.c:1221
+msgid "File locking deadlock error"
+msgstr "Vzájemné zablokování při zamykaní souboru"
+
+#: sysdeps/gnu/errlist.c:1229
+msgid "Bad font file format"
+msgstr "Chybný formát fontu"
+
+#: sysdeps/gnu/errlist.c:1237
+msgid "Machine is not on the network"
+msgstr "PoÄítaÄ není v síti"
+
+#: sysdeps/gnu/errlist.c:1245
+msgid "Package not installed"
+msgstr "Balík není nainstalován"
+
+#: sysdeps/gnu/errlist.c:1253
+msgid "Advertise error"
+msgstr "Chyba při zveřejnění"
-#: locale/programs/locfile.c:1160
+#: sysdeps/gnu/errlist.c:1261
+msgid "Srmount error"
+msgstr "Chyba ssrmount"
+
+#: sysdeps/gnu/errlist.c:1269
+msgid "Communication error on send"
+msgstr "Chyba komunikace při vysílaní"
+
+#: sysdeps/gnu/errlist.c:1277
+msgid "RFS specific error"
+msgstr "RFS-specifická chyba"
+
+#: sysdeps/gnu/errlist.c:1285
+msgid "Name not unique on network"
+msgstr "Jméno v síti není jednoznaÄné"
+
+#: sysdeps/gnu/errlist.c:1293
+msgid "File descriptor in bad state"
+msgstr "Deskriptor souboru se nachází v chybném stavu"
+
+#: sysdeps/gnu/errlist.c:1301
+msgid "Remote address changed"
+msgstr "Vzdálená adresa byla změnila"
+
+#: sysdeps/gnu/errlist.c:1309
+msgid "Can not access a needed shared library"
+msgstr "K potřebné sdílené knihovně nelze přistoupit"
+
+#: sysdeps/gnu/errlist.c:1317
+msgid "Accessing a corrupted shared library"
+msgstr "Použití poškozené sdílené knihovny"
+
+#: sysdeps/gnu/errlist.c:1325
+msgid ".lib section in a.out corrupted"
+msgstr "Poškozená sekce .lib v a.out"
+
+#: sysdeps/gnu/errlist.c:1333
+msgid "Attempting to link in too many shared libraries"
+msgstr "Pokus o připojení příliš mnoha sdílených knihoven"
+
+#: sysdeps/gnu/errlist.c:1341
+msgid "Cannot exec a shared library directly"
+msgstr "Sdílenou knihovnu nelze přímo spustit"
+
+# Chyba roury proudů
+#: sysdeps/gnu/errlist.c:1349
+msgid "Streams pipe error"
+msgstr "Chyba proudové roury"
+
+#: sysdeps/gnu/errlist.c:1357
+msgid "Structure needs cleaning"
+msgstr "Struktura potřebuje opravu"
+
+# Nejde o pojmenovaný XENIX soubor
+# není XENIXovsky pojmenovaný typ souboru
+#: sysdeps/gnu/errlist.c:1365
+msgid "Not a XENIX named type file"
+msgstr "Nejde o pojmenovaný XENIX soubor"
+
+#: sysdeps/gnu/errlist.c:1373
+msgid "No XENIX semaphores available"
+msgstr "XENIX semafory nejsou dostupné"
+
+# Je pojmenovaný typ souboru
+#: sysdeps/gnu/errlist.c:1381
+msgid "Is a named type file"
+msgstr "Je soubor zadaného typu"
+
+# Vzdálená V/V chyba
+#: sysdeps/gnu/errlist.c:1389
+msgid "Remote I/O error"
+msgstr "Chyba vstupu/výstupu na vzdáleném poÄítaÄi"
+
+#: sysdeps/gnu/errlist.c:1397
+msgid "No medium found"
+msgstr "Médium nebylo nalezeno"
+
+#: sysdeps/gnu/errlist.c:1405
+msgid "Wrong medium type"
+msgstr "Chybný typ média"
+
+#: sysdeps/gnu/errlist.c:1413
+msgid "Required key not available"
+msgstr "Požadovaný klÃ­Ä není dostupný"
+
+#: sysdeps/gnu/errlist.c:1421
+msgid "Key has expired"
+msgstr "KlÃ­Ä již expiroval"
+
+# Odkaz byl zpřetrhán?
+#: sysdeps/gnu/errlist.c:1429
+msgid "Key has been revoked"
+msgstr "KlÃ­Ä byl odvolán"
+
+#: sysdeps/gnu/errlist.c:1437
+msgid "Key was rejected by service"
+msgstr "KlÃ­Ä byl odmítnut službou"
+
+#: sysdeps/gnu/errlist.c:1445
+msgid "Owner died"
+msgstr "Majitel mrtev"
+
+#: sysdeps/gnu/errlist.c:1453
+msgid "State not recoverable"
+msgstr "Stav nelze obnovit"
+
+#: sysdeps/mach/_strerror.c:57
+msgid "Error in unknown error system: "
+msgstr "Chyba z neznámého chybového systému: "
+
+#: sysdeps/posix/gai_strerror-strs.h:1
+msgid "Address family for hostname not supported"
+msgstr "Třída adres není podporována"
+
+#: sysdeps/posix/gai_strerror-strs.h:2
+msgid "Temporary failure in name resolution"
+msgstr "DoÄasná chyba pÅ™i vyhodnocování jména"
+
+#: sysdeps/posix/gai_strerror-strs.h:3
+msgid "Bad value for ai_flags"
+msgstr "Chybná hodnota ai_flags"
+
+#: sysdeps/posix/gai_strerror-strs.h:4
+msgid "Non-recoverable failure in name resolution"
+msgstr "Neopravitelná chyba při vyhodnocení názvu"
+
+#: sysdeps/posix/gai_strerror-strs.h:5
+msgid "ai_family not supported"
+msgstr "ai_family není podporován"
+
+#: sysdeps/posix/gai_strerror-strs.h:6
+msgid "Memory allocation failure"
+msgstr "Alokace paměti nebyla úspěšná"
+
+#: sysdeps/posix/gai_strerror-strs.h:7
+msgid "No address associated with hostname"
+msgstr "Jméno poÄítaÄe nemá pÅ™iÅ™azenu adresu"
+
+#: sysdeps/posix/gai_strerror-strs.h:8
+msgid "Name or service not known"
+msgstr "Neznámé jméno nebo služba"
+
+#: sysdeps/posix/gai_strerror-strs.h:9
+msgid "Servname not supported for ai_socktype"
+msgstr "Jméno serveru není pro ai_socktype podporováno"
+
+#: sysdeps/posix/gai_strerror-strs.h:10
+msgid "ai_socktype not supported"
+msgstr "ai_socktype není podporován"
+
+#: sysdeps/posix/gai_strerror-strs.h:11
+msgid "System error"
+msgstr "Chyba systému"
+
+#: sysdeps/posix/gai_strerror-strs.h:12
+msgid "Processing request in progress"
+msgstr "Zpracovávaný požadavek se vyřizuje"
+
+#: sysdeps/posix/gai_strerror-strs.h:13
+msgid "Request canceled"
+msgstr "Požadavek zrušen"
+
+#: sysdeps/posix/gai_strerror-strs.h:14
+msgid "Request not canceled"
+msgstr "Požadavak nezrušen"
+
+#: sysdeps/posix/gai_strerror-strs.h:15
+msgid "All requests done"
+msgstr "Všechny požadavky vyřízeny"
+
+#: sysdeps/posix/gai_strerror-strs.h:16
+msgid "Interrupted by a signal"
+msgstr "Přerušeno signálem"
+
+#: sysdeps/posix/gai_strerror-strs.h:17
+msgid "Parameter string not correctly encoded"
+msgstr "Řetězec parametru chybně zakódován"
+
+#: sysdeps/unix/siglist.c:26
+msgid "Signal 0"
+msgstr "Signál 0"
+
+#: sysdeps/unix/siglist.c:32
+msgid "IOT trap"
+msgstr "IOT past (SIGIOT)"
+
+#: sysdeps/unix/sysv/linux/i386/readelflib.c:49
#, c-format
-msgid "failure while writing data for category `%s'"
-msgstr "chyba bìhem zápisu dat kategorie `%s'"
+msgid "%s is for unknown machine %d.\n"
+msgstr "%s je pro neznámý stroj %d.\n"
-#: nis/nis_call.c:155
-msgid "fcntl: F_SETFD"
-msgstr "fcntl: F_SETFD"
+#: sysdeps/unix/sysv/linux/ia64/makecontext.c:63
+#, c-format
+msgid "makecontext: does not know how to handle more than 8 arguments\n"
+msgstr "makecontext: nevím, jak zpracovat více jak 8 argumentů\n"
-#: locale/programs/ld-messages.c:86 locale/programs/ld-messages.c:110
-#: locale/programs/ld-monetary.c:163 locale/programs/ld-numeric.c:98
+#: sysdeps/unix/sysv/linux/lddlibc4.c:64
#, c-format
-msgid "field `%s' in category `%s' undefined"
-msgstr "polo¾ka `%s' kategorie `%s' není definována"
+msgid "cannot open `%s'"
+msgstr "„%s“ nelze otevřít"
-#: sunrpc/rpc_main.c:1146
+#: sysdeps/unix/sysv/linux/lddlibc4.c:68
#, c-format
-msgid "file `%s' already exists and may be overwritten\n"
-msgstr "soubor '%s' ji¾ existuje a mù¾e být pøepsán\n"
+msgid "cannot read header from `%s'"
+msgstr "hlaviÄku ze souboru „%s“ nelze pÅ™eÄíst"
-#: locale/programs/locfile.c:683
-msgid "from-value of `collating-element' must be a string"
-msgstr "hodnota z-èeho pro `collating-element' musí být øetìzec"
+#: timezone/zdump.c:211
+msgid "lacks alphabetic at start"
+msgstr "na zaÄátku chybí písmeno"
-#: inet/rcmd.c:324
-msgid "fstat failed"
-msgstr "funkce fstat() skonèila s chybou"
+#: timezone/zdump.c:213
+msgid "has fewer than 3 alphabetics"
+msgstr "má méně než 3 písmena"
-#: locale/programs/linereader.c:333
-msgid "garbage at end of character code specification"
-msgstr "smetí na konci specifikace kódu znaku"
+#: timezone/zdump.c:215
+msgid "has more than 6 alphabetics"
+msgstr "má více něž 6 písmen"
-#: locale/programs/linereader.c:219
-msgid "garbage at end of number"
-msgstr "smetí na konci èísla"
+#: timezone/zdump.c:223
+msgid "differs from POSIX standard"
+msgstr "nesouhlasí se standardem POSIX"
-#: locale/programs/ld-time.c:195
+#: timezone/zdump.c:229
#, c-format
-msgid "garbage at end of offset value in string %d in `era' field in category `%s'"
-msgstr "smetí na konci hodnoty posunutí v øetìzci (%d) polo¾ky `era' kategorie `%s'"
+msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
+msgstr "%s: varování: zóna „%s“ zkratka „%s“ %s\n"
-#: locale/programs/ld-time.c:252
+#: timezone/zdump.c:280
#, c-format
-msgid "garbage at end of starting date in string %d in `era' field in category `%s'"
-msgstr "smetí na konci poèáteèního data v øetìzci (%d) polo¾ky `era' kategorie `%s'"
+msgid "%s: usage is %s [ --version ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n"
+msgstr "%s: Použití: %s [--version] [-v] [-c [DOLNÃ_ROK,]HORNÃ_ROK ] ÄŒASOVÉ_PÃSMO…\n"
-#: locale/programs/ld-time.c:328
+#: timezone/zdump.c:297
#, c-format
-msgid "garbage at end of stopping date in string %d in `era' field in category `%s'"
-msgstr "smetí na konci koncového data v øetìzci (%d) polo¾ky `era' kategorie `%s'"
+msgid "%s: wild -c argument %s\n"
+msgstr "%s: divoký argument -c: %s\n"
-#: elf/sprof.c:77
-msgid "generate call graph"
-msgstr "vytvoøí graf volání"
+#: timezone/zdump.c:388
+msgid "Error writing to standard output"
+msgstr "Chyba při psaní na standardní výstup"
-#: elf/sprof.c:76
-msgid "generate flat profile with counts and ticks"
-msgstr "vytvoøí jednoduchý profil s poèty a tiky"
+#: timezone/zdump.c:411
+#, c-format
+msgid "%s: use of -v on system with floating time_t other than float or double\n"
+msgstr "%s: použití –v na systému s desetinnou strukturou time_t jinou než než s float nebo double\n"
-#: sunrpc/get_myaddr.c:77
-msgid "get_myaddress: ioctl (get interface configuration)"
-msgstr "get_myaddress: ioctl (ètení konfigurace rozhraní)"
+#: timezone/zic.c:392
+#, c-format
+msgid "%s: Memory exhausted: %s\n"
+msgstr "%s: Paměť vyÄerpána: %s\n"
-# getent - získává záznamy z administrativní databáze.
-#: nss/getent.c:54
-msgid "getent - get entries from administrative database."
-msgstr "Získává záznamy z administrativní databáze."
+#: timezone/zic.c:451
+#, c-format
+msgid "\"%s\", line %d: %s"
+msgstr "„%s“, řádek %d: %s"
-#: nscd/connections.c:219
+#: timezone/zic.c:454
#, c-format
-msgid "handle_request: request received (Version = %d)"
-msgstr "handle_request: ¾ádost pøijata (verze = %d)"
+msgid " (rule from \"%s\", line %d)"
+msgstr " (pravidlo z „%s“, řádek %d)"
-#: timezone/zic.c:638
-msgid "hard link failed, symbolic link used"
-msgstr "pevný odkaz nevytvoøen, pou¾it symbolický"
+#: timezone/zic.c:466
+msgid "warning: "
+msgstr "varování: "
-# nìkde existuje pevný odkaz
-#: inet/rcmd.c:330
-msgid "hard linked somewhere"
-msgstr "na soubor se odkazuje více pevných odkazù"
+#: timezone/zic.c:476
+#, c-format
+msgid ""
+"%s: usage is %s [ --version ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n"
+"\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"
+msgstr ""
+"%s: Použití: %s [--version] [-v] [-l MÃSTNÃ_ÄŒAS]\n"
+"\t[-p POSIXOVÃ_PRAVIDLA] [-d ADRESÃŘ] [-L PŘESTUPNÃCH_SEKUND]\n"
+"\t[-y TYP_ROKU] [SOUBOR…]\n"
-#: timezone/zic.c:1188
-msgid "illegal CORRECTION field on Leap line"
-msgstr "chybná polo¾ka KOREKCE na øádku Leap"
+#: timezone/zic.c:511
+msgid "wild compilation-time specification of zic_t"
+msgstr "divoké urÄení zic_t v dobÄ› pÅ™ekladu"
-#: timezone/zic.c:1192
-msgid "illegal Rolling/Stationary field on Leap line"
-msgstr "chybná polo¾ka Rolling/Stationary na øádku Leap"
+#: timezone/zic.c:528
+#, c-format
+msgid "%s: More than one -d option specified\n"
+msgstr "%s: PÅ™epínaÄ -d zadán více než jednou\n"
-#: locale/programs/ld-collate.c:1786
-msgid "illegal character constant in string"
-msgstr "nepovolený znak v øetìzci"
+#: timezone/zic.c:538
+#, c-format
+msgid "%s: More than one -l option specified\n"
+msgstr "%s: PÅ™epínaÄ -l zadán více než jednou\n"
-#: sunrpc/rpc_scan.c:311
-msgid "illegal character in file: "
-msgstr "nepovolený znak v souboru: "
+#: timezone/zic.c:548
+#, c-format
+msgid "%s: More than one -p option specified\n"
+msgstr "%s: PÅ™epínaÄ -p zadán více než jednou\n"
-#: locale/programs/ld-collate.c:1129
-msgid "illegal collation element"
-msgstr "nepovolený prvek øazení"
+#: timezone/zic.c:558
+#, c-format
+msgid "%s: More than one -y option specified\n"
+msgstr "%s: PÅ™epínaÄ -y zadán více než jednou\n"
-#: locale/programs/charmap.c:281
-msgid "illegal definition"
-msgstr "nepovolená definice"
+#: timezone/zic.c:568
+#, c-format
+msgid "%s: More than one -L option specified\n"
+msgstr "%s: PÅ™epínaÄ -L zadán více než jednou\n"
-#: locale/programs/charmap.c:434
-msgid "illegal encoding given"
-msgstr "zadáno nepøípustné kódování"
+#: timezone/zic.c:617
+msgid "link to link"
+msgstr "odkaz na odkaz"
-#: locale/programs/linereader.c:551
-msgid "illegal escape sequence at end of string"
-msgstr "chybná escape-sekvence na konci øetìzce"
+#: timezone/zic.c:682
+msgid "hard link failed, symbolic link used"
+msgstr "pevný odkaz nevytvořen, použit symbolický"
-#: iconv/iconv_prog.c:370
+#: timezone/zic.c:690
#, c-format
-msgid "illegal input sequence at position %ld"
-msgstr "nepovolená vstupní sekvence na pozici %ld"
+msgid "%s: Can't link from %s to %s: %s\n"
+msgstr "%s: Odkaz na %s z %s nelze vytvořit: %s\n"
-#: locale/programs/charset.c:78
-msgid "illegal names for character range"
-msgstr "nepovolené názvy pro rozsah znakù"
+#: timezone/zic.c:762 timezone/zic.c:764
+msgid "same rule name in multiple files"
+msgstr "stejné jméno pravidla je použito ve více souborech"
+
+#: timezone/zic.c:805
+msgid "unruly zone"
+msgstr "Äasové pásmo bez pravidel"
-#: sunrpc/rpc_main.c:461
+# Za %s se nic nedosazuje, zprava je vypsana tak jak je.
+#: timezone/zic.c:812
#, c-format
-msgid "illegal nettype :`%s'\n"
-msgstr "nepovolený nettype: `%s'\n"
+msgid "%s in ruleless zone"
+msgstr "%s v Äasovém pásmu bez pravidel"
-#: locale/programs/ld-time.c:187
+#: timezone/zic.c:833
+msgid "standard input"
+msgstr "standardní vstup"
+
+#: timezone/zic.c:838
#, c-format
-msgid "illegal number for offset in string %d in `era' field in category `%s'"
-msgstr "chybná hodnota posunutí v øetìzci (%d) polo¾ky `era' kategorie `%s'"
+msgid "%s: Can't open %s: %s\n"
+msgstr "%s: %s nelze otevřít: %s\n"
-#: catgets/gencat.c:362 catgets/gencat.c:439
-msgid "illegal set number"
-msgstr "nepovolené èíslo sady"
+#: timezone/zic.c:849
+msgid "line too long"
+msgstr "řádek je příliš dlouhý"
-#: locale/programs/ld-time.c:243
+#: timezone/zic.c:869
+msgid "input line of unknown type"
+msgstr "vstupní řádek neznámého typu"
+
+#: timezone/zic.c:885
#, c-format
-msgid "illegal starting date in string %d in `era' field in category `%s'"
-msgstr "neplatné poèáteèní datum v øetìzci (%d) polo¾ky `era' kategorie `%s'"
+msgid "%s: Leap line in non leap seconds file %s\n"
+msgstr "%s: řádek Leap v souboru nepřestupných sekund %s\n"
-#: locale/programs/ld-time.c:319
+#: timezone/zic.c:892 timezone/zic.c:1323 timezone/zic.c:1345
#, c-format
-msgid "illegal stopping date in string %d in `era' field in category `%s'"
-msgstr "neplatné koncové datum v øetìzci (%d) polo¾ky `era' kategorie `%s'"
+msgid "%s: panic: Invalid l_value %d\n"
+msgstr "%s: fatální chyba: Nepřípustná l_hodnota %d\n"
-#: locale/programs/ld-ctype.c:973
+#: timezone/zic.c:900
#, c-format
-msgid "implementation limit: no more than %d character classes allowed"
-msgstr "implementaèní omezení: maximální poèet tøíd znakù je %d"
+msgid "%s: Error reading %s\n"
+msgstr "%s: Chyba pÅ™i Ätení %s\n"
-#: locale/programs/ld-ctype.c:1005
+#: timezone/zic.c:907
#, c-format
-msgid "implementation limit: no more than %d character maps allowed"
-msgstr "implementaèní omezení: maximální poèet znakových sad je %d"
+msgid "%s: Error closing %s: %s\n"
+msgstr "%s: Chyba při uzavírání %s: %s\n"
-#: iconv/iconv_prog.c:374
-msgid "incomplete character or shift sequence at end of buffer"
-msgstr "nekompletní znak nebo shift sekvence na konci vyrovnávací pamìti"
+#: timezone/zic.c:912
+msgid "expected continuation line not found"
+msgstr "oÄekávaný pokraÄovací řádek nebyl nalezen"
-#: db2/makedb.c:148
-msgid "incorrectly formatted file"
-msgstr "chybnì formátovaný soubor"
+#: timezone/zic.c:956
+msgid "24:00 not handled by pre-1998 versions of zic"
+msgstr "verze zicu před rokem 1998 nepodporovaly 24:00"
-#: timezone/zic.c:851
-msgid "input line of unknown type"
-msgstr "vstupní øádek neznámeho typu"
+#: timezone/zic.c:970
+msgid "wrong number of fields on Rule line"
+msgstr "Å¡patný poÄet položek v řádku Rule"
-#: iconv/iconv_prog.c:378
-msgid "internal error (illegal descriptor)"
-msgstr "vnitøní chyba (nepøípustný deskriptor)"
+#: timezone/zic.c:974
+msgid "nameless rule"
+msgstr "bezejmenné pravidlo"
-#: timezone/zic.c:1814
-msgid "internal error - addtype called with bad isdst"
-msgstr "vnitøní chyba - addtype volán s chybným isdst"
+#: timezone/zic.c:979
+msgid "invalid saved time"
+msgstr "neplatný uložený Äas"
-#: timezone/zic.c:1822
-msgid "internal error - addtype called with bad ttisgmt"
-msgstr "vnitøní chyba - addtype volán s chybným ttisgmt"
+#: timezone/zic.c:1000
+msgid "wrong number of fields on Zone line"
+msgstr "Å¡patný poÄet položek v řádku Zone"
-#: timezone/zic.c:1818
-msgid "internal error - addtype called with bad ttisstd"
-msgstr "vnitøní chyba - addtype volán s chybným ttisstd"
+#: timezone/zic.c:1006
+#, c-format
+msgid "\"Zone %s\" line and -l option are mutually exclusive"
+msgstr "Řádek „Zone %s“ a volba -l se navzájem vyluÄují"
-#: locale/programs/ld-ctype.c:315 locale/programs/ld-ctype.c:392
+#: timezone/zic.c:1014
#, c-format
-msgid "internal error in %s, line %u"
-msgstr "vnitøní chyba ve funkci %s na øádku %u"
+msgid "\"Zone %s\" line and -p option are mutually exclusive"
+msgstr "Řádek „Zone %s“ a volba -p se navzájem vyluÄují"
+
+#: timezone/zic.c:1026
+#, c-format
+msgid "duplicate zone name %s (file \"%s\", line %d)"
+msgstr "duplicitní oznaÄení Äasového pásma %s (soubor „%s“, řádek %d)"
+
+#: timezone/zic.c:1042
+msgid "wrong number of fields on Zone continuation line"
+msgstr "Å¡patný poÄet položek v pokraÄovacím řádku Zone"
-#: timezone/zic.c:1060
+#: timezone/zic.c:1082
msgid "invalid UTC offset"
-msgstr "neplatné posunutí vùèi UTC"
+msgstr "neplatné posunutí vůÄi UTC"
-#: timezone/zic.c:1063
+#: timezone/zic.c:1085
msgid "invalid abbreviation format"
-msgstr "neplatný formát zkratky"
+msgstr "neplatný formát zkratky"
-#: timezone/zic.c:1153 timezone/zic.c:1365 timezone/zic.c:1379
-msgid "invalid day of month"
-msgstr "neplatný den mìsíce"
+#: timezone/zic.c:1114
+msgid "Zone continuation line end time is not after end time of previous line"
+msgstr "Koncový Äas pokraÄovacího řádku Zone není vÄ›tší než koncový Äas pÅ™edcházejícího řádku"
-#: timezone/zic.c:1317
-msgid "invalid ending year"
-msgstr "neplatný koncový rok"
+#: timezone/zic.c:1142
+msgid "wrong number of fields on Leap line"
+msgstr "Å¡patný poÄet položek v řádku Leap"
-#: timezone/zic.c:1125
+#: timezone/zic.c:1151
msgid "invalid leaping year"
-msgstr "neplatný pøestupný rok"
-
-#: elf/dl-open.c:223
-msgid "invalid mode for dlopen()"
-msgstr "neplatný mód pro dlopen()"
+msgstr "neplatný přestupný rok"
-#: timezone/zic.c:1140 timezone/zic.c:1243
+#: timezone/zic.c:1171 timezone/zic.c:1277
msgid "invalid month name"
-msgstr "neplatný název mìsíce"
+msgstr "neplatný název měsíce"
-#: timezone/zic.c:959
-msgid "invalid saved time"
-msgstr "neplatný ulo¾ený èas"
+#: timezone/zic.c:1184 timezone/zic.c:1390 timezone/zic.c:1404
+msgid "invalid day of month"
+msgstr "neplatný den měsíce"
-#: timezone/zic.c:1292
-msgid "invalid starting year"
-msgstr "neplatný poèáteèní rok"
+#: timezone/zic.c:1189
+msgid "time before zero"
+msgstr "Äas menší než nula"
-#: timezone/zic.c:1169 timezone/zic.c:1272
+#: timezone/zic.c:1193
+msgid "time too small"
+msgstr "Äas je příliÅ¡ malý"
+
+#: timezone/zic.c:1197
+msgid "time too large"
+msgstr "Äas je příliÅ¡ velký"
+
+#: timezone/zic.c:1201 timezone/zic.c:1306
msgid "invalid time of day"
-msgstr "neplatný denní èas"
+msgstr "neplatný denní Äas"
-#: timezone/zic.c:1370
+#: timezone/zic.c:1220
+msgid "illegal CORRECTION field on Leap line"
+msgstr "chybná položka KOREKCE na řádku Leap"
+
+#: timezone/zic.c:1225
+msgid "illegal Rolling/Stationary field on Leap line"
+msgstr "chybná položka Rolling/Stationary na řádku Leap"
+
+#: timezone/zic.c:1241
+msgid "wrong number of fields on Link line"
+msgstr "Å¡patný poÄet položek v řádku Link"
+
+#: timezone/zic.c:1245
+msgid "blank FROM field on Link line"
+msgstr "prázdná položka OD v řádku Link"
+
+#: timezone/zic.c:1249
+msgid "blank TO field on Link line"
+msgstr "prázdná položka DO v řádku Link"
+
+#: timezone/zic.c:1327
+msgid "invalid starting year"
+msgstr "neplatný poÄáteÄní rok"
+
+#: timezone/zic.c:1349
+msgid "invalid ending year"
+msgstr "neplatný koncový rok"
+
+#: timezone/zic.c:1353
+msgid "starting year greater than ending year"
+msgstr "poÄáteÄní rok vÄ›tší než koncový"
+
+#: timezone/zic.c:1360
+msgid "typed single year"
+msgstr "zadán jeden rok"
+
+#: timezone/zic.c:1395
msgid "invalid weekday name"
-msgstr "neplatný název dne"
+msgstr "neplatný název dne"
-#: nscd/connections.c:460
+#: timezone/zic.c:1573
#, c-format
-msgid "key length in request too long: %Zd"
-msgstr "délka klíèe v ¾ádosti je pøíli¹ dlouhá: %Zd"
+msgid "%s: Can't remove %s: %s\n"
+msgstr "%s: %s nelze smazat: %s\n"
-#: locale/programs/ld-collate.c:1426
-msgid "line after ellipsis must contain character definition"
-msgstr "øádek za '...' musí obsahovat definici znaku"
+#: timezone/zic.c:1583
+#, c-format
+msgid "%s: Can't create %s: %s\n"
+msgstr "%s: %s nelze vytvořit: %s\n"
-#: locale/programs/ld-collate.c:1405
-msgid "line before ellipsis does not contain definition for character constant"
-msgstr "øádek pøed '...' neobsahuje definici znaku"
+#: timezone/zic.c:1733
+#, c-format
+msgid "%s: Error writing %s\n"
+msgstr "%s: Chyba při zápisu %s\n"
-#: timezone/zic.c:831
-msgid "line too long"
-msgstr "øádek je pøíli¹ dlouhý"
+#: timezone/zic.c:2025
+msgid "no POSIX environment variable for zone"
+msgstr "žádná proměnná prostředí pro zónu podle POSIXU"
-#: iconv/iconv_prog.c:58
-msgid "list all known coded character sets"
-msgstr "vypí¹e v¹echny známé znakové sady"
+#: timezone/zic.c:2179
+msgid "can't determine time zone abbreviation to use just after until time"
+msgstr "zkratku Äasového pásma pro použití ihned po Äasovém údaji nelze nelézt"
-#: locale/programs/localedef.c:270
-#, c-format
-msgid "locale file `%s', used in `copy' statement, not found"
-msgstr "soubor `%s' národního prostøedí pou¾itý v pøíkazu `copy' nebyl nalezen"
+#: timezone/zic.c:2225
+msgid "too many transitions?!"
+msgstr "příliš mnoho přechodů?!"
-#: inet/rcmd.c:315
-msgid "lstat failed"
-msgstr "funkce lstat() skonèila s chybou"
+#: timezone/zic.c:2244
+msgid "internal error - addtype called with bad isdst"
+msgstr "vnitřní chyba – addtype volán s chybným isdst"
-#: catgets/gencat.c:625
-msgid "malformed line ignored"
-msgstr "deformovaný øádek - ignorován"
+#: timezone/zic.c:2248
+msgid "internal error - addtype called with bad ttisstd"
+msgstr "vnitřní chyba – addtype volán s chybným ttisstd"
-#: elf/sprof.c:550
-msgid "mapping of section header string table failed"
-msgstr "chyba pøi mapování tabulky øetìzcù z hlavièky sekce do pamìti"
+#: timezone/zic.c:2252
+msgid "internal error - addtype called with bad ttisgmt"
+msgstr "vnitřní chyba – addtype volán s chybným ttisgmt"
-#: elf/sprof.c:540
-msgid "mapping of section headers failed"
-msgstr "chyba pøi mapování hlavièek sekcí do pamìti"
+#: timezone/zic.c:2271
+msgid "too many local time types"
+msgstr "příliÅ¡ mnoho lokálních Äasových typů"
-#: malloc/mcheck.c:202
-msgid "memory clobbered before allocated block\n"
-msgstr "pamì» pøed zaèátkem pøidìleného bloku pøepsána\n"
+#: timezone/zic.c:2299
+msgid "too many leap seconds"
+msgstr "příliš mnoho přestupných sekund"
-#: malloc/mcheck.c:205
-msgid "memory clobbered past end of allocated block\n"
-msgstr "pamì» za koncem pøidìleného bloku pøepsána\n"
-
-#: locale/programs/ld-collate.c:170 locale/programs/ld-collate.c:176
-#: locale/programs/ld-collate.c:180 locale/programs/ld-collate.c:1453
-#: locale/programs/ld-collate.c:1482 locale/programs/locfile.c:1088
-#: locale/programs/xmalloc.c:70 login/programs/database.c:62
-#: login/programs/database.c:79 login/programs/database.c:95
-#: malloc/obstack.c:471 posix/getconf.c:682
-msgid "memory exhausted"
-msgstr "pamì» vyèerpána"
+#: timezone/zic.c:2305
+msgid "repeated leap second moment"
+msgstr "přestupná sekunda opakována"
-#: malloc/mcheck.c:199
-msgid "memory is consistent, library is buggy\n"
-msgstr "pamì» je konzistentní, knihovna je chybná\n"
+#: timezone/zic.c:2357
+msgid "Wild result from command execution"
+msgstr "Vykonaný příkaz dal podivný výsledek"
-#: locale/programs/ld-time.c:373
+#: timezone/zic.c:2358
#, c-format
-msgid "missing era format in string %d in `era' field in category `%s'"
-msgstr "øetìzec (%d) polo¾ky `era' kategorie `%s' je chybného formátu"
+msgid "%s: command was '%s', result was %d\n"
+msgstr "%s: příkaz byl „%s“, a jeho výsledek byl %d\n"
-#: locale/programs/ld-time.c:358
-#, c-format
-msgid "missing era name in string %d in `era' field in category `%s'"
-msgstr "øetìzec (%d) polo¾ky `era' kategorie `%s' neobsahuje jméno éry"
+#: timezone/zic.c:2456
+msgid "Odd number of quotation marks"
+msgstr "Lichý poÄet uvozovek"
-#: timezone/zic.c:954
-msgid "nameless rule"
-msgstr "bezejmenné pravidlo"
+#: timezone/zic.c:2479 timezone/zic.c:2498
+msgid "time overflow"
+msgstr "pÅ™eteÄení Äasu"
-#: iconv/iconv_prog.c:133
-msgid "neither original nor target encoding specified"
-msgstr "pùvodní ani cílové kódování není zadáno"
+#: timezone/zic.c:2545
+msgid "use of 2/29 in non leap-year"
+msgstr "použití 29. února v nepřestupném roce"
-#: nis/nss_nisplus/nisplus-publickey.c:280
-#: nis/nss_nisplus/nisplus-publickey.c:286
-#: nis/nss_nisplus/nisplus-publickey.c:345
-#: nis/nss_nisplus/nisplus-publickey.c:354
-#, c-format
-msgid "netname2user: (nis+ lookup): %s\n"
-msgstr "netname2user: (nis+ lookup): %s\n"
+#: timezone/zic.c:2580
+msgid "rule goes past start/end of month--will not work with pre-2004 versions of zic"
+msgstr "pravidlo zasahuje za zaÄátek/konec mÄ›síce – verze zicu pÅ™ed rokem 2004 nebudou fungovat"
-#: nis/nss_nisplus/nisplus-publickey.c:299
-#, c-format
-msgid "netname2user: DES entry for %s in directory %s not unique"
-msgstr "netname2user: DES záznam pro %s v adresáøi %s není jednoznaèný"
+#: timezone/zic.c:2612
+msgid "time zone abbreviation lacks alphabetic at start"
+msgstr "zkratka Äasové zóny nezaÄíná písmenem"
-# netname2user: LOCAL záznam pro %s v adresáøi %s není jednoznaèný
-#: nis/nss_nisplus/nisplus-publickey.c:367
-#, c-format
-msgid "netname2user: LOCAL entry for %s in directory %s not unique"
-msgstr "netname2user: LOKÁLNÍ záznam pro %s v adresáøi %s není jednoznaèný"
+#: timezone/zic.c:2614
+msgid "time zone abbreviation has more than 3 alphabetics"
+msgstr "zkratka Äasové zóny má více než 3 písmena"
+
+#: timezone/zic.c:2616
+msgid "time zone abbreviation has too many alphabetics"
+msgstr "zkratka Äasové zóny má příliÅ¡ mnoho písmen"
+
+#: timezone/zic.c:2626
+msgid "time zone abbreviation differs from POSIX standard"
+msgstr "zkratka Äasové zóny nesouhlasí se standardem POSIX"
-# zpráva vyjadøuje, ¾e v %s má být seznam id skupin, ale není tomu tak
-#: nis/nss_nisplus/nisplus-publickey.c:206
+#: timezone/zic.c:2638
+msgid "too many, or too long, time zone abbreviations"
+msgstr "příliÅ¡ mnoho nebo příliÅ¡ dlouhé zkratky Äasového pásma"
+
+#: timezone/zic.c:2679
#, c-format
-msgid "netname2user: missing group id list in `%s'."
-msgstr "netname2user: `%s' není seznam id skupin."
+msgid "%s: Can't create directory %s: %s\n"
+msgstr "%s: Adresář %s nelze vytvořit: %s\n"
-#: nis/nss_nisplus/nisplus-publickey.c:317
+#: timezone/zic.c:2701
#, c-format
-msgid "netname2user: principal name `%s' too long"
-msgstr "netname2user: hlavní (principal) název `%s' je pøíli¹ dlouhý"
+msgid "%s: %d did not sign extend correctly\n"
+msgstr "%s: při přetypování %d došlo k chybě znaménka\n"
-#: nis/nss_nisplus/nisplus-publickey.c:374
-msgid "netname2user: should not have uid 0"
-msgstr "netname2user: nemìl bych mít uid 0"
+#~ msgid "Writing of cache data failed."
+#~ msgstr "Zápis kešovaných dat selhal."
-# nikdy neregistrovaný program (%d)
-#: sunrpc/svc_simple.c:158
-#, c-format
-msgid "never registered prog %d\n"
-msgstr "dosud neregistrovaný program (%d)\n"
+#~ msgid "empty dynamics string token substitution"
+#~ msgstr "prázdné nahrazení dynamických řetězcových dílků (DST)"
-#: locale/programs/repertoire.c:250
-msgid "no <Uxxxx> or <Uxxxxxxxx> value given"
-msgstr "hodnota <Uxxxx> nebo <Uxxxxxxxx> nebyla zadána"
+#~ msgid "Can't lstat %s"
+#~ msgstr "Nelze získat informace o symbolickém odkazu %s"
-#: locale/programs/ld-messages.c:101 locale/programs/ld-messages.c:125
-#, c-format
-msgid "no correct regular expression for field `%s' in category `%s': %s"
-msgstr "v polo¾ce `%s' v kategorii `%s' není korektní regulární výraz: %s"
+#~ msgid "<%s> and <%s> are illegal names for range"
+#~ msgstr "<%s> a <%s> jsou zakázané názvy pro rozsah"
-#: timezone/zic.c:2143
-msgid "no day in month matches rule"
-msgstr "pravidlu nevyhovuje ¾ádný den v mìsíci"
+#~ msgid "upper limit in range is not higher then lower limit"
+#~ msgstr "horní mez rozsahu není větší než dolní"
-#: locale/programs/ld-collate.c:267
-msgid "no definition of `UNDEFINED'"
-msgstr "chybí definice symbolu `UNDEFINED'"
+#~ msgid "%s: character `%s' not defined in charmap while needed as default value"
+#~ msgstr "%s: znak „%s“ potřebný jako implicitní hodnota není v mapě znaků definován"
-#: elf/sprof.c:272
-#, c-format
-msgid "no filename for profiling data given and shared object `%s' has no soname"
-msgstr "název souboru pro profilovací data nebyl zadán a sdílený objekt `%s' nemá soname"
+#~ msgid "character `%s' not defined while needed as default value"
+#~ msgstr "znak „%s“ potřebný jako implicitní hodnota není definován"
-#: locale/programs/locfile.c:615
-msgid "no other keyword shall be specified when `copy' is used"
-msgstr "pøi pou¾ití `copy' není dovoleno pou¾ít ¾ádné jiné klíèové slovo"
+#~ msgid "%s: value for field `%s' must not be the empty string"
+#~ msgstr "%s: hodnota položky „%s“ nesmí být prázdný řetězec"
-#: locale/programs/localedef.c:331
-msgid "no output file produced because warnings were issued"
-msgstr "výstupní soubor nebyl vytvoøen, proto¾e se vyskytla varování"
+#~ msgid "%s: values of field `%s' must not be larger than %d"
+#~ msgstr "%s: hodnoty položky „%s“ nesmí být větší než %d"
-#: locale/programs/locfile.c:283 locale/programs/locfile.c:302
-#: locale/programs/locfile.c:321 locale/programs/locfile.c:340
-#: locale/programs/locfile.c:359 locale/programs/locfile.c:378
-msgid "no repertoire map specified: cannot proceed"
-msgstr "repertoár znakù nebyl zadán: nelze pokraèovat"
+#~ msgid "Failed to drop capabilities\n"
+#~ msgstr "Vzdání se kvalifikací se nezdařilo\n"
-#: locale/programs/charmap.c:400 locale/programs/charmap.c:549
-#: locale/programs/charmap.c:628 locale/programs/repertoire.c:211
-msgid "no symbolic name given"
-msgstr "¾ádné symbolické jméno nebylo zadáno"
+#~ msgid "starting year too low to be represented"
+#~ msgstr "poÄáteÄní rok je pro uložení příliÅ¡ malý"
-#: locale/programs/charmap.c:464 locale/programs/charmap.c:595
-#: locale/programs/charmap.c:661 locale/programs/repertoire.c:273
-msgid "no symbolic name given for end of range"
-msgstr "¾ádné symbolické jméno nebylo pro konec rozsahu zadáno"
+#~ msgid "starting year too high to be represented"
+#~ msgstr "poÄáteÄní rok je pro uložení příliÅ¡ velký"
-#: locale/programs/ld-collate.c:249
-#, c-format
-msgid "no weight defined for symbol `%s'"
-msgstr "symbol `%s' nemá definovanou váhu"
+#~ msgid "ending year too low to be represented"
+#~ msgstr "koncový rok je pro reprezentaci příliš malý"
-#: inet/rcmd.c:317
-msgid "not regular file"
-msgstr "není obyèejným souborem"
+#~ msgid "ending year too high to be represented"
+#~ msgstr "poÄáteÄní rok je pro reprezentaci příliÅ¡ velký"
-#: nscd/nscd_stat.c:130
-#, c-format
-msgid ""
-"nscd configuration:\n"
-"\n"
-"%15d server debug level\n"
-msgstr ""
-"konfigurace nscd:\n"
-"\n"
-"%15d ladící úroveò serveru\n"
+#~ msgid " no"
+#~ msgstr " ne"
-#: nscd/nscd_stat.c:104
-msgid "nscd not running!\n"
-msgstr "nscd nebì¾í!\n"
+#~ msgid " yes"
+#~ msgstr " ano"
-#: locale/programs/charmap.c:513
-msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
-msgstr "definici CHARMAP mohou následovat pouze definice WIDTH"
+#~ msgid " done\n"
+#~ msgstr " dokonÄeno\n"
-#: iconv/iconv_prog.c:135
-msgid "original encoding not specified using `-f'"
-msgstr "pùvodní kódování nebylo pomocí `-f' zadáno"
+#~ msgid "%s: Error writing "
+#~ msgstr "%s: Chyba při zápisu na "
-#: iconv/iconv_prog.c:60
-msgid "output file"
-msgstr "výstupní soubor"
+#~ msgid "%s: cannot get modification time"
+#~ msgstr "%s: Äas poslední zmÄ›ny souboru nelze zjistit"
-#: sunrpc/pm_getmaps.c:73
-msgid "pmap_getmaps rpc problem"
-msgstr "pmap_getmaps problém s rpc"
+#~ msgid "Address family not supported by protocol family"
+#~ msgstr "Třída adres není podporována třídou protokolů"
-#: inet/rcmd.c:186
-msgid "poll: protocol failure in circuit setup\n"
-msgstr "poll: chyba protokolu bìhem pøípravy okruhu\n"
+#~ msgid "Anode table overflow"
+#~ msgstr "PÅ™eteÄení tabulky A-uzlů"
-#: sunrpc/rpc_scan.c:523 sunrpc/rpc_scan.c:533
-msgid "preprocessor error"
-msgstr "chyba preprocesoru"
+#~ msgid "Arg list too long"
+#~ msgstr "Příliš dlouhý seznam argumentů"
-#: elf/sprof.c:74
-msgid "print list of count paths and their number of use"
-msgstr "vypí¹e seznam symbolù a poèet jejich pou¾ití"
+#~ msgid "Argument out of domain"
+#~ msgstr "Argument je mimo definiÄní obor"
-#: iconv/iconv_prog.c:61
-msgid "print progress information"
-msgstr "vypisuje informace o prùbìhu"
+#~ msgid "Attempting to link in more shared libraries than system limit"
+#~ msgstr "Pokus o připojení více sdílených knihoven než je limit systému"
-#: db2/makedb.c:345
-#, c-format
-msgid "problems while reading `%s'"
-msgstr "problémy bìhem ètení `%s'"
+#~ msgid "Bad exchange descriptor"
+#~ msgstr "Chybný popisovaÄ výmÄ›níku"
-#: elf/sprof.c:687
-#, c-format
-msgid "profiling data file `%s' does not match shared object `%s'"
-msgstr "profilovací data `%s' nesouhlasí se sdíleným objektem `%s'"
+#~ msgid "Bad file number"
+#~ msgstr "Chybné Äíslo souboru"
-#: sunrpc/rpcinfo.c:237 sunrpc/rpcinfo.c:383
-#, c-format
-msgid "program %lu is not available\n"
-msgstr "program %lu není dostupný\n"
+#~ msgid "Bad request descriptor"
+#~ msgstr "Neplatný popisovaÄ požadavku"
-#: sunrpc/rpcinfo.c:264 sunrpc/rpcinfo.c:310 sunrpc/rpcinfo.c:333
-#: sunrpc/rpcinfo.c:407 sunrpc/rpcinfo.c:453 sunrpc/rpcinfo.c:476
-#: sunrpc/rpcinfo.c:510
-#, c-format
-msgid "program %lu version %lu is not available\n"
-msgstr "program %lu verze %lu není dostupný\n"
+#~ msgid "CDS"
+#~ msgstr "CDS"
-#: sunrpc/rpcinfo.c:515
-#, c-format
-msgid "program %lu version %lu ready and waiting\n"
-msgstr "program %lu verze %lu je pøipraven a èeká\n"
+#~ msgid "Can not exec a shared library directly"
+#~ msgstr "Sdílenou knihovnu nelze spustit přímo"
-#: inet/rcmd.c:183
-#, c-format
-msgid "rcmd: poll (setting up stderr): %m\n"
-msgstr "rcmd: poll (nastavování stderr): %m\n"
+#~ msgid "Cannot send after socket shutdown"
+#~ msgstr "Nelze vysílat po přerušení spojení"
-#: inet/rcmd.c:117
-msgid "rcmd: socket: All ports in use\n"
-msgstr "rcmd: soket: Volný port nebyl nalezen\n"
+#~ msgid "Computing table size for character classes might take a while..."
+#~ msgstr "VýpoÄet velkosti tabulky pro třídy znaků (může chvíli trvat)..."
-#: inet/rcmd.c:173
-#, c-format
-msgid "rcmd: write (setting up stderr): %m\n"
-msgstr "rcmd: write (nastavování stderr): %m\n"
+#~ msgid "Computing table size for collation information might take a while..."
+#~ msgstr "VýpoÄet velkosti tabulky pro informace o Å™azení (může chvíli trvat)..."
-#: sunrpc/svc_simple.c:98
-msgid "registerrpc: out of memory\n"
-msgstr "registerrpc: nedostatek pamìti\n"
+# Nepřípustný odkaz mezi zařízeními
+#~ msgid "Cross-device link"
+#~ msgstr "Odkaz mezi zařízeními"
-#: timezone/zic.c:1875
-msgid "repeated leap second moment"
-msgstr "pøestupná sekunda opakována"
+#~ msgid "DNANS"
+#~ msgstr "DNANS"
-#: locale/programs/repertoire.c:107
-#, c-format
-msgid "repertoire map file `%s' not found"
-msgstr "soubor `%s' repertoáru znakù nebyl nalezen"
+#~ msgid "DNS"
+#~ msgstr "DNS"
-#: sunrpc/rpc_main.c:1115
-msgid "rpcgen: arglist coding error\n"
-msgstr "rpcgen: chyba pøi vkládání do seznamu argumentù\n"
+#~ msgid "Deadlock situation detected/avoided"
+#~ msgstr "Uváznutí detekováno/bylo mu zabráněno"
-#: sunrpc/rpc_main.c:1103
-msgid "rpcgen: too many defines\n"
-msgstr "rpcgen: pøíli¹ mnoho definic\n"
+#~ msgid "Device busy"
+#~ msgstr "Zařízení je používáno"
-#: sunrpc/rpcinfo.c:732
-#, c-format
-msgid "rpcinfo: %s is unknown host\n"
-msgstr "rpcinfo: %s je neznámý poèítaè\n"
+#~ msgid "Device not configured"
+#~ msgstr "Zařízení není nakonfigurováno"
-#: sunrpc/rpcinfo.c:695
-#, c-format
-msgid "rpcinfo: %s is unknown service\n"
-msgstr "rpcinfo: %s je neznámá slu¾ba\n"
+#~ msgid "Disc quota exceeded"
+#~ msgstr "PÅ™ekroÄena disková kvóta"
-#: sunrpc/rpcinfo.c:665
-#, c-format
-msgid "rpcinfo: Could not delete registration for prog %s version %s\n"
-msgstr "rpcinfo: Registraci programu %s verze %s nelze zru¹it\n"
+#~ msgid "Error 0"
+#~ msgstr "Chyba 0"
-#: sunrpc/rpcinfo.c:637
-#, c-format
-msgid "rpcinfo: broadcast failed: %s\n"
-msgstr "rpcinfo: v¹esmìrové vysílání nebylo úspì¹né: %s\n"
+#~ msgid "Error 100"
+#~ msgstr "Chyba 100"
-#: sunrpc/rpcinfo.c:556 sunrpc/rpcinfo.c:563
-msgid "rpcinfo: can't contact portmapper"
-msgstr "rpcinfo: s portmapperem se nelze spojit"
+#~ msgid "Error 101"
+#~ msgstr "Chyba 101"
-#: timezone/zic.c:744 timezone/zic.c:746
-msgid "same rule name in multiple files"
-msgstr "stejné jméno pravidla je pou¾ito ve více souborech"
+#~ msgid "Error 102"
+#~ msgstr "Chyba 102"
-#: nscd/connections.c:472
-#, c-format
-msgid "short read while reading request key: %s"
-msgstr "neúplné ètení klíèe ¾ádosti: %s"
+#~ msgid "Error 103"
+#~ msgstr "Chyba 103"
-#: nscd/connections.c:430
-#, c-format
-msgid "short read while reading request: %s"
-msgstr "neúplné ètení ¾ádosti: `%s'"
+#~ msgid "Error 104"
+#~ msgstr "Chyba 104"
-#: nscd/grpcache.c:191 nscd/hstcache.c:270 nscd/pwdcache.c:189
-#, c-format
-msgid "short write in %s: %s"
-msgstr "neúplný zápis v %s(): %s"
+#~ msgid "Error 105"
+#~ msgstr "Chyba 105"
-#: inet/rcmd.c:204
-msgid "socket: protocol failure in circuit setup\n"
-msgstr "soket: chyba protokolu pøi pøípravì okruhu\n"
+#~ msgid "Error 106"
+#~ msgstr "Chyba 106"
-#: locale/programs/locfile.c:736
-msgid "sorting order `forward' and `backward' are mutually exclusive"
-msgstr "poøadí øazení `forward' a `backward' se navzájem vyluèují"
+#~ msgid "Error 107"
+#~ msgstr "Chyba 107"
-#: locale/programs/ld-collate.c:1586 locale/programs/ld-collate.c:1632
-msgid "specification of sorting weight for collation symbol does not make sense"
-msgstr "uvedení váhy pro symbol øazení nemá význam"
+#~ msgid "Error 108"
+#~ msgstr "Chyba 108"
-#: timezone/zic.c:815
-msgid "standard input"
-msgstr "standardní vstup"
+#~ msgid "Error 109"
+#~ msgstr "Chyba 109"
-#: timezone/zdump.c:268
-msgid "standard output"
-msgstr "standardní výstup"
+#~ msgid "Error 110"
+#~ msgstr "Chyba 110"
-#: locale/programs/ld-time.c:272
-#, c-format
-msgid "starting date is illegal in string %d in `era' field in category `%s'"
-msgstr "nepovolené poèáteèní datum v øetìzci (%d) polo¾ky `era' kategorie `%s'"
+#~ msgid "Error 111"
+#~ msgstr "Chyba 111"
-#: timezone/zic.c:1326
-msgid "starting year greater than ending year"
-msgstr "poèáteèní rok vìt¹í ne¾ koncový"
+#~ msgid "Error 112"
+#~ msgstr "Chyba 112"
-#: timezone/zic.c:1298 timezone/zic.c:1323
-msgid "starting year too high to be represented"
-msgstr "poèáteèní rok je pro ulo¾ení pøíli¹ velký"
+#~ msgid "Error 113"
+#~ msgstr "Chyba 113"
-#: timezone/zic.c:1296 timezone/zic.c:1321
-msgid "starting year too low to be represented"
-msgstr "poèáteèní rok je pro ulo¾ení pøíli¹ malý"
+#~ msgid "Error 114"
+#~ msgstr "Chyba 114"
-#: locale/programs/ld-time.c:348
-#, c-format
-msgid "stopping date is illegal in string %d in `era' field in category `%s'"
-msgstr "nepovolené koncové datum v øetìzci (%d) polo¾ky `era' kategorie `%s'"
+#~ msgid "Error 115"
+#~ msgstr "Chyba 115"
-#: sunrpc/svc_run.c:81
-msgid "svc_run: - select failed"
-msgstr "svc_run: funkce select skonèila s chybou"
+#~ msgid "Error 116"
+#~ msgstr "Chyba 116"
-#: sunrpc/svc_tcp.c:160
-msgid "svc_tcp.c - cannot getsockname or listen"
-msgstr "svc_tcp.c - pøi getsockname nebo listen vznikla chyba"
+#~ msgid "Error 117"
+#~ msgstr "Chyba 117"
-#: sunrpc/svc_tcp.c:145
-msgid "svc_tcp.c - tcp socket creation problem"
-msgstr "svc_tcp.c - pøi vytváøení tcp soketu vznikla chyba"
+#~ msgid "Error 118"
+#~ msgstr "Chyba 118"
-#: sunrpc/svc_tcp.c:209 sunrpc/svc_tcp.c:215
-msgid "svc_tcp: makefd_xprt: out of memory\n"
-msgstr "svc_tcp: makefd_xprt: nedostatek pamìti\n"
+#~ msgid "Error 119"
+#~ msgstr "Chyba 119"
-#: sunrpc/svc_unix.c:135
-msgid "svc_unix.c - AF_UNIX socket creation problem"
-msgstr "svc_unix.c - pøi vytváøení AF_UNIX soketu vznikla chyba"
+#~ msgid "Error 136"
+#~ msgstr "Chyba 136"
-#: sunrpc/svc_unix.c:151
-msgid "svc_unix.c - cannot getsockname or listen"
-msgstr "svc_unix.c - pøi getsockname nebo listen vznikla chyba"
+#~ msgid "Error 142"
+#~ msgstr "Chyba 142"
-#: sunrpc/svc_unix.c:201 sunrpc/svc_unix.c:207
-msgid "svc_unix: makefd_xprt: out of memory\n"
-msgstr "svc_unix: makefd_xprt: nedostatek pamìti\n"
+#~ msgid "Error 58"
+#~ msgstr "Chyba 58"
-#: sunrpc/svc_tcp.c:168 sunrpc/svc_tcp.c:176
-msgid "svctcp_create: out of memory\n"
-msgstr "svctcp_create: nedostatek pamìti\n"
+#~ msgid "Error 59"
+#~ msgstr "Chyba 59"
-#: sunrpc/svc_udp.c:135
-msgid "svcudp_create - cannot getsockname"
-msgstr "svcudp_create - pøi getsockname vznikla chyba"
+#~ msgid "Error 72"
+#~ msgstr "Chyba 72"
-#: sunrpc/svc_udp.c:143 sunrpc/svc_udp.c:149 sunrpc/svc_udp.c:155
-msgid "svcudp_create: out of memory\n"
-msgstr "svcudp_create: nedostatek pamìti\n"
+#~ msgid "Error 73"
+#~ msgstr "Chyba 73"
-#: sunrpc/svc_udp.c:121
-msgid "svcudp_create: socket creation problem"
-msgstr "svcudp_create: soket nelze vytvoøit"
+#~ msgid "Error 75"
+#~ msgstr "Chyba 75"
-#: sunrpc/svc_unix.c:160 sunrpc/svc_unix.c:168
-msgid "svcunix_create: out of memory\n"
-msgstr "svcunix_create: nedostatek pamìti\n"
+#~ msgid "Error 76"
+#~ msgstr "Chyba 76"
-#: locale/programs/ld-collate.c:1077 locale/programs/ld-collate.c:1205
-#, c-format
-msgid "symbol for multicharacter collating element `%.*s' duplicates element definition"
-msgstr "symbol pro víceznakový prvek øazení `%.*s' duplikuje definici prvku"
+#~ msgid "Error 91"
+#~ msgstr "Chyba 91"
-#: locale/programs/ld-collate.c:1214
-#, c-format
-msgid "symbol for multicharacter collating element `%.*s' duplicates other symbol definition"
-msgstr "symbol pro víceznakový prvek øazení `%.*s' duplikuje definici jiného symbolu"
+#~ msgid "Error 92"
+#~ msgstr "Chyba 92"
-#: locale/programs/ld-collate.c:1086
-#, c-format
-msgid "symbol for multicharacter collating element `%.*s' duplicates symbol definition"
-msgstr "symbol pro víceznakový prvek øazení `%.*s' duplikuje definici symbolu"
+#~ msgid "File locking deadlock"
+#~ msgstr "Vzájemné zablokování při zamykaní souboru"
-#: locale/programs/ld-collate.c:1068 locale/programs/ld-collate.c:1196
-#, c-format
-msgid "symbol for multicharacter collating element `%.*s' duplicates symbolic name in charset"
-msgstr "symbol pro víceznakový prvek øazení `%.*s' duplikuje symbolické jméno ve znakové sadì"
+#~ msgid "File table overflow"
+#~ msgstr "PÅ™eteÄení tabulky souborů"
-#: locale/programs/charmap.c:399 locale/programs/charmap.c:433
-#: locale/programs/charmap.c:462 locale/programs/charmap.c:548
-#: locale/programs/charmap.c:594 locale/programs/charmap.c:627
-#: locale/programs/charmap.c:659
-#, c-format
-msgid "syntax error in %s definition: %s"
-msgstr "syntaktická chyba v definici %s: %s"
+#~ msgid "Get locale-specific information."
+#~ msgstr "Získání urÄitých informací o národním prostÅ™edí."
-#: locale/programs/locfile.c:756
-msgid "syntax error in `order_start' directive"
-msgstr "syntaktická chyba v direktivì `order_start'"
+#~ msgid "Haven't found \"%d\" in group cache!"
+#~ msgstr "\"%d\" nebylo v cache paměti pro skupiny nalezeno!"
-#: locale/programs/locfile.c:498
-msgid "syntax error in character class definition"
-msgstr "syntaktická chyba v definici tøídy znakù"
+#~ msgid "Haven't found \"%d\" in password cache!"
+#~ msgstr "\"%d\" nebylo v cache paměti pro hesla nalezeno!"
-#: locale/programs/locfile.c:556
-msgid "syntax error in character conversion definition"
-msgstr "syntaktická chyba v definici konverze znakù"
+# Vzdálená V/V chyba
+#~ msgid "I/O error"
+#~ msgstr "Chyba vstupu/výstupu"
-#: locale/programs/locfile.c:798
-msgid "syntax error in collating order definition"
-msgstr "syntaktická chyba v definici poøadí øazení"
+#~ msgid "IVY"
+#~ msgstr "IVY"
-#: locale/programs/locfile.c:648
-msgid "syntax error in collation definition"
-msgstr "syntaktická chyba v definici øazení"
+#~ msgid "Illegal byte sequence"
+#~ msgstr "Nedovolené pořadí bajtů"
-#: locale/programs/locfile.c:471
-msgid "syntax error in definition of LC_CTYPE category"
-msgstr "syntaktická chyba v definici kategorie LC_CTYPE"
+# Je pojmenovaný typ souboru
+#~ msgid "Is a name file"
+#~ msgstr "Je názvový soubor"
-#: locale/programs/locfile.c:414
-msgid "syntax error in definition of new character class"
-msgstr "syntaktická chyba v definici nové tøídy znakù"
+#~ msgid "Message tables full"
+#~ msgstr "Tabulky zpráv jsou plné"
-#: locale/programs/locfile.c:424
-msgid "syntax error in definition of new character map"
-msgstr "syntaktická chyba v definici nové znakové sady"
+#~ msgid "NIS"
+#~ msgstr "NIS"
-#: locale/programs/locfile.c:1009
-msgid "syntax error in message locale definition"
-msgstr "syntaktická chyba v definici národních zpráv"
+#~ msgid "Network dropped connection because of reset"
+#~ msgstr "Síť zruÅ¡ila spojení (problém se vzdáleným poÄítaÄem)"
-#: locale/programs/locfile.c:920
-msgid "syntax error in monetary locale definition"
-msgstr "syntaktická chyba v definici národního prostøedí pro penì¾ní údaje"
+#~ msgid "No record locks available"
+#~ msgstr "Nejsou žádné volné zámky záznamů"
-#: locale/programs/locfile.c:947
-msgid "syntax error in numeric locale definition"
-msgstr "syntaktická chyba v definici národního prostøedí pro èísla"
+#~ msgid "Not a data message"
+#~ msgstr "Není datovou zprávou"
-#: locale/programs/locfile.c:858
-msgid "syntax error in order specification"
-msgstr "syntaktická chyba ve specifikaci poøadí"
+#~ msgid "Not a stream device"
+#~ msgstr "Není zařízení typu proud"
-#: locale/programs/charmap.c:280 locale/programs/charmap.c:296
-#: locale/programs/repertoire.c:155
-#, c-format
-msgid "syntax error in prolog: %s"
-msgstr "syntaktická chyba v prologu: %s"
+#~ msgid "Not available"
+#~ msgstr "Není k dispozici"
-#: locale/programs/repertoire.c:210 locale/programs/repertoire.c:249
-#: locale/programs/repertoire.c:272
-#, c-format
-msgid "syntax error in repertoire map definition: %s"
-msgstr "syntaktická chyba v definici repertoáru znakù: %s"
+#~ msgid "Not enough space"
+#~ msgstr "Není volné místo"
-#: locale/programs/locfile.c:985
-msgid "syntax error in time locale definition"
-msgstr "syntaktická chyba v definici národního prostøedí pro èas"
+#~ msgid "Number of symbolic links encountered during path name traversal exceeds MAXSYMLINKS"
+#~ msgstr "PoÄet symbolických odkazů zjiÅ¡tÄ›ných pÅ™i procházení cesty pÅ™ekroÄil MAXSYMLINKS"
-#: locale/programs/locfile.c:391
-msgid "syntax error: not inside a locale definition section"
-msgstr "syntaktická chyba: není uvnitø sekce pro definici národního prostøedí"
+#~ msgid "Operation not applicable"
+#~ msgstr "Operace není použitelná"
-#: iconv/iconv_prog.c:137
-msgid "target encoding not specified using `-t'"
-msgstr "kódování cíle nebylo pomocí `-t' zadáno"
+#~ msgid "Operation not supported on transport endpoint"
+#~ msgstr "Operace není podporována na cílovém bodu cesty"
-#: catgets/gencat.c:391 catgets/gencat.c:530 catgets/gencat.c:559
-msgid "this is the first definition"
-msgstr "toto je první definice"
+#~ msgid "Option not supported by protocol"
+#~ msgstr "Volba není protokolem podporována"
-#: timezone/zic.c:1158
-msgid "time before zero"
-msgstr "èas men¹í ne¾ nula"
+# Zdroje proudu vyÄerpány
+#~ msgid "Out of stream resources"
+#~ msgstr "Již nejsou volné proudy"
-#: timezone/zic.c:1166 timezone/zic.c:2043 timezone/zic.c:2062
-msgid "time overflow"
-msgstr "pøeteèení èasu"
+#~ msgid "Read and display shared object profiling data"
+#~ msgstr "PÅ™eÄtení a vypsání profilovacích dat sdíleného objektu."
-#: locale/programs/charmap.c:443
-msgid "too few bytes in character encoding"
-msgstr "v kódu znaku je pøíli¹ málo bajtù"
+#~ msgid "Report bugs using the `glibcbug' script to <bugs@gnu.org>.\n"
+#~ msgstr ""
+#~ " Chyby v programu oznamujte pomocí skriptu `glibcbug' na adresu <bugs@gnu.org>\n"
+#~ "(pouze anglicky), pÅ™ipomínky k pÅ™ekladu zasílejte na <cs@li.org> (Äesky).\n"
-#: locale/programs/charmap.c:445
-msgid "too many bytes in character encoding"
-msgstr "v kódu znaku je pøíli¹ mnoho bajtù"
+#~ msgid "Reserved for future use"
+#~ msgstr "Rezervováno pro budoucí použití"
-#: locale/programs/locales.h:92
-msgid "too many character classes defined"
-msgstr "definováno pøíli¹ mnoho znakových tøíd"
+#~ msgid "Result too large"
+#~ msgstr "Výsledek je příliš velký"
-#: timezone/zic.c:1869
-msgid "too many leap seconds"
-msgstr "pøíli¹ mnoho pøestupných sekund"
+#~ msgid "SUNYP"
+#~ msgstr "SUNYP"
-#: timezone/zic.c:1841
-msgid "too many local time types"
-msgstr "pøíli¹ mnoho lokálních èasových typù"
+#~ msgid "X500"
+#~ msgstr "X500"
-#: timezone/zic.c:1795
-msgid "too many transitions?!"
-msgstr "pøíli¹ mnoho pøechodù?!"
+#~ msgid "XCHS"
+#~ msgstr "XCHS"
-#: locale/programs/ld-collate.c:1641
-msgid "too many weights"
-msgstr "pøíli¹ mnoho vah"
+#~ msgid "YPBINDPROC_DOMAIN: %s\n"
+#~ msgstr "YPBINDPROC_DOMAIN: %s\n"
-#: timezone/zic.c:2166
-msgid "too many, or too long, time zone abbreviations"
-msgstr "pøíli¹ mnoho nebo pøíli¹ dlouhé zkratky èasového pásma"
+#~ msgid "__get_myaddress: ioctl (get interface configuration)"
+#~ msgstr "__get_myaddress: ioctl (Ätení konfigurace rozhraní)"
-#: locale/programs/linereader.h:146
-msgid "trailing garbage at end of line"
-msgstr "smetí na konci øádku"
+#~ msgid "`...' must only be used in `...' and `UNDEFINED' entries"
+#~ msgstr "`...' může být použito jen v položkách `...' a `UNDEFINED'"
-#: sunrpc/svc_simple.c:150
-#, c-format
-msgid "trouble replying to prog %d\n"
-msgstr "problémy pøi odpovídání programu %d\n"
+#~ msgid "`from' expected after first argument to `collating-element'"
+#~ msgstr "Za prvním argumentem pro `collating-element' je oÄekáváno `from'"
-#: locale/programs/ld-collate.c:1397
-msgid "two lines in a row containing `...' are not allowed"
-msgstr "dva øádky za sebou obsahující `...' nejsou povoleny"
+#~ msgid "`from' string in collation element declaration contains unknown character"
+#~ msgstr "ŘetÄ›zec `z-Äeho' v deklaraci prvku Å™azení obsahuje neznámý znak"
-#: timezone/zic.c:1333
-msgid "typed single year"
-msgstr "zadán jeden rok"
+#~ msgid "broadcast: ioctl (get interface configuration)"
+#~ msgstr "vÅ¡esmÄ›rové vysílání: ioctl (Ätení konfigurace rozhraní)"
-#: iconv/iconv_prog.c:434
-msgid "unable to allocate buffer for input"
-msgstr "vyrovnávací pamì» pro vstup nelze alokovat"
+#~ msgid "broadcast: ioctl (get interface flags)"
+#~ msgstr "vÅ¡esmÄ›rové vysílání: ioctl (Ätení příznaků rozhraní)"
-#: nis/nis_callback.c:187
-msgid "unable to free arguments"
-msgstr "argumenty nelze uvolnit"
+#~ msgid "buffer overflow"
+#~ msgstr "pÅ™eteÄení vyrovnávací pamÄ›ti"
-#: posix/getconf.c:654 posix/getconf.c:670
-msgid "undefined"
-msgstr "není definováno"
+#~ msgid "cannot insert collation element `%.*s'"
+#~ msgstr "prvek řazení `%.*s' nelze vložit"
-#: locale/programs/charmap.c:700 locale/programs/charmap.c:711
-#, c-format
-msgid "unknown character `%s'"
-msgstr "neznámý znak `%s'"
+#~ msgid "cannot insert new collating symbol definition: %s"
+#~ msgstr "nový symbol řazení nelze vložit: %s"
-#: locale/programs/ld-messages.c:202 locale/programs/ld-messages.c:213
-#: locale/programs/ld-messages.c:224 locale/programs/ld-messages.c:235
-#: locale/programs/ld-time.c:700
-#, c-format
-msgid "unknown character in field `%s' of category `%s'"
-msgstr "neznámý znak v polo¾ce `%s' kategorie `%s'"
+#~ msgid "category data requested more than once: should not happen"
+#~ msgstr "údaje kategorie požadovány více než jednou - to by se nemělo stát"
-#: locale/programs/locfile.c:721
-msgid "unknown collation directive"
-msgstr "neznámá direktiva øazení"
+#~ msgid "character L'%s' (index %Zd) in class `%s' must be in class `%s'"
+#~ msgstr "znak L'%s' (index %Zd) ve třídě `%s' musí být ve třídě `%s'"
-#: catgets/gencat.c:488
-#, c-format
-msgid "unknown directive `%s': line ignored"
-msgstr "neznámá direktiva `%s' - øádek ignorován"
+#~ msgid "character L'%s' (index %Zd) in class `%s' must not be in class `%s'"
+#~ msgstr "znak L'%s' (index %Zd) ve třídě `%s' nesmí být ve třídě `%s'"
-#: iconv/iconv_prog.c:381
-#, c-format
-msgid "unknown iconv() error %d"
-msgstr "neznámá chyba funkce iconv() (%d)"
+#~ msgid "collation element `%.*s' appears more than once: ignore line"
+#~ msgstr "prvek řazení `%.*s' uveden více než jednou - řádek ignorován"
-#: catgets/gencat.c:467
-#, c-format
-msgid "unknown set `%s'"
-msgstr "neznámá sada `%s'"
+#~ msgid "collation symbol `%.*s' appears more than once: ignore line"
+#~ msgstr "symbol řazení `%.*s' uveden více než jednou - řádek ignorován"
-#: locale/programs/ld-collate.c:1381 locale/programs/ld-collate.c:1576
-#: locale/programs/ld-collate.c:1751
-#, c-format
-msgid "unknown symbol `%.*s': line ignored"
-msgstr "neznámý symbol `%.*s' - øádek ignorován"
+#~ msgid "collation symbol expected after `%s'"
+#~ msgstr "po `%s' je oÄekáván symbol Å™azení"
-#: timezone/zic.c:787
-msgid "unruly zone"
-msgstr "èasové pásmo bez pravidel"
+#~ msgid "duplicate character name `%s'"
+#~ msgstr "duplicitní název znaku `%s'"
-#: catgets/gencat.c:977
-msgid "unterminated message"
-msgstr "neukonèená zpráva"
+#~ msgid "end point of ellipsis range is bigger then start"
+#~ msgstr "koncový bod `...' je vÄ›tší než poÄáteÄní"
-#: locale/programs/linereader.c:520 locale/programs/linereader.c:555
-msgid "unterminated string"
-msgstr "neukonèený øetìzec"
+#~ msgid "error while inserting collation element into hash table"
+#~ msgstr "chyba během vkládání prvku řazení do hašovací tabulky"
-# neukonèená øetìzcová konstanta
-#: sunrpc/rpc_scan.c:350 sunrpc/rpc_scan.c:376
-msgid "unterminated string constant"
-msgstr "neukonèený øetìzec"
+#~ msgid "fcntl: F_SETFD"
+#~ msgstr "fcntl: F_SETFD"
-#: locale/programs/linereader.c:390
-msgid "unterminated symbolic name"
-msgstr "neukonèené symbolické jméno"
+#~ msgid "from-value of `collating-element' must be a string"
+#~ msgstr "hodnota z-Äeho pro `collating-element' musí být Å™etÄ›zec"
-# Pøeklad OK
-#: locale/programs/ld-collate.c:1703
-msgid "unterminated weight name"
-msgstr "escape sekvence není celá"
+#~ msgid "get_myaddress: ioctl (get interface configuration)"
+#~ msgstr "get_myaddress: ioctl (Ätení konfigurace rozhraní)"
-#: locale/programs/charset.c:104
-msgid "upper limit in range is not smaller then lower limit"
-msgstr "horní mez rozsahu je men¹í ne¾ dolní"
+# getent - získává záznamy z administrativní databáze.
+#~ msgid "getent - get entries from administrative database."
+#~ msgstr "Získává záznamy z administrativní databáze."
-#: sunrpc/rpc_main.c:1413
-#, c-format
-msgid "usage: %s infile\n"
-msgstr "Pou¾ití: %s vstupní_soubor\n"
+#~ msgid "illegal character constant in string"
+#~ msgstr "nepovolený znak v řetězci"
-#: timezone/zic.c:2109
-msgid "use of 2/29 in non leap-year"
-msgstr "pou¾ití 29. února v nepøestupném roce"
+#~ msgid "illegal collation element"
+#~ msgstr "nepovolený prvek řazení"
-#: locale/programs/charmap.c:521 locale/programs/charmap.c:575
-#, c-format
-msgid "value for %s must be an integer"
-msgstr "hodnota pro %s musí být celé èíslo"
+#~ msgid "line after ellipsis must contain character definition"
+#~ msgstr "řádek za '...' musí obsahovat definici znaku"
-#: locale/programs/charmap.c:318
-#, c-format
-msgid "value for <%s> must lie between 1 and 4"
-msgstr "honota pro <%s> musí být mezi 1 a 4"
+#~ msgid "line before ellipsis does not contain definition for character constant"
+#~ msgstr "řádek před '...' neobsahuje definici znaku"
-#: locale/programs/ld-monetary.c:157 locale/programs/ld-numeric.c:92
-#, c-format
-msgid "value for field `%s' in category `%s' must not be the empty string"
-msgstr "hodnota polo¾ky `%s' kategorie `%s' nesmí být prázdný øetìzec"
+#~ msgid "locale file `%s', used in `copy' statement, not found"
+#~ msgstr "soubor `%s' národního prostředí použitý v příkazu `copy' nebyl nalezen"
-#: locale/programs/charmap.c:330
-msgid "value of <mb_cur_max> must be greater than the value of <mb_cur_min>"
-msgstr "hodnota <mb_cur_max> musí být vìt¹í ne¾ hodnota <mb_cur_min>"
+#~ msgid "neither original nor target encoding specified"
+#~ msgstr "původní ani cílové kódování není zadáno"
-#: locale/programs/ld-monetary.c:147
-msgid "value of field `int_curr_symbol' in category `LC_MONETARY' does not correspond to a valid name in ISO 4217"
-msgstr "hodnota polo¾ky `int_curr_symbol' kategorie `LC_MONETARY' neodpovídá platnému jménu v ISO 4217"
+#~ msgid "no day in month matches rule"
+#~ msgstr "pravidlu nevyhovuje žádný den v měsíci"
-#: locale/programs/ld-monetary.c:139
-msgid "value of field `int_curr_symbol' in category `LC_MONETARY' has wrong length"
-msgstr "hodnota polo¾ky `int_curr_symbol' kategorie `LC_MONETARY' má chybnou délku"
+#~ msgid "no filename for profiling data given and shared object `%s' has no soname"
+#~ msgstr "název souboru pro profilovací data nebyl zadán a sdílený objekt `%s' nemá soname"
-#: locale/programs/ld-monetary.c:383 locale/programs/ld-numeric.c:207
-#, c-format
-msgid "values for field `%s' in category `%s' must be smaller than 127"
-msgstr "hodnoty polo¾ky `%s' kategorie `%s' musí být men¹í ne¾ 127"
+#~ msgid "no repertoire map specified: cannot proceed"
+#~ msgstr "repertoár znaků nebyl zadán: nelze pokraÄovat"
-#: timezone/zic.c:435
-msgid "warning: "
-msgstr "varování: "
+#~ msgid "no weight defined for symbol `%s'"
+#~ msgstr "symbol `%s' nemá definovanou váhu"
-#: nscd/connections.c:421
-#, c-format
-msgid "while accepting connection: %s"
-msgstr "bìhem pøijímání spojení: %s"
+#~ msgid "original encoding not specified using `-f'"
+#~ msgstr "původní kódování nebylo pomocí `-f' zadáno"
-#: nscd/grpcache.c:149 nscd/hstcache.c:168 nscd/pwdcache.c:143
-msgid "while allocating cache entry"
-msgstr "bìhem alokace záznamu cache pamìti"
+#~ msgid "symbol for multicharacter collating element `%.*s' duplicates other symbol definition"
+#~ msgstr "symbol pro víceznakový prvek řazení `%.*s' duplikuje definici jiného symbolu"
-#: nscd/cache.c:88
-msgid "while allocating hash table entry"
-msgstr "bìhem alokace záznamu ha¹ovací tabulky"
+#~ msgid "symbol for multicharacter collating element `%.*s' duplicates symbol definition"
+#~ msgstr "symbol pro víceznakový prvek řazení `%.*s' duplikuje definici symbolu"
-#: nscd/grpcache.c:99 nscd/hstcache.c:111 nscd/pwdcache.c:106
-msgid "while allocating key copy"
-msgstr "bìhem alokace kopie klíèe"
+#~ msgid "symbol for multicharacter collating element `%.*s' duplicates symbolic name in charset"
+#~ msgstr "symbol pro víceznakový prvek řazení `%.*s' duplikuje symbolické jméno ve znakové sadě"
-#: catgets/gencat.c:1007
-msgid "while opening old catalog file"
-msgstr "bìhem otvírání starého katalogu"
+#~ msgid "syntax error in `order_start' directive"
+#~ msgstr "syntaktická chyba v direktivě `order_start'"
-#: locale/programs/locale.c:346
-msgid "while preparing output"
-msgstr "bìhem pøípravy výstupu"
+#~ msgid "syntax error in character class definition"
+#~ msgstr "syntaktická chyba v definici třídy znaků"
-#: db2/makedb.c:365 db2/makedb.c:382
-msgid "while reading database"
-msgstr "bìhem ètení databáze"
+#~ msgid "syntax error in collating order definition"
+#~ msgstr "syntaktická chyba v definici pořadí řazení"
-#: elf/sprof.c:679
-msgid "while stat'ing profiling data file"
-msgstr "bìhem funkce stat() na soubor profilovacích informací"
+#~ msgid "syntax error in collation definition"
+#~ msgstr "syntaktická chyba v definici řazení"
-#: db2/makedb.c:334
-msgid "while writing database file"
-msgstr "bìhem zápisu databáze"
+#~ msgid "syntax error in definition of LC_CTYPE category"
+#~ msgstr "syntaktická chyba v definici kategorie LC_CTYPE"
-#: nscd/nscd_stat.c:115
-msgid "write incomplete"
-msgstr "neúplný zápis"
+#~ msgid "syntax error in message locale definition"
+#~ msgstr "syntaktická chyba v definici národních zpráv"
-#: inet/rcmd.c:328
-msgid "writeable by other than owner"
-msgstr "zapisovatelný nejen pro vlastníka"
+#~ msgid "syntax error in monetary locale definition"
+#~ msgstr "syntaktická chyba v definici národního prostředí pro peněžní údaje"
-#: db2/makedb.c:124 nscd/nscd.c:120 nscd/nscd_nischeck.c:64 nss/getent.c:399
-msgid "wrong number of arguments"
-msgstr "chybný poèet argumentù"
+#~ msgid "syntax error in numeric locale definition"
+#~ msgstr "syntaktická chyba v definici národního prostÅ™edí pro Äísla"
-#: timezone/zic.c:1116
-msgid "wrong number of fields on Leap line"
-msgstr "¹patný poèet polo¾ek v øádku Leap"
+#~ msgid "syntax error in order specification"
+#~ msgstr "syntaktická chyba ve specifikaci pořadí"
-#: timezone/zic.c:1207
-msgid "wrong number of fields on Link line"
-msgstr "¹patný poèet polo¾ek v øádku Link"
+#~ msgid "syntax error in time locale definition"
+#~ msgstr "syntaktická chyba v definici národního prostÅ™edí pro Äas"
-#: timezone/zic.c:950
-msgid "wrong number of fields on Rule line"
-msgstr "¹patný poèet polo¾ek v øádku Rule"
+#~ msgid "target encoding not specified using `-t'"
+#~ msgstr "kódování cíle nebylo pomocí `-t' zadáno"
-#: timezone/zic.c:1020
-msgid "wrong number of fields on Zone continuation line"
-msgstr "¹patný poèet polo¾ek v pokraèovacím øádku Zone"
+#~ msgid "too many character classes defined"
+#~ msgstr "definováno příliš mnoho znakových tříd"
-#: timezone/zic.c:978
-msgid "wrong number of fields on Zone line"
-msgstr "¹patný poèet polo¾ek v øádku Zone"
+#~ msgid "too many weights"
+#~ msgstr "příliš mnoho vah"
-#: sunrpc/xdr_ref.c:84
-msgid "xdr_reference: out of memory\n"
-msgstr "xdr_reference: nedostatek pamìti\n"
+#~ msgid "two lines in a row containing `...' are not allowed"
+#~ msgstr "dva řádky za sebou obsahující `...' nejsou povoleny"
-#: sunrpc/xdr_rec.c:150 sunrpc/xdr_rec.c:165
-msgid "xdrrec_create: out of memory\n"
-msgstr "xdrrec_create: nedostatek pamìti\n"
+#~ msgid "unknown character in field `%s' of category `%s'"
+#~ msgstr "neznámý znak v položce `%s' kategorie `%s'"
-#: nis/ypclnt.c:894
-msgid "yp_update: cannot convert host to netname\n"
-msgstr "yp_update: název poèítaèe nelze konvertovat na sí»ový název\n"
+#~ msgid "unknown collation directive"
+#~ msgstr "neznámá direktiva řazení"
-#: nis/ypclnt.c:906
-msgid "yp_update: cannot get server address\n"
-msgstr "yp_update: adresu serveru nelze zjistit\n"
+# Překlad OK
+#~ msgid "unterminated weight name"
+#~ msgstr "escape sekvence není celá"
+
+#~ msgid "value for <%s> must lie between 1 and 4"
+#~ msgstr "hodnota pro <%s> musí být mezi 1 a 4"
+
+#~ msgid "while accepting connection: %s"
+#~ msgstr "během přijímání spojení: %s"
+
+#~ msgid "while allocating cache entry"
+#~ msgstr "během alokace záznamu cache paměti"
+
+#~ msgid "while allocating hash table entry"
+#~ msgstr "během alokace záznamu hašovací tabulky"
+
+#~ msgid "while allocating key copy"
+#~ msgstr "bÄ›hem alokace kopie klíÄe"
diff --git a/libc/posix/regcomp.c b/libc/posix/regcomp.c
index e99fd7492..129546c32 100644
--- a/libc/posix/regcomp.c
+++ b/libc/posix/regcomp.c
@@ -2747,7 +2747,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
return elem;
}
- /* Local function for parse_bracket_exp used in _LIBC environement.
+ /* Local function for parse_bracket_exp used in _LIBC environment.
Look up the collation sequence value of BR_ELEM.
Return the value if succeeded, UINT_MAX otherwise. */
@@ -2771,7 +2771,8 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
}
else if (br_elem->type == MB_CHAR)
{
- return __collseq_table_lookup (collseqwc, br_elem->opr.wch);
+ if (nrules != 0)
+ return __collseq_table_lookup (collseqwc, br_elem->opr.wch);
}
else if (br_elem->type == COLL_SYM)
{
diff --git a/libc/posix/unistd.h b/libc/posix/unistd.h
index a86968a8d..476c1f3cb 100644
--- a/libc/posix/unistd.h
+++ b/libc/posix/unistd.h
@@ -1096,7 +1096,7 @@ extern char *ctermid (char *__s) __THROW;
/* Define some macros helping to catch buffer overflows. */
-#if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus
+#if __USE_FORTIFY_LEVEL > 0 && defined __extern_always_inline
# include <bits/unistd.h>
#endif
diff --git a/libc/resolv/ns_print.c b/libc/resolv/ns_print.c
index 12b2e67ea..b0b7a1046 100644
--- a/libc/resolv/ns_print.c
+++ b/libc/resolv/ns_print.c
@@ -112,6 +112,7 @@ ns_sprintrrf(const u_char *msg, size_t msglen,
const char *comment;
char tmp[100];
+ char errbuf[40];
int len, x;
/*
@@ -174,11 +175,11 @@ ns_sprintrrf(const u_char *msg, size_t msglen,
rdata += len;
T(addstr(" ", 1, &buf, &buflen));
-
+
/* Second word, optional in ISDN records. */
if (type == ns_t_isdn && rdata == edata)
break;
-
+
T(len = charstr(rdata, edata, &buf, &buflen));
if (len == 0)
goto formerr;
@@ -596,7 +597,7 @@ ns_sprintrrf(const u_char *msg, size_t msglen,
}
else
leader = " ";
-
+
for (n = 0; n < len; n += 48) {
T(addstr(leader, strlen(leader),
&buf, &buflen));
@@ -625,8 +626,48 @@ ns_sprintrrf(const u_char *msg, size_t msglen,
break;
}
+ case ns_t_a6: {
+ struct in6_addr a;
+ int pbyte, pbit;
+
+ /* prefix length */
+ if (rdlen == 0U) goto formerr;
+ len = SPRINTF((tmp, "%d ", *rdata));
+ T(addstr(tmp, len, &buf, &buflen));
+ pbit = *rdata;
+ if (pbit > 128) goto formerr;
+ pbyte = (pbit & ~7) / 8;
+ rdata++;
+
+ /* address suffix: provided only when prefix len != 128 */
+ if (pbit < 128) {
+ if (rdata + pbyte >= edata) goto formerr;
+ memset(&a, 0, sizeof(a));
+ memcpy(&a.s6_addr[pbyte], rdata, sizeof(a) - pbyte);
+ (void) inet_ntop(AF_INET6, &a, buf, buflen);
+ addlen(strlen(buf), &buf, &buflen);
+ rdata += sizeof(a) - pbyte;
+ }
+
+ /* prefix name: provided only when prefix len > 0 */
+ if (pbit == 0)
+ break;
+ if (rdata >= edata) goto formerr;
+ T(addstr(" ", 1, &buf, &buflen));
+ T(addname(msg, msglen, &rdata, origin, &buf, &buflen));
+
+ break;
+ }
+
+ case ns_t_opt: {
+ len = SPRINTF((tmp, "%u bytes", class));
+ T(addstr(tmp, len, &buf, &buflen));
+ break;
+ }
+
default:
- comment = "unknown RR type";
+ snprintf (errbuf, sizeof (errbuf), "unknown RR type %d", type);
+ comment = errbuf;
goto hexify;
}
return (buf - obuf);
diff --git a/libc/rt/Makefile b/libc/rt/Makefile
index 671f6b841..ddea3175c 100644
--- a/libc/rt/Makefile
+++ b/libc/rt/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1997-2004, 2006 Free Software Foundation, Inc.
+# Copyright (C) 1997-2004, 2006, 2007 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -21,7 +21,7 @@
#
subdir := rt
-headers := aio.h mqueue.h bits/mqueue.h
+headers := aio.h mqueue.h bits/mqueue.h bits/mqueue2.h
aio-routines := aio_cancel aio_error aio_fsync aio_misc aio_read \
aio_read64 aio_return aio_suspend aio_write \
diff --git a/libc/rt/Versions b/libc/rt/Versions
index 51bb033ec..2921c9c8a 100644
--- a/libc/rt/Versions
+++ b/libc/rt/Versions
@@ -22,4 +22,7 @@ librt {
mq_open; mq_close; mq_unlink; mq_getattr; mq_setattr;
mq_notify; mq_send; mq_receive; mq_timedsend; mq_timedreceive;
}
+ GLIBC_2.7 {
+ __mq_open_2;
+ }
}
diff --git a/libc/rt/bits/mqueue2.h b/libc/rt/bits/mqueue2.h
new file mode 100644
index 000000000..4c90609e8
--- /dev/null
+++ b/libc/rt/bits/mqueue2.h
@@ -0,0 +1,56 @@
+/* Checking macros for mq functions.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#ifndef _FCNTL_H
+# error "Never include <bits/mqueue2.h> directly; use <mqueue.h> instead."
+#endif
+
+/* Check that calls to mq_open with O_CREAT set have an appropriate third and fourth
+ parameter. */
+extern mqd_t mq_open (__const char *__name, int __oflag, ...)
+ __THROW __nonnull ((1));
+extern mqd_t __mq_open_2 (__const char *__name, int __oflag) __nonnull ((1));
+extern mqd_t __REDIRECT (__mq_open_alias, (__const char *__name, int __oflag, ...),
+ mq_open) __nonnull ((1));
+__errordecl (__mq_open_wrong_number_of_args,
+ "mq_open can be called either with 2 or 4 arguments");
+__errordecl (__mq_open_missing_mode_and_attr,
+ "mq_open with O_CREAT in second argument needs 4 arguments");
+
+__extern_always_inline mqd_t
+mq_open (__const char *__name, int __oflag, ...)
+{
+ if (__va_arg_pack_len () != 0 && __va_arg_pack_len () != 2)
+ __mq_open_wrong_number_of_args ();
+
+ if (__builtin_constant_p (__oflag))
+ {
+ if ((__oflag & O_CREAT) != 0 && __va_arg_pack_len () == 0)
+ {
+ __mq_open_missing_mode_and_attr ();
+ return __mq_open_2 (__name, __oflag);
+ }
+ return __mq_open_alias (__name, __oflag, __va_arg_pack ());
+ }
+
+ if (__va_arg_pack_len () == 0)
+ return __mq_open_2 (__name, __oflag);
+
+ return __mq_open_alias (__name, __oflag, __va_arg_pack ());
+}
diff --git a/libc/rt/mq_open.c b/libc/rt/mq_open.c
index dea5741d5..77d872ea2 100644
--- a/libc/rt/mq_open.c
+++ b/libc/rt/mq_open.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2004, 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,6 +18,7 @@
#include <errno.h>
#include <mqueue.h>
+#include <stdio.h>
/* Establish connection between a process and a message queue NAME and
return message queue descriptor or (mqd_t) -1 on error. OFLAG determines
@@ -27,10 +28,21 @@
attributes. If the fourth argument is NULL, default attributes are
used. */
mqd_t
-mq_open (const char *name, int oflag, ...)
+__mq_open (const char *name, int oflag, ...)
{
__set_errno (ENOSYS);
return (mqd_t) -1;
}
+strong_alias (__mq_open, mq_open);
stub_warning (mq_open)
+
+mqd_t
+__mq_open_2 (const char *name, int oflag)
+{
+ if (oflag & O_CREAT)
+ __fortify_fail ("invalid mq_open call: O_CREAT without mode and attr");
+
+ return __mq_open (name, oflag);
+}
+stub_warning (__mq_open_2)
#include <stub-tag.h>
diff --git a/libc/rt/mqueue.h b/libc/rt/mqueue.h
index b81133033..a4c3e1b2f 100644
--- a/libc/rt/mqueue.h
+++ b/libc/rt/mqueue.h
@@ -90,6 +90,12 @@ extern int mq_timedsend (mqd_t __mqdes, __const char *__msg_ptr,
__nonnull ((2, 5));
#endif
+/* Define some inlines helping to catch common problems. */
+#if __USE_FORTIFY_LEVEL > 0 && defined __extern_always_inline \
+ && defined __va_arg_pack_len
+# include <bits/mqueue2.h>
+#endif
+
__END_DECLS
#endif /* mqueue.h */
diff --git a/libc/socket/sys/socket.h b/libc/socket/sys/socket.h
index 4112852eb..6d9eab7f9 100644
--- a/libc/socket/sys/socket.h
+++ b/libc/socket/sys/socket.h
@@ -1,5 +1,6 @@
/* Declarations of socket constants, types, and functions.
- Copyright (C) 1991,92,1994-2001,2003,2005 Free Software Foundation, Inc.
+ Copyright (C) 1991,92,1994-2001,2003,2005,2007
+ Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -233,7 +234,7 @@ extern int isfdtype (int __fd, int __fdtype) __THROW;
/* Define some macros helping to catch buffer overflows. */
-#if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus
+#if __USE_FORTIFY_LEVEL > 0 && defined __extern_always_inline
# include <bits/socket2.h>
#endif
diff --git a/libc/stdio-common/Makefile b/libc/stdio-common/Makefile
index f818c9134..82799b1ac 100644
--- a/libc/stdio-common/Makefile
+++ b/libc/stdio-common/Makefile
@@ -36,7 +36,9 @@ routines := \
tmpfile tmpfile64 tmpnam tmpnam_r tempnam tempname \
getline getw putw \
remove rename renameat \
- flockfile ftrylockfile funlockfile
+ flockfile ftrylockfile funlockfile \
+ isoc99_scanf isoc99_vscanf isoc99_fscanf isoc99_vfscanf isoc99_sscanf \
+ isoc99_vsscanf
include ../Makeconfig
@@ -57,7 +59,7 @@ tests := tstscanf test_rdwr test-popen tstgetln test-fseek \
tst-perror tst-sprintf tst-rndseek tst-fdopen tst-fphex bug14 \
tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \
tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \
- bug19 bug19a tst-popen2
+ bug19 bug19a tst-popen2 scanf13 scanf14 scanf15
tests-$(OPTION_EGLIBC_LOCALE_CODE) \
+= tst-sscanf tst-swprintf bug15 test-vfprintf
@@ -100,14 +102,34 @@ CFLAGS-tempname.c = -fexceptions
CFLAGS-psignal.c = -fexceptions
CFLAGS-vprintf.c = -fexceptions
CFLAGS-cuserid.c = -fexceptions
+
+CFLAGS-vfprintf.c += $(exceptions)
+CFLAGS-fprintf.c += $(exceptions)
+CFLAGS-printf.c += $(exceptions)
+CFLAGS-vfwprintf.c += $(exceptions)
+CFLAGS-vfscanf.c += $(exceptions)
+CFLAGS-vfwscanf.c += $(exceptions)
+CFLAGS-fscanf.c += $(exceptions)
+CFLAGS-scanf.c += $(exceptions)
+CFLAGS-isoc99_vfscanf.c += $(exceptions)
+CFLAGS-isoc99_vscanf.c += $(exceptions)
+CFLAGS-isoc99_fscanf.c += $(exceptions)
+CFLAGS-isoc99_scanf.c += $(exceptions)
CFLAGS-errlist.c = $(fno-unit-at-a-time)
CFLAGS-siglist.c = $(fno-unit-at-a-time)
+# The following is a hack since we must compile scanf15.c without any
+# GNU extension. The latter are needed, though, when internal headers
+# are used. So made sure we see the installed headers first.
+CFLAGS-scanf15.c = -I../libio -I../stdlib -I../wcsmbs -I../time -I../string \
+ -I../wctype
+
# We know the test has a format string problem.
CFLAGS-tst-sprintf.c = -Wno-format
tst-sscanf-ENV = LOCPATH=$(common-objpfx)localedata
tst-swprintf-ENV = LOCPATH=$(common-objpfx)localedata
test-vfprintf-ENV = LOCPATH=$(common-objpfx)localedata
+scanf13-ENV = LOCPATH=$(common-objpfx)localedata
bug14-ENV = LOCPATH=$(common-objpfx)localedata
bug15-ENV = LOCPATH=$(common-objpfx)localedata
diff --git a/libc/stdio-common/Versions b/libc/stdio-common/Versions
index 2f6442934..1501fa2ff 100644
--- a/libc/stdio-common/Versions
+++ b/libc/stdio-common/Versions
@@ -49,6 +49,10 @@ libc {
GLIBC_2.4 {
renameat;
}
+ GLIBC_2.7 {
+ __isoc99_scanf; __isoc99_vscanf; __isoc99_fscanf; __isoc99_vfscanf;
+ __isoc99_sscanf; __isoc99_vsscanf;
+ }
GLIBC_PRIVATE {
# global variables
_itoa_lower_digits;
diff --git a/libc/stdio-common/isoc99_fscanf.c b/libc/stdio-common/isoc99_fscanf.c
new file mode 100644
index 000000000..5b8c16e78
--- /dev/null
+++ b/libc/stdio-common/isoc99_fscanf.c
@@ -0,0 +1,40 @@
+/* Copyright (C) 1991, 1997, 2006, 2007 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#include <libioP.h>
+#include <stdarg.h>
+#include <stdio.h>
+
+/* Read formatted input from STREAM according to the format string FORMAT. */
+/* VARARGS2 */
+int
+__isoc99_fscanf (FILE *stream, const char *format, ...)
+{
+ va_list arg;
+ int done;
+
+ _IO_acquire_lock_clear_flags2 (stream);
+ stream->_flags2 |= _IO_FLAGS2_SCANF_STD;
+
+ va_start (arg, format);
+ done = INTUSE(_IO_vfscanf) (stream, format, arg, NULL);
+ va_end (arg);
+
+ _IO_release_lock (stream);
+ return done;
+}
diff --git a/libc/stdio-common/isoc99_scanf.c b/libc/stdio-common/isoc99_scanf.c
new file mode 100644
index 000000000..a90fe7018
--- /dev/null
+++ b/libc/stdio-common/isoc99_scanf.c
@@ -0,0 +1,42 @@
+/* Copyright (C) 1991, 1995, 1996, 1997, 2002, 2004, 2006, 2007
+ Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <libioP.h>
+
+
+/* Read formatted input from stdin according to the format string FORMAT. */
+/* VARARGS1 */
+int
+__isoc99_scanf (const char *format, ...)
+{
+ va_list arg;
+ int done;
+
+ _IO_acquire_lock_clear_flags2 (stdin);
+ stdin->_flags2 |= _IO_FLAGS2_SCANF_STD;
+
+ va_start (arg, format);
+ done = INTUSE(_IO_vfscanf) (stdin, format, arg, NULL);
+ va_end (arg);
+
+ _IO_release_lock (stdin);
+ return done;
+}
diff --git a/libc/stdio-common/isoc99_sscanf.c b/libc/stdio-common/isoc99_sscanf.c
new file mode 100644
index 000000000..9500ccb46
--- /dev/null
+++ b/libc/stdio-common/isoc99_sscanf.c
@@ -0,0 +1,37 @@
+/* Copyright (C) 1991, 1995, 1996, 1998, 2002, 2003, 2004, 2006, 2007
+ Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <libioP.h>
+
+/* Read formatted input from S, according to the format string FORMAT. */
+/* VARARGS2 */
+int
+__isoc99_sscanf (const char *s, const char *format, ...)
+{
+ va_list arg;
+ int done;
+
+ va_start (arg, format);
+ done = __isoc99_vsscanf (s, format, arg);
+ va_end (arg);
+
+ return done;
+}
diff --git a/libc/stdio-common/isoc99_vfscanf.c b/libc/stdio-common/isoc99_vfscanf.c
new file mode 100644
index 000000000..10b04c3bc
--- /dev/null
+++ b/libc/stdio-common/isoc99_vfscanf.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 1991, 1997, 2006, 2007 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#include <libioP.h>
+#include <stdio.h>
+
+/* Read formatted input from STREAM according to the format string FORMAT. */
+/* VARARGS2 */
+int
+__isoc99_vfscanf (FILE *stream, const char *format, _IO_va_list args)
+{
+ int done;
+
+ _IO_acquire_lock_clear_flags2 (stream);
+ stream->_flags2 |= _IO_FLAGS2_SCANF_STD;
+ done = INTUSE(_IO_vfscanf) (stream, format, args, NULL);
+ _IO_release_lock (stream);
+ return done;
+}
+libc_hidden_def (__isoc99_vfscanf)
diff --git a/libc/stdio-common/isoc99_vscanf.c b/libc/stdio-common/isoc99_vscanf.c
new file mode 100644
index 000000000..f7858f042
--- /dev/null
+++ b/libc/stdio-common/isoc99_vscanf.c
@@ -0,0 +1,34 @@
+/* Copyright (C) 1991, 1997, 2006, 2007 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#include <libioP.h>
+#include <stdio.h>
+
+/* Read formatted input from STDIN according to the format string FORMAT. */
+/* VARARGS2 */
+int
+__isoc99_vscanf (const char *format, _IO_va_list args)
+{
+ int done;
+
+ _IO_acquire_lock_clear_flags2 (stdin);
+ stdin->_flags2 |= _IO_FLAGS2_SCANF_STD;
+ done = INTUSE(_IO_vfscanf) (stdin, format, args, NULL);
+ _IO_release_lock (stdin);
+ return done;
+}
diff --git a/libc/stdio-common/isoc99_vsscanf.c b/libc/stdio-common/isoc99_vsscanf.c
new file mode 100644
index 000000000..f10919c79
--- /dev/null
+++ b/libc/stdio-common/isoc99_vsscanf.c
@@ -0,0 +1,47 @@
+/* Copyright (C) 1993, 1997-2003, 2006, 2007 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA.
+
+ As a special exception, if you link the code in this file with
+ files compiled with a GNU compiler to produce an executable,
+ that does not cause the resulting executable to be covered by
+ the GNU Lesser General Public License. This exception does not
+ however invalidate any other reasons why the executable file
+ might be covered by the GNU Lesser General Public License.
+ This exception applies to code released by its copyright holders
+ in files containing the exception. */
+
+#include <libioP.h>
+#include <stdio.h>
+#include "../libio/strfile.h"
+
+int
+__isoc99_vsscanf (const char *string, const char *format, _IO_va_list args)
+{
+ int ret;
+ _IO_strfile sf;
+#ifdef _IO_MTSAFE_IO
+ sf._sbf._f._lock = NULL;
+#endif
+ _IO_no_init (&sf._sbf._f, _IO_USER_LOCK, -1, NULL, NULL);
+ _IO_JUMPS ((struct _IO_FILE_plus *) &sf._sbf) = &_IO_str_jumps;
+ _IO_str_init_static_internal (&sf, (char*)string, 0, NULL);
+ sf._sbf._f._flags2 |= _IO_FLAGS2_SCANF_STD;
+ ret = INTUSE(_IO_vfscanf) ((_IO_FILE *) &sf._sbf, format, args, NULL);
+ return ret;
+}
+libc_hidden_def (__isoc99_vsscanf)
diff --git a/libc/stdio-common/scanf13.c b/libc/stdio-common/scanf13.c
new file mode 100644
index 000000000..e53cde29c
--- /dev/null
+++ b/libc/stdio-common/scanf13.c
@@ -0,0 +1,187 @@
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <wchar.h>
+
+int
+main (void)
+{
+ char *sp1, *sp2, *sp3, *sp4;
+ wchar_t *lsp1, *lsp2, *lsp3, *lsp4;
+ int result = 0;
+ char buf[2048+64];
+ wchar_t wbuf[2048+64];
+ size_t i;
+
+#define FAIL() \
+ do { \
+ result = 1; \
+ printf ("test at line %d failed\n", __LINE__); \
+ } while (0)
+
+ setlocale (LC_ALL, "de_DE.UTF-8");
+ if (sscanf ("A \xc3\x84-\t\t\xc3\x84-abcdefbcd\t\xc3\x84-B",
+ "A%ms%10ms%4m[bcd]%4mcB", &sp1, &sp2, &sp3, &sp4) != 4)
+ FAIL ();
+ else
+ {
+ if (strcmp (sp1, "\xc3\x84-") != 0)
+ FAIL ();
+ free (sp1);
+ if (strcmp (sp2, "\xc3\x84-abcdefb") != 0)
+ FAIL ();
+ free (sp2);
+ if (strcmp (sp3, "cd") != 0)
+ FAIL ();
+ free (sp3);
+ if (memcmp (sp4, "\t\xc3\x84-", 4) != 0)
+ FAIL ();
+ free (sp4);
+ }
+
+ if (sscanf ("A \xc3\x84-\t\t\xc3\x84-abcdefbcd\t\xc3\x84-BB",
+ "A%mS%10mls%4ml[bcd]%4mCB", &lsp1, &lsp2, &lsp3, &lsp4) != 4)
+ FAIL ();
+ else
+ {
+ if (wcscmp (lsp1, L"\xc4-") != 0)
+ FAIL ();
+ free (lsp1);
+ if (wcscmp (lsp2, L"\xc4-abcdefbc") != 0)
+ FAIL ();
+ free (lsp2);
+ if (wcscmp (lsp3, L"d") != 0)
+ FAIL ();
+ free (lsp3);
+ if (memcmp (lsp4, L"\t\xc4-B", 4 * sizeof (wchar_t)) != 0)
+ FAIL ();
+ free (lsp4);
+ }
+
+ memset (buf, '/', sizeof (buf));
+ buf[0] = '\t';
+ buf[1] = ' ';
+ buf[2] = 0xc3;
+ buf[3] = 0x84;
+ buf[2048] = 0xc3;
+ buf[2049] = 0x84;
+ buf[2058] = '\t';
+ buf[2059] = 'a';
+ if (sscanf (buf, "%ms%mc", &sp1, &sp2) != 2)
+ FAIL ();
+ else
+ {
+ if (sp1[0] != '\xc3' || sp1[1] != '\x84'
+ || sp1[2046] != '\xc3' || sp1[2047] != '\x84'
+ || sp1[2056] != '\0')
+ FAIL ();
+ sp1[2046] = '/';
+ sp1[2047] = '/';
+ for (i = 2; i < 2056; i++)
+ if (sp1[i] != '/')
+ FAIL ();
+ free (sp1);
+ if (sp2[0] != '\t')
+ FAIL ();
+ free (sp2);
+ }
+ if (sscanf (buf, "%2048ms%mc", &sp3, &sp4) != 2)
+ FAIL ();
+ else
+ {
+ if (sp3[0] != '\xc3' || sp3[1] != '\x84'
+ || sp3[2046] != '\xc3' || sp3[2047] != '\x84'
+ || sp3[2048] != '\0')
+ FAIL ();
+ for (i = 2; i < 2046; i++)
+ if (sp3[i] != '/')
+ FAIL ();
+ free (sp3);
+ if (sp4[0] != '/')
+ FAIL ();
+ free (sp4);
+ }
+ if (sscanf (buf, "%4mc%1500m[dr/]%548m[abc/d]%3mc", &sp1, &sp2, &sp3, &sp4)
+ != 4)
+ FAIL ();
+ else
+ {
+ if (memcmp (sp1, "\t \xc3\x84", 4) != 0)
+ FAIL ();
+ free (sp1);
+ for (i = 0; i < 1500; i++)
+ if (sp2[i] != '/')
+ FAIL ();
+ if (sp2[1500] != '\0')
+ FAIL ();
+ free (sp2);
+ for (i = 0; i < 544; i++)
+ if (sp3[i] != '/')
+ FAIL ();
+ if (sp3[544] != '\0')
+ FAIL ();
+ free (sp3);
+ if (memcmp (sp4, "\xc3\x84/", 3) != 0)
+ FAIL ();
+ free (sp4);
+ }
+ if (sscanf (buf, "%mS%mC", &lsp1, &lsp2) != 2)
+ FAIL ();
+ else
+ {
+ if (lsp1[0] != L'\xc4' || lsp1[2045] != L'\xc4'
+ || lsp1[2054] != L'\0')
+ FAIL ();
+ lsp1[2045] = L'/';
+ for (i = 1; i < 2054; i++)
+ if (lsp1[i] != L'/')
+ FAIL ();
+ free (lsp1);
+ if (lsp2[0] != L'\t')
+ FAIL ();
+ free (lsp2);
+ }
+ if (sscanf (buf, "%2048mls%mlc", &lsp3, &lsp4) != 2)
+ FAIL ();
+ else
+ {
+ if (lsp3[0] != L'\xc4' || lsp3[2045] != L'\xc4'
+ || lsp3[2048] != L'\0')
+ FAIL ();
+ lsp3[2045] = L'/';
+ for (i = 1; i < 2048; i++)
+ if (lsp3[i] != L'/')
+ FAIL ();
+ free (lsp3);
+ if (lsp4[0] != L'/')
+ FAIL ();
+ free (lsp4);
+ }
+ if (sscanf (buf, "%4mC%1500ml[dr/]%548ml[abc/d]%3mlc",
+ &lsp1, &lsp2, &lsp3, &lsp4) != 4)
+ FAIL ();
+ else
+ {
+ if (memcmp (lsp1, L"\t \xc4/", 4 * sizeof (wchar_t)) != 0)
+ FAIL ();
+ free (lsp1);
+ for (i = 0; i < 1500; i++)
+ if (lsp2[i] != L'/')
+ FAIL ();
+ if (lsp2[1500] != L'\0')
+ FAIL ();
+ free (lsp2);
+ for (i = 0; i < 543; i++)
+ if (lsp3[i] != L'/')
+ FAIL ();
+ if (lsp3[543] != L'\0')
+ FAIL ();
+ free (lsp3);
+ if (memcmp (lsp4, L"\xc4//", 3 * sizeof (wchar_t)) != 0)
+ FAIL ();
+ free (lsp4);
+ }
+
+ return result;
+}
diff --git a/libc/stdio-common/scanf14.c b/libc/stdio-common/scanf14.c
new file mode 100644
index 000000000..387ceba4b
--- /dev/null
+++ b/libc/stdio-common/scanf14.c
@@ -0,0 +1,63 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <wchar.h>
+
+#define FAIL() \
+ do { \
+ result = 1; \
+ printf ("test at line %d failed\n", __LINE__); \
+ } while (0)
+
+int
+main (void)
+{
+ wchar_t *lsp;
+ char *sp;
+ float f;
+ double d;
+ char c[8];
+ int result = 0;
+
+ if (sscanf (" 0.25s x", "%e%3c", &f, c) != 2)
+ FAIL ();
+ else if (f != 0.25 || memcmp (c, "s x", 3) != 0)
+ FAIL ();
+ if (sscanf (" 1.25s x", "%as%2c", &sp, c) != 2)
+ FAIL ();
+ else
+ {
+ if (strcmp (sp, "1.25s") != 0 || memcmp (c, " x", 2) != 0)
+ FAIL ();
+ memset (sp, 'x', sizeof "1.25s");
+ free (sp);
+ }
+ if (sscanf (" 2.25s x", "%las%2c", &d, c) != 2)
+ FAIL ();
+ else if (d != 2.25 || memcmp (c, " x", 2) != 0)
+ FAIL ();
+ if (sscanf (" 3.25S x", "%4aS%3c", &lsp, c) != 2)
+ FAIL ();
+ else
+ {
+ if (wcscmp (lsp, L"3.25") != 0 || memcmp (c, "S x", 3) != 0)
+ FAIL ();
+ memset (lsp, 'x', sizeof L"3.25");
+ free (lsp);
+ }
+ if (sscanf ("4.25[0-9.] x", "%a[0-9.]%8c", &sp, c) != 2)
+ FAIL ();
+ else
+ {
+ if (strcmp (sp, "4.25") != 0 || memcmp (c, "[0-9.] x", 8) != 0)
+ FAIL ();
+ memset (sp, 'x', sizeof "4.25");
+ free (sp);
+ }
+ if (sscanf ("5.25[0-9.] x", "%la[0-9.]%2c", &d, c) != 2)
+ FAIL ();
+ else if (d != 5.25 || memcmp (c, " x", 2) != 0)
+ FAIL ();
+
+ return result;
+}
diff --git a/libc/stdio-common/scanf15.c b/libc/stdio-common/scanf15.c
new file mode 100644
index 000000000..cc8aa2e6a
--- /dev/null
+++ b/libc/stdio-common/scanf15.c
@@ -0,0 +1,54 @@
+#undef _GNU_SOURCE
+#define _XOPEN_SOURCE 600
+/* The following macro definitions are a hack. They word around disabling
+ the GNU extension while still using a few internal headers. */
+#define u_char unsigned char
+#define u_short unsigned short
+#define u_int unsigned int
+#define u_long unsigned long
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <wchar.h>
+
+#define FAIL() \
+ do { \
+ result = 1; \
+ printf ("test at line %d failed\n", __LINE__); \
+ } while (0)
+
+int
+main (void)
+{
+ float f;
+ double d;
+ char c[8];
+ int result = 0;
+
+ if (sscanf (" 0.25s x", "%e%3c", &f, c) != 2)
+ FAIL ();
+ else if (f != 0.25 || memcmp (c, "s x", 3) != 0)
+ FAIL ();
+ if (sscanf (" 1.25s x", "%as%2c", &f, c) != 2)
+ FAIL ();
+ else if (f != 1.25 || memcmp (c, " x", 2) != 0)
+ FAIL ();
+ if (sscanf (" 2.25s x", "%las%2c", &d, c) != 2)
+ FAIL ();
+ else if (d != 2.25 || memcmp (c, " x", 2) != 0)
+ FAIL ();
+ if (sscanf (" 3.25S x", "%4aS%2c", &f, c) != 2)
+ FAIL ();
+ else if (f != 3.25 || memcmp (c, " x", 2) != 0)
+ FAIL ();
+ if (sscanf (" 4.25[0-9.] x", "%a[0-9.]%2c", &f, c) != 2)
+ FAIL ();
+ else if (f != 4.25 || memcmp (c, " x", 2) != 0)
+ FAIL ();
+ if (sscanf (" 5.25[0-9.] x", "%la[0-9.]%2c", &d, c) != 2)
+ FAIL ();
+ else if (d != 5.25 || memcmp (c, " x", 2) != 0)
+ FAIL ();
+
+ return result;
+}
diff --git a/libc/stdio-common/vfscanf.c b/libc/stdio-common/vfscanf.c
index 9e6daced5..e4728d00c 100644
--- a/libc/stdio-common/vfscanf.c
+++ b/libc/stdio-common/vfscanf.c
@@ -60,12 +60,13 @@
#define NOSKIP 0x0020 /* do not skip blanks */
#define NUMBER_SIGNED 0x0040 /* signed integer */
#define GROUP 0x0080 /* ': group numbers */
-#define MALLOC 0x0100 /* a: malloc strings */
+#define GNU_MALLOC 0x0100 /* a: malloc strings */
#define CHAR 0x0200 /* hh: char */
#define I18N 0x0400 /* I: use locale's digits */
#define HEXA_FLOAT 0x0800 /* hexadecimal float */
#define READ_POINTER 0x1000 /* this is a pointer value */
-
+#define POSIX_MALLOC 0x2000 /* m: malloc strings */
+#define MALLOC (GNU_MALLOC | POSIX_MALLOC)
#include <locale/localeinfo.h>
#include <libioP.h>
@@ -146,6 +147,21 @@
if (done == 0) done = EOF; \
goto errout; \
} while (0)
+#define add_ptr_to_free(ptr) \
+ do \
+ { \
+ if (ptrs_to_free == NULL \
+ || ptrs_to_free->count == (sizeof (ptrs_to_free->ptrs) \
+ / sizeof (ptrs_to_free->ptrs[0]))) \
+ { \
+ struct ptrs_to_free *new_ptrs = alloca (sizeof (*ptrs_to_free)); \
+ new_ptrs->count = 0; \
+ new_ptrs->next = ptrs_to_free; \
+ ptrs_to_free = new_ptrs; \
+ } \
+ ptrs_to_free->ptrs[ptrs_to_free->count++] = (ptr); \
+ } \
+ while (0)
#define ARGCHECK(s, format) \
do \
{ \
@@ -169,6 +185,12 @@
_IO_funlockfile (S); \
__libc_cleanup_region_end (0)
+struct ptrs_to_free
+{
+ size_t count;
+ struct ptrs_to_free *next;
+ char **ptrs[32];
+};
/* Read formatted input from S according to the format string
FORMAT, using the argument list in ARG.
@@ -218,6 +240,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
#else
const char *thousands;
#endif
+ struct ptrs_to_free *ptrs_to_free = NULL;
/* State for the conversions. */
mbstate_t state;
/* Integral holding variables. */
@@ -491,9 +514,24 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
--f;
break;
}
+ /* In __isoc99_*scanf %as, %aS and %a[ extension is not
+ supported at all. */
+ if (s->_flags2 & _IO_FLAGS2_SCANF_STD)
+ {
+ --f;
+ break;
+ }
/* String conversions (%s, %[) take a `char **'
arg and fill it in with a malloc'd pointer. */
- flags |= MALLOC;
+ flags |= GNU_MALLOC;
+ break;
+ case L_('m'):
+ flags |= POSIX_MALLOC;
+ if (*f == L_('l'))
+ {
+ ++f;
+ flags |= LONG;
+ }
break;
case L_('z'):
if (need_longlong && sizeof (size_t) > sizeof (unsigned long int))
@@ -609,20 +647,46 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
case L_('c'): /* Match characters. */
if ((flags & LONG) == 0)
{
- if (!(flags & SUPPRESS))
- {
- str = ARG (char *);
- if (str == NULL)
- conv_error ();
- }
+ if (width == -1)
+ width = 1;
+
+#define STRING_ARG(Str, Type, Width) \
+ do if (!(flags & SUPPRESS)) \
+ { \
+ if (flags & MALLOC) \
+ { \
+ /* The string is to be stored in a malloc'd buffer. */ \
+ /* For %mS using char ** is actually wrong, but \
+ shouldn't make a difference on any arch glibc \
+ supports and would unnecessarily complicate \
+ things. */ \
+ strptr = ARG (char **); \
+ if (strptr == NULL) \
+ conv_error (); \
+ /* Allocate an initial buffer. */ \
+ strsize = Width; \
+ *strptr = (char *) malloc (strsize * sizeof (Type)); \
+ Str = (Type *) *strptr; \
+ if (Str != NULL) \
+ add_ptr_to_free (strptr); \
+ else if (flags & POSIX_MALLOC) \
+ goto reteof; \
+ } \
+ else \
+ Str = ARG (Type *); \
+ if (Str == NULL) \
+ conv_error (); \
+ } while (0)
+#ifdef COMPILE_WSCANF
+ STRING_ARG (str, char, 100);
+#else
+ STRING_ARG (str, char, (width > 1024 ? 1024 : width));
+#endif
c = inchar ();
if (__builtin_expect (c == EOF, 0))
input_error ();
- if (width == -1)
- width = 1;
-
#ifdef COMPILE_WSCANF
/* We have to convert the wide character(s) into multibyte
characters and store the result. */
@@ -632,6 +696,38 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
{
size_t n;
+ if (!(flags & SUPPRESS) && (flags & POSIX_MALLOC)
+ && str + MB_CUR_MAX >= *strptr + strsize)
+ {
+ /* We have to enlarge the buffer if the `m' flag
+ was given. */
+ size_t strleng = str - *strptr;
+ char *newstr;
+
+ newstr = (char *) realloc (*strptr, strsize * 2);
+ if (newstr == NULL)
+ {
+ /* Can't allocate that much. Last-ditch effort. */
+ newstr = (char *) realloc (*strptr,
+ strleng + MB_CUR_MAX);
+ if (newstr == NULL)
+ /* c can't have `a' flag, only `m'. */
+ goto reteof;
+ else
+ {
+ *strptr = newstr;
+ str = newstr + strleng;
+ strsize = strleng + MB_CUR_MAX;
+ }
+ }
+ else
+ {
+ *strptr = newstr;
+ str = newstr + strleng;
+ strsize *= 2;
+ }
+ }
+
n = __wcrtomb (!(flags & SUPPRESS) ? str : NULL, c, &state);
if (__builtin_expect (n == (size_t) -1, 0))
/* No valid wide character. */
@@ -646,7 +742,40 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
if (!(flags & SUPPRESS))
{
do
- *str++ = c;
+ {
+ if ((flags & MALLOC)
+ && (char *) str == *strptr + strsize)
+ {
+ /* Enlarge the buffer. */
+ size_t newsize
+ = strsize
+ + (strsize >= width ? width - 1 : strsize);
+
+ str = (char *) realloc (*strptr, newsize);
+ if (str == NULL)
+ {
+ /* Can't allocate that much. Last-ditch
+ effort. */
+ str = (char *) realloc (*strptr, strsize + 1);
+ if (str == NULL)
+ /* c can't have `a' flag, only `m'. */
+ goto reteof;
+ else
+ {
+ *strptr = (char *) str;
+ str += strsize;
+ ++strsize;
+ }
+ }
+ else
+ {
+ *strptr = (char *) str;
+ str += strsize;
+ strsize = newsize;
+ }
+ }
+ *str++ = c;
+ }
while (--width > 0 && inchar () != EOF);
}
else
@@ -654,18 +783,25 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
#endif
if (!(flags & SUPPRESS))
- ++done;
+ {
+ if ((flags & MALLOC) && str - *strptr != strsize)
+ {
+ char *cp = (char *) realloc (*strptr, str - *strptr);
+ if (cp != NULL)
+ *strptr = cp;
+ }
+ strptr = NULL;
+ ++done;
+ }
break;
}
/* FALLTHROUGH */
case L_('C'):
- if (!(flags & SUPPRESS))
- {
- wstr = ARG (wchar_t *);
- if (wstr == NULL)
- conv_error ();
- }
+ if (width == -1)
+ width = 1;
+
+ STRING_ARG (wstr, wchar_t, (width > 1024 ? 1024 : width));
c = inchar ();
if (__builtin_expect (c == EOF, 0))
@@ -676,7 +812,40 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
if (!(flags & SUPPRESS))
{
do
- *wstr++ = c;
+ {
+ if ((flags & MALLOC)
+ && wstr == (wchar_t *) *strptr + strsize)
+ {
+ size_t newsize
+ = strsize + (strsize > width ? width - 1 : strsize);
+ /* Enlarge the buffer. */
+ wstr = (wchar_t *) realloc (*strptr,
+ newsize * sizeof (wchar_t));
+ if (wstr == NULL)
+ {
+ /* Can't allocate that much. Last-ditch effort. */
+ wstr = (wchar_t *) realloc (*strptr,
+ (strsize + 1)
+ * sizeof (wchar_t));
+ if (wstr == NULL)
+ /* C or lc can't have `a' flag, only `m' flag. */
+ goto reteof;
+ else
+ {
+ *strptr = (char *) wstr;
+ wstr += strsize;
+ ++strsize;
+ }
+ }
+ else
+ {
+ *strptr = (char *) wstr;
+ wstr += strsize;
+ strsize = newsize;
+ }
+ }
+ *wstr++ = c;
+ }
while (--width > 0 && inchar () != EOF);
}
else
@@ -695,6 +864,38 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
/* This is what we present the mbrtowc function first. */
buf[0] = c;
+ if (!(flags & SUPPRESS) && (flags & MALLOC)
+ && wstr == (wchar_t *) *strptr + strsize)
+ {
+ size_t newsize
+ = strsize + (strsize > width ? width - 1 : strsize);
+ /* Enlarge the buffer. */
+ wstr = (wchar_t *) realloc (*strptr,
+ newsize * sizeof (wchar_t));
+ if (wstr == NULL)
+ {
+ /* Can't allocate that much. Last-ditch effort. */
+ wstr = (wchar_t *) realloc (*strptr,
+ ((strsize + 1)
+ * sizeof (wchar_t)));
+ if (wstr == NULL)
+ /* C or lc can't have `a' flag, only `m' flag. */
+ goto reteof;
+ else
+ {
+ *strptr = (char *) wstr;
+ wstr += strsize;
+ ++strsize;
+ }
+ }
+ else
+ {
+ *strptr = (char *) wstr;
+ wstr += strsize;
+ strsize = newsize;
+ }
+ }
+
while (1)
{
size_t n;
@@ -728,33 +929,27 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
#endif
if (!(flags & SUPPRESS))
- ++done;
+ {
+ if ((flags & MALLOC) && wstr - (wchar_t *) *strptr != strsize)
+ {
+ wchar_t *cp = (wchar_t *) realloc (*strptr,
+ ((wstr
+ - (wchar_t *) *strptr)
+ * sizeof (wchar_t)));
+ if (cp != NULL)
+ *strptr = (char *) cp;
+ }
+ strptr = NULL;
+
+ ++done;
+ }
break;
case L_('s'): /* Read a string. */
if (!(flags & LONG))
{
-#define STRING_ARG(Str, Type) \
- do if (!(flags & SUPPRESS)) \
- { \
- if (flags & MALLOC) \
- { \
- /* The string is to be stored in a malloc'd buffer. */ \
- strptr = ARG (char **); \
- if (strptr == NULL) \
- conv_error (); \
- /* Allocate an initial buffer. */ \
- strsize = 100; \
- *strptr = (char *) malloc (strsize * sizeof (Type)); \
- Str = (Type *) *strptr; \
- } \
- else \
- Str = ARG (Type *); \
- if (Str == NULL) \
- conv_error (); \
- } while (0)
- STRING_ARG (str, char);
+ STRING_ARG (str, char, 100);
c = inchar ();
if (__builtin_expect (c == EOF, 0))
@@ -782,8 +977,8 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
if (!(flags & SUPPRESS) && (flags & MALLOC)
&& str + MB_CUR_MAX >= *strptr + strsize)
{
- /* We have to enlarge the buffer if the `a' flag
- was given. */
+ /* We have to enlarge the buffer if the `a' or `m'
+ flag was given. */
size_t strleng = str - *strptr;
char *newstr;
@@ -796,10 +991,13 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
strleng + MB_CUR_MAX);
if (newstr == NULL)
{
+ if (flags & POSIX_MALLOC)
+ goto reteof;
/* We lose. Oh well. Terminate the
string and stop converting,
so at least we don't skip any input. */
((char *) (*strptr))[strleng] = '\0';
+ strptr = NULL;
++done;
conv_error ();
}
@@ -843,10 +1041,13 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
str = (char *) realloc (*strptr, strsize + 1);
if (str == NULL)
{
+ if (flags & POSIX_MALLOC)
+ goto reteof;
/* We lose. Oh well. Terminate the
string and stop converting,
so at least we don't skip any input. */
((char *) (*strptr))[strsize - 1] = '\0';
+ strptr = NULL;
++done;
conv_error ();
}
@@ -886,10 +1087,13 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
newstr = (char *) realloc (*strptr, strleng + n + 1);
if (newstr == NULL)
{
+ if (flags & POSIX_MALLOC)
+ goto reteof;
/* We lose. Oh well. Terminate the string
and stop converting, so at least we don't
skip any input. */
((char *) (*strptr))[strleng] = '\0';
+ strptr = NULL;
++done;
conv_error ();
}
@@ -911,6 +1115,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
if (cp != NULL)
*strptr = cp;
}
+ strptr = NULL;
++done;
}
@@ -925,7 +1130,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
#endif
/* Wide character string. */
- STRING_ARG (wstr, wchar_t);
+ STRING_ARG (wstr, wchar_t, 100);
c = inchar ();
if (__builtin_expect (c == EOF, 0))
@@ -958,16 +1163,19 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
if (wstr == NULL)
{
/* Can't allocate that much. Last-ditch
- effort. */
+ effort. */
wstr = (wchar_t *) realloc (*strptr,
(strsize + 1)
* sizeof (wchar_t));
if (wstr == NULL)
{
+ if (flags & POSIX_MALLOC)
+ goto reteof;
/* We lose. Oh well. Terminate the string
and stop converting, so at least we don't
skip any input. */
((wchar_t *) (*strptr))[strsize - 1] = L'\0';
+ strptr = NULL;
++done;
conv_error ();
}
@@ -1033,10 +1241,13 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
* sizeof (wchar_t)));
if (wstr == NULL)
{
+ if (flags & POSIX_MALLOC)
+ goto reteof;
/* We lose. Oh well. Terminate the
string and stop converting, so at
least we don't skip any input. */
((wchar_t *) (*strptr))[strsize - 1] = L'\0';
+ strptr = NULL;
++done;
conv_error ();
}
@@ -1072,6 +1283,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
if (cp != NULL)
*strptr = (char *) cp;
}
+ strptr = NULL;
++done;
}
@@ -2069,9 +2281,9 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
case L_('['): /* Character class. */
if (flags & LONG)
- STRING_ARG (wstr, wchar_t);
+ STRING_ARG (wstr, wchar_t, 100);
else
- STRING_ARG (str, char);
+ STRING_ARG (str, char, 100);
if (*f == L_('^'))
{
@@ -2219,10 +2431,13 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
* sizeof (wchar_t));
if (wstr == NULL)
{
+ if (flags & POSIX_MALLOC)
+ goto reteof;
/* We lose. Oh well. Terminate the string
and stop converting, so at least we don't
skip any input. */
((wchar_t *) (*strptr))[strsize - 1] = L'\0';
+ strptr = NULL;
++done;
conv_error ();
}
@@ -2298,10 +2513,13 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
* sizeof (wchar_t)));
if (wstr == NULL)
{
+ if (flags & POSIX_MALLOC)
+ goto reteof;
/* We lose. Oh well. Terminate the
string and stop converting,
so at least we don't skip any input. */
((wchar_t *) (*strptr))[strsize - 1] = L'\0';
+ strptr = NULL;
++done;
conv_error ();
}
@@ -2349,6 +2567,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
if (cp != NULL)
*strptr = (char *) cp;
}
+ strptr = NULL;
++done;
}
@@ -2435,10 +2654,13 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
strleng + MB_CUR_MAX);
if (newstr == NULL)
{
+ if (flags & POSIX_MALLOC)
+ goto reteof;
/* We lose. Oh well. Terminate the string
and stop converting, so at least we don't
skip any input. */
((char *) (*strptr))[strleng] = '\0';
+ strptr = NULL;
++done;
conv_error ();
}
@@ -2497,10 +2719,13 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
newsize = strsize + 1;
goto allocagain;
}
+ if (flags & POSIX_MALLOC)
+ goto reteof;
/* We lose. Oh well. Terminate the
string and stop converting,
so at least we don't skip any input. */
((char *) (*strptr))[strsize - 1] = '\0';
+ strptr = NULL;
++done;
conv_error ();
}
@@ -2537,10 +2762,13 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
newstr = (char *) realloc (*strptr, strleng + n + 1);
if (newstr == NULL)
{
+ if (flags & POSIX_MALLOC)
+ goto reteof;
/* We lose. Oh well. Terminate the string
and stop converting, so at least we don't
skip any input. */
((char *) (*strptr))[strleng] = '\0';
+ strptr = NULL;
++done;
conv_error ();
}
@@ -2562,6 +2790,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
if (cp != NULL)
*strptr = cp;
}
+ strptr = NULL;
++done;
}
@@ -2600,6 +2829,31 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
if (errp != NULL)
*errp |= errval;
+ if (done == EOF)
+ {
+ reteof:
+ if (__builtin_expect (ptrs_to_free != NULL, 0))
+ {
+ struct ptrs_to_free *p = ptrs_to_free;
+ while (p != NULL)
+ {
+ for (size_t cnt = 0; cnt < p->count; ++cnt)
+ {
+ free (*p->ptrs[cnt]);
+ *p->ptrs[cnt] = NULL;
+ }
+ p = p->next;
+ free (ptrs_to_free);
+ ptrs_to_free = p;
+ }
+ }
+ return EOF;
+ }
+ else if (__builtin_expect (strptr != NULL, 0))
+ {
+ free (*strptr);
+ *strptr = NULL;
+ }
return done;
}
diff --git a/libc/stdlib/stdlib.h b/libc/stdlib/stdlib.h
index d405cbf7b..3c2ea72a5 100644
--- a/libc/stdlib/stdlib.h
+++ b/libc/stdlib/stdlib.h
@@ -870,7 +870,7 @@ extern int getloadavg (double __loadavg[], int __nelem)
/* Define some macros helping to catch buffer overflows. */
-#if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus
+#if __USE_FORTIFY_LEVEL > 0 && defined __extern_always_inline
# include <bits/stdlib.h>
#endif
#ifdef __LDBL_COMPAT
diff --git a/libc/string/bits/string3.h b/libc/string/bits/string3.h
index f68ce5899..876fe7792 100644
--- a/libc/string/bits/string3.h
+++ b/libc/string/bits/string3.h
@@ -20,27 +20,40 @@
# error "Never use <bits/string3.h> directly; include <string.h> instead."
#endif
+__warndecl (__warn_memset_zero_len,
+ "memset used with constant zero length parameter; this could be due to transposed parameters");
+
+#ifndef __cplusplus
/* XXX This is temporarily. We should not redefine any of the symbols
and instead integrate the error checking into the original
definitions. */
-#undef memcpy
-#undef memmove
-#undef memset
-#undef strcat
-#undef strcpy
-#undef strncat
-#undef strncpy
-#ifdef __USE_GNU
-# undef mempcpy
-# undef stpcpy
-#endif
-#ifdef __USE_BSD
-# undef bcopy
-# undef bzero
+# undef memcpy
+# undef memmove
+# undef memset
+# undef strcat
+# undef strcpy
+# undef strncat
+# undef strncpy
+# ifdef __USE_GNU
+# undef mempcpy
+# undef stpcpy
+# endif
+# ifdef __USE_BSD
+# undef bcopy
+# undef bzero
+# endif
#endif
-#define memcpy(dest, src, len) \
+#ifdef __cplusplus
+__extern_always_inline void *
+__NTH (memcpy (void *__restrict __dest, __const void *__restrict __src,
+ size_t __len))
+{
+ return __builtin___memcpy_chk (__dest, __src, __len, __bos0 (__dest));
+}
+#else
+# define memcpy(dest, src, len) \
((__bos0 (dest) != (size_t) -1) \
? __builtin___memcpy_chk (dest, src, len, __bos0 (dest)) \
: __memcpy_ichk (dest, src, len))
@@ -50,9 +63,17 @@ __NTH (__memcpy_ichk (void *__restrict __dest, __const void *__restrict __src,
{
return __builtin___memcpy_chk (__dest, __src, __len, __bos0 (__dest));
}
+#endif
-
-#define memmove(dest, src, len) \
+#ifdef __cplusplus
+__extern_always_inline void *
+__NTH (memmove (void *__restrict __dest, __const void *__restrict __src,
+ size_t __len))
+{
+ return __builtin___memmove_chk (__dest, __src, __len, __bos0 (__dest));
+}
+#else
+# define memmove(dest, src, len) \
((__bos0 (dest) != (size_t) -1) \
? __builtin___memmove_chk (dest, src, len, __bos0 (dest)) \
: __memmove_ichk (dest, src, len))
@@ -61,10 +82,18 @@ __NTH (__memmove_ichk (void *__dest, __const void *__src, size_t __len))
{
return __builtin___memmove_chk (__dest, __src, __len, __bos0 (__dest));
}
-
+#endif
#ifdef __USE_GNU
-# define mempcpy(dest, src, len) \
+# ifdef __cplusplus
+__extern_always_inline void *
+__NTH (mempcpy (void *__restrict __dest, __const void *__restrict __src,
+ size_t __len))
+{
+ return __builtin___mempcpy_chk (__dest, __src, __len, __bos0 (__dest));
+}
+# else
+# define mempcpy(dest, src, len) \
((__bos0 (dest) != (size_t) -1) \
? __builtin___mempcpy_chk (dest, src, len, __bos0 (dest)) \
: __mempcpy_ichk (dest, src, len))
@@ -74,6 +103,7 @@ __NTH (__mempcpy_ichk (void *__restrict __dest,
{
return __builtin___mempcpy_chk (__dest, __src, __len, __bos0 (__dest));
}
+# endif
#endif
@@ -82,9 +112,19 @@ __NTH (__mempcpy_ichk (void *__restrict __dest,
especially problematic if the intended fill value is zero. In this
case no work is done at all. We detect these problems by referring
non-existing functions. */
-__warndecl (__warn_memset_zero_len,
- "memset used with constant zero length parameter; this could be due to transposed parameters");
-#define memset(dest, ch, len) \
+#ifdef __cplusplus
+__extern_always_inline void *
+__NTH (memset (void *__dest, int __ch, size_t __len))
+{
+ if (__builtin_constant_p (__len) && __len == 0)
+ {
+ __warn_memset_zero_len ();
+ return __dest;
+ }
+ return __builtin___memset_chk (__dest, __ch, __len, __bos0 (__dest));
+}
+#else
+# define memset(dest, ch, len) \
(__builtin_constant_p (len) && (len) == 0 \
? (__warn_memset_zero_len (), (void) (ch), (void) (len), (void *) (dest)) \
: ((__bos0 (dest) != (size_t) -1) \
@@ -95,20 +135,41 @@ __NTH (__memset_ichk (void *__dest, int __ch, size_t __len))
{
return __builtin___memset_chk (__dest, __ch, __len, __bos0 (__dest));
}
+#endif
#ifdef __USE_BSD
-# define bcopy(src, dest, len) ((void) \
+# ifdef __cplusplus
+__extern_always_inline void
+__NTH (bcopy (__const void *__restrict __src, void *__restrict __dest,
+ size_t __len))
+{
+ __builtin___memmove_chk (__dest, __src, __len, __bos0 (__dest));
+}
+__extern_always_inline void
+__NTH (bzero (void *__dest, size_t __len))
+{
+ __builtin___memset_chk (__dest, '\0', __len, __bos0 (__dest));
+}
+# else
+# define bcopy(src, dest, len) ((void) \
((__bos0 (dest) != (size_t) -1) \
? __builtin___memmove_chk (dest, src, len, __bos0 (dest)) \
: __memmove_ichk (dest, src, len)))
-# define bzero(dest, len) ((void) \
+# define bzero(dest, len) ((void) \
((__bos0 (dest) != (size_t) -1) \
? __builtin___memset_chk (dest, '\0', len, __bos0 (dest)) \
: __memset_ichk (dest, '\0', len)))
+# endif
#endif
-
-#define strcpy(dest, src) \
+#ifdef __cplusplus
+__extern_always_inline char *
+__NTH (strcpy (char *__restrict __dest, __const char *__restrict __src))
+{
+ return __builtin___strcpy_chk (__dest, __src, __bos (__dest));
+}
+#else
+# define strcpy(dest, src) \
((__bos (dest) != (size_t) -1) \
? __builtin___strcpy_chk (dest, src, __bos (dest)) \
: __strcpy_ichk (dest, src))
@@ -117,10 +178,17 @@ __NTH (__strcpy_ichk (char *__restrict __dest, __const char *__restrict __src))
{
return __builtin___strcpy_chk (__dest, __src, __bos (__dest));
}
-
+#endif
#ifdef __USE_GNU
-# define stpcpy(dest, src) \
+# ifdef __cplusplus
+__extern_always_inline char *
+__NTH (stpcpy (char *__restrict __dest, __const char *__restrict __src))
+{
+ return __builtin___stpcpy_chk (__dest, __src, __bos (__dest));
+}
+# else
+# define stpcpy(dest, src) \
((__bos (dest) != (size_t) -1) \
? __builtin___stpcpy_chk (dest, src, __bos (dest)) \
: __stpcpy_ichk (dest, src))
@@ -129,10 +197,19 @@ __NTH (__stpcpy_ichk (char *__restrict __dest, __const char *__restrict __src))
{
return __builtin___stpcpy_chk (__dest, __src, __bos (__dest));
}
+# endif
#endif
-#define strncpy(dest, src, len) \
+#ifdef __cplusplus
+__extern_always_inline char *
+__NTH (strncpy (char *__restrict __dest, __const char *__restrict __src,
+ size_t __len))
+{
+ return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));
+}
+#else
+# define strncpy(dest, src, len) \
((__bos (dest) != (size_t) -1) \
? __builtin___strncpy_chk (dest, src, len, __bos (dest)) \
: __strncpy_ichk (dest, src, len))
@@ -142,7 +219,7 @@ __NTH (__strncpy_ichk (char *__restrict __dest, __const char *__restrict __src,
{
return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));
}
-
+#endif
// XXX We have no corresponding builtin yet.
extern char *__stpncpy_chk (char *__dest, __const char *__src, size_t __n,
@@ -161,7 +238,14 @@ __NTH (stpncpy (char *__dest, __const char *__src, size_t __n))
}
-#define strcat(dest, src) \
+#ifdef __cplusplus
+__extern_always_inline char *
+__NTH (strcat (char *__restrict __dest, __const char *__restrict __src))
+{
+ return __builtin___strcat_chk (__dest, __src, __bos (__dest));
+}
+#else
+# define strcat(dest, src) \
((__bos (dest) != (size_t) -1) \
? __builtin___strcat_chk (dest, src, __bos (dest)) \
: __strcat_ichk (dest, src))
@@ -170,9 +254,18 @@ __NTH (__strcat_ichk (char *__restrict __dest, __const char *__restrict __src))
{
return __builtin___strcat_chk (__dest, __src, __bos (__dest));
}
+#endif
-#define strncat(dest, src, len) \
+#ifdef __cplusplus
+__extern_always_inline char *
+__NTH (strncat (char *__restrict __dest, __const char *__restrict __src,
+ size_t __len))
+{
+ return __builtin___strncat_chk (__dest, __src, __len, __bos (__dest));
+}
+#else
+# define strncat(dest, src, len) \
((__bos (dest) != (size_t) -1) \
? __builtin___strncat_chk (dest, src, len, __bos (dest)) \
: __strncat_ichk (dest, src, len))
@@ -182,3 +275,4 @@ __NTH (__strncat_ichk (char *__restrict __dest, __const char *__restrict __src,
{
return __builtin___strncat_chk (__dest, __src, __len, __bos (__dest));
}
+#endif
diff --git a/libc/string/stratcliff.c b/libc/string/stratcliff.c
index 6377c6ed7..77fe2bcca 100644
--- a/libc/string/stratcliff.c
+++ b/libc/string/stratcliff.c
@@ -1,5 +1,5 @@
/* Test for string function add boundaries of usable memory.
- Copyright (C) 1996,1997,1999-2002,2003 Free Software Foundation, Inc.
+ Copyright (C) 1996,1997,1999-2002,2003,2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@@ -31,20 +31,40 @@
#include <sys/mman.h>
#include <sys/param.h>
-#ifndef MAX
-#define MAX(a, b) ((a) > (b) ? (a) : (b))
+#ifndef CHAR
+# define L(c) c
+# define CHAR char
+# define MEMSET memset
+# define STRLEN strlen
+# define STRNLEN strnlen
+# define STRCHR strchr
+# define STRRCHR strrchr
+# define STRCPY strcpy
+# define STRNCPY strncpy
+# define MEMCMP memcmp
+# define STPCPY stpcpy
+# define STPNCPY stpncpy
+# define MEMCPY memcpy
+# define MEMPCPY mempcpy
#endif
-int
-main (int argc, char *argv[])
+
+#define STRINGIFY(s) STRINGIFY2 (s)
+#define STRINGIFY2(s) #s
+
+
+static int
+do_test (void)
{
int size = sysconf (_SC_PAGESIZE);
- char *adr, *dest;
+ int nchars = size / sizeof (CHAR);
+ CHAR *adr;
+ CHAR *dest;
int result = 0;
- adr = (char *) mmap (NULL, 3 * size, PROT_READ | PROT_WRITE,
+ adr = (CHAR *) mmap (NULL, 3 * size, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANON, -1, 0);
- dest = (char *) mmap (NULL, 3 * size, PROT_READ | PROT_WRITE,
+ dest = (CHAR *) mmap (NULL, 3 * size, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANON, -1, 0);
if (adr == MAP_FAILED || dest == MAP_FAILED)
{
@@ -60,270 +80,310 @@ main (int argc, char *argv[])
{
int inner, middle, outer;
- mprotect(adr, size, PROT_NONE);
- mprotect(adr + 2 * size, size, PROT_NONE);
- adr += size;
+ mprotect (adr, size, PROT_NONE);
+ mprotect (adr + 2 * nchars, size, PROT_NONE);
+ adr += nchars;
- mprotect(dest, size, PROT_NONE);
- mprotect(dest + 2 * size, size, PROT_NONE);
- dest += size;
+ mprotect (dest, size, PROT_NONE);
+ mprotect (dest + 2 * nchars, size, PROT_NONE);
+ dest += nchars;
- memset (adr, 'T', size);
+ MEMSET (adr, L('T'), nchars);
- /* strlen test */
- for (outer = size - 1; outer >= MAX (0, size - 128); --outer)
+ /* strlen/wcslen test */
+ for (outer = nchars - 1; outer >= MAX (0, nchars - 128); --outer)
{
- for (inner = MAX (outer, size - 64); inner < size; ++inner)
+ for (inner = MAX (outer, nchars - 64); inner < nchars; ++inner)
{
- adr[inner] = '\0';
+ adr[inner] = L('\0');
- if (strlen (&adr[outer]) != (size_t) (inner - outer))
+ if (STRLEN (&adr[outer]) != (size_t) (inner - outer))
{
- printf ("strlen flunked for outer = %d, inner = %d\n",
- outer, inner);
+ printf ("%s flunked for outer = %d, inner = %d\n",
+ STRINGIFY (STRLEN), outer, inner);
result = 1;
}
- adr[inner] = 'T';
+ adr[inner] = L('T');
}
}
- /* strchr test */
- for (outer = size - 1; outer >= MAX (0, size - 128); --outer)
+ /* strnlen/wcsnlen test */
+ for (outer = nchars; outer >= MAX (0, nchars - 128); --outer)
{
- for (middle = MAX (outer, size - 64); middle < size; ++middle)
+ for (inner = MAX (outer, nchars - 64); inner < nchars; ++inner)
{
- for (inner = middle; inner < size; ++inner)
+ adr[inner] = L('\0');
+
+ if (STRNLEN (&adr[outer], inner - outer + 1)
+ != (size_t) (inner - outer))
{
- char *cp;
- adr[middle] = 'V';
- adr[inner] = '\0';
+ printf ("%s flunked for outer = %d, inner = %d\n",
+ STRINGIFY (STRNLEN), outer, inner);
+ result = 1;
+ }
- cp = strchr (&adr[outer], 'V');
+ adr[inner] = L('T');
+ }
+ }
+ for (outer = nchars; outer >= MAX (0, nchars - 128); --outer)
+ {
+ for (inner = MAX (outer, nchars - 64); inner < nchars; ++inner)
+ {
+ if (STRNLEN (&adr[outer], inner - outer + 1)
+ != (size_t) (inner - outer + 1))
+ {
+ printf ("%s flunked bounded for outer = %d, inner = %d\n",
+ STRINGIFY (STRNLEN), outer, inner);
+ result = 1;
+ }
+ }
+ }
+
+ /* strchr/wcschr test */
+ for (outer = nchars - 1; outer >= MAX (0, nchars - 128); --outer)
+ {
+ for (middle = MAX (outer, nchars - 64); middle < nchars; ++middle)
+ {
+ for (inner = middle; inner < nchars; ++inner)
+ {
+ adr[middle] = L('V');
+ adr[inner] = L('\0');
+
+ CHAR *cp = STRCHR (&adr[outer], L('V'));
if ((inner == middle && cp != NULL)
|| (inner != middle
&& (cp - &adr[outer]) != middle - outer))
{
- printf ("strchr flunked for outer = %d, middle = %d, "
- "inner = %d\n", outer, middle, inner);
+ printf ("%s flunked for outer = %d, middle = %d, "
+ "inner = %d\n",
+ STRINGIFY (STRCHR), outer, middle, inner);
result = 1;
}
- adr[inner] = 'T';
- adr[middle] = 'T';
+ adr[inner] = L('T');
+ adr[middle] = L('T');
}
}
}
/* Special test. */
- adr[size - 1] = '\0';
- if (strchr (&adr[size - 1], '\n') != NULL)
+ adr[nchars - 1] = L('\0');
+ if (STRCHR (&adr[nchars - 1], L('\n')) != NULL)
{
- puts ("strchr flunked for test of empty string at end of page");
+ printf ("%s flunked test of empty string at end of page\n",
+ STRINGIFY (STRCHR));
result = 1;
}
- /* strrchr test */
- for (outer = size - 1; outer >= MAX (0, size - 128); --outer)
+ /* strrchr/wcsrchr test */
+ for (outer = nchars - 1; outer >= MAX (0, nchars - 128); --outer)
{
- for (middle = MAX (outer, size - 64); middle < size; ++middle)
+ for (middle = MAX (outer, nchars - 64); middle < nchars; ++middle)
{
- for (inner = middle; inner < size; ++inner)
+ for (inner = middle; inner < nchars; ++inner)
{
- char *cp;
- adr[middle] = 'V';
- adr[inner] = '\0';
+ adr[middle] = L('V');
+ adr[inner] = L('\0');
- cp = strrchr (&adr[outer], 'V');
+ CHAR *cp = STRRCHR (&adr[outer], L('V'));
if ((inner == middle && cp != NULL)
|| (inner != middle
&& (cp - &adr[outer]) != middle - outer))
{
- printf ("strrchr flunked for outer = %d, middle = %d, "
- "inner = %d\n", outer, middle, inner);
+ printf ("%s flunked for outer = %d, middle = %d, "
+ "inner = %d\n",
+ STRINGIFY (STRRCHR), outer, middle, inner);
result = 1;
}
- adr[inner] = 'T';
- adr[middle] = 'T';
+ adr[inner] = L('T');
+ adr[middle] = L('T');
}
}
}
+ /* This function only exists for single-byte characters. */
+#ifndef WCSTEST
/* rawmemchr test */
- for (outer = size - 1; outer >= MAX (0, size - 128); --outer)
+ for (outer = nchars - 1; outer >= MAX (0, nchars - 128); --outer)
{
- for (middle = MAX (outer, size - 64); middle < size; ++middle)
+ for (middle = MAX (outer, nchars - 64); middle < nchars; ++middle)
{
- char *cp;
- adr[middle] = 'V';
+ adr[middle] = L('V');
- cp = rawmemchr (&adr[outer], 'V');
+ CHAR *cp = rawmemchr (&adr[outer], L('V'));
if (cp - &adr[outer] != middle - outer)
{
- printf ("rawmemchr flunked for outer = %d, middle = %d\n",
- outer, middle);
+ printf ("%s flunked for outer = %d, middle = %d\n",
+ STRINGIFY (rawmemchr), outer, middle);
result = 1;
}
- adr[middle] = 'T';
+ adr[middle] = L('T');
}
}
+#endif
- /* strcpy test */
- for (outer = size - 1; outer >= MAX (0, size - 128); --outer)
+ /* strcpy/wcscpy test */
+ for (outer = nchars - 1; outer >= MAX (0, nchars - 128); --outer)
{
- for (inner = MAX (outer, size - 64); inner < size; ++inner)
+ for (inner = MAX (outer, nchars - 64); inner < nchars; ++inner)
{
- adr[inner] = '\0';
+ adr[inner] = L('\0');
- if (strcpy (dest, &adr[outer]) != dest
- || strlen (dest) != (size_t) (inner - outer))
+ if (STRCPY (dest, &adr[outer]) != dest
+ || STRLEN (dest) != (size_t) (inner - outer))
{
- printf ("strcpy flunked for outer = %d, inner = %d\n",
- outer, inner);
+ printf ("%s flunked for outer = %d, inner = %d\n",
+ STRINGIFY (STRCPY), outer, inner);
result = 1;
}
- adr[inner] = 'T';
+ adr[inner] = L('T');
}
}
/* strncpy tests */
- adr[size-1] = 'T';
- for (outer = size - 1; outer >= MAX (0, size - 128); --outer)
+ adr[nchars - 1] = L('T');
+ for (outer = nchars - 1; outer >= MAX (0, nchars - 128); --outer)
{
size_t len;
- for (len = 0; len < size - outer; ++len)
+ for (len = 0; len < nchars - outer; ++len)
{
- if (strncpy (dest, &adr[outer], len) != dest
- || memcmp (dest, &adr[outer], len) != 0)
+ if (STRNCPY (dest, &adr[outer], len) != dest
+ || MEMCMP (dest, &adr[outer], len) != 0)
{
- printf ("outer strncpy flunked for outer = %d, len = %Zd\n",
- outer, len);
+ printf ("outer %s flunked for outer = %d, len = %Zd\n",
+ STRINGIFY (STRNCPY), outer, len);
result = 1;
}
}
}
- adr[size-1] = '\0';
+ adr[nchars - 1] = L('\0');
- for (outer = size - 1; outer >= MAX (0, size - 128); --outer)
+ for (outer = nchars - 1; outer >= MAX (0, nchars - 128); --outer)
{
- for (inner = MAX (outer, size - 64); inner < size; ++inner)
+ for (inner = MAX (outer, nchars - 64); inner < nchars; ++inner)
{
size_t len;
- adr[inner] = '\0';
+ adr[inner] = L('\0');
- for (len = 0; len < size - outer + 64; ++len)
+ for (len = 0; len < nchars - outer + 64; ++len)
{
- if (strncpy (dest, &adr[outer], len) != dest
- || memcmp (dest, &adr[outer],
+ if (STRNCPY (dest, &adr[outer], len) != dest
+ || MEMCMP (dest, &adr[outer],
MIN (inner - outer, len)) != 0
|| (inner - outer < len
- && strlen (dest) != (inner - outer)))
+ && STRLEN (dest) != (inner - outer)))
{
- printf ("strncpy flunked for outer = %d, inner = %d, len = %Zd\n",
- outer, inner, len);
+ printf ("%s flunked for outer = %d, inner = %d, "
+ "len = %Zd\n",
+ STRINGIFY (STRNCPY), outer, inner, len);
result = 1;
}
- if (strncpy (dest + 1, &adr[outer], len) != dest + 1
- || memcmp (dest + 1, &adr[outer],
+ if (STRNCPY (dest + 1, &adr[outer], len) != dest + 1
+ || MEMCMP (dest + 1, &adr[outer],
MIN (inner - outer, len)) != 0
|| (inner - outer < len
- && strlen (dest + 1) != (inner - outer)))
+ && STRLEN (dest + 1) != (inner - outer)))
{
- printf ("strncpy+1 flunked for outer = %d, inner = %d, len = %Zd\n",
- outer, inner, len);
+ printf ("%s+1 flunked for outer = %d, inner = %d, "
+ "len = %Zd\n",
+ STRINGIFY (STRNCPY), outer, inner, len);
result = 1;
}
}
- adr[inner] = 'T';
+ adr[inner] = L('T');
}
}
- /* stpcpy test */
- for (outer = size - 1; outer >= MAX (0, size - 128); --outer)
+ /* stpcpy/wcpcpy test */
+ for (outer = nchars - 1; outer >= MAX (0, nchars - 128); --outer)
{
- for (inner = MAX (outer, size - 64); inner < size; ++inner)
+ for (inner = MAX (outer, nchars - 64); inner < nchars; ++inner)
{
- adr[inner] = '\0';
+ adr[inner] = L('\0');
- if ((stpcpy (dest, &adr[outer]) - dest) != inner - outer)
+ if ((STPCPY (dest, &adr[outer]) - dest) != inner - outer)
{
- printf ("stpcpy flunked for outer = %d, inner = %d\n",
- outer, inner);
+ printf ("%s flunked for outer = %d, inner = %d\n",
+ STRINGIFY (STPCPY), outer, inner);
result = 1;
}
- adr[inner] = 'T';
+ adr[inner] = L('T');
}
}
- /* stpncpy test */
- for (outer = size - 1; outer >= MAX (0, size - 128); --outer)
+ /* stpncpy/wcpncpy test */
+ for (outer = nchars - 1; outer >= MAX (0, nchars - 128); --outer)
{
- for (middle = MAX (outer, size - 64); middle < size; ++middle)
+ for (middle = MAX (outer, nchars - 64); middle < nchars; ++middle)
{
- adr[middle] = '\0';
+ adr[middle] = L('\0');
- for (inner = 0; inner < size - outer; ++ inner)
+ for (inner = 0; inner < nchars - outer; ++ inner)
{
- if ((stpncpy (dest, &adr[outer], inner) - dest)
+ if ((STPNCPY (dest, &adr[outer], inner) - dest)
!= MIN (inner, middle - outer))
{
- printf ("stpncpy flunked for outer = %d, middle = %d, "
- "inner = %d\n", outer, middle, inner);
+ printf ("%s flunked for outer = %d, middle = %d, "
+ "inner = %d\n",
+ STRINGIFY (STPNCPY), outer, middle, inner);
result = 1;
}
}
- adr[middle] = 'T';
+ adr[middle] = L('T');
}
}
- /* memcpy test */
- for (outer = size - 1; outer >= MAX (0, size - 128); --outer)
- for (inner = 0; inner < size - outer; ++inner)
- if (memcpy (dest, &adr[outer], inner) != dest)
+ /* memcpy/wmemcpy test */
+ for (outer = nchars - 1; outer >= MAX (0, nchars - 128); --outer)
+ for (inner = 0; inner < nchars - outer; ++inner)
+ if (MEMCPY (dest, &adr[outer], inner) != dest)
{
- printf ("memcpy flunked for outer = %d, inner = %d\n",
- outer, inner);
+ printf ("%s flunked for outer = %d, inner = %d\n",
+ STRINGIFY (MEMCPY), outer, inner);
result = 1;
}
- /* mempcpy test */
- for (outer = size - 1; outer >= MAX (0, size - 128); --outer)
- for (inner = 0; inner < size - outer; ++inner)
- if (mempcpy (dest, &adr[outer], inner) != dest + inner)
+ /* mempcpy/wmempcpy test */
+ for (outer = nchars - 1; outer >= MAX (0, nchars - 128); --outer)
+ for (inner = 0; inner < nchars - outer; ++inner)
+ if (MEMPCPY (dest, &adr[outer], inner) != dest + inner)
{
- printf ("mempcpy flunked for outer = %d, inner = %d\n",
- outer, inner);
+ printf ("%s flunked for outer = %d, inner = %d\n",
+ STRINGIFY (MEMPCPY), outer, inner);
result = 1;
}
+ /* This function only exists for single-byte characters. */
+#ifndef WCSTEST
/* memccpy test */
- memset (adr, '\0', size);
- for (outer = size - 1; outer >= MAX (0, size - 128); --outer)
- for (inner = 0; inner < size - outer; ++inner)
- if (memccpy (dest, &adr[outer], '\1', inner) != NULL)
+ memset (adr, '\0', nchars);
+ for (outer = nchars - 1; outer >= MAX (0, nchars - 128); --outer)
+ for (inner = 0; inner < nchars - outer; ++inner)
+ if (memccpy (dest, &adr[outer], L('\1'), inner) != NULL)
{
printf ("memccpy flunked full copy for outer = %d, inner = %d\n",
outer, inner);
result = 1;
}
- for (outer = size - 1; outer >= MAX (0, size - 128); --outer)
- for (middle = 0; middle < size - outer; ++middle)
+ for (outer = nchars - 1; outer >= MAX (0, nchars - 128); --outer)
+ for (middle = 0; middle < nchars - outer; ++middle)
{
- memset (dest, '\2', middle + 1);
+ memset (dest, L('\2'), middle + 1);
for (inner = 0; inner < middle; ++inner)
{
- adr[outer + inner] = '\1';
+ adr[outer + inner] = L('\1');
if (memccpy (dest, &adr[outer], '\1', middle + 128)
!= dest + inner + 1)
@@ -333,17 +393,21 @@ memccpy flunked partial copy for outer = %d, middle = %d, inner = %d\n",
outer, middle, inner);
result = 1;
}
- else if (dest[inner + 1] != '\2')
+ else if (dest[inner + 1] != L('\2'))
{
printf ("\
memccpy copied too much for outer = %d, middle = %d, inner = %d\n",
outer, middle, inner);
result = 1;
}
- adr[outer + inner] = '\0';
+ adr[outer + inner] = L('\0');
}
}
+#endif
}
return result;
}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/libc/string/string.h b/libc/string/string.h
index 5e1a96fc0..90c92d452 100644
--- a/libc/string/string.h
+++ b/libc/string/string.h
@@ -423,7 +423,7 @@ extern char *basename (__const char *__filename) __THROW __nonnull ((1));
# include <bits/string2.h>
# endif
-# if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus
+# if __USE_FORTIFY_LEVEL > 0 && defined __extern_always_inline
/* Functions with security checks. */
# include <bits/string3.h>
# endif
diff --git a/libc/sysdeps/alpha/fpu/bits/mathinline.h b/libc/sysdeps/alpha/fpu/bits/mathinline.h
index 250171eeb..5378a181c 100644
--- a/libc/sysdeps/alpha/fpu/bits/mathinline.h
+++ b/libc/sysdeps/alpha/fpu/bits/mathinline.h
@@ -23,7 +23,7 @@
# error "Never use <bits/mathinline.h> directly; include <math.h> instead."
#endif
-#ifdef __cplusplus
+#ifndef __extern_inline
# define __MATH_INLINE __inline
#else
# define __MATH_INLINE __extern_inline
diff --git a/libc/sysdeps/generic/ldsodefs.h b/libc/sysdeps/generic/ldsodefs.h
index aefd105f0..147bffb96 100644
--- a/libc/sysdeps/generic/ldsodefs.h
+++ b/libc/sysdeps/generic/ldsodefs.h
@@ -845,7 +845,9 @@ enum
DL_LOOKUP_ADD_DEPENDENCY = 1,
/* Return most recent version instead of default version for
unversioned lookup. */
- DL_LOOKUP_RETURN_NEWEST = 2
+ DL_LOOKUP_RETURN_NEWEST = 2,
+ /* Set if dl_lookup* called with GSCOPE lock held. */
+ DL_LOOKUP_GSCOPE_LOCK = 4,
};
/* Lookup versioned symbol. */
diff --git a/libc/sysdeps/i386/fpu/bits/mathinline.h b/libc/sysdeps/i386/fpu/bits/mathinline.h
index a0f630e24..a786cc69c 100644
--- a/libc/sysdeps/i386/fpu/bits/mathinline.h
+++ b/libc/sysdeps/i386/fpu/bits/mathinline.h
@@ -23,7 +23,7 @@
# error "Never use <bits/mathinline.h> directly; include <math.h> instead."
#endif
-#ifdef __cplusplus
+#ifndef __extern_inline
# define __MATH_INLINE __inline
#else
# define __MATH_INLINE __extern_inline
diff --git a/libc/sysdeps/i386/i486/bits/string.h b/libc/sysdeps/i386/i486/bits/string.h
index 2db9abc9e..cf5f4847f 100644
--- a/libc/sysdeps/i386/i486/bits/string.h
+++ b/libc/sysdeps/i386/i486/bits/string.h
@@ -32,7 +32,7 @@
&& defined __GNUC__ && __GNUC__ >= 2 && !__BOUNDED_POINTERS__
#ifndef __STRING_INLINE
-# ifdef __cplusplus
+# ifndef __extern_inline
# define __STRING_INLINE inline
# else
# define __STRING_INLINE __extern_inline
diff --git a/libc/sysdeps/i386/i586/memcpy.S b/libc/sysdeps/i386/i586/memcpy.S
index 6ab457fc5..677a7e620 100644
--- a/libc/sysdeps/i386/i586/memcpy.S
+++ b/libc/sysdeps/i386/i586/memcpy.S
@@ -35,6 +35,13 @@
#define LEN SRC+PTR_SIZE
.text
+#if defined PIC && !defined NOT_IN_libc
+ENTRY (__memcpy_chk)
+ movl 12(%esp), %eax
+ cmpl %eax, 16(%esp)
+ jb HIDDEN_JUMPTARGET (__chk_fail)
+END (__memcpy_chk)
+#endif
ENTRY (BP_SYM (memcpy))
ENTER
diff --git a/libc/sysdeps/i386/i586/mempcpy.S b/libc/sysdeps/i386/i586/mempcpy.S
index 0c9520e3b..f492be7ca 100644
--- a/libc/sysdeps/i386/i586/mempcpy.S
+++ b/libc/sysdeps/i386/i586/mempcpy.S
@@ -1,4 +1,5 @@
#define memcpy __mempcpy
+#define __memcpy_chk __mempcpy_chk
#include <sysdeps/i386/i586/memcpy.S>
libc_hidden_def (BP_SYM (__mempcpy))
diff --git a/libc/sysdeps/i386/i586/memset.S b/libc/sysdeps/i386/i586/memset.S
index c21e9f7a7..3295b48e7 100644
--- a/libc/sysdeps/i386/i586/memset.S
+++ b/libc/sysdeps/i386/i586/memset.S
@@ -38,6 +38,13 @@
#endif
.text
+#if defined PIC && !defined NOT_IN_libc && !BZERO_P
+ENTRY (__memset_chk)
+ movl 12(%esp), %eax
+ cmpl %eax, 16(%esp)
+ jb HIDDEN_JUMPTARGET (__chk_fail)
+END (__memset_chk)
+#endif
ENTRY (BP_SYM (memset))
ENTER
diff --git a/libc/sysdeps/ia64/fpu/bits/mathinline.h b/libc/sysdeps/ia64/fpu/bits/mathinline.h
index 1e9025718..cd90b06d3 100644
--- a/libc/sysdeps/ia64/fpu/bits/mathinline.h
+++ b/libc/sysdeps/ia64/fpu/bits/mathinline.h
@@ -21,7 +21,7 @@
# error "Never use <bits/mathinline.h> directly; include <math.h> instead."
#endif
-#ifdef __cplusplus
+#ifndef __extern_inline
# define __MATH_INLINE __inline
#else
# define __MATH_INLINE __extern_inline
diff --git a/libc/sysdeps/ieee754/ldbl-opt/Makefile b/libc/sysdeps/ieee754/ldbl-opt/Makefile
index 7f7bc3ce3..ce2d2d5d1 100644
--- a/libc/sysdeps/ieee754/ldbl-opt/Makefile
+++ b/libc/sysdeps/ieee754/ldbl-opt/Makefile
@@ -35,7 +35,11 @@ libnldbl-calls = asprintf dprintf fprintf fscanf fwprintf fwscanf iovfscanf \
jn yn ilogb remquo lrint lround llrint llround nexttowardf \
nexttoward conj cacos cacosh casin catan catanh ccos ccosh \
casinh cexp clog cproj csin csinh csqrt ctan ctanh cpow \
- cabs carg cimag creal clog10
+ cabs carg cimag creal clog10 \
+ isoc99_scanf isoc99_fscanf isoc99_sscanf \
+ isoc99_vscanf isoc99_vfscanf isoc99_vsscanf \
+ isoc99_wscanf isoc99_fwscanf isoc99_swscanf \
+ isoc99_vwscanf isoc99_vfwscanf isoc99_vswscanf
libnldbl-routines = $(libnldbl-calls:%=nldbl-%)
libnldbl-inhibit-o = $(object-suffixes)
libnldbl-static-only-routines = $(libnldbl-routines)
diff --git a/libc/sysdeps/ieee754/ldbl-opt/Versions b/libc/sysdeps/ieee754/ldbl-opt/Versions
index d22b18ec8..74fb3383a 100644
--- a/libc/sysdeps/ieee754/ldbl-opt/Versions
+++ b/libc/sysdeps/ieee754/ldbl-opt/Versions
@@ -65,6 +65,14 @@ libc {
__nldbl___swprintf_chk; __nldbl___vswprintf_chk; __nldbl___fwprintf_chk;
__nldbl___wprintf_chk; __nldbl___vfwprintf_chk; __nldbl___vwprintf_chk;
}
+ GLIBC_2.7 {
+ __nldbl___isoc99_scanf; __nldbl___isoc99_fscanf;
+ __nldbl___isoc99_sscanf; __nldbl___isoc99_vscanf;
+ __nldbl___isoc99_vfscanf; __nldbl___isoc99_vsscanf;
+ __nldbl___isoc99_wscanf; __nldbl___isoc99_fwscanf;
+ __nldbl___isoc99_swscanf; __nldbl___isoc99_vwscanf;
+ __nldbl___isoc99_vfwscanf; __nldbl___isoc99_vswscanf;
+ }
}
libm {
NLDBL_VERSION {
diff --git a/libc/sysdeps/ieee754/ldbl-opt/nldbl-compat.c b/libc/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
index f82c5f60b..b87f3bc47 100644
--- a/libc/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
+++ b/libc/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
@@ -1,5 +1,5 @@
/* *printf* family compatibility routines for IEEE double as long double
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@cygnus.com>, 2006.
@@ -50,6 +50,10 @@ libc_hidden_proto (__nldbl___vsprintf_chk)
libc_hidden_proto (__nldbl___vswprintf_chk)
libc_hidden_proto (__nldbl___vstrfmon)
libc_hidden_proto (__nldbl___vstrfmon_l)
+libc_hidden_proto (__nldbl___isoc99_vsscanf)
+libc_hidden_proto (__nldbl___isoc99_vfscanf)
+libc_hidden_proto (__nldbl___isoc99_vswscanf)
+libc_hidden_proto (__nldbl___isoc99_vfwscanf)
static void
__nldbl_cleanup (void *arg)
@@ -782,6 +786,153 @@ __nldbl_vsyslog (int pri, const char *fmt, va_list ap)
__nldbl___vsyslog_chk (pri, -1, fmt, ap);
}
+int
+attribute_compat_text_section
+__nldbl___isoc99_vfscanf (FILE *s, const char *fmt, va_list ap)
+{
+ int res;
+ set_no_long_double ();
+ res = __isoc99_vfscanf (s, fmt, ap);
+ clear_no_long_double ();
+ return res;
+}
+libc_hidden_def (__nldbl___isoc99_vfscanf)
+
+int
+attribute_compat_text_section
+__nldbl___isoc99_sscanf (const char *s, const char *fmt, ...)
+{
+ va_list arg;
+ int done;
+
+ va_start (arg, fmt);
+ done = __nldbl___isoc99_vsscanf (s, fmt, arg);
+ va_end (arg);
+
+ return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl___isoc99_vsscanf (const char *string, const char *fmt, va_list ap)
+{
+ int res;
+ __no_long_double = 1;
+ res = __isoc99_vsscanf (string, fmt, ap);
+ __no_long_double = 0;
+ return res;
+}
+libc_hidden_def (__nldbl___isoc99_vsscanf)
+
+int
+attribute_compat_text_section
+__nldbl___isoc99_vscanf (const char *fmt, va_list ap)
+{
+ return __nldbl___isoc99_vfscanf (stdin, fmt, ap);
+}
+
+int
+attribute_compat_text_section
+__nldbl___isoc99_fscanf (FILE *stream, const char *fmt, ...)
+{
+ va_list arg;
+ int done;
+
+ va_start (arg, fmt);
+ done = __nldbl___isoc99_vfscanf (stream, fmt, arg);
+ va_end (arg);
+
+ return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl___isoc99_scanf (const char *fmt, ...)
+{
+ va_list arg;
+ int done;
+
+ va_start (arg, fmt);
+ done = __nldbl___isoc99_vfscanf (stdin, fmt, arg);
+ va_end (arg);
+
+ return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl___isoc99_vfwscanf (FILE *s, const wchar_t *fmt, va_list ap)
+{
+ int res;
+ set_no_long_double ();
+ res = __isoc99_vfwscanf (s, fmt, ap);
+ clear_no_long_double ();
+ return res;
+}
+libc_hidden_def (__nldbl___isoc99_vfwscanf)
+
+int
+attribute_compat_text_section
+__nldbl___isoc99_swscanf (const wchar_t *s, const wchar_t *fmt, ...)
+{
+ va_list arg;
+ int done;
+
+ va_start (arg, fmt);
+ done = __nldbl___isoc99_vswscanf (s, fmt, arg);
+ va_end (arg);
+
+ return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl___isoc99_vswscanf (const wchar_t *string, const wchar_t *fmt,
+ va_list ap)
+{
+ int res;
+ __no_long_double = 1;
+ res = __isoc99_vswscanf (string, fmt, ap);
+ __no_long_double = 0;
+ return res;
+}
+libc_hidden_def (__nldbl___isoc99_vswscanf)
+
+int
+attribute_compat_text_section
+__nldbl___isoc99_vwscanf (const wchar_t *fmt, va_list ap)
+{
+ return __nldbl___isoc99_vfwscanf (stdin, fmt, ap);
+}
+
+int
+attribute_compat_text_section
+__nldbl___isoc99_fwscanf (FILE *stream, const wchar_t *fmt, ...)
+{
+ va_list arg;
+ int done;
+
+ va_start (arg, fmt);
+ done = __nldbl___isoc99_vfwscanf (stream, fmt, arg);
+ va_end (arg);
+
+ return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl___isoc99_wscanf (const wchar_t *fmt, ...)
+{
+ va_list arg;
+ int done;
+
+ va_start (arg, fmt);
+ done = __nldbl___isoc99_vfwscanf (stdin, fmt, arg);
+ va_end (arg);
+
+ return done;
+}
+
#if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
compat_symbol (libc, __nldbl__IO_printf, _IO_printf, GLIBC_2_0);
compat_symbol (libc, __nldbl__IO_sprintf, _IO_sprintf, GLIBC_2_0);
diff --git a/libc/sysdeps/ieee754/ldbl-opt/nldbl-compat.h b/libc/sysdeps/ieee754/ldbl-opt/nldbl-compat.h
index c0461000f..c7824583d 100644
--- a/libc/sysdeps/ieee754/ldbl-opt/nldbl-compat.h
+++ b/libc/sysdeps/ieee754/ldbl-opt/nldbl-compat.h
@@ -1,5 +1,5 @@
/* Prototypes for compatibility double == long double entry points.
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@cygnus.com>, 2006.
@@ -61,6 +61,18 @@ NLDBL_DECL (qecvt);
NLDBL_DECL (qfcvt);
NLDBL_DECL (qgcvt);
NLDBL_DECL (__vstrfmon_l);
+NLDBL_DECL (__isoc99_scanf);
+NLDBL_DECL (__isoc99_fscanf);
+NLDBL_DECL (__isoc99_sscanf);
+NLDBL_DECL (__isoc99_vscanf);
+NLDBL_DECL (__isoc99_vfscanf);
+NLDBL_DECL (__isoc99_vsscanf);
+NLDBL_DECL (__isoc99_wscanf);
+NLDBL_DECL (__isoc99_fwscanf);
+NLDBL_DECL (__isoc99_swscanf);
+NLDBL_DECL (__isoc99_vwscanf);
+NLDBL_DECL (__isoc99_vfwscanf);
+NLDBL_DECL (__isoc99_vswscanf);
/* This one does not exist in the normal interface, only
__nldbl___vstrfmon really exists. */
diff --git a/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_fscanf.c b/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_fscanf.c
new file mode 100644
index 000000000..1d736668a
--- /dev/null
+++ b/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_fscanf.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc99_fscanf (FILE *stream, const char *fmt, ...)
+{
+ va_list arg;
+ int done;
+
+ va_start (arg, fmt);
+ done = __nldbl___isoc99_vfscanf (stream, fmt, arg);
+ va_end (arg);
+
+ return done;
+}
diff --git a/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_fwscanf.c b/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_fwscanf.c
new file mode 100644
index 000000000..dbea1512c
--- /dev/null
+++ b/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_fwscanf.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc99_fwscanf (FILE *stream, const wchar_t *fmt, ...)
+{
+ va_list arg;
+ int done;
+
+ va_start (arg, fmt);
+ done = __nldbl___isoc99_vfwscanf (stream, fmt, arg);
+ va_end (arg);
+
+ return done;
+}
diff --git a/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_scanf.c b/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_scanf.c
new file mode 100644
index 000000000..ec2ec5329
--- /dev/null
+++ b/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_scanf.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc99_scanf (const char *fmt, ...)
+{
+ va_list arg;
+ int done;
+
+ va_start (arg, fmt);
+ done = __nldbl___isoc99_vfscanf (stdin, fmt, arg);
+ va_end (arg);
+
+ return done;
+}
diff --git a/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_sscanf.c b/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_sscanf.c
new file mode 100644
index 000000000..52e1bd5d2
--- /dev/null
+++ b/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_sscanf.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc99_sscanf (const char *s, const char *fmt, ...)
+{
+ va_list arg;
+ int done;
+
+ va_start (arg, fmt);
+ done = __nldbl___isoc99_vsscanf (s, fmt, arg);
+ va_end (arg);
+
+ return done;
+}
diff --git a/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_swscanf.c b/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_swscanf.c
new file mode 100644
index 000000000..927d02492
--- /dev/null
+++ b/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_swscanf.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc99_swscanf (const wchar_t *s, const wchar_t *fmt, ...)
+{
+ va_list arg;
+ int done;
+
+ va_start (arg, fmt);
+ done = __nldbl___isoc99_vswscanf (s, fmt, arg);
+ va_end (arg);
+
+ return done;
+}
diff --git a/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vfscanf.c b/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vfscanf.c
new file mode 100644
index 000000000..55556c375
--- /dev/null
+++ b/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vfscanf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc99_vfscanf (FILE *s, const char *fmt, va_list ap)
+{
+ return __nldbl___isoc99_vfscanf (s, fmt, ap);
+}
diff --git a/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vfwscanf.c b/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vfwscanf.c
new file mode 100644
index 000000000..4fd54cb17
--- /dev/null
+++ b/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vfwscanf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc99_vfwscanf (FILE *s, const wchar_t *fmt, va_list ap)
+{
+ return __nldbl___isoc99_vfwscanf (s, fmt, ap);
+}
diff --git a/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vscanf.c b/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vscanf.c
new file mode 100644
index 000000000..6284c9339
--- /dev/null
+++ b/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vscanf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc99_vscanf (const char *fmt, va_list ap)
+{
+ return __nldbl___isoc99_vfscanf (stdin, fmt, ap);
+}
diff --git a/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vsscanf.c b/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vsscanf.c
new file mode 100644
index 000000000..0c19032b1
--- /dev/null
+++ b/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vsscanf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc99_vsscanf (const char *string, const char *fmt, va_list ap)
+{
+ return __nldbl___isoc99_vsscanf (string, fmt, ap);
+}
diff --git a/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vswscanf.c b/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vswscanf.c
new file mode 100644
index 000000000..5f34221b6
--- /dev/null
+++ b/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vswscanf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc99_vswscanf (const wchar_t *string, const wchar_t *fmt, va_list ap)
+{
+ return __nldbl___isoc99_vswscanf (string, fmt, ap);
+}
diff --git a/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vwscanf.c b/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vwscanf.c
new file mode 100644
index 000000000..a8a76ff54
--- /dev/null
+++ b/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vwscanf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc99_vwscanf (const wchar_t *fmt, va_list ap)
+{
+ return __nldbl___isoc99_vfwscanf (stdin, fmt, ap);
+}
diff --git a/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_wscanf.c b/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_wscanf.c
new file mode 100644
index 000000000..fc2f6f859
--- /dev/null
+++ b/libc/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_wscanf.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc99_wscanf (const wchar_t *fmt, ...)
+{
+ va_list arg;
+ int done;
+
+ va_start (arg, fmt);
+ done = __nldbl___isoc99_vfwscanf (stdin, fmt, arg);
+ va_end (arg);
+
+ return done;
+}
diff --git a/libc/sysdeps/posix/getaddrinfo.c b/libc/sysdeps/posix/getaddrinfo.c
index adb3c4f96..221b41dd0 100644
--- a/libc/sysdeps/posix/getaddrinfo.c
+++ b/libc/sysdeps/posix/getaddrinfo.c
@@ -1944,6 +1944,9 @@ getaddrinfo (const char *name, const char *service,
if (in6ai != NULL)
qsort (in6ai, in6ailen, sizeof (*in6ai), in6aicmp);
+ int fd = -1;
+ int af = AF_UNSPEC;
+
for (i = 0, q = p; q != NULL; ++i, last = q, q = q->ai_next)
{
results[i].dest_addr = q;
@@ -1968,7 +1971,21 @@ getaddrinfo (const char *name, const char *service,
want connect() to connect to the other side. If we
cannot determine the source address remember this
fact. */
- int fd = __socket (q->ai_family, SOCK_DGRAM, IPPROTO_IP);
+ if (fd == -1 || (af == AF_INET && q->ai_family == AF_INET6))
+ {
+ if (fd != -1)
+ close_retry:
+ close_not_cancel_no_status (fd);
+ af = q->ai_family;
+ fd = __socket (af, SOCK_DGRAM, IPPROTO_IP);
+ }
+ else
+ {
+ /* Reset the connection. */
+ struct sockaddr sa = { .sa_family = AF_UNSPEC };
+ __connect (fd, &sa, sizeof (sa));
+ }
+
socklen_t sl = sizeof (results[i].source_addr);
if (fd != -1
&& __connect (fd, q->ai_addr, q->ai_addrlen) == 0
@@ -1979,9 +1996,9 @@ getaddrinfo (const char *name, const char *service,
results[i].source_addr_len = sl;
results[i].got_source_addr = true;
- if (q->ai_family == PF_INET6 && in6ai != NULL)
+ if (q->ai_family == AF_INET6 && in6ai != NULL)
{
- /* See whether the source address is the list of
+ /* See whether the source address is on the list of
deprecated or temporary addresses. */
struct in6addrinfo tmp;
struct sockaddr_in6 *sin6p
@@ -1994,14 +2011,29 @@ getaddrinfo (const char *name, const char *service,
if (found != NULL)
results[i].source_addr_flags = found->flags;
}
+ else if (q->ai_family == AF_INET && af == AF_INET6)
+ {
+ /* We have to convert the address. The socket is
+ IPv6 and the request is for IPv4. */
+ struct sockaddr_in6 *sin6
+ = (struct sockaddr_in6 *) &results[i].source_addr;
+ struct sockaddr_in *sin
+ = (struct sockaddr_in *) &results[i].source_addr;
+ assert (IN6_IS_ADDR_V4MAPPED (sin6->sin6_addr.s6_addr32));
+ memcpy (&sin->sin_addr,
+ &sin6->sin6_addr.s6_addr32[3], INADDRSZ);
+ results[i].source_addr_len = INADDRSZ;
+ sin->sin_family = AF_INET;
+ }
}
+ else if (errno == EAFNOSUPPORT && af == AF_INET6
+ && q->ai_family == AF_INET)
+ /* This could mean IPv6 sockets are IPv6-only. */
+ goto close_retry;
else
/* Just make sure that if we have to process the same
address again we do not copy any memory. */
results[i].source_addr_len = 0;
-
- if (fd != -1)
- close_not_cancel_no_status (fd);
}
/* Remember the canonical name. */
@@ -2013,6 +2045,9 @@ getaddrinfo (const char *name, const char *service,
}
}
+ if (fd != -1)
+ close_not_cancel_no_status (fd);
+
/* We got all the source addresses we can get, now sort using
the information. */
qsort (results, nresults, sizeof (results[0]), rfc3484_sort);
diff --git a/libc/sysdeps/powerpc/fpu/bits/mathinline.h b/libc/sysdeps/powerpc/fpu/bits/mathinline.h
index bcb9098f8..c5d458582 100644
--- a/libc/sysdeps/powerpc/fpu/bits/mathinline.h
+++ b/libc/sysdeps/powerpc/fpu/bits/mathinline.h
@@ -22,7 +22,7 @@
# error "Never use <bits/mathinline.h> directly; include <math.h> instead."
#endif
-#ifdef __cplusplus
+#ifndef __extern_inline
# define __MATH_INLINE __inline
#else
# define __MATH_INLINE __extern_inline
diff --git a/libc/sysdeps/s390/bits/string.h b/libc/sysdeps/s390/bits/string.h
index e16c7cb82..87550c5f6 100644
--- a/libc/sysdeps/s390/bits/string.h
+++ b/libc/sysdeps/s390/bits/string.h
@@ -31,7 +31,7 @@
&& defined __GNUC__ && __GNUC__ >= 2
#ifndef __STRING_INLINE
-# ifdef __cplusplus
+# ifndef __extern_inline
# define __STRING_INLINE inline
# else
# define __STRING_INLINE __extern_inline
diff --git a/libc/sysdeps/s390/fpu/bits/mathinline.h b/libc/sysdeps/s390/fpu/bits/mathinline.h
index 06a636845..03af01c2b 100644
--- a/libc/sysdeps/s390/fpu/bits/mathinline.h
+++ b/libc/sysdeps/s390/fpu/bits/mathinline.h
@@ -21,7 +21,7 @@
# error "Never use <bits/mathinline.h> directly; include <math.h> instead."
#endif
-#ifdef __cplusplus
+#ifndef __extern_inline
# define __MATH_INLINE __inline
#else
# define __MATH_INLINE __extern_inline
diff --git a/libc/sysdeps/sparc/fpu/bits/mathinline.h b/libc/sysdeps/sparc/fpu/bits/mathinline.h
index 16ad22e66..d3ff44c5a 100644
--- a/libc/sysdeps/sparc/fpu/bits/mathinline.h
+++ b/libc/sysdeps/sparc/fpu/bits/mathinline.h
@@ -128,7 +128,7 @@
#if (!defined __NO_MATH_INLINES || defined __LIBC_INTERNAL_MATH_INLINES) && defined __OPTIMIZE__
-# ifdef __cplusplus
+# ifndef __extern_inline
# define __MATH_INLINE __inline
# else
# define __MATH_INLINE __extern_inline
diff --git a/libc/sysdeps/sparc/sparc32/elf/start.S b/libc/sysdeps/sparc/sparc32/elf/start.S
index 702dd755e..85adb7322 100644
--- a/libc/sysdeps/sparc/sparc32/elf/start.S
+++ b/libc/sysdeps/sparc/sparc32/elf/start.S
@@ -1,5 +1,5 @@
/* Startup code for elf32-sparc
- Copyright (C) 1997, 1998, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1997, 1998, 2002, 2004, 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <richard@gnu.ai.mit.edu>, 1997.
@@ -48,8 +48,6 @@
.global _start
.type _start,#function
_start:
- cfi_startproc
-
#ifdef SHARED
sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %l7
call .LLGETPC0
@@ -60,7 +58,6 @@ _start:
drop their arguments. */
mov %g0, %fp
sub %sp, 6*4, %sp
- cfi_adjust_cfa_offset(6*4)
/* Extract the arguments and environment as encoded on the stack. The
argument info starts after one register window (16 words) past the SP. */
@@ -93,8 +90,6 @@ _start:
/* Die very horribly if exit returns. */
unimp
- cfi_endproc
-
.size _start, .-_start
/* Define a symbol for the first piece of initialized data. */
diff --git a/libc/sysdeps/sparc/sparc64/elf/start.S b/libc/sysdeps/sparc/sparc64/elf/start.S
index df44cae06..650d3d304 100644
--- a/libc/sysdeps/sparc/sparc64/elf/start.S
+++ b/libc/sysdeps/sparc/sparc64/elf/start.S
@@ -1,5 +1,5 @@
/* Startup code for elf64-sparc
- Copyright (C) 1997, 1998, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1997, 1998, 2002, 2004, 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <richard@gnu.ai.mit.edu>, 1997.
@@ -48,8 +48,6 @@
.global _start
.type _start,#function
_start:
- cfi_startproc
-
#ifdef SHARED
sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %l7
call .LLGETPC0
@@ -60,7 +58,6 @@ _start:
drop their arguments. */
mov %g0, %fp
sub %sp, 6*8, %sp
- cfi_adjust_cfa_offset(6*8)
/* Extract the arguments and environment as encoded on the stack. The
argument info starts after one register window (16 words) past the SP,
@@ -94,8 +91,6 @@ _start:
/* Die very horribly if exit returns. */
illtrap 0
- cfi_endproc
-
.size _start, .-_start
/* Define a symbol for the first piece of initialized data. */
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h b/libc/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h
index b4f49cf63..7c93183ad 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h
+++ b/libc/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h
@@ -213,17 +213,17 @@ extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to,
/* Splice address range into a pipe. */
-extern int vmsplice (int __fdout, const struct iovec *__iov, size_t __count,
- unsigned int __flags);
+extern ssize_t vmsplice (int __fdout, const struct iovec *__iov,
+ size_t __count, unsigned int __flags);
/* Splice two files together. */
-extern int splice (int __fdin, __off64_t *__offin, int __fdout,
- __off64_t *__offout, size_t __len, unsigned int __flags)
- __THROW;
+extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout,
+ __off64_t *__offout, size_t __len,
+ unsigned int __flags);
/* In-kernel implementation of tee for pipe buffers. */
-extern int tee (int __fdin, int __fdout, size_t __len, unsigned int __flags)
- __THROW;
+extern ssize_t tee (int __fdin, int __fdout, size_t __len,
+ unsigned int __flags);
#endif
diff --git a/libc/sysdeps/unix/sysv/linux/i386/Makefile b/libc/sysdeps/unix/sysv/linux/i386/Makefile
index 9e8497563..f52ee89f0 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/Makefile
+++ b/libc/sysdeps/unix/sysv/linux/i386/Makefile
@@ -1,5 +1,5 @@
ifeq ($(subdir),misc)
-sysdep_routines += ioperm iopl vm86 call_pselect6
+sysdep_routines += ioperm iopl vm86 call_pselect6 call_fallocate
sysdep_headers += sys/elf.h sys/perm.h sys/reg.h sys/vm86.h sys/debugreg.h sys/io.h
endif
diff --git a/libc/sysdeps/unix/sysv/linux/i386/bits/fcntl.h b/libc/sysdeps/unix/sysv/linux/i386/bits/fcntl.h
index 83ca3c286..1ad51ad6b 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/bits/fcntl.h
+++ b/libc/sysdeps/unix/sysv/linux/i386/bits/fcntl.h
@@ -221,17 +221,17 @@ extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to,
/* Splice address range into a pipe. */
-extern int vmsplice (int __fdout, const struct iovec *__iov, size_t __count,
- unsigned int __flags);
+extern ssize_t vmsplice (int __fdout, const struct iovec *__iov,
+ size_t __count, unsigned int __flags);
/* Splice two files together. */
-extern int splice (int __fdin, __off64_t *__offin, int __fdout,
- __off64_t *__offout, size_t __len, unsigned int __flags)
- __THROW;
+extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout,
+ __off64_t *__offout, size_t __len,
+ unsigned int __flags);
/* In-kernel implementation of tee for pipe buffers. */
-extern int tee (int __fdin, int __fdout, size_t __len, unsigned int __flags)
- __THROW;
+extern ssize_t tee (int __fdin, int __fdout, size_t __len,
+ unsigned int __flags);
#endif
diff --git a/libc/sysdeps/unix/sysv/linux/i386/call_fallocate.S b/libc/sysdeps/unix/sysv/linux/i386/call_fallocate.S
new file mode 100644
index 000000000..39ab7979c
--- /dev/null
+++ b/libc/sysdeps/unix/sysv/linux/i386/call_fallocate.S
@@ -0,0 +1,7 @@
+#include <sysdep.h>
+
+#ifdef __NR_fallocate
+PSEUDO_ERRVAL (__call_fallocate, fallocate, 6)
+ ret_ERRVAL
+PSEUDO_END_ERRVAL(__call_fallocate)
+#endif
diff --git a/libc/sysdeps/unix/sysv/linux/i386/posix_fallocate.c b/libc/sysdeps/unix/sysv/linux/i386/posix_fallocate.c
index c974d06af..9ac7b3848 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/posix_fallocate.c
+++ b/libc/sysdeps/unix/sysv/linux/i386/posix_fallocate.c
@@ -28,7 +28,7 @@
int __have_fallocate attribute_hidden;
#endif
-extern int __fallocate64 (int fd, int mode, __off64_t offset, __off64_t len)
+extern int __call_fallocate (int fd, int mode, __off64_t offset, __off64_t len)
attribute_hidden;
/* Reserve storage for the data of the file associated with FD. */
@@ -40,7 +40,7 @@ posix_fallocate (int fd, __off_t offset, __off_t len)
if (__builtin_expect (__have_fallocate >= 0, 1))
# endif
{
- int res = __fallocate64 (fd, 0, offset, len);
+ int res = __call_fallocate (fd, 0, offset, len);
if (! res)
return 0;
diff --git a/libc/sysdeps/unix/sysv/linux/i386/posix_fallocate64.c b/libc/sysdeps/unix/sysv/linux/i386/posix_fallocate64.c
index d5b4d597c..f1ed7e315 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/posix_fallocate64.c
+++ b/libc/sysdeps/unix/sysv/linux/i386/posix_fallocate64.c
@@ -30,7 +30,7 @@ extern int __posix_fallocate64_l64 (int fd, __off64_t offset, __off64_t len);
extern int __have_fallocate attribute_hidden;
#endif
-extern int __fallocate64 (int fd, int mode, __off64_t offset, __off64_t len)
+extern int __call_fallocate (int fd, int mode, __off64_t offset, __off64_t len)
attribute_hidden;
/* Reserve storage for the data of the file associated with FD. */
@@ -42,7 +42,7 @@ __posix_fallocate64_l64 (int fd, __off64_t offset, __off64_t len)
if (__builtin_expect (__have_fallocate >= 0, 1))
# endif
{
- int res = __fallocate64 (fd, 0, offset, len);
+ int res = __call_fallocate (fd, 0, offset, len);
if (! res)
return 0;
diff --git a/libc/sysdeps/unix/sysv/linux/i386/syscalls.list b/libc/sysdeps/unix/sysv/linux/i386/syscalls.list
index 324ab3dc1..3ff3a73aa 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/syscalls.list
+++ b/libc/sysdeps/unix/sysv/linux/i386/syscalls.list
@@ -6,4 +6,3 @@ vm86 - vm86 i:ip __vm86 vm86@@GLIBC_2.3.4
oldgetrlimit EXTRA getrlimit i:ip __old_getrlimit getrlimit@GLIBC_2.0
oldsetrlimit EXTRA setrlimit i:ip __old_setrlimit setrlimit@GLIBC_2.0
waitpid - waitpid Ci:ipi __waitpid waitpid __libc_waitpid
-fallocate64 - fallocate Vi:iiiiii __fallocate64
diff --git a/libc/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h b/libc/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h
index 8fa96e4e2..69bc39f69 100644
--- a/libc/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h
+++ b/libc/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h
@@ -215,17 +215,17 @@ extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to,
/* Splice address range into a pipe. */
-extern int vmsplice (int __fdout, const struct iovec *__iov, size_t __count,
- unsigned int __flags);
+extern ssize_t vmsplice (int __fdout, const struct iovec *__iov,
+ size_t __count, unsigned int __flags);
/* Splice two files together. */
-extern int splice (int __fdin, __off64_t *__offin, int __fdout,
- __off64_t *__offout, size_t __len, unsigned int __flags)
- __THROW;
+extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout,
+ __off64_t *__offout, size_t __len,
+ unsigned int __flags);
/* In-kernel implementation of tee for pipe buffers. */
-extern int tee (int __fdin, int __fdout, size_t __len, unsigned int __flags)
- __THROW;
+extern ssize_t tee (int __fdin, int __fdout, size_t __len,
+ unsigned int __flags);
#endif
diff --git a/libc/sysdeps/unix/sysv/linux/mq_open.c b/libc/sysdeps/unix/sysv/linux/mq_open.c
index eac6e0123..6330fee4e 100644
--- a/libc/sysdeps/unix/sysv/linux/mq_open.c
+++ b/libc/sysdeps/unix/sysv/linux/mq_open.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -20,6 +20,7 @@
#include <mqueue.h>
#include <stdarg.h>
#include <stddef.h>
+#include <stdio.h>
#include <sysdep.h>
#ifdef __NR_mq_open
@@ -32,7 +33,7 @@
attributes. If the fourth argument is NULL, default attributes are
used. */
mqd_t
-mq_open (const char *name, int oflag, ...)
+__mq_open (const char *name, int oflag, ...)
{
if (name[0] != '/')
{
@@ -54,7 +55,16 @@ mq_open (const char *name, int oflag, ...)
return INLINE_SYSCALL (mq_open, 4, name + 1, oflag, mode, attr);
}
+strong_alias (__mq_open, mq_open);
+mqd_t
+__mq_open_2 (const char *name, int oflag)
+{
+ if (oflag & O_CREAT)
+ __fortify_fail ("invalid mq_open call: O_CREAT without mode and attr");
+
+ return __mq_open (name, oflag);
+}
#else
# include <rt/mq_open.c>
#endif
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h b/libc/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h
index 68015dbca..0ad99b5ea 100644
--- a/libc/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h
+++ b/libc/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h
@@ -221,17 +221,17 @@ extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to,
/* Splice address range into a pipe. */
-extern int vmsplice (int __fdout, const struct iovec *__iov, size_t __count,
- unsigned int __flags);
+extern ssize_t vmsplice (int __fdout, const struct iovec *__iov,
+ size_t __count, unsigned int __flags);
/* Splice two files together. */
-extern int splice (int __fdin, __off64_t *__offin, int __fdout,
- __off64_t *__offout, size_t __len, unsigned int __flags)
- __THROW;
+extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout,
+ __off64_t *__offout, size_t __len,
+ unsigned int __flags);
/* In-kernel implementation of tee for pipe buffers. */
-extern int tee (int __fdin, int __fdout, size_t __len, unsigned int __flags)
- __THROW;
+extern ssize_t tee (int __fdin, int __fdout, size_t __len,
+ unsigned int __flags);
#endif
diff --git a/libc/sysdeps/unix/sysv/linux/s390/bits/fcntl.h b/libc/sysdeps/unix/sysv/linux/s390/bits/fcntl.h
index 848568532..c26e0e771 100644
--- a/libc/sysdeps/unix/sysv/linux/s390/bits/fcntl.h
+++ b/libc/sysdeps/unix/sysv/linux/s390/bits/fcntl.h
@@ -241,17 +241,17 @@ extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to,
/* Splice address range into a pipe. */
-extern int vmsplice (int __fdout, const struct iovec *__iov, size_t __count,
- unsigned int __flags);
+extern ssize_t vmsplice (int __fdout, const struct iovec *__iov,
+ size_t __count, unsigned int __flags);
/* Splice two files together. */
-extern int splice (int __fdin, __off64_t *__offin, int __fdout,
- __off64_t *__offout, size_t __len, unsigned int __flags)
- __THROW;
+extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout,
+ __off64_t *__offout, size_t __len,
+ unsigned int __flags);
/* In-kernel implementation of tee for pipe buffers. */
-extern int tee (int __fdin, int __fdout, size_t __len, unsigned int __flags)
- __THROW;
+extern ssize_t tee (int __fdin, int __fdout, size_t __len,
+ unsigned int __flags);
#endif
diff --git a/libc/sysdeps/unix/sysv/linux/sh/bits/fcntl.h b/libc/sysdeps/unix/sysv/linux/sh/bits/fcntl.h
index 83ca3c286..1ad51ad6b 100644
--- a/libc/sysdeps/unix/sysv/linux/sh/bits/fcntl.h
+++ b/libc/sysdeps/unix/sysv/linux/sh/bits/fcntl.h
@@ -221,17 +221,17 @@ extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to,
/* Splice address range into a pipe. */
-extern int vmsplice (int __fdout, const struct iovec *__iov, size_t __count,
- unsigned int __flags);
+extern ssize_t vmsplice (int __fdout, const struct iovec *__iov,
+ size_t __count, unsigned int __flags);
/* Splice two files together. */
-extern int splice (int __fdin, __off64_t *__offin, int __fdout,
- __off64_t *__offout, size_t __len, unsigned int __flags)
- __THROW;
+extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout,
+ __off64_t *__offout, size_t __len,
+ unsigned int __flags);
/* In-kernel implementation of tee for pipe buffers. */
-extern int tee (int __fdin, int __fdout, size_t __len, unsigned int __flags)
- __THROW;
+extern ssize_t tee (int __fdin, int __fdout, size_t __len,
+ unsigned int __flags);
#endif
diff --git a/libc/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h b/libc/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h
index 2307a2353..ebfeb605a 100644
--- a/libc/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h
+++ b/libc/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h
@@ -240,17 +240,17 @@ extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to,
/* Splice address range into a pipe. */
-extern int vmsplice (int __fdout, const struct iovec *__iov, size_t __count,
- unsigned int __flags);
+extern ssize_t vmsplice (int __fdout, const struct iovec *__iov,
+ size_t __count, unsigned int __flags);
/* Splice two files together. */
-extern int splice (int __fdin, __off64_t *__offin, int __fdout,
- __off64_t *__offout, size_t __len, unsigned int __flags)
- __THROW;
+extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout,
+ __off64_t *__offout, size_t __len,
+ unsigned int __flags);
/* In-kernel implementation of tee for pipe buffers. */
-extern int tee (int __fdin, int __fdout, size_t __len, unsigned int __flags)
- __THROW;
+extern ssize_t tee (int __fdin, int __fdout, size_t __len,
+ unsigned int __flags);
#endif
diff --git a/libc/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S b/libc/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S
index a64d8e519..b623bfb8d 100644
--- a/libc/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S
+++ b/libc/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S
@@ -82,8 +82,6 @@ END(__clone)
.type __thread_start,@function
__thread_start:
- cfi_startproc
-
#ifdef RESET_PID
sethi %hi(CLONE_THREAD), %l0
andcc %g4, %l0, %g0
@@ -104,8 +102,6 @@ __thread_start:
call HIDDEN_JUMPTARGET(_exit),0
nop
- cfi_endproc
-
.size __thread_start, .-__thread_start
weak_alias (__clone, clone)
diff --git a/libc/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S b/libc/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S
index 2bbbd8020..9d101e239 100644
--- a/libc/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S
+++ b/libc/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S
@@ -78,7 +78,6 @@ END(__clone)
.type __thread_start,@function
__thread_start:
- cfi_startproc
#ifdef RESET_PID
sethi %hi(CLONE_THREAD), %l0
andcc %g4, %l0, %g0
@@ -97,7 +96,6 @@ __thread_start:
mov %g3,%o0
call HIDDEN_JUMPTARGET(_exit),0
nop
- cfi_endproc
.size __thread_start, .-__thread_start
diff --git a/libc/sysdeps/unix/sysv/linux/sys/sysmacros.h b/libc/sysdeps/unix/sysv/linux/sys/sysmacros.h
index e59672980..92b3a19d4 100644
--- a/libc/sysdeps/unix/sysv/linux/sys/sysmacros.h
+++ b/libc/sysdeps/unix/sysv/linux/sys/sysmacros.h
@@ -28,17 +28,17 @@
they need. */
#ifdef __GLIBC_HAVE_LONG_LONG
__extension__
-__extern_inline unsigned int gnu_dev_major (unsigned long long int __dev)
+extern unsigned int gnu_dev_major (unsigned long long int __dev)
__THROW;
__extension__
-__extern_inline unsigned int gnu_dev_minor (unsigned long long int __dev)
+extern unsigned int gnu_dev_minor (unsigned long long int __dev)
__THROW;
__extension__
-__extern_inline unsigned long long int gnu_dev_makedev (unsigned int __major,
- unsigned int __minor)
+extern unsigned long long int gnu_dev_makedev (unsigned int __major,
+ unsigned int __minor)
__THROW;
-# if defined __GNUC__ && __GNUC__ >= 2
+# if defined __GNUC__ && __GNUC__ >= 2 && defined __USE_EXTERN_INLINES
__extension__ __extern_inline unsigned int
__NTH (gnu_dev_major (unsigned long long int __dev))
{
diff --git a/libc/sysdeps/unix/sysv/linux/syscalls.list b/libc/sysdeps/unix/sysv/linux/syscalls.list
index 7e5cc7050..e304a78ea 100644
--- a/libc/sysdeps/unix/sysv/linux/syscalls.list
+++ b/libc/sysdeps/unix/sysv/linux/syscalls.list
@@ -66,14 +66,14 @@ setfsgid EXTRA setfsgid i:i setfsgid
setfsuid EXTRA setfsuid i:i setfsuid
setpgid - setpgid i:ii __setpgid setpgid
sigaltstack - sigaltstack i:PP __sigaltstack sigaltstack
-splice EXTRA splice i:iPiPii splice
+splice EXTRA splice Ci:iPiPii splice
sysinfo EXTRA sysinfo i:p sysinfo
swapon - swapon i:si __swapon swapon
swapoff - swapoff i:s __swapoff swapoff
-tee EXTRA tee i:iiii tee
+tee EXTRA tee Ci:iiii tee
unshare EXTRA unshare i:i unshare
uselib EXTRA uselib i:s uselib
-vmsplice EXTRA vmsplice i:iPii vmsplice
+vmsplice EXTRA vmsplice Ci:iPii vmsplice
wait4 - wait4 i:iWiP __wait4 wait4
chown - chown i:sii __libc_chown __chown chown
diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h b/libc/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h
index a918a0725..f1fd3c4e4 100644
--- a/libc/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h
+++ b/libc/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h
@@ -235,17 +235,17 @@ extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to,
/* Splice address range into a pipe. */
-extern int vmsplice (int __fdout, const struct iovec *__iov, size_t __count,
- unsigned int __flags);
+extern ssize_t vmsplice (int __fdout, const struct iovec *__iov,
+ size_t __count, unsigned int __flags);
/* Splice two files together. */
-extern int splice (int __fdin, __off64_t *__offin, int __fdout,
- __off64_t *__offout, size_t __len, unsigned int __flags)
- __THROW;
+extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout,
+ __off64_t *__offout, size_t __len,
+ unsigned int __flags);
/* In-kernel implementation of tee for pipe buffers. */
-extern int tee (int __fdin, int __fdout, size_t __len, unsigned int __flags)
- __THROW;
+extern ssize_t tee (int __fdin, int __fdout, size_t __len,
+ unsigned int __flags);
#endif
diff --git a/libc/sysdeps/x86_64/cacheinfo.c b/libc/sysdeps/x86_64/cacheinfo.c
index 793dc2d35..5b92bd584 100644
--- a/libc/sysdeps/x86_64/cacheinfo.c
+++ b/libc/sysdeps/x86_64/cacheinfo.c
@@ -398,13 +398,13 @@ __cache_sysconf (int name)
}
-/* Half the core cache size for use in memory and string routines, typically
- L1 size. */
-long int __x86_64_core_cache_size_half attribute_hidden = 32 * 1024 / 2;
+/* Half the data cache size for use in memory and string routines, typically
+ L1 size. */
+long int __x86_64_data_cache_size_half attribute_hidden = 32 * 1024 / 2;
/* Shared cache size for use in memory and string routines, typically
- L2 or L3 size. */
+ L2 or L3 size. */
long int __x86_64_shared_cache_size_half attribute_hidden = 1024 * 1024 / 2;
-/* PREFETCHW support flag for use in memory and string routines. */
+/* PREFETCHW support flag for use in memory and string routines. */
int __x86_64_prefetchw attribute_hidden;
@@ -419,7 +419,7 @@ init_cacheinfo (void)
unsigned int edx;
int max_cpuid;
int max_cpuid_ex;
- long int core = -1;
+ long int data = -1;
long int shared = -1;
unsigned int level;
unsigned int threads = 0;
@@ -431,26 +431,26 @@ init_cacheinfo (void)
/* This spells out "GenuineIntel". */
if (ebx == 0x756e6547 && ecx == 0x6c65746e && edx == 0x49656e69)
{
- core = handle_intel (_SC_LEVEL1_DCACHE_SIZE, max_cpuid);
+ data = handle_intel (_SC_LEVEL1_DCACHE_SIZE, max_cpuid);
- /* Try L3 first. */
+ /* Try L3 first. */
level = 3;
shared = handle_intel (_SC_LEVEL3_CACHE_SIZE, max_cpuid);
if (shared <= 0)
{
- /* Try L2 otherwise. */
+ /* Try L2 otherwise. */
level = 2;
shared = handle_intel (_SC_LEVEL2_CACHE_SIZE, max_cpuid);
}
/* Figure out the number of logical threads that share the
- highest cache level. */
+ highest cache level. */
if (max_cpuid >= 4)
{
int i = 0;
- /* Query until desired cache level is enumerated. */
+ /* Query until desired cache level is enumerated. */
do
{
asm volatile ("cpuid"
@@ -463,7 +463,7 @@ init_cacheinfo (void)
}
else
{
- /* Assume that all logical threads share the highest cache level. */
+ /* Assume that all logical threads share the highest cache level. */
asm volatile ("cpuid"
: "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
: "0" (1));
@@ -472,33 +472,73 @@ init_cacheinfo (void)
}
/* Cap usage of highest cache level to the number of supported
- threads. */
+ threads. */
if (shared > 0 && threads > 0)
shared /= threads;
}
/* This spells out "AuthenticAMD". */
else if (ebx == 0x68747541 && ecx == 0x444d4163 && edx == 0x69746e65)
{
- core = handle_amd (_SC_LEVEL1_DCACHE_SIZE);
- shared = handle_amd (_SC_LEVEL2_CACHE_SIZE);
+ data = handle_amd (_SC_LEVEL1_DCACHE_SIZE);
+ long int core = handle_amd (_SC_LEVEL2_CACHE_SIZE);
+ shared = handle_amd (_SC_LEVEL3_CACHE_SIZE);
+ /* Get maximum extended function. */
asm volatile ("cpuid"
: "=a" (max_cpuid_ex), "=b" (ebx), "=c" (ecx), "=d" (edx)
: "0" (0x80000000));
+ if (shared <= 0)
+ /* No shared L3 cache. All we have is the L2 cache. */
+ shared = core;
+ else
+ {
+ /* Figure out the number of logical threads that share L3. */
+ if (max_cpuid_ex >= 0x80000008)
+ {
+ /* Get width of APIC ID. */
+ asm volatile ("cpuid"
+ : "=a" (max_cpuid_ex), "=b" (ebx), "=c" (ecx),
+ "=d" (edx)
+ : "0" (0x80000008));
+ threads = 1 << ((ecx >> 12) & 0x0f);
+ }
+
+ if (threads == 0)
+ {
+ /* If APIC ID width is not available, use logical
+ processor count. */
+ asm volatile ("cpuid"
+ : "=a" (max_cpuid_ex), "=b" (ebx), "=c" (ecx),
+ "=d" (edx)
+ : "0" (0x00000001));
+
+ if ((edx & (1 << 28)) != 0)
+ threads = (ebx >> 16) & 0xff;
+ }
+
+ /* Cap usage of highest cache level to the number of
+ supported threads. */
+ if (threads > 0)
+ shared /= threads;
+
+ /* Account for exclusive L2 and L3 caches. */
+ shared += core;
+ }
+
if (max_cpuid_ex >= 0x80000001)
{
asm volatile ("cpuid"
: "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
: "0" (0x80000001));
- /* PREFETCHW || 3DNow! */
+ /* PREFETCHW || 3DNow! */
if ((ecx & 0x100) || (edx & 0x80000000))
__x86_64_prefetchw = -1;
}
}
- if (core > 0)
- __x86_64_core_cache_size_half = core / 2;
+ if (data > 0)
+ __x86_64_data_cache_size_half = data / 2;
if (shared > 0)
__x86_64_shared_cache_size_half = shared / 2;
diff --git a/libc/sysdeps/x86_64/fpu/bits/mathinline.h b/libc/sysdeps/x86_64/fpu/bits/mathinline.h
index d08a9b033..e8a919fe9 100644
--- a/libc/sysdeps/x86_64/fpu/bits/mathinline.h
+++ b/libc/sysdeps/x86_64/fpu/bits/mathinline.h
@@ -22,7 +22,7 @@
# error "Never use <bits/mathinline.h> directly; include <math.h> instead."
#endif
-#ifdef __cplusplus
+#ifndef __extern_inline
# define __MATH_INLINE __inline
#else
# define __MATH_INLINE __extern_inline
diff --git a/libc/sysdeps/x86_64/memcpy.S b/libc/sysdeps/x86_64/memcpy.S
index 231329864..b25646b8c 100644
--- a/libc/sysdeps/x86_64/memcpy.S
+++ b/libc/sysdeps/x86_64/memcpy.S
@@ -114,15 +114,15 @@ L(1d): /* 16-byte loop */
.p2align 4
L(1loop):
- movq (%rsi), %rcx
- movq 8 (%rsi), %r8
- movq %rcx, (%rdi)
- movq %r8, 8 (%rdi)
+ movq (%rsi), %rcx
+ movq 8(%rsi), %r8
+ movq %rcx, (%rdi)
+ movq %r8, 8(%rdi)
subl $16, %edx
- leaq 16 (%rsi), %rsi
- leaq 16 (%rdi), %rdi
+ leaq 16(%rsi), %rsi
+ leaq 16(%rdi), %rdi
jnz L(1loop)
@@ -140,19 +140,19 @@ L(exit): /* exit */
L(1after):
#ifndef USE_AS_MEMPCPY
- movq %rax, RETVAL (%rsp) /* save return value */
+ movq %rax, RETVAL(%rsp) /* save return value */
#endif
/* Align to the natural word size. */
L(aligntry):
- movl %esi, %ecx /* align by destination */
+ movl %esi, %ecx /* align by source */
andl $7, %ecx
jz L(alignafter) /* already aligned */
L(align): /* align */
- leaq -8 (%rcx, %rdx), %rdx /* calculate remaining bytes */
+ leaq -8(%rcx, %rdx), %rdx /* calculate remaining bytes */
subl $8, %ecx
.p2align 4
@@ -163,8 +163,8 @@ L(alignloop): /* 1-byte alignment loop */
incl %ecx
- leaq 1 (%rsi), %rsi
- leaq 1 (%rdi), %rdi
+ leaq 1(%rsi), %rsi
+ leaq 1(%rdi), %rdi
jnz L(alignloop)
@@ -172,7 +172,7 @@ L(alignloop): /* 1-byte alignment loop */
L(alignafter):
-/* Loop to handle mid-sized blocks. */
+/* Handle mid-sized blocks. */
L(32try): /* up to 1KB */
cmpq $1024, %rdx
@@ -188,15 +188,15 @@ L(32): /* 32-byte loop */
L(32loop):
decl %ecx
- movq (%rsi), %rax
- movq 8 (%rsi), %r8
- movq 16 (%rsi), %r9
- movq 24 (%rsi), %r10
+ movq (%rsi), %rax
+ movq 8(%rsi), %r8
+ movq 16(%rsi), %r9
+ movq 24(%rsi), %r10
- movq %rax, (%rdi)
- movq %r8, 8 (%rdi)
- movq %r9, 16 (%rdi)
- movq %r10, 24 (%rdi)
+ movq %rax, (%rdi)
+ movq %r8, 8(%rdi)
+ movq %r9, 16(%rdi)
+ movq %r10, 24(%rdi)
leaq 32(%rsi), %rsi
leaq 32(%rdi), %rdi
@@ -205,18 +205,18 @@ L(32loop):
decl %ecx
- movq (%rsi), %rax
- movq 8 (%rsi), %r8
- movq 16 (%rsi), %r9
- movq 24 (%rsi), %r10
+ movq (%rsi), %rax
+ movq 8(%rsi), %r8
+ movq 16(%rsi), %r9
+ movq 24(%rsi), %r10
- movq %rax, (%rdi)
- movq %r8, 8 (%rdi)
- movq %r9, 16 (%rdi)
- movq %r10, 24 (%rdi)
+ movq %rax, (%rdi)
+ movq %r8, 8(%rdi)
+ movq %r9, 16(%rdi)
+ movq %r10, 24(%rdi)
- leaq 32 (%rsi), %rsi
- leaq 32 (%rdi), %rdi
+ leaq 32(%rsi), %rsi
+ leaq 32(%rdi), %rdi
jnz L(32loop)
@@ -229,9 +229,9 @@ L(32skip):
movq %rdi, %rax
#else
- movq RETVAL (%rsp), %rax
+ movq RETVAL(%rsp), %rax
jnz L(1)
-
+
rep
#endif
retq /* exit */
@@ -245,11 +245,11 @@ L(32after):
larger blocks are excluded when building for RTLD.
*/
-/* Handle large blocks smaller than 1/2 L1. */
+/* Handle blocks smaller than 1/2 L1. */
L(fasttry): /* first 1/2 L1 */
#ifndef NOT_IN_libc /* only up to this algorithm outside of libc.so */
- movq __x86_64_core_cache_size_half (%rip), %r11
+ movq __x86_64_data_cache_size_half(%rip), %r11
cmpq %rdx, %r11 /* calculate the smaller of */
cmovaq %rdx, %r11 /* remaining bytes and 1/2 L1 */
#endif
@@ -282,7 +282,7 @@ L(fastskip):
movq %rdi, %rax
#else
- movq RETVAL (%rsp), %rax
+ movq RETVAL(%rsp), %rax
jnz L(1)
rep
@@ -308,16 +308,16 @@ L(pre): /* 64-byte with prefetching */
shrq $6, %rcx
jz L(preskip)
- movq %r14, SAVE0 (%rsp)
+ movq %r14, SAVE0(%rsp)
cfi_rel_offset (%r14, SAVE0)
- movq %r13, SAVE1 (%rsp)
+ movq %r13, SAVE1(%rsp)
cfi_rel_offset (%r13, SAVE1)
- movq %r12, SAVE2 (%rsp)
+ movq %r12, SAVE2(%rsp)
cfi_rel_offset (%r12, SAVE2)
- movq %rbx, SAVE3 (%rsp)
+ movq %rbx, SAVE3(%rsp)
cfi_rel_offset (%rbx, SAVE3)
- cmpl $0, __x86_64_prefetchw (%rip)
+ cmpl $0, __x86_64_prefetchw(%rip)
jz L(preloop) /* check if PREFETCHW OK */
.p2align 4
@@ -339,45 +339,45 @@ L(prewloop): /* cache-line in state M */
prefetcht0 0 + 896 (%rsi)
prefetcht0 64 + 896 (%rsi)
- movq %rax, (%rdi)
- movq %rbx, 8 (%rdi)
- movq %r9, 16 (%rdi)
- movq %r10, 24 (%rdi)
- movq %r11, 32 (%rdi)
- movq %r12, 40 (%rdi)
- movq %r13, 48 (%rdi)
- movq %r14, 56 (%rdi)
+ movq %rax, (%rdi)
+ movq %rbx, 8(%rdi)
+ movq %r9, 16(%rdi)
+ movq %r10, 24(%rdi)
+ movq %r11, 32(%rdi)
+ movq %r12, 40(%rdi)
+ movq %r13, 48(%rdi)
+ movq %r14, 56(%rdi)
- leaq 64 (%rsi), %rsi
- leaq 64 (%rdi), %rdi
+ leaq 64(%rsi), %rsi
+ leaq 64(%rdi), %rdi
jz L(prebail)
decq %rcx
- movq (%rsi), %rax
- movq 8 (%rsi), %rbx
- movq 16 (%rsi), %r9
- movq 24 (%rsi), %r10
- movq 32 (%rsi), %r11
- movq 40 (%rsi), %r12
- movq 48 (%rsi), %r13
- movq 56 (%rsi), %r14
-
- movq %rax, (%rdi)
- movq %rbx, 8 (%rdi)
- movq %r9, 16 (%rdi)
- movq %r10, 24 (%rdi)
- movq %r11, 32 (%rdi)
- movq %r12, 40 (%rdi)
- movq %r13, 48 (%rdi)
- movq %r14, 56 (%rdi)
-
- prefetchw 896 - 64 (%rdi)
- prefetchw 896 - 0 (%rdi)
-
- leaq 64 (%rsi), %rsi
- leaq 64 (%rdi), %rdi
+ movq (%rsi), %rax
+ movq 8(%rsi), %rbx
+ movq 16(%rsi), %r9
+ movq 24(%rsi), %r10
+ movq 32(%rsi), %r11
+ movq 40(%rsi), %r12
+ movq 48(%rsi), %r13
+ movq 56(%rsi), %r14
+
+ movq %rax, (%rdi)
+ movq %rbx, 8(%rdi)
+ movq %r9, 16(%rdi)
+ movq %r10, 24(%rdi)
+ movq %r11, 32(%rdi)
+ movq %r12, 40(%rdi)
+ movq %r13, 48(%rdi)
+ movq %r14, 56(%rdi)
+
+ prefetchw 896 - 64(%rdi)
+ prefetchw 896 - 0(%rdi)
+
+ leaq 64(%rsi), %rsi
+ leaq 64(%rdi), %rdi
jnz L(prewloop)
jmp L(prebail)
@@ -389,26 +389,26 @@ L(prewloop): /* cache-line in state M */
L(preloop): /* cache-line in state E */
decq %rcx
- movq (%rsi), %rax
- movq 8 (%rsi), %rbx
- movq 16 (%rsi), %r9
- movq 24 (%rsi), %r10
- movq 32 (%rsi), %r11
- movq 40 (%rsi), %r12
- movq 48 (%rsi), %r13
- movq 56 (%rsi), %r14
-
- prefetcht0 896 + 0 (%rsi)
- prefetcht0 896 + 64 (%rsi)
-
- movq %rax, (%rdi)
- movq %rbx, 8 (%rdi)
- movq %r9, 16 (%rdi)
- movq %r10, 24 (%rdi)
- movq %r11, 32 (%rdi)
- movq %r12, 40 (%rdi)
- movq %r13, 48 (%rdi)
- movq %r14, 56 (%rdi)
+ movq (%rsi), %rax
+ movq 8(%rsi), %rbx
+ movq 16(%rsi), %r9
+ movq 24(%rsi), %r10
+ movq 32(%rsi), %r11
+ movq 40(%rsi), %r12
+ movq 48(%rsi), %r13
+ movq 56(%rsi), %r14
+
+ prefetcht0 896 + 0(%rsi)
+ prefetcht0 896 + 64(%rsi)
+
+ movq %rax, (%rdi)
+ movq %rbx, 8(%rdi)
+ movq %r9, 16(%rdi)
+ movq %r10, 24(%rdi)
+ movq %r11, 32(%rdi)
+ movq %r12, 40(%rdi)
+ movq %r13, 48(%rdi)
+ movq %r14, 56(%rdi)
leaq 64 (%rsi), %rsi
leaq 64 (%rdi), %rdi
@@ -417,40 +417,40 @@ L(preloop): /* cache-line in state E */
decq %rcx
- movq (%rsi), %rax
- movq 8 (%rsi), %rbx
- movq 16 (%rsi), %r9
- movq 24 (%rsi), %r10
- movq 32 (%rsi), %r11
- movq 40 (%rsi), %r12
- movq 48 (%rsi), %r13
- movq 56 (%rsi), %r14
-
- prefetcht0 896 - 64 (%rdi)
- prefetcht0 896 - 0 (%rdi)
-
- movq %rax, (%rdi)
- movq %rbx, 8 (%rdi)
- movq %r9, 16 (%rdi)
- movq %r10, 24 (%rdi)
- movq %r11, 32 (%rdi)
- movq %r12, 40 (%rdi)
- movq %r13, 48 (%rdi)
- movq %r14, 56 (%rdi)
-
- leaq 64 (%rsi), %rsi
- leaq 64 (%rdi), %rdi
+ movq (%rsi), %rax
+ movq 8(%rsi), %rbx
+ movq 16(%rsi), %r9
+ movq 24(%rsi), %r10
+ movq 32(%rsi), %r11
+ movq 40(%rsi), %r12
+ movq 48(%rsi), %r13
+ movq 56(%rsi), %r14
+
+ prefetcht0 896 - 64(%rdi)
+ prefetcht0 896 - 0(%rdi)
+
+ movq %rax, (%rdi)
+ movq %rbx, 8(%rdi)
+ movq %r9, 16(%rdi)
+ movq %r10, 24(%rdi)
+ movq %r11, 32(%rdi)
+ movq %r12, 40(%rdi)
+ movq %r13, 48(%rdi)
+ movq %r14, 56(%rdi)
+
+ leaq 64(%rsi), %rsi
+ leaq 64(%rdi), %rdi
jnz L(preloop)
L(prebail):
- movq SAVE3 (%rsp), %rbx
+ movq SAVE3(%rsp), %rbx
cfi_restore (%rbx)
- movq SAVE2 (%rsp), %r12
+ movq SAVE2(%rsp), %r12
cfi_restore (%r12)
- movq SAVE1 (%rsp), %r13
+ movq SAVE1(%rsp), %r13
cfi_restore (%r13)
- movq SAVE0 (%rsp), %r14
+ movq SAVE0(%rsp), %r14
cfi_restore (%r14)
/* .p2align 4 */
@@ -466,7 +466,7 @@ L(preskip):
movq %rdi, %rax
#else
- movq RETVAL (%rsp), %rax
+ movq RETVAL(%rsp), %rax
jnz L(1)
rep
@@ -477,7 +477,7 @@ L(preskip):
L(preafter):
-/* Loop to handle huge blocks. */
+/* Handle huge blocks. */
L(NTtry):
@@ -486,69 +486,69 @@ L(NT): /* non-temporal 128-byte */
shrq $7, %rcx
jz L(NTskip)
- movq %r14, SAVE0 (%rsp)
+ movq %r14, SAVE0(%rsp)
cfi_rel_offset (%r14, SAVE0)
- movq %r13, SAVE1 (%rsp)
+ movq %r13, SAVE1(%rsp)
cfi_rel_offset (%r13, SAVE1)
- movq %r12, SAVE2 (%rsp)
+ movq %r12, SAVE2(%rsp)
cfi_rel_offset (%r12, SAVE2)
.p2align 4
L(NTloop):
- prefetchnta 768 (%rsi)
- prefetchnta 832 (%rsi)
+ prefetchnta 768(%rsi)
+ prefetchnta 832(%rsi)
decq %rcx
- movq (%rsi), %rax
- movq 8 (%rsi), %r8
- movq 16 (%rsi), %r9
- movq 24 (%rsi), %r10
- movq 32 (%rsi), %r11
- movq 40 (%rsi), %r12
- movq 48 (%rsi), %r13
- movq 56 (%rsi), %r14
-
- movntiq %rax, (%rdi)
- movntiq %r8, 8 (%rdi)
- movntiq %r9, 16 (%rdi)
- movntiq %r10, 24 (%rdi)
- movntiq %r11, 32 (%rdi)
- movntiq %r12, 40 (%rdi)
- movntiq %r13, 48 (%rdi)
- movntiq %r14, 56 (%rdi)
-
- movq 64 (%rsi), %rax
- movq 72 (%rsi), %r8
- movq 80 (%rsi), %r9
- movq 88 (%rsi), %r10
- movq 96 (%rsi), %r11
- movq 104 (%rsi), %r12
- movq 112 (%rsi), %r13
- movq 120 (%rsi), %r14
-
- movntiq %rax, 64 (%rdi)
- movntiq %r8, 72 (%rdi)
- movntiq %r9, 80 (%rdi)
- movntiq %r10, 88 (%rdi)
- movntiq %r11, 96 (%rdi)
- movntiq %r12, 104 (%rdi)
- movntiq %r13, 112 (%rdi)
- movntiq %r14, 120 (%rdi)
-
- leaq 128 (%rsi), %rsi
- leaq 128 (%rdi), %rdi
+ movq (%rsi), %rax
+ movq 8(%rsi), %r8
+ movq 16(%rsi), %r9
+ movq 24(%rsi), %r10
+ movq 32(%rsi), %r11
+ movq 40(%rsi), %r12
+ movq 48(%rsi), %r13
+ movq 56(%rsi), %r14
+
+ movntiq %rax, (%rdi)
+ movntiq %r8, 8(%rdi)
+ movntiq %r9, 16(%rdi)
+ movntiq %r10, 24(%rdi)
+ movntiq %r11, 32(%rdi)
+ movntiq %r12, 40(%rdi)
+ movntiq %r13, 48(%rdi)
+ movntiq %r14, 56(%rdi)
+
+ movq 64(%rsi), %rax
+ movq 72(%rsi), %r8
+ movq 80(%rsi), %r9
+ movq 88(%rsi), %r10
+ movq 96(%rsi), %r11
+ movq 104(%rsi), %r12
+ movq 112(%rsi), %r13
+ movq 120(%rsi), %r14
+
+ movntiq %rax, 64(%rdi)
+ movntiq %r8, 72(%rdi)
+ movntiq %r9, 80(%rdi)
+ movntiq %r10, 88(%rdi)
+ movntiq %r11, 96(%rdi)
+ movntiq %r12, 104(%rdi)
+ movntiq %r13, 112(%rdi)
+ movntiq %r14, 120(%rdi)
+
+ leaq 128(%rsi), %rsi
+ leaq 128(%rdi), %rdi
jnz L(NTloop)
sfence /* serialize memory stores */
- movq SAVE2 (%rsp), %r12
+ movq SAVE2(%rsp), %r12
cfi_restore (%r12)
- movq SAVE1 (%rsp), %r13
+ movq SAVE1(%rsp), %r13
cfi_restore (%r13)
- movq SAVE0 (%rsp), %r14
+ movq SAVE0(%rsp), %r14
cfi_restore (%r14)
L(NTskip):
@@ -558,7 +558,7 @@ L(NTskip):
movq %rdi, %rax
#else
- movq RETVAL (%rsp), %rax
+ movq RETVAL(%rsp), %rax
jnz L(1)
rep
diff --git a/libc/wcsmbs/Makefile b/libc/wcsmbs/Makefile
index aa56435dd..bf66e12f5 100644
--- a/libc/wcsmbs/Makefile
+++ b/libc/wcsmbs/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1995-2000,2002,2003,2004,2005,2006
+# Copyright (C) 1995-2000,2002,2003,2004,2005,2006,2007
# Free Software Foundation, Inc.
# This file is part of the GNU C Library.
@@ -40,10 +40,12 @@ routines := wcscat wcschr wcscmp wcscpy wcscspn wcsdup wcslen wcsncat \
wcwidth wcswidth \
wcscoll_l wcsxfrm_l \
wcscasecmp wcsncase wcscasecmp_l wcsncase_l \
- wcsmbsload mbsrtowcs_l
+ wcsmbsload mbsrtowcs_l \
+ isoc99_wscanf isoc99_vwscanf isoc99_fwscanf isoc99_vfwscanf \
+ isoc99_swscanf isoc99_vswscanf
tests := tst-wcstof wcsmbs-tst1 tst-wcsnlen \
- tst-wcpncpy tst-mbsrtowcs tst-wchar-h
+ tst-wcpncpy tst-mbsrtowcs tst-wchar-h wcsatcliff
tests-$(OPTION_EGLIBC_LOCALE_CODE) \
+= tst-btowc tst-mbrtowc tst-mbrtowc2 tst-wcrtomb
@@ -73,6 +75,14 @@ OPTION_EGLIBC_LOCALE_CODE-CFLAGS-$(OPTION_EGLIBC_LOCALE_CODE) \
= -DOPTION_EGLIBC_LOCALE_CODE
CFLAGS-wcsmbsload.c = $(OPTION_EGLIBC_LOCALE_CODE-CFLAGS-y)
+CFLAGS-isoc99_wscanf.c += $(exceptions)
+CFLAGS-isoc99_fwscanf.c += $(exceptions)
+CFLAGS-isoc99_vwscanf.c += $(exceptions)
+CFLAGS-isoc99_vfwscanf.c += $(exceptions)
+ifneq (,$(filter %REENTRANT, $(defines)))
+CPPFLAGS += -D_IO_MTSAFE_IO
+endif
+
# We need to find the default version of strtold_l in stdlib.
CPPFLAGS-wcstold_l.c = -I../stdlib
diff --git a/libc/wcsmbs/Versions b/libc/wcsmbs/Versions
index 6f2e72eb2..b6dfa85a4 100644
--- a/libc/wcsmbs/Versions
+++ b/libc/wcsmbs/Versions
@@ -24,4 +24,8 @@ libc {
# w*
wcschrnul; wmempcpy;
}
+ GLIBC_2.7 {
+ __isoc99_wscanf; __isoc99_vwscanf; __isoc99_fwscanf; __isoc99_vfwscanf;
+ __isoc99_swscanf; __isoc99_vswscanf;
+ }
}
diff --git a/libc/wcsmbs/bits/wchar-ldbl.h b/libc/wcsmbs/bits/wchar-ldbl.h
index 56a28d33b..80a6a684a 100644
--- a/libc/wcsmbs/bits/wchar-ldbl.h
+++ b/libc/wcsmbs/bits/wchar-ldbl.h
@@ -21,7 +21,7 @@
# error "Never include <bits/wchar-ldbl.h> directly; use <wchar.h> instead."
#endif
-#if defined __USE_ISOC99 || defined __USE_UNIX98
+#if defined __USE_ISOC95 || defined __USE_UNIX98
__BEGIN_NAMESPACE_C99
__LDBL_REDIR_DECL (fwprintf);
__LDBL_REDIR_DECL (wprintf);
@@ -29,18 +29,33 @@ __LDBL_REDIR_DECL (swprintf);
__LDBL_REDIR_DECL (vfwprintf);
__LDBL_REDIR_DECL (vwprintf);
__LDBL_REDIR_DECL (vswprintf);
+# if defined __USE_ISOC99 && !defined __USE_GNU \
+ && !defined __REDIRECT \
+ && (defined __STRICT_ANSI__ || defined __USE_XOPEN2K)
+__LDBL_REDIR1_DECL (fwscanf, __nldbl___isoc99_fwscanf)
+__LDBL_REDIR1_DECL (wscanf, __nldbl___isoc99_wscanf)
+__LDBL_REDIR1_DECL (swscanf, __nldbl___isoc99_swscanf)
+# else
__LDBL_REDIR_DECL (fwscanf);
__LDBL_REDIR_DECL (wscanf);
__LDBL_REDIR_DECL (swscanf);
+# endif
__END_NAMESPACE_C99
#endif
#ifdef __USE_ISOC99
__BEGIN_NAMESPACE_C99
__LDBL_REDIR1_DECL (wcstold, wcstod);
+# if !defined __USE_GNU && !defined __REDIRECT \
+ && (defined __STRICT_ANSI__ || defined __USE_XOPEN2K)
+__LDBL_REDIR1_DECL (vfwscanf, __nldbl___isoc99_vfwscanf)
+__LDBL_REDIR1_DECL (vwscanf, __nldbl___isoc99_vwscanf)
+__LDBL_REDIR1_DECL (vswscanf, __nldbl___isoc99_vswscanf)
+# else
__LDBL_REDIR_DECL (vfwscanf);
__LDBL_REDIR_DECL (vwscanf);
__LDBL_REDIR_DECL (vswscanf);
+# endif
__END_NAMESPACE_C99
#endif
@@ -48,7 +63,7 @@ __END_NAMESPACE_C99
__LDBL_REDIR1_DECL (wcstold_l, wcstod_l);
#endif
-#if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus
+#if __USE_FORTIFY_LEVEL > 0 && defined __extern_always_inline
__LDBL_REDIR_DECL (__swprintf_chk)
__LDBL_REDIR_DECL (__vswprintf_chk)
# if __USE_FORTIFY_LEVEL > 1
diff --git a/libc/wcsmbs/bits/wchar2.h b/libc/wcsmbs/bits/wchar2.h
index 697b9f2cd..e1b7c1302 100644
--- a/libc/wcsmbs/bits/wchar2.h
+++ b/libc/wcsmbs/bits/wchar2.h
@@ -18,7 +18,7 @@
02111-1307 USA. */
#ifndef _WCHAR_H
-# error "Never include <bits/wchar.h> directly; use <wchar.h> instead."
+# error "Never include <bits/wchar2.h> directly; use <wchar.h> instead."
#endif
@@ -198,12 +198,28 @@ extern int __swprintf_chk (wchar_t *__restrict __s, size_t __n,
__const wchar_t *__restrict __format, ...)
__THROW /* __attribute__ ((__format__ (__wprintf__, 5, 6))) */;
+extern int __REDIRECT_NTH (__swprintf_alias,
+ (wchar_t *__restrict __s, size_t __n,
+ __const wchar_t *__restrict __fmt, ...),
+ swprintf);
+
+#ifdef __va_arg_pack
+__extern_always_inline int
+__NTH (swprintf (wchar_t *__restrict __s, size_t __n,
+ __const wchar_t *__restrict __fmt, ...))
+{
+ if (__bos (__s) != (size_t) -1 || __USE_FORTIFY_LEVEL > 1)
+ return __swprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1, __bos (__s),
+ __fmt, __va_arg_pack ());
+ return __swprintf_alias (__s, __n, __fmt, __va_arg_pack ());
+}
+#elif !defined __cplusplus
/* XXX We might want to have support in gcc for swprintf. */
-#define swprintf(s, n, ...) \
+# define swprintf(s, n, ...) \
(__bos (s) != (size_t) -1 || __USE_FORTIFY_LEVEL > 1 \
? __swprintf_chk (s, n, __USE_FORTIFY_LEVEL - 1, __bos (s), __VA_ARGS__) \
: swprintf (s, n, __VA_ARGS__))
-
+#endif
extern int __vswprintf_chk (wchar_t *__restrict __s, size_t __n,
int __flag, size_t __s_len,
@@ -211,10 +227,20 @@ extern int __vswprintf_chk (wchar_t *__restrict __s, size_t __n,
__gnuc_va_list __arg)
__THROW /* __attribute__ ((__format__ (__wprintf__, 5, 0))) */;
-#define vswprintf(s, n, fmt, ap) \
- (__bos (s) != (size_t) -1 || __USE_FORTIFY_LEVEL > 1 \
- ? __vswprintf_chk (s, n, __USE_FORTIFY_LEVEL - 1, __bos (s), fmt, ap) \
- : vswprintf (s, n, fmt, ap))
+extern int __REDIRECT_NTH (__vswprintf_alias,
+ (wchar_t *__restrict __s, size_t __n,
+ __const wchar_t *__restrict __fmt,
+ __gnuc_va_list __ap), vswprintf);
+
+__extern_always_inline int
+__NTH (vswprintf (wchar_t *__restrict __s, size_t __n,
+ __const wchar_t *__restrict __fmt, __gnuc_va_list __ap))
+{
+ if (__bos (__s) != (size_t) -1 || __USE_FORTIFY_LEVEL > 1)
+ return __vswprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1, __bos (__s),
+ __fmt, __ap);
+ return __vswprintf_alias (__s, __n, __fmt, __ap);
+}
#if __USE_FORTIFY_LEVEL > 1
@@ -229,14 +255,38 @@ extern int __vfwprintf_chk (__FILE *__restrict __stream, int __flag,
extern int __vwprintf_chk (int __flag, __const wchar_t *__restrict __format,
__gnuc_va_list __ap);
-# define wprintf(...) \
+# ifdef __va_arg_pack
+__extern_always_inline int
+wprintf (__const wchar_t *__restrict __fmt, ...)
+{
+ return __wprintf_chk (__USE_FORTIFY_LEVEL - 1, __fmt, __va_arg_pack ());
+}
+
+__extern_always_inline int
+fwprintf (__FILE *__restrict __stream, __const wchar_t *__restrict __fmt, ...)
+{
+ return __fwprintf_chk (__stream, __USE_FORTIFY_LEVEL - 1, __fmt,
+ __va_arg_pack ());
+}
+# elif !defined __cplusplus
+# define wprintf(...) \
__wprintf_chk (__USE_FORTIFY_LEVEL - 1, __VA_ARGS__)
-# define fwprintf(stream, ...) \
+# define fwprintf(stream, ...) \
__fwprintf_chk (stream, __USE_FORTIFY_LEVEL - 1, __VA_ARGS__)
-# define vwprintf(format, ap) \
- __vwprintf_chk (__USE_FORTIFY_LEVEL - 1, format, ap)
-# define vfwprintf(stream, format, ap) \
- __vfwprintf_chk (stream, __USE_FORTIFY_LEVEL - 1, format, ap)
+# endif
+
+__extern_always_inline int
+vwprintf (__const wchar_t *__restrict __fmt, __gnuc_va_list __ap)
+{
+ return __vwprintf_chk (__USE_FORTIFY_LEVEL - 1, __fmt, __ap);
+}
+
+__extern_always_inline int
+vfwprintf (__FILE *__restrict __stream,
+ __const wchar_t *__restrict __fmt, __gnuc_va_list __ap)
+{
+ return __vfwprintf_chk (__stream, __USE_FORTIFY_LEVEL - 1, __fmt, __ap);
+}
#endif
diff --git a/libc/wcsmbs/isoc99_fwscanf.c b/libc/wcsmbs/isoc99_fwscanf.c
new file mode 100644
index 000000000..ce12ad8f9
--- /dev/null
+++ b/libc/wcsmbs/isoc99_fwscanf.c
@@ -0,0 +1,41 @@
+/* Copyright (C) 1991, 1997, 2006, 2007 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#include <libioP.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <wchar.h>
+
+/* Read formatted input from STREAM according to the format string FORMAT. */
+/* VARARGS2 */
+int
+__isoc99_fwscanf (FILE *stream, const wchar_t *format, ...)
+{
+ va_list arg;
+ int done;
+
+ _IO_acquire_lock_clear_flags2 (stream);
+ stream->_flags2 |= _IO_FLAGS2_SCANF_STD;
+
+ va_start (arg, format);
+ done = _IO_vfwscanf (stream, format, arg, NULL);
+ va_end (arg);
+
+ _IO_release_lock (stream);
+ return done;
+}
diff --git a/libc/wcsmbs/isoc99_swscanf.c b/libc/wcsmbs/isoc99_swscanf.c
new file mode 100644
index 000000000..fed05eff3
--- /dev/null
+++ b/libc/wcsmbs/isoc99_swscanf.c
@@ -0,0 +1,38 @@
+/* Copyright (C) 1991, 1995, 1996, 1998, 2002, 2003, 2004, 2006, 2007
+ Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <libioP.h>
+#include <wchar.h>
+
+/* Read formatted input from S, according to the format string FORMAT. */
+/* VARARGS2 */
+int
+__isoc99_swscanf (const wchar_t *s, const wchar_t *format, ...)
+{
+ va_list arg;
+ int done;
+
+ va_start (arg, format);
+ done = __isoc99_vswscanf (s, format, arg);
+ va_end (arg);
+
+ return done;
+}
diff --git a/libc/wcsmbs/isoc99_vfwscanf.c b/libc/wcsmbs/isoc99_vfwscanf.c
new file mode 100644
index 000000000..7564503e8
--- /dev/null
+++ b/libc/wcsmbs/isoc99_vfwscanf.c
@@ -0,0 +1,36 @@
+/* Copyright (C) 1991, 1997, 2006, 2007 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#include <libioP.h>
+#include <stdio.h>
+#include <wchar.h>
+
+/* Read formatted input from STREAM according to the format string FORMAT. */
+/* VARARGS2 */
+int
+__isoc99_vfwscanf (FILE *stream, const wchar_t *format, _IO_va_list args)
+{
+ int done;
+
+ _IO_acquire_lock_clear_flags2 (stream);
+ stream->_flags2 |= _IO_FLAGS2_SCANF_STD;
+ done = _IO_vfwscanf (stream, format, args, NULL);
+ _IO_release_lock (stream);
+ return done;
+}
+libc_hidden_def (__isoc99_vfwscanf)
diff --git a/libc/wcsmbs/isoc99_vswscanf.c b/libc/wcsmbs/isoc99_vswscanf.c
new file mode 100644
index 000000000..4d7081e43
--- /dev/null
+++ b/libc/wcsmbs/isoc99_vswscanf.c
@@ -0,0 +1,49 @@
+/* Copyright (C) 1993, 1997-2003, 2006, 2007 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA.
+
+ As a special exception, if you link the code in this file with
+ files compiled with a GNU compiler to produce an executable,
+ that does not cause the resulting executable to be covered by
+ the GNU Lesser General Public License. This exception does not
+ however invalidate any other reasons why the executable file
+ might be covered by the GNU Lesser General Public License.
+ This exception applies to code released by its copyright holders
+ in files containing the exception. */
+
+#include <libioP.h>
+#include <wchar.h>
+#include "../libio/strfile.h"
+
+int
+__isoc99_vswscanf (const wchar_t *string, const wchar_t *format,
+ _IO_va_list args)
+{
+ int ret;
+ _IO_strfile sf;
+ struct _IO_wide_data wd;
+#ifdef _IO_MTSAFE_IO
+ sf._sbf._f._lock = NULL;
+#endif
+ _IO_no_init (&sf._sbf._f, _IO_USER_LOCK, 0, &wd, &_IO_wstr_jumps);
+ _IO_fwide (&sf._sbf._f, 1);
+ _IO_wstr_init_static (&sf._sbf._f, (wchar_t *)string, 0, NULL);
+ sf._sbf._f._flags2 |= _IO_FLAGS2_SCANF_STD;
+ ret = _IO_vfwscanf ((_IO_FILE *) &sf._sbf, format, args, NULL);
+ return ret;
+}
+libc_hidden_def (__isoc99_vswscanf)
diff --git a/libc/wcsmbs/isoc99_vwscanf.c b/libc/wcsmbs/isoc99_vwscanf.c
new file mode 100644
index 000000000..8a0b345f0
--- /dev/null
+++ b/libc/wcsmbs/isoc99_vwscanf.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 1991, 1997, 2006, 2007 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#include <libioP.h>
+#include <stdio.h>
+#include <wchar.h>
+
+/* Read formatted input from STDIN according to the format string FORMAT. */
+/* VARARGS2 */
+int
+__isoc99_vwscanf (const wchar_t *format, _IO_va_list args)
+{
+ int done;
+
+ _IO_acquire_lock_clear_flags2 (stdin);
+ stdin->_flags2 |= _IO_FLAGS2_SCANF_STD;
+ done = _IO_vfwscanf (stdin, format, args, NULL);
+ _IO_release_lock (stdin);
+ return done;
+}
diff --git a/libc/wcsmbs/isoc99_wscanf.c b/libc/wcsmbs/isoc99_wscanf.c
new file mode 100644
index 000000000..581e05fef
--- /dev/null
+++ b/libc/wcsmbs/isoc99_wscanf.c
@@ -0,0 +1,43 @@
+/* Copyright (C) 1991, 1995, 1996, 1997, 2002, 2004, 2006, 2007
+ Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <libioP.h>
+#include <wchar.h>
+
+
+/* Read formatted input from stdin according to the format string FORMAT. */
+/* VARARGS1 */
+int
+__isoc99_wscanf (const wchar_t *format, ...)
+{
+ va_list arg;
+ int done;
+
+ _IO_acquire_lock_clear_flags2 (stdin);
+ stdin->_flags2 |= _IO_FLAGS2_SCANF_STD;
+
+ va_start (arg, format);
+ done = _IO_vfwscanf (stdin, format, arg, NULL);
+ va_end (arg);
+
+ _IO_release_lock (stdin);
+ return done;
+}
diff --git a/libc/wcsmbs/wchar.h b/libc/wcsmbs/wchar.h
index b334e0623..e8448c86d 100644
--- a/libc/wcsmbs/wchar.h
+++ b/libc/wcsmbs/wchar.h
@@ -327,7 +327,6 @@ __END_NAMESPACE_C99
#ifdef __USE_EXTERN_INLINES
/* Define inline function as optimization. */
-# ifndef __cplusplus
/* We can use the BTOWC and WCTOB optimizations since we know that all
locales must use ASCII encoding for the values in the ASCII range
and because the wchar_t encoding is always ISO 10646. */
@@ -342,7 +341,6 @@ __extern_inline int
__NTH (wctob (wint_t __wc))
{ return (__builtin_constant_p (__wc) && __wc >= L'\0' && __wc <= L'\x7f'
? (int) __wc : __wctob_alias (__wc)); }
-# endif
__extern_inline size_t
__NTH (mbrlen (__const char *__restrict __s, size_t __n,
@@ -589,12 +587,42 @@ extern int swscanf (__const wchar_t *__restrict __s,
__const wchar_t *__restrict __format, ...)
__THROW /* __attribute__ ((__format__ (__wscanf__, 2, 3))) */;
+# if defined __USE_ISOC99 && !defined __USE_GNU \
+ && (!defined __LDBL_COMPAT || !defined __REDIRECT) \
+ && (defined __STRICT_ANSI__ || defined __USE_XOPEN2K)
+# ifdef __REDIRECT
+/* For strict ISO C99 or POSIX compliance disallow %as, %aS and %a[
+ GNU extension which conflicts with valid %a followed by letter
+ s, S or [. */
+extern int __REDIRECT (fwscanf, (__FILE *__restrict __stream,
+ __const wchar_t *__restrict __format, ...),
+ __isoc99_fwscanf)
+ /* __attribute__ ((__format__ (__wscanf__, 2, 3))) */;
+extern int __REDIRECT (wscanf, (__const wchar_t *__restrict __format, ...),
+ __isoc99_wscanf)
+ /* __attribute__ ((__format__ (__wscanf__, 1, 2))) */;
+extern int __REDIRECT (swscanf, (__const wchar_t *__restrict __s,
+ __const wchar_t *__restrict __format, ...),
+ __isoc99_swscanf)
+ __THROW /* __attribute__ ((__format__ (__wscanf__, 2, 3))) */;
+# else
+extern int __isoc99_fwscanf (__FILE *__restrict __stream,
+ __const wchar_t *__restrict __format, ...);
+extern int __isoc99_wscanf (__const wchar_t *__restrict __format, ...);
+extern int __isoc99_swscanf (__const wchar_t *__restrict __s,
+ __const wchar_t *__restrict __format, ...)
+ __THROW;
+# define fwscanf __isoc99_fwscanf
+# define wscanf __isoc99_wscanf
+# define swscanf __isoc99_swscanf
+# endif
+# endif
+
__END_NAMESPACE_C99
#endif /* Use ISO C95, C99 and Unix98. */
#ifdef __USE_ISOC99
__BEGIN_NAMESPACE_C99
-
/* Read formatted input from S into argument list ARG.
This function is a possible cancellation point and therefore not
@@ -616,6 +644,36 @@ extern int vswscanf (__const wchar_t *__restrict __s,
__gnuc_va_list __arg)
__THROW /* __attribute__ ((__format__ (__wscanf__, 2, 0))) */;
+# if !defined __USE_GNU \
+ && (!defined __LDBL_COMPAT || !defined __REDIRECT) \
+ && (defined __STRICT_ANSI__ || defined __USE_XOPEN2K)
+# ifdef __REDIRECT
+extern int __REDIRECT (vfwscanf, (__FILE *__restrict __s,
+ __const wchar_t *__restrict __format,
+ __gnuc_va_list __arg), __isoc99_vfwscanf)
+ /* __attribute__ ((__format__ (__wscanf__, 2, 0))) */;
+extern int __REDIRECT (vwscanf, (__const wchar_t *__restrict __format,
+ __gnuc_va_list __arg), __isoc99_vwscanf)
+ /* __attribute__ ((__format__ (__wscanf__, 1, 0))) */;
+extern int __REDIRECT (vswscanf, (__const wchar_t *__restrict __s,
+ __const wchar_t *__restrict __format,
+ __gnuc_va_list __arg), __isoc99_vswscanf)
+ __THROW /* __attribute__ ((__format__ (__wscanf__, 2, 0))) */;
+# else
+extern int __isoc99_vfwscanf (__FILE *__restrict __s,
+ __const wchar_t *__restrict __format,
+ __gnuc_va_list __arg);
+extern int __isoc99_vwscanf (__const wchar_t *__restrict __format,
+ __gnuc_va_list __arg);
+extern int __isoc99_vswscanf (__const wchar_t *__restrict __s,
+ __const wchar_t *__restrict __format,
+ __gnuc_va_list __arg) __THROW;
+# define vfwscanf __isoc99_vfwscanf
+# define vwscanf __isoc99_vwscanf
+# define vswscanf __isoc99_vswscanf
+# endif
+# endif
+
__END_NAMESPACE_C99
#endif /* Use ISO C99. */
@@ -763,7 +821,7 @@ extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize,
#endif
/* Define some macros helping to catch buffer overflows. */
-#if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus
+#if __USE_FORTIFY_LEVEL > 0 && defined __extern_always_inline
# include <bits/wchar2.h>
#endif
diff --git a/libc/wcsmbs/wcsatcliff.c b/libc/wcsmbs/wcsatcliff.c
new file mode 100644
index 000000000..22db60763
--- /dev/null
+++ b/libc/wcsmbs/wcsatcliff.c
@@ -0,0 +1,20 @@
+#include <wchar.h>
+
+#define WCSTEST 1
+#define L(c) L##c
+#define CHAR wchar_t
+#define MEMSET wmemset
+#define STRLEN wcslen
+#define STRNLEN wcsnlen
+#define STRCHR wcschr
+#define STRRCHR wcsrchr
+#define STRCPY wcscpy
+#define STRNCPY wcsncpy
+#define MEMCMP wmemcmp
+#define STPCPY wcpcpy
+#define STPNCPY wcpncpy
+#define MEMCPY wmemcpy
+#define MEMPCPY wmempcpy
+
+
+#include "../string/stratcliff.c"
diff --git a/libc/wcsmbs/wcsnlen.c b/libc/wcsmbs/wcsnlen.c
index 3cfbccad9..94abf1e57 100644
--- a/libc/wcsmbs/wcsnlen.c
+++ b/libc/wcsmbs/wcsnlen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -28,13 +28,16 @@ __wcsnlen (s, maxlen)
{
size_t len = 0;
- while (s[len] != L'\0' && maxlen > 0)
+ while (maxlen > 0 && s[len] != L'\0')
{
- if (s[++len] == L'\0' || --maxlen == 0)
+ ++len;
+ if (--maxlen == 0 || s[len] == L'\0')
return len;
- if (s[++len] == L'\0' || --maxlen == 0)
+ ++len;
+ if (--maxlen == 0 || s[len] == L'\0')
return len;
- if (s[++len] == L'\0' || --maxlen == 0)
+ ++len;
+ if (--maxlen == 0 || s[len] == L'\0')
return len;
++len;
--maxlen;
diff --git a/ports/ChangeLog.arm b/ports/ChangeLog.arm
index fbd399e9d..bc5b67ebe 100644
--- a/ports/ChangeLog.arm
+++ b/ports/ChangeLog.arm
@@ -1,3 +1,13 @@
+2007-09-25 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/arm/bits/fcntl.h: Correct return value
+ type and __THROW marker of splice, vmsplice, and tee.
+
+2007-09-17 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/arm/kernel-features.h: Undefine
+ __ASSUME_PSELECT and __ASSUME_PPOLL.
+
2007-09-12 Joseph Myers <joseph@codesourcery.com>
* sysdeps/arm/nptl/tls.h (THREAD_GSCOPE_RESET_FLAG): Use
diff --git a/ports/ChangeLog.hppa b/ports/ChangeLog.hppa
index 7bb338751..9501c490f 100644
--- a/ports/ChangeLog.hppa
+++ b/ports/ChangeLog.hppa
@@ -1,3 +1,13 @@
+2007-09-24 Carlos O'Donell <carlos@systemhalted.org>
+
+ * sysdeps/hppa/nptl/tls.h: Fix comment.
+ * sysdeps/unix/sysv/linux/hppa/bits/fcntl.h: Fix comment format.
+ [__USE_GNU] (O_CLOEXEC): Define.
+ * sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h: Issue error
+ if the library is unsupported.
+ [ASSEMBLER && IS_IN_librt]: Define CENABLE, CDISABLE, and
+ __local_multiple_threads.
+
2007-08-03 Aurelien Jarno <aurelien@aurel32.net>
* sysdeps/unix/sysv/linux/hppa/linuxthreads/sysdep-cancel.h:
diff --git a/ports/ChangeLog.mips b/ports/ChangeLog.mips
index 0e8fda42d..3ecda0c3c 100644
--- a/ports/ChangeLog.mips
+++ b/ports/ChangeLog.mips
@@ -1,3 +1,8 @@
+2007-09-25 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Correct return value
+ type and __THROW marker of splice, vmsplice, and tee.
+
2007-09-12 Joseph Myers <joseph@codesourcery.com>
* sysdeps/mips/nptl/tls.h (THREAD_GSCOPE_RESET_FLAG): Pass
diff --git a/ports/sysdeps/hppa/nptl/tls.h b/ports/sysdeps/hppa/nptl/tls.h
index d2d725e3b..2810d713f 100644
--- a/ports/sysdeps/hppa/nptl/tls.h
+++ b/ports/sysdeps/hppa/nptl/tls.h
@@ -170,6 +170,6 @@ static inline void __set_cr27(struct pthread *cr27)
#define THREAD_GSCOPE_WAIT() \
GL(dl_wait_lookup_done) ()
-#endif /* __ASSEMBLER__ */
+#endif /* !__ASSEMBLER__ */
#endif /* tls.h */
diff --git a/ports/sysdeps/unix/sysv/linux/arm/bits/fcntl.h b/ports/sysdeps/unix/sysv/linux/arm/bits/fcntl.h
index 6fcc5c0c0..bf0321fea 100644
--- a/ports/sysdeps/unix/sysv/linux/arm/bits/fcntl.h
+++ b/ports/sysdeps/unix/sysv/linux/arm/bits/fcntl.h
@@ -221,17 +221,17 @@ extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to,
/* Splice address range into a pipe. */
-extern int vmsplice (int __fdout, const struct iovec *__iov, size_t __count,
- unsigned int __flags);
+extern ssize_t vmsplice (int __fdout, const struct iovec *__iov,
+ size_t __count, unsigned int __flags);
/* Splice two files together. */
-extern int splice (int __fdin, __off64_t *__offin, int __fdout,
- __off64_t *__offout, size_t __len, unsigned int __flags)
- __THROW;
+extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout,
+ __off64_t *__offout, size_t __len,
+ unsigned int __flags);
/* In-kernel implementation of tee for pipe buffers. */
-extern int tee (int __fdin, int __fdout, size_t __len, unsigned int __flags)
- __THROW;
+extern ssize_t tee (int __fdin, int __fdout, size_t __len,
+ unsigned int __flags);
#endif
diff --git a/ports/sysdeps/unix/sysv/linux/arm/kernel-features.h b/ports/sysdeps/unix/sysv/linux/arm/kernel-features.h
index 0a6ab2180..ea439d5a0 100644
--- a/ports/sysdeps/unix/sysv/linux/arm/kernel-features.h
+++ b/ports/sysdeps/unix/sysv/linux/arm/kernel-features.h
@@ -52,3 +52,7 @@
#endif
#include_next <kernel-features.h>
+
+/* These syscalls are not implemented yet for ARM. */
+#undef __ASSUME_PSELECT
+#undef __ASSUME_PPOLL
diff --git a/ports/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h b/ports/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h
index 328df54a3..1bf6bcba7 100644
--- a/ports/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h
+++ b/ports/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h
@@ -46,10 +46,11 @@
#ifdef __USE_GNU
-# define O_DIRECT 00040000 /* Direct disk access. */
-# define O_DIRECTORY 00010000 /* Must be a directory. */
-# define O_NOFOLLOW 00000200 /* Do not follow links. */
-# define O_NOATIME 04000000 /* Do not set atime. */
+# define O_DIRECT 000040000 /* Direct disk access. */
+# define O_DIRECTORY 000010000 /* Must be a directory. */
+# define O_NOFOLLOW 000000200 /* Do not follow links. */
+# define O_NOATIME 004000000 /* Do not set atime. */
+# define O_CLOEXEC 010000000 /* Set close_on_exec. */
#endif
#ifdef __USE_LARGEFILE64
diff --git a/ports/sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h b/ports/sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h
index 375f7324d..6cffa7631 100644
--- a/ports/sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h
+++ b/ports/sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h
@@ -173,7 +173,7 @@ L(pre_end): ASM_LINE_SEP \
# define CDISABLE .import __libc_disable_asynccancel,code ASM_LINE_SEP \
bl __libc_disable_asynccancel,%r2 ASM_LINE_SEP
# endif
-# else
+# elif defined IS_IN_librt
# ifdef PIC
# define CENABLE .import __librt_enable_asynccancel,code ASM_LINE_SEP \
bl __librt_enable_asynccancel,%r2 ASM_LINE_SEP
@@ -185,14 +185,18 @@ L(pre_end): ASM_LINE_SEP \
# define CDISABLE .import __librt_disable_asynccancel,code ASM_LINE_SEP \
bl __librt_disable_asynccancel,%r2 ASM_LINE_SEP
# endif
+# else
+# error Unsupported library
# endif
# ifdef IS_IN_libpthread
# define __local_multiple_threads __pthread_multiple_threads
# elif !defined NOT_IN_libc
# define __local_multiple_threads __libc_multiple_threads
-# else
+# elif IS_IN_librt
# define __local_multiple_threads __librt_multiple_threads
+# else
+# error Unsupported library
# endif
# ifndef __ASSEMBLER__
diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/fcntl.h b/ports/sysdeps/unix/sysv/linux/mips/bits/fcntl.h
index 27af9ede1..f75188626 100644
--- a/ports/sysdeps/unix/sysv/linux/mips/bits/fcntl.h
+++ b/ports/sysdeps/unix/sysv/linux/mips/bits/fcntl.h
@@ -234,17 +234,17 @@ extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to,
/* Splice address range into a pipe. */
-extern int vmsplice (int __fdout, const struct iovec *__iov, size_t __count,
- unsigned int __flags);
+extern ssize_t vmsplice (int __fdout, const struct iovec *__iov,
+ size_t __count, unsigned int __flags);
/* Splice two files together. */
-extern int splice (int __fdin, __off64_t *__offin, int __fdout,
- __off64_t *__offout, size_t __len, unsigned int __flags)
- __THROW;
+extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout,
+ __off64_t *__offout, size_t __len,
+ unsigned int __flags);
/* In-kernel implementation of tee for pipe buffers. */
-extern int tee (int __fdin, int __fdout, size_t __len, unsigned int __flags)
- __THROW;
+extern ssize_t tee (int __fdin, int __fdout, size_t __len,
+ unsigned int __flags);
#endif