diff options
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 @@ -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 |