summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2011-11-17 21:56:08 +0000
committerjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2011-11-17 21:56:08 +0000
commit913a0f6c362c8c9aac72f800485678845a60ed06 (patch)
tree227afb2373db8f9494b69c20069cce6a03ab0914
parent86abb02796d5bfc0c71d46ad9923ff8737e03280 (diff)
Merge changes between r15584 and r15868 from /fsf/trunk.
git-svn-id: svn://svn.eglibc.org/trunk@15869 7b3dc134-2b1b-0410-93df-9e9f96275f8d
-rw-r--r--libc/ChangeLog428
-rw-r--r--libc/FAQ11
-rw-r--r--libc/FAQ.in11
-rw-r--r--libc/Makefile.in9
-rw-r--r--libc/NEWS14
-rw-r--r--libc/bits/ioctl-types.h4
-rwxr-xr-xlibc/configure1
-rw-r--r--libc/configure.in1
-rw-r--r--libc/elf/chroot_canon.c7
-rw-r--r--libc/elf/dl-deps.c15
-rw-r--r--libc/elf/dl-iteratephdr.c4
-rw-r--r--libc/elf/dl-lookup.c4
-rw-r--r--libc/elf/sprof.c7
-rw-r--r--libc/hesiod/hesiod.c4
-rw-r--r--libc/iconv/gconv_conf.c2
-rw-r--r--libc/iconvdata/Makefile2
-rw-r--r--libc/include/alloca.h10
-rw-r--r--libc/include/ifaddrs.h5
-rw-r--r--libc/include/unistd.h2
-rw-r--r--libc/inet/check_pf.c18
-rw-r--r--libc/inet/rcmd.c12
-rw-r--r--libc/inet/ruserpass.c2
-rw-r--r--libc/intl/localealias.c6
-rw-r--r--libc/libio/Versions2
-rw-r--r--libc/libio/genops.c4
-rw-r--r--libc/libio/stdio.h18
-rw-r--r--libc/libio/wfileops.c25
-rw-r--r--libc/locale/findlocale.c3
-rw-r--r--libc/locale/loadarchive.c7
-rw-r--r--libc/locale/loadlocale.c6
-rw-r--r--libc/localedata/ChangeLog33
-rw-r--r--libc/localedata/Makefile8
-rw-r--r--libc/localedata/locales/de_AT54
-rw-r--r--libc/localedata/locales/es_BO57
-rw-r--r--libc/localedata/locales/es_CL57
-rw-r--r--libc/localedata/locales/es_CO57
-rw-r--r--libc/localedata/locales/es_CR53
-rw-r--r--libc/localedata/locales/es_DO57
-rw-r--r--libc/localedata/locales/es_EC57
-rw-r--r--libc/localedata/locales/es_ES54
-rw-r--r--libc/localedata/locales/es_GT7
-rw-r--r--libc/localedata/locales/es_HN57
-rw-r--r--libc/localedata/locales/es_MX57
-rw-r--r--libc/localedata/locales/es_NI7
-rw-r--r--libc/localedata/locales/es_PA57
-rw-r--r--libc/localedata/locales/es_PE57
-rw-r--r--libc/localedata/locales/es_PR57
-rw-r--r--libc/localedata/locales/es_PY57
-rw-r--r--libc/localedata/locales/es_SV7
-rw-r--r--libc/localedata/locales/es_UY57
-rw-r--r--libc/localedata/locales/es_VE57
-rw-r--r--libc/localedata/locales/fr_BE2
-rw-r--r--libc/localedata/locales/fr_CA57
-rw-r--r--libc/localedata/locales/fr_CH54
-rw-r--r--libc/localedata/locales/fr_LU54
-rw-r--r--libc/malloc/arena.c65
-rw-r--r--libc/malloc/malloc.c8
-rw-r--r--libc/manual/stdio.texi59
-rw-r--r--libc/math/complex.h7
-rw-r--r--libc/math/libm-test.inc1
-rw-r--r--libc/math/math.h6
-rw-r--r--libc/misc/getpass.c4
-rw-r--r--libc/misc/getttyent.c2
-rw-r--r--libc/misc/getusershell.c2
-rw-r--r--libc/misc/mntent_r.c6
-rw-r--r--libc/misc/sys/cdefs.h11
-rw-r--r--libc/nis/nis_file.c6
-rw-r--r--libc/nis/nis_table.c36
-rw-r--r--libc/nis/nss-default.c5
-rw-r--r--libc/nptl/ChangeLog20
-rw-r--r--libc/nptl/pthread_getattr_np.c6
-rw-r--r--libc/nptl/semaphore.h6
-rw-r--r--libc/nptl/sysdeps/pthread/pthread.h38
-rw-r--r--libc/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S6
-rw-r--r--libc/nscd/connections.c119
-rw-r--r--libc/nscd/nscd-client.h18
-rw-r--r--libc/nscd/nscd.c8
-rw-r--r--libc/nscd/nscd_gethst_r.c23
-rw-r--r--libc/nscd/nscd_helper.c10
-rw-r--r--libc/nss/db-Makefile2
-rw-r--r--libc/nss/getent.c6
-rw-r--r--libc/nss/makedb.c2
-rw-r--r--libc/nss/nss_files/files-XXX.c2
-rw-r--r--libc/nss/nss_files/files-alias.c4
-rw-r--r--libc/nss/nss_files/files-initgroups.c4
-rw-r--r--libc/nss/nss_files/files-key.c2
-rw-r--r--libc/nss/nss_files/files-netgrp.c4
-rw-r--r--libc/nss/nsswitch.c2
-rw-r--r--libc/po/es.po10291
-rw-r--r--libc/po/it.po6
-rw-r--r--libc/posix/regex_internal.c6
-rw-r--r--libc/posix/regex_internal.h5
-rw-r--r--libc/posix/sys/wait.h6
-rw-r--r--libc/posix/tst-rfc3484-2.c6
-rw-r--r--libc/posix/tst-rfc3484-3.c6
-rw-r--r--libc/posix/tst-rfc3484.c6
-rw-r--r--libc/posix/unistd.h2
-rw-r--r--libc/resolv/getaddrinfo_a.c6
-rw-r--r--libc/resolv/gethnamaddr.c6
-rw-r--r--libc/resolv/res_hconf.c2
-rw-r--r--libc/resolv/res_query.c2
-rwxr-xr-xlibc/scripts/check-local-headers.sh2
-rwxr-xr-xlibc/scripts/list-sources.sh18
-rw-r--r--libc/setjmp/bits/setjmp2.h22
-rw-r--r--libc/setjmp/setjmp.h14
-rw-r--r--libc/stdlib/ucontext.h8
-rw-r--r--libc/string/Makefile2
-rw-r--r--libc/string/test-strchr.c27
-rw-r--r--libc/string/test-strchrnul.c2
-rw-r--r--libc/sunrpc/rpc_prot.c2
-rw-r--r--libc/sysdeps/generic/dwarf2.h9
-rw-r--r--libc/sysdeps/generic/sysdep.h119
-rw-r--r--libc/sysdeps/i386/i686/multiarch/Makefile14
-rw-r--r--libc/sysdeps/i386/i686/multiarch/locale-defines.sym11
-rw-r--r--libc/sysdeps/i386/i686/multiarch/strcasecmp-c.c12
-rw-r--r--libc/sysdeps/i386/i686/multiarch/strcasecmp.S68
-rw-r--r--libc/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c11
-rw-r--r--libc/sysdeps/i386/i686/multiarch/strcasecmp_l-sse4.S2
-rw-r--r--libc/sysdeps/i386/i686/multiarch/strcasecmp_l-ssse3.S2
-rw-r--r--libc/sysdeps/i386/i686/multiarch/strcasecmp_l.S5
-rw-r--r--libc/sysdeps/i386/i686/multiarch/strcmp-sse4.S562
-rw-r--r--libc/sysdeps/i386/i686/multiarch/strcmp-ssse3.S1108
-rw-r--r--libc/sysdeps/i386/i686/multiarch/strcmp.S28
-rw-r--r--libc/sysdeps/i386/i686/multiarch/strncase-c.c8
-rw-r--r--libc/sysdeps/i386/i686/multiarch/strncase.S68
-rw-r--r--libc/sysdeps/i386/i686/multiarch/strncase_l-c.c11
-rw-r--r--libc/sysdeps/i386/i686/multiarch/strncase_l-sse4.S2
-rw-r--r--libc/sysdeps/i386/i686/multiarch/strncase_l-ssse3.S2
-rw-r--r--libc/sysdeps/i386/i686/multiarch/strncase_l.S5
-rw-r--r--libc/sysdeps/i386/i686/multiarch/strnlen-c.c6
-rw-r--r--libc/sysdeps/i386/i686/multiarch/wcscmp-c.c8
-rw-r--r--libc/sysdeps/i386/i686/multiarch/wcslen-c.c4
-rw-r--r--libc/sysdeps/i386/i686/multiarch/wmemcmp-c.c4
-rw-r--r--libc/sysdeps/ieee754/dbl-64/mpsqrt.c4
-rw-r--r--libc/sysdeps/ieee754/dbl-64/s_sin.c2
-rw-r--r--libc/sysdeps/ieee754/ldbl-96/e_hypotl.c6
-rw-r--r--libc/sysdeps/ieee754/ldbl-96/e_j0l.c4
-rw-r--r--libc/sysdeps/ieee754/ldbl-96/e_j1l.c4
-rw-r--r--libc/sysdeps/posix/getaddrinfo.c12
-rw-r--r--libc/sysdeps/powerpc/fpu/e_sqrt.c1
-rw-r--r--libc/sysdeps/powerpc/fpu/e_sqrtf.c2
-rw-r--r--libc/sysdeps/powerpc/fpu/math_private.h137
-rw-r--r--libc/sysdeps/powerpc/powerpc64/fpu/e_sqrt.c1
-rw-r--r--libc/sysdeps/powerpc/powerpc64/fpu/e_sqrtf.c1
-rw-r--r--libc/sysdeps/unix/clock_gettime.c2
-rw-r--r--libc/sysdeps/unix/sysv/linux/Makefile2
-rw-r--r--libc/sysdeps/unix/sysv/linux/Versions3
-rw-r--r--libc/sysdeps/unix/sysv/linux/bits/uio.h27
-rw-r--r--libc/sysdeps/unix/sysv/linux/check_pf.c179
-rw-r--r--libc/sysdeps/unix/sysv/linux/clock_gettime.c18
-rw-r--r--libc/sysdeps/unix/sysv/linux/getsysstats.c2
-rw-r--r--libc/sysdeps/unix/sysv/linux/internal_statvfs.c8
-rw-r--r--libc/sysdeps/unix/sysv/linux/readonly-area.c4
-rw-r--r--libc/sysdeps/unix/sysv/linux/syscalls.list3
-rw-r--r--libc/sysdeps/unix/sysv/linux/x86_64/clock_gettime.c8
-rw-r--r--libc/sysdeps/x86_64/fpu/multiarch/Makefile15
-rw-r--r--libc/sysdeps/x86_64/fpu/multiarch/brandred-avx.c4
-rw-r--r--libc/sysdeps/x86_64/fpu/multiarch/doasin-avx.c4
-rw-r--r--libc/sysdeps/x86_64/fpu/multiarch/dosincos-avx.c6
-rw-r--r--libc/sysdeps/x86_64/fpu/multiarch/e_asin-avx.c11
-rw-r--r--libc/sysdeps/x86_64/fpu/multiarch/e_asin.c17
-rw-r--r--libc/sysdeps/x86_64/fpu/multiarch/e_atan2-avx.c1
-rw-r--r--libc/sysdeps/x86_64/fpu/multiarch/mpatan-avx.c10
-rw-r--r--libc/sysdeps/x86_64/fpu/multiarch/mpatan2-avx.c9
-rw-r--r--libc/sysdeps/x86_64/fpu/multiarch/mpsqrt-avx.c8
-rw-r--r--libc/sysdeps/x86_64/fpu/multiarch/mptan-avx.c7
-rw-r--r--libc/sysdeps/x86_64/fpu/multiarch/s_atan-avx.c1
-rw-r--r--libc/sysdeps/x86_64/fpu/multiarch/s_sin-avx.c7
-rw-r--r--libc/sysdeps/x86_64/fpu/multiarch/s_tan-avx.c3
-rw-r--r--libc/sysdeps/x86_64/fpu/multiarch/sincos32-avx.c15
-rw-r--r--libc/sysdeps/x86_64/multiarch/strcmp-sse42.S4
-rw-r--r--libc/sysdeps/x86_64/multiarch/strstr.c46
-rw-r--r--libc/sysdeps/x86_64/strcmp.S6
-rw-r--r--libc/time/getdate.c6
-rw-r--r--libc/time/tzfile.c6
-rw-r--r--ports/ChangeLog.arm5
-rw-r--r--ports/ChangeLog.m68k5
-rw-r--r--ports/ChangeLog.mips9
-rw-r--r--ports/sysdeps/m68k/stackinfo.h10
-rw-r--r--ports/sysdeps/mips/dl-lookup.c4
-rw-r--r--ports/sysdeps/unix/sysv/linux/arm/ioperm.c5
-rw-r--r--ports/sysdeps/unix/sysv/linux/mips/mips64/n64/ftw.c1
-rw-r--r--ports/sysdeps/unix/sysv/linux/mips/mips64/n64/ftw64.c1
183 files changed, 8975 insertions, 6472 deletions
diff --git a/libc/ChangeLog b/libc/ChangeLog
index 57c4bbe3f..d9866def3 100644
--- a/libc/ChangeLog
+++ b/libc/ChangeLog
@@ -1,3 +1,431 @@
+2011-11-17 Ulrich Drepper <drepper@gmail.com>
+
+ * Makefile.in: Remove CVSOPT handling.
+ * configure.in: Remove use of AC_REVISION.
+ * iconvdata/Makefile (distribute): No need to filter out CVS.
+ * scripts/list-sources.sh: Remove CVS, subversion and monotone
+ handling.
+
+2011-11-16 Andreas Schwab <schwab@redhat.com>
+
+ * sysdeps/i386/i686/multiarch/strcmp-ssse3.S
+ [USE_AS_STRCASECMP_L]: Fix argument offsets for non-PIC.
+ [USE_AS_STRNCASECMP_L]: Likewise.
+ (__strcasecmp_ssse3, __strncasecmp_ssse3): Handle
+ NO_TLS_DIRECT_SEG_REFS.
+ * sysdeps/i386/i686/multiarch/strcmp-sse4.S [USE_AS_STRCASECMP_L]:
+ Fix argument offsets for non-PIC.
+ [USE_AS_STRNCASECMP_L]: Likewise.
+ (__strcasecmp_sse4_2, __strncasecmp_sse4_2): Handle
+ NO_TLS_DIRECT_SEG_REFS.
+
+2011-11-15 Ulrich Drepper <drepper@gmail.com>
+
+ * locale/loadarchive.c (_nl_load_locale_from_archive): Open files with
+ O_CLOEXEC.
+ * locale/loadlocale.c (_nl_load_locale): Likewise.
+
+2011-11-15 Andreas Schwab <schwab@redhat.com>
+
+ * sysdeps/unix/sysv/linux/clock_gettime.c (SYSDEP_GETTIME_CPU)
+ [__ASSUME_POSIX_CPU_TIMERS > 0]: Assign to retval and break.
+ * sysdeps/unix/sysv/linux/x86_64/clock_gettime.c
+ (SYSCALL_GETTIME): Set errno on error.
+
+ * sysdeps/unix/sysv/linux/check_pf.c (make_request): Properly
+ count references to noai6ai_cached.
+
+2011-11-15 Ulrich Drepper <drepper@gmail.com>
+
+ * time/getdate.c (__getdate_r): Set FD_CLOEXEC for given file.
+
+ * sysdeps/unix/sysv/linux/readonly-area.c (__readonly_area): Set
+ FD_CLOEXEC for /proc/self/maps.
+
+ * sysdeps/unix/sysv/linux/getsysstats.c (phys_pages_info): Set
+ FD_CLOEXEC for /proc/meminfo.
+
+ * sysdeps/posix/getaddrinfo.c (gaiconf_init): Set FD_CLOEXEC for
+ gai.conf.
+
+ * resolv/res_query.c (res_hostalias): Don't allow cancellation and set
+ FD_CLOEXEC for given file.
+
+ * resolv/res_hconf.c (do_init): Set FD_CLOEXEC for host.conf.
+
+ * resolv/gethnamaddr.c (_sethtent): Don't allow cancellation and set
+ FD_CLOEXEC for /etc/hosts.
+ (_gethtent): Likewise.
+
+ * nss/nsswitch.c (nss_parse_file): Set FD_CLOEXEC.
+
+ * nss/nss_files/files-netgrp.c (_nss_files_setnetgrent): Don't allow
+ cancellation and set FD_CLOEXEC for /etc/netgroup.
+
+ * nss/nss_files/files-key.c (search): Don't allow cancellation when
+ reading /etc/publickey.
+
+ * nss/nss_files/files-initgroups.c (_nss_files_initgroups_dyn): Don't
+ allow cancellation when reading /etc/group.
+
+ * nss/nss_files/files-alias.c (internal_setent): Don't allow
+ cancellation.
+ (get_next_alias): Likewise for included file. Also set FD_CLOEXEC.
+
+ * nss/nss_files/files-XXX.c (internal_setent): Don't allow cancellation
+ when using data file.
+
+ * nis/nss-default.c (init): Set FD_CLOEXEC for /etc/default/nss.
+
+ * nis/nis_file.c (read_nis_obj): Set FD_CLOEXEC.
+ (write_nis_obj): Use "c" and "e" in fopen.
+
+ * misc/mntent_r.c (__setmntent): Also append e to fopen format.
+
+ * misc/getusershell.c (initshells): Set FD_CLOEXEC for /etc/shells.
+
+ * misc/getttyent.c (setttyent): Set FD_CLOEXEC.
+
+ * misc/getpass.c (getpass): Set FD_CLOEXEC for /dev/tty.
+
+ * intl/localealias.c (read_alias_file): Set FD_CLOEXEC for
+ locale.alias.
+
+ * inet/ruserpass.c (ruserpass): Set FD_CLOEXEC for .netrc.
+
+ * inet/rcmd.c (iruserfopen): Set FD_CLOEXEC for hosts.equiv.
+
+ * iconv/gconv_conf.c (read_conf_file): Set FD_CLOEXEC for config file.
+
+ * hesiod/hesiod.c (parse_config_file): Prevent cancellation in config
+ file parsing and set FD_CLOEXEC.
+
+2011-11-14 Ulrich Drepper <drepper@gmail.com>
+
+ * time/tzfile.c (__tzfile_read): Use "e" in fopen call.
+
+2011-11-14 Andreas Schwab <schwab@redhat.com>
+
+ * malloc/arena.c (arena_get2): Don't call reused_arena when
+ _int_new_arena failed.
+
+2011-11-14 Ulrich Drepper <drepper@gmail.com>
+
+ * sysdeps/i386/i686/multiarch/Makefile [subdir=string]
+ (sysdep_routines): Add strcasecmp_l-sse4 and strncase_l-sse4.
+ * sysdeps/i386/i686/multiarch/strcasecmp.S: Re-enable SSE4.2 code.
+ * sysdeps/i386/i686/multiarch/strcmp.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strncase.S: Likewise.
+ * sysdeps/i386/i686/multiarch/strcmp-sse4.S: Change to allow reuse
+ to compile strcasecmp and strncasecmp.
+ * sysdeps/i386/i686/multiarch/strcasecmp_l-sse4.S: New file.
+ * sysdeps/i386/i686/multiarch/strncase_l-sse4.S: New file.
+
+ * sysdeps/i386/i686/multiarch/strcmp-ssse3.S: Use L macro consistently.
+
+2011-11-13 Ulrich Drepper <drepper@gmail.com>
+
+ * sysdeps/i386/i686/multiarch/Makefile [subdir=string]: Add
+ locale-defines.sym to gen-as-const-headers.
+ (sysdep_routines): Add strcasecmp_l-c, strcasecmp-c,
+ strcasecmp_l-ssse3, strncase_l-c, strncase-c, and strncase_l-ssse3.
+ * sysdeps/i386/i686/multiarch/strcmp-ssse3.S: Change to allow reuse
+ to compile strcasecmp and strncasecmp.
+ * sysdeps/i386/i686/multiarch/strcmp.S: Allow to use for
+ strcasecmp_l and strncasecmp_l.
+ * sysdeps/i386/i686/multiarch/locale-defines.sym: New file.
+ * sysdeps/i386/i686/multiarch/strcasecmp-c.c: New file.
+ * sysdeps/i386/i686/multiarch/strcasecmp.S: New file.
+ * sysdeps/i386/i686/multiarch/strcasecmp_l-c.c: New file.
+ * sysdeps/i386/i686/multiarch/strcasecmp_l-ssse3.S: New file.
+ * sysdeps/i386/i686/multiarch/strcasecmp_l.S: New file.
+ * sysdeps/i386/i686/multiarch/strncase-c.c: New file.
+ * sysdeps/i386/i686/multiarch/strncase.S: New file.
+ * sysdeps/i386/i686/multiarch/strncase_l-c.c: New file.
+ * sysdeps/i386/i686/multiarch/strncase_l-ssse3.S: New file.
+ * sysdeps/i386/i686/multiarch/strncase_l.S: New file.
+
+2011-11-12 Ulrich Drepper <drepper@gmail.com>
+
+ * sysdeps/unix/clock_gettime.c (clock_gettime): No need to assign
+ result of SYSDEP_GETTIME_CPU to retval.
+ * sysdeps/unix/sysv/linux/clock_gettime.c (SYSDEP_GETTIME_CPU): Add
+ parameter list to macro. Remove trailing semicolon. Adjust users.
+
+ * resolv/getaddrinfo_a.c (getaddrinfo_a): Avoid warning about unused
+ variable.
+
+ * sysdeps/ieee754/ldbl-96/e_j0l.c (__ieee754_j0l): Avoid storing
+ mantissa words.
+ * sysdeps/ieee754/ldbl-96/e_j1l.c (__ieee754_j1l): Likewise.
+
+ * sysdeps/ieee754/ldbl-96/e_hypotl.c (__ieee754_hypotl): Avoid warning
+ from unused variable.
+
+ * sysdeps/generic/sysdep.h: Clean up, pretty print, use dwarf2.h for
+ DWARF definitions.
+ * sysdeps/generic/dwarf2.h: Don't define enums when using the file
+ for assembling.
+
+ * elf/dl-iteratephdr.c [!SHARED] (__dl_iterate_phdr): Don't iterate
+ over namespaces.
+
+ * sunrpc/rpc_prot.c (rejected): Fix case value.
+
+ * sysdeps/unix/sysv/linux/internal_statvfs.c (INTERNAL_STATVFS): Use
+ unsigned long long int to avoid warnings in shift.
+
+ * posix/regex_internal.c (re_string_reconstruct): Actually use result
+ of use of trans.
+ * posix/regex_internal.h (re_string_wchar_at): Remove temporary
+ variable tmp.
+
+ * sysdeps/i386/i686/multiarch/wcscmp-c.c: Avoid warning.
+ * sysdeps/i386/i686/multiarch/wcslen-c.c: Likewise.
+ * sysdeps/i386/i686/multiarch/wmemcmp-c.c: Likewise.
+
+ * nis/nis_table.c (nis_list): Use variable of correct type for
+ result of __follow_path call.
+
+2011-11-07 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/fpu/math_private.h: Using inline assembly version
+ of math functions ceil, trunc, floor, round, and sqrt, when
+ avaliable on the platform.
+ * sysdeps/powerpc/fpu/e_sqrt.c: Undefine __ieee754_sqrt to avoid
+ name clash.
+ * sysdeps/powerpc/fpu/e_sqrtf.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/e_sqrt.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/e_sqrtf.c: Likewise.
+
+2011-10-30 Marek Polacek <mpolacek@redhat.com>
+
+ * libio/wfileops.c (_IO_wfile_underflow_mmap): Remove unused variable.
+ * sysdeps/ieee754/dbl-64/mpsqrt.c (__mpsqrt): Likewise.
+
+2011-11-11 Roland McGrath <roland@hack.frob.com>
+
+ * include/unistd.h: Fix __readlink return type.
+ Reported by Chris Metcalf <cmetcalf@tilera.com>.
+
+2011-11-11 Ulrich Drepper <drepper@gmail.com>
+
+ * stdlib/ucontext.h: Undo last change for makecontext.
+
+2011-11-11 Andreas Schwab <schwab@redhat.com>
+
+ * nss/db-Makefile ($(VAR_DB)/group.db): Fix typo in awk script.
+
+ * misc/sys/cdefs.h (__REDIRECT_NTHNL): Define.
+ * setjmp/setjmp.h: Mark functions as non-leaf.
+ * setjmp/bits/setjmp2.h: Likewise.
+ * stdlib/ucontext.h: Likewise.
+
+2011-11-10 Andreas Schwab <schwab@redhat.com>
+
+ * malloc/arena.c (_int_new_arena): Don't increment narenas.
+ (reused_arena): Don't check arena limit.
+ (arena_get2): Atomically check arena limit.
+
+2011-11-08 Ulrich Drepper <drepper@gmail.com>
+
+ * locale/findlocale.c (_nl_find_locale): Use __strcasecmp_l.
+ * intl/localealias.c (strcasecmp): Define using __strcasecmp_l.
+
+ * sysdeps/i386/i686/multiarch/strcmp-ssse3.S: Remove unnecessary
+ instructions.
+
+2011-11-07 Andreas Schwab <schwab@redhat.com>
+
+ * libio/genops.c (_IO_flush_all_lockp): Only register cleanup
+ handler when locking.
+
+ * nss/nss_files/files-initgroups.c (_nss_files_initgroups_dyn):
+ Fix size of allocated buffer.
+
+2011-11-04 Andreas Schwab <schwab@redhat.com>
+
+ [BZ #10103]
+ * math/math.h [__NO_LONG_DOUBLE_MATH && !_LIBC]: Provide
+ declarations for long double functions.
+ * math/complex.h [__NO_LONG_DOUBLE_MATH && !_LIBC]: Likewise.
+
+ * elf/sprof.c (load_shobj): Fix off-by-one when reading link name.
+
+2011-11-03 Andreas Schwab <schwab@redhat.com>
+
+ * nscd/nscd.c (main): Don't start AVC thread until credentials are
+ installed.
+
+ * nss/makedb.c (set_file_creation_context): Do nothing if SELinux
+ is disabled.
+
+2011-11-02 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * bits/ioctl-types.h (_IOT_sgttyb): Set number of chars to 4.
+
+2011-11-01 Andreas Schwab <schwab@linux-m68k.org>
+
+ * include/alloca.h (stackinfo_alloca_round): Define.
+ (extend_alloca): Use it.
+ [_STACK_GROWS_UP]: Correct check for adjacent allocation.
+ * elf/dl-deps.c (_dl_map_object_deps): Don't round alloca size
+ here.
+
+ * scripts/check-local-headers.sh: Ignore libaudit.h.
+
+ * nscd/Makefile (extra-objs): Make recursively expanded.
+
+2011-11-01 Ulrich Drepper <drepper@gmail.com>
+
+ * sysdeps/x86_64/strcmp.S: Fix test for non-ASCII locales.
+ * sysdeps/x86_64/multiarch/strcmp-sse42.S: Likewise.
+
+ * posix/tst-rfc3484.c: Add missing __free_in6ai dummy function.
+ * posix/tst-rfc3484-2.c: Likewise.
+ * posix/tst-rfc3484-3.c: Likewise.
+
+ * sysdeps/unix/sysv/linux/bits/uio.h: Declare process_vm_readv and
+ process_vm_writev.
+ * sysdeps/unix/sysv/linux/syscalls.list: Add process_vm_readv and
+ process_vm_writev.
+ * sysdeps/unix/sysv/linux/Versions: Export process_vm_readv and
+ process_vm_writev from libc using GLIBC_2.15 version.
+
+ * nscd/connections.c: Use kernel headers instead of <netlink/netlink.h>.
+
+2011-10-31 Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ * elf/dl-deps.c (_dl_map_object_deps): Reuse alloca space to reduce
+ stack usage.
+
+2011-10-31 Ulrich Drepper <drepper@gmail.com>
+
+ [BZ #13367]
+ * nss/getent.c (initgroups_keys): Show error message in case no group
+ names are given.
+
+ * include/ifaddrs.h: Declare __free_in6ai and __bump_nl_timestamp.
+ * inet/check_pf.c: Provide dummy versions of __free_in6ai and
+ __bump_nl_timestamp.
+ * nscd/connections (nscd_init): When host database is served open
+ netlink socket and request notification about configuration changes.
+ (main_loop_poll): Track netlink file descriptor and bump timestamp
+ in case data becomes available.
+ (main_loop_epoll): Likewise.
+ * nscd/nscd-client.h (DB_VERSION): Bump to 2.
+ (database_pers_head): Add extra_data fileds.
+ Declare __nscd_get_mapping and __nscd_get_nl_timestamp.
+ * nscd/nscd_gethst_r.c (__nscd_get_nl_timestamp): New function.
+ * nscd/nscd_helper.c (__nscd_get_mapping): Renamed from get_mapping.
+ Adjust caller.
+ * sysdeps/posix/getaddrinfo.c (getaddrinfo): Don't call free on
+ in6ai data, call __free_in6ai.
+ * sysdeps/unix/sysv/linux/Makefile [subdir=nscd] (sysdep-CFLAGS):
+ Add -DHAVE_NETLINK.
+ * sysdeps/unix/sysv/linux/check_pf.c: Major rewrite. Cache the
+ interface information. Reuse previous data if netlink timestamp
+ is not changed.
+ (__bump_nl_timestamp): New function.
+ (__free_in6ai): New function.
+
+2011-10-30 Ulrich Drepper <drepper@gmail.com>
+
+ * sysdeps/unix/sysv/linux/check_pf.c (make_request): Don't call
+ close_not_cancel_no_status here.
+ (__check_pf): Reorganize code a bit to not call close twice if OOM.
+
+2011-10-29 Ulrich Drepper <drepper@gmail.com>
+
+ [BZ #13276]
+ * malloc/malloc.c (munmap_chunk): Don't use assertion to check munmap
+ return value.
+
+ * posix/sys/wait.h: Mark wait3 and wait4 with __THROWNL.
+ * libio/stdio.h: Mark sprintf, vsprintf snprintf, vsnprintf, vasprintf,
+ asprintf, __asprintf, obstack_printf, obstack_vprintf with __THROWNL.
+
+2011-07-03 Andreas Jaeger <aj@suse.de>
+
+ [BZ #10709]
+ * sysdeps/ieee754/dbl-64/s_sin.c (__sin): Fix incorrect rounding
+ of sin. Patch suggested by Paul Zimmermann <zimmerma+gcc@loria.fr>.
+ * math/libm-test.inc (sin_test): Add test case.
+
+2011-10-29 Ulrich Drepper <drepper@gmail.com>
+
+ [BZ #13337]
+ * elf/sprof.c (load_shobj): Correctly NUL-terminate link name.
+ Patch by Thomas Jarosch <thomas.jarosch@intra2net.com>.
+
+ * elf/chroot_canon.c (chroot_canon): Cleanups.
+
+ * elf/dl-lookup.c (_dl_setup_hash): Avoid warning.
+
+ [BZ #13335]
+ * elf/chroot_canon.c (chroot_canon): Fix readlink call.
+ Patch by Thomas Jarosch <thomas.jarosch@intra2net.com>.
+
+ * string/test-strchr.c: Make usable for strchrnul testing.
+ * string/test-strchrnul.c: New file.
+ * string/Makefile (strop-tests): Add strchrnul.
+
+ * po/it.po: Update from translation team.
+ * po/es.po: Likewise.
+
+2011-10-28 Ulrich Drepper <drepper@gmail.com>
+
+ * sysdeps/x86_64/multiarch/strstr.c (__m128i_strloadu_tolower): Take
+ the three constants needed as parameters. Drop the others.
+ (strcasestr_sse42): Load uclow, uchigh, and lcqword and pass to
+ __m128i_strloadu_tolower.
+ Create and initialize variable zero and use it in all the places
+ where _mm_setzero_si128 was used.
+
+ * sysdeps/x86_64/fpu/multiarch/Makefile: Don't build brandred-avx.c,
+ doasin-avx.c, dosincos-avx.c, e_asin-avx.c, mpatan-avx.c,
+ mpatan2-avx.c, mpsqrt-avx.c, mptan-avx.c, sincos32-avx.c.
+ * sysdeps/x86_64/fpu/multiarch/e_asin.c: There are no _avx variants
+ anymore.
+ * sysdeps/x86_64/fpu/multiarch/e_atan2-avx.c: Don't redirect __mpatan2.
+ * sysdeps/x86_64/fpu/multiarch/s_atan-avx.c: Don't redirect __mpatan.
+ * sysdeps/x86_64/fpu/multiarch/s_sin-avx.c: Don't redirect __branred,
+ __docos, __dubsin, __mpcos, __mpcos1, __mpsin, __mpsin1.
+ * sysdeps/x86_64/fpu/multiarch/s_tan-avx.c: Don't redirect __branred,
+ __mpranred, __mptan.
+ * sysdeps/x86_64/fpu/multiarch/brandred-avx.c: Removed.
+ * sysdeps/x86_64/fpu/multiarch/doasin-avx.c: Removed.
+ * sysdeps/x86_64/fpu/multiarch/dosincos-avx.c: Removed.
+ * sysdeps/x86_64/fpu/multiarch/e_asin-avx.c: Removed.
+ * sysdeps/x86_64/fpu/multiarch/mpatan-avx.c: Removed.
+ * sysdeps/x86_64/fpu/multiarch/mpatan2-avx.c: Removed.
+ * sysdeps/x86_64/fpu/multiarch/mpsqrt-avx.c: Removed.
+ * sysdeps/x86_64/fpu/multiarch/mptan-avx.c: Removed.
+ * sysdeps/x86_64/fpu/multiarch/sincos32-avx.c: Removed.
+
+2011-10-28 Andreas Schwab <schwab@redhat.com>
+
+ * sysdeps/i386/i686/multiarch/strnlen-c.c (libc_hidden_def): Only
+ redefine if SHARED.
+ * sysdeps/i386/i686/multiarch/wcscmp-c.c (libc_hidden_def): Likewise.
+
+ * sysdeps/i386/i686/multiarch/Makefile (sysdep_routines): Move
+ wide char related routines to wcsmbs subdir.
+
+2011-10-27 Andreas Schwab <schwab@redhat.com>
+
+ [BZ #13344]
+ * misc/sys/cdefs.h (__THROWNL): Define.
+ * posix/unistd.h: Use __THREADNL instead of __THREAD
+ for memory synchronization functions.
+
+2011-10-26 Roland McGrath <roland@hack.frob.com>
+
+ [BZ #13349]
+ * libio/Versions (GLIBC_2.0): Remove open_obstack_stream, which
+ doesn't exist.
+ * manual/stdio.texi (Obstack Streams): Node removed.
+
2011-10-26 Andreas Schwab <schwab@redhat.com>
* sysdeps/ieee754/flt-32/e_j0f.c: Fix use of math_force_eval.
diff --git a/libc/FAQ b/libc/FAQ
index 54f422a09..bd5849e9b 100644
--- a/libc/FAQ
+++ b/libc/FAQ
@@ -605,10 +605,10 @@ builtins (__builtin_*).
Without optimizations enabled GNU CC will not inline functions. The
early startup of the dynamic loader will make function calls via an
-unrelocated PLT and crash.
+unrelocated PLT and crash.
Without auditing the dynamic linker code it would be difficult to remove
-this requirement.
+this requirement.
Another reason is that nested functions must be inlined in many cases to
avoid executable stacks.
@@ -1204,7 +1204,7 @@ solutions:
{AJ} You might get the following errors when upgrading to glibc 2.1:
In file included from /usr/include/stdio.h:57,
- from ...
+ from ...
/usr/include/libio.h:335: parse error before `_IO_seekoff'
/usr/include/libio.h:335: parse error before `_G_off64_t'
/usr/include/libio.h:336: parse error before `_IO_seekpos'
@@ -1278,10 +1278,7 @@ and gives more details for some topics.
2.33. The makefiles want to do a CVS commit.
-{UD} Only if you are not specifying the --without-cvs flag at configure
-time. This is what you always have to use if you are checking sources
-directly out of the public CVS repository or you have your own private
-repository.
+{} Removed. Does not apply anymore.
2.34. When compiling C++ programs, I get a compilation error in streambuf.h.
diff --git a/libc/FAQ.in b/libc/FAQ.in
index 0eb6bac15..af61599a7 100644
--- a/libc/FAQ.in
+++ b/libc/FAQ.in
@@ -400,10 +400,10 @@ builtins (__builtin_*).
Without optimizations enabled GNU CC will not inline functions. The
early startup of the dynamic loader will make function calls via an
-unrelocated PLT and crash.
+unrelocated PLT and crash.
Without auditing the dynamic linker code it would be difficult to remove
-this requirement.
+this requirement.
Another reason is that nested functions must be inlined in many cases to
avoid executable stacks.
@@ -971,7 +971,7 @@ solutions:
{AJ} You might get the following errors when upgrading to glibc 2.1:
In file included from /usr/include/stdio.h:57,
- from ...
+ from ...
/usr/include/libio.h:335: parse error before `_IO_seekoff'
/usr/include/libio.h:335: parse error before `_G_off64_t'
/usr/include/libio.h:336: parse error before `_IO_seekpos'
@@ -1041,10 +1041,7 @@ and gives more details for some topics.
?? The makefiles want to do a CVS commit.
-{UD} Only if you are not specifying the --without-cvs flag at configure
-time. This is what you always have to use if you are checking sources
-directly out of the public CVS repository or you have your own private
-repository.
+{} Removed. Does not apply anymore.
?? When compiling C++ programs, I get a compilation error in streambuf.h.
diff --git a/libc/Makefile.in b/libc/Makefile.in
index 1c1e2c1df..1f5dc1cd7 100644
--- a/libc/Makefile.in
+++ b/libc/Makefile.in
@@ -3,14 +3,9 @@ srcdir = @srcdir@
# Uncomment the line below if you want to do parallel build.
# PARALLELMFLAGS = -j 4
-# This option is for those who modify the sources and keep them in a
-# CVS repository. Sometimes it is necessary to pass options to the cvs
-# program (not the command), like -z9 or -x.
-# CVSOPTS = -z9
-
all .DEFAULT:
- $(MAKE) -r PARALLELMFLAGS="$(PARALLELMFLAGS)" CVSOPTS="$(CVSOPTS)" -C $(srcdir) objdir=`pwd` $@
+ $(MAKE) -r PARALLELMFLAGS="$(PARALLELMFLAGS)" -C $(srcdir) objdir=`pwd` $@
install:
LANGUAGE=C LC_ALL=C; export LANGUAGE LC_ALL; \
- $(MAKE) -r PARALLELMFLAGS="$(PARALLELMFLAGS)" CVSOPTS="$(CVSOPTS)" -C $(srcdir) objdir=`pwd` $@
+ $(MAKE) -r PARALLELMFLAGS="$(PARALLELMFLAGS)" -C $(srcdir) objdir=`pwd` $@
diff --git a/libc/NEWS b/libc/NEWS
index e0bb0eff2..5b5324c03 100644
--- a/libc/NEWS
+++ b/libc/NEWS
@@ -1,4 +1,4 @@
-GNU C Library NEWS -- history of user-visible changes. 2011-10-20
+GNU C Library NEWS -- history of user-visible changes. 2011-11-14
Copyright (C) 1992-2009, 2010, 2011 Free Software Foundation, Inc.
See the end for copying conditions.
@@ -9,9 +9,10 @@ Version 2.15
* The following bugs are resolved with this release:
- 6779, 6783, 9696, 11589, 12403, 12847, 12868, 12852, 12874, 12885, 12892,
- 12907, 12922, 12935, 13007, 13021, 13067, 13068, 13090, 13092, 13114,
- 13118, 13123, 13134, 13138, 13150, 13179, 13192, 13268, 13291
+ 6779, 6783, 9696, 10103, 10709, 11589, 12403, 12847, 12868, 12852, 12874,
+ 12885, 12892, 12907, 12922, 12935, 13007, 13021, 13067, 13068, 13090,
+ 13092, 13114, 13118, 13123, 13134, 13138, 13147, 13150, 13179, 13192,
+ 13268, 13276, 13291, 13335, 13337, 13344, 13358, 13367
* New program pldd to list loaded object of a process
Implemented by Ulrich Drepper.
@@ -53,6 +54,11 @@ Version 2.15
* Optimized strcasecmp and strncasecmp for AVX on x86-64.
Implemented by Ulrich Drepper.
+
+* New Linux interfaces: process_vm_readv, process_vm_writev
+
+* Optimized strcasecmp and strncasecmp for SSSE3 and SSE4.2 on x86-32.
+ Implemented by Ulrich Drepper.
Version 2.14
diff --git a/libc/bits/ioctl-types.h b/libc/bits/ioctl-types.h
index 58b78a6af..661887f95 100644
--- a/libc/bits/ioctl-types.h
+++ b/libc/bits/ioctl-types.h
@@ -1,5 +1,5 @@
/* Structure types for pre-termios terminal ioctls. Generic Unix version.
- Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+ Copyright (C) 1996,1997,2011 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
@@ -64,7 +64,7 @@ struct sgttyb
};
#define _IOT_sgttyb /* Hurd ioctl type field. */ \
- _IOT (_IOTS (char), 6, _IOTS (short int), 1, 0, 0)
+ _IOT (_IOTS (char), 4, _IOTS (short int), 1, 0, 0)
#if defined TIOCGWINSZ || defined TIOCSWINSZ
/* Type of ARG for TIOCGWINSZ and TIOCSWINSZ requests. */
diff --git a/libc/configure b/libc/configure
index bb689bbce..e5e0184da 100755
--- a/libc/configure
+++ b/libc/configure
@@ -1,5 +1,4 @@
#! /bin/sh
-# From configure.in CVSid.
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.63 for GNU C Library (see version.h).
#
diff --git a/libc/configure.in b/libc/configure.in
index 614ed18ef..4655c8aa4 100644
--- a/libc/configure.in
+++ b/libc/configure.in
@@ -1,5 +1,4 @@
dnl Process this file with autoconf to produce a configure script.
-AC_REVISION([$CVSid$])
AC_PREREQ(2.53)dnl dnl Minimum Autoconf version required.
AC_INIT([GNU C Library], [(see version.h)], [http://sourceware.org/bugzilla/], [glibc])
AC_CONFIG_SRCDIR([include/features.h])
diff --git a/libc/elf/chroot_canon.c b/libc/elf/chroot_canon.c
index 54a6a4cc9..f8f337049 100644
--- a/libc/elf/chroot_canon.c
+++ b/libc/elf/chroot_canon.c
@@ -1,5 +1,5 @@
/* Return the canonical absolute name of a given file inside chroot.
- Copyright (C) 1996,1997,1998,1999,2000,2001,2004,2005,2010
+ Copyright (C) 1996,1997,1998,1999,2000,2001,2004,2005,2010,2011
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -70,7 +70,6 @@ chroot_canon (const char *chroot, const char *name)
for (start = end = name; *start; start = end)
{
struct stat64 st;
- int n;
/* Skip sequence of multiple path-separators. */
while (*start == '/')
@@ -135,7 +134,7 @@ chroot_canon (const char *chroot, const char *name)
goto error;
}
- n = readlink (rpath, buf, PATH_MAX);
+ ssize_t n = readlink (rpath, buf, PATH_MAX - 1);
if (n < 0)
{
if (*end == '\0')
@@ -148,7 +147,7 @@ chroot_canon (const char *chroot, const char *name)
extra_buf = alloca (PATH_MAX);
len = strlen (end);
- if ((long int) (n + len) >= PATH_MAX)
+ if (len >= PATH_MAX - n)
{
__set_errno (ENAMETOOLONG);
goto error;
diff --git a/libc/elf/dl-deps.c b/libc/elf/dl-deps.c
index fb180ac99..51cb2fa59 100644
--- a/libc/elf/dl-deps.c
+++ b/libc/elf/dl-deps.c
@@ -188,6 +188,10 @@ _dl_map_object_deps (struct link_map *map,
/* Pointer to last unique object. */
tail = &known[nlist - 1];
+ /* No alloca'd space yet. */
+ struct link_map **needed_space = NULL;
+ size_t needed_space_bytes = 0;
+
/* Process each element of the search list, loading each of its
auxiliary objects and immediate dependencies. Auxiliary objects
will be added in the list before the object itself and
@@ -216,8 +220,15 @@ _dl_map_object_deps (struct link_map *map,
dependencies of this object. */
if (l->l_searchlist.r_list == NULL && l->l_initfini == NULL
&& l != map && l->l_ldnum > 0)
- needed = (struct link_map **) alloca (l->l_ldnum
- * sizeof (struct link_map *));
+ {
+ size_t new_size = l->l_ldnum * sizeof (struct link_map *);
+
+ if (new_size > needed_space_bytes)
+ needed_space
+ = extend_alloca (needed_space, needed_space_bytes, new_size);
+
+ needed = needed_space;
+ }
if (l->l_info[DT_NEEDED] || l->l_info[AUXTAG] || l->l_info[FILTERTAG])
{
diff --git a/libc/elf/dl-iteratephdr.c b/libc/elf/dl-iteratephdr.c
index 45107a9b6..33b56c962 100644
--- a/libc/elf/dl-iteratephdr.c
+++ b/libc/elf/dl-iteratephdr.c
@@ -44,9 +44,10 @@ __dl_iterate_phdr (int (*callback) (struct dl_phdr_info *info,
/* We have to determine the namespace of the caller since this determines
which namespace is reported. */
- const void *caller = RETURN_ADDRESS (0);
size_t nloaded = GL(dl_ns)[0]._ns_nloaded;
Lmid_t ns = 0;
+#ifdef SHARED
+ const void *caller = RETURN_ADDRESS (0);
for (Lmid_t cnt = GL(dl_nns) - 1; cnt > 0; --cnt)
for (struct link_map *l = GL(dl_ns)[cnt]._ns_loaded; l; l = l->l_next)
{
@@ -59,6 +60,7 @@ __dl_iterate_phdr (int (*callback) (struct dl_phdr_info *info,
|| _dl_addr_inside_object (l, (ElfW(Addr)) caller)))
ns = cnt;
}
+#endif
for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next)
{
diff --git a/libc/elf/dl-lookup.c b/libc/elf/dl-lookup.c
index fa9b8fe2d..1ad86c5c9 100644
--- a/libc/elf/dl-lookup.c
+++ b/libc/elf/dl-lookup.c
@@ -860,7 +860,6 @@ internal_function
_dl_setup_hash (struct link_map *map)
{
Elf_Symndx *hash;
- Elf_Symndx nchain;
if (__builtin_expect (map->l_info[DT_ADDRTAGIDX (DT_GNU_HASH) + DT_NUM
+ DT_THISPROCNUM + DT_VERSIONTAGNUM
@@ -892,7 +891,8 @@ _dl_setup_hash (struct link_map *map)
hash = (void *) D_PTR (map, l_info[DT_HASH]);
map->l_nbuckets = *hash++;
- nchain = *hash++;
+ /* Skip nchain. */
+ hash++;
map->l_buckets = hash;
hash += map->l_nbuckets;
map->l_chain = hash;
diff --git a/libc/elf/sprof.c b/libc/elf/sprof.c
index a5caddded..2d1d2ac28 100644
--- a/libc/elf/sprof.c
+++ b/libc/elf/sprof.c
@@ -599,10 +599,11 @@ load_shobj (const char *name)
static const char procpath[] = "/proc/self/fd/%d";
char origprocname[sizeof (procpath) + sizeof (int) * 3];
snprintf (origprocname, sizeof (origprocname), procpath, fd);
- char *origlink = (char *) alloca (PATH_MAX + 1);
- origlink[PATH_MAX] = '\0';
- if (readlink (origprocname, origlink, PATH_MAX) == -1)
+ char *origlink = (char *) alloca (PATH_MAX);
+ ssize_t n = readlink (origprocname, origlink, PATH_MAX - 1);
+ if (n == -1)
goto no_debuginfo;
+ origlink[n] = '\0';
/* Try to find the actual file. There are three places:
1. the same directory the DSO is in
diff --git a/libc/hesiod/hesiod.c b/libc/hesiod/hesiod.c
index b3706b506..a3f22e5c8 100644
--- a/libc/hesiod/hesiod.c
+++ b/libc/hesiod/hesiod.c
@@ -278,7 +278,7 @@ parse_config_file(struct hesiod_p *ctx, const char *filename) {
/*
* Now open and parse the file...
*/
- if (!(fp = fopen(filename, "r")))
+ if (!(fp = fopen(filename, "rce")))
return (-1);
while (fgets(buf, sizeof(buf), fp) != NULL) {
@@ -482,7 +482,7 @@ __hesiod_res_get(void *context) {
void
__hesiod_res_set(void *context, struct __res_state *res,
- void (*free_res)(void *)) {
+ void (*free_res)(void *)) {
struct hesiod_p *ctx = context;
if (ctx->res && ctx->free_res) {
diff --git a/libc/iconv/gconv_conf.c b/libc/iconv/gconv_conf.c
index b28cb3c9a..7b7c340e9 100644
--- a/libc/iconv/gconv_conf.c
+++ b/libc/iconv/gconv_conf.c
@@ -364,7 +364,7 @@ read_conf_file (const char *filename, const char *directory, size_t dir_len,
{
/* Note the file is opened with cancellation in the I/O functions
disabled. */
- FILE *fp = fopen (filename, "rc");
+ FILE *fp = fopen (filename, "rce");
char *line = NULL;
size_t line_len = 0;
static int modcounter;
diff --git a/libc/iconvdata/Makefile b/libc/iconvdata/Makefile
index 5f1893f97..d4a6a329b 100644
--- a/libc/iconvdata/Makefile
+++ b/libc/iconvdata/Makefile
@@ -134,7 +134,7 @@ LDFLAGS-libJISX0213.so = $(LDFLAGS-soname-fname)
distribute := gconv-modules extra-module.mk gap.awk gaptab.awk gconv.map \
gen-8bit.sh gen-8bit-gap.sh gen-8bit-gap-1.sh \
- TESTS $(filter-out testdata/CVS%, $(wildcard testdata/*)) \
+ TESTS $(wildcard testdata/*) \
TESTS2 run-iconv-test.sh tst-tables.sh tst-table.sh \
tst-table-charmap.sh tst-table-from.c tst-table-to.c \
EUC-JP.irreversible ISIRI-3342.irreversible SJIS.irreversible \
diff --git a/libc/include/alloca.h b/libc/include/alloca.h
index 83504135f..f741d25d5 100644
--- a/libc/include/alloca.h
+++ b/libc/include/alloca.h
@@ -20,9 +20,13 @@ libc_hidden_proto (__libc_alloca_cutoff)
#include <allocalim.h>
+#ifndef stackinfo_alloca_round
+# define stackinfo_alloca_round(l) (((l) + 15) & -16)
+#endif
+
#if _STACK_GROWS_DOWN
# define extend_alloca(buf, len, newlen) \
- (__typeof (buf)) ({ size_t __newlen = (newlen); \
+ (__typeof (buf)) ({ size_t __newlen = stackinfo_alloca_round (newlen); \
char *__newbuf = __alloca (__newlen); \
if (__newbuf + __newlen == (char *) buf) \
len += __newlen; \
@@ -31,10 +35,10 @@ libc_hidden_proto (__libc_alloca_cutoff)
__newbuf; })
#elif _STACK_GROWS_UP
# define extend_alloca(buf, len, newlen) \
- (__typeof (buf)) ({ size_t __newlen = (newlen); \
+ (__typeof (buf)) ({ size_t __newlen = stackinfo_alloca_round (newlen); \
char *__newbuf = __alloca (__newlen); \
char *__buf = (buf); \
- if (__buf + __newlen == __newbuf) \
+ if (__buf + len == __newbuf) \
{ \
len += __newlen; \
__newbuf = __buf; \
diff --git a/libc/include/ifaddrs.h b/libc/include/ifaddrs.h
index 50e4c48e8..e1c6cac11 100644
--- a/libc/include/ifaddrs.h
+++ b/libc/include/ifaddrs.h
@@ -21,8 +21,13 @@ struct in6addrinfo
extern void __check_pf (bool *seen_ipv4, bool *seen_ipv6,
struct in6addrinfo **in6ai, size_t *in6ailen)
attribute_hidden;
+extern void __free_in6ai (struct in6addrinfo *in6ai) attribute_hidden;
extern void __check_native (uint32_t a1_index, int *a1_native,
uint32_t a2_index, int *a2_native)
attribute_hidden;
+#ifdef IS_IN_nscd
+extern uint32_t __bump_nl_timestamp (void) attribute_hidden;
+#endif
+
#endif /* ifaddrs.h */
diff --git a/libc/include/unistd.h b/libc/include/unistd.h
index 5014e2e77..3231943b0 100644
--- a/libc/include/unistd.h
+++ b/libc/include/unistd.h
@@ -117,7 +117,7 @@ extern int __ttyname_r (int __fd, char *__buf, size_t __buflen);
extern int __isatty (int __fd);
extern int __link (__const char *__from, __const char *__to);
extern int __symlink (__const char *__from, __const char *__to);
-extern int __readlink (__const char *__path, char *__buf, size_t __len);
+extern ssize_t __readlink (__const char *__path, char *__buf, size_t __len);
extern int __unlink (__const char *__name);
extern int __gethostname (char *__name, size_t __len);
extern int __profil (unsigned short int *__sample_buffer, size_t __size,
diff --git a/libc/inet/check_pf.c b/libc/inet/check_pf.c
index b01543265..0fa34ccbb 100644
--- a/libc/inet/check_pf.c
+++ b/libc/inet/check_pf.c
@@ -1,5 +1,5 @@
/* Determine protocol families for which interfaces exist. Generic version.
- Copyright (C) 2003, 2006 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2006, 2011 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
@@ -54,3 +54,19 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6,
(void) freeifaddrs (ifa);
}
+
+
+void
+__free_in6ai (struct in6addrinfo *in6ai)
+{
+ /* Nothing to do. */
+}
+
+
+#ifdef IS_IN_nscd
+uint32_t
+__bump_nl_timestamp (void)
+{
+ return 0;
+}
+#endif
diff --git a/libc/inet/rcmd.c b/libc/inet/rcmd.c
index 343e0954d..5e18b1269 100644
--- a/libc/inet/rcmd.c
+++ b/libc/inet/rcmd.c
@@ -149,7 +149,7 @@ rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af)
__fxprintf(NULL, "rcmd: getaddrinfo: %s\n",
gai_strerror(error));
- return -1;
+ return -1;
}
pfd[0].events = POLLIN;
@@ -488,7 +488,7 @@ iruserfopen (const char *file, uid_t okuser)
cp = _("not regular file");
else
{
- res = fopen (file, "rc");
+ res = fopen (file, "rce");
if (!res)
cp = _("cannot open");
else if (__fxstat64 (_STAT_VER, fileno (res), &st) < 0)
@@ -574,8 +574,8 @@ ruserok2_sa (ra, ralen, superuser, ruser, luser, rhost)
if (hostf != NULL)
{
- isbad = __validuser2_sa (hostf, ra, ralen, luser, ruser, rhost);
- fclose (hostf);
+ isbad = __validuser2_sa (hostf, ra, ralen, luser, ruser, rhost);
+ fclose (hostf);
}
seteuid (uid);
@@ -618,7 +618,7 @@ iruserok_af (raddr, superuser, ruser, luser, af)
case AF_INET6:
ra.ss_family = AF_INET6;
memcpy (&(((struct sockaddr_in6 *)&ra)->sin6_addr), raddr,
- sizeof(struct in6_addr));
+ sizeof(struct in6_addr));
ralen = sizeof(struct sockaddr_in6);
break;
default:
@@ -778,7 +778,7 @@ __validuser2_sa(hostf, ra, ralen, luser, ruser, rhost)
while (__getline (&buf, &bufsize, hostf) > 0) {
buf[bufsize - 1] = '\0'; /* Make sure it's terminated. */
- p = buf;
+ p = buf;
/* Skip empty or comment lines */
if (__isempty (p)) {
diff --git a/libc/inet/ruserpass.c b/libc/inet/ruserpass.c
index e5b2caf4d..df423ba6e 100644
--- a/libc/inet/ruserpass.c
+++ b/libc/inet/ruserpass.c
@@ -114,7 +114,7 @@ ruserpass(host, aname, apass)
buf = alloca (strlen (hdir) + 8);
__stpcpy (__stpcpy (buf, hdir), "/.netrc");
- cfile = fopen(buf, "rc");
+ cfile = fopen(buf, "rce");
if (cfile == NULL) {
if (errno != ENOENT)
warn("%s", buf);
diff --git a/libc/intl/localealias.c b/libc/intl/localealias.c
index 735107abd..6cc69c84b 100644
--- a/libc/intl/localealias.c
+++ b/libc/intl/localealias.c
@@ -1,5 +1,5 @@
/* Handle aliases for locale names.
- Copyright (C) 1995-2002, 2003, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1995-2002, 2003, 2005, 2011 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
@@ -64,7 +64,7 @@ char *alloca ();
/* Rename the non ANSI C functions. This is required by the standard
because some ANSI C functions will require linking with this object
file and the name space must not be polluted. */
-# define strcasecmp __strcasecmp
+# define strcasecmp(s1, s2) __strcasecmp_l (s1, s2, _nl_C_locobj_ptr)
# ifndef mempcpy
# define mempcpy __mempcpy
@@ -221,7 +221,7 @@ read_alias_file (fname, fname_len)
/* Note the file is opened with cancellation in the I/O functions
disabled. */
- fp = fopen (full_fname, "rc");
+ fp = fopen (full_fname, "rce");
freea (full_fname);
if (fp == NULL)
return 0;
diff --git a/libc/libio/Versions b/libc/libio/Versions
index e7a96daca..8df89d215 100644
--- a/libc/libio/Versions
+++ b/libc/libio/Versions
@@ -58,7 +58,7 @@ libc {
gets;
# o*
- open_memstream; open_obstack_stream; obstack_printf; obstack_vprintf;
+ open_memstream; obstack_printf; obstack_vprintf;
# p*
pclose; popen; putc; putc_locked; putc_unlocked; putchar;
diff --git a/libc/libio/genops.c b/libc/libio/genops.c
index 5d21c4240..bb40c3435 100644
--- a/libc/libio/genops.c
+++ b/libc/libio/genops.c
@@ -826,7 +826,7 @@ _IO_flush_all_lockp (int do_lock)
int last_stamp;
#ifdef _IO_MTSAFE_IO
- _IO_cleanup_region_start_noarg (flush_cleanup);
+ __libc_cleanup_region_start (do_lock, flush_cleanup, 0);
if (do_lock)
_IO_lock_lock (list_all_lock);
#endif
@@ -866,7 +866,7 @@ _IO_flush_all_lockp (int do_lock)
#ifdef _IO_MTSAFE_IO
if (do_lock)
_IO_lock_unlock (list_all_lock);
- _IO_cleanup_region_end (0);
+ __libc_cleanup_region_end (0);
#endif
return result;
diff --git a/libc/libio/stdio.h b/libc/libio/stdio.h
index 59ecdefa6..8e23903c2 100644
--- a/libc/libio/stdio.h
+++ b/libc/libio/stdio.h
@@ -363,7 +363,7 @@ extern int fprintf (FILE *__restrict __stream,
extern int printf (__const char *__restrict __format, ...);
/* Write formatted output to S. */
extern int sprintf (char *__restrict __s,
- __const char *__restrict __format, ...) __THROW;
+ __const char *__restrict __format, ...) __THROWNL;
/* Write formatted output to S from argument list ARG.
@@ -378,7 +378,7 @@ extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
extern int vprintf (__const char *__restrict __format, _G_va_list __arg);
/* Write formatted output to S from argument list ARG. */
extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
- _G_va_list __arg) __THROW;
+ _G_va_list __arg) __THROWNL;
__END_NAMESPACE_STD
#if defined __USE_BSD || defined __USE_ISOC99 || defined __USE_UNIX98
@@ -386,11 +386,11 @@ __BEGIN_NAMESPACE_C99
/* Maximum chars of output to write in MAXLEN. */
extern int snprintf (char *__restrict __s, size_t __maxlen,
__const char *__restrict __format, ...)
- __THROW __attribute__ ((__format__ (__printf__, 3, 4)));
+ __THROWNL __attribute__ ((__format__ (__printf__, 3, 4)));
extern int vsnprintf (char *__restrict __s, size_t __maxlen,
__const char *__restrict __format, _G_va_list __arg)
- __THROW __attribute__ ((__format__ (__printf__, 3, 0)));
+ __THROWNL __attribute__ ((__format__ (__printf__, 3, 0)));
__END_NAMESPACE_C99
#endif
@@ -399,13 +399,13 @@ __END_NAMESPACE_C99
Store the address of the string in *PTR. */
extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f,
_G_va_list __arg)
- __THROW __attribute__ ((__format__ (__printf__, 2, 0))) __wur;
+ __THROWNL __attribute__ ((__format__ (__printf__, 2, 0))) __wur;
extern int __asprintf (char **__restrict __ptr,
__const char *__restrict __fmt, ...)
- __THROW __attribute__ ((__format__ (__printf__, 2, 3))) __wur;
+ __THROWNL __attribute__ ((__format__ (__printf__, 2, 3))) __wur;
extern int asprintf (char **__restrict __ptr,
__const char *__restrict __fmt, ...)
- __THROW __attribute__ ((__format__ (__printf__, 2, 3))) __wur;
+ __THROWNL __attribute__ ((__format__ (__printf__, 2, 3))) __wur;
#endif
#ifdef __USE_XOPEN2K8
@@ -895,11 +895,11 @@ struct obstack; /* See <obstack.h>. */
/* Write formatted output to an obstack. */
extern int obstack_printf (struct obstack *__restrict __obstack,
__const char *__restrict __format, ...)
- __THROW __attribute__ ((__format__ (__printf__, 2, 3)));
+ __THROWNL __attribute__ ((__format__ (__printf__, 2, 3)));
extern int obstack_vprintf (struct obstack *__restrict __obstack,
__const char *__restrict __format,
_G_va_list __args)
- __THROW __attribute__ ((__format__ (__printf__, 2, 0)));
+ __THROWNL __attribute__ ((__format__ (__printf__, 2, 0)));
#endif /* Use GNU. */
diff --git a/libc/libio/wfileops.c b/libc/libio/wfileops.c
index 386b06b79..8f21168fb 100644
--- a/libc/libio/wfileops.c
+++ b/libc/libio/wfileops.c
@@ -252,7 +252,7 @@ _IO_wfile_underflow (fp)
{
if (naccbuf != 0)
/* There are some bytes in the external buffer but they don't
- convert to anything. */
+ convert to anything. */
__set_errno (EILSEQ);
return WEOF;
}
@@ -340,7 +340,6 @@ static wint_t
_IO_wfile_underflow_mmap (_IO_FILE *fp)
{
struct _IO_codecvt *cd;
- enum __codecvt_result status;
const char *read_stop;
if (__builtin_expect (fp->_flags & _IO_NO_READS, 0))
@@ -379,12 +378,12 @@ _IO_wfile_underflow_mmap (_IO_FILE *fp)
fp->_wide_data->_IO_last_state = fp->_wide_data->_IO_state;
fp->_wide_data->_IO_read_base = fp->_wide_data->_IO_read_ptr =
fp->_wide_data->_IO_buf_base;
- status = (*cd->__codecvt_do_in) (cd, &fp->_wide_data->_IO_state,
- fp->_IO_read_ptr, fp->_IO_read_end,
- &read_stop,
- fp->_wide_data->_IO_read_ptr,
- fp->_wide_data->_IO_buf_end,
- &fp->_wide_data->_IO_read_end);
+ (*cd->__codecvt_do_in) (cd, &fp->_wide_data->_IO_state,
+ fp->_IO_read_ptr, fp->_IO_read_end,
+ &read_stop,
+ fp->_wide_data->_IO_read_ptr,
+ fp->_wide_data->_IO_buf_end,
+ &fp->_wide_data->_IO_read_end);
fp->_IO_read_ptr = (char *) read_stop;
@@ -513,9 +512,9 @@ _IO_wfile_sync (fp)
else
{
/* We have to find out the hard way how much to back off.
- To do this we determine how much input we needed to
- generate the wide characters up to the current reading
- position. */
+ To do this we determine how much input we needed to
+ generate the wide characters up to the current reading
+ position. */
int nread;
fp->_wide_data->_IO_state = fp->_wide_data->_IO_last_state;
@@ -625,8 +624,8 @@ _IO_wfile_seekoff (fp, offset, dir, mode)
case _IO_seek_cur:
/* Adjust for read-ahead (bytes is buffer). To do this we must
- find out which position in the external buffer corresponds to
- the current position in the internal buffer. */
+ find out which position in the external buffer corresponds to
+ the current position in the internal buffer. */
cv = fp->_codecvt;
clen = (*cv->__codecvt_do_encoding) (cv);
diff --git a/libc/locale/findlocale.c b/libc/locale/findlocale.c
index 2fec9a70d..6c888f00c 100644
--- a/libc/locale/findlocale.c
+++ b/libc/locale/findlocale.c
@@ -258,7 +258,8 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len,
}
/* Determine whether the user wants transliteration or not. */
- if (modifier != NULL && __strcasecmp (modifier, "TRANSLIT") == 0)
+ if (modifier != NULL
+ && __strcasecmp_l (modifier, "TRANSLIT", _nl_C_locobj_ptr) == 0)
((struct __locale_data *) locale_file->data)->use_translit = 1;
/* Increment the usage count. */
diff --git a/libc/locale/loadarchive.c b/libc/locale/loadarchive.c
index 663202e54..47a6127a5 100644
--- a/libc/locale/loadarchive.c
+++ b/libc/locale/loadarchive.c
@@ -1,5 +1,5 @@
/* Code to load locale data from the locale archive file.
- Copyright (C) 2002, 2003, 2005, 2010 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2005, 2010, 2011 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
@@ -203,7 +203,7 @@ _nl_load_locale_from_archive (int category, const char **namep)
archmapped = &headmap;
/* The archive has never been opened. */
- fd = open_not_cancel_2 (archfname, O_RDONLY|O_LARGEFILE);
+ fd = open_not_cancel_2 (archfname, O_RDONLY|O_LARGEFILE|O_CLOEXEC);
if (fd < 0)
/* Cannot open the archive, for whatever reason. */
return NULL;
@@ -394,7 +394,8 @@ _nl_load_locale_from_archive (int category, const char **namep)
if (fd == -1)
{
struct stat64 st;
- fd = open_not_cancel_2 (archfname, O_RDONLY|O_LARGEFILE);
+ fd = open_not_cancel_2 (archfname,
+ O_RDONLY|O_LARGEFILE|O_CLOEXEC);
if (fd == -1)
/* Cannot open the archive, for whatever reason. */
return NULL;
diff --git a/libc/locale/loadlocale.c b/libc/locale/loadlocale.c
index 61e6f7f0a..d33a49413 100644
--- a/libc/locale/loadlocale.c
+++ b/libc/locale/loadlocale.c
@@ -1,5 +1,5 @@
/* Functions to read locale data files.
- Copyright (C) 1996-2004, 2005, 2006, 2010 Free Software Foundation, Inc.
+ Copyright (C) 1996-2004, 2005, 2006, 2010, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@@ -173,7 +173,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category)
file->decided = 1;
file->data = NULL;
- fd = open_not_cancel_2 (file->filename, O_RDONLY);
+ fd = open_not_cancel_2 (file->filename, O_RDONLY | O_CLOEXEC);
if (__builtin_expect (fd, 0) < 0)
/* Cannot open the file. */
return;
@@ -201,7 +201,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category)
_nl_category_names.str + _nl_category_name_idxs[category],
_nl_category_name_sizes[category] + 1);
- fd = open_not_cancel_2 (newp, O_RDONLY);
+ fd = open_not_cancel_2 (newp, O_RDONLY | O_CLOEXEC);
if (__builtin_expect (fd, 0) < 0)
return;
diff --git a/libc/localedata/ChangeLog b/libc/localedata/ChangeLog
index dc2b8a04b..43bd3bf17 100644
--- a/libc/localedata/ChangeLog
+++ b/libc/localedata/ChangeLog
@@ -1,3 +1,36 @@
+2011-11-17 Ulrich Drepper <drepper@gmail.com>
+
+ * Makefile (charmaps): Not need to filter out any of the VC
+ directories.
+ (locales): Likewise.
+
+2011-11-11 Ulrich Drepper <drepper@gmail.com>
+
+ [BZ #13147]
+ * locales/de_AT: Use de_DE for LC_NUMERIC.
+ * locales/es_BO: Use es_ES for LC_MESSAGES and LC_NUMERIC.
+ * locales/es_CL: Likewise.
+ * locales/es_CO: Likewise.
+ * locales/es_DO: Likewise.
+ * locales/es_EC: Likewise.
+ * locales/es_GT: Likewise.
+ * locales/es_HN: Likewise.
+ * locales/es_MX: Likewise.
+ * locales/es_NI: Likewise.
+ * locales/es_PA: Likewise.
+ * locales/es_PE: Likewise.
+ * locales/es_PR: Likewise.
+ * locales/es_PY: Likewise.
+ * locales/es_SV: Likewise.
+ * locales/es_UY: Likewise.
+ * locales/es_VE: Likewise.
+ * locales/es_ES: Fix LC_NUMERIC.
+ * locales/es_CR: Use es_ES for LC_MESSAGES.
+ * locales/fr_BE: Actually use grouping in LC_NUMERIC.
+ * locales/fr_CA: Use fr_FR for LC_MESSAGES and LC_NUMERIC.
+ * locales/fr_CH: Use de_CH for LC_NUMERIC.
+ * locales/fr_LU: Use same grouping in LC_NUMERIC as in LC_MONETARY.
+
2011-10-15 Ulrich Drepper <drepper@gmail.com>
* Makefile (tests): Add tst-setlocale2:
diff --git a/libc/localedata/Makefile b/libc/localedata/Makefile
index 6830b1d71..26b80abaf 100644
--- a/libc/localedata/Makefile
+++ b/libc/localedata/Makefile
@@ -25,13 +25,9 @@ all: # Make this the default target; it will be defined in Rules.
include ../option-groups.mak
# List with all available character set descriptions.
-all-charmaps := $(filter-out $(addprefix charmaps/, CVS RCS SCCS %~), \
- $(wildcard charmaps/[A-I]*) \
- $(wildcard charmaps/[J-Z]*))
+all-charmaps := $(wildcard charmaps/[A-I]*) $(wildcard charmaps/[J-Z]*)
-# List with all available character set descriptions.
-all-locales := $(filter-out $(addprefix locales/, CVS RCS SCCS %~), \
- $(wildcard locales/*))
+all-locales := $(wildcard locales/*)
# If the EGLIBC_LOCALES option group is not enabled, trim the
# list of charmap and locale source files.
diff --git a/libc/localedata/locales/de_AT b/libc/localedata/locales/de_AT
index 4e0b7fb15..b3adf907c 100644
--- a/libc/localedata/locales/de_AT
+++ b/libc/localedata/locales/de_AT
@@ -78,41 +78,39 @@ n_sign_posn 1
END LC_MONETARY
LC_NUMERIC
-decimal_point "<U002C>"
-thousands_sep ""
-grouping 0;0
+copy "de_DE"
END LC_NUMERIC
LC_TIME
abday "<U0053><U006F><U006E>";"<U004D><U006F><U006E>";/
- "<U0044><U0069><U0065>";"<U004D><U0069><U0074>";/
- "<U0044><U006F><U006E>";"<U0046><U0072><U0065>";/
- "<U0053><U0061><U006D>"
+ "<U0044><U0069><U0065>";"<U004D><U0069><U0074>";/
+ "<U0044><U006F><U006E>";"<U0046><U0072><U0065>";/
+ "<U0053><U0061><U006D>"
day "<U0053><U006F><U006E><U006E><U0074><U0061><U0067>";/
- "<U004D><U006F><U006E><U0074><U0061><U0067>";/
- "<U0044><U0069><U0065><U006E><U0073><U0074><U0061><U0067>";/
- "<U004D><U0069><U0074><U0074><U0077><U006F><U0063><U0068>";/
- "<U0044><U006F><U006E><U006E><U0065><U0072><U0073><U0074><U0061><U0067>";/
- "<U0046><U0072><U0065><U0069><U0074><U0061><U0067>";/
- "<U0053><U0061><U006D><U0073><U0074><U0061><U0067>"
+ "<U004D><U006F><U006E><U0074><U0061><U0067>";/
+ "<U0044><U0069><U0065><U006E><U0073><U0074><U0061><U0067>";/
+ "<U004D><U0069><U0074><U0074><U0077><U006F><U0063><U0068>";/
+ "<U0044><U006F><U006E><U006E><U0065><U0072><U0073><U0074><U0061><U0067>";/
+ "<U0046><U0072><U0065><U0069><U0074><U0061><U0067>";/
+ "<U0053><U0061><U006D><U0073><U0074><U0061><U0067>"
abmon "<U004A><U00E4><U006E>";"<U0046><U0065><U0062>";/
- "<U004D><U00E4><U0072>";"<U0041><U0070><U0072>";/
- "<U004D><U0061><U0069>";"<U004A><U0075><U006E>";/
- "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
- "<U0053><U0065><U0070>";"<U004F><U006B><U0074>";/
- "<U004E><U006F><U0076>";"<U0044><U0065><U007A>"
+ "<U004D><U00E4><U0072>";"<U0041><U0070><U0072>";/
+ "<U004D><U0061><U0069>";"<U004A><U0075><U006E>";/
+ "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
+ "<U0053><U0065><U0070>";"<U004F><U006B><U0074>";/
+ "<U004E><U006F><U0076>";"<U0044><U0065><U007A>"
mon "<U004A><U00E4><U006E><U006E><U0065><U0072>";/
- "<U0046><U0065><U0062><U0065><U0072>";/
- "<U004D><U00E4><U0072><U007A>";/
- "<U0041><U0070><U0072><U0069><U006C>";/
- "<U004D><U0061><U0069>";/
- "<U004A><U0075><U006E><U0069>";/
- "<U004A><U0075><U006C><U0069>";/
- "<U0041><U0075><U0067><U0075><U0073><U0074>";/
- "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
- "<U004F><U006B><U0074><U006F><U0062><U0065><U0072>";/
- "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
- "<U0044><U0065><U007A><U0065><U006D><U0062><U0065><U0072>"
+ "<U0046><U0065><U0062><U0065><U0072>";/
+ "<U004D><U00E4><U0072><U007A>";/
+ "<U0041><U0070><U0072><U0069><U006C>";/
+ "<U004D><U0061><U0069>";/
+ "<U004A><U0075><U006E><U0069>";/
+ "<U004A><U0075><U006C><U0069>";/
+ "<U0041><U0075><U0067><U0075><U0073><U0074>";/
+ "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
+ "<U004F><U006B><U0074><U006F><U0062><U0065><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>"
t_fmt "<U0025><U0054>"
diff --git a/libc/localedata/locales/es_BO b/libc/localedata/locales/es_BO
index c77bb1d5d..69643115f 100644
--- a/libc/localedata/locales/es_BO
+++ b/libc/localedata/locales/es_BO
@@ -56,8 +56,7 @@ copy "es_ES"
END LC_CTYPE
LC_MESSAGES
-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+copy "es_ES"
END LC_MESSAGES
LC_MONETARY
@@ -79,41 +78,39 @@ n_sign_posn 1
END LC_MONETARY
LC_NUMERIC
-decimal_point "<U002C>"
-thousands_sep ""
-grouping 0;0
+copy "es_ES"
END LC_NUMERIC
LC_TIME
abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
- "<U0073><U00E1><U0062>"
+ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+ "<U0073><U00E1><U0062>"
day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
- "<U006C><U0075><U006E><U0065><U0073>";/
- "<U006D><U0061><U0072><U0074><U0065><U0073>";/
- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
- "<U006A><U0075><U0065><U0076><U0065><U0073>";/
- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
- "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ "<U006C><U0075><U006E><U0065><U0073>";/
+ "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+ "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+ "<U0073><U00E1><U0062><U0061><U0064><U006F>"
abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
mon "<U0065><U006E><U0065><U0072><U006F>";/
- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
- "<U006D><U0061><U0072><U007A><U006F>";/
- "<U0061><U0062><U0072><U0069><U006C>";/
- "<U006D><U0061><U0079><U006F>";/
- "<U006A><U0075><U006E><U0069><U006F>";/
- "<U006A><U0075><U006C><U0069><U006F>";/
- "<U0061><U0067><U006F><U0073><U0074><U006F>";/
- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+ "<U006D><U0061><U0072><U007A><U006F>";/
+ "<U0061><U0062><U0072><U0069><U006C>";/
+ "<U006D><U0061><U0079><U006F>";/
+ "<U006A><U0075><U006E><U0069><U006F>";/
+ "<U006A><U0075><U006C><U0069><U006F>";/
+ "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
t_fmt "<U0025><U0054>"
diff --git a/libc/localedata/locales/es_CL b/libc/localedata/locales/es_CL
index ff44fa8c5..fe5b6d95e 100644
--- a/libc/localedata/locales/es_CL
+++ b/libc/localedata/locales/es_CL
@@ -56,8 +56,7 @@ copy "es_ES"
END LC_CTYPE
LC_MESSAGES
-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+copy "es_ES"
END LC_MESSAGES
LC_MONETARY
@@ -79,41 +78,39 @@ n_sign_posn 1
END LC_MONETARY
LC_NUMERIC
-decimal_point "<U002C>"
-thousands_sep ""
-grouping 0;0
+copy "es_ES"
END LC_NUMERIC
LC_TIME
abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
- "<U0073><U00E1><U0062>"
+ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+ "<U0073><U00E1><U0062>"
day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
- "<U006C><U0075><U006E><U0065><U0073>";/
- "<U006D><U0061><U0072><U0074><U0065><U0073>";/
- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
- "<U006A><U0075><U0065><U0076><U0065><U0073>";/
- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
- "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ "<U006C><U0075><U006E><U0065><U0073>";/
+ "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+ "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+ "<U0073><U00E1><U0062><U0061><U0064><U006F>"
abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
mon "<U0065><U006E><U0065><U0072><U006F>";/
- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
- "<U006D><U0061><U0072><U007A><U006F>";/
- "<U0061><U0062><U0072><U0069><U006C>";/
- "<U006D><U0061><U0079><U006F>";/
- "<U006A><U0075><U006E><U0069><U006F>";/
- "<U006A><U0075><U006C><U0069><U006F>";/
- "<U0061><U0067><U006F><U0073><U0074><U006F>";/
- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+ "<U006D><U0061><U0072><U007A><U006F>";/
+ "<U0061><U0062><U0072><U0069><U006C>";/
+ "<U006D><U0061><U0079><U006F>";/
+ "<U006A><U0075><U006E><U0069><U006F>";/
+ "<U006A><U0075><U006C><U0069><U006F>";/
+ "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
t_fmt "<U0025><U0054>"
diff --git a/libc/localedata/locales/es_CO b/libc/localedata/locales/es_CO
index 4c1de136b..5db5d6dcf 100644
--- a/libc/localedata/locales/es_CO
+++ b/libc/localedata/locales/es_CO
@@ -56,8 +56,7 @@ copy "es_ES"
END LC_CTYPE
LC_MESSAGES
-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+copy "es_ES"
END LC_MESSAGES
LC_MONETARY
@@ -79,41 +78,39 @@ n_sign_posn 1
END LC_MONETARY
LC_NUMERIC
-decimal_point "<U002C>"
-thousands_sep ""
-grouping 0;0
+copy "es_ES"
END LC_NUMERIC
LC_TIME
abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
- "<U0073><U00E1><U0062>"
+ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+ "<U0073><U00E1><U0062>"
day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
- "<U006C><U0075><U006E><U0065><U0073>";/
- "<U006D><U0061><U0072><U0074><U0065><U0073>";/
- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
- "<U006A><U0075><U0065><U0076><U0065><U0073>";/
- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
- "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ "<U006C><U0075><U006E><U0065><U0073>";/
+ "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+ "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+ "<U0073><U00E1><U0062><U0061><U0064><U006F>"
abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
mon "<U0065><U006E><U0065><U0072><U006F>";/
- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
- "<U006D><U0061><U0072><U007A><U006F>";/
- "<U0061><U0062><U0072><U0069><U006C>";/
- "<U006D><U0061><U0079><U006F>";/
- "<U006A><U0075><U006E><U0069><U006F>";/
- "<U006A><U0075><U006C><U0069><U006F>";/
- "<U0061><U0067><U006F><U0073><U0074><U006F>";/
- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+ "<U006D><U0061><U0072><U007A><U006F>";/
+ "<U0061><U0062><U0072><U0069><U006C>";/
+ "<U006D><U0061><U0079><U006F>";/
+ "<U006A><U0075><U006E><U0069><U006F>";/
+ "<U006A><U0075><U006C><U0069><U006F>";/
+ "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
t_fmt "<U0025><U0054>"
diff --git a/libc/localedata/locales/es_CR b/libc/localedata/locales/es_CR
index 6cff56062..f998c8624 100644
--- a/libc/localedata/locales/es_CR
+++ b/libc/localedata/locales/es_CR
@@ -47,8 +47,7 @@ copy "es_ES"
END LC_CTYPE
LC_MESSAGES
-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+copy "es_ES"
END LC_MESSAGES
LC_MONETARY
@@ -79,34 +78,34 @@ END LC_NUMERIC
LC_TIME
abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
- "<U0073><U00E1><U0062>"
+ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+ "<U0073><U00E1><U0062>"
day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
- "<U006C><U0075><U006E><U0065><U0073>";/
- "<U006D><U0061><U0072><U0074><U0065><U0073>";/
- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
- "<U006A><U0075><U0065><U0076><U0065><U0073>";/
- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
- "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ "<U006C><U0075><U006E><U0065><U0073>";/
+ "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+ "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+ "<U0073><U00E1><U0062><U0061><U0064><U006F>"
abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
mon "<U0065><U006E><U0065><U0072><U006F>";/
- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
- "<U006D><U0061><U0072><U007A><U006F>";/
- "<U0061><U0062><U0072><U0069><U006C>";/
- "<U006D><U0061><U0079><U006F>";/
- "<U006A><U0075><U006E><U0069><U006F>";/
- "<U006A><U0075><U006C><U0069><U006F>";/
- "<U0061><U0067><U006F><U0073><U0074><U006F>";/
- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+ "<U006D><U0061><U0072><U007A><U006F>";/
+ "<U0061><U0062><U0072><U0069><U006C>";/
+ "<U006D><U0061><U0079><U006F>";/
+ "<U006A><U0075><U006E><U0069><U006F>";/
+ "<U006A><U0075><U006C><U0069><U006F>";/
+ "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
t_fmt "<U0025><U0054>"
diff --git a/libc/localedata/locales/es_DO b/libc/localedata/locales/es_DO
index fcd0f9e5a..7cf54cf3a 100644
--- a/libc/localedata/locales/es_DO
+++ b/libc/localedata/locales/es_DO
@@ -56,8 +56,7 @@ copy "es_ES"
END LC_CTYPE
LC_MESSAGES
-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+copy "es_ES"
END LC_MESSAGES
LC_MONETARY
@@ -79,41 +78,39 @@ n_sign_posn 1
END LC_MONETARY
LC_NUMERIC
-decimal_point "<U002E>"
-thousands_sep ""
-grouping 0;0
+copy "es_ES"
END LC_NUMERIC
LC_TIME
abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
- "<U0073><U00E1><U0062>"
+ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+ "<U0073><U00E1><U0062>"
day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
- "<U006C><U0075><U006E><U0065><U0073>";/
- "<U006D><U0061><U0072><U0074><U0065><U0073>";/
- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
- "<U006A><U0075><U0065><U0076><U0065><U0073>";/
- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
- "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ "<U006C><U0075><U006E><U0065><U0073>";/
+ "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+ "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+ "<U0073><U00E1><U0062><U0061><U0064><U006F>"
abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
mon "<U0065><U006E><U0065><U0072><U006F>";/
- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
- "<U006D><U0061><U0072><U007A><U006F>";/
- "<U0061><U0062><U0072><U0069><U006C>";/
- "<U006D><U0061><U0079><U006F>";/
- "<U006A><U0075><U006E><U0069><U006F>";/
- "<U006A><U0075><U006C><U0069><U006F>";/
- "<U0061><U0067><U006F><U0073><U0074><U006F>";/
- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+ "<U006D><U0061><U0072><U007A><U006F>";/
+ "<U0061><U0062><U0072><U0069><U006C>";/
+ "<U006D><U0061><U0079><U006F>";/
+ "<U006A><U0075><U006E><U0069><U006F>";/
+ "<U006A><U0075><U006C><U0069><U006F>";/
+ "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
t_fmt "<U0025><U0054>"
diff --git a/libc/localedata/locales/es_EC b/libc/localedata/locales/es_EC
index b8d4c8ff3..480f6ef78 100644
--- a/libc/localedata/locales/es_EC
+++ b/libc/localedata/locales/es_EC
@@ -56,8 +56,7 @@ copy "es_ES"
END LC_CTYPE
LC_MESSAGES
-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+copy "es_ES"
END LC_MESSAGES
LC_MONETARY
@@ -79,41 +78,39 @@ n_sign_posn 1
END LC_MONETARY
LC_NUMERIC
-decimal_point "<U002C>"
-thousands_sep ""
-grouping 0;0
+copy "es_ES"
END LC_NUMERIC
LC_TIME
abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
- "<U0073><U00E1><U0062>"
+ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+ "<U0073><U00E1><U0062>"
day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
- "<U006C><U0075><U006E><U0065><U0073>";/
- "<U006D><U0061><U0072><U0074><U0065><U0073>";/
- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
- "<U006A><U0075><U0065><U0076><U0065><U0073>";/
- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
- "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ "<U006C><U0075><U006E><U0065><U0073>";/
+ "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+ "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+ "<U0073><U00E1><U0062><U0061><U0064><U006F>"
abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
mon "<U0065><U006E><U0065><U0072><U006F>";/
- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
- "<U006D><U0061><U0072><U007A><U006F>";/
- "<U0061><U0062><U0072><U0069><U006C>";/
- "<U006D><U0061><U0079><U006F>";/
- "<U006A><U0075><U006E><U0069><U006F>";/
- "<U006A><U0075><U006C><U0069><U006F>";/
- "<U0061><U0067><U006F><U0073><U0074><U006F>";/
- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+ "<U006D><U0061><U0072><U007A><U006F>";/
+ "<U0061><U0062><U0072><U0069><U006C>";/
+ "<U006D><U0061><U0079><U006F>";/
+ "<U006A><U0075><U006E><U0069><U006F>";/
+ "<U006A><U0075><U006C><U0069><U006F>";/
+ "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
t_fmt "<U0025><U0054>"
diff --git a/libc/localedata/locales/es_ES b/libc/localedata/locales/es_ES
index fba412536..fcf90cbdb 100644
--- a/libc/localedata/locales/es_ES
+++ b/libc/localedata/locales/es_ES
@@ -85,40 +85,40 @@ END LC_MONETARY
LC_NUMERIC
decimal_point "<U002C>"
-thousands_sep ""
-grouping 0;0
+thousands_sep "<U002E>"
+grouping 3;3
END LC_NUMERIC
LC_TIME
abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
- "<U0073><U00E1><U0062>"
+ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+ "<U0073><U00E1><U0062>"
day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
- "<U006C><U0075><U006E><U0065><U0073>";/
- "<U006D><U0061><U0072><U0074><U0065><U0073>";/
- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
- "<U006A><U0075><U0065><U0076><U0065><U0073>";/
- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
- "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ "<U006C><U0075><U006E><U0065><U0073>";/
+ "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+ "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+ "<U0073><U00E1><U0062><U0061><U0064><U006F>"
abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
mon "<U0065><U006E><U0065><U0072><U006F>";/
- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
- "<U006D><U0061><U0072><U007A><U006F>";/
- "<U0061><U0062><U0072><U0069><U006C>";/
- "<U006D><U0061><U0079><U006F>";/
- "<U006A><U0075><U006E><U0069><U006F>";/
- "<U006A><U0075><U006C><U0069><U006F>";/
- "<U0061><U0067><U006F><U0073><U0074><U006F>";/
- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+ "<U006D><U0061><U0072><U007A><U006F>";/
+ "<U0061><U0062><U0072><U0069><U006C>";/
+ "<U006D><U0061><U0079><U006F>";/
+ "<U006A><U0075><U006E><U0069><U006F>";/
+ "<U006A><U0075><U006C><U0069><U006F>";/
+ "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
t_fmt "<U0025><U0054>"
diff --git a/libc/localedata/locales/es_GT b/libc/localedata/locales/es_GT
index 455b076c4..49d369f74 100644
--- a/libc/localedata/locales/es_GT
+++ b/libc/localedata/locales/es_GT
@@ -55,8 +55,7 @@ copy "es_ES"
END LC_CTYPE
LC_MESSAGES
-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+copy "es_ES"
END LC_MESSAGES
LC_MONETARY
@@ -78,9 +77,7 @@ n_sign_posn 1
END LC_MONETARY
LC_NUMERIC
-decimal_point "<U002E>"
-thousands_sep ""
-grouping 0;0
+copy "es_ES"
END LC_NUMERIC
LC_TIME
diff --git a/libc/localedata/locales/es_HN b/libc/localedata/locales/es_HN
index 53892b4c5..a80918846 100644
--- a/libc/localedata/locales/es_HN
+++ b/libc/localedata/locales/es_HN
@@ -56,8 +56,7 @@ copy "es_ES"
END LC_CTYPE
LC_MESSAGES
-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+copy "es_ES"
END LC_MESSAGES
LC_MONETARY
@@ -79,41 +78,39 @@ n_sign_posn 1
END LC_MONETARY
LC_NUMERIC
-decimal_point "<U002E>"
-thousands_sep ""
-grouping 0;0
+copy "es_ES"
END LC_NUMERIC
LC_TIME
abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
- "<U0073><U00E1><U0062>"
+ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+ "<U0073><U00E1><U0062>"
day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
- "<U006C><U0075><U006E><U0065><U0073>";/
- "<U006D><U0061><U0072><U0074><U0065><U0073>";/
- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
- "<U006A><U0075><U0065><U0076><U0065><U0073>";/
- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
- "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ "<U006C><U0075><U006E><U0065><U0073>";/
+ "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+ "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+ "<U0073><U00E1><U0062><U0061><U0064><U006F>"
abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
mon "<U0065><U006E><U0065><U0072><U006F>";/
- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
- "<U006D><U0061><U0072><U007A><U006F>";/
- "<U0061><U0062><U0072><U0069><U006C>";/
- "<U006D><U0061><U0079><U006F>";/
- "<U006A><U0075><U006E><U0069><U006F>";/
- "<U006A><U0075><U006C><U0069><U006F>";/
- "<U0061><U0067><U006F><U0073><U0074><U006F>";/
- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+ "<U006D><U0061><U0072><U007A><U006F>";/
+ "<U0061><U0062><U0072><U0069><U006C>";/
+ "<U006D><U0061><U0079><U006F>";/
+ "<U006A><U0075><U006E><U0069><U006F>";/
+ "<U006A><U0075><U006C><U0069><U006F>";/
+ "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
t_fmt "<U0025><U0054>"
diff --git a/libc/localedata/locales/es_MX b/libc/localedata/locales/es_MX
index 91dac23d8..7a1cccc96 100644
--- a/libc/localedata/locales/es_MX
+++ b/libc/localedata/locales/es_MX
@@ -56,8 +56,7 @@ copy "es_ES"
END LC_CTYPE
LC_MESSAGES
-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+copy "es_ES"
END LC_MESSAGES
LC_MONETARY
@@ -79,41 +78,39 @@ n_sign_posn 1
END LC_MONETARY
LC_NUMERIC
-decimal_point "<U002E>"
-thousands_sep ""
-grouping 0;0
+copy "es_ES"
END LC_NUMERIC
LC_TIME
abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
- "<U0073><U00E1><U0062>"
+ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+ "<U0073><U00E1><U0062>"
day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
- "<U006C><U0075><U006E><U0065><U0073>";/
- "<U006D><U0061><U0072><U0074><U0065><U0073>";/
- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
- "<U006A><U0075><U0065><U0076><U0065><U0073>";/
- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
- "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ "<U006C><U0075><U006E><U0065><U0073>";/
+ "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+ "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+ "<U0073><U00E1><U0062><U0061><U0064><U006F>"
abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
mon "<U0065><U006E><U0065><U0072><U006F>";/
- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
- "<U006D><U0061><U0072><U007A><U006F>";/
- "<U0061><U0062><U0072><U0069><U006C>";/
- "<U006D><U0061><U0079><U006F>";/
- "<U006A><U0075><U006E><U0069><U006F>";/
- "<U006A><U0075><U006C><U0069><U006F>";/
- "<U0061><U0067><U006F><U0073><U0074><U006F>";/
- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+ "<U006D><U0061><U0072><U007A><U006F>";/
+ "<U0061><U0062><U0072><U0069><U006C>";/
+ "<U006D><U0061><U0079><U006F>";/
+ "<U006A><U0075><U006E><U0069><U006F>";/
+ "<U006A><U0075><U006C><U0069><U006F>";/
+ "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
t_fmt "<U0025><U0054>"
diff --git a/libc/localedata/locales/es_NI b/libc/localedata/locales/es_NI
index c0c395fe0..207f2dabf 100644
--- a/libc/localedata/locales/es_NI
+++ b/libc/localedata/locales/es_NI
@@ -47,8 +47,7 @@ copy "es_ES"
END LC_CTYPE
LC_MESSAGES
-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+copy "es_ES"
END LC_MESSAGES
LC_MONETARY
@@ -70,9 +69,7 @@ n_sign_posn 1
END LC_MONETARY
LC_NUMERIC
-decimal_point "<U002E>"
-thousands_sep ""
-grouping 0;0
+copy "es_ES"
END LC_NUMERIC
LC_TIME
diff --git a/libc/localedata/locales/es_PA b/libc/localedata/locales/es_PA
index 10d6d8233..ae5cd3a4f 100644
--- a/libc/localedata/locales/es_PA
+++ b/libc/localedata/locales/es_PA
@@ -56,8 +56,7 @@ copy "es_ES"
END LC_CTYPE
LC_MESSAGES
-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+copy "es_ES"
END LC_MESSAGES
LC_MONETARY
@@ -79,41 +78,39 @@ n_sign_posn 1
END LC_MONETARY
LC_NUMERIC
-decimal_point "<U002E>"
-thousands_sep ""
-grouping 0;0
+copy "es_ES"
END LC_NUMERIC
LC_TIME
abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
- "<U0073><U00E1><U0062>"
+ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+ "<U0073><U00E1><U0062>"
day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
- "<U006C><U0075><U006E><U0065><U0073>";/
- "<U006D><U0061><U0072><U0074><U0065><U0073>";/
- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
- "<U006A><U0075><U0065><U0076><U0065><U0073>";/
- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
- "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ "<U006C><U0075><U006E><U0065><U0073>";/
+ "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+ "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+ "<U0073><U00E1><U0062><U0061><U0064><U006F>"
abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
mon "<U0065><U006E><U0065><U0072><U006F>";/
- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
- "<U006D><U0061><U0072><U007A><U006F>";/
- "<U0061><U0062><U0072><U0069><U006C>";/
- "<U006D><U0061><U0079><U006F>";/
- "<U006A><U0075><U006E><U0069><U006F>";/
- "<U006A><U0075><U006C><U0069><U006F>";/
- "<U0061><U0067><U006F><U0073><U0074><U006F>";/
- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+ "<U006D><U0061><U0072><U007A><U006F>";/
+ "<U0061><U0062><U0072><U0069><U006C>";/
+ "<U006D><U0061><U0079><U006F>";/
+ "<U006A><U0075><U006E><U0069><U006F>";/
+ "<U006A><U0075><U006C><U0069><U006F>";/
+ "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
t_fmt "<U0025><U0054>"
diff --git a/libc/localedata/locales/es_PE b/libc/localedata/locales/es_PE
index 634c9272d..da1a64036 100644
--- a/libc/localedata/locales/es_PE
+++ b/libc/localedata/locales/es_PE
@@ -56,8 +56,7 @@ copy "es_ES"
END LC_CTYPE
LC_MESSAGES
-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+copy "es_ES"
END LC_MESSAGES
LC_MONETARY
@@ -79,41 +78,39 @@ n_sign_posn 1
END LC_MONETARY
LC_NUMERIC
-decimal_point "<U002E>"
-thousands_sep ""
-grouping 0;0
+copy "es_ES"
END LC_NUMERIC
LC_TIME
abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
- "<U0073><U00E1><U0062>"
+ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+ "<U0073><U00E1><U0062>"
day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
- "<U006C><U0075><U006E><U0065><U0073>";/
- "<U006D><U0061><U0072><U0074><U0065><U0073>";/
- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
- "<U006A><U0075><U0065><U0076><U0065><U0073>";/
- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
- "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ "<U006C><U0075><U006E><U0065><U0073>";/
+ "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+ "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+ "<U0073><U00E1><U0062><U0061><U0064><U006F>"
abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
mon "<U0065><U006E><U0065><U0072><U006F>";/
- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
- "<U006D><U0061><U0072><U007A><U006F>";/
- "<U0061><U0062><U0072><U0069><U006C>";/
- "<U006D><U0061><U0079><U006F>";/
- "<U006A><U0075><U006E><U0069><U006F>";/
- "<U006A><U0075><U006C><U0069><U006F>";/
- "<U0061><U0067><U006F><U0073><U0074><U006F>";/
- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+ "<U006D><U0061><U0072><U007A><U006F>";/
+ "<U0061><U0062><U0072><U0069><U006C>";/
+ "<U006D><U0061><U0079><U006F>";/
+ "<U006A><U0075><U006E><U0069><U006F>";/
+ "<U006A><U0075><U006C><U0069><U006F>";/
+ "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
t_fmt "<U0025><U0054>"
diff --git a/libc/localedata/locales/es_PR b/libc/localedata/locales/es_PR
index 546b6c20e..53496d48c 100644
--- a/libc/localedata/locales/es_PR
+++ b/libc/localedata/locales/es_PR
@@ -47,8 +47,7 @@ copy "es_ES"
END LC_CTYPE
LC_MESSAGES
-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+copy "es_ES"
END LC_MESSAGES
LC_MONETARY
@@ -70,41 +69,39 @@ n_sign_posn 1
END LC_MONETARY
LC_NUMERIC
-decimal_point "<U002E>"
-thousands_sep ""
-grouping 0;0
+copy "es_ES"
END LC_NUMERIC
LC_TIME
abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
- "<U0073><U00E1><U0062>"
+ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+ "<U0073><U00E1><U0062>"
day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
- "<U006C><U0075><U006E><U0065><U0073>";/
- "<U006D><U0061><U0072><U0074><U0065><U0073>";/
- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
- "<U006A><U0075><U0065><U0076><U0065><U0073>";/
- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
- "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ "<U006C><U0075><U006E><U0065><U0073>";/
+ "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+ "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+ "<U0073><U00E1><U0062><U0061><U0064><U006F>"
abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
mon "<U0065><U006E><U0065><U0072><U006F>";/
- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
- "<U006D><U0061><U0072><U007A><U006F>";/
- "<U0061><U0062><U0072><U0069><U006C>";/
- "<U006D><U0061><U0079><U006F>";/
- "<U006A><U0075><U006E><U0069><U006F>";/
- "<U006A><U0075><U006C><U0069><U006F>";/
- "<U0061><U0067><U006F><U0073><U0074><U006F>";/
- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+ "<U006D><U0061><U0072><U007A><U006F>";/
+ "<U0061><U0062><U0072><U0069><U006C>";/
+ "<U006D><U0061><U0079><U006F>";/
+ "<U006A><U0075><U006E><U0069><U006F>";/
+ "<U006A><U0075><U006C><U0069><U006F>";/
+ "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
t_fmt "<U0025><U0054>"
diff --git a/libc/localedata/locales/es_PY b/libc/localedata/locales/es_PY
index 2c31b2f25..ce226bad7 100644
--- a/libc/localedata/locales/es_PY
+++ b/libc/localedata/locales/es_PY
@@ -56,8 +56,7 @@ copy "es_ES"
END LC_CTYPE
LC_MESSAGES
-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+copy "es_ES"
END LC_MESSAGES
LC_MONETARY
@@ -79,41 +78,39 @@ n_sign_posn 1
END LC_MONETARY
LC_NUMERIC
-decimal_point "<U002C>"
-thousands_sep ""
-grouping 0;0
+copy "es_ES"
END LC_NUMERIC
LC_TIME
abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
- "<U0073><U00E1><U0062>"
+ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+ "<U0073><U00E1><U0062>"
day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
- "<U006C><U0075><U006E><U0065><U0073>";/
- "<U006D><U0061><U0072><U0074><U0065><U0073>";/
- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
- "<U006A><U0075><U0065><U0076><U0065><U0073>";/
- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
- "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ "<U006C><U0075><U006E><U0065><U0073>";/
+ "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+ "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+ "<U0073><U00E1><U0062><U0061><U0064><U006F>"
abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
mon "<U0065><U006E><U0065><U0072><U006F>";/
- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
- "<U006D><U0061><U0072><U007A><U006F>";/
- "<U0061><U0062><U0072><U0069><U006C>";/
- "<U006D><U0061><U0079><U006F>";/
- "<U006A><U0075><U006E><U0069><U006F>";/
- "<U006A><U0075><U006C><U0069><U006F>";/
- "<U0061><U0067><U006F><U0073><U0074><U006F>";/
- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+ "<U006D><U0061><U0072><U007A><U006F>";/
+ "<U0061><U0062><U0072><U0069><U006C>";/
+ "<U006D><U0061><U0079><U006F>";/
+ "<U006A><U0075><U006E><U0069><U006F>";/
+ "<U006A><U0075><U006C><U0069><U006F>";/
+ "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
t_fmt "<U0025><U0054>"
diff --git a/libc/localedata/locales/es_SV b/libc/localedata/locales/es_SV
index 3b6be32b1..d99b6cff6 100644
--- a/libc/localedata/locales/es_SV
+++ b/libc/localedata/locales/es_SV
@@ -56,8 +56,7 @@ copy "es_ES"
END LC_CTYPE
LC_MESSAGES
-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+copy "es_ES"
END LC_MESSAGES
LC_MONETARY
@@ -79,9 +78,7 @@ n_sign_posn 1
END LC_MONETARY
LC_NUMERIC
-decimal_point "<U002E>"
-thousands_sep ""
-grouping 0;0
+copy "es_ES"
END LC_NUMERIC
LC_TIME
diff --git a/libc/localedata/locales/es_UY b/libc/localedata/locales/es_UY
index 8b7ed0da4..cbb7d5a86 100644
--- a/libc/localedata/locales/es_UY
+++ b/libc/localedata/locales/es_UY
@@ -56,8 +56,7 @@ copy "es_ES"
END LC_CTYPE
LC_MESSAGES
-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+copy "es_ES"
END LC_MESSAGES
LC_MONETARY
@@ -79,41 +78,39 @@ n_sign_posn 1
END LC_MONETARY
LC_NUMERIC
-decimal_point "<U002C>"
-thousands_sep ""
-grouping 0;0
+copy "es_ES"
END LC_NUMERIC
LC_TIME
abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
- "<U0073><U00E1><U0062>"
+ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+ "<U0073><U00E1><U0062>"
day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
- "<U006C><U0075><U006E><U0065><U0073>";/
- "<U006D><U0061><U0072><U0074><U0065><U0073>";/
- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
- "<U006A><U0075><U0065><U0076><U0065><U0073>";/
- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
- "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ "<U006C><U0075><U006E><U0065><U0073>";/
+ "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+ "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+ "<U0073><U00E1><U0062><U0061><U0064><U006F>"
abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
mon "<U0065><U006E><U0065><U0072><U006F>";/
- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
- "<U006D><U0061><U0072><U007A><U006F>";/
- "<U0061><U0062><U0072><U0069><U006C>";/
- "<U006D><U0061><U0079><U006F>";/
- "<U006A><U0075><U006E><U0069><U006F>";/
- "<U006A><U0075><U006C><U0069><U006F>";/
- "<U0061><U0067><U006F><U0073><U0074><U006F>";/
- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+ "<U006D><U0061><U0072><U007A><U006F>";/
+ "<U0061><U0062><U0072><U0069><U006C>";/
+ "<U006D><U0061><U0079><U006F>";/
+ "<U006A><U0075><U006E><U0069><U006F>";/
+ "<U006A><U0075><U006C><U0069><U006F>";/
+ "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
t_fmt "<U0025><U0054>"
diff --git a/libc/localedata/locales/es_VE b/libc/localedata/locales/es_VE
index ca6637a6d..1ec2dff6a 100644
--- a/libc/localedata/locales/es_VE
+++ b/libc/localedata/locales/es_VE
@@ -56,8 +56,7 @@ copy "es_ES"
END LC_CTYPE
LC_MESSAGES
-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+copy "es_ES"
END LC_MESSAGES
LC_MONETARY
@@ -79,41 +78,39 @@ n_sign_posn 1
END LC_MONETARY
LC_NUMERIC
-decimal_point "<U002C>"
-thousands_sep ""
-grouping 0;0
+copy "es_ES"
END LC_NUMERIC
LC_TIME
abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
- "<U0073><U00E1><U0062>"
+ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+ "<U0073><U00E1><U0062>"
day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
- "<U006C><U0075><U006E><U0065><U0073>";/
- "<U006D><U0061><U0072><U0074><U0065><U0073>";/
- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
- "<U006A><U0075><U0065><U0076><U0065><U0073>";/
- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
- "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ "<U006C><U0075><U006E><U0065><U0073>";/
+ "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+ "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+ "<U0073><U00E1><U0062><U0061><U0064><U006F>"
abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
mon "<U0065><U006E><U0065><U0072><U006F>";/
- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
- "<U006D><U0061><U0072><U007A><U006F>";/
- "<U0061><U0062><U0072><U0069><U006C>";/
- "<U006D><U0061><U0079><U006F>";/
- "<U006A><U0075><U006E><U0069><U006F>";/
- "<U006A><U0075><U006C><U0069><U006F>";/
- "<U0061><U0067><U006F><U0073><U0074><U006F>";/
- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+ "<U006D><U0061><U0072><U007A><U006F>";/
+ "<U0061><U0062><U0072><U0069><U006C>";/
+ "<U006D><U0061><U0079><U006F>";/
+ "<U006A><U0075><U006E><U0069><U006F>";/
+ "<U006A><U0075><U006C><U0069><U006F>";/
+ "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
t_fmt "<U0025><U0054>"
diff --git a/libc/localedata/locales/fr_BE b/libc/localedata/locales/fr_BE
index f9c911aba..43beac59c 100644
--- a/libc/localedata/locales/fr_BE
+++ b/libc/localedata/locales/fr_BE
@@ -79,7 +79,7 @@ END LC_MONETARY
LC_NUMERIC
decimal_point "<U002C>"
thousands_sep "<U002E>"
-grouping 0;0
+grouping 3;3
END LC_NUMERIC
LC_TIME
diff --git a/libc/localedata/locales/fr_CA b/libc/localedata/locales/fr_CA
index 992a4b133..21eb6701a 100644
--- a/libc/localedata/locales/fr_CA
+++ b/libc/localedata/locales/fr_CA
@@ -55,8 +55,7 @@ copy "en_CA"
END LC_COLLATE
LC_MESSAGES
-yesexpr "<U005E><U005B><U006F><U004F><U0079><U0059><U005D><U002E><U002A>"
-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+copy "fr_FR"
END LC_MESSAGES
LC_MONETARY
@@ -78,41 +77,39 @@ n_sign_posn 0
END LC_MONETARY
LC_NUMERIC
-decimal_point "<U002C>"
-thousands_sep "<U0020>"
-grouping 0;0
+copy "fr_FR"
END LC_NUMERIC
LC_TIME
abday "<U0064><U0069><U006D>";"<U006C><U0075><U006E>";/
- "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/
- "<U006A><U0065><U0075>";"<U0076><U0065><U006E>";/
- "<U0073><U0061><U006D>"
+ "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/
+ "<U006A><U0065><U0075>";"<U0076><U0065><U006E>";/
+ "<U0073><U0061><U006D>"
day "<U0064><U0069><U006D><U0061><U006E><U0063><U0068><U0065>";/
- "<U006C><U0075><U006E><U0064><U0069>";/
- "<U006D><U0061><U0072><U0064><U0069>";/
- "<U006D><U0065><U0072><U0063><U0072><U0065><U0064><U0069>";/
- "<U006A><U0065><U0075><U0064><U0069>";/
- "<U0076><U0065><U006E><U0064><U0072><U0065><U0064><U0069>";/
- "<U0073><U0061><U006D><U0065><U0064><U0069>"
+ "<U006C><U0075><U006E><U0064><U0069>";/
+ "<U006D><U0061><U0072><U0064><U0069>";/
+ "<U006D><U0065><U0072><U0063><U0072><U0065><U0064><U0069>";/
+ "<U006A><U0065><U0075><U0064><U0069>";/
+ "<U0076><U0065><U006E><U0064><U0072><U0065><U0064><U0069>";/
+ "<U0073><U0061><U006D><U0065><U0064><U0069>"
abmon "<U006A><U0061><U006E>";"<U0066><U00E9><U0076>";/
- "<U006D><U0061><U0072>";"<U0061><U0076><U0072>";/
- "<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/
- "<U006A><U0075><U0069>";"<U0061><U006F><U00FB>";/
- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
- "<U006E><U006F><U0076>";"<U0064><U00E9><U0063>"
+ "<U006D><U0061><U0072>";"<U0061><U0076><U0072>";/
+ "<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/
+ "<U006A><U0075><U0069>";"<U0061><U006F><U00FB>";/
+ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+ "<U006E><U006F><U0076>";"<U0064><U00E9><U0063>"
mon "<U006A><U0061><U006E><U0076><U0069><U0065><U0072>";/
- "<U0066><U00E9><U0076><U0072><U0069><U0065><U0072>";/
- "<U006D><U0061><U0072><U0073>";/
- "<U0061><U0076><U0072><U0069><U006C>";/
- "<U006D><U0061><U0069>";/
- "<U006A><U0075><U0069><U006E>";/
- "<U006A><U0075><U0069><U006C><U006C><U0065><U0074>";/
- "<U0061><U006F><U00FB><U0074>";/
- "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U0065>";/
- "<U006F><U0063><U0074><U006F><U0062><U0072><U0065>";/
- "<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/
- "<U0064><U00E9><U0063><U0065><U006D><U0062><U0072><U0065>"
+ "<U0066><U00E9><U0076><U0072><U0069><U0065><U0072>";/
+ "<U006D><U0061><U0072><U0073>";/
+ "<U0061><U0076><U0072><U0069><U006C>";/
+ "<U006D><U0061><U0069>";/
+ "<U006A><U0075><U0069><U006E>";/
+ "<U006A><U0075><U0069><U006C><U006C><U0065><U0074>";/
+ "<U0061><U006F><U00FB><U0074>";/
+ "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U0065>";/
+ "<U006F><U0063><U0074><U006F><U0062><U0072><U0065>";/
+ "<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/
+ "<U0064><U00E9><U0063><U0065><U006D><U0062><U0072><U0065>"
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>"
t_fmt "<U0025><U0054>"
diff --git a/libc/localedata/locales/fr_CH b/libc/localedata/locales/fr_CH
index 7cb62822b..5ab6af108 100644
--- a/libc/localedata/locales/fr_CH
+++ b/libc/localedata/locales/fr_CH
@@ -64,41 +64,39 @@ copy "de_CH"
END LC_MONETARY
LC_NUMERIC
-decimal_point "<U002C>"
-thousands_sep ""
-grouping 0;0
+copy "de_CH"
END LC_NUMERIC
LC_TIME
abday "<U0064><U0069><U006D>";"<U006C><U0075><U006E>";/
- "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/
- "<U006A><U0065><U0075>";"<U0076><U0065><U006E>";/
- "<U0073><U0061><U006D>"
+ "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/
+ "<U006A><U0065><U0075>";"<U0076><U0065><U006E>";/
+ "<U0073><U0061><U006D>"
day "<U0064><U0069><U006D><U0061><U006E><U0063><U0068><U0065>";/
- "<U006C><U0075><U006E><U0064><U0069>";/
- "<U006D><U0061><U0072><U0064><U0069>";/
- "<U006D><U0065><U0072><U0063><U0072><U0065><U0064><U0069>";/
- "<U006A><U0065><U0075><U0064><U0069>";/
- "<U0076><U0065><U006E><U0064><U0072><U0065><U0064><U0069>";/
- "<U0073><U0061><U006D><U0065><U0064><U0069>"
+ "<U006C><U0075><U006E><U0064><U0069>";/
+ "<U006D><U0061><U0072><U0064><U0069>";/
+ "<U006D><U0065><U0072><U0063><U0072><U0065><U0064><U0069>";/
+ "<U006A><U0065><U0075><U0064><U0069>";/
+ "<U0076><U0065><U006E><U0064><U0072><U0065><U0064><U0069>";/
+ "<U0073><U0061><U006D><U0065><U0064><U0069>"
abmon "<U006A><U0061><U006E>";"<U0066><U00E9><U0076>";/
- "<U006D><U0061><U0072>";"<U0061><U0076><U0072>";/
- "<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/
- "<U006A><U0075><U0069>";"<U0061><U006F><U00FB>";/
- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
- "<U006E><U006F><U0076>";"<U0064><U00E9><U0063>"
+ "<U006D><U0061><U0072>";"<U0061><U0076><U0072>";/
+ "<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/
+ "<U006A><U0075><U0069>";"<U0061><U006F><U00FB>";/
+ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+ "<U006E><U006F><U0076>";"<U0064><U00E9><U0063>"
mon "<U006A><U0061><U006E><U0076><U0069><U0065><U0072>";/
- "<U0066><U00E9><U0076><U0072><U0069><U0065><U0072>";/
- "<U006D><U0061><U0072><U0073>";/
- "<U0061><U0076><U0072><U0069><U006C>";/
- "<U006D><U0061><U0069>";/
- "<U006A><U0075><U0069><U006E>";/
- "<U006A><U0075><U0069><U006C><U006C><U0065><U0074>";/
- "<U0061><U006F><U00FB><U0074>";/
- "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U0065>";/
- "<U006F><U0063><U0074><U006F><U0062><U0072><U0065>";/
- "<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/
- "<U0064><U00E9><U0063><U0065><U006D><U0062><U0072><U0065>"
+ "<U0066><U00E9><U0076><U0072><U0069><U0065><U0072>";/
+ "<U006D><U0061><U0072><U0073>";/
+ "<U0061><U0076><U0072><U0069><U006C>";/
+ "<U006D><U0061><U0069>";/
+ "<U006A><U0075><U0069><U006E>";/
+ "<U006A><U0075><U0069><U006C><U006C><U0065><U0074>";/
+ "<U0061><U006F><U00FB><U0074>";/
+ "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U0065>";/
+ "<U006F><U0063><U0074><U006F><U0062><U0072><U0065>";/
+ "<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/
+ "<U0064><U00E9><U0063><U0065><U006D><U0062><U0072><U0065>"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
d_fmt "<U0025><U0064><U002E><U0020><U0025><U006D><U002E><U0020><U0025><U0079>"
t_fmt "<U0025><U0054>"
diff --git a/libc/localedata/locales/fr_LU b/libc/localedata/locales/fr_LU
index 80b29b645..8cb90b361 100644
--- a/libc/localedata/locales/fr_LU
+++ b/libc/localedata/locales/fr_LU
@@ -78,40 +78,40 @@ END LC_MONETARY
LC_NUMERIC
decimal_point "<U002C>"
-thousands_sep ""
-grouping 0;0
+thousands_sep "<U0020>"
+grouping 3;3
END LC_NUMERIC
LC_TIME
abday "<U0064><U0069><U006D>";"<U006C><U0075><U006E>";/
- "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/
- "<U006A><U0065><U0075>";"<U0076><U0065><U006E>";/
- "<U0073><U0061><U006D>"
+ "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/
+ "<U006A><U0065><U0075>";"<U0076><U0065><U006E>";/
+ "<U0073><U0061><U006D>"
day "<U0064><U0069><U006D><U0061><U006E><U0063><U0068><U0065>";/
- "<U006C><U0075><U006E><U0064><U0069>";/
- "<U006D><U0061><U0072><U0064><U0069>";/
- "<U006D><U0065><U0072><U0063><U0072><U0065><U0064><U0069>";/
- "<U006A><U0065><U0075><U0064><U0069>";/
- "<U0076><U0065><U006E><U0064><U0072><U0065><U0064><U0069>";/
- "<U0073><U0061><U006D><U0065><U0064><U0069>"
+ "<U006C><U0075><U006E><U0064><U0069>";/
+ "<U006D><U0061><U0072><U0064><U0069>";/
+ "<U006D><U0065><U0072><U0063><U0072><U0065><U0064><U0069>";/
+ "<U006A><U0065><U0075><U0064><U0069>";/
+ "<U0076><U0065><U006E><U0064><U0072><U0065><U0064><U0069>";/
+ "<U0073><U0061><U006D><U0065><U0064><U0069>"
abmon "<U006A><U0061><U006E>";"<U0066><U00E9><U0076>";/
- "<U006D><U0061><U0072>";"<U0061><U0076><U0072>";/
- "<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/
- "<U006A><U0075><U0069>";"<U0061><U006F><U00FB>";/
- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
- "<U006E><U006F><U0076>";"<U0064><U00E9><U0063>"
+ "<U006D><U0061><U0072>";"<U0061><U0076><U0072>";/
+ "<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/
+ "<U006A><U0075><U0069>";"<U0061><U006F><U00FB>";/
+ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+ "<U006E><U006F><U0076>";"<U0064><U00E9><U0063>"
mon "<U006A><U0061><U006E><U0076><U0069><U0065><U0072>";/
- "<U0066><U00E9><U0076><U0072><U0069><U0065><U0072>";/
- "<U006D><U0061><U0072><U0073>";/
- "<U0061><U0076><U0072><U0069><U006C>";/
- "<U006D><U0061><U0069>";/
- "<U006A><U0075><U0069><U006E>";/
- "<U006A><U0075><U0069><U006C><U006C><U0065><U0074>";/
- "<U0061><U006F><U00FB><U0074>";/
- "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U0065>";/
- "<U006F><U0063><U0074><U006F><U0062><U0072><U0065>";/
- "<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/
- "<U0064><U00E9><U0063><U0065><U006D><U0062><U0072><U0065>"
+ "<U0066><U00E9><U0076><U0072><U0069><U0065><U0072>";/
+ "<U006D><U0061><U0072><U0073>";/
+ "<U0061><U0076><U0072><U0069><U006C>";/
+ "<U006D><U0061><U0069>";/
+ "<U006A><U0075><U0069><U006E>";/
+ "<U006A><U0075><U0069><U006C><U006C><U0065><U0074>";/
+ "<U0061><U006F><U00FB><U0074>";/
+ "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U0065>";/
+ "<U006F><U0063><U0074><U006F><U0062><U0072><U0065>";/
+ "<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/
+ "<U0064><U00E9><U0063><U0065><U006D><U0062><U0072><U0065>"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
d_fmt "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
t_fmt "<U0025><U0054>"
diff --git a/libc/malloc/arena.c b/libc/malloc/arena.c
index 9114fd28e..cb8548ba3 100644
--- a/libc/malloc/arena.c
+++ b/libc/malloc/arena.c
@@ -747,8 +747,6 @@ _int_new_arena(size_t size)
main_arena.next = a;
#ifdef PER_THREAD
- ++narenas;
-
(void)mutex_unlock(&list_lock);
#endif
@@ -786,30 +784,6 @@ get_free_list (void)
static mstate
reused_arena (void)
{
- if (narenas <= mp_.arena_test)
- return NULL;
-
- static int narenas_limit;
- if (narenas_limit == 0)
- {
- if (mp_.arena_max != 0)
- narenas_limit = mp_.arena_max;
- else
- {
- int n = __get_nprocs ();
-
- if (n >= 1)
- narenas_limit = NARENAS_FROM_NCORES (n);
- else
- /* We have no information about the system. Assume two
- cores. */
- narenas_limit = NARENAS_FROM_NCORES (2);
- }
- }
-
- if (narenas < narenas_limit)
- return NULL;
-
mstate result;
static mstate next_to_use;
if (next_to_use == NULL)
@@ -844,10 +818,41 @@ arena_get2(mstate a_tsd, size_t size)
mstate a;
#ifdef PER_THREAD
- if ((a = get_free_list ()) == NULL
- && (a = reused_arena ()) == NULL)
- /* Nothing immediately available, so generate a new arena. */
- a = _int_new_arena(size);
+ static size_t narenas_limit;
+
+ a = get_free_list ();
+ if (a == NULL)
+ {
+ /* Nothing immediately available, so generate a new arena. */
+ if (narenas_limit == 0)
+ {
+ if (mp_.arena_max != 0)
+ narenas_limit = mp_.arena_max;
+ else
+ {
+ int n = __get_nprocs ();
+
+ if (n >= 1)
+ narenas_limit = NARENAS_FROM_NCORES (n);
+ else
+ /* We have no information about the system. Assume two
+ cores. */
+ narenas_limit = NARENAS_FROM_NCORES (2);
+ }
+ }
+ repeat:;
+ size_t n = narenas;
+ if (__builtin_expect (n <= mp_.arena_test || n < narenas_limit, 0))
+ {
+ if (catomic_compare_and_exchange_bool_acq (&narenas, n + 1, n))
+ goto repeat;
+ a = _int_new_arena (size);
+ if (__builtin_expect (a == NULL, 0))
+ catomic_decrement (&narenas);
+ }
+ else
+ a = reused_arena ();
+ }
#else
if(!a_tsd)
a = a_tsd = &main_arena;
diff --git a/libc/malloc/malloc.c b/libc/malloc/malloc.c
index 864c7d908..8608083ad 100644
--- a/libc/malloc/malloc.c
+++ b/libc/malloc/malloc.c
@@ -2855,10 +2855,10 @@ munmap_chunk(mchunkptr p)
mp_.n_mmaps--;
mp_.mmapped_mem -= total_size;
- int ret __attribute__ ((unused)) = munmap((char *)block, total_size);
-
- /* munmap returns non-zero on failure */
- assert(ret == 0);
+ /* If munmap failed the process virtual memory address space is in a
+ bad shape. Just leave the block hanging around, the process will
+ terminate shortly anyway since not much can be done. */
+ munmap((char *)block, total_size);
}
#if HAVE_MREMAP
diff --git a/libc/manual/stdio.texi b/libc/manual/stdio.texi
index 94f9126c9..588c15bf7 100644
--- a/libc/manual/stdio.texi
+++ b/libc/manual/stdio.texi
@@ -4780,7 +4780,6 @@ provide equivalent functionality.
@menu
* String Streams:: Streams that get data from or put data in
a string or memory buffer.
-* Obstack Streams:: Streams that store data in an obstack.
* Custom Streams:: Defining your own streams with an arbitrary
input data source and/or output data sink.
@end menu
@@ -4884,64 +4883,6 @@ buf = `hello', size = 5
buf = `hello, world', size = 12
@end smallexample
-@c @group Invalid outside @example.
-@node Obstack Streams
-@subsection Obstack Streams
-
-You can open an output stream that puts it data in an obstack.
-@xref{Obstacks}.
-
-@comment stdio.h
-@comment GNU
-@deftypefun {FILE *} open_obstack_stream (struct obstack *@var{obstack})
-This function opens a stream for writing data into the obstack @var{obstack}.
-This starts an object in the obstack and makes it grow as data is
-written (@pxref{Growing Objects}).
-@c @end group Doubly invalid because not nested right.
-
-Calling @code{fflush} on this stream updates the current size of the
-object to match the amount of data that has been written. After a call
-to @code{fflush}, you can examine the object temporarily.
-
-You can move the file position of an obstack stream with @code{fseek} or
-@code{fseeko} (@pxref{File Positioning}). Moving the file position past
-the end of the data written fills the intervening space with zeros.
-
-To make the object permanent, update the obstack with @code{fflush}, and
-then use @code{obstack_finish} to finalize the object and get its address.
-The following write to the stream starts a new object in the obstack,
-and later writes add to that object until you do another @code{fflush}
-and @code{obstack_finish}.
-
-But how do you find out how long the object is? You can get the length
-in bytes by calling @code{obstack_object_size} (@pxref{Status of an
-Obstack}), or you can null-terminate the object like this:
-
-@smallexample
-obstack_1grow (@var{obstack}, 0);
-@end smallexample
-
-Whichever one you do, you must do it @emph{before} calling
-@code{obstack_finish}. (You can do both if you wish.)
-@end deftypefun
-
-Here is a sample function that uses @code{open_obstack_stream}:
-
-@smallexample
-char *
-make_message_string (const char *a, int b)
-@{
- FILE *stream = open_obstack_stream (&message_obstack);
- output_task (stream);
- fprintf (stream, ": ");
- fprintf (stream, a, b);
- fprintf (stream, "\n");
- fclose (stream);
- obstack_1grow (&message_obstack, 0);
- return obstack_finish (&message_obstack);
-@}
-@end smallexample
-
@node Custom Streams
@subsection Programming Your Own Custom Streams
@cindex custom streams
diff --git a/libc/math/complex.h b/libc/math/complex.h
index 7e22fc9ab..a2fe0e178 100644
--- a/libc/math/complex.h
+++ b/libc/math/complex.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 1999, 2000, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999, 2000, 2006, 2011 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
@@ -85,9 +85,8 @@ __BEGIN_DECLS
/* And the long double versions. It is non-critical to define them
here unconditionally since `long double' is required in ISO C99. */
#if (__STDC__ - 0 || __GNUC__ - 0) \
- && (!defined __NO_LONG_DOUBLE_MATH \
- || defined __LDBL_COMPAT \
- || !defined _LIBC)
+ && (!(defined __NO_LONG_DOUBLE_MATH && defined _LIBC) \
+ || defined __LDBL_COMPAT)
# if defined __LDBL_COMPAT || defined __NO_LONG_DOUBLE_MATH
# undef __MATHDECL_1
# define __MATHDECL_1(type, function, args) \
diff --git a/libc/math/libm-test.inc b/libc/math/libm-test.inc
index f1ecdcd78..d07ab6c48 100644
--- a/libc/math/libm-test.inc
+++ b/libc/math/libm-test.inc
@@ -5655,6 +5655,7 @@ sin_test (void)
#ifdef TEST_DOUBLE
TEST_f_f (sin, 0.80190127184058835, 0.71867942238767868);
+ TEST_f_f (sin, 2.522464e-1, 2.4957989804940911e-1);
#endif
END (sin);
diff --git a/libc/math/math.h b/libc/math/math.h
index 7b5988114..52c23537d 100644
--- a/libc/math/math.h
+++ b/libc/math/math.h
@@ -98,9 +98,8 @@ __BEGIN_DECLS
# undef __MATH_PRECNAME
# if (__STDC__ - 0 || __GNUC__ - 0) \
- && (!defined __NO_LONG_DOUBLE_MATH \
- || defined __LDBL_COMPAT \
- || !defined _LIBC)
+ && (!(defined __NO_LONG_DOUBLE_MATH && defined _LIBC) \
+ || defined __LDBL_COMPAT)
# ifdef __LDBL_COMPAT
# ifdef __USE_ISOC99
@@ -131,6 +130,7 @@ extern long double __REDIRECT_NTH (nexttowardl,
/* Include the file of declarations again, this time using `long double'
instead of `double' and appending l to each function name. */
+
# ifndef _Mlong_double_
# define _Mlong_double_ long double
# endif
diff --git a/libc/misc/getpass.c b/libc/misc/getpass.c
index 5290c3c7d..bdfa2c807 100644
--- a/libc/misc/getpass.c
+++ b/libc/misc/getpass.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-1999,2001,2003,2004,2005 Free Software Foundation, Inc.
+/* Copyright (C) 1992-1999,2001,2003-2005,2011 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
@@ -57,7 +57,7 @@ getpass (prompt)
/* Try to write to and read from the terminal if we can.
If we can't open the terminal, use stderr and stdin. */
- in = fopen ("/dev/tty", "w+c");
+ in = fopen ("/dev/tty", "w+ce");
if (in == NULL)
{
in = stdin;
diff --git a/libc/misc/getttyent.c b/libc/misc/getttyent.c
index 6d789c4e2..b1e6376fb 100644
--- a/libc/misc/getttyent.c
+++ b/libc/misc/getttyent.c
@@ -190,7 +190,7 @@ setttyent()
if (tf) {
(void)rewind(tf);
return (1);
- } else if ((tf = fopen(_PATH_TTYS, "rc"))) {
+ } else if ((tf = fopen(_PATH_TTYS, "rce"))) {
/* We do the locking ourselves. */
__fsetlocking (tf, FSETLOCKING_BYCALLER);
return (1);
diff --git a/libc/misc/getusershell.c b/libc/misc/getusershell.c
index 0e4f79619..2e8d97e65 100644
--- a/libc/misc/getusershell.c
+++ b/libc/misc/getusershell.c
@@ -104,7 +104,7 @@ initshells()
shells = NULL;
free(strings);
strings = NULL;
- if ((fp = fopen(_PATH_SHELLS, "rc")) == NULL)
+ if ((fp = fopen(_PATH_SHELLS, "rce")) == NULL)
goto init_okshells_noclose;
if (fstat64(fileno(fp), &statb) == -1) {
init_okshells:
diff --git a/libc/misc/mntent_r.c b/libc/misc/mntent_r.c
index 0e9835c61..3b5418a19 100644
--- a/libc/misc/mntent_r.c
+++ b/libc/misc/mntent_r.c
@@ -38,10 +38,10 @@ FILE *
__setmntent (const char *file, const char *mode)
{
/* Extend the mode parameter with "c" to disable cancellation in the
- I/O functions. */
+ I/O functions and "e" to set FD_CLOEXEC. */
size_t modelen = strlen (mode);
- char newmode[modelen + 2];
- memcpy (mempcpy (newmode, mode, modelen), "c", 2);
+ char newmode[modelen + 3];
+ memcpy (mempcpy (newmode, mode, modelen), "ce", 3);
FILE *result = fopen (file, newmode);
if (result != NULL)
diff --git a/libc/misc/sys/cdefs.h b/libc/misc/sys/cdefs.h
index 72073e855..c856e87a0 100644
--- a/libc/misc/sys/cdefs.h
+++ b/libc/misc/sys/cdefs.h
@@ -38,7 +38,8 @@
#ifdef __GNUC__
-/* All functions, except those with callbacks, are leaf functions. */
+/* All functions, except those with callbacks or those that
+ synchronize memory, are leaf functions. */
# if __GNUC_PREREQ (4, 6) && !defined _LIBC
# define __LEAF , __leaf__
# define __LEAF_ATTR __attribute__ ((__leaf__))
@@ -54,13 +55,16 @@
the -fexceptions options for C code as well. */
# if !defined __cplusplus && __GNUC_PREREQ (3, 3)
# define __THROW __attribute__ ((__nothrow__ __LEAF))
+# define __THROWNL __attribute__ ((__nothrow__))
# define __NTH(fct) __attribute__ ((__nothrow__ __LEAF)) fct
# else
# if defined __cplusplus && __GNUC_PREREQ (2,8)
# define __THROW throw ()
+# define __THROWNL throw ()
# define __NTH(fct) __LEAF_ATTR fct throw ()
# else
# define __THROW
+# define __THROWNL
# define __NTH(fct) fct
# endif
# endif
@@ -70,6 +74,7 @@
# define __inline /* No inline functions. */
# define __THROW
+# define __THROWNL
# define __NTH(fct) fct
# define __const const
@@ -187,9 +192,13 @@
# ifdef __cplusplus
# define __REDIRECT_NTH(name, proto, alias) \
name proto __THROW __asm__ (__ASMNAME (#alias))
+# define __REDIRECT_NTHNL(name, proto, alias) \
+ name proto __THROWNL __asm__ (__ASMNAME (#alias))
# else
# define __REDIRECT_NTH(name, proto, alias) \
name proto __asm__ (__ASMNAME (#alias)) __THROW
+# define __REDIRECT_NTHNL(name, proto, alias) \
+ name proto __asm__ (__ASMNAME (#alias)) __THROWNL
# endif
# define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname)
# define __ASMNAME2(prefix, cname) __STRING (prefix) cname
diff --git a/libc/nis/nis_file.c b/libc/nis/nis_file.c
index 566f30c48..dc382424b 100644
--- a/libc/nis/nis_file.c
+++ b/libc/nis/nis_file.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997, 1998, 1999, 2004, 2005 Free Software Foundation, Inc.
+/* Copyright (c) 1997, 1998, 1999, 2004, 2005, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1997.
@@ -31,7 +31,7 @@ static void *
read_nis_obj (const char *name, iofct_t readfct, freefct_t freefct,
size_t objsize)
{
- FILE *in = fopen (name, "rc");
+ FILE *in = fopen (name, "rce");
if (in == NULL)
return NULL;
@@ -59,7 +59,7 @@ read_nis_obj (const char *name, iofct_t readfct, freefct_t freefct,
static bool_t
write_nis_obj (const char *name, const void *obj, iofct_t writefct)
{
- FILE *out = fopen (name, "w");
+ FILE *out = fopen (name, "wce");
if (out == NULL)
return FALSE;
diff --git a/libc/nis/nis_table.c b/libc/nis/nis_table.c
index aba289732..c628ed63c 100644
--- a/libc/nis/nis_table.c
+++ b/libc/nis/nis_table.c
@@ -101,8 +101,8 @@ __create_ib_request (const_nis_name name, unsigned int flags)
}
*val++ = '\0';
if (search_len + 1 >= size)
- {
- size += 1;
+ {
+ size += 1;
nis_attr *newp = realloc (search_val, size * sizeof (nis_attr));
if (newp == NULL)
goto free_null;
@@ -279,8 +279,8 @@ nis_list (const_nis_name name, unsigned int flags,
&dir, &bptr, flags & ~MASTER_ONLY);
if (status != NIS_SUCCESS)
{
- NIS_RES_STATUS (res) = status;
- goto fail3;
+ NIS_RES_STATUS (res) = status;
+ goto fail3;
}
while (__nisbind_connect (&bptr) != NIS_SUCCESS)
@@ -368,12 +368,12 @@ nis_list (const_nis_name name, unsigned int flags,
else if ((flags & FOLLOW_PATH)
&& NIS_RES_STATUS (res) == NIS_PARTIAL)
{
- clnt_status = __follow_path (&tablepath, &tableptr, ibreq,
- &bptr);
- if (clnt_status != NIS_SUCCESS)
+ enum nis_error err = __follow_path (&tablepath, &tableptr,
+ ibreq, &bptr);
+ if (err != NIS_SUCCESS)
{
- if (clnt_status == NIS_NOMEMORY)
- NIS_RES_STATUS (res) = clnt_status;
+ if (err == NIS_NOMEMORY)
+ NIS_RES_STATUS (res) = err;
++done;
}
else
@@ -428,15 +428,15 @@ nis_list (const_nis_name name, unsigned int flags,
NIS_RES_STATUS (allres) = NIS_RES_STATUS (res);
xdr_free ((xdrproc_t) _xdr_nis_result, (char *) res);
}
- clnt_status = __follow_path (&tablepath, &tableptr, ibreq,
- &bptr);
- if (clnt_status != NIS_SUCCESS)
+ enum nis_error err = __follow_path (&tablepath, &tableptr,
+ ibreq, &bptr);
+ if (err != NIS_SUCCESS)
{
/* Prepare for the nis_freeresult call. */
memset (res, '\0', sizeof (*res));
- if (clnt_status == NIS_NOMEMORY)
- NIS_RES_STATUS (allres) = clnt_status;
+ if (err == NIS_NOMEMORY)
+ NIS_RES_STATUS (allres) = err;
++done;
}
}
@@ -453,12 +453,12 @@ nis_list (const_nis_name name, unsigned int flags,
++done;
else
{
- clnt_status
+ enum nis_error err
= __follow_path (&tablepath, &tableptr, ibreq, &bptr);
- if (clnt_status != NIS_SUCCESS)
+ if (err != NIS_SUCCESS)
{
- if (clnt_status == NIS_NOMEMORY)
- NIS_RES_STATUS (res) = clnt_status;
+ if (err == NIS_NOMEMORY)
+ NIS_RES_STATUS (res) = err;
++done;
}
}
diff --git a/libc/nis/nss-default.c b/libc/nis/nss-default.c
index d7a3293a4..e4dc3d6af 100644
--- a/libc/nis/nss-default.c
+++ b/libc/nis/nss-default.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 1996,2001,2004,2006,2007,2010 Free Software Foundation, Inc.
+/* Copyright (C) 1996,2001,2004,2006,2007,2010,2011
+ 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
@@ -57,7 +58,7 @@ static void
init (void)
{
int saved_errno = errno;
- FILE *fp = fopen (default_nss, "rc");
+ FILE *fp = fopen (default_nss, "rce");
if (fp != NULL)
{
char *line = NULL;
diff --git a/libc/nptl/ChangeLog b/libc/nptl/ChangeLog
index f4b2f04c0..9abaa26ba 100644
--- a/libc/nptl/ChangeLog
+++ b/libc/nptl/ChangeLog
@@ -1,3 +1,23 @@
+2011-11-15 Ulrich Drepper <drepper@gmail.com>
+
+ * pthread_getattr_np.c (pthread_getattr_np): Set FD_CLOEXEC for
+ /proc/self/maps.
+
+2011-10-29 Ulrich Drepper <drepper@gmail.com>
+
+ [BZ #13358]
+ * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
+ (__pthread_cond_timedwait): Initialize %r15 correctly also for code
+ path for kernels with FUTEX_CLOCK_REALTIME.
+ Debugged by H.J. Lu <hjl.tools@gmail.com>.
+
+2011-10-27 Andreas Schwab <schwab@redhat.com>
+
+ [BZ #13344]
+ * sysdeps/pthread/pthread.h: Use __THREADNL instead of __THREAD
+ for memory synchronization functions.
+ * semaphore.h: Likewise.
+
2011-10-24 Ulrich Drepper <drepper@gmail.com>
* tst-cancel7.c: Avoid warning.
diff --git a/libc/nptl/pthread_getattr_np.c b/libc/nptl/pthread_getattr_np.c
index 9c25caff8..f03c97899 100644
--- a/libc/nptl/pthread_getattr_np.c
+++ b/libc/nptl/pthread_getattr_np.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2004, 2006, 2007, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -75,7 +75,7 @@ pthread_getattr_np (thread_id, attr)
/* The safest way to get the top of the stack is to read
/proc/self/maps and locate the line into which
__libc_stack_end falls. */
- FILE *fp = fopen ("/proc/self/maps", "rc");
+ FILE *fp = fopen ("/proc/self/maps", "rce");
if (fp == NULL)
ret = errno;
/* We need the limit of the stack in any case. */
@@ -164,7 +164,7 @@ pthread_getattr_np (thread_id, attr)
{
free (cpuset);
if (ret == ENOSYS)
- {
+ {
/* There is no such functionality. */
ret = 0;
iattr->cpuset = NULL;
diff --git a/libc/nptl/semaphore.h b/libc/nptl/semaphore.h
index 4f13725b3..11caf664a 100644
--- a/libc/nptl/semaphore.h
+++ b/libc/nptl/semaphore.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2011 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
@@ -64,10 +64,10 @@ extern int sem_timedwait (sem_t *__restrict __sem,
#endif
/* Test whether SEM is posted. */
-extern int sem_trywait (sem_t *__sem) __THROW;
+extern int sem_trywait (sem_t *__sem) __THROWNL;
/* Post SEM. */
-extern int sem_post (sem_t *__sem) __THROW;
+extern int sem_post (sem_t *__sem) __THROWNL;
/* Get current value of SEM and store it in *SVAL. */
extern int sem_getvalue (sem_t *__restrict __sem, int *__restrict __sval)
diff --git a/libc/nptl/sysdeps/pthread/pthread.h b/libc/nptl/sysdeps/pthread/pthread.h
index 4c8366545..a92428162 100644
--- a/libc/nptl/sysdeps/pthread/pthread.h
+++ b/libc/nptl/sysdeps/pthread/pthread.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+/* Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -225,7 +225,7 @@ __BEGIN_DECLS
extern int pthread_create (pthread_t *__restrict __newthread,
__const pthread_attr_t *__restrict __attr,
void *(*__start_routine) (void *),
- void *__restrict __arg) __THROW __nonnull ((1, 3));
+ void *__restrict __arg) __THROWNL __nonnull ((1, 3));
/* Terminate calling thread.
@@ -740,22 +740,22 @@ extern int pthread_mutex_destroy (pthread_mutex_t *__mutex)
/* Try locking a mutex. */
extern int pthread_mutex_trylock (pthread_mutex_t *__mutex)
- __THROW __nonnull ((1));
+ __THROWNL __nonnull ((1));
/* Lock a mutex. */
extern int pthread_mutex_lock (pthread_mutex_t *__mutex)
- __THROW __nonnull ((1));
+ __THROWNL __nonnull ((1));
#ifdef __USE_XOPEN2K
/* Wait until lock becomes available, or specified time passes. */
extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
__const struct timespec *__restrict
- __abstime) __THROW __nonnull ((1, 2));
+ __abstime) __THROWNL __nonnull ((1, 2));
#endif
/* Unlock a mutex. */
extern int pthread_mutex_unlock (pthread_mutex_t *__mutex)
- __THROW __nonnull ((1));
+ __THROWNL __nonnull ((1));
/* Get the priority ceiling of MUTEX. */
@@ -879,37 +879,37 @@ extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock)
/* Acquire read lock for RWLOCK. */
extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock)
- __THROW __nonnull ((1));
+ __THROWNL __nonnull ((1));
/* Try to acquire read lock for RWLOCK. */
extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock)
- __THROW __nonnull ((1));
+ __THROWNL __nonnull ((1));
# ifdef __USE_XOPEN2K
/* Try to acquire read lock for RWLOCK or return after specfied time. */
extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
__const struct timespec *__restrict
- __abstime) __THROW __nonnull ((1, 2));
+ __abstime) __THROWNL __nonnull ((1, 2));
# endif
/* Acquire write lock for RWLOCK. */
extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock)
- __THROW __nonnull ((1));
+ __THROWNL __nonnull ((1));
/* Try to acquire write lock for RWLOCK. */
extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock)
- __THROW __nonnull ((1));
+ __THROWNL __nonnull ((1));
# ifdef __USE_XOPEN2K
/* Try to acquire write lock for RWLOCK or return after specfied time. */
extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
__const struct timespec *__restrict
- __abstime) __THROW __nonnull ((1, 2));
+ __abstime) __THROWNL __nonnull ((1, 2));
# endif
/* Unlock RWLOCK. */
extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock)
- __THROW __nonnull ((1));
+ __THROWNL __nonnull ((1));
/* Functions for handling read-write lock attributes. */
@@ -959,11 +959,11 @@ extern int pthread_cond_destroy (pthread_cond_t *__cond)
/* Wake up one thread waiting for condition variable COND. */
extern int pthread_cond_signal (pthread_cond_t *__cond)
- __THROW __nonnull ((1));
+ __THROWNL __nonnull ((1));
/* Wake up all threads waiting for condition variables COND. */
extern int pthread_cond_broadcast (pthread_cond_t *__cond)
- __THROW __nonnull ((1));
+ __THROWNL __nonnull ((1));
/* Wait for condition variable COND to be signaled or broadcast.
MUTEX is assumed to be locked before.
@@ -1034,15 +1034,15 @@ extern int pthread_spin_destroy (pthread_spinlock_t *__lock)
/* Wait until spinlock LOCK is retrieved. */
extern int pthread_spin_lock (pthread_spinlock_t *__lock)
- __THROW __nonnull ((1));
+ __THROWNL __nonnull ((1));
/* Try to lock spinlock LOCK. */
extern int pthread_spin_trylock (pthread_spinlock_t *__lock)
- __THROW __nonnull ((1));
+ __THROWNL __nonnull ((1));
/* Release spinlock LOCK. */
extern int pthread_spin_unlock (pthread_spinlock_t *__lock)
- __THROW __nonnull ((1));
+ __THROWNL __nonnull ((1));
/* Functions to handle barriers. */
@@ -1060,7 +1060,7 @@ extern int pthread_barrier_destroy (pthread_barrier_t *__barrier)
/* Wait on barrier BARRIER. */
extern int pthread_barrier_wait (pthread_barrier_t *__barrier)
- __THROW __nonnull ((1));
+ __THROWNL __nonnull ((1));
/* Initialize barrier attribute ATTR. */
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S b/libc/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
index d11b29746..acbd3fa53 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
+++ b/libc/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2005, 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2005,2007,2009,2010,2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -101,6 +101,8 @@ __pthread_cond_timedwait:
movq %rsi, dep_mutex(%rdi)
22:
+ xorl %r15d, %r15d
+
#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
# ifdef PIC
cmpl $0, __have_futex_clock_realtime(%rip)
@@ -402,8 +404,6 @@ __pthread_cond_timedwait:
#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
.Lreltmo:
- xorl %r15d, %r15d
-
/* Get internal lock. */
movl $1, %esi
xorl %eax, %eax
diff --git a/libc/nscd/connections.c b/libc/nscd/connections.c
index 2b5c7ef53..c74199616 100644
--- a/libc/nscd/connections.c
+++ b/libc/nscd/connections.c
@@ -24,6 +24,7 @@
#include <errno.h>
#include <fcntl.h>
#include <grp.h>
+#include <ifaddrs.h>
#include <libintl.h>
#include <pthread.h>
#include <pwd.h>
@@ -32,6 +33,10 @@
#include <stdlib.h>
#include <unistd.h>
#include <arpa/inet.h>
+#ifdef HAVE_NETLINK
+# include <linux/netlink.h>
+# include <linux/rtnetlink.h>
+#endif
#ifdef HAVE_EPOLL
# include <sys/epoll.h>
#endif
@@ -247,6 +252,11 @@ static int sock;
int inotify_fd = -1;
#endif
+#ifdef HAVE_NETLINK
+/* Descriptor for netlink status updates. */
+static int nl_status_fd = -1;
+#endif
+
#ifndef __ASSUME_SOCK_CLOEXEC
/* Negative if SOCK_CLOEXEC is not supported, positive if it is, zero
before be know the result. */
@@ -903,6 +913,65 @@ cannot set socket to close on exec: %s; disabling paranoia mode"),
exit (1);
}
+#ifdef HAVE_NETLINK
+ if (dbs[hstdb].enabled)
+ {
+ /* Try to open netlink socket to monitor network setting changes. */
+ nl_status_fd = socket (AF_NETLINK,
+ SOCK_RAW | SOCK_CLOEXEC | SOCK_NONBLOCK,
+ NETLINK_ROUTE);
+ if (nl_status_fd != -1)
+ {
+ struct sockaddr_nl snl;
+ memset (&snl, '\0', sizeof (snl));
+ snl.nl_family = AF_NETLINK;
+ /* XXX Is this the best set to use? */
+ snl.nl_groups = (RTMGRP_IPV4_IFADDR | RTMGRP_TC | RTMGRP_IPV4_MROUTE
+ | RTMGRP_IPV4_ROUTE | RTMGRP_IPV4_RULE
+ | RTMGRP_IPV6_IFADDR | RTMGRP_IPV6_MROUTE
+ | RTMGRP_IPV6_ROUTE | RTMGRP_IPV6_IFINFO
+ | RTMGRP_IPV6_PREFIX);
+
+ if (bind (nl_status_fd, (struct sockaddr *) &snl, sizeof (snl)) != 0)
+ {
+ close (nl_status_fd);
+ nl_status_fd = -1;
+ }
+ else
+ {
+ /* Start the timestamp process. */
+ dbs[hstdb].head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP]
+ = __bump_nl_timestamp ();
+
+# ifndef __ASSUME_SOCK_CLOEXEC
+ if (have_sock_cloexec < 0)
+ {
+ /* We don't want to get stuck on accept. */
+ int fl = fcntl (nl_status_fd, F_GETFL);
+ if (fl == -1
+ || fcntl (nl_status_fd, F_SETFL, fl | O_NONBLOCK) == -1)
+ {
+ dbg_log (_("\
+cannot change socket to nonblocking mode: %s"),
+ strerror (errno));
+ exit (1);
+ }
+
+ /* The descriptor needs to be closed on exec. */
+ if (paranoia
+ && fcntl (nl_status_fd, F_SETFD, FD_CLOEXEC) == -1)
+ {
+ dbg_log (_("cannot set socket to close on exec: %s"),
+ strerror (errno));
+ exit (1);
+ }
+ }
+# endif
+ }
+ }
+ }
+#endif
+
/* Change to unprivileged uid/gid/groups if specified in config file */
if (server_user != NULL)
finish_drop_privileges ();
@@ -1826,6 +1895,18 @@ main_loop_poll (void)
}
#endif
+#ifdef HAVE_NETLINK
+ size_t idx_nl_status_fd = 0;
+ if (nl_status_fd != -1)
+ {
+ idx_nl_status_fd = nused;
+ conns[nused].fd = nl_status_fd;
+ conns[nused].events = POLLRDNORM;
+ ++nused;
+ firstfree = nused;
+ }
+#endif
+
while (1)
{
/* Wait for any event. We wait at most a couple of seconds so
@@ -1968,6 +2049,20 @@ disabled inotify after read error %d"),
}
#endif
+#ifdef HAVE_NETLINK
+ if (idx_nl_status_fd != 0 && conns[idx_nl_status_fd].revents != 0)
+ {
+ char buf[4096];
+ /* Read all the data. We do not interpret it here. */
+ while (TEMP_FAILURE_RETRY (read (nl_status_fd, buf,
+ sizeof (buf))) != -1)
+ ;
+
+ dbs[hstdb].head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP]
+ = __bump_nl_timestamp ();
+ }
+#endif
+
for (size_t cnt = first; cnt < nused && n > 0; ++cnt)
if (conns[cnt].revents != 0)
{
@@ -2046,6 +2141,17 @@ main_loop_epoll (int efd)
}
# endif
+# ifdef HAVE_NETLINK
+ if (nl_status_fd != -1)
+ {
+ ev.events = EPOLLRDNORM;
+ ev.data.fd = nl_status_fd;
+ if (epoll_ctl (efd, EPOLL_CTL_ADD, nl_status_fd, &ev) == -1)
+ /* We cannot use epoll. */
+ return;
+ }
+# endif
+
while (1)
{
struct epoll_event revs[100];
@@ -2162,6 +2268,18 @@ main_loop_epoll (int efd)
}
}
# endif
+# ifdef HAVE_NETLINK
+ else if (revs[cnt].data.fd == nl_status_fd)
+ {
+ char buf[4096];
+ /* Read all the data. We do not interpret it here. */
+ while (TEMP_FAILURE_RETRY (read (nl_status_fd, buf,
+ sizeof (buf))) != -1)
+ ;
+
+ __bump_nl_timestamp ();
+ }
+# endif
else
{
/* Remove the descriptor from the epoll descriptor. */
@@ -2185,6 +2303,7 @@ main_loop_epoll (int efd)
time_t laststart = now - ACCEPT_TIMEOUT;
assert (starttime[sock] == 0);
assert (inotify_fd == -1 || starttime[inotify_fd] == 0);
+ assert (nl_status_fd == -1 || starttime[nl_status_fd] == 0);
for (int cnt = highest; cnt > STDERR_FILENO; --cnt)
if (starttime[cnt] != 0 && starttime[cnt] < laststart)
{
diff --git a/libc/nscd/nscd-client.h b/libc/nscd/nscd-client.h
index caad26a9c..b5cd2d2c1 100644
--- a/libc/nscd/nscd-client.h
+++ b/libc/nscd/nscd-client.h
@@ -260,12 +260,17 @@ struct hashentry
/* Current persistent database version. */
-#define DB_VERSION 1
+#define DB_VERSION 2
/* Maximum time allowed between updates of the timestamp. */
#define MAPPING_TIMEOUT (5 * 60)
+/* Used indices for the EXTRA_DATA element of 'database_pers_head'.
+ Each database has its own indices. */
+#define NSCD_HST_IDX_CONF_TIMESTAMP 0
+
+
/* Header of persistent database file. */
struct database_pers_head
{
@@ -274,6 +279,8 @@ struct database_pers_head
volatile int32_t gc_cycle;
volatile int32_t nscd_certainly_running;
volatile nscd_time_t timestamp;
+ /* Room for extensions. */
+ volatile uint32_t extra_data[4];
nscd_ssize_t module;
nscd_ssize_t data_size;
@@ -322,6 +329,12 @@ extern int __nscd_open_socket (const char *key, size_t keylen,
request_type type, void *response,
size_t responselen) attribute_hidden;
+/* Try to get a file descriptor for the shared meory segment
+ containing the database. */
+extern struct mapped_database *__nscd_get_mapping (request_type type,
+ const char *key,
+ struct mapped_database **mappedp) attribute_hidden;
+
/* Get reference of mapping. */
extern struct mapped_database *__nscd_get_map_ref (request_type type,
const char *name,
@@ -371,4 +384,7 @@ extern ssize_t writeall (int fd, const void *buf, size_t len)
extern ssize_t sendfileall (int tofd, int fromfd, off_t off, size_t len)
attribute_hidden;
+/* Get netlink timestamp counter from mapped area or zero. */
+extern uint32_t __nscd_get_nl_timestamp (void);
+
#endif /* nscd.h */
diff --git a/libc/nscd/nscd.c b/libc/nscd/nscd.c
index ccc0d761a..f0521fe0e 100644
--- a/libc/nscd/nscd.c
+++ b/libc/nscd/nscd.c
@@ -263,10 +263,6 @@ main (int argc, char **argv)
/* In foreground mode we are not paranoid. */
paranoia = 0;
- /* Start the SELinux AVC. */
- if (selinux_enabled)
- nscd_avc_init ();
-
signal (SIGINT, termination_handler);
signal (SIGQUIT, termination_handler);
signal (SIGTERM, termination_handler);
@@ -294,6 +290,10 @@ main (int argc, char **argv)
/* Init databases. */
nscd_init ();
+ /* Start the SELinux AVC. */
+ if (selinux_enabled)
+ nscd_avc_init ();
+
/* Handle incoming requests */
start_threads ();
diff --git a/libc/nscd/nscd_gethst_r.c b/libc/nscd/nscd_gethst_r.c
index 70631fa96..6ee142d71 100644
--- a/libc/nscd/nscd_gethst_r.c
+++ b/libc/nscd/nscd_gethst_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2005, 2006, 2007, 2008, 2009
+/* Copyright (C) 1998-2005, 2006, 2007, 2008, 2009, 2011
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -98,6 +98,27 @@ libc_freeres_fn (hst_map_free)
}
+uint32_t
+__nscd_get_nl_timestamp (void)
+{
+ if (__nss_not_use_nscd_hosts != 0)
+ return 0;
+
+ struct mapped_database *map = __hst_map_handle.mapped;
+
+ if (map == NULL
+ || (map != NO_MAPPING
+ && map->head->nscd_certainly_running == 0
+ && map->head->timestamp + MAPPING_TIMEOUT < time (NULL)))
+ map = __nscd_get_mapping (GETFDHST, "hosts", &__hst_map_handle.mapped);
+
+ if (map == NO_MAPPING)
+ return 0;
+
+ return map->head->extra_data[NSCD_HST_IDX_CONF_TIMESTAMP];
+}
+
+
int __nss_have_localdomain attribute_hidden;
static int
diff --git a/libc/nscd/nscd_helper.c b/libc/nscd/nscd_helper.c
index fe63f9a7f..365b59989 100644
--- a/libc/nscd/nscd_helper.c
+++ b/libc/nscd/nscd_helper.c
@@ -277,9 +277,9 @@ __nscd_unmap (struct mapped_database *mapped)
/* Try to get a file descriptor for the shared meory segment
containing the database. */
-static struct mapped_database *
-get_mapping (request_type type, const char *key,
- struct mapped_database **mappedp)
+struct mapped_database *
+__nscd_get_mapping (request_type type, const char *key,
+ struct mapped_database **mappedp)
{
struct mapped_database *result = NO_MAPPING;
#ifdef SCM_RIGHTS
@@ -449,8 +449,8 @@ __nscd_get_map_ref (request_type type, const char *name,
|| (cur->head->nscd_certainly_running == 0
&& cur->head->timestamp + MAPPING_TIMEOUT < time (NULL))
|| cur->head->data_size > cur->datasize)
- cur = get_mapping (type, name,
- (struct mapped_database **) &mapptr->mapped);
+ cur = __nscd_get_mapping (type, name,
+ (struct mapped_database **) &mapptr->mapped);
if (__builtin_expect (cur != NO_MAPPING, 1))
{
diff --git a/libc/nss/db-Makefile b/libc/nss/db-Makefile
index 13259c188..f86ba12ba 100644
--- a/libc/nss/db-Makefile
+++ b/libc/nss/db-Makefile
@@ -59,7 +59,7 @@ $(VAR_DB)/group.db: /etc/group
} \
delete grmems; } } \
END { for (mem in members) \
- printf ":%s $s %s\n", mem, mem, members[mem]; }' $^ | \
+ printf ":%s %s %s\n", mem, mem, members[mem]; }' $^ | \
$(MAKEDB) -o $@ -
@echo "done."
diff --git a/libc/nss/getent.c b/libc/nss/getent.c
index fc0d685f0..c3649fcb0 100644
--- a/libc/nss/getent.c
+++ b/libc/nss/getent.c
@@ -524,6 +524,12 @@ initgroups_keys (int number, char *key[])
size_t grpslen = ngrps * sizeof (gid_t);
gid_t *grps = alloca (grpslen);
+ if (number == 0)
+ {
+ fprintf (stderr, _("Enumeration not supported on %s\n"), "initgroups");
+ return 3;
+ }
+
for (int i = 0; i < number; ++i)
{
int no = ngrps;
diff --git a/libc/nss/makedb.c b/libc/nss/makedb.c
index baa08bce1..e7bd8f858 100644
--- a/libc/nss/makedb.c
+++ b/libc/nss/makedb.c
@@ -845,7 +845,7 @@ set_file_creation_context (const char *outname, mode_t mode)
/* Check if SELinux is enabled, and remember. */
if (enabled == 0)
- enabled = is_selinux_enabled ();
+ enabled = is_selinux_enabled () ? 1 : -1;
if (enabled < 0)
return;
diff --git a/libc/nss/nss_files/files-XXX.c b/libc/nss/nss_files/files-XXX.c
index 1a6fa0ddd..8db052903 100644
--- a/libc/nss/nss_files/files-XXX.c
+++ b/libc/nss/nss_files/files-XXX.c
@@ -77,7 +77,7 @@ internal_setent (int stayopen)
if (stream == NULL)
{
- stream = fopen (DATAFILE, "re");
+ stream = fopen (DATAFILE, "rce");
if (stream == NULL)
status = errno == EAGAIN ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL;
diff --git a/libc/nss/nss_files/files-alias.c b/libc/nss/nss_files/files-alias.c
index 714299aad..023021e6c 100644
--- a/libc/nss/nss_files/files-alias.c
+++ b/libc/nss/nss_files/files-alias.c
@@ -48,7 +48,7 @@ internal_setent (void)
if (stream == NULL)
{
- stream = fopen ("/etc/aliases", "re");
+ stream = fopen ("/etc/aliases", "rce");
if (stream == NULL)
status = errno == EAGAIN ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL;
@@ -258,7 +258,7 @@ get_next_alias (const char *match, struct aliasent *result,
first_unused = cp;
- listfile = fopen (&cp[9], "r");
+ listfile = fopen (&cp[9], "rce");
/* If the file does not exist we simply ignore
the statement. */
if (listfile != NULL
diff --git a/libc/nss/nss_files/files-initgroups.c b/libc/nss/nss_files/files-initgroups.c
index c343b35e5..3a3b5c1e3 100644
--- a/libc/nss/nss_files/files-initgroups.c
+++ b/libc/nss/nss_files/files-initgroups.c
@@ -30,7 +30,7 @@ _nss_files_initgroups_dyn (const char *user, gid_t group, long int *start,
long int *size, gid_t **groupsp, long int limit,
int *errnop)
{
- FILE *stream = fopen ("/etc/group", "re");
+ FILE *stream = fopen ("/etc/group", "rce");
if (stream == NULL)
{
*errnop = errno;
@@ -73,7 +73,7 @@ _nss_files_initgroups_dyn (const char *user, gid_t group, long int *start,
if (buffer_use_malloc || ! __libc_use_alloca (buflen + newbuflen))
{
void *newbuf = realloc (buffer_use_malloc ? buffer : NULL,
- buflen);
+ newbuflen);
if (newbuf == NULL)
{
*errnop = ENOMEM;
diff --git a/libc/nss/nss_files/files-key.c b/libc/nss/nss_files/files-key.c
index fb108c809..cb3920482 100644
--- a/libc/nss/nss_files/files-key.c
+++ b/libc/nss/nss_files/files-key.c
@@ -33,7 +33,7 @@ extern int xdecrypt (char *, char *);
static enum nss_status
search (const char *netname, char *result, int *errnop, int secret)
{
- FILE *stream = fopen (DATAFILE, "re");
+ FILE *stream = fopen (DATAFILE, "rce");
if (stream == NULL)
return errno == EAGAIN ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL;
diff --git a/libc/nss/nss_files/files-netgrp.c b/libc/nss/nss_files/files-netgrp.c
index 4b5d774fd..f70196bc7 100644
--- a/libc/nss/nss_files/files-netgrp.c
+++ b/libc/nss/nss_files/files-netgrp.c
@@ -1,5 +1,5 @@
/* Netgroup file parser in nss_files modules.
- Copyright (C) 1996, 1997, 2000, 2004, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1996, 1997, 2000, 2004, 2005, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@@ -63,7 +63,7 @@ _nss_files_setnetgrent (const char *group, struct __netgrent *result)
return NSS_STATUS_UNAVAIL;
/* Find the netgroups file and open it. */
- fp = fopen (DATAFILE, "r");
+ fp = fopen (DATAFILE, "rce");
if (fp == NULL)
status = errno == EAGAIN ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL;
else
diff --git a/libc/nss/nsswitch.c b/libc/nss/nsswitch.c
index 06995bda6..674b3d32c 100644
--- a/libc/nss/nsswitch.c
+++ b/libc/nss/nsswitch.c
@@ -574,7 +574,7 @@ nss_parse_file (const char *fname)
size_t len;
/* Open the configuration file. */
- fp = fopen (fname, "rc");
+ fp = fopen (fname, "rce");
if (fp == NULL)
return NULL;
diff --git a/libc/po/es.po b/libc/po/es.po
index 493a54c60..e03b82676 100644
--- a/libc/po/es.po
+++ b/libc/po/es.po
@@ -1,382 +1,1448 @@
-# Mensajes en español para GNU libc.
-# Copyright (C) 1996, 1997, 1998, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-# Enrique Melero Gómez <melero@eurolands.com>, 1996, 1997.
-# Santiago Vila Doncel <sanvila@unex.es>, 1997, 1998, 2001, 2002, 2003, 2004.
+# Mensajes en español para GNU libc.
+# Copyright (C) 1996, 1997, 1998, 2001, 2002, 2003, 2004, 2011 Free Software Foundation, Inc.
+# This file is distributed under the same license as the glibc package.
+# Enrique Melero Gómez <melero@eurolands.com>, 1996, 1997.
+# Santiago Vila Doncel <sanvila@unex.es>, 1997, 1998, 2001, 2002, 2003, 2004, 2011.
#
msgid ""
msgstr ""
-"Project-Id-Version: GNU libc 2.3.3\n"
+"Project-Id-Version: GNU libc 2.14\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-08-05 09:16+0200\n"
-"PO-Revision-Date: 2004-12-28 19:46+0100\n"
+"POT-Creation-Date: 2011-05-31 00:06-0400\n"
+"PO-Revision-Date: 2011-10-25 17:03+0200\n"
"Last-Translator: Santiago Vila Doncel <sanvila@unex.es>\n"
"Language-Team: Spanish <es@li.org>\n"
+"Language: es\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
-# Habrá que mirar esto
-# Mirado, efectivamente esto es una señal que habrá
-# que dejarla con su nombre original ( entre paréntesis )
-#: sysdeps/generic/siglist.h:29 stdio-common/../sysdeps/unix/siglist.c:27
-msgid "Hangup"
-msgstr "Colgar (hangup)"
+#: argp/argp-help.c:228
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: El argumento ARGP_HELP_FMT requiere un valor"
-#: sysdeps/generic/siglist.h:30 stdio-common/../sysdeps/unix/siglist.c:28
-msgid "Interrupt"
-msgstr "Interrupción"
+#: argp/argp-help.c:238
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Parámetro ARGP_HELP_FMT desconocido"
-# Podría ser también "Abandonar" sv
-#: sysdeps/generic/siglist.h:31 stdio-common/../sysdeps/unix/siglist.c:29
-msgid "Quit"
-msgstr "Abandona"
+#: argp/argp-help.c:251
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Inconsistencias en ARGP_HELP_FMT: %s"
-# Se trata de una instrucción ilegal en el juego de instrucciones del 486
-# que provoca una "excepción".
-#: sysdeps/generic/siglist.h:32 stdio-common/../sysdeps/unix/siglist.c:30
-msgid "Illegal instruction"
-msgstr "Instrucción ilegal"
+#: argp/argp-help.c:1215
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr ""
+"Los argumentos obligatorios u opcionales para las opciones largas son\n"
+"también obligatorios u opcionales para las opciones cortas correspondientes."
-#: sysdeps/generic/siglist.h:33 stdio-common/../sysdeps/unix/siglist.c:31
-msgid "Trace/breakpoint trap"
-msgstr "`trap' para punto de parada/seguimiento"
+#: argp/argp-help.c:1601
+msgid "Usage:"
+msgstr "Modo de empleo:"
-#: sysdeps/generic/siglist.h:34
-msgid "Aborted"
-msgstr "Abortado"
+#: argp/argp-help.c:1605
+msgid " or: "
+msgstr " o: "
-#: sysdeps/generic/siglist.h:35 stdio-common/../sysdeps/unix/siglist.c:34
-msgid "Floating point exception"
-msgstr "Excepción de coma flotante"
+#: argp/argp-help.c:1617
+msgid " [OPTION...]"
+msgstr " [OPCIÓN...]"
-# A quien se le ocurra `matar' un proceso, que especifique con qué señal.
-# En todo caso ` Terminado ( KILL ) ' sería apropiado. Ver fuentes
-#: sysdeps/generic/siglist.h:36 stdio-common/../sysdeps/unix/siglist.c:35
-msgid "Killed"
-msgstr "Terminado (killed)"
+#: argp/argp-help.c:1644
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "Pruebe `%s --help' o `%s --usage' para más información.\n"
-#: sysdeps/generic/siglist.h:37 stdio-common/../sysdeps/unix/siglist.c:36
-msgid "Bus error"
-msgstr "Error del bus"
+#: argp/argp-help.c:1672
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Comunicar bichos a %s.\n"
-# ¿De "segmento", o de "segmentación"? sv
-# De segmentación me parece incorrecto. La memoria ya estaba
-# segmentada, y se intentó acceder a un segmento
-# que no pertenece al programa. em
-# ¿Entonces dirías que está mal el original inglés? sv
-# No, en inglés siempre se ha dicho así. Siempre he traducido
-# Segmentation fault como violación de segmento. Consultémoslo,
-# es un mensaje que se ve demasiado a menudo em
-#: sysdeps/generic/siglist.h:38 stdio-common/../sysdeps/unix/siglist.c:37
-msgid "Segmentation fault"
-msgstr "Violación de segmento"
+#: argp/argp-parse.c:102
+msgid "Give this help list"
+msgstr "Da esta lista de ayuda"
+
+#: argp/argp-parse.c:103
+msgid "Give a short usage message"
+msgstr "Da un mensaje corto de uso"
+
+#: argp/argp-parse.c:104
+msgid "Set the program name"
+msgstr "Establece el nombre del programa"
+
+#: argp/argp-parse.c:106
+msgid "Hang for SECS seconds (default 3600)"
+msgstr "Cuelga durante SECS segundos (por omisión, 3600)"
-# Vi traducido pipe como tubo en un libro sobre pc/dos, y me horrorizó
-# menos mal que venía siempre la palabra `pipe' al lado entrecomillada
+#: argp/argp-parse.c:167
+msgid "Print program version"
+msgstr "Muestra la versión del programa"
+
+#: argp/argp-parse.c:183
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(ERROR DEL PROGRAMA) ¿¡No se conoce ninguna versión!?"
+
+#: argp/argp-parse.c:623
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Demasiados argumentos\n"
+
+#: argp/argp-parse.c:766
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(ERROR DEL PROGRAMA) ¿¡No se debería haber reconocido la opción!?"
+
+# ¿Qué tiene de malo "inesperado"? sv
#
-# Este mensaje sale ahora cada vez que pulsas "q" cuando haces por ejemplo
-# cat loquesea | less
-# Sale *muy a menudo* y estoy harto, así que lo borro que ya está bien. sv
-#. 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 stdio-common/../sysdeps/gnu/errlist.c:351
-#: stdio-common/../sysdeps/unix/siglist.c:39
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:62
-msgid "Broken pipe"
-msgstr "Tubería rota"
+# Parece el nombre de película de los '50 em
+# ... y antes de que digas nada, a mí me encantan
+# las películas de los 50 em
+#
+# Pero es que esa palabra *existe* y significa "no esperado".
+# ¿Por qué quieres empobrecer el idioma de esa forma?
+# ¿No podrías emplear la forma in-loquesea unas veces sí y otras no,
+# para darle variedad a la cosa? (Por ejemplo aquí sí, pues no te debe
+# recordar a una opción en silla de ruedas...). sv+
+#
+# Lo cambio después de leer 1984. sv
+#: assert/assert-perr.c:37
+#, c-format
+msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n"
+msgstr "%s%s%s:%u: %s%sError inesperado: %s.\n"
-#: sysdeps/generic/siglist.h:40 stdio-common/../sysdeps/unix/siglist.c:40
-msgid "Alarm clock"
-msgstr "Temporizador"
+# La traducción de Jochen es exactamente esta: Zusicherung %s nicht erfüllt
+# que viene a decir algo así que las promesas no se han cumplido, o que
+# las afirmaciones hechas no son ciertas.
+#: assert/assert.c:105
+#, c-format
+msgid ""
+"%s%s%s:%u: %s%sAssertion `%s' failed.\n"
+"%n"
+msgstr ""
+"%s%s%s:%u: %s%sLa declaración `%s' no se cumple.\n"
+"%n"
-#: sysdeps/generic/siglist.h:41 stdio-common/../sysdeps/unix/siglist.c:41
-msgid "Terminated"
-msgstr "Terminado"
+#: catgets/gencat.c:110 catgets/gencat.c:114 nscd/nscd.c:100 nss/makedb.c:61
+msgid "NAME"
+msgstr "NOMBRE"
-# ?? sigo pensando en una traducción para condición
-#: sysdeps/generic/siglist.h:42 stdio-common/../sysdeps/unix/siglist.c:42
-msgid "Urgent I/O condition"
-msgstr "Condición urgente de E/S"
+#: catgets/gencat.c:111
+msgid "Create C header file NAME containing symbol definitions"
+msgstr "Crea un fichero de cabecera C, NOMBRE, que contiene las definiciones de símbolos"
-#: sysdeps/generic/siglist.h:43 stdio-common/../sysdeps/unix/siglist.c:43
-msgid "Stopped (signal)"
-msgstr "Parado (por una señal)"
+#: catgets/gencat.c:113
+msgid "Do not use existing catalog, force new output file"
+msgstr "No utiliza el catálogo existente, crea un nuevo fichero de salida"
-#: sysdeps/generic/siglist.h:44 stdio-common/../sysdeps/unix/siglist.c:44
-msgid "Stopped"
-msgstr "Parado"
+#: catgets/gencat.c:114 nss/makedb.c:61
+msgid "Write output to file NAME"
+msgstr "Escribe el resultado en el fichero NOMBRE"
-#: sysdeps/generic/siglist.h:45 stdio-common/../sysdeps/unix/siglist.c:45
-msgid "Continued"
-msgstr "Continúa"
+# FIXME: ¿Qué es ^K?
+#: 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 ""
+"Genera un catálogo de mensajes.\vSi FICHERO-ENTRADA es -, la entrada\n"
+"se lee de la entrada estándar. Si FICHERO-SALIDA es -, el resultado se\n"
+"escribe en la salida estándar.\n"
-#: sysdeps/generic/siglist.h:46 stdio-common/../sysdeps/unix/siglist.c:46
-msgid "Child exited"
-msgstr "El proceso hijo terminó"
+#: catgets/gencat.c:124
+msgid ""
+"-o OUTPUT-FILE [INPUT-FILE]...\n"
+"[OUTPUT-FILE [INPUT-FILE]...]"
+msgstr ""
+"-o FICHERO-SALIDA [FICHERO-ENTRADA]...\n"
+"[FICHERO-SALIDA [FICHERO-ENTRADA]...]"
-# Perdonad que sea tan largo, pero es algo que nunca está de más
-# Creo que mejora al original ;)
-#: sysdeps/generic/siglist.h:47 stdio-common/../sysdeps/unix/siglist.c:47
-msgid "Stopped (tty input)"
-msgstr "Parado (requiere entrada de terminal)"
+#: catgets/gencat.c:232 debug/pcprofiledump.c:208 debug/xtrace.sh:58
+#: elf/ldconfig.c:302 elf/ldd.bash.in:56 elf/sln.c:86 elf/sotruss.ksh:49
+#: elf/sprof.c:371 iconv/iconv_prog.c:408 iconv/iconvconfig.c:380
+#: locale/programs/locale.c:278 locale/programs/localedef.c:371
+#: login/programs/pt_chown.c:92 malloc/memusage.sh:65
+#: malloc/memusagestat.c:539 nscd/nscd.c:415 nss/getent.c:918 nss/makedb.c:231
+#: posix/getconf.c:1122 sunrpc/rpc_main.c:1492 sunrpc/rpcinfo.c:691
+#: sysdeps/unix/sysv/linux/lddlibc4.c:62
+msgid ""
+"For bug reporting instructions, please see:\n"
+"<http://www.gnu.org/software/libc/bugs.html>.\n"
+msgstr ""
+"Para instrucciones sobre informes de fallo, por favor consulte:\n"
+"<http://www.gnu.org/software/libc/bugs.html>.\n"
-# Perdonad que sea tan largo, pero es algo que nunca está de más
-# Creo que mejora al original ;)
-#: sysdeps/generic/siglist.h:48 stdio-common/../sysdeps/unix/siglist.c:48
-msgid "Stopped (tty output)"
-msgstr "Parado (requiere salida por terminal)"
+#: catgets/gencat.c:246 debug/pcprofiledump.c:222 debug/xtrace.sh:66
+#: elf/ldconfig.c:316 elf/ldd.bash.in:39 elf/sotruss.ksh:76 elf/sprof.c:386
+#: iconv/iconv_prog.c:423 iconv/iconvconfig.c:395 locale/programs/locale.c:293
+#: locale/programs/localedef.c:387 login/programs/pt_chown.c:63
+#: malloc/memusage.sh:73 malloc/memusagestat.c:557 nscd/nscd.c:429
+#: nss/getent.c:87 nss/makedb.c:245 posix/getconf.c:1104
+#: sysdeps/unix/sysv/linux/lddlibc4.c:69
+#, 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"
+"Esto es software libre; vea el código fuente para las condiciones de copia.\n"
+"No hay NINGUNA garantía; ni siquiera de COMERCIABILIDAD o IDONEIDAD PARA UN\n"
+"FIN DETERMINADO.\n"
-#: sysdeps/generic/siglist.h:49 stdio-common/../sysdeps/unix/siglist.c:49
-msgid "I/O possible"
-msgstr "Operación de E/S permitida"
+#: catgets/gencat.c:251 debug/pcprofiledump.c:227 debug/xtrace.sh:70
+#: elf/ldconfig.c:321 elf/sprof.c:392 iconv/iconv_prog.c:428
+#: iconv/iconvconfig.c:400 locale/programs/locale.c:298
+#: locale/programs/localedef.c:392 malloc/memusage.sh:77
+#: malloc/memusagestat.c:562 nscd/nscd.c:434 nss/getent.c:92 nss/makedb.c:250
+#: posix/getconf.c:1109
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Escrito por %s.\n"
-#: sysdeps/generic/siglist.h:50 stdio-common/../sysdeps/unix/siglist.c:50
-msgid "CPU time limit exceeded"
-msgstr "Rebasado el límite de tiempo de CPU"
+#: catgets/gencat.c:282
+msgid "*standard input*"
+msgstr "*entrada estándar*"
-#: sysdeps/generic/siglist.h:51 stdio-common/../sysdeps/unix/siglist.c:51
-msgid "File size limit exceeded"
-msgstr "Superado el límite de tamaño de fichero"
+#: catgets/gencat.c:288 iconv/iconv_charmap.c:170 iconv/iconv_prog.c:294
+#: nss/makedb.c:170
+#, c-format
+msgid "cannot open input file `%s'"
+msgstr "no se puede abrir el fichero de entrada `%s'"
-#: sysdeps/generic/siglist.h:52 stdio-common/../sysdeps/unix/siglist.c:52
-msgid "Virtual timer expired"
-msgstr "El temporizador virtual llegó al final"
+#: catgets/gencat.c:417 catgets/gencat.c:494
+msgid "illegal set number"
+msgstr "número de conjunto ilegal"
-# ¿No habría que traducir profile? sv
-# Miré los fuentes, y la última documentación de Glibc
-# No se me ocurre traducción para profile ( así se llamaba
-# en los viejos apple al disco duro de 5 Megas ) em
-# Pero esto no tiene nada que ver, ¿no?
-# "Profiling" es ejecutar un programa midiendo qué partes de él consumen
-# más tiempo. Creo recordar que esto tenía nombre en español, pero no
-# me acuerdo de cuál. sv
-# Gracias por la explicación, sé que era algo referente
-# al trace o debug de un programa. Miro a la alemana.
-#: sysdeps/generic/siglist.h:53 stdio-common/../sysdeps/unix/siglist.c:53
-msgid "Profiling timer expired"
-msgstr "El tiempo de CPU expiró"
+#: catgets/gencat.c:444
+msgid "duplicate set definition"
+msgstr "definición de conjunto duplicada"
-#: sysdeps/generic/siglist.h:54 stdio-common/../sysdeps/unix/siglist.c:54
-msgid "Window changed"
-msgstr "La ventana ha cambiado"
+#: catgets/gencat.c:446 catgets/gencat.c:623 catgets/gencat.c:677
+msgid "this is the first definition"
+msgstr "esta es la primera vez que aparece la definición"
-#: sysdeps/generic/siglist.h:55 stdio-common/../sysdeps/unix/siglist.c:56
-msgid "User defined signal 1"
-msgstr "Señal definida por el usuario 1"
+#: catgets/gencat.c:522
+#, c-format
+msgid "unknown set `%s'"
+msgstr "conjunto `%s' desconocido"
-#: sysdeps/generic/siglist.h:56 stdio-common/../sysdeps/unix/siglist.c:57
-msgid "User defined signal 2"
-msgstr "Señal definida por el usuario 2"
+#: catgets/gencat.c:563
+msgid "invalid quote character"
+msgstr "carácter de cita inválido"
-# ???, siempre lo he usado como trap, nunca encontramos la palabra
-# y es una señal estándar Unix, así que no creo conveniente traducirla
-#: sysdeps/generic/siglist.h:60 stdio-common/../sysdeps/unix/siglist.c:33
-msgid "EMT trap"
-msgstr "`trap' de EMT"
+# descartada (?) sv
+# ¿y así? em
+# por mí, vale. sv+
+#: catgets/gencat.c:576
+#, c-format
+msgid "unknown directive `%s': line ignored"
+msgstr "directiva desconocida `%s': línea pasada por alto"
-#: sysdeps/generic/siglist.h:63 stdio-common/../sysdeps/unix/siglist.c:38
-msgid "Bad system call"
-msgstr "Llamada al sistema errónea"
+#: catgets/gencat.c:621
+msgid "duplicated message number"
+msgstr "número de mensaje duplicado"
-#: sysdeps/generic/siglist.h:66
-msgid "Stack fault"
-msgstr "Fallo en la pila"
+#: catgets/gencat.c:674
+msgid "duplicated message identifier"
+msgstr "identificador de mensaje duplicado"
-#: sysdeps/generic/siglist.h:69
-msgid "Information request"
-msgstr "Petición de información"
+#: catgets/gencat.c:731
+msgid "invalid character: message ignored"
+msgstr "carácter inválido: mensaje descartado"
-#: sysdeps/generic/siglist.h:71
-msgid "Power failure"
-msgstr "Fallo de alimentación"
+#: catgets/gencat.c:774
+msgid "invalid line"
+msgstr "línea inválida"
-#: sysdeps/generic/siglist.h:74 stdio-common/../sysdeps/unix/siglist.c:55
-msgid "Resource lost"
-msgstr "Recurso perdido"
+#: catgets/gencat.c:828
+msgid "malformed line ignored"
+msgstr "una línea incorrecta no se tendrá en cuenta"
-# ¿Qué demonios es esto?
-# ¿Error en el error del sistema desconocido? sv
-#: sysdeps/mach/hurd/mips/dl-machine.c:68
-#: string/../sysdeps/mach/_strerror.c:57
-msgid "Error in unknown error system: "
-msgstr "Error de sistema desconocido: "
+#: catgets/gencat.c:992 catgets/gencat.c:1033 nss/makedb.c:183
+#, c-format
+msgid "cannot open output file `%s'"
+msgstr "no se puede abrir el fichero de salida `%s'"
-#: sysdeps/mach/hurd/mips/dl-machine.c:83
-#: string/../sysdeps/generic/_strerror.c:44
-#: string/../sysdeps/mach/_strerror.c:87
-msgid "Unknown error "
-msgstr "Error desconocido "
+#: catgets/gencat.c:1195 locale/programs/linereader.c:560
+msgid "invalid escape sequence"
+msgstr "secuencia de escape inválida"
+
+#: catgets/gencat.c:1217
+msgid "unterminated message"
+msgstr "mensaje sin terminar"
-#: sysdeps/unix/sysv/linux/lddlibc4.c:64
+#: catgets/gencat.c:1241
#, c-format
-msgid "cannot open `%s'"
-msgstr "no se puede abrir `%s'"
+msgid "while opening old catalog file"
+msgstr "al abrir el fichero de catálogo antiguo"
-#: sysdeps/unix/sysv/linux/lddlibc4.c:68
+#: catgets/gencat.c:1332
#, c-format
-msgid "cannot read header from `%s'"
-msgstr "no se puede leer la cabecera de `%s'"
+msgid "conversion modules not available"
+msgstr "no están disponibles los módulos de conversión"
-#: iconv/iconv_charmap.c:159 iconv/iconv_prog.c:295 catgets/gencat.c:288
+#: catgets/gencat.c:1358
#, c-format
-msgid "cannot open input file `%s'"
-msgstr "no se puede abrir el fichero de entrada `%s'"
+msgid "cannot determine escape character"
+msgstr "no se puede determinar el carácter de escape"
+
+#: debug/pcprofiledump.c:53
+msgid "Don't buffer output"
+msgstr "No hace pasar el resultado a través de un búfer"
+
+# Se admiten sugerencias. sv
+#: debug/pcprofiledump.c:58
+msgid "Dump information generated by PC profiling."
+msgstr "Información de volcado generada mediante `PC profiling'."
+
+#: debug/pcprofiledump.c:61
+msgid "[FILE]"
+msgstr "[FICHERO]"
+
+#: debug/pcprofiledump.c:108
+#, c-format
+msgid "cannot open input file"
+msgstr "no se puede abrir el fichero de entrada"
+
+#: debug/pcprofiledump.c:115
+#, c-format
+msgid "cannot read header"
+msgstr "no se puede leer la cabecera"
+
+#: debug/pcprofiledump.c:179
+#, c-format
+msgid "invalid pointer size"
+msgstr "tamaño de puntero inválido"
+
+#: debug/xtrace.sh:27 debug/xtrace.sh:45
+msgid "Usage: xtrace [OPTION]... PROGRAM [PROGRAMOPTION]...\\n"
+msgstr "Modo de empleo: xtrace [OPCIÓN]... PROGRAMA [OPCIÓNDEPROGRAMA]...\\n"
+
+#: debug/xtrace.sh:33 malloc/memusage.sh:27
+msgid "Try \\`%s --help' or `%s --usage' for more information.\\n"
+msgstr "Pruebe \\`%s --help' o `%s --usage' para más información.\\n"
+
+#: debug/xtrace.sh:39
+msgid "%s: option '%s' requires an argument.\\n"
+msgstr "%s: la opción '%s' requiere un argumento\\n"
+
+#: debug/xtrace.sh:46
+msgid ""
+"Trace execution of program by printing currently executed function.\n"
+"\n"
+" --data=FILE Don't run the program, just print the data from FILE.\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"
+"Mandatory arguments to long options are also mandatory for any corresponding\n"
+"short options.\n"
+"\n"
+msgstr ""
+"Sigue la ejecución del programa mostrando la función que se ejecuta actualmente.\n"
+"\n"
+" --data=FICHERO No ejecuta el programa, solamente muestra los datos\n"
+" de FICHERO\n"
+" -?,--help Muestra esta ayuda y finaliza\n"
+" --usage Da un mensaje de uso breve\n"
+" -V,--version Muestra la información de versión y finaliza\n"
+"\n"
+"Los argumentos obligatorios para las opciones largas son también obligatorios\n"
+"para las opciones cortas correspondientes.\n"
+
+#: debug/xtrace.sh:127
+msgid "xtrace: unrecognized option \\`$1'\\n"
+msgstr "xtrace: opción no reconocida \\`$1'\\n"
+
+#: debug/xtrace.sh:140
+msgid "No program name given\\n"
+msgstr "No se ha especificado el nombre del programa\\n"
+
+#: debug/xtrace.sh:148
+#, sh-format
+msgid "executable \\`$program' not found\\n"
+msgstr "no se ha encontrado el ejecutable \\`$program'\\n"
+
+#: debug/xtrace.sh:152
+#, sh-format
+msgid "\\`$program' is no executable\\n"
+msgstr "\\`$program' no es ejecutable\\n"
+
+#: dlfcn/dlinfo.c:64
+msgid "RTLD_SELF used in code not dynamically loaded"
+msgstr "Se ha usado RTLD_SELF en una parte del código que no se cargó dinámicamente"
+
+#: dlfcn/dlinfo.c:73
+msgid "unsupported dlinfo request"
+msgstr "Petición dlinfo no admitida"
+
+#: dlfcn/dlmopen.c:64
+msgid "invalid namespace"
+msgstr "espacio de nombres inválido"
+
+#: dlfcn/dlmopen.c:69
+msgid "invalid mode"
+msgstr "modo inválido"
+
+#: dlfcn/dlopen.c:65
+msgid "invalid mode parameter"
+msgstr "parámetro de modo inválido"
+
+# FIXME: Falta ver si es niño o niña. sv
+#: elf/cache.c:69
+msgid "unknown"
+msgstr "desconocido/a"
+
+#: elf/cache.c:112
+msgid "Unknown OS"
+msgstr "Sistema Operativo desconocido"
+
+#: elf/cache.c:117
+#, c-format
+msgid ", OS ABI: %s %d.%d.%d"
+msgstr ", ABI del SO: %s %d.%d.%d"
+
+#: elf/cache.c:134 elf/ldconfig.c:1305
+#, c-format
+msgid "Can't open cache file %s\n"
+msgstr "No se puede abrir el fichero de caché %s\n"
+
+#: elf/cache.c:148
+#, c-format
+msgid "mmap of cache file failed.\n"
+msgstr "falló la operación `mmap' sobre el fichero de caché.\n"
+
+#: elf/cache.c:152 elf/cache.c:166
+#, c-format
+msgid "File is not a cache file.\n"
+msgstr "El fichero no es un fichero de caché.\n"
+
+#: elf/cache.c:199 elf/cache.c:209
+#, c-format
+msgid "%d libs found in cache `%s'\n"
+msgstr "%d bibliotecas se encontraron en la caché `%s'\n"
+
+#: elf/cache.c:403
+#, c-format
+msgid "Can't create temporary cache file %s"
+msgstr "No se puede crear el fichero temporal de caché %s"
+
+#: elf/cache.c:411 elf/cache.c:421 elf/cache.c:425 elf/cache.c:430
+#, c-format
+msgid "Writing of cache data failed"
+msgstr "Falló la escritura de los datos de la caché"
+
+#: elf/cache.c:435
+#, c-format
+msgid "Changing access rights of %s to %#o failed"
+msgstr "El cambio de los derechos de acceso de %s a %#o falló"
+
+#: elf/cache.c:440
+#, c-format
+msgid "Renaming of %s to %s failed"
+msgstr "Falló el renombramiento de %s a %s"
+
+#: elf/dl-close.c:387 elf/dl-open.c:397
+msgid "cannot create scope list"
+msgstr "no se puede crear la lista de ámbito"
+
+#: elf/dl-close.c:767
+msgid "shared object not open"
+msgstr "el objeto compartido no está abierto"
+
+#: elf/dl-deps.c:114
+msgid "DST not allowed in SUID/SGID programs"
+msgstr "No se permite DST en programas SUID/SGID"
+
+#: elf/dl-deps.c:127
+msgid "empty dynamic string token substitution"
+msgstr "sustitución dinámica de un elemento por una cadena vacía"
+
+# Hmm, me suena que lo que es dinámica aquí es la cadena, no la sustitución.
+# FIXME: Consultarlo. sv
+#: elf/dl-deps.c:133
+#, c-format
+msgid "cannot load auxiliary `%s' because of empty dynamic string token substitution\n"
+msgstr ""
+"no se puede cargar el `%s' auxiliar debido a la sustitución dinámica\n"
+"de un elemento por cadena vacía\n"
+
+#: elf/dl-deps.c:474
+msgid "cannot allocate dependency list"
+msgstr "no se pudo asignar espacio para la lista de dependencias"
+
+#: elf/dl-deps.c:514 elf/dl-deps.c:574
+msgid "cannot allocate symbol search list"
+msgstr "no se puede asignar espacio para la lista de búsqueda de los símbolos"
+
+#: elf/dl-deps.c:554
+msgid "Filters not supported with LD_TRACE_PRELINKING"
+msgstr "No se admiten filtros con LD_TRACE_PRELINKING"
+
+# Véase "A bug's life".
+#: elf/dl-error.c:77
+msgid "DYNAMIC LINKER BUG!!!"
+msgstr "¡¡¡HAY UN BICHO EN EL ENLAZADOR DINÃMICO!!!"
+
+#: elf/dl-error.c:124
+msgid "error while loading shared libraries"
+msgstr "error al cargar las bibliotecas compartidas"
+
+#: elf/dl-fptr.c:88
+msgid "cannot map pages for fdesc table"
+msgstr "no se pueden asignar páginas para la tabla fdesc"
+
+#: elf/dl-fptr.c:192
+msgid "cannot map pages for fptr table"
+msgstr "no se pueden asignar páginas para la tabla fptr"
+
+#: elf/dl-fptr.c:221
+msgid "internal error: symidx out of range of fptr table"
+msgstr "error interno: symidx fuera del rango de la tabla fptr"
+
+#: elf/dl-load.c:471
+msgid "cannot allocate name record"
+msgstr "no se puede asignar el registro del nombre"
+
+# He intentado mejorarlo un poco ...
+#
+#: elf/dl-load.c:548 elf/dl-load.c:664 elf/dl-load.c:749 elf/dl-load.c:862
+msgid "cannot create cache for search path"
+msgstr "no se puede crear un caché para la ruta de búsqueda"
+
+#: elf/dl-load.c:639
+msgid "cannot create RUNPATH/RPATH copy"
+msgstr "no se puede crear una copia RUNPATH/RPATH"
+
+#: elf/dl-load.c:735
+msgid "cannot create search path array"
+msgstr "no se puede crear la matriz de la ruta de búsqueda"
+
+#: elf/dl-load.c:931
+msgid "cannot stat shared object"
+msgstr "no se puede efectuar `stat' sobre el objeto compartido"
+
+#: elf/dl-load.c:1009
+msgid "cannot open zero fill device"
+msgstr "no se puede abrir el dispositivo de `zero fill'"
+
+#: elf/dl-load.c:1055 elf/dl-load.c:2313
+msgid "cannot create shared object descriptor"
+msgstr "no se puede crear el descriptor del objeto compartido"
+
+#: elf/dl-load.c:1074 elf/dl-load.c:1730 elf/dl-load.c:1833
+msgid "cannot read file data"
+msgstr "no se pueden leer los datos del fichero"
+
+#: elf/dl-load.c:1120
+msgid "ELF load command alignment not page-aligned"
+msgstr "El alineamiento de la orden de carga ELF no está alineada a la página"
+
+#: elf/dl-load.c:1127
+msgid "ELF load command address/offset not properly aligned"
+msgstr "La dirección/desplazamiento de la orden de carga ELF no está bien alineada"
+
+#: elf/dl-load.c:1210
+msgid "cannot allocate TLS data structures for initial thread"
+msgstr "no se pueden crear las estructuras de datos TLS para el hilo inicial"
+
+#: elf/dl-load.c:1233
+msgid "cannot handle TLS data"
+msgstr "no se pueden manejar los datos de TLS"
+
+#: elf/dl-load.c:1252
+msgid "object file has no loadable segments"
+msgstr "el fichero objeto no tiene segmentos cargables"
+
+#: elf/dl-load.c:1288
+msgid "failed to map segment from shared object"
+msgstr "fallo al asignar un segmento del objeto compartido"
+
+#: elf/dl-load.c:1314
+msgid "cannot dynamically load executable"
+msgstr "no se puede cargar el ejecutable dinámicamente"
+
+#: elf/dl-load.c:1376
+msgid "cannot change memory protections"
+msgstr "no se pueden cambiar las protecciones de memoria"
+
+#: elf/dl-load.c:1395
+msgid "cannot map zero-fill pages"
+msgstr "no se pueden asignar páginas de tipo `zero-fill'"
+
+#: elf/dl-load.c:1409
+msgid "object file has no dynamic section"
+msgstr "el fichero objeto no tiene sección dinámica"
+
+#: elf/dl-load.c:1432
+msgid "shared object cannot be dlopen()ed"
+msgstr "no se puede efectuar dlopen() sobre el objeto compartido"
+
+#: elf/dl-load.c:1445
+msgid "cannot allocate memory for program header"
+msgstr "no se puede asignar memoria para la cabecera del programa"
+
+#: elf/dl-load.c:1462 elf/dl-open.c:180
+msgid "invalid caller"
+msgstr "llamante inválido"
+
+#: elf/dl-load.c:1501
+msgid "cannot enable executable stack as shared object requires"
+msgstr "no se puede activar la pila ejecutable tal y como el objeto compartido necesita"
+
+#: elf/dl-load.c:1514
+msgid "cannot close file descriptor"
+msgstr "no se puede cerrar el descriptor de fichero"
+
+#: elf/dl-load.c:1730
+msgid "file too short"
+msgstr "fichero demasiado corto"
+
+#: elf/dl-load.c:1766
+msgid "invalid ELF header"
+msgstr "cabecera ELF inválida"
+
+#: elf/dl-load.c:1778
+msgid "ELF file data encoding not big-endian"
+msgstr "La codificación de los datos del fichero ELF no es `big-endian'"
+
+#: elf/dl-load.c:1780
+msgid "ELF file data encoding not little-endian"
+msgstr "La codificación de los datos del fichero ELF no es `little-endian'"
+
+#: elf/dl-load.c:1784
+msgid "ELF file version ident does not match current one"
+msgstr "La identificación de versión del fichero ELF no encaja con la actual"
+
+#: elf/dl-load.c:1788
+msgid "ELF file OS ABI invalid"
+msgstr "ABI del OS del fichero ELF inválida"
+
+#: elf/dl-load.c:1791
+msgid "ELF file ABI version invalid"
+msgstr "Versión de ABI del fichero ELF inválida"
+
+#: elf/dl-load.c:1794
+msgid "nonzero padding in e_ident"
+msgstr "relleno con no ceros en e_ident"
+
+#: elf/dl-load.c:1797
+msgid "internal error"
+msgstr "error interno"
+
+#: elf/dl-load.c:1804
+msgid "ELF file version does not match current one"
+msgstr "La versión del fichero ELF no coincide con la actual"
+
+#: elf/dl-load.c:1812
+msgid "only ET_DYN and ET_EXEC can be loaded"
+msgstr "solamente pueden cargarse ET_DYN y ET_EXEC"
+
+#: elf/dl-load.c:1818
+msgid "ELF file's phentsize not the expected size"
+msgstr "El `phentsize' del fichero ELF no es el tamaño esperado"
+
+#: elf/dl-load.c:2332
+msgid "wrong ELF class: ELFCLASS64"
+msgstr "clase ELF errónea: ELFCLASS64"
+
+#: elf/dl-load.c:2333
+msgid "wrong ELF class: ELFCLASS32"
+msgstr "clase ELF errónea: ELFCLASS32"
+
+#: elf/dl-load.c:2336
+msgid "cannot open shared object file"
+msgstr "no se puede abrir el fichero del objeto compartido"
+
+#: elf/dl-lookup.c:757
+msgid "relocation error"
+msgstr "error de relocalización"
+
+#: elf/dl-lookup.c:785
+msgid "symbol lookup error"
+msgstr "error de búsqueda de símbolo"
+
+#: elf/dl-open.c:115
+msgid "cannot extend global scope"
+msgstr "no se puede extender el ámbito global"
+
+#: elf/dl-open.c:440
+msgid "TLS generation counter wrapped! Please report this."
+msgstr "¡El contador de generaciones TLS ha vuelto a cero! Por favor envíe un informe."
+
+#: elf/dl-open.c:462
+msgid "cannot load any more object with static TLS"
+msgstr "no se puede cargar ningún objeto más con TLS estático"
+
+#: elf/dl-open.c:511
+msgid "invalid mode for dlopen()"
+msgstr "modo inválido para dlopen()"
+
+#: elf/dl-open.c:528
+msgid "no more namespaces available for dlmopen()"
+msgstr "no hay más espacios de nombres disponibles para dlmopen()"
+
+#: elf/dl-open.c:547
+msgid "invalid target namespace in dlmopen()"
+msgstr "espacio de nombres objetivo inválido para dlmopen()"
+
+#: elf/dl-reloc.c:120
+msgid "cannot allocate memory in static TLS block"
+msgstr "No se pudo asignar memoria en el bloque TLS estático"
+
+#: elf/dl-reloc.c:212
+msgid "cannot make segment writable for relocation"
+msgstr "no se puede hacer el segmento escribible para su relocalización"
+
+#: elf/dl-reloc.c:275
+#, c-format
+msgid "%s: no PLTREL found in object %s\n"
+msgstr "%s no se encontró ningún PLTREL en el objeto %s\n"
+
+#: elf/dl-reloc.c:286
+#, c-format
+msgid "%s: out of memory to store relocation results for %s\n"
+msgstr "%s: memoria agotada para almacenar los resultados de relocalización para %s\n"
+
+# Se admiten sugerencias. sv
+#: elf/dl-reloc.c:302
+msgid "cannot restore segment prot after reloc"
+msgstr "no se puede restaurar el `prot' del segmento después de la relocalización"
+
+#: elf/dl-reloc.c:331
+msgid "cannot apply additional memory protection after relocation"
+msgstr "no se pueden aplicar protecciones de memoria adicionales después de relocalizar"
+
+#: elf/dl-sym.c:162
+msgid "RTLD_NEXT used in code not dynamically loaded"
+msgstr "Se ha usado RTLD_NEXT en una parte del código que no se cargó dinámicamente"
+
+#: elf/dl-sysdep.c:488 elf/dl-sysdep.c:500
+msgid "cannot create capability list"
+msgstr "no se puede crear la lista de capacidades"
+
+#: elf/dl-tls.c:861
+msgid "cannot create TLS data structures"
+msgstr "no se pueden crear las estructuras de datos TLS"
+
+#: elf/dl-version.c:172
+msgid "version lookup error"
+msgstr "error de búsqueda de versión"
+
+#: elf/dl-version.c:303
+msgid "cannot allocate version reference table"
+msgstr "no se puede asignar espacio para la tabla de versiones de referencia"
+
+#: elf/ldconfig.c:141
+msgid "Print cache"
+msgstr "Muestra la caché"
+
+#: elf/ldconfig.c:142
+msgid "Generate verbose messages"
+msgstr "Genera mensajes explicativos"
+
+#: elf/ldconfig.c:143
+msgid "Don't build cache"
+msgstr "No crea caché"
+
+#: elf/ldconfig.c:144
+msgid "Don't generate links"
+msgstr "No genera enlaces"
+
+#: elf/ldconfig.c:145
+msgid "Change to and use ROOT as root directory"
+msgstr "Cambia a RAÃZ y lo utiliza como directorio raíz"
+
+#: elf/ldconfig.c:145
+msgid "ROOT"
+msgstr "RAÃZ"
+
+#: elf/ldconfig.c:146
+msgid "CACHE"
+msgstr "CACHÉ"
+
+#: elf/ldconfig.c:146
+msgid "Use CACHE as cache file"
+msgstr "Utiliza CACHE como fichero de caché"
+
+#: elf/ldconfig.c:147
+msgid "CONF"
+msgstr "CONF"
+
+#: elf/ldconfig.c:147
+msgid "Use CONF as configuration file"
+msgstr "Utiliza CONF como fichero de configuración"
+
+#: elf/ldconfig.c:148
+msgid "Only process directories specified on the command line. Don't build cache."
+msgstr ""
+"Procesa únicamente los directorios especificados en la línea de órdenes.\n"
+"No crea la caché."
+
+#: elf/ldconfig.c:149
+msgid "Manually link individual libraries."
+msgstr "Enlace bibliotecas individuales manualmente."
+
+#: elf/ldconfig.c:150
+msgid "FORMAT"
+msgstr "FORMATO"
+
+#: elf/ldconfig.c:150
+msgid "Format to use: new, old or compat (default)"
+msgstr "Formato utilizado: new, old o compat (predeterminado)"
+
+# Antes decía: .rhosts no es un fichero regular
+#: elf/ldconfig.c:151
+msgid "Ignore auxiliary cache file"
+msgstr "Descarta el fichero de caché auxiliar"
+
+# FIXME: Why So Many Uppercase Letters? sv
+#: elf/ldconfig.c:159
+msgid "Configure Dynamic Linker Run Time Bindings."
+msgstr "Configura las asociaciones de tiempo de ejecución del enlazador dinámico"
+
+#: elf/ldconfig.c:339
+#, c-format
+msgid "Path `%s' given more than once"
+msgstr "Se ha dado la ruta `%s' más de una vez"
+
+#: elf/ldconfig.c:379
+#, c-format
+msgid "%s is not a known library type"
+msgstr "%s no es un tipo de biblioteca conocido"
+
+#: elf/ldconfig.c:407
+#, c-format
+msgid "Can't stat %s"
+msgstr "No se puede efectuar `stat' sobre %s"
+
+#: elf/ldconfig.c:481
+#, c-format
+msgid "Can't stat %s\n"
+msgstr "No se puede efectuar `stat' sobre %s\n"
+
+#: elf/ldconfig.c:491
+#, c-format
+msgid "%s is not a symbolic link\n"
+msgstr "%s no es un enlace simbólico\n"
+
+#: elf/ldconfig.c:510
+#, c-format
+msgid "Can't unlink %s"
+msgstr "No se puede efectuar `unlink' sobre %s"
+
+#: elf/ldconfig.c:516
+#, c-format
+msgid "Can't link %s to %s"
+msgstr "No se puede crear un enlace de %s a %s"
+
+#: elf/ldconfig.c:522
+msgid " (changed)\n"
+msgstr " (cambiado)\n"
+
+#: elf/ldconfig.c:524
+msgid " (SKIPPED)\n"
+msgstr " (SALTADO)\n"
+
+#: elf/ldconfig.c:579
+#, c-format
+msgid "Can't find %s"
+msgstr "No se encuentra %s"
+
+#: elf/ldconfig.c:595 elf/ldconfig.c:768 elf/ldconfig.c:827 elf/ldconfig.c:861
+#, c-format
+msgid "Cannot lstat %s"
+msgstr "No se puede efectuar `lstat' sobre %s"
+
+#: elf/ldconfig.c:602
+#, c-format
+msgid "Ignored file %s since it is not a regular file."
+msgstr "Descartado el fichero %s dado que no es un fichero regular."
+
+#: elf/ldconfig.c:611
+#, c-format
+msgid "No link created since soname could not be found for %s"
+msgstr "No se creó el enlace ya que no se encontró el soname para %s"
+
+#: elf/ldconfig.c:694
+#, c-format
+msgid "Can't open directory %s"
+msgstr "No se puede abrir el directorio %s"
+
+#: elf/ldconfig.c:786 elf/ldconfig.c:848 elf/readlib.c:91
+#, c-format
+msgid "Input file %s not found.\n"
+msgstr "No se encontró el fichero de entrada %s.\n"
-#: iconv/iconv_charmap.c:177 iconv/iconv_prog.c:313
+#: elf/ldconfig.c:793
+#, c-format
+msgid "Cannot stat %s"
+msgstr "No se puede efectuar `stat' sobre %s"
+
+#: elf/ldconfig.c:922
+#, c-format
+msgid "libc5 library %s in wrong directory"
+msgstr "biblioteca libc5 %s en un directorio equivocado"
+
+#: elf/ldconfig.c:925
+#, c-format
+msgid "libc6 library %s in wrong directory"
+msgstr "biblioteca libc6 %s en un directorio equivocado"
+
+#: elf/ldconfig.c:928
+#, c-format
+msgid "libc4 library %s in wrong directory"
+msgstr "biblioteca libc4 %s en un directorio equivocado"
+
+#: elf/ldconfig.c:956
+#, c-format
+msgid "libraries %s and %s in directory %s have same soname but different type."
+msgstr "las bibliotecas %s y %s en el directorio %s tienen el mismo soname pero distinto tipo."
+
+#: elf/ldconfig.c:1065
+#, c-format
+msgid "Can't open configuration file %s"
+msgstr "No se puede abrir el fichero de configuración `%s'"
+
+#: elf/ldconfig.c:1129
+#, c-format
+msgid "%s:%u: bad syntax in hwcap line"
+msgstr "%s:%u: sintaxis errónea en línea hwcap"
+
+#: elf/ldconfig.c:1135
+#, c-format
+msgid "%s:%u: hwcap index %lu above maximum %u"
+msgstr "%s:%u: el índice de hwcap %lu está por encima del máximo %u"
+
+#: elf/ldconfig.c:1142 elf/ldconfig.c:1150
+#, c-format
+msgid "%s:%u: hwcap index %lu already defined as %s"
+msgstr "%s:%u: el índice de hwcap %lu ya está definido como %s"
+
+#: elf/ldconfig.c:1153
+#, c-format
+msgid "%s:%u: duplicate hwcap %lu %s"
+msgstr "%s:%u: hwcap duplicado %lu %s"
+
+#: elf/ldconfig.c:1175
+#, c-format
+msgid "need absolute file name for configuration file when using -r"
+msgstr "se necesita un nombre de fichero absoluto para el fichero de configuración cuando se utiliza -r"
+
+#: elf/ldconfig.c:1182 locale/programs/xmalloc.c:70 malloc/obstack.c:434
+#: malloc/obstack.c:436 posix/getconf.c:1077 posix/getconf.c:1297
+#, c-format
+msgid "memory exhausted"
+msgstr "memoria agotada"
+
+#: elf/ldconfig.c:1214
+#, c-format
+msgid "%s:%u: cannot read directory %s"
+msgstr "%s:%u: no se puede leer el directorio %s"
+
+#: elf/ldconfig.c:1258
+#, c-format
+msgid "relative path `%s' used to build cache"
+msgstr "se usa el camino relativo `%s' para construir el caché"
+
+#: elf/ldconfig.c:1284
+#, c-format
+msgid "Can't chdir to /"
+msgstr "No se puede cambiar al directorio /"
+
+#: elf/ldconfig.c:1325
+#, c-format
+msgid "Can't open cache file directory %s\n"
+msgstr "No se puede leer el directorio de ficheros de caché %s\n"
+
+#: elf/ldd.bash.in:43
+msgid "Written by %s and %s.\n"
+msgstr "Escrito por %s y %s.\n"
+
+#: 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"
+msgstr ""
+"Modo de empleo: ldd [OPCIÓN]... FICHERO...\n"
+" --help muestra esta ayuda y finaliza\n"
+" --version muestra la versión y finaliza\n"
+" -d, --data-relocs procesa las relocalizaciones de datos\n"
+" -r, --function-relocs procesa las relocalizaciones de datos y de funciones\n"
+" -u, --unused muestra las dependencias directas no utilizadas\n"
+" -v, --verbose muestra toda la información\n"
+
+#: elf/ldd.bash.in:82
+msgid "ldd: option \\`$1' is ambiguous"
+msgstr "ldd: la opción \\`$1' es ambigua"
+
+#: elf/ldd.bash.in:89
+msgid "unrecognized option"
+msgstr "opción no reconocida"
+
+#: elf/ldd.bash.in:90 elf/ldd.bash.in:128
+msgid "Try \\`ldd --help' for more information."
+msgstr "Pruebe \\`ldd --help' para más información."
+
+#: elf/ldd.bash.in:127
+msgid "missing file arguments"
+msgstr "faltan los ficheros de argumentos"
+
+#. 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:150 sysdeps/gnu/errlist.c:36
+msgid "No such file or directory"
+msgstr "No existe el fichero o el directorio"
+
+# Antes decía: .rhosts no es un fichero regular
+#: elf/ldd.bash.in:153 inet/rcmd.c:488
+msgid "not regular file"
+msgstr "no es un fichero regular"
+
+#: elf/ldd.bash.in:156
+msgid "warning: you do not have execution permission for"
+msgstr "atención: no tiene permiso de ejecitación para"
+
+#: elf/ldd.bash.in:185
+msgid "\tnot a dynamic executable"
+msgstr "\tno es un ejecutable dinámico"
+
+#: elf/ldd.bash.in:193
+msgid "exited with unknown exit code"
+msgstr "salió con estado de salida desconocido"
+
+#: elf/ldd.bash.in:198
+msgid "error: you do not have read permission for"
+msgstr "error: no tiene permiso de lectura para"
+
+#: elf/readelflib.c:35
+#, c-format
+msgid "file %s is truncated\n"
+msgstr "el fichero %s está truncado\n"
+
+#: elf/readelflib.c:67
+#, c-format
+msgid "%s is a 32 bit ELF file.\n"
+msgstr "%s es un fichero ELF de 32 bits.\n"
+
+#: elf/readelflib.c:69
+#, c-format
+msgid "%s is a 64 bit ELF file.\n"
+msgstr "%s es un fichero ELF de 64 bits.\n"
+
+#: elf/readelflib.c:71
+#, c-format
+msgid "Unknown ELFCLASS in file %s.\n"
+msgstr "ELFCLASS desconocido en el fichero %s.\n"
+
+#: elf/readelflib.c:78
+#, c-format
+msgid "%s is not a shared object file (Type: %d).\n"
+msgstr "%s no es un fichero `shared object' (Tipo: %d).\n"
+
+#: elf/readelflib.c:109
+#, c-format
+msgid "more than one dynamic segment\n"
+msgstr "más de un segmento dinámico\n"
+
+#: elf/readlib.c:97
+#, c-format
+msgid "Cannot fstat file %s.\n"
+msgstr "No se puede efectuar `fstat' sobre el fichero %s.\n"
+
+#: elf/readlib.c:108
+#, c-format
+msgid "File %s is empty, not checked."
+msgstr "El fichero %s está vacío, no se comprueba."
+
+#: elf/readlib.c:114
+#, c-format
+msgid "File %s is too small, not checked."
+msgstr "El fichero %s es demasiado pequeño, no se comprueba."
+
+#: elf/readlib.c:124
+#, c-format
+msgid "Cannot mmap file %s.\n"
+msgstr "No se puede efectuar `mmap' sobre el fichero %s.\n"
+
+#: elf/readlib.c:162
+#, c-format
+msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n"
+msgstr "%s no es un fichero ELF - tiene los bytes mágicos equivocados en el comienzo.\n"
+
+#: elf/sln.c:85
+#, c-format
+msgid ""
+"Usage: sln src dest|file\n"
+"\n"
+msgstr ""
+"Modo de empleo: sln orig desti|fichero\n"
+"\n"
+
+#: elf/sln.c:110
+#, c-format
+msgid "%s: file open error: %m\n"
+msgstr "%s: error al abrir el fichero: %m\n"
+
+#: elf/sln.c:147
+#, c-format
+msgid "No target in line %d\n"
+msgstr "No hay ningún objetivo en la línea %d\n"
+
+#: elf/sln.c:179
+#, c-format
+msgid "%s: destination must not be a directory\n"
+msgstr "%s: el destino no debe ser un directorio\n"
+
+#: elf/sln.c:185
+#, c-format
+msgid "%s: failed to remove the old destination\n"
+msgstr "%s: fallo al borrar el destino antiguo\n"
+
+# ¿Qué tiene de malo "inválida"? sv
+# Jopé, ¿y qué tiene de malo no válida?
+# usuario inválido tiene un doble sentido claro
+# ya que uso usuario no válido me parece bien usar
+# tambien opción no válida, aunque solo sea de vez
+# en cuando em
+#
+# Pues que *inválida* existe. Piensa en retroreferencia, por ejemplo.
+# Se puede poner retroreferencia porque significa referencia hacia atrás.
+# (Bueno, en este caso esa palabra se usa poco, pero inválida no). sv+
+#
+# Después de leer "1984", lo cambio.
+# Aquí y en todas partes. sv
+#
+#: elf/sln.c:193
+#, c-format
+msgid "%s: invalid destination: %s\n"
+msgstr "%s: destino inválido: %s\n"
+
+#: elf/sln.c:208 elf/sln.c:217
+#, c-format
+msgid "Invalid link from \"%s\" to \"%s\": %s\n"
+msgstr "Enlace inválido de \"%s\" a \"%s\": %s\n"
+
+#: elf/sotruss.ksh:33
+#, sh-format
+msgid ""
+"Usage: sotruss [OPTION...] [--] EXECUTABLE [EXECUTABLE-OPTION...]\n"
+" -F, --from FROMLIST trace calls from objects on FORMLIST\n"
+" -T, --to TOLIST trace calls to objects on TOLIST\n"
+"\n"
+" -e, --exit also show exits from the function calls\n"
+" -f, --follow trace child processes\n"
+" -o, --output FILENAME write output to FILENAME (or FILENAME.$PID in case\n"
+"\t\t\t -f is also used) instead of standard error\n"
+"\n"
+" --help print this help and exit\n"
+" --version print version information and exit"
+msgstr ""
+"Modo de empleo: sotruss [OPCIÓN...] [--] EJECUTABLE [OPCIÓN-DEL-EJECUTABLE...]\n"
+" -F, --from LISTA_DE sigue las llamadas de objetos en LISTA_DE\n"
+" -T, --to LISTA_A sigue las llamadas a objetos en LISTA_A\n"
+"\n"
+" -e, --exit muestra también la salidas de las llamadas a función\n"
+" -f, --follow sigue los procesos hijos\n"
+" -o, --output FICHERO escribe el resultado en FICHERO (o en FICHERO.$PID si se\n"
+" utiliza también -f) en lugar de la salida de error estándar\n"
+"\n"
+" --help muestra esta ayuda y finaliza\n"
+" --version muestra la información de versión y finaliza"
+
+#: elf/sotruss.ksh:46
+msgid "Mandatory arguments to long options are also mandatory for any corresponding\\nshort options.\\n"
+msgstr ""
+"Los argumentos obligatorios para las opciones largas son\n"
+"también obligatorios para las opciones cortas correspondientes."
+
+#: elf/sotruss.ksh:56
+msgid "%s: option requires an argument -- '%s'\\n"
+msgstr "%s: la opción requiere un argumento -- '%c'\\n"
+
+#: elf/sotruss.ksh:57 elf/sotruss.ksh:68 elf/sotruss.ksh:134
+msgid "Try \\`%s --help' or \\`%s --usage' for more information.\\n"
+msgstr "Pruebe \\`%s --help' o `%s --usage' para más información.\\n"
+
+#: elf/sotruss.ksh:62
+msgid "%s: option is ambiguous; possibilities:"
+msgstr "%s: la opción es ambigua; posibilidades:"
+
+#: elf/sotruss.ksh:80
+msgid "Written by %s.\\n"
+msgstr "Escrito por %s.\\n"
+
+#: elf/sotruss.ksh:87
+msgid ""
+"Usage: %s [-ef] [-F FROMLIST] [-o FILENAME] [-T TOLIST] [--exit]\n"
+"\t [--follow] [--from FROMLIST] [--output FILENAME] [--to TOLIST]\\n"
+msgstr ""
+"Modo de empleo: %s [-ef] [-F LISTA_DE] [-o FICHERO] [-T LISTA_A] [--exit]\n"
+"\t [--follow] [--from LISTA_DE] [--output FICHERO] [--to LISTA_A]\\n"
+
+#: elf/sotruss.ksh:133
+msgid "%s: unrecognized option '%c%s'\\n"
+msgstr "%s: opción no reconocida '%c%s'\\n"
+
+#: elf/sprof.c:77
+msgid "Output selection:"
+msgstr "Selección del resultado:"
+
+#: elf/sprof.c:79
+msgid "print list of count paths and their number of use"
+msgstr "muestra la lista de contadores de ruta y su número de uso"
+
+#: elf/sprof.c:81
+msgid "generate flat profile with counts and ticks"
+msgstr "genera un `profile' plano con contadores y `ticks'"
+
+#: elf/sprof.c:82
+msgid "generate call graph"
+msgstr "genera el grafo de llamadas"
+
+# ¿profiling? sv
+#: elf/sprof.c:89
+msgid "Read and display shared object profiling data."
+msgstr "Lee y muestra los datos de `profiling' del objeto compartido."
+
+#: elf/sprof.c:94
+msgid "SHOBJ [PROFDATA]"
+msgstr "SHOBJ [DATOSPROF]"
+
+#: elf/sprof.c:431
+#, c-format
+msgid "failed to load shared object `%s'"
+msgstr "fallo al cargar el objeto compartido `%s'"
+
+#: elf/sprof.c:440
+#, c-format
+msgid "cannot create internal descriptors"
+msgstr "no se pueden crear descriptores internos"
+
+#: elf/sprof.c:559
+#, c-format
+msgid "Reopening shared object `%s' failed"
+msgstr "La reapertura del objeto compartido `%s' falló"
+
+#: elf/sprof.c:566 elf/sprof.c:660
+#, c-format
+msgid "reading of section headers failed"
+msgstr "falló la lectura de las cabeceras de sección"
+
+# Estupendo, entre section, header, string y table hay 4! posibilidades...
+#: elf/sprof.c:574 elf/sprof.c:668
+#, c-format
+msgid "reading of section header string table failed"
+msgstr "falló la lectura de la tabla de cadenas de cabeceras de sección"
+
+#: elf/sprof.c:600
+#, c-format
+msgid "*** Cannot read debuginfo file name: %m\n"
+msgstr "*** No se puede leer el nombre del fichero de información de depuración: %m\n"
+
+#: elf/sprof.c:620
+#, c-format
+msgid "cannot determine file name"
+msgstr "no se puede determinar el nombre del fichero"
+
+#: elf/sprof.c:653
+#, c-format
+msgid "reading of ELF header failed"
+msgstr "falló la lectura de la cabecera ELF"
+
+# Duda: stripped.
+#: elf/sprof.c:689
+#, c-format
+msgid "*** The file `%s' is stripped: no detailed analysis possible\n"
+msgstr "*** El fichero `%s' está `stripped': no es posible un análisis detallado\n"
+
+#: elf/sprof.c:719
+#, c-format
+msgid "failed to load symbol data"
+msgstr "fallo al cargar los datos del símbolo"
+
+#: elf/sprof.c:784
+#, c-format
+msgid "cannot load profiling data"
+msgstr "no se pueden cargar los datos de `profiling'"
+
+#: elf/sprof.c:793
+#, c-format
+msgid "while stat'ing profiling data file"
+msgstr "al ejecutar `stat' sobre el fichero de datos de `profiling'"
+
+#: elf/sprof.c:801
+#, c-format
+msgid "profiling data file `%s' does not match shared object `%s'"
+msgstr ""
+"el fichero de datos para `profiling' %s no se corresponde con el\n"
+"objeto compartido `%s'"
+
+#: elf/sprof.c:812
+#, c-format
+msgid "failed to mmap the profiling data file"
+msgstr "no se pudo hacer mmap con el fichero de datos de `profile'"
+
+# Se admiten sugerencias para el "profiling" sv.
+#: elf/sprof.c:820
+#, c-format
+msgid "error while closing the profiling data file"
+msgstr "error al cerrar el fichero de datos de `profiling'"
+
+#: elf/sprof.c:829 elf/sprof.c:927
+#, c-format
+msgid "cannot create internal descriptor"
+msgstr "no se puede crear un descriptor interno"
+
+#: elf/sprof.c:903
+#, c-format
+msgid "`%s' is no correct profile data file for `%s'"
+msgstr "`%s' no es un fichero de datos para `profile' correcto para `%s'"
+
+#: elf/sprof.c:1084 elf/sprof.c:1142
+#, c-format
+msgid "cannot allocate symbol data"
+msgstr "no se puede asignar espacio para los datos del símbolo"
+
+#: iconv/iconv_charmap.c:142 iconv/iconv_prog.c:446
+#, c-format
+msgid "cannot open output file"
+msgstr "no se puede abrir el fichero de salida"
+
+#: iconv/iconv_charmap.c:188 iconv/iconv_prog.c:312
#, c-format
msgid "error while closing input `%s'"
msgstr "error al cerrar la entrada `%s'"
-#: iconv/iconv_charmap.c:443
+#: iconv/iconv_charmap.c:462
#, c-format
msgid "illegal input sequence at position %Zd"
-msgstr "secuencia de entrada ilegal en la posición %Zd"
+msgstr "secuencia de entrada ilegal en la posición %Zd"
-#: iconv/iconv_charmap.c:462 iconv/iconv_prog.c:506
+#: iconv/iconv_charmap.c:481 iconv/iconv_prog.c:537
+#, c-format
msgid "incomplete character or shift sequence at end of buffer"
-msgstr "carácter o secuencia de desplazamiento incompleta al final del búfer"
+msgstr "carácter o secuencia de desplazamiento incompleta al final del búfer"
-#: iconv/iconv_charmap.c:507 iconv/iconv_charmap.c:543 iconv/iconv_prog.c:549
-#: iconv/iconv_prog.c:585
+#: iconv/iconv_charmap.c:526 iconv/iconv_charmap.c:562 iconv/iconv_prog.c:580
+#: iconv/iconv_prog.c:616
+#, c-format
msgid "error while reading the input"
msgstr "error al leer la entrada"
-#: iconv/iconv_charmap.c:525 iconv/iconv_prog.c:567
+#: iconv/iconv_charmap.c:544 iconv/iconv_prog.c:598
+#, c-format
msgid "unable to allocate buffer for input"
-msgstr "no se puede asignar espacio para el búfer de entrada"
+msgstr "no se puede asignar espacio para el búfer de entrada"
-#: iconv/iconv_prog.c:61
+#: iconv/iconv_prog.c:60
msgid "Input/Output format specification:"
-msgstr "Especificación de formato de Entrada/Salida:"
+msgstr "Especificación de formato de Entrada/Salida:"
-#: iconv/iconv_prog.c:62
+#: iconv/iconv_prog.c:61
msgid "encoding of original text"
-msgstr "codificación del texto original"
+msgstr "codificación del texto original"
-#: iconv/iconv_prog.c:63
+#: iconv/iconv_prog.c:62
msgid "encoding for output"
-msgstr "codificación para el resultado"
+msgstr "codificación para el resultado"
-#: iconv/iconv_prog.c:64
+#: iconv/iconv_prog.c:63
msgid "Information:"
-msgstr "Información:"
+msgstr "Información:"
-#: iconv/iconv_prog.c:65
+#: iconv/iconv_prog.c:64
msgid "list all known coded character sets"
msgstr "lista todos los juegos de caracteres conocidos"
-#: iconv/iconv_prog.c:66 locale/programs/localedef.c:128
+#: iconv/iconv_prog.c:65 locale/programs/localedef.c:127
msgid "Output control:"
msgstr "Control del resultado:"
-#: iconv/iconv_prog.c:67
+#: iconv/iconv_prog.c:66
msgid "omit invalid characters from output"
-msgstr "se omiten los caracteres inválidos en la salida"
+msgstr "se omiten los caracteres inválidos en la salida"
-#: iconv/iconv_prog.c:68
+#: iconv/iconv_prog.c:67
msgid "output file"
msgstr "fichero de salida"
-#: iconv/iconv_prog.c:69
+#: iconv/iconv_prog.c:68
msgid "suppress warnings"
msgstr "suprime los avisos"
-#: iconv/iconv_prog.c:70
+#: iconv/iconv_prog.c:69
msgid "print progress information"
-msgstr "muestra información sobre el desarrollo"
+msgstr "muestra información sobre el desarrollo"
-#: iconv/iconv_prog.c:75
+#: iconv/iconv_prog.c:74
msgid "Convert encoding of given files from one encoding to another."
-msgstr "Convierte la codificación de los ficheros dados de una codificación a otra."
+msgstr "Convierte la codificación de los ficheros dados de una codificación a otra."
-#: iconv/iconv_prog.c:79
+#: iconv/iconv_prog.c:78
msgid "[FILE...]"
msgstr "[FICHERO...]"
-#: iconv/iconv_prog.c:201
-msgid "cannot open output file"
-msgstr "no se puede abrir el fichero de salida"
-
-#: iconv/iconv_prog.c:243
+#: iconv/iconv_prog.c:234
#, c-format
msgid "conversions from `%s' and to `%s' are not supported"
-msgstr "no se admite la conversión de `%s' a `%s'"
+msgstr "no se admiten las conversiones desde `%s' y hacia `%s'"
-#: iconv/iconv_prog.c:248
+#: iconv/iconv_prog.c:239
#, c-format
msgid "conversion from `%s' is not supported"
-msgstr "no se admite la conversión de `%s'"
+msgstr "no se admite la conversión de `%s'"
-#: iconv/iconv_prog.c:255
+#: iconv/iconv_prog.c:246
#, c-format
msgid "conversion to `%s' is not supported"
-msgstr "no se admite la conversión a `%s'"
+msgstr "no se admite la conversión a `%s'"
-#: iconv/iconv_prog.c:259
+#: iconv/iconv_prog.c:250
#, c-format
msgid "conversion from `%s' to `%s' is not supported"
-msgstr "no se admite la conversión de `%s' a `%s'"
+msgstr "no se admite la conversión de `%s' a `%s'"
-#: iconv/iconv_prog.c:265
+#: iconv/iconv_prog.c:260
+#, c-format
msgid "failed to start conversion processing"
-msgstr "fallo al comenzar el proceso de conversión"
+msgstr "fallo al comenzar el proceso de conversión"
-#: iconv/iconv_prog.c:360
+#: iconv/iconv_prog.c:358
+#, c-format
msgid "error while closing output file"
msgstr "error al cerrar el fichero de salida"
-#: iconv/iconv_prog.c:409 iconv/iconvconfig.c:357 locale/programs/locale.c:279
-#: locale/programs/localedef.c:372 catgets/gencat.c:233
-#: malloc/memusagestat.c:602 debug/pcprofiledump.c:199
-msgid "Report bugs using the `glibcbug' script to <bugs@gnu.org>.\n"
-msgstr "Comunicar bichos usando el programa `glibcbug' a <bugs@gnu.org>.\n"
-
-#: iconv/iconv_prog.c:423 iconv/iconvconfig.c:371 locale/programs/locale.c:292
-#: locale/programs/localedef.c:386 catgets/gencat.c:246 posix/getconf.c:913
-#: nss/getent.c:74 nscd/nscd.c:355 nscd/nscd_nischeck.c:90 elf/ldconfig.c:274
-#: elf/sprof.c:349
-#, 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"
-"Esto es software libre; vea el código fuente para las condiciones de copia.\n"
-"No hay NINGUNA garantía; ni siquiera de COMERCIABILIDAD o IDONEIDAD PARA UN\n"
-"FIN DETERMINADO.\n"
-
-#: iconv/iconv_prog.c:428 iconv/iconvconfig.c:376 locale/programs/locale.c:297
-#: locale/programs/localedef.c:391 catgets/gencat.c:251 posix/getconf.c:918
-#: nss/getent.c:79 nscd/nscd.c:360 nscd/nscd_nischeck.c:95 elf/ldconfig.c:279
-#: elf/sprof.c:355
+#: iconv/iconv_prog.c:456
#, c-format
-msgid "Written by %s.\n"
-msgstr "Escrito por %s.\n"
-
-#: iconv/iconv_prog.c:458 iconv/iconv_prog.c:484
msgid "conversion stopped due to problem in writing the output"
-msgstr "la conversión se ha detenido debido a un problema al escribir el resultado"
+msgstr "la conversión se ha detenido debido a un problema al escribir el resultado"
-#: iconv/iconv_prog.c:502
+#: iconv/iconv_prog.c:533
#, c-format
msgid "illegal input sequence at position %ld"
-msgstr "secuencia de entrada ilegal en la posición %ld"
+msgstr "secuencia de entrada ilegal en la posición %ld"
-#: iconv/iconv_prog.c:510
+#: iconv/iconv_prog.c:541
+#, c-format
msgid "internal error (illegal descriptor)"
msgstr "error interno (descriptor ilegal)"
-#: iconv/iconv_prog.c:513
+#: iconv/iconv_prog.c:544
#, c-format
msgid "unknown iconv() error %d"
msgstr "error de iconv() desconocido %d"
# FIXME: Espacio en blanco final.
-#: iconv/iconv_prog.c:756
+#: iconv/iconv_prog.c:790
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"
@@ -387,7 +1453,7 @@ msgid ""
msgstr ""
"La siguiente lista contiene todos los conjuntos de caracteres conocidos.\n"
"Esto no quiere decir necesariamente que todas las combinaciones de estos\n"
-"nombres se puedan usar como parámetros FROM y TO en la línea de órdenes.\n"
+"nombres se puedan usar como parámetros FROM y TO en la línea de órdenes.\n"
"Un determinado conjunto de caracteres puede aparecer con varios nombres\n"
"(aliases).\n"
"\n"
@@ -395,1043 +1461,1162 @@ msgstr ""
#: iconv/iconvconfig.c:110
msgid "Create fastloading iconv module configuration file."
-msgstr "Crea un fichero de configuración de un módulo iconv de carga rápida."
+msgstr "Crea un fichero de configuración de un módulo iconv de carga rápida."
#: iconv/iconvconfig.c:114
msgid "[DIR...]"
msgstr "[DIR...]"
-# FIXME: El mensaje es ambiguo. No sabe muy bien si después de este
-# mensaje nos dicen justo a continuación cuál es ese prefijo (en cuyo
+# FIXME: El mensaje es ambiguo. No sabe muy bien si después de este
+# mensaje nos dicen justo a continuación cuál es ese prefijo (en cuyo
# caso el msgstr que he puesto es apropiado) o si por el contrario lo
-# que nos dicen es que se utilizará prefijo para todos los accesos a
+# que nos dicen es que se utilizará prefijo para todos los accesos a
# ficheros.
-#: iconv/iconvconfig.c:126
+#: iconv/iconvconfig.c:127
msgid "Prefix used for all file accesses"
msgstr "Prefijo utilizado para todos los accesos a ficheros"
-#: iconv/iconvconfig.c:327 locale/programs/localedef.c:292
+#: iconv/iconvconfig.c:128
+msgid "Put output in FILE instead of installed location (--prefix does not apply to FILE)"
+msgstr "Pone el resultado en FICHERO, no en el lugar instalado (--prefix no es aplicable a FICHERO)"
+
+#: iconv/iconvconfig.c:132
+msgid "Do not search standard directories, only those on the command line"
+msgstr "No busca en los directorios estándar, solamente en los de la línea de órdenes"
+
+#: iconv/iconvconfig.c:301
+#, c-format
+msgid "Directory arguments required when using --nostdlib"
+msgstr "Se requieren directorios como argumentos cuando se usa --nostdlib"
+
+#: iconv/iconvconfig.c:343 locale/programs/localedef.c:291
+#, c-format
msgid "no output file produced because warnings were issued"
-msgstr "no se ha producido ningún fichero de salida debido a la existencia de avisos"
+msgstr "no se ha producido ningún fichero de salida debido a la existencia de avisos"
-#: iconv/iconvconfig.c:405
+#: iconv/iconvconfig.c:429
+#, c-format
msgid "while inserting in search tree"
-msgstr "al insertar en el árbol de búsqueda"
+msgstr "al insertar en el árbol de búsqueda"
-#: iconv/iconvconfig.c:1204
+#: iconv/iconvconfig.c:1238
+#, c-format
msgid "cannot generate output file"
msgstr "no se puede generar el fichero de salida"
+#: inet/rcmd.c:163
+msgid "rcmd: Cannot allocate memory\n"
+msgstr "rcmd: No se puede asignar memoria\n"
+
+#: inet/rcmd.c:178
+msgid "rcmd: socket: All ports in use\n"
+msgstr "rcmd: socket: Se están usando todos los puertos\n"
+
+#: inet/rcmd.c:206
+#, c-format
+msgid "connect to address %s: "
+msgstr "conexión a la dirección %s: "
+
+#: inet/rcmd.c:219
+#, c-format
+msgid "Trying %s...\n"
+msgstr "Intentando %s...\n"
+
+#: inet/rcmd.c:255
+#, c-format
+msgid "rcmd: write (setting up stderr): %m\n"
+msgstr "rcmd: write (activando la salida de error estándar): %m\n"
+
+#: inet/rcmd.c:271
+#, c-format
+msgid "rcmd: poll (setting up stderr): %m\n"
+msgstr "rcmd: poll (activando la salida de error estándar): %m\n"
+
+# ¿en la configuración del servicio?, ¿del circuito?, ¿o dejarlo así?
+# Es de locos, estuve viendo las/los fuentes, preferí dejarlo así. em
+#: inet/rcmd.c:274
+msgid "poll: protocol failure in circuit setup\n"
+msgstr "poll: fallo de protocolo al configurar el circuito\n"
+
+# ??? lo mismo que arriba
+#: inet/rcmd.c:306
+msgid "socket: protocol failure in circuit setup\n"
+msgstr "socket: fallo de protocolo al configurar el circuito\n"
+
+#: inet/rcmd.c:330
+#, c-format
+msgid "rcmd: %s: short read"
+msgstr "rcmd: %s: lectura insuficiente"
+
+# ## Lo mismo con lstat. sv
+# Antes decía: No se pudo obtener información (lstat) del fichero .rhosts
+#: inet/rcmd.c:486
+msgid "lstat failed"
+msgstr "lstat ha fallado"
+
+#: inet/rcmd.c:493
+msgid "cannot open"
+msgstr "no se puede abrir"
+
+# ## Sugerencia: Añadir (fstat) después de información. sv
+# Antes decía: No se pudo obtener información (fstat) del fichero .rhosts
+#: inet/rcmd.c:495
+msgid "fstat failed"
+msgstr "fstat ha fallado"
+
+# Antes decía: El propietario del fichero .rhosts no es válido
+#: inet/rcmd.c:497
+msgid "bad owner"
+msgstr "propietario incorrecto"
+
+#: inet/rcmd.c:499
+msgid "writeable by other than owner"
+msgstr "puede ser modificado por otros además del propietario"
+
+#: inet/rcmd.c:501
+msgid "hard linked somewhere"
+msgstr "hay un enlace duro en alguna parte"
+
+#: inet/ruserpass.c:170 inet/ruserpass.c:193
+msgid "out of memory"
+msgstr "memoria agotada"
+
+# Supongo que se dice legible... sv
+#: inet/ruserpass.c:184
+msgid "Error: .netrc file is readable by others."
+msgstr "Error: el fichero .netrc es legible por otros usuarios."
+
+#: inet/ruserpass.c:185
+msgid "Remove password or make file unreadable by others."
+msgstr "Elimine la contraseña o haga el fichero no legible por otros."
+
+#: inet/ruserpass.c:277
+#, c-format
+msgid "Unknown .netrc keyword %s"
+msgstr "Palabra clave %s desconocida en .netrc"
+
+#: libidn/nfkc.c:464
+msgid "Character out of range for UTF-8"
+msgstr "Carácter fuera de rango para UTF-8"
+
#: locale/programs/charmap-dir.c:59
#, c-format
msgid "cannot read character map directory `%s'"
msgstr "no se puede leer el directorio de tablas de caracteres `%s'"
-#: locale/programs/charmap.c:136
+#: locale/programs/charmap.c:138
#, c-format
msgid "character map file `%s' not found"
-msgstr "el fichero de tabla de caracteres `%s' no se encontró"
+msgstr "el fichero de tabla de caracteres `%s' no se encontró"
-#: locale/programs/charmap.c:194
+#: locale/programs/charmap.c:195
#, c-format
msgid "default character map file `%s' not found"
-msgstr "no se encontró el fichero de tabla de caracteres predeterminado `%s'"
+msgstr "no se encontró el fichero de tabla de caracteres predeterminado `%s'"
-#: locale/programs/charmap.c:257
+#: locale/programs/charmap.c:258
#, c-format
msgid "character map `%s' is not ASCII compatible, locale not ISO C compliant\n"
msgstr ""
"la tabla de caracteres `%s' no es compatible con ASCII, el local no cumple\n"
"con ISO C\n"
-#: locale/programs/charmap.c:336
+#: 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> debe ser mayor que <mb_cur_min>\n"
-#: locale/programs/charmap.c:356 locale/programs/charmap.c:373
-#: locale/programs/repertoire.c:175
+#: locale/programs/charmap.c:357 locale/programs/charmap.c:374
+#: locale/programs/repertoire.c:174
#, c-format
msgid "syntax error in prolog: %s"
-msgstr "error de sintaxis en el prólogo: %s"
+msgstr "error de sintaxis en el prólogo: %s"
-#: locale/programs/charmap.c:357
+#: locale/programs/charmap.c:358
msgid "invalid definition"
-msgstr "definición inválida"
+msgstr "definición inválida"
-#: locale/programs/charmap.c:374 locale/programs/locfile.c:126
-#: locale/programs/locfile.c:153 locale/programs/repertoire.c:176
+#: locale/programs/charmap.c:375 locale/programs/locfile.c:126
+#: locale/programs/locfile.c:153 locale/programs/repertoire.c:175
msgid "bad argument"
-msgstr "argumento erróneo"
+msgstr "argumento erróneo"
-#: locale/programs/charmap.c:402
+#: locale/programs/charmap.c:403
#, c-format
msgid "duplicate definition of <%s>"
-msgstr "definición duplicada de <%s>"
+msgstr "definición duplicada de <%s>"
-#: locale/programs/charmap.c:409
+#: locale/programs/charmap.c:410
#, c-format
msgid "value for <%s> must be 1 or greater"
msgstr "el valor para <%s> debe ser 1 o mayor"
-# Milagro, por una vez es más corto en español :-) sv
-#: locale/programs/charmap.c:421
+# Milagro, por una vez es más corto en español :-) sv
+#: locale/programs/charmap.c:422
#, c-format
msgid "value of <%s> must be greater or equal than the value of <%s>"
msgstr "el valor de <%s> debe ser mayor o igual que el valor de <%s>"
-#: locale/programs/charmap.c:444 locale/programs/repertoire.c:184
+#: locale/programs/charmap.c:445 locale/programs/repertoire.c:183
#, c-format
msgid "argument to <%s> must be a single character"
-msgstr "el argumento para <%s> debe ser un único carácter"
+msgstr "el argumento para <%s> debe ser un único carácter"
-#: locale/programs/charmap.c:470
+#: locale/programs/charmap.c:471
msgid "character sets with locking states are not supported"
-msgstr "los conjuntos de caracteres con estados de bloqueo no están soportados"
+msgstr "los conjuntos de caracteres con estados de bloqueo no están soportados"
-#: locale/programs/charmap.c:497 locale/programs/charmap.c:551
-#: locale/programs/charmap.c:583 locale/programs/charmap.c:677
-#: locale/programs/charmap.c:732 locale/programs/charmap.c:773
-#: locale/programs/charmap.c:814
+#: 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 "error de sintaxis en la definición de %s: %s"
+msgstr "error de sintaxis en la definición de %s: %s"
-#: locale/programs/charmap.c:498 locale/programs/charmap.c:678
-#: locale/programs/charmap.c:774 locale/programs/repertoire.c:231
+#: locale/programs/charmap.c:499 locale/programs/charmap.c:679
+#: locale/programs/charmap.c:775 locale/programs/repertoire.c:230
msgid "no symbolic name given"
-msgstr "no se ha especificado ningún nombre simbólico"
+msgstr "no se ha especificado ningún nombre simbólico"
-#: locale/programs/charmap.c:552
+#: locale/programs/charmap.c:553
msgid "invalid encoding given"
-msgstr "especificada una codificación inválida"
+msgstr "especificada una codificación inválida"
-#: locale/programs/charmap.c:561
+#: locale/programs/charmap.c:562
msgid "too few bytes in character encoding"
-msgstr "insuficiente número de bytes en la codificación del carácter"
+msgstr "insuficiente número de bytes en la codificación del carácter"
-#: locale/programs/charmap.c:563
+#: locale/programs/charmap.c:564
msgid "too many bytes in character encoding"
-msgstr "demasiados bytes en la codificación del carácter"
+msgstr "demasiados bytes en la codificación del carácter"
-#: locale/programs/charmap.c:585 locale/programs/charmap.c:733
-#: locale/programs/charmap.c:816 locale/programs/repertoire.c:297
+#: locale/programs/charmap.c:586 locale/programs/charmap.c:734
+#: locale/programs/charmap.c:817 locale/programs/repertoire.c:296
msgid "no symbolic name given for end of range"
-msgstr "no se ha especificado ningún nombre simbólico para el final del rango"
-
-#: locale/programs/charmap.c:609 locale/programs/locfile.c:818
-#: locale/programs/repertoire.c:314
+msgstr "no se ha especificado ningún nombre simbólico para el final del rango"
+
+#: locale/programs/charmap.c:610 locale/programs/ld-address.c:602
+#: locale/programs/ld-collate.c:2769 locale/programs/ld-collate.c:3927
+#: locale/programs/ld-ctype.c:2257 locale/programs/ld-ctype.c:3009
+#: 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:313
#, c-format
-msgid "`%1$s' definition does not end with `END %1$s'"
-msgstr "La definición `%1$s' no termina con `END %1$s'"
+msgid "%1$s: definition does not end with `END %1$s'"
+msgstr "%1$s: la definición no termina con `END %1$s'"
-#: locale/programs/charmap.c:642
+#: locale/programs/charmap.c:643
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
-msgstr "solamente se permiten ANCHO definiciones después de la definición CHARMAP"
+msgstr "solamente se permiten ANCHO definiciones después de la definición CHARMAP"
-#: locale/programs/charmap.c:650 locale/programs/charmap.c:713
+#: locale/programs/charmap.c:651 locale/programs/charmap.c:714
#, c-format
msgid "value for %s must be an integer"
-msgstr "el valor para %s debe ser un número entero"
+msgstr "el valor para %s debe ser un número entero"
# Para entender este mensaje, pensar en Turing.
-#: locale/programs/charmap.c:841
+#: locale/programs/charmap.c:842
#, c-format
msgid "%s: error in state machine"
-msgstr "%s: error en la máquina de estados"
-
-#: locale/programs/charmap.c:849 locale/programs/ld-address.c:605
-#: locale/programs/ld-collate.c:2650 locale/programs/ld-collate.c:3818
-#: locale/programs/ld-ctype.c:2225 locale/programs/ld-ctype.c:2994
-#: locale/programs/ld-identification.c:469
-#: locale/programs/ld-measurement.c:255 locale/programs/ld-messages.c:349
-#: locale/programs/ld-monetary.c:958 locale/programs/ld-name.c:324
-#: locale/programs/ld-numeric.c:392 locale/programs/ld-paper.c:258
-#: locale/programs/ld-telephone.c:330 locale/programs/ld-time.c:1219
-#: locale/programs/locfile.c:825 locale/programs/repertoire.c:325
+msgstr "%s: error en la máquina de estados"
+
+#: locale/programs/charmap.c:850 locale/programs/ld-address.c:618
+#: locale/programs/ld-collate.c:2766 locale/programs/ld-collate.c:4120
+#: locale/programs/ld-ctype.c:2254 locale/programs/ld-ctype.c:3026
+#: 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:324
#, c-format
msgid "%s: premature end of file"
msgstr "%s: fin de fichero no esperado"
-#: locale/programs/charmap.c:868 locale/programs/charmap.c:879
+#: locale/programs/charmap.c:869 locale/programs/charmap.c:880
#, c-format
msgid "unknown character `%s'"
-msgstr "carácter desconocido `%s'"
+msgstr "carácter desconocido `%s'"
-#: locale/programs/charmap.c:887
+#: 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 ""
-"el número de bytes para la sucesión de bytes de comienzo y final del rango\n"
+"el número de bytes para la sucesión de bytes de comienzo y final del rango\n"
"no es el mismo: %d vs %d"
-#: locale/programs/charmap.c:991 locale/programs/ld-collate.c:2930
-#: locale/programs/repertoire.c:420
+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:3046
+#: locale/programs/repertoire.c:419
msgid "invalid names for character range"
-msgstr "nombres inválidos para el rango de caracteres"
+msgstr "nombres inválidos para el rango de caracteres"
-#: locale/programs/charmap.c:1003 locale/programs/repertoire.c:432
+#: locale/programs/charmap.c:1005 locale/programs/repertoire.c:431
msgid "hexadecimal range format should use only capital characters"
-msgstr "el formato de rango hexadecimal debe usar solamente caracteres en mayúsculas"
+msgstr "el formato de rango hexadecimal debe usar solamente caracteres en mayúsculas"
-#: locale/programs/charmap.c:1021
+#: locale/programs/charmap.c:1023 locale/programs/repertoire.c:449
#, c-format
-msgid "<%s> and <%s> are illegal names for range"
-msgstr "<%s> y <%s> son nombres no permitidos para el rango de caracteres"
+msgid "<%s> and <%s> are invalid names for range"
+msgstr "<%s> y <%s> son nombres inválidos para el rango de caracteres"
-# FIXME: then -> than
-#: locale/programs/charmap.c:1027
-msgid "upper limit in range is not higher then lower limit"
-msgstr "el límite superior del rango no es mayor que el límite inferior"
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:456
+msgid "upper limit in range is smaller than lower limit"
+msgstr "el límite superior del rango es menor que el límite inferior"
-#: locale/programs/charmap.c:1085
+#: locale/programs/charmap.c:1087
msgid "resulting bytes for range not representable."
msgstr "los bytes resultantes para el rango no son representables."
-#: locale/programs/ld-address.c:134 locale/programs/ld-collate.c:1534
-#: locale/programs/ld-ctype.c:421 locale/programs/ld-identification.c:134
-#: locale/programs/ld-measurement.c:95 locale/programs/ld-messages.c:98
-#: locale/programs/ld-monetary.c:194 locale/programs/ld-name.c:95
-#: locale/programs/ld-numeric.c:99 locale/programs/ld-paper.c:92
-#: locale/programs/ld-telephone.c:95 locale/programs/ld-time.c:160
+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1558
+#: locale/programs/ld-ctype.c:421 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 "No se encontró ninguna definición para la categoría %s"
-
-# FIXME: ¿Por qué hay dos mensajes distintos para este y el siguiente?
-#: locale/programs/ld-address.c:145 locale/programs/ld-address.c:183
-#: locale/programs/ld-address.c:201 locale/programs/ld-address.c:228
-#: locale/programs/ld-address.c:290 locale/programs/ld-address.c:309
-#: locale/programs/ld-address.c:322 locale/programs/ld-identification.c:147
-#: locale/programs/ld-measurement.c:106 locale/programs/ld-monetary.c:206
+msgstr "No se encontró ninguna definición para la categoría %s"
+
+# FIXME: ¿Por qué hay dos mensajes distintos para este y el siguiente?
+#: locale/programs/ld-address.c:146 locale/programs/ld-address.c:184
+#: locale/programs/ld-address.c:202 locale/programs/ld-address.c:231
+#: locale/programs/ld-address.c:303 locale/programs/ld-address.c:322
+#: locale/programs/ld-address.c:335 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:106
-#: locale/programs/ld-name.c:143 locale/programs/ld-numeric.c:113
-#: locale/programs/ld-numeric.c:127 locale/programs/ld-paper.c:103
-#: locale/programs/ld-paper.c:112 locale/programs/ld-telephone.c:106
-#: locale/programs/ld-telephone.c:163 locale/programs/ld-time.c:176
-#: locale/programs/ld-time.c:197
+#: 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: el campo `%s' no está definido"
+msgstr "%s: el campo `%s' no está definido"
-#: locale/programs/ld-address.c:157 locale/programs/ld-address.c:209
-#: locale/programs/ld-address.c:235 locale/programs/ld-address.c:265
-#: locale/programs/ld-name.c:118 locale/programs/ld-telephone.c:118
+#: locale/programs/ld-address.c:158 locale/programs/ld-address.c:210
+#: locale/programs/ld-address.c:240 locale/programs/ld-address.c:278
+#: locale/programs/ld-name.c:117 locale/programs/ld-telephone.c:117
#, c-format
msgid "%s: field `%s' must not be empty"
-msgstr "%s: el campo `%s' no debe estar vacío"
+msgstr "%s: el campo `%s' no debe estar vacío"
-#: locale/programs/ld-address.c:169
+#: locale/programs/ld-address.c:170
#, c-format
msgid "%s: invalid escape `%%%c' sequence in field `%s'"
-msgstr "%s: secuencia de escape `%%%c' inválida en el campo `%s'"
+msgstr "%s: secuencia de escape `%%%c' inválida en el campo `%s'"
-#: locale/programs/ld-address.c:220
+#: locale/programs/ld-address.c:221
#, c-format
msgid "%s: terminology language code `%s' not defined"
-msgstr "%s: el código de terminología del idioma `%s' no está definido"
+msgstr "%s: el código de terminología del idioma `%s' no está definido"
+
+# FIXME: ¿Por qué hay dos mensajes distintos para este y el siguiente?
+#: locale/programs/ld-address.c:246
+#, c-format
+msgid "%s: field `%s' must not be defined"
+msgstr "%s: no se debe definir el campo `%s'"
-#: locale/programs/ld-address.c:247 locale/programs/ld-address.c:276
+#: locale/programs/ld-address.c:260 locale/programs/ld-address.c:289
#, c-format
msgid "%s: language abbreviation `%s' not defined"
-msgstr "%s: la abreviatura de lenguaje `%s' no está definida"
+msgstr "%s: la abreviatura de lenguaje `%s' no está definida"
-#: locale/programs/ld-address.c:254 locale/programs/ld-address.c:282
-#: locale/programs/ld-address.c:316 locale/programs/ld-address.c:328
+#: locale/programs/ld-address.c:267 locale/programs/ld-address.c:295
+#: locale/programs/ld-address.c:329 locale/programs/ld-address.c:341
#, c-format
msgid "%s: `%s' value does not match `%s' value"
msgstr "%s: el valor `%s' no coincide con el valor `%s'"
-#: locale/programs/ld-address.c:301
+#: locale/programs/ld-address.c:314
#, c-format
msgid "%s: numeric country code `%d' not valid"
-msgstr "%s: el código numérico de país `%d' no es válido"
-
-#: locale/programs/ld-address.c:497 locale/programs/ld-address.c:534
-#: locale/programs/ld-address.c:572 locale/programs/ld-ctype.c:2601
-#: locale/programs/ld-identification.c:365
-#: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:302
-#: locale/programs/ld-monetary.c:700 locale/programs/ld-monetary.c:735
-#: locale/programs/ld-monetary.c:776 locale/programs/ld-name.c:281
-#: locale/programs/ld-numeric.c:264 locale/programs/ld-paper.c:225
-#: locale/programs/ld-telephone.c:289 locale/programs/ld-time.c:1108
-#: locale/programs/ld-time.c:1150
+msgstr "%s: el código numérico de país `%d' no es válido"
+
+#: locale/programs/ld-address.c:510 locale/programs/ld-address.c:547
+#: locale/programs/ld-address.c:585 locale/programs/ld-ctype.c:2633
+#: 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: el campo `%s' ha sido declarado más de una vez"
+msgstr "%s: el campo `%s' ha sido declarado más de una vez"
-#: locale/programs/ld-address.c:501 locale/programs/ld-address.c:539
-#: locale/programs/ld-identification.c:369 locale/programs/ld-messages.c:312
-#: locale/programs/ld-monetary.c:704 locale/programs/ld-monetary.c:739
-#: locale/programs/ld-name.c:285 locale/programs/ld-numeric.c:268
-#: locale/programs/ld-telephone.c:293 locale/programs/ld-time.c:1002
-#: locale/programs/ld-time.c:1071 locale/programs/ld-time.c:1113
+#: locale/programs/ld-address.c:514 locale/programs/ld-address.c:552
+#: 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: carácter desconocido en el campo `%s'"
+msgstr "%s: carácter desconocido en el campo `%s'"
-#: locale/programs/ld-address.c:586 locale/programs/ld-collate.c:3800
-#: locale/programs/ld-ctype.c:2974 locale/programs/ld-identification.c:450
-#: locale/programs/ld-measurement.c:236 locale/programs/ld-messages.c:331
-#: locale/programs/ld-monetary.c:940 locale/programs/ld-name.c:306
-#: locale/programs/ld-numeric.c:374 locale/programs/ld-paper.c:240
-#: locale/programs/ld-telephone.c:312 locale/programs/ld-time.c:1201
+#: locale/programs/ld-address.c:599 locale/programs/ld-collate.c:3925
+#: locale/programs/ld-ctype.c:3006 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: línea `END' incompleta"
-
-#: locale/programs/ld-address.c:589 locale/programs/ld-collate.c:2653
-#: locale/programs/ld-collate.c:3802 locale/programs/ld-ctype.c:2228
-#: locale/programs/ld-ctype.c:2977 locale/programs/ld-identification.c:453
-#: locale/programs/ld-measurement.c:239 locale/programs/ld-messages.c:333
-#: locale/programs/ld-monetary.c:942 locale/programs/ld-name.c:308
-#: locale/programs/ld-numeric.c:376 locale/programs/ld-paper.c:242
-#: locale/programs/ld-telephone.c:314 locale/programs/ld-time.c:1203
-#, c-format
-msgid "%1$s: definition does not end with `END %1$s'"
-msgstr "%1$s: la definición no termina con `END %1$s'"
-
-#: locale/programs/ld-address.c:596 locale/programs/ld-collate.c:523
-#: locale/programs/ld-collate.c:575 locale/programs/ld-collate.c:871
-#: locale/programs/ld-collate.c:884 locale/programs/ld-collate.c:2640
-#: locale/programs/ld-collate.c:3809 locale/programs/ld-ctype.c:1956
-#: locale/programs/ld-ctype.c:2215 locale/programs/ld-ctype.c:2799
-#: locale/programs/ld-ctype.c:2985 locale/programs/ld-identification.c:460
-#: locale/programs/ld-measurement.c:246 locale/programs/ld-messages.c:340
-#: locale/programs/ld-monetary.c:949 locale/programs/ld-name.c:315
-#: locale/programs/ld-numeric.c:383 locale/programs/ld-paper.c:249
-#: locale/programs/ld-telephone.c:321 locale/programs/ld-time.c:1210
+msgstr "%s: línea `END' incompleta"
+
+#: locale/programs/ld-address.c:609 locale/programs/ld-collate.c:544
+#: locale/programs/ld-collate.c:596 locale/programs/ld-collate.c:892
+#: locale/programs/ld-collate.c:905 locale/programs/ld-collate.c:2735
+#: locale/programs/ld-collate.c:2756 locale/programs/ld-collate.c:4110
+#: locale/programs/ld-ctype.c:1985 locale/programs/ld-ctype.c:2244
+#: locale/programs/ld-ctype.c:2831 locale/programs/ld-ctype.c:3017
+#: 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 "%s: syntax error"
msgstr "%s: error de sintaxis"
-#: locale/programs/ld-collate.c:398
+#: locale/programs/ld-collate.c:419
#, c-format
msgid "`%.*s' already defined in charmap"
-msgstr "`%.*s' ya está definido en la tabla de caracteres"
+msgstr "`%.*s' ya está definido en la tabla de caracteres"
-#: locale/programs/ld-collate.c:407
+#: locale/programs/ld-collate.c:428
#, c-format
msgid "`%.*s' already defined in repertoire"
-msgstr "`%.*s' ya está definido en el repertorio"
+msgstr "`%.*s' ya está definido en el repertorio"
-#: locale/programs/ld-collate.c:414
+#: locale/programs/ld-collate.c:435
#, c-format
msgid "`%.*s' already defined as collating symbol"
-msgstr "`%.*s' ya está definido como símbolo de ordenación"
+msgstr "`%.*s' ya está definido como símbolo de ordenación"
-#: locale/programs/ld-collate.c:421
+#: locale/programs/ld-collate.c:442
#, c-format
msgid "`%.*s' already defined as collating element"
-msgstr "`%.*s' ya está definido como elemento de ordenación"
+msgstr "`%.*s' ya está definido como elemento de ordenación"
-#: locale/programs/ld-collate.c:452 locale/programs/ld-collate.c:478
+#: locale/programs/ld-collate.c:473 locale/programs/ld-collate.c:499
#, c-format
msgid "%s: `forward' and `backward' are mutually excluding each other"
msgstr "%s: `forward' y `backward' se excluyen mutuamente"
-#: locale/programs/ld-collate.c:462 locale/programs/ld-collate.c:488
-#: locale/programs/ld-collate.c:504
+#: locale/programs/ld-collate.c:483 locale/programs/ld-collate.c:509
+#: locale/programs/ld-collate.c:525
#, c-format
msgid "%s: `%s' mentioned more than once in definition of weight %d"
-msgstr "%s: `%s' mencionado más de una vez en la definición del peso %d"
+msgstr "%s: `%s' mencionado más de una vez en la definición del peso %d"
-#: locale/programs/ld-collate.c:560
+#: locale/programs/ld-collate.c:581
#, c-format
msgid "%s: too many rules; first entry only had %d"
-msgstr "%s: demasiadas reglas; la primera entrada solamente tenía %d"
+msgstr "%s: demasiadas reglas; la primera entrada solamente tenía %d"
-#: locale/programs/ld-collate.c:596
+#: locale/programs/ld-collate.c:617
#, c-format
msgid "%s: not enough sorting rules"
-msgstr "%s: no hay suficientes reglas de ordenación"
+msgstr "%s: no hay suficientes reglas de ordenación"
-#: locale/programs/ld-collate.c:761
+#: locale/programs/ld-collate.c:782
#, c-format
msgid "%s: empty weight string not allowed"
-msgstr "%s: no se permite una cadena de peso vacía"
+msgstr "%s: no se permite una cadena de peso vacía"
-#: locale/programs/ld-collate.c:856
+#: locale/programs/ld-collate.c:877
#, c-format
msgid "%s: weights must use the same ellipsis symbol as the name"
-msgstr "%s: los pesos deben usar el mismo símbolo de elipsis que el nombre"
+msgstr "%s: los pesos deben usar el mismo símbolo de elipsis que el nombre"
-#: locale/programs/ld-collate.c:912
+#: locale/programs/ld-collate.c:933
#, c-format
msgid "%s: too many values"
msgstr "%s: demasiados valores"
-#: locale/programs/ld-collate.c:1031 locale/programs/ld-collate.c:1206
+#: locale/programs/ld-collate.c:1053 locale/programs/ld-collate.c:1228
#, c-format
msgid "order for `%.*s' already defined at %s:%Zu"
-msgstr "el orden para `%.*s' ya está definido en %s:%Zu"
+msgstr "el orden para `%.*s' ya está definido en %s:%Zu"
-#: locale/programs/ld-collate.c:1081
+#: locale/programs/ld-collate.c:1103
#, c-format
msgid "%s: the start and the end symbol of a range must stand for characters"
-msgstr "%s: los símbolos de comienzo y de final de un rango deben representar caracteres"
+msgstr "%s: los símbolos de comienzo y de final de un rango deben representar caracteres"
-#: locale/programs/ld-collate.c:1108
+#: locale/programs/ld-collate.c:1130
#, c-format
msgid "%s: byte sequences of first and last character must have the same length"
msgstr ""
-"%s: los órdenes de byte de los caracteres primero y último deben tener\n"
+"%s: los órdenes de byte de los caracteres primero y último deben tener\n"
"la misma longitud"
-#: locale/programs/ld-collate.c:1150
+#: locale/programs/ld-collate.c:1172
#, c-format
-msgid "%s: byte sequence of first character of sequence is not lower than that of the last character"
+msgid "%s: byte sequence of first character of range is not lower than that of the last character"
msgstr ""
-"%s: el orden de byte del primer carácter de la sucesión no es menor que\n"
-"el del último carácter"
+"%s: el orden de byte del primer carácter del rango no es menor que\n"
+"el del último carácter"
-#: locale/programs/ld-collate.c:1275
+#: locale/programs/ld-collate.c:1297
#, c-format
msgid "%s: symbolic range ellipsis must not directly follow `order_start'"
-msgstr "%s: el rango simbólico de la elipsis no debe seguir directamente a `order_start'"
+msgstr "%s: el rango simbólico de la elipsis no debe seguir directamente a `order_start'"
-#: locale/programs/ld-collate.c:1279
+#: locale/programs/ld-collate.c:1301
#, c-format
msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'"
-msgstr "%s: el rango simbólico de la elipsis no debe estar directamente seguido por `order_end'"
+msgstr "%s: el rango simbólico de la elipsis no debe estar directamente seguido por `order_end'"
-#: locale/programs/ld-collate.c:1299 locale/programs/ld-ctype.c:1476
+#: locale/programs/ld-collate.c:1321 locale/programs/ld-ctype.c:1502
#, c-format
msgid "`%s' and `%.*s' are not valid names for symbolic range"
-msgstr "`%s' y `%.*s' no son nombres válidos para el rango simbólico"
+msgstr "`%s' y `%.*s' no son nombres válidos para el rango simbólico"
-#: locale/programs/ld-collate.c:1348 locale/programs/ld-collate.c:3737
+#: locale/programs/ld-collate.c:1371 locale/programs/ld-collate.c:3861
#, c-format
msgid "%s: order for `%.*s' already defined at %s:%Zu"
-msgstr "%s: el orden para `%.*s' ya está definido en %s:%Zu"
+msgstr "%s: el orden para `%.*s' ya está definido en %s:%Zu"
-#: locale/programs/ld-collate.c:1357
+#: locale/programs/ld-collate.c:1380
#, c-format
msgid "%s: `%s' must be a character"
-msgstr "%s: `%s' debe ser un carácter"
+msgstr "%s: `%s' debe ser un carácter"
-#: locale/programs/ld-collate.c:1550
+#: locale/programs/ld-collate.c:1575
#, c-format
msgid "%s: `position' must be used for a specific level in all sections or none"
-msgstr "%s: `position' debe utilizarse para un nivel específico en todas las secciones o en ninguna"
+msgstr "%s: `position' debe utilizarse para un nivel específico en todas las secciones o en ninguna"
-#: locale/programs/ld-collate.c:1575
+#: locale/programs/ld-collate.c:1600
#, c-format
msgid "symbol `%s' not defined"
-msgstr "el símbolo `%s' no está definido"
+msgstr "el símbolo `%s' no está definido"
-#: locale/programs/ld-collate.c:1651 locale/programs/ld-collate.c:1757
+#: locale/programs/ld-collate.c:1676 locale/programs/ld-collate.c:1782
#, c-format
msgid "symbol `%s' has the same encoding as"
-msgstr "el símbolo `%s' tiene la misma codificación que"
+msgstr "el símbolo `%s' tiene la misma codificación que"
-#: locale/programs/ld-collate.c:1655 locale/programs/ld-collate.c:1761
+#: locale/programs/ld-collate.c:1680 locale/programs/ld-collate.c:1786
#, c-format
msgid "symbol `%s'"
-msgstr "el símbolo `%s'"
+msgstr "el símbolo `%s'"
-#: locale/programs/ld-collate.c:1803
+#: locale/programs/ld-collate.c:1828
+#, c-format
msgid "no definition of `UNDEFINED'"
-msgstr "no hay definición para `UNDEFINED'"
+msgstr "no hay definición para `UNDEFINED'"
-#: locale/programs/ld-collate.c:1832
+#: locale/programs/ld-collate.c:1857
+#, c-format
msgid "too many errors; giving up"
msgstr "demasiados errores; abandono"
-#: locale/programs/ld-collate.c:2735
+#: locale/programs/ld-collate.c:2661 locale/programs/ld-collate.c:4049
+#, c-format
+msgid "%s: nested conditionals not supported"
+msgstr "%s: no se admiten condicionales anidados"
+
+#: locale/programs/ld-collate.c:2679
+#, c-format
+msgid "%s: more then one 'else'"
+msgstr "%s: más de un 'else'"
+
+#: locale/programs/ld-collate.c:2854
#, c-format
msgid "%s: duplicate definition of `%s'"
-msgstr "%s: definición duplicada de `%s'"
+msgstr "%s: definición duplicada de `%s'"
-#: locale/programs/ld-collate.c:2771
+#: locale/programs/ld-collate.c:2890
#, c-format
msgid "%s: duplicate declaration of section `%s'"
-msgstr "%s: definición duplicada de la sección `%s'"
+msgstr "%s: definición duplicada de la sección `%s'"
-#: locale/programs/ld-collate.c:2910
+#: locale/programs/ld-collate.c:3026
#, c-format
msgid "%s: unknown character in collating symbol name"
-msgstr "%s: carácter desconocido en el nombre de un símbolo de ordenación"
+msgstr "%s: carácter desconocido en el nombre de un símbolo de ordenación"
-#: locale/programs/ld-collate.c:3042
+#: locale/programs/ld-collate.c:3155
#, c-format
msgid "%s: unknown character in equivalent definition name"
-msgstr "%s: carácter desconocido en el nombre de definición equivalente"
+msgstr "%s: carácter desconocido en el nombre de definición equivalente"
-#: locale/programs/ld-collate.c:3055
+#: locale/programs/ld-collate.c:3166
#, c-format
msgid "%s: unknown character in equivalent definition value"
-msgstr "%s: carácter desconocido en el valor de definición equivalente"
+msgstr "%s: carácter desconocido en el valor de definición equivalente"
-#: locale/programs/ld-collate.c:3065
+#: locale/programs/ld-collate.c:3176
#, c-format
msgid "%s: unknown symbol `%s' in equivalent definition"
-msgstr "%s: símbolo desconocido `%s' en la definición equivalente"
+msgstr "%s: símbolo desconocido `%s' en la definición equivalente"
-#: locale/programs/ld-collate.c:3074
+#: locale/programs/ld-collate.c:3185
msgid "error while adding equivalent collating symbol"
-msgstr "error al añadir símbolo de ordenación equivalente"
+msgstr "error al añadir símbolo de ordenación equivalente"
-#: locale/programs/ld-collate.c:3104
+#: locale/programs/ld-collate.c:3223
#, c-format
msgid "duplicate definition of script `%s'"
-msgstr "definición duplicada de `script' `%s'"
+msgstr "definición duplicada de `script' `%s'"
-#: locale/programs/ld-collate.c:3152
+#: locale/programs/ld-collate.c:3271
#, c-format
-msgid "%s: unknown section name `%s'"
-msgstr "%s: nombre de sección desconocido `%s'"
+msgid "%s: unknown section name `%.*s'"
+msgstr "%s: nombre de sección desconocido `%.*s'"
-#: locale/programs/ld-collate.c:3180
+#: locale/programs/ld-collate.c:3300
#, c-format
msgid "%s: multiple order definitions for section `%s'"
-msgstr "%s: hay varias definiciones de orden para la sección `%s'"
+msgstr "%s: hay varias definiciones de orden para la sección `%s'"
-#: locale/programs/ld-collate.c:3205
+#: locale/programs/ld-collate.c:3328
#, c-format
msgid "%s: invalid number of sorting rules"
-msgstr "%s: número inválido de reglas de ordenación"
+msgstr "%s: número inválido de reglas de ordenación"
-#: locale/programs/ld-collate.c:3232
+#: locale/programs/ld-collate.c:3355
#, c-format
msgid "%s: multiple order definitions for unnamed section"
-msgstr "%s: varias definiciones de orden para la sección sin nombre"
+msgstr "%s: varias definiciones de orden para la sección sin nombre"
-#: locale/programs/ld-collate.c:3286 locale/programs/ld-collate.c:3414
-#: locale/programs/ld-collate.c:3778
+#: locale/programs/ld-collate.c:3410 locale/programs/ld-collate.c:3540
+#: locale/programs/ld-collate.c:3903
#, c-format
msgid "%s: missing `order_end' keyword"
msgstr "%s: falta la palabra clave `order_end'"
-#: locale/programs/ld-collate.c:3347
+#: locale/programs/ld-collate.c:3473
#, c-format
msgid "%s: order for collating symbol %.*s not yet defined"
-msgstr "%s: el orden para el símbolo de ordenación %.*s todavía no está definido"
+msgstr "%s: el orden para el símbolo de ordenación %.*s todavía no está definido"
-# FIXME: ¿Por qué este y el siguiente no son iguales?
-#: locale/programs/ld-collate.c:3365
+# FIXME: ¿Por qué este y el siguiente no son iguales?
+#: locale/programs/ld-collate.c:3491
#, c-format
msgid "%s: order for collating element %.*s not yet defined"
-msgstr "%s: el orden para el elemento de ordenación %.*s todavía no está definido"
+msgstr "%s: el orden para el elemento de ordenación %.*s todavía no está definido"
-#: locale/programs/ld-collate.c:3376
+#: locale/programs/ld-collate.c:3502
#, c-format
msgid "%s: cannot reorder after %.*s: symbol not known"
-msgstr "%s: no se puede reordenar después de %.*s: símbolo desconocido"
+msgstr "%s: no se puede reordenar después de %.*s: símbolo desconocido"
-#: locale/programs/ld-collate.c:3428 locale/programs/ld-collate.c:3790
+#: locale/programs/ld-collate.c:3554 locale/programs/ld-collate.c:3915
#, c-format
msgid "%s: missing `reorder-end' keyword"
msgstr "%s: falta la palabra clave `reorder-end'"
-#: locale/programs/ld-collate.c:3462 locale/programs/ld-collate.c:3662
+#: locale/programs/ld-collate.c:3588 locale/programs/ld-collate.c:3786
#, c-format
msgid "%s: section `%.*s' not known"
-msgstr "%s: la sección `%.*s' es desconocida"
+msgstr "%s: la sección `%.*s' es desconocida"
-#: locale/programs/ld-collate.c:3527
+#: locale/programs/ld-collate.c:3653
#, c-format
msgid "%s: bad symbol <%.*s>"
-msgstr "%s: símbolo erróneo <%.*s>"
+msgstr "%s: símbolo erróneo <%.*s>"
-#: locale/programs/ld-collate.c:3725
+#: locale/programs/ld-collate.c:3849
#, c-format
msgid "%s: cannot have `%s' as end of ellipsis range"
msgstr "%s: no puede tener `%s' como final de un rango de elipsis"
-#: locale/programs/ld-collate.c:3774
+#: locale/programs/ld-collate.c:3899
#, c-format
msgid "%s: empty category description not allowed"
-msgstr "%s: no se permite una descripción de categoría vacía"
+msgstr "%s: no se permite una descripción de categoría vacía"
-#: locale/programs/ld-collate.c:3793
+#: locale/programs/ld-collate.c:3918
#, c-format
msgid "%s: missing `reorder-sections-end' keyword"
msgstr "%s: falta la palabra clave `reorder-sections-end'"
+#: locale/programs/ld-collate.c:4082
+#, c-format
+msgid "%s: '%s' without matching 'ifdef' or 'ifndef'"
+msgstr "%s: '%s' sin el 'ifdef' o 'ifndef' correspondiente"
+
+#: locale/programs/ld-collate.c:4100
+#, c-format
+msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'"
+msgstr "%s: 'endif' sin el 'ifdef' o 'ifndef' correspondiente"
+
#: locale/programs/ld-ctype.c:440
+#, c-format
msgid "No character set name specified in charmap"
msgstr ""
-"No se ha especificado ningún nombre de conjunto de caracteres en la tabla\n"
+"No se ha especificado ningún nombre de conjunto de caracteres en la tabla\n"
"de caracteres"
#: locale/programs/ld-ctype.c:469
#, c-format
msgid "character L'\\u%0*x' in class `%s' must be in class `%s'"
-msgstr "el carácter L'\\u%0*x' en la clase `%s' debe estar en la clase `%s'"
+msgstr "el carácter L'\\u%0*x' en la clase `%s' debe estar en la clase `%s'"
#: locale/programs/ld-ctype.c:484
#, c-format
msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'"
-msgstr "el carácter L'\\u%0*x' en la clase `%s' no debe estar en la clase `%s"
+msgstr "el carácter L'\\u%0*x' en la clase `%s' no debe estar en la clase `%s"
#: locale/programs/ld-ctype.c:498 locale/programs/ld-ctype.c:556
#, c-format
msgid "internal error in %s, line %u"
-msgstr "error interno en %s, línea %u"
+msgstr "error interno en %s, línea %u"
#: locale/programs/ld-ctype.c:527
#, c-format
msgid "character '%s' in class `%s' must be in class `%s'"
-msgstr "el carácter '%s' en la clase `%s' debe estar en la clase `%s'"
+msgstr "el carácter '%s' en la clase `%s' debe estar en la clase `%s'"
#: locale/programs/ld-ctype.c:543
#, c-format
msgid "character '%s' in class `%s' must not be in class `%s'"
-msgstr "el carácter '%s' en la clase `%s' no debe estar en la clase `%s"
+msgstr "el carácter '%s' en la clase `%s' no debe estar en la clase `%s"
#: locale/programs/ld-ctype.c:573 locale/programs/ld-ctype.c:611
#, c-format
msgid "<SP> character not in class `%s'"
-msgstr "El carácter <SP> no está en la clase `%s'"
+msgstr "El carácter <SP> no está en la clase `%s'"
#: locale/programs/ld-ctype.c:585 locale/programs/ld-ctype.c:622
#, c-format
msgid "<SP> character must not be in class `%s'"
-msgstr "El carácter <SP> no debe estar en la clase `%s'"
+msgstr "El carácter <SP> no debe estar en la clase `%s'"
#: locale/programs/ld-ctype.c:600
+#, c-format
msgid "character <SP> not defined in character map"
-msgstr "el carácter <SP> no está definido en la tabla de caracteres"
+msgstr "el carácter <SP> no está definido en la tabla de caracteres"
-#: locale/programs/ld-ctype.c:714
+#: locale/programs/ld-ctype.c:736
+#, c-format
msgid "`digit' category has not entries in groups of ten"
-msgstr "la categoría `digit' no tiene entradas en grupos de diez"
+msgstr "la categoría `digit' no tiene entradas en grupos de diez"
-# FIXME: El original no se entiende. ¿Es gramaticalmente correcto? sv
-#: locale/programs/ld-ctype.c:763
+# FIXME: El original no se entiende. ¿Es gramaticalmente correcto? sv
+#: locale/programs/ld-ctype.c:785
+#, c-format
msgid "no input digits defined and none of the standard names in the charmap"
msgstr ""
-"no hay ningún dígito de entrada definido y ninguno de los nombres estándar\n"
+"no hay ningún dígito de entrada definido y ninguno de los nombres estándar\n"
"en el conjunto de caracteres"
-#: locale/programs/ld-ctype.c:828
+#: locale/programs/ld-ctype.c:850
+#, c-format
msgid "not all characters used in `outdigit' are available in the charmap"
msgstr ""
-"no todos los caracteres usados en `outdigit' están disponibles en la tabla\n"
+"no todos los caracteres usados en `outdigit' están disponibles en la tabla\n"
"de caracteres"
-#: locale/programs/ld-ctype.c:845
+#: locale/programs/ld-ctype.c:867
+#, c-format
msgid "not all characters used in `outdigit' are available in the repertoire"
-msgstr "no todos los caracteres usados en `outdigit' están disponibles en el repertorio"
+msgstr "no todos los caracteres usados en `outdigit' están disponibles en el repertorio"
-#: locale/programs/ld-ctype.c:1244
+#: locale/programs/ld-ctype.c:1270
#, c-format
msgid "character class `%s' already defined"
-msgstr "la clase de carácter `%s' ya fue definida"
+msgstr "la clase de carácter `%s' ya fue definida"
-#: locale/programs/ld-ctype.c:1250
+#: locale/programs/ld-ctype.c:1276
#, c-format
msgid "implementation limit: no more than %Zd character classes allowed"
-msgstr "límite de la implementación: no se permiten más de %Zd clases de caracteres"
+msgstr "límite de la implementación: no se permiten más de %Zd clases de caracteres"
-#: locale/programs/ld-ctype.c:1276
+#: locale/programs/ld-ctype.c:1302
#, c-format
msgid "character map `%s' already defined"
-msgstr "la tabla de caracteres `%s' ya está definida"
+msgstr "la tabla de caracteres `%s' ya está definida"
-#: locale/programs/ld-ctype.c:1282
+#: locale/programs/ld-ctype.c:1308
#, c-format
msgid "implementation limit: no more than %d character maps allowed"
-msgstr "límite de la implementación: no se permiten más de %d tablas de caracteres"
+msgstr "límite de la implementación: no se permiten más de %d tablas de caracteres"
-#: locale/programs/ld-ctype.c:1547 locale/programs/ld-ctype.c:1672
-#: locale/programs/ld-ctype.c:1778 locale/programs/ld-ctype.c:2464
-#: locale/programs/ld-ctype.c:3460
+#: locale/programs/ld-ctype.c:1573 locale/programs/ld-ctype.c:1698
+#: locale/programs/ld-ctype.c:1804 locale/programs/ld-ctype.c:2496
+#: locale/programs/ld-ctype.c:3492
#, c-format
msgid "%s: field `%s' does not contain exactly ten entries"
msgstr "%s: el campo `%s' no contiene exactamente diez entradas"
-#: locale/programs/ld-ctype.c:1575 locale/programs/ld-ctype.c:2146
+#: locale/programs/ld-ctype.c:1601 locale/programs/ld-ctype.c:2175
#, c-format
msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
-msgstr "el valor `to' del rango <U%0*X> es más pequeño que el valor `from' <U%0*X>"
+msgstr "el valor `to' del rango <U%0*X> es más pequeño que el valor `from' <U%0*X>"
-#: locale/programs/ld-ctype.c:1702
+#: locale/programs/ld-ctype.c:1728
msgid "start and end character sequence of range must have the same length"
msgstr "los caracteres de comienzo y final del rango debe tener la misma longitud"
-#: locale/programs/ld-ctype.c:1709
+#: locale/programs/ld-ctype.c:1735
msgid "to-value character sequence is smaller than from-value sequence"
-msgstr "el valor `to' de la sucesión de caracteres es más pequeño que el valor `from'"
+msgstr "el valor `to' de la sucesión de caracteres es más pequeño que el valor `from'"
-#: locale/programs/ld-ctype.c:2066 locale/programs/ld-ctype.c:2117
+#: locale/programs/ld-ctype.c:2095 locale/programs/ld-ctype.c:2146
msgid "premature end of `translit_ignore' definition"
-msgstr "Fin no esperado de la definición `translit_ignore'"
+msgstr "Fin no esperado de la definición `translit_ignore'"
-#: locale/programs/ld-ctype.c:2072 locale/programs/ld-ctype.c:2123
-#: locale/programs/ld-ctype.c:2165
+#: locale/programs/ld-ctype.c:2101 locale/programs/ld-ctype.c:2152
+#: locale/programs/ld-ctype.c:2194
msgid "syntax error"
msgstr "error de sintaxis"
-#: locale/programs/ld-ctype.c:2296
+#: locale/programs/ld-ctype.c:2328
#, c-format
msgid "%s: syntax error in definition of new character class"
-msgstr "%s: error de sintaxis en la definición de una nueva clase de caracteres"
+msgstr "%s: error de sintaxis en la definición de una nueva clase de caracteres"
-#: locale/programs/ld-ctype.c:2311
+#: locale/programs/ld-ctype.c:2343
#, c-format
msgid "%s: syntax error in definition of new character map"
-msgstr "%s: error de sintaxis en la definición de un nueva tabla de caracteres"
+msgstr "%s: error de sintaxis en la definición de un nueva tabla de caracteres"
-#: locale/programs/ld-ctype.c:2486
+#: locale/programs/ld-ctype.c:2518
msgid "ellipsis range must be marked by two operands of same type"
msgstr "el rango de la elipsis debe estar marcada mediante dos operandos del mismo tipo"
-#: locale/programs/ld-ctype.c:2495
+#: locale/programs/ld-ctype.c:2527
msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
-msgstr "con valores de rango nombre simbólico la elipsis absoluta `...' no debe usarse"
+msgstr "con valores de rango nombre simbólico la elipsis absoluta `...' no debe usarse"
-#: locale/programs/ld-ctype.c:2510
+#: locale/programs/ld-ctype.c:2542
msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
-msgstr "con valores de rango UCS se debe utilizar la elipsis simbólica hexadecimal `..'"
+msgstr "con valores de rango UCS se debe utilizar la elipsis simbólica hexadecimal `..'"
-#: locale/programs/ld-ctype.c:2524
+#: locale/programs/ld-ctype.c:2556
msgid "with character code range values one must use the absolute ellipsis `...'"
-msgstr "con valores de rango código de caracteres se debe utilizar la elipsis absoluta `...'"
+msgstr "con valores de rango código de caracteres se debe utilizar la elipsis absoluta `...'"
-#: locale/programs/ld-ctype.c:2675
+#: locale/programs/ld-ctype.c:2707
#, c-format
msgid "duplicated definition for mapping `%s'"
-msgstr "definición duplicada para la asignación `%s'"
+msgstr "definición duplicada para la asignación `%s'"
-#: locale/programs/ld-ctype.c:2761 locale/programs/ld-ctype.c:2905
+#: locale/programs/ld-ctype.c:2793 locale/programs/ld-ctype.c:2937
#, c-format
msgid "%s: `translit_start' section does not end with `translit_end'"
-msgstr "%s: la sección `translit_start' no termina con `translit_end'"
+msgstr "%s: la sección `translit_start' no termina con `translit_end'"
-#: locale/programs/ld-ctype.c:2856
+#: locale/programs/ld-ctype.c:2888
#, c-format
msgid "%s: duplicate `default_missing' definition"
-msgstr "%s: definición `default_missing' duplicada"
+msgstr "%s: definición `default_missing' duplicada"
-#: locale/programs/ld-ctype.c:2861
+#: locale/programs/ld-ctype.c:2893
msgid "previous definition was here"
-msgstr "aquí estaba la definición anterior"
+msgstr "aquí estaba la definición anterior"
-#: locale/programs/ld-ctype.c:2883
+#: locale/programs/ld-ctype.c:2915
#, c-format
msgid "%s: no representable `default_missing' definition found"
-msgstr "%s: no se ha encontrado ninguna definición de `default_missing' representable"
-
-#: locale/programs/ld-ctype.c:3036
-#, c-format
-msgid "%s: character `%s' not defined in charmap while needed as default value"
-msgstr ""
-"%s: el carácter `%s' no está definido en el conjundo de caracteres\n"
-"cuando se necesitó como valor predeterminado"
-
-#: locale/programs/ld-ctype.c:3041 locale/programs/ld-ctype.c:3125
-#: locale/programs/ld-ctype.c:3145 locale/programs/ld-ctype.c:3166
-#: locale/programs/ld-ctype.c:3187 locale/programs/ld-ctype.c:3208
-#: locale/programs/ld-ctype.c:3229 locale/programs/ld-ctype.c:3269
-#: locale/programs/ld-ctype.c:3290 locale/programs/ld-ctype.c:3357
-#, c-format
-msgid "%s: character `%s' in charmap not representable with one byte"
-msgstr "%s: el carácter `%s' en la tabla de caracteres no es representable con un byte"
+msgstr "%s: no se ha encontrado ninguna definición de `default_missing' representable"
-#: locale/programs/ld-ctype.c:3120 locale/programs/ld-ctype.c:3140
-#: locale/programs/ld-ctype.c:3182 locale/programs/ld-ctype.c:3203
-#: locale/programs/ld-ctype.c:3224 locale/programs/ld-ctype.c:3264
-#: locale/programs/ld-ctype.c:3285 locale/programs/ld-ctype.c:3352
-#: locale/programs/ld-ctype.c:3394 locale/programs/ld-ctype.c:3419
+#: locale/programs/ld-ctype.c:3068 locale/programs/ld-ctype.c:3152
+#: locale/programs/ld-ctype.c:3172 locale/programs/ld-ctype.c:3193
+#: locale/programs/ld-ctype.c:3214 locale/programs/ld-ctype.c:3235
+#: locale/programs/ld-ctype.c:3256 locale/programs/ld-ctype.c:3296
+#: locale/programs/ld-ctype.c:3317 locale/programs/ld-ctype.c:3384
+#: locale/programs/ld-ctype.c:3426 locale/programs/ld-ctype.c:3451
#, c-format
msgid "%s: character `%s' not defined while needed as default value"
-msgstr "%s: el carácter `%s' no está definido cuando se necesitó como valor predeterminado"
+msgstr "%s: el carácter `%s' no está definido cuando se necesitó como valor predeterminado"
-#: locale/programs/ld-ctype.c:3161
+#: locale/programs/ld-ctype.c:3073 locale/programs/ld-ctype.c:3157
+#: locale/programs/ld-ctype.c:3177 locale/programs/ld-ctype.c:3198
+#: locale/programs/ld-ctype.c:3219 locale/programs/ld-ctype.c:3240
+#: locale/programs/ld-ctype.c:3261 locale/programs/ld-ctype.c:3301
+#: locale/programs/ld-ctype.c:3322 locale/programs/ld-ctype.c:3389
#, c-format
-msgid "character `%s' not defined while needed as default value"
-msgstr "el carácter `%s' no está definido cuando se necesitó como valor por defecto"
+msgid "%s: character `%s' in charmap not representable with one byte"
+msgstr "%s: el carácter `%s' en la tabla de caracteres no es representable con un byte"
-#: locale/programs/ld-ctype.c:3401 locale/programs/ld-ctype.c:3426
+#: locale/programs/ld-ctype.c:3433 locale/programs/ld-ctype.c:3458
#, c-format
msgid "%s: character `%s' needed as default value not representable with one byte"
msgstr ""
-"%s: el carácter `%s' necesario como valor predeterminado no es representable\n"
+"%s: el carácter `%s' necesario como valor predeterminado no es representable\n"
"con un byte"
# FIXME: Lo mismo de antes.
-#: locale/programs/ld-ctype.c:3481
+#: locale/programs/ld-ctype.c:3514
+#, c-format
msgid "no output digits defined and none of the standard names in the charmap"
msgstr ""
-"no hay ningún dígito de salida definido y ninguno de los nombres estándar\n"
+"no hay ningún dígito de salida definido y ninguno de los nombres estándar\n"
"en el conjunto de caracteres"
-# Pregunta: ¿De verdad existe transliteración en español? sv
-#: locale/programs/ld-ctype.c:3772
+# Pregunta: ¿De verdad existe transliteración en español? sv
+#: locale/programs/ld-ctype.c:3805
#, c-format
msgid "%s: transliteration data from locale `%s' not available"
-msgstr "%s: los datos de transliteración del local `%s' no están disponibles"
+msgstr "%s: los datos de transliteración del local `%s' no están disponibles"
-#: locale/programs/ld-ctype.c:3868
+#: locale/programs/ld-ctype.c:3906
#, c-format
msgid "%s: table for class \"%s\": %lu bytes\n"
msgstr "%s: tabla para la clase \"%s\": %lu bytes\n"
-#: locale/programs/ld-ctype.c:3937
+#: locale/programs/ld-ctype.c:3975
#, c-format
msgid "%s: table for map \"%s\": %lu bytes\n"
-msgstr "%s: tabla para la asignación \"%s\": %lu bytes\n"
+msgstr "%s: tabla para la asignación \"%s\": %lu bytes\n"
-#: locale/programs/ld-ctype.c:4070
+#: locale/programs/ld-ctype.c:4108
#, c-format
msgid "%s: table for width: %lu bytes\n"
msgstr "%s: tabla para el ancho: %lu bytes\n"
-#: locale/programs/ld-identification.c:171
+#: locale/programs/ld-identification.c:170
#, c-format
msgid "%s: no identification for category `%s'"
-msgstr "%s: no hay ninguna identificación para la categoría `%s'"
+msgstr "%s: no hay ninguna identificación para la categoría `%s'"
-#: locale/programs/ld-identification.c:436
+#: locale/programs/ld-identification.c:435
#, c-format
msgid "%s: duplicate category version definition"
-msgstr "%s: definición duplicada de la versión de la categoría"
+msgstr "%s: definición duplicada de la versión de la categoría"
-# Ídem. 1984.
-#: locale/programs/ld-measurement.c:114
+# Ãdem. 1984.
+#: locale/programs/ld-measurement.c:113
#, c-format
msgid "%s: invalid value for field `%s'"
-msgstr "%s: valor inválido para el campo `%s'"
+msgstr "%s: valor inválido para el campo `%s'"
# FIXME: Este mensaje se parece sospechosamente al anterior. sv
-#: locale/programs/ld-messages.c:115 locale/programs/ld-messages.c:149
+#: locale/programs/ld-messages.c:114 locale/programs/ld-messages.c:148
#, c-format
msgid "%s: field `%s' undefined"
-msgstr "%s: el campo `%s' no está definido"
+msgstr "%s: el campo `%s' no está definido"
-#: locale/programs/ld-messages.c:122 locale/programs/ld-messages.c:156
+#: 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: el valor para el campo `%s' no debe ser la cadena vacía"
+msgstr "%s: el valor para el campo `%s' no debe ser la cadena vacía"
-#: locale/programs/ld-messages.c:138 locale/programs/ld-messages.c:172
+#: 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: la expresión regular para el campo `%s' no es correcta: %s"
+msgstr "%s: la expresión regular para el campo `%s' no es correcta: %s"
-# ¿Errónea? em+
-# También se puede poner equivocada. sv+
+# ¿Errónea? em+
+# También se puede poner equivocada. sv+
#: locale/programs/ld-monetary.c:224
#, c-format
msgid "%s: value of field `int_curr_symbol' has wrong length"
-msgstr "%s: el valor del campo `int_curr_symbol' tiene una longitud errónea"
+msgstr "%s: el valor del campo `int_curr_symbol' tiene una longitud errónea"
#: 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: el valor del campo `int_curr_symbol' no se corresponde con un nombre\n"
-"válido en ISO 4217"
-
-#: locale/programs/ld-monetary.c:256 locale/programs/ld-numeric.c:119
-#, c-format
-msgid "%s: value for field `%s' must not be the empty string"
-msgstr "%s: el valor para el campo `%s' no debe estar vacío"
+"válido en ISO 4217"
-#: locale/programs/ld-monetary.c:284 locale/programs/ld-monetary.c:314
+#: 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: el valor para el campo `%s' debe estar en el rango %d...%d"
-#: locale/programs/ld-monetary.c:746 locale/programs/ld-numeric.c:275
+#: 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: el valor para el campo `%s' debe ser un único carácter"
+msgstr "%s: el valor para el campo `%s' debe ser un único carácter"
-#: locale/programs/ld-monetary.c:843 locale/programs/ld-numeric.c:319
+#: 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' debe ser la última entrada del campo `%s'"
+msgstr "%s: `-1' debe ser la última entrada del campo `%s'"
-#: locale/programs/ld-monetary.c:865 locale/programs/ld-numeric.c:340
+#: 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: los valores para el campo `%s' deben ser menores que 127"
-#: locale/programs/ld-monetary.c:908
+#: locale/programs/ld-monetary.c:909
msgid "conversion rate value cannot be zero"
-msgstr "el valor de la tasa de conversión no puede ser cero"
+msgstr "el valor de la tasa de conversión no puede ser cero"
-#: locale/programs/ld-name.c:130 locale/programs/ld-telephone.c:127
-#: locale/programs/ld-telephone.c:150
+#: locale/programs/ld-name.c:129 locale/programs/ld-telephone.c:126
+#: locale/programs/ld-telephone.c:149
#, c-format
msgid "%s: invalid escape sequence in field `%s'"
-msgstr "%s: secuencia de escape inválida en el campo `%s'"
+msgstr "%s: secuencia de escape inválida en el campo `%s'"
-#: locale/programs/ld-time.c:248
+#: locale/programs/ld-time.c:247
#, c-format
msgid "%s: direction flag in string %Zd in `era' field is not '+' nor '-'"
-msgstr "%s: el indicador de dirección en la cadena %Zd en el campo `era' no es '+' ni '-'"
+msgstr "%s: el indicador de dirección en la cadena %Zd en el campo `era' no es '+' ni '-'"
-#: locale/programs/ld-time.c:259
+#: 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: el indicador de dirección en la cadena %Zd en el campo `era' no es un único carácter"
+msgstr "%s: el indicador de dirección en la cadena %Zd en el campo `era' no es un único carácter"
-#: locale/programs/ld-time.c:272
+#: locale/programs/ld-time.c:271
#, c-format
msgid "%s: invalid number for offset in string %Zd in `era' field"
-msgstr "%s: número de desplazamiento ilegal en la cadena %Zd en el campo `era'"
+msgstr "%s: número de desplazamiento ilegal en la cadena %Zd en el campo `era'"
-#: locale/programs/ld-time.c:280
+#: locale/programs/ld-time.c:279
#, c-format
msgid "%s: garbage at end of offset value in string %Zd in `era' field"
msgstr ""
"%s: incongruencias al final del valor de desplazamiento en la cadena %Zd\n"
"en el campo `era'"
-#: locale/programs/ld-time.c:331
+#: locale/programs/ld-time.c:330
#, c-format
msgid "%s: invalid starting date in string %Zd in `era' field"
-msgstr "%s: fecha de comienzo inválida en la cadena %Zd en el campo `era'"
+msgstr "%s: fecha de comienzo inválida en la cadena %Zd en el campo `era'"
-# FIXME: ¿Por qué el espacio final? sv
-#: locale/programs/ld-time.c:340
+# FIXME: ¿Por qué el espacio final? sv
+#: locale/programs/ld-time.c:339
#, c-format
msgid "%s: garbage at end of starting date in string %Zd in `era' field "
msgstr ""
"%s: incongruencias al final de la fecha de comienzo en la cadena %Zd\n"
"en el campo `era' "
-#: locale/programs/ld-time.c:359
+#: locale/programs/ld-time.c:358
#, c-format
msgid "%s: starting date is invalid in string %Zd in `era' field"
-msgstr "%s: la fecha de comienzo es inválida en la cadena %Zd del campo `era'"
+msgstr "%s: la fecha de comienzo es inválida en la cadena %Zd del campo `era'"
-#: locale/programs/ld-time.c:408
+#: locale/programs/ld-time.c:407 locale/programs/ld-time.c:435
#, c-format
msgid "%s: invalid stopping date in string %Zd in `era' field"
-msgstr "%s: fecha de parada inválida en la cadena %Zd en el campo `era'"
+msgstr "%s: fecha de parada inválida en la cadena %Zd en el campo `era'"
-#: locale/programs/ld-time.c:417
+#: locale/programs/ld-time.c:416
#, c-format
msgid "%s: garbage at end of stopping date in string %Zd in `era' field"
msgstr ""
"%s: incongruencias al final de la fecha de parada en la cadena %Zd\n"
"en el campo `era'"
-#: locale/programs/ld-time.c:436
-#, c-format
-msgid "%s: stopping date is invalid in string %Zd in `era' field"
-msgstr "%s: la fecha de final es inválida en la cadena %Zd del campo `era'"
-
-#: locale/programs/ld-time.c:445
+#: locale/programs/ld-time.c:444
#, c-format
msgid "%s: missing era name in string %Zd in `era' field"
msgstr "%s: falta el nombre de la era en la cadena %Zd en el campo `era'"
-#: locale/programs/ld-time.c:457
+#: locale/programs/ld-time.c:456
#, c-format
msgid "%s: missing era format in string %Zd in `era' field"
msgstr "%s: falta el formato de era en la cadena %Zd en el campo `era'"
-#: locale/programs/ld-time.c:486
+#: locale/programs/ld-time.c:497
#, c-format
msgid "%s: third operand for value of field `%s' must not be larger than %d"
msgstr "%s: el tercer operando para el valor del campo `%s' no debe ser mayor que %d"
-#: locale/programs/ld-time.c:494 locale/programs/ld-time.c:502
-#, c-format
-msgid "%s: values of field `%s' must not be larger than %d"
-msgstr "%s: los valores para el campo `%s' no deben ser mayores que %d"
-
-#: locale/programs/ld-time.c:510
+#: locale/programs/ld-time.c:505 locale/programs/ld-time.c:513
+#: locale/programs/ld-time.c:521
#, c-format
msgid "%s: values for field `%s' must not be larger than %d"
msgstr "%s: los valores para el campo `%s' no deben ser mayores que %d"
-#: locale/programs/ld-time.c:986
+#: locale/programs/ld-time.c:1004
#, c-format
msgid "%s: too few values for field `%s'"
-msgstr "%s: insuficiente número de valores para el campo `%s'"
+msgstr "%s: insuficiente número de valores para el campo `%s'"
-#: locale/programs/ld-time.c:1031
+#: locale/programs/ld-time.c:1049
msgid "extra trailing semicolon"
msgstr "sobra un punto y coma al final"
-#: locale/programs/ld-time.c:1034
+#: locale/programs/ld-time.c:1052
#, c-format
msgid "%s: too many values for field `%s'"
msgstr "%s: demasiados valores para el campo `%s'"
#: locale/programs/linereader.c:130
msgid "trailing garbage at end of line"
-msgstr "hay inconsistencias al final de la línea"
+msgstr "hay inconsistencias al final de la línea"
-#: locale/programs/linereader.c:304
+#: locale/programs/linereader.c:298
msgid "garbage at end of number"
-msgstr "inconsistencias al final del número"
+msgstr "inconsistencias al final del número"
-#: locale/programs/linereader.c:416
+#: locale/programs/linereader.c:410
msgid "garbage at end of character code specification"
-msgstr "inconsistencia al final de la especificación del código de caracteres"
+msgstr "inconsistencia al final de la especificación del código de caracteres"
-#: locale/programs/linereader.c:502
+#: locale/programs/linereader.c:496
msgid "unterminated symbolic name"
-msgstr "nombre simbólico sin terminar"
-
-#: locale/programs/linereader.c:566 catgets/gencat.c:1195
-msgid "invalid escape sequence"
-msgstr "secuencia de escape inválida"
+msgstr "nombre simbólico sin terminar"
-#: locale/programs/linereader.c:629
+#: locale/programs/linereader.c:623
msgid "illegal escape sequence at end of string"
msgstr "secuencia de escape ilegal al final de la cadena de caracteres"
-#: locale/programs/linereader.c:633 locale/programs/linereader.c:861
+#: locale/programs/linereader.c:627 locale/programs/linereader.c:855
msgid "unterminated string"
msgstr "cadena de caracteres sin terminar"
-#: locale/programs/linereader.c:675
+#: locale/programs/linereader.c:669
msgid "non-symbolic character value should not be used"
-msgstr "los valores de caracteres no simbólicos no deben utilizarse"
+msgstr "los valores de caracteres no simbólicos no deben utilizarse"
-#: locale/programs/linereader.c:822
+#: locale/programs/linereader.c:816
#, c-format
msgid "symbol `%.*s' not in charmap"
-msgstr "el símbolo `%.*s' no está en la tabla de caracteres"
+msgstr "el símbolo `%.*s' no está en la tabla de caracteres"
-#: locale/programs/linereader.c:843
+#: locale/programs/linereader.c:837
#, c-format
msgid "symbol `%.*s' not in repertoire map"
-msgstr "el símbolo `%.*s' no está en el repertorio"
+msgstr "el símbolo `%.*s' no está en el repertorio"
+
+#: locale/programs/locale-spec.c:131
+#, c-format
+msgid "unknown name \"%s\""
+msgstr "nombre desconocido \"%s\""
-#: locale/programs/locale.c:75
+#: locale/programs/locale.c:74
msgid "System information:"
-msgstr "Información del sistema:"
+msgstr "Información del sistema:"
-#: locale/programs/locale.c:77
+#: locale/programs/locale.c:76
msgid "Write names of available locales"
msgstr "Escribe los nombres de los locales disponibles"
-#: locale/programs/locale.c:79
+#: locale/programs/locale.c:78
msgid "Write names of available charmaps"
msgstr "Escribe los nombres de las asignaciones de caracteres disponibles"
-#: locale/programs/locale.c:80
+#: locale/programs/locale.c:79
msgid "Modify output format:"
msgstr "Modifica el formato de salida:"
-#: locale/programs/locale.c:81
+#: locale/programs/locale.c:80
msgid "Write names of selected categories"
-msgstr "Escribe los nombres de las categorías seleccionadas"
+msgstr "Escribe los nombres de las categorías seleccionadas"
-#: locale/programs/locale.c:82
+#: locale/programs/locale.c:81
msgid "Write names of selected keywords"
msgstr "Escribe los nombres de las palabras clave seleccionadas"
-#: locale/programs/locale.c:83
+#: locale/programs/locale.c:82
msgid "Print more information"
-msgstr "Muestra más información"
+msgstr "Muestra más información"
-#: locale/programs/locale.c:88
+#: locale/programs/locale.c:87
msgid "Get locale-specific information."
-msgstr "Obtiene la información específica del local."
+msgstr "Obtiene la información específica del local."
-#: locale/programs/locale.c:91
+#: locale/programs/locale.c:90
msgid ""
"NAME\n"
"[-a|-m]"
@@ -1439,99 +2624,104 @@ msgstr ""
"NOMBRE\n"
"[-a|-m]"
-#: locale/programs/locale.c:195
+#: locale/programs/locale.c:194
+#, c-format
msgid "Cannot set LC_CTYPE to default locale"
msgstr "No se puede establecer LC_CTYPE al local predeterminado"
-#: locale/programs/locale.c:197
+#: locale/programs/locale.c:196
+#, c-format
msgid "Cannot set LC_MESSAGES to default locale"
msgstr "No se puede establecer LC_MESSAGES al local predeterminado"
-#: locale/programs/locale.c:210
+#: locale/programs/locale.c:209
+#, c-format
msgid "Cannot set LC_COLLATE to default locale"
msgstr "No se puede establecer LC_COLLATE al local predeterminado"
-#: locale/programs/locale.c:226
+#: locale/programs/locale.c:225
+#, c-format
msgid "Cannot set LC_ALL to default locale"
msgstr "No se puede establecer LC_ALL al local predeterminado"
-#: locale/programs/locale.c:517
+#: locale/programs/locale.c:518
+#, c-format
msgid "while preparing output"
msgstr "al preparar la salida"
-#: locale/programs/localedef.c:121
+#: locale/programs/localedef.c:120
msgid "Input Files:"
msgstr "Ficheros de Entrada:"
-#: locale/programs/localedef.c:123
+#: locale/programs/localedef.c:122
msgid "Symbolic character names defined in FILE"
-msgstr "Nombres simbólicos de caracteres definidos en FICHERO"
+msgstr "Nombres simbólicos de caracteres definidos en FICHERO"
-#: locale/programs/localedef.c:124
+#: locale/programs/localedef.c:123
msgid "Source definitions are found in FILE"
msgstr "Las definiciones fuente se encuentran en FICHERO"
-#: locale/programs/localedef.c:126
+#: locale/programs/localedef.c:125
msgid "FILE contains mapping from symbolic names to UCS4 values"
-msgstr "El FICHERO contiene una asignación de nombres simbólicos a valores UCS4"
+msgstr "El FICHERO contiene una asignación de nombres simbólicos a valores UCS4"
-#: locale/programs/localedef.c:130
+#: locale/programs/localedef.c:129
msgid "Create output even if warning messages were issued"
msgstr "Crea la salida incluso si hubo mensajes de aviso"
-#: locale/programs/localedef.c:131
+#: locale/programs/localedef.c:130
msgid "Create old-style tables"
msgstr "Crea tablas en estilo antiguo"
-#: locale/programs/localedef.c:132
+#: locale/programs/localedef.c:131
msgid "Optional output file prefix"
msgstr "Prefijo opcional del fichero de salida"
-#: locale/programs/localedef.c:133
+#: locale/programs/localedef.c:132
msgid "Be strictly POSIX conform"
-msgstr "Actúa estrictamente de acuerdo con la norma POSIX"
+msgstr "Actúa estrictamente de acuerdo con la norma POSIX"
-#: locale/programs/localedef.c:135
+#: locale/programs/localedef.c:134
msgid "Suppress warnings and information messages"
-msgstr "Suprime los avisos y los mensajes de información"
+msgstr "Suprime los avisos y los mensajes de información"
-#: locale/programs/localedef.c:136
+#: locale/programs/localedef.c:135
msgid "Print more messages"
-msgstr "Muestra más mensajes"
+msgstr "Muestra más mensajes"
-#: locale/programs/localedef.c:137
+#: locale/programs/localedef.c:136
msgid "Archive control:"
msgstr "Control del archivo:"
-#: locale/programs/localedef.c:139
+#: locale/programs/localedef.c:138
msgid "Don't add new data to archive"
-msgstr "No añade nuevos datos al archivo"
+msgstr "No añade nuevos datos al archivo"
-#: locale/programs/localedef.c:141
+#: locale/programs/localedef.c:140
msgid "Add locales named by parameters to archive"
-msgstr "Añade locales nombrados por parámetros al archivo"
+msgstr "Añade locales nombrados por parámetros al archivo"
-#: locale/programs/localedef.c:142
+#: locale/programs/localedef.c:141
msgid "Replace existing archive content"
msgstr "Reemplaza el contenido del archivo que exista"
-#: locale/programs/localedef.c:144
+#: locale/programs/localedef.c:143
msgid "Remove locales named by parameters from archive"
-msgstr "Elimina locales nombrados por parámetros del archivo"
+msgstr "Elimina locales nombrados por parámetros del archivo"
-#: locale/programs/localedef.c:145
+#: locale/programs/localedef.c:144
msgid "List content of archive"
msgstr "Lista el contenido del archivo"
-#: locale/programs/localedef.c:147
+#: locale/programs/localedef.c:146
msgid "locale.alias file to consult when making archive"
-msgstr "fichero locale.alias que se consultará al crear el archivo"
+msgstr "fichero locale.alias que se consultará al crear el archivo"
-#: locale/programs/localedef.c:152
+#: locale/programs/localedef.c:151
msgid "Compile locale specification"
-msgstr "Compila una especificación de locales"
+msgstr "Compila una especificación de locales"
-#: locale/programs/localedef.c:155
+#: locale/programs/localedef.c:154
msgid ""
"NAME\n"
"[--add-to-archive|--delete-from-archive] FILE...\n"
@@ -1541,2605 +2731,2049 @@ msgstr ""
"[--add-to-archive|--delete-from-archive] FICHERO...\n"
"--list-archive [FICHERO]"
-#: locale/programs/localedef.c:233
+#: locale/programs/localedef.c:232
+#, c-format
msgid "cannot create directory for output files"
msgstr "no se puede crear el directorio para los ficheros de salida"
-#: locale/programs/localedef.c:244
+#: locale/programs/localedef.c:243
+#, c-format
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "Error fatal: el sistema no define `_POSIX2_LOCALEDEF'"
-#: locale/programs/localedef.c:258 locale/programs/localedef.c:274
+#: 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 "no se puede abrir el fichero de definición de locales `%s'"
+msgstr "no se puede abrir el fichero de definición de locales `%s'"
-# OJO: %s podría ser un directorio.
-#: locale/programs/localedef.c:286
+# OJO: %s podría ser un directorio.
+#: locale/programs/localedef.c:285
#, c-format
msgid "cannot write output files to `%s'"
msgstr "no se puede escribir en el fichero de salida `%s'"
-# ¿repertorios?
-#: locale/programs/localedef.c:367
+# ¿repertorios?
+#: locale/programs/localedef.c:366
#, c-format
msgid ""
"System's directory for character maps : %s\n"
-" repertoire maps: %s\n"
-" locale path : %s\n"
+"\t\t repertoire maps: %s\n"
+"\t\t locale path : %s\n"
"%s"
msgstr ""
"Directorio del sistema para asignaciones de caracteres : %s\n"
-" asignaciones de repertorios: %s\n"
-" ruta de búsqueda de locales: %s\n"
+"\t\t asignaciones de repertorios : %s\n"
+"\t\t ruta de búsqueda de locales : %s\n"
"%s"
#: locale/programs/localedef.c:567
+#, c-format
msgid "circular dependencies between locale definitions"
msgstr "dependencias circulares entre definiciones de locales"
#: locale/programs/localedef.c:573
#, c-format
msgid "cannot add already read locale `%s' a second time"
-msgstr "no se puede añadir el local ya leído `%s' por segunda vez"
+msgstr "no se puede añadir el local ya leído `%s' por segunda vez"
-#: locale/programs/locarchive.c:89 locale/programs/locarchive.c:259
+#: locale/programs/locarchive.c:92 locale/programs/locarchive.c:338
+#, c-format
msgid "cannot create temporary file"
msgstr "no se puede crear un fichero temporal"
-#: locale/programs/locarchive.c:118 locale/programs/locarchive.c:305
+#: locale/programs/locarchive.c:122 locale/programs/locarchive.c:384
+#, c-format
msgid "cannot initialize archive file"
msgstr "no se puede inicializar el archivo"
-#: locale/programs/locarchive.c:125 locale/programs/locarchive.c:312
+#: locale/programs/locarchive.c:129 locale/programs/locarchive.c:391
+#, c-format
msgid "cannot resize archive file"
-msgstr "no se puede cambiar el tamaño del archivo"
+msgstr "no se puede cambiar el tamaño del archivo"
-#: locale/programs/locarchive.c:134 locale/programs/locarchive.c:321
-#: locale/programs/locarchive.c:511
+#: locale/programs/locarchive.c:152 locale/programs/locarchive.c:414
+#: locale/programs/locarchive.c:633
+#, c-format
msgid "cannot map archive header"
msgstr "no se puede leer la cabecera del archivo"
-#: locale/programs/locarchive.c:156
+#: locale/programs/locarchive.c:174
+#, c-format
msgid "failed to create new locale archive"
msgstr "fallo al crear un nuevo archivo de locales"
-#: locale/programs/locarchive.c:168
+#: locale/programs/locarchive.c:186
+#, c-format
msgid "cannot change mode of new locale archive"
msgstr "no se puede cambiar el modo del nuevo archivo de locales"
-#: locale/programs/locarchive.c:253
+#: locale/programs/locarchive.c:285
+#, c-format
+msgid "cannot read data from locale archive"
+msgstr "no se pueden leer datos del archivo de locales"
+
+#: locale/programs/locarchive.c:318
+#, c-format
msgid "cannot map locale archive file"
msgstr "no se puede leer el fichero de locales"
-#: locale/programs/locarchive.c:329
+#: locale/programs/locarchive.c:422
+#, c-format
msgid "cannot lock new archive"
msgstr "no se puede bloquear el archivo nuevo"
-#: locale/programs/locarchive.c:380
+#: locale/programs/locarchive.c:488
+#, c-format
msgid "cannot extend locale archive file"
msgstr "no se puede extender el archivo de locales"
-#: locale/programs/locarchive.c:389
+#: locale/programs/locarchive.c:497
+#, c-format
msgid "cannot change mode of resized locale archive"
msgstr "no se puede cambiar el modo de un archivo de locales redimensionado"
-#: locale/programs/locarchive.c:397
+#: locale/programs/locarchive.c:505
+#, c-format
msgid "cannot rename new archive"
msgstr "no se puede renombrar el nuevo archivo"
-#: locale/programs/locarchive.c:450
+#: locale/programs/locarchive.c:558
#, c-format
msgid "cannot open locale archive \"%s\""
msgstr "no se puede abrir el archivo de locales \"%s\""
-#: locale/programs/locarchive.c:455
+#: locale/programs/locarchive.c:563
#, c-format
msgid "cannot stat locale archive \"%s\""
msgstr "no se puede efectuar `stat' sobre el archivo de locales \"%s\""
-#: locale/programs/locarchive.c:474
+#: locale/programs/locarchive.c:582
#, c-format
msgid "cannot lock locale archive \"%s\""
msgstr "no se puede bloquear el archivo de locales \"%s\""
-#: locale/programs/locarchive.c:497
+#: locale/programs/locarchive.c:605
+#, c-format
msgid "cannot read archive header"
msgstr "no se puede leer la cabecera del archivo"
-#: locale/programs/locarchive.c:557
+#: locale/programs/locarchive.c:680
#, c-format
msgid "locale '%s' already exists"
msgstr "el local `%s' ya existe"
-#: locale/programs/locarchive.c:788 locale/programs/locarchive.c:803
-#: locale/programs/locarchive.c:815 locale/programs/locarchive.c:827
-#: locale/programs/locfile.c:343
+#: locale/programs/locarchive.c:942 locale/programs/locarchive.c:957
+#: locale/programs/locarchive.c:969 locale/programs/locarchive.c:981
+#: locale/programs/locfile.c:344
+#, c-format
msgid "cannot add to locale archive"
-msgstr "no se puede añadir al archivo de locales"
+msgstr "no se puede añadir al archivo de locales"
-#: locale/programs/locarchive.c:982
+#: locale/programs/locarchive.c:1139
#, c-format
msgid "locale alias file `%s' not found"
-msgstr "no se encontró el fichero de alias de locales `%s'"
+msgstr "no se encontró el fichero de alias de locales `%s'"
-#: locale/programs/locarchive.c:1126
+#: locale/programs/locarchive.c:1289
#, c-format
msgid "Adding %s\n"
-msgstr "Añadiendo %s\n"
+msgstr "Añadiendo %s\n"
-#: locale/programs/locarchive.c:1132
+#: locale/programs/locarchive.c:1295
#, c-format
msgid "stat of \"%s\" failed: %s: ignored"
-msgstr "falló la llamada a `stat' sobre \"%s\": %s: descartado"
+msgstr "falló la llamada a `stat' sobre \"%s\": %s: descartado"
-#: locale/programs/locarchive.c:1138
+#: locale/programs/locarchive.c:1301
#, c-format
msgid "\"%s\" is no directory; ignored"
msgstr "\"%s\" no es un directorio; descartado"
-#: locale/programs/locarchive.c:1145
+#: locale/programs/locarchive.c:1308
#, c-format
msgid "cannot open directory \"%s\": %s: ignored"
msgstr "no se puede abrir el directorio \"%s\": %s: descartado"
-#: locale/programs/locarchive.c:1217
+#: locale/programs/locarchive.c:1380
#, c-format
msgid "incomplete set of locale files in \"%s\""
msgstr "conjunto incompleto de ficheros de locales en \"%s\""
-#: locale/programs/locarchive.c:1281
+#: locale/programs/locarchive.c:1444
#, c-format
msgid "cannot read all files in \"%s\": ignored"
msgstr "no se pueden leer todos los ficheros de \"%s\": descartado"
-#: locale/programs/locarchive.c:1351
+#: locale/programs/locarchive.c:1514
#, c-format
msgid "locale \"%s\" not in archive"
-msgstr "el local \"%s\" no está en el archivo"
+msgstr "el local \"%s\" no está en el archivo"
#: locale/programs/locfile.c:132
#, c-format
msgid "argument to `%s' must be a single character"
-msgstr "el argumento para `%s' debe ser un único carácter"
+msgstr "el argumento para `%s' debe ser un único carácter"
-#: locale/programs/locfile.c:251
+#: locale/programs/locfile.c:252
msgid "syntax error: not inside a locale definition section"
-msgstr "error de sintaxis: no está dentro de una sección de definición para un local"
+msgstr "error de sintaxis: no está dentro de una sección de definición para un local"
-#: locale/programs/locfile.c:625
+#: locale/programs/locfile.c:626
#, c-format
msgid "cannot open output file `%s' for category `%s'"
-msgstr "no se puede abrir el fichero de salida `%s' para la categoría `%s'"
+msgstr "no se puede abrir el fichero de salida `%s' para la categoría `%s'"
-#: locale/programs/locfile.c:649
+#: locale/programs/locfile.c:650
#, c-format
msgid "failure while writing data for category `%s'"
-msgstr "error al escribir los datos para la categoría `%s'"
+msgstr "error al escribir los datos para la categoría `%s'"
-#: locale/programs/locfile.c:745
+#: locale/programs/locfile.c:746
#, c-format
msgid "cannot create output file `%s' for category `%s'"
-msgstr "no se puede crear el fichero de salida `%s' para la categoría `%s'"
+msgstr "no se puede crear el fichero de salida `%s' para la categoría `%s'"
-#: locale/programs/locfile.c:781
-msgid "expect string argument for `copy'"
-msgstr "se espera un argumento de cadena de caracteres para `copy'"
+#: locale/programs/locfile.c:782
+msgid "expecting string argument for `copy'"
+msgstr "se esperaba un argumento de cadena de caracteres para `copy'"
-#: locale/programs/locfile.c:785
+#: locale/programs/locfile.c:786
msgid "locale name should consist only of portable characters"
-msgstr "el nombre del local debe estar formado por caracteres portables únicamente"
+msgstr "el nombre del local debe estar formado por caracteres portables únicamente"
-#: locale/programs/locfile.c:804
+#: locale/programs/locfile.c:805
msgid "no other keyword shall be specified when `copy' is used"
msgstr "cuando se utiliza `copy' no debe especificarse ninguna otra palabra clave"
-#: locale/programs/repertoire.c:230 locale/programs/repertoire.c:271
-#: locale/programs/repertoire.c:296
+#: locale/programs/locfile.c:819
+#, c-format
+msgid "`%1$s' definition does not end with `END %1$s'"
+msgstr "La definición `%1$s' no termina con `END %1$s'"
+
+#: locale/programs/repertoire.c:229 locale/programs/repertoire.c:270
+#: locale/programs/repertoire.c:295
#, c-format
msgid "syntax error in repertoire map definition: %s"
-msgstr "error de sintaxis en la definición de la asignación: %s"
+msgstr "error de sintaxis en la definición de la asignación: %s"
-#: locale/programs/repertoire.c:272
+#: locale/programs/repertoire.c:271
msgid "no <Uxxxx> or <Uxxxxxxxx> value given"
-msgstr "no se ha dado ningún valor <Uxxxx> o <Uxxxxxxxx>"
+msgstr "no se ha dado ningún valor <Uxxxx> o <Uxxxxxxxx>"
-# No sé qué es eso del "repertoire map", pero creo que el repertoire
-# es una simple aclaración. sv
-#: locale/programs/repertoire.c:332
+# No sé qué es eso del "repertoire map", pero creo que el repertoire
+# es una simple aclaración. sv
+#: locale/programs/repertoire.c:331
+#, c-format
msgid "cannot save new repertoire map"
-msgstr "no se puede asegurar el nuevo repertorio"
+msgstr "no se puede guardar el nuevo repertorio"
-#: locale/programs/repertoire.c:343
+#: locale/programs/repertoire.c:342
#, c-format
msgid "repertoire map file `%s' not found"
-msgstr "el fichero de tabla de caracteres `%s' no se encontró"
+msgstr "el fichero de tabla de caracteres `%s' no se encontró"
-#: locale/programs/repertoire.c:450
+#: login/programs/pt_chown.c:78
#, c-format
-msgid "<%s> and <%s> are invalid names for range"
-msgstr "<%s> y <%s> son nombres inválidos para el rango de caracteres"
-
-# FIXME: then -> than
-#: locale/programs/repertoire.c:457
-msgid "upper limit in range is not smaller then lower limit"
-msgstr "el límite superior del rango no es menor que el límite inferior"
-
-#: locale/programs/xmalloc.c:70 malloc/obstack.c:505 malloc/obstack.c:508
-#: posix/getconf.c:1007
-msgid "memory exhausted"
-msgstr "memoria agotada"
+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 "Establece el propietario, grupo y permisos de acceso del pseudoterminal esclavo correspondiente al pseudoterminal maestro que se le pasa en el descriptor de fichero `%d'. Este es el programa de apoyo para la función `grantpt'. No está pensada para ejecutarse directamente desde la línea de órdenes.\n"
-# ¿Qué tiene de malo "inesperado"? sv
-#
-# Parece el nombre de película de los '50 em
-# ... y antes de que digas nada, a mí me encantan
-# las películas de los 50 em
-#
-# Pero es que esa palabra *existe* y significa "no esperado".
-# ¿Por qué quieres empobrecer el idioma de esa forma?
-# ¿No podrías emplear la forma in-loquesea unas veces sí y otras no,
-# para darle variedad a la cosa? (Por ejemplo aquí sí, pues no te debe
-# recordar a una opción en silla de ruedas...). sv+
-#
-# Lo cambio después de leer 1984. sv
-#: assert/assert-perr.c:57
+#: login/programs/pt_chown.c:88
#, c-format
-msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n"
-msgstr "%s%s%s:%u: %s%sError inesperado: %s.\n"
+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 ""
+"El propietario se establece al usuario actual, el grupo se establece a `%s', y los permissos de acceso se establecen a `%o'.\n"
+"\n"
+"%s"
-# La traducción de Jochen es exactamente esta: Zusicherung %s nicht erfüllt
-# que viene a decir algo así que las promesas no se han cumplido, o que
-# las afirmaciones hechas no son ciertas.
-#: assert/assert.c:56
+#: login/programs/pt_chown.c:192
#, c-format
-msgid "%s%s%s:%u: %s%sAssertion `%s' failed.\n"
-msgstr "%s%s%s:%u: %s%sLa declaración `%s' no se cumple.\n"
+msgid "too many arguments"
+msgstr "demasiados argumentos"
-# ¿Qué demonios es esto? sv
-#: intl/tst-codeset.c:40 intl/tst-codeset.c:50
-msgid "cheese"
-msgstr "queso"
+#: login/programs/pt_chown.c:200
+#, c-format
+msgid "needs to be installed setuid `root'"
+msgstr "necesita ser instalado setuid `root'"
-#: intl/tst-gettext2.c:37
-msgid "First string for testing."
-msgstr "Primera cadena para hacer pruebas."
+#: malloc/mcheck.c:350
+msgid "memory is consistent, library is buggy\n"
+msgstr "la memoria es consistente, la biblioteca tiene un bicho\n"
-#: intl/tst-gettext2.c:38
-msgid "Another string for testing."
-msgstr "Otra cadena para hacer pruebas."
+#: malloc/mcheck.c:353
+msgid "memory clobbered before allocated block\n"
+msgstr "memoria alterada antes del bloque de memoria asignado\n"
-#: catgets/gencat.c:111 catgets/gencat.c:115 nscd/nscd.c:88
-msgid "NAME"
-msgstr "NOMBRE"
+#: malloc/mcheck.c:356
+msgid "memory clobbered past end of allocated block\n"
+msgstr "memoria alterada pasado el final del bloque de memoria asignado\n"
-#: catgets/gencat.c:112
-msgid "Create C header file NAME containing symbol definitions"
-msgstr "Crea un fichero de cabecera C, NOMBRE, que contiene las definiciones de símbolos"
+#: malloc/mcheck.c:359
+msgid "block freed twice\n"
+msgstr "bloque liberado dos veces\n"
-#: catgets/gencat.c:114
-msgid "Do not use existing catalog, force new output file"
-msgstr "No utiliza el catálogo existente, crea un nuevo fichero de salida"
+# Revisar lo de bogus. creo que es eso.
+#: malloc/mcheck.c:362
+msgid "bogus mcheck_status, library is buggy\n"
+msgstr "valor de mcheck_status incorrecto, la biblioteca tiene un bicho\n"
-#: catgets/gencat.c:115
-msgid "Write output to file NAME"
-msgstr "Escribe el resultado en el fichero NOMBRE"
+#: malloc/memusage.sh:33
+msgid "%s: option '%s' requires an argument\\n"
+msgstr "%s: la opción '%s' requiere un argumento\\n"
-# FIXME: ¿Qué es ^K?
-#: catgets/gencat.c:120
+#: malloc/memusage.sh:39
msgid ""
-"Generate message catalog. If INPUT-FILE is -, input is read from standard input. If OUTPUT-FILE\n"
-"is -, output is written to standard output.\n"
+"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"
msgstr ""
-"Genera un catálogo de mensajes. Si FICHERO-ENTRADA es -, la entrada\n"
-"se lee de la entrada estándar. Si FICHERO-SALIDA es -, el resultado se\n"
-"escribe en la salida estándar.\n"
+"Modo de empleo: memusage [OPCIÓN]... PROGRAMA [OPCIÓNDEPROGRAMA]...\n"
+"Calibra el uso de memoria de PROGRAMA.\n"
+"\n"
+" -n,--progname=NOMBRE Nombre del programa que se calibra\n"
+" -p,--png=FICHERO Genera un gráfico PNG y lo almacena en FICHERO\n"
+" -d,--data=FICHERO Genera un fichero de datos binario y lo almacena en FICHERO\n"
+" -u,--unbuffered No hace búfer con el resultado\n"
+" -b,--buffer=TAMAÑO Acumula TAMAÑO entradas antes de escribirlas\n"
+" --no-timer No obtiene información adicional a través del temporizador\n"
+" -m,--mmap Sigue también mmap y compañía\n"
+"\n"
+" -?,--help Muestra esta ayuda y finaliza\n"
+" --usage Muestra un breve mensaje de uso\n"
+" -V,--version Muestra la versión y finaliza\n"
+"\n"
+" Las siguientes opciones solamente son aplicables cuando se genera una salida gráfica:\n"
+" -t,--time-based Crea el gráfico lineal en el tiempo\n"
+" -T,--total Dibuja también un gráfico del uso total de memoria\n"
+" --title=CADENA Utiliza CADENA como título del gráfico\n"
+" -x,--x-size=TAMAÑO Crea un gráfico de TAMAÑO pixeles de ancho\n"
+" -y,--y-size=TAMAÑO Crea un gráfico de TAMAÑO pixeles de alto\n"
+"\n"
+"Los argumentos obligatorios para las opciones largas son también obligatorios\n"
+"para las opciones cortas correspondientes.\n"
-#: catgets/gencat.c:125
+#: malloc/memusage.sh:101
msgid ""
-"-o OUTPUT-FILE [INPUT-FILE]...\n"
-"[OUTPUT-FILE [INPUT-FILE]...]"
+"Syntax: memusage [--data=FILE] [--progname=NAME] [--png=FILE] [--unbuffered]\n"
+"\t [--buffer=SIZE] [--no-timer] [--time-based] [--total]\n"
+"\t [--title=STRING] [--x-size=SIZE] [--y-size=SIZE]\n"
+"\t PROGRAM [PROGRAMOPTION]..."
msgstr ""
-"-o FICHERO-SALIDA [FICHERO-ENTRADA]...\n"
-"[FICHERO-SALIDA [FICHERO-ENTRADA]...]"
+"Sintaxis: memusage [--data=FICHERO] [--progname=NOMBRE] [--png=FICHERO] [--unbuffered]\n"
+"\t [--buffer=TAMAÑO] [--no-timer] [--time-based] [--total]\n"
+"\t [--title=CADENA] [--x-size=TAMAÑO] [--y-size=TAMAÑO]\n"
+"\t PROGRAMA [OPCIÓNDEPROGRAMA]..."
-#: catgets/gencat.c:282
-msgid "*standard input*"
-msgstr "*entrada estándar*"
+#: malloc/memusage.sh:193
+msgid "memusage: option \\`${1##*=}' is ambiguous"
+msgstr "memusage: la opción \\`${1##*=}' es ambigua"
-#: catgets/gencat.c:417 catgets/gencat.c:494
-msgid "illegal set number"
-msgstr "número de conjunto ilegal"
+#: malloc/memusage.sh:202
+msgid "memusage: unrecognized option \\`$1'"
+msgstr "memusage: opción no reconocida \\`$1'"
-#: catgets/gencat.c:444
-msgid "duplicate set definition"
-msgstr "definición de conjunto duplicada"
+#: malloc/memusage.sh:215
+msgid "No program name given"
+msgstr "No se ha dado ningún nombre de programa"
-#: catgets/gencat.c:446 catgets/gencat.c:623 catgets/gencat.c:677
-msgid "this is the first definition"
-msgstr "esta es la primera vez que aparece la definición"
-
-#: catgets/gencat.c:522
-#, c-format
-msgid "unknown set `%s'"
-msgstr "conjunto `%s' desconocido"
-
-#: catgets/gencat.c:563
-msgid "invalid quote character"
-msgstr "carácter de cita inválido"
-
-# descartada (?) sv
-# ¿y así? em
-# por mí, vale. sv+
-#: catgets/gencat.c:576
-#, c-format
-msgid "unknown directive `%s': line ignored"
-msgstr "directiva desconocida `%s': línea pasada por alto"
-
-#: catgets/gencat.c:621
-msgid "duplicated message number"
-msgstr "número de mensaje duplicado"
-
-#: catgets/gencat.c:674
-msgid "duplicated message identifier"
-msgstr "identificador de mensaje duplicado"
+# Supondremos que se trata de un imperativo. sv
+#: malloc/memusagestat.c:57
+msgid "Name output file"
+msgstr "Nombre el fichero de salida"
-#: catgets/gencat.c:731
-msgid "invalid character: message ignored"
-msgstr "carácter inválido: mensaje descartado"
+#: malloc/memusagestat.c:58
+msgid "Title string used in output graphic"
+msgstr "Se ha utilizado una cadena de título en la gráfica de salida"
-#: catgets/gencat.c:774
-msgid "invalid line"
-msgstr "línea inválida"
+#: malloc/memusagestat.c:59
+msgid "Generate output linear to time (default is linear to number of function calls)"
+msgstr ""
+"Genera un resultado lineal en el tiempo (por omisión es lineal en el número\n"
+"de llamadas a función)"
-#: catgets/gencat.c:828
-msgid "malformed line ignored"
-msgstr "una línea incorrecta no se tendrá en cuenta"
+#: malloc/memusagestat.c:61
+msgid "Also draw graph for total memory consumption"
+msgstr "Dibuja también una gráfica del total de memoria consumida"
-#: catgets/gencat.c:992 catgets/gencat.c:1033
-#, c-format
-msgid "cannot open output file `%s'"
-msgstr "no se puede abrir el fichero de salida `%s'"
+#: malloc/memusagestat.c:62
+msgid "Make output graphic VALUE pixels wide"
+msgstr "Hace que la salida gráfica tenga VALOR pixels de ancho"
-#: catgets/gencat.c:1217
-msgid "unterminated message"
-msgstr "mensaje sin terminar"
+#: malloc/memusagestat.c:63
+msgid "Make output graphic VALUE pixels high"
+msgstr "Hace que la salida gráfica tenga VALOR pixels de alto"
-#: catgets/gencat.c:1241
-msgid "while opening old catalog file"
-msgstr "al abrir el fichero de catálogo antiguo"
+#: malloc/memusagestat.c:68
+msgid "Generate graphic from memory profiling data"
+msgstr "Genera un gráfico a partir de los datos de `profiling' de memoria"
-#: catgets/gencat.c:1332
-msgid "conversion modules not available"
-msgstr "no están disponibles los módulos de conversión"
+#: malloc/memusagestat.c:71
+msgid "DATAFILE [OUTFILE]"
+msgstr "FICHERODEDATOS [FICHERODESALIDA]"
-#: catgets/gencat.c:1358
-msgid "cannot determine escape character"
-msgstr "no se puede determinar el carácter de escape"
+#: misc/error.c:118
+msgid "Unknown system error"
+msgstr "Error del sistema desconocido"
-#: stdlib/../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: no sabe cómo manejar más de 8 argumentos\n"
+#: nis/nis_callback.c:189
+msgid "unable to free arguments"
+msgstr "no se pueden liberar los argumentos"
-# "¡conseguido!" me recuerda a los "sketches" de Faemino y Cansado...
-# me gustaría que hubiera otra palabra mejor. SV
+# "¡conseguido!" me recuerda a los "sketches" de Faemino y Cansado...
+# me gustaría que hubiera otra palabra mejor. SV
# Siempre me han gustado F&C ;-)
-# A mí también :-) sv
-#: stdio-common/../sysdeps/gnu/errlist.c:12 posix/regcomp.c:147
-#: nis/nis_error.c:29 nis/ypclnt.c:778 nis/ypclnt.c:852
+# A mí también :-) sv
+#: nis/nis_error.h:1 nis/ypclnt.c:833 nis/ypclnt.c:921 posix/regcomp.c:132
+#: sysdeps/gnu/errlist.c:20
msgid "Success"
msgstr "Conseguido"
-#. 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:17
-msgid "Operation not permitted"
-msgstr "Operación no permitida"
-
-#. 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:28
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:32
-msgid "No such file or directory"
-msgstr "No existe el fichero o el directorio"
-
-# Sugerencia: No existe el proceso. sv
-# ¿Por qué?
-# Porque si "No such file or directory" se ha traducido por
-# "no existe el fichero o el directorio", está claro que si le dices un
-# proceso y te dice "no existe el proceso" se refiere al que
-# tú le has dicho y no a otro. sv
-#
-#. TRANS No process matches the specified process ID.
-#: stdio-common/../sysdeps/gnu/errlist.c:37
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:33
-msgid "No such process"
-msgstr "No existe el proceso"
-
-#. 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:52
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:34
-msgid "Interrupted system call"
-msgstr "Llamada al sistema interrumpida"
+#: nis/nis_error.h:2
+msgid "Probable success"
+msgstr "Éxito probable"
-#. TRANS Input/output error; usually used for physical read or write errors.
-#: stdio-common/../sysdeps/gnu/errlist.c:61
-msgid "Input/output error"
-msgstr "Error de entrada/salida"
+#: nis/nis_error.h:3
+msgid "Not found"
+msgstr "No se ha encontrado"
-#. 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:74
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:36
-msgid "No such device or address"
-msgstr "No existe el dispositivo o la dirección"
+#: nis/nis_error.h:4
+msgid "Probably not found"
+msgstr "Probablemente no se encontró"
-#. 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:86
-msgid "Argument list too long"
-msgstr "La lista de argumentos es demasiado larga"
+#: nis/nis_error.h:5
+msgid "Cache expired"
+msgstr "El caché ha expirado"
-#. 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:96
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:38
-msgid "Exec format error"
-msgstr "Formato de ejecutable incorrecto"
+#: nis/nis_error.h:6
+msgid "NIS+ servers unreachable"
+msgstr "No se puede acceder a los servidores NIS+"
-#. 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:107
-msgid "Bad file descriptor"
-msgstr "Descriptor de fichero erróneo"
+#: nis/nis_error.h:7
+msgid "Unknown object"
+msgstr "Objeto desconocido"
-#. 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:118
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:40
-msgid "No child processes"
-msgstr "No hay ningún proceso hijo"
+#: nis/nis_error.h:8
+msgid "Server busy, try again"
+msgstr "El servidor está ocupado, inténtelo de nuevo"
-# ¿Sugerencias? em
-# ¿Evitado? sv
-# Esperemos a ver la opinión de otro. em
-#
-# ¡Ya la tienen! Creo que hay que traducir (o al menos preservar) deadlock.
-# No diría "el recurso" porque aquí "resource deadlock" significa
-# "deadlock de recursos" y un deadlock siempre se trata de más de un
-# recurso. -jtobey
-#
-# Estupendo. sv
-#
-#. 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:130
-msgid "Resource deadlock avoided"
-msgstr "Se ha evitado un bloqueo de recursos"
+#: nis/nis_error.h:9
+msgid "Generic system error"
+msgstr "Error del sistema genérico"
-#. TRANS No memory available. The system cannot allocate more virtual memory
-#. TRANS because its capacity is full.
-#: stdio-common/../sysdeps/gnu/errlist.c:140
-msgid "Cannot allocate memory"
-msgstr "No se pudo asignar memoria"
+#: nis/nis_error.h:10
+msgid "First/next chain broken"
+msgstr "Cadena primero/siguiente rota"
#. TRANS Permission denied; the file permissions do not allow the attempted operation.
-#: stdio-common/../sysdeps/gnu/errlist.c:149
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:43
-#: nis/nis_error.c:39 nis/ypclnt.c:808
+#: nis/nis_error.h:11 nis/ypclnt.c:878 sysdeps/gnu/errlist.c:157
msgid "Permission denied"
msgstr "Permiso denegado"
-#. 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:159
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:44
-msgid "Bad address"
-msgstr "Dirección incorrecta"
-
-#. 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:170
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:45
-msgid "Block device required"
-msgstr "Se requiere un dispositivo de bloques"
-
-#. 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:181
-msgid "Device or resource busy"
-msgstr "Dispositivo o recurso ocupado"
+#: nis/nis_error.h:12
+msgid "Not owner"
+msgstr "No es el propietario"
-#. 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:191
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:47
-msgid "File exists"
-msgstr "El fichero ya existe"
+#: nis/nis_error.h:13
+msgid "Name not served by this server"
+msgstr "Nombre no servido por este servidor"
-# ??? ver esto.
-#. 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:202
-msgid "Invalid cross-device link"
-msgstr "Enlace cruzado entre dispositivos no permitido"
+#: nis/nis_error.h:14
+msgid "Server out of memory"
+msgstr "Memoria agotada en el servidor"
-#. 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:212
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:49
-msgid "No such device"
-msgstr "No existe el dispositivo"
+#: nis/nis_error.h:15
+msgid "Object with same name exists"
+msgstr "Existe un objeto con el mismo nombre"
-#. TRANS A file that isn't a directory was specified when a directory is required.
-#: stdio-common/../sysdeps/gnu/errlist.c:221
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:50
-msgid "Not a directory"
-msgstr "No es un directorio"
+#: nis/nis_error.h:16
+msgid "Not master server for this domain"
+msgstr "No existe un servidor maestro para este dominio"
-#. 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:231
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:51
-msgid "Is a directory"
-msgstr "Es un directorio"
+#: nis/nis_error.h:17
+msgid "Invalid object for operation"
+msgstr "Objeto inválido para la operación"
-#. 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:241
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:52
-msgid "Invalid argument"
-msgstr "Argumento inválido"
+#: nis/nis_error.h:18
+msgid "Malformed name, or illegal name"
+msgstr "Nombre mal escrito, o nombre ilegal"
-#. 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:256
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:54
-msgid "Too many open files"
-msgstr "Demasiados ficheros abiertos"
+#: nis/nis_error.h:19
+msgid "Unable to create callback"
+msgstr "No se puede crear la llamada de regreso"
-#. 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:267
-msgid "Too many open files in system"
-msgstr "Demasiados ficheros abiertos en el sistema"
+# ¿callback?
+#: nis/nis_error.h:20
+msgid "Results sent to callback proc"
+msgstr "Resultados enviados al proceso de `callback'"
-#. TRANS Inappropriate I/O control operation, such as trying to set terminal
-#. TRANS modes on an ordinary file.
-#: stdio-common/../sysdeps/gnu/errlist.c:277
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:55
-msgid "Inappropriate ioctl for device"
-msgstr "Función ioctl no apropiada para el dispositivo"
+#: nis/nis_error.h:21
+msgid "Not found, no such name"
+msgstr "No se encontró, no existe ese nombre"
-#. 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:290
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:56
-msgid "Text file busy"
-msgstr "El fichero de texto está ocupado"
+#: nis/nis_error.h:22
+msgid "Name/entry isn't unique"
+msgstr "El par nombre/entrada no es único"
-#. TRANS File too big; the size of a file would be larger than allowed by the system.
-#: stdio-common/../sysdeps/gnu/errlist.c:299
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:57
-msgid "File too large"
-msgstr "Fichero demasiado grande"
+#: nis/nis_error.h:23
+msgid "Modification failed"
+msgstr "Fallo en la modificació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:309
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:58
-msgid "No space left on device"
-msgstr "No queda espacio en el dispositivo"
+#: nis/nis_error.h:24
+msgid "Database for table does not exist"
+msgstr "No existe la base de datos para la tabla"
-# ¿"seek" no era "desplazamiento"? sv
-# Según el contexto no se puede saber a qué se refiere
-# cambio ... por no permitida em+
-# Suggestion: "Llamada a lseek() inválida" -jtobey
-# Sí, bueno, esto lo hemos traducido otras veces por desplazamiento, así
-# que lo cambio (antes era "búsqueda no permitida").
-# Como hay varias funciones de desplazamiento creo que es mejor
-# no decantarse por ninguna en particular. sv
-#. TRANS Invalid seek operation (such as on a pipe).
-#: stdio-common/../sysdeps/gnu/errlist.c:318
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:59
-msgid "Illegal seek"
-msgstr "Desplazamiento ilegal"
+#: nis/nis_error.h:25
+msgid "Entry/table type mismatch"
+msgstr "Discordancia de tipo entrada/tabla"
-#. TRANS An attempt was made to modify something on a read-only file system.
-#: stdio-common/../sysdeps/gnu/errlist.c:327
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:60
-msgid "Read-only file system"
-msgstr "Sistema de ficheros de sólo lectura"
+#: nis/nis_error.h:26
+msgid "Link points to illegal name"
+msgstr "En enlace apunta a un nombre ilegal"
-#. 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:338
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:61
-msgid "Too many links"
-msgstr "Demasiados enlaces"
+#: nis/nis_error.h:27
+msgid "Partial success"
+msgstr "Éxito parcial"
-#. 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:361
-msgid "Numerical argument out of domain"
-msgstr "Argumento numérico fuera del dominio de la función"
+#: nis/nis_error.h:28
+msgid "Too many attributes"
+msgstr "Demasiados atributos"
-#. 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:371
-msgid "Numerical result out of range"
-msgstr "Resultado numérico fuera de rango"
+#: nis/nis_error.h:29
+msgid "Error in RPC subsystem"
+msgstr "Error en el subsistema RPC"
-#. 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:408
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:41
-msgid "Resource temporarily unavailable"
-msgstr "Recurso no disponible temporalmente"
+#: nis/nis_error.h:30
+msgid "Missing or malformed attribute"
+msgstr "Falta un atributo o está mal escrito"
-#. 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:421
-msgid "Operation would block"
-msgstr "La operación se bloquearía"
+#: nis/nis_error.h:31
+msgid "Named object is not searchable"
+msgstr "El objeto nombrado no es localizable"
-#. 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:437
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:180
-msgid "Operation now in progress"
-msgstr "Operación en curso"
+# ¿callback?
+#: nis/nis_error.h:32
+msgid "Error while talking to callback proc"
+msgstr "Error al hablar con el proceso de `callback'"
-# Vale, pero muy poco más abajo has puesto "en curso", que me parece mejor. sv
-# Creo que prefiero dejar uno de cada. Se me ocurre si no cambiar el
-# de abajo también. em
-#. TRANS An operation is already in progress on an object that has non-blocking
-#. TRANS mode selected.
-#: stdio-common/../sysdeps/gnu/errlist.c:447
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:179
-msgid "Operation already in progress"
-msgstr "La operación ya se está llevando a cabo"
+#: nis/nis_error.h:33
+msgid "Non NIS+ namespace encountered"
+msgstr "Se ha encontrado un nombre de espacio que no es NIS+"
-#. TRANS A file that isn't a socket was specified when a socket is required.
-#: stdio-common/../sysdeps/gnu/errlist.c:456
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:125
-msgid "Socket operation on non-socket"
-msgstr "Operación de `socket' en un `no-socket'"
+#: nis/nis_error.h:34
+msgid "Illegal object type for operation"
+msgstr "Objeto ilegal para la operación"
-#. TRANS The size of a message sent on a socket was larger than the supported
-#. TRANS maximum size.
-#: stdio-common/../sysdeps/gnu/errlist.c:466
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:127
-msgid "Message too long"
-msgstr "Mensaje demasiado largo"
+# ¿pasado? sv
+#: nis/nis_error.h:35
+msgid "Passed object is not the same object on server"
+msgstr "El objeto pasado no es el mismo objeto que hay en el servidor"
-#. TRANS The socket type does not support the requested communications protocol.
-#: stdio-common/../sysdeps/gnu/errlist.c:475
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:128
-msgid "Protocol wrong type for socket"
-msgstr "Tipo de protocolo incorrecto para el `socket'"
+#: nis/nis_error.h:36
+msgid "Modify operation failed"
+msgstr "La operación de modificación ha fallado"
-#. 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:485
-msgid "Protocol not available"
-msgstr "Protocolo no disponible"
+#: nis/nis_error.h:37
+msgid "Query illegal for named table"
+msgstr "Consulta ilegal para la tabla nombrada"
-#. 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:496
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:150
-msgid "Protocol not supported"
-msgstr "Protocolo no soportado"
+#: nis/nis_error.h:38
+msgid "Attempt to remove a non-empty table"
+msgstr "Se intentó eliminar una tabla no vacía"
-#. TRANS The socket type is not supported.
-#: stdio-common/../sysdeps/gnu/errlist.c:505
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:151
-msgid "Socket type not supported"
-msgstr "Tipo de `socket' no soportado"
+#: nis/nis_error.h:39
+msgid "Error in accessing NIS+ cold start file. Is NIS+ installed?"
+msgstr "Error al acceder al fichero de comienzo frio de NIS+. ¿Está NIS+ instalado?"
-#. 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:519
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:78
-msgid "Operation not supported"
-msgstr "La operación no está soportada"
+#: nis/nis_error.h:40
+msgid "Full resync required for directory"
+msgstr "Se necesita una resincronización completa del directorio"
-#. TRANS The socket communications protocol family you requested is not supported.
-#: stdio-common/../sysdeps/gnu/errlist.c:528
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:153
-msgid "Protocol family not supported"
-msgstr "Familia de protocolos no soportada"
+#: nis/nis_error.h:41
+msgid "NIS+ operation failed"
+msgstr "Falló la operación de NIS+"
-#. 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:538
-msgid "Address family not supported by protocol"
-msgstr "Esta familia de direcciones no está soportada por el protocolo"
+#: nis/nis_error.h:42
+msgid "NIS+ service is unavailable or not installed"
+msgstr "El servicio NIS+ no está disponible o no está instalado"
-#. TRANS The requested socket address is already in use. @xref{Socket Addresses}.
-#: stdio-common/../sysdeps/gnu/errlist.c:547
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:155
-msgid "Address already in use"
-msgstr "La dirección ya se está usando"
+# ¿¿Qué demonios es esto?? sv
+#: nis/nis_error.h:43
+msgid "Yes, 42 is the meaning of life"
+msgstr "Sí, 42 es el significado de la vida"
-#. 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:558
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:156
-msgid "Cannot assign requested address"
-msgstr "No se puede asignar la dirección solicitada"
+#: nis/nis_error.h:44
+msgid "Unable to authenticate NIS+ server"
+msgstr "No se puede autentificar el servidor NIS+"
-#. TRANS A socket operation failed because the network was down.
-#: stdio-common/../sysdeps/gnu/errlist.c:567
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:157
-msgid "Network is down"
-msgstr "La red no está activa"
+#: nis/nis_error.h:45
+msgid "Unable to authenticate NIS+ client"
+msgstr "No se puede autentificar el cliente NIS+"
-# Este no me gusta. Preferiría poner "la red es inaccesible", o al menos
-# añadirle un "es": "Es imposible conectar con la red". sv
-# En muchos mensajes he puesto el 'Es' al principio, terminaremos hablando
-# como indios si no. em
-#
-# Mira un mensaje que he puesto más arriba a ver si estás de acuerdo con
-# mi definición de "indio". sv
-#
-# Después de que me haya salido este mensaje varias veces, lo cambio.
-# Antes decía "Es imposible conectar con la red", demasiado largo. sv
-#. TRANS A socket operation failed because the subnet containing the remote host
-#. TRANS was unreachable.
-#: stdio-common/../sysdeps/gnu/errlist.c:577
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:158
-msgid "Network is unreachable"
-msgstr "La red es inaccesible"
+#: nis/nis_error.h:46
+msgid "No file space on server"
+msgstr "No queda espacio de ficheros en el servidor"
-#. TRANS A network connection was reset because the remote host crashed.
-#: stdio-common/../sysdeps/gnu/errlist.c:586
-msgid "Network dropped connection on reset"
-msgstr "La conexión de red se perdió al reinicializar"
+#: nis/nis_error.h:47
+msgid "Unable to create process on server"
+msgstr "No se puede crear el proceso en el servidor"
-#. TRANS A network connection was aborted locally.
-#: stdio-common/../sysdeps/gnu/errlist.c:595
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:160
-msgid "Software caused connection abort"
-msgstr "El programa provocó el fin de la conexión"
+#: nis/nis_error.h:48
+msgid "Master server busy, full dump rescheduled."
+msgstr "El servidor maestro está ocupado, el volcado completo se postpone."
-# Se aceptan sugerencias alternativas para "peer"
-# ¿Qué tal "remote machine"? ;-)
-# Prefiero la traducción. -jtobey
-# La verdad es que no se me ocurre nada mejor, así que se queda así. sv
-#. 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:606
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:161
-msgid "Connection reset by peer"
-msgstr "Conexión reinicializada por la máquina remota"
+#: nis/nis_local_names.c:122
+#, c-format
+msgid "LOCAL entry for UID %d in directory %s not unique\n"
+msgstr "La entrada LOCAL para el UID %d en el directorio %s no es única\n"
-# Memoria intermedia me parece una traducción óptima.
-# Desgraciadamente no tengo ningún diccionario de Castellano
-# Enrique, creo que en español existe "búfer", míralo si puedes. sv
-# ¿Buffer? memoria intermedia.
-# A ver qué dice Iñaky... sv
-#. 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:617
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:162
-msgid "No buffer space available"
-msgstr "No queda espacio para memoria intermedia"
+#: nis/nis_print.c:51
+msgid "UNKNOWN"
+msgstr "DESCONOCIDO"
-#. TRANS You tried to connect a socket that is already connected.
-#. TRANS @xref{Connecting}.
-#: stdio-common/../sysdeps/gnu/errlist.c:627
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:163
-msgid "Transport endpoint is already connected"
-msgstr "El otro extremo ya está conectado"
+#: nis/nis_print.c:109
+msgid "BOGUS OBJECT\n"
+msgstr "OBJETO INVÃLIDO\n"
-#. 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:639
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:164
-msgid "Transport endpoint is not connected"
-msgstr "El otro extremo de la conexión no está conectado"
+#: nis/nis_print.c:112
+msgid "NO OBJECT\n"
+msgstr "NO HAY NINGÚN OBJETO\n"
-#. 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:650
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:126
-msgid "Destination address required"
-msgstr "Se debe especificar la dirección de destino"
+#: nis/nis_print.c:115
+msgid "DIRECTORY\n"
+msgstr "DIRECTORIO\n"
-#. TRANS The socket has already been shut down.
-#: stdio-common/../sysdeps/gnu/errlist.c:659
-msgid "Cannot send after transport endpoint shutdown"
-msgstr "No se puede enviar tras la destrucción del punto de destino"
+#: nis/nis_print.c:118
+msgid "GROUP\n"
+msgstr "GRUPO\n"
-# FUZZY
-#. TRANS ???
-#: stdio-common/../sysdeps/gnu/errlist.c:668
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:174
-msgid "Too many references: cannot splice"
-msgstr "Demasiadas referencias: no se pueden solapar"
+#: nis/nis_print.c:121
+msgid "TABLE\n"
+msgstr "TABLA\n"
-#. TRANS A socket operation with a specified timeout received no response during
-#. TRANS the timeout period.
-#: stdio-common/../sysdeps/gnu/errlist.c:678
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:175
-msgid "Connection timed out"
-msgstr "Expiró el tiempo de conexión"
+#: nis/nis_print.c:124
+msgid "ENTRY\n"
+msgstr "ENTRADA\n"
-#. 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:688
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:176
-msgid "Connection refused"
-msgstr "Conexión rehusada"
+#: nis/nis_print.c:127
+msgid "LINK\n"
+msgstr "ENLACE\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:698
-msgid "Too many levels of symbolic links"
-msgstr "Demasiados niveles de enlaces simbólicos"
+#: nis/nis_print.c:130
+msgid "PRIVATE\n"
+msgstr "PRIVADO\n"
-#. 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:709
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:108
-msgid "File name too long"
-msgstr "Nombre de fichero demasiado largo"
+#: nis/nis_print.c:133
+msgid "(Unknown object)\n"
+msgstr "(Objeto desconocido)\n"
-# La palabra "host" es delicada.
-# En spanglish algunos la traducen por "anfitrión".
-#
-# Enrique considera equívoca la propia palabra host.
-# [ A un huésped también se le llama "host" ].
-#
-# En este fichero .po he decidido ser cauto y de momento la dejaré sin
-# traducir. De acuerdo con nuestra costumbre, cuando una palabra no nos
-# atrevemos a traducirla la encerramos entre apóstrofos: `host'
-#
-#. TRANS The remote host for a requested network connection is down.
-#: stdio-common/../sysdeps/gnu/errlist.c:718
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:177
-msgid "Host is down"
-msgstr "El `host' no está operativo"
+#: nis/nis_print.c:167
+#, c-format
+msgid "Name : `%s'\n"
+msgstr "Nombre : `%s'\n"
-#. TRANS The remote host for a requested network connection is not reachable.
-#: stdio-common/../sysdeps/gnu/errlist.c:727
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:178
-msgid "No route to host"
-msgstr "No existe ninguna ruta hasta el `host'"
+#: nis/nis_print.c:168
+#, c-format
+msgid "Type : %s\n"
+msgstr "Tipo : %s\n"
-#. 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:737
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:123
-msgid "Directory not empty"
-msgstr "El directorio no está vacío"
+#: nis/nis_print.c:173
+msgid "Master Server :\n"
+msgstr "Servidor Maestro :\n"
-#. 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:748
-msgid "Too many processes"
-msgstr "Demasiados procesos"
+# ¿Replicate?
+#: nis/nis_print.c:175
+msgid "Replicate :\n"
+msgstr "Replicado :\n"
-#. 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:758
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:124
-msgid "Too many users"
-msgstr "Demasiados usuarios"
+#: nis/nis_print.c:176
+#, c-format
+msgid "\tName : %s\n"
+msgstr "\tNombre : %s\n"
-#. TRANS The user's disk quota was exceeded.
-#: stdio-common/../sysdeps/gnu/errlist.c:767
-msgid "Disk quota exceeded"
-msgstr "Se ha excedido la cuota de disco"
+#: nis/nis_print.c:177
+msgid "\tPublic Key : "
+msgstr "\tClave Pública : "
-# ?? sugerencias ?
-# Habrá que traducir el "handle" de alguna forma... sv
-# No veo porqué. em
-# ¿No puede un fichero tener varios `handles'
-# y que unos estén bloqueados y otros no? sv
-# En efecto la traducción es incorrecta, el uso de file handle
-# en vez de file descriptor, debe ser porque nos referimos a ficheros
-# compartidos con NFS. Al igual que no se bloquean, sino que se stalan :)
-#
-# Suggestion: stale->vencido. No me gusta "bloqueado" porque el
-# remedio necesita una acción, y "bloqueado" sugiere esperar.
-# No me gusta "fichero" simplemente, pues el fichero estará perfectamente
-# bien; lo que se venció es el "handle" o sea el número o nombre que
-# nos da acceso al fichero. Habrá que traducir el "handle", como dijo sv.
-# -jtobey
-#
-# Muy bien, he buscado "stale" y por lo que parece es algo que "caduca"
-# o que "vence", como las letras comerciales. Me he decidido por "en desuso".
-#
-#. 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:779
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:181
-msgid "Stale NFS file handle"
-msgstr "`handle' de fichero NFS en desuso"
+#: nis/nis_print.c:181
+msgid "None.\n"
+msgstr "Ninguno.\n"
-#. 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:791
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:96
-msgid "Object is remote"
-msgstr "El objeto es remoto"
+#: nis/nis_print.c:184
+#, c-format
+msgid "Diffie-Hellmann (%d bits)\n"
+msgstr "Diffie-Hellmann (%d bits)\n"
-#. TRANS ???
-#: stdio-common/../sysdeps/gnu/errlist.c:800
-msgid "RPC struct is bad"
-msgstr "la estructura RPC es incorrecta"
+#: nis/nis_print.c:189
+#, c-format
+msgid "RSA (%d bits)\n"
+msgstr "RSA (%d bits)\n"
-#. TRANS ???
-#: stdio-common/../sysdeps/gnu/errlist.c:809
-msgid "RPC version wrong"
-msgstr "versión de RPC incorrecta"
+# Véase "Investigación y Ciencia" sv
+#: nis/nis_print.c:192
+msgid "Kerberos.\n"
+msgstr "Cerbero.\n"
-#. TRANS ???
-#: stdio-common/../sysdeps/gnu/errlist.c:818
-msgid "RPC program not available"
-msgstr "Programa RPC no disponible"
+#: nis/nis_print.c:195
+#, c-format
+msgid "Unknown (type = %d, bits = %d)\n"
+msgstr "Desconocido (tipo = %d, bits = %d)\n"
-#. TRANS ???
-#: stdio-common/../sysdeps/gnu/errlist.c:827
-msgid "RPC program version wrong"
-msgstr "Versión del programa RPC incorrecta"
+#: nis/nis_print.c:206
+#, c-format
+msgid "\tUniversal addresses (%u)\n"
+msgstr "\tDirección universal (%u)\n"
-# ## qué horror
-# ## Pues mira, quizá añadiendo dos puntos después del RPC mejoraría algo:
-# ## "RPC: procedimiento erróneo..." sv
-# FIXME -> Comunicarlo al autor.
-# En inglés podría quedar también mejor.
-#. TRANS ???
-#: stdio-common/../sysdeps/gnu/errlist.c:836
-msgid "RPC bad procedure for program"
-msgstr "RPC: procedimiento erróneo para el programa"
+#: nis/nis_print.c:228
+msgid "Time to live : "
+msgstr "Tiempo de vida : "
-# Ojo: ¿Solamente los ficheros se pueden bloquear?
-# Propondría: "No quedan bloqueos disponibles" o algo así. sv
-#
-# Efectivamente puede que tengas razón, pero ...
-# los dispositivos en UNIX son siempre ficheros /dev :) em
-#
-# Lo sé, lo sé, pero: Cuando bloqueas /dev/cua3, ¿dices que estás bloqueando un
-# fichero o que estás bloqueando el módem, que es un dispositivo? sv
-# Decir ficheros podría traer equívocos, por más que formalmente todos
-# lo sean. sv
-#
-# ¿Y qué se te ocurre?, ¿poner bloquear ficheros/dispositivos? em
-#
-# ( Pues mira, no estaría mal. sv )
-#
-# no quedan bloqueos me parece que no colabora a entender nada. em
-# Miro la versión alemana.
-# ??? ¿locks? ¿cómo diablos?
-#. 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:848
-msgid "No locks available"
-msgstr "No se pueden bloquear más ficheros"
+#: nis/nis_print.c:230
+msgid "Default Access rights :\n"
+msgstr "Derechos de acceso predeterminados :\n"
-#. 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:861
-msgid "Inappropriate file type or format"
-msgstr "Formato o tipo de fichero no apropiado"
+#: nis/nis_print.c:239
+#, c-format
+msgid "\tType : %s\n"
+msgstr "\tTipo : %s\n"
-#. TRANS ???
-#: stdio-common/../sysdeps/gnu/errlist.c:870
-msgid "Authentication error"
-msgstr "Error de autentificación"
+#: nis/nis_print.c:240
+msgid "\tAccess rights: "
+msgstr "\tDerechos de acceso: "
-#. TRANS ???
-#: stdio-common/../sysdeps/gnu/errlist.c:879
-msgid "Need authenticator"
-msgstr "Se necesita un autentificador"
+#: nis/nis_print.c:254
+msgid "Group Flags :"
+msgstr "Opciones de Grupo :"
-#. 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:892
-msgid "Function not implemented"
-msgstr "Función no implementada"
+#: nis/nis_print.c:257
+msgid ""
+"\n"
+"Group Members :\n"
+msgstr ""
+"\n"
+"Miembros del Grupo :\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:912
-msgid "Not supported"
-msgstr "No soportado"
+#: nis/nis_print.c:269
+#, c-format
+msgid "Table Type : %s\n"
+msgstr "Tipo de Tabla : %s\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.
-#: stdio-common/../sysdeps/gnu/errlist.c:922
-msgid "Invalid or incomplete multibyte or wide character"
-msgstr "El carácter multibyte o extendido está incompleto o es inválido"
+#: nis/nis_print.c:270
+#, c-format
+msgid "Number of Columns : %d\n"
+msgstr "Número de Columnas : %d\n"
-# Habrá que ver a qué se refiere.
-#
-# Si le pones el "es", ponle el "La" al principio.
-# O no le pongas ninguno de los dos, si no es realmente necesario.
-# Creo que no es malo que una oración no tenga verbo, pero si lo tiene
-# debe ser una oración completa. Me explico:
-# 1 "operación no válida" sería admisible.
-# 2 "operación no es válida" suena completamente a indio (inadmisible).
-# 3 "la operación no es válida" es mucho mejor que 2, pero no siempre
-# es mejor que 1. sv
-#
-# En este caso, creo que sobran el "La" y el "es". Por eso le he quitado
-# el "es". sv
-#. 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:936
-msgid "Inappropriate operation for background process"
-msgstr "Operación no válida para un proceso en segundo plano"
+#: nis/nis_print.c:271
+#, c-format
+msgid "Character Separator : %c\n"
+msgstr "Separador de Caracteres : %c\n"
-# Requiescant in pace. ¿de verdad lo vas a dejar así? :-) sv
-# Creí que el traductor eras tú. cuídate, oye.
-# Lo siento pero no se me ocurre nada en su lugar. sv
-#
-# Tengo que mirar los fuentes, de esto y de muchas otras cosas
-# todo esta en mi disco duro en mi ordenador roto. em
-#
-# Uds. han usado "terminado" para "killed"... ¿qué les parece
-# "Se terminó el traductor"? -jtobey
-#
-# Muy bien, pero lo pongo en pretérito perfecto. sv
-#
-#. 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:947
-msgid "Translator died"
-msgstr "El traductor ha terminado"
+#: nis/nis_print.c:272
+#, c-format
+msgid "Search Path : %s\n"
+msgstr "Ruta de búsqueda : %s\n"
-#. 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:958
-msgid "?"
-msgstr "?"
+#: nis/nis_print.c:273
+msgid "Columns :\n"
+msgstr "Columnas :\n"
-# ?? Ni idea de como traducir esto
-# "Ciertamente expiraste durante este tiempo" em
-# this time es esta *vez* Pero como no acabo de verle el sentido a la frase
-# prefiero que no corramos el riesgo. sv
-# Sin fuentes no se puede hacer. Cogeré la traducción de Ulrich Drepper
-# al alemán, no sé cómo no se me había ocurrido antes. em
-# Muy buena idea. Suerte que tenemos un coordinador que sabe alemán :-) sv
-# El problema es que la 1.10.1 no esta disponible todavía. Le he mandado un
-# mail para que me envíe lo que tenga hecho. em
-# Ok, traducido exactamente igual que lo tiene Jochen. Es ist keine Schuld
-# von mir wenn es gar nicht stimmt.
-#
-# Sugerencia: "Ahora sí que te lo has cargado". sv+
-# (Preguntar a nuestros amigos americanos si se entiende).
-# (Es que me suena que "blew" no es muy fino, por eso romper es
-# demasiado suave).
-#
-#. TRANS You did @strong{what}?
-#: stdio-common/../sysdeps/gnu/errlist.c:967
-msgid "You really blew it this time"
-msgstr "Esta vez sí que lo has roto"
+#: nis/nis_print.c:276
+#, c-format
+msgid "\t[%d]\tName : %s\n"
+msgstr "\t[%d]\tNombre : %s\n"
-# ¿qué diablos es esto?, esperemos a tener las fuentes
-# estupendo, este error parece mostrarse en dos ocasiones
-# - Macro: int EIEIO
-# Go home and have a glass of warm, dairy-fresh milk.
-# Jochen tambien lo traduce así. em
-#
-# Okay. Since you are dying to know, I'll tell you.
-# This is a joke, obviously. There is a children's song which begins,
-# "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
-# errno macro EIO, I think about that song. Probably most of my
-# compatriots who program on Unix do, too. One of them must have stayed
-# up a little too late one night and decided to add it to Hurd or Glibc.
-# Whoever did it should be castigated, but it made me laugh.
-# --jtobey@channel1.com
-#
-# "bought the farm" means "died". -jtobey
-#
-# Bueno, pues después de pensarlo mucho, he seguido el ejemplo de la
-# traducción francesa (traducción libre). sv
-#. TRANS Go home and have a glass of warm, dairy-fresh milk.
-#: stdio-common/../sysdeps/gnu/errlist.c:976
-msgid "Computer bought the farm"
-msgstr "Anda, vete a casa y tómate un vasito de leche"
+#: nis/nis_print.c:278
+msgid "\t\tAttributes : "
+msgstr "\t\tAtributos : "
-#. TRANS This error code has no purpose.
-#: stdio-common/../sysdeps/gnu/errlist.c:985
-msgid "Gratuitous error"
-msgstr "Error injustificado"
+#: nis/nis_print.c:280
+msgid "\t\tAccess Rights : "
+msgstr "\t\tDerechos de Acceso : "
-#: stdio-common/../sysdeps/gnu/errlist.c:993
-msgid "Bad message"
-msgstr "Mensaje erróneo"
+#: nis/nis_print.c:290
+msgid "Linked Object Type : "
+msgstr "Tipo de objeto enlazado : "
-#: stdio-common/../sysdeps/gnu/errlist.c:1001
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:66
-msgid "Identifier removed"
-msgstr "El identificador se ha eliminado"
+#: nis/nis_print.c:292
+#, c-format
+msgid "Linked to : %s\n"
+msgstr "Enlazado a : %s\n"
-# FUZZY em+
-# No tengo ni idea de qué es un HOP
-# este error, que ya lo vi en errno no
-# lo encuentro documentado
-# "Hop" es "saltito", por ej. un enlace directo que es parte de la ruta
-# entre dos máquinas. --jtobey
-#: stdio-common/../sysdeps/gnu/errlist.c:1009
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:104
-msgid "Multihop attempted"
-msgstr "Se ha intentado un `multihop'"
+#: nis/nis_print.c:302
+#, c-format
+msgid "\tEntry data of type %s\n"
+msgstr "\tEntrada de tipo %s\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:1017
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:91
-msgid "No data available"
-msgstr "No hay datos disponibles"
+#: nis/nis_print.c:305
+#, c-format
+msgid "\t[%u] - [%u bytes] "
+msgstr "\t[%u] - [%u bytes] "
-#: stdio-common/../sysdeps/gnu/errlist.c:1025
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:97
-msgid "Link has been severed"
-msgstr "El enlace se ha cortado"
+#: nis/nis_print.c:308
+msgid "Encrypted data\n"
+msgstr "Datos cifrados\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:1033
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:65
-msgid "No message of desired type"
-msgstr "Ningún mensaje del tipo deseado"
+#: nis/nis_print.c:310
+msgid "Binary data\n"
+msgstr "Datos binarios\n"
-# FIXME: Este mensaje debería ser igual al anterior. sv
-#: stdio-common/../sysdeps/gnu/errlist.c:1041
-msgid "Out of streams resources"
-msgstr "Alcanzado el límite de recursos de `streams'"
+#: nis/nis_print.c:326
+#, c-format
+msgid "Object Name : %s\n"
+msgstr "Nombre del Objeto : %s\n"
-# FUZZY
-# Tal vez "de flujo", pero no sé si me atrevo... sv
-#: stdio-common/../sysdeps/gnu/errlist.c:1049
-msgid "Device not a stream"
-msgstr "El dispositivo no es un `stream'"
+#: nis/nis_print.c:327
+#, c-format
+msgid "Directory : %s\n"
+msgstr "Directorio : %s\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:1057
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:109
-msgid "Value too large for defined data type"
-msgstr "Valor demasiado grande para el tipo de datos definido"
+#: nis/nis_print.c:328
+#, c-format
+msgid "Owner : %s\n"
+msgstr "Propietario : %s\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:1065
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:101
-msgid "Protocol error"
-msgstr "Error de protocolo"
+#: nis/nis_print.c:329
+#, c-format
+msgid "Group : %s\n"
+msgstr "Grupo : %s\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:1073
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:92
-msgid "Timer expired"
-msgstr "El temporizador llegó al final"
+#: nis/nis_print.c:330
+msgid "Access Rights : "
+msgstr "Derechos de acceso : "
-#. 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}.
-#: stdio-common/../sysdeps/gnu/errlist.c:1085
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:77
-msgid "Operation canceled"
-msgstr "Operación cancelada"
+#: nis/nis_print.c:332
+#, c-format
+msgid ""
+"\n"
+"Time to Live : "
+msgstr ""
+"\n"
+"Tiempo de Vida : "
-# FUZZY
-#: stdio-common/../sysdeps/gnu/errlist.c:1093
-msgid "Interrupted system call should be restarted"
-msgstr "La llamada al sistema interrumpida debería volverse a iniciar"
+#: nis/nis_print.c:335
+#, c-format
+msgid "Creation Time : %s"
+msgstr "Fecha de creación : %s"
-#: stdio-common/../sysdeps/gnu/errlist.c:1101
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:67
-msgid "Channel number out of range"
-msgstr "Número de canal fuera de rango"
+#: nis/nis_print.c:337
+#, c-format
+msgid "Mod. Time : %s"
+msgstr "Fecha de modificación: %s"
-#: stdio-common/../sysdeps/gnu/errlist.c:1109
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:68
-msgid "Level 2 not synchronized"
-msgstr "Nivel 2 no sincronizado"
+#: nis/nis_print.c:338
+msgid "Object Type : "
+msgstr "Tipo del Objeto : "
-#: stdio-common/../sysdeps/gnu/errlist.c:1117
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:69
-msgid "Level 3 halted"
-msgstr "Nivel 3 detenido"
+#: nis/nis_print.c:358
+#, c-format
+msgid " Data Length = %u\n"
+msgstr " Longitud de los datos = %u\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:1125
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:70
-msgid "Level 3 reset"
-msgstr "Nivel 3 restablecido"
+#: nis/nis_print.c:372
+#, c-format
+msgid "Status : %s\n"
+msgstr "Estado : %s\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:1133
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:71
-msgid "Link number out of range"
-msgstr "Número de enlace fuera de rango"
+#: nis/nis_print.c:373
+#, c-format
+msgid "Number of objects : %u\n"
+msgstr "Número de objetos : %u\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:1141
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:72
-msgid "Protocol driver not attached"
-msgstr "Protocolo no disponible"
+# Tal vez habría que poner núm en vez de #. sv
+#: nis/nis_print.c:377
+#, c-format
+msgid "Object #%d:\n"
+msgstr "Objeto #%d:\n"
-# FIXME: ¿No sería más bien CSI structures?
-#: stdio-common/../sysdeps/gnu/errlist.c:1149
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:73
-msgid "No CSI structure available"
-msgstr "No quedan estructuras CSI disponibles"
+#: nis/nis_print_group_entry.c:117
+#, c-format
+msgid "Group entry for \"%s.%s\" group:\n"
+msgstr "Entrada de grupo para el grupo \"%s.%s\"\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:1157
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:74
-msgid "Level 2 halted"
-msgstr "Nivel 2 detenido"
+#: nis/nis_print_group_entry.c:125
+msgid " Explicit members:\n"
+msgstr " Miembros explícitos:\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:1165
-msgid "Invalid exchange"
-msgstr "Intercambio inválido"
+#: nis/nis_print_group_entry.c:130
+msgid " No explicit members\n"
+msgstr " No hay ningún miembro explícito\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:1173
-msgid "Invalid request descriptor"
-msgstr "El descriptor de fichero solicitado es erróneo"
+#: nis/nis_print_group_entry.c:133
+msgid " Implicit members:\n"
+msgstr " Miembros implícitos:\n"
-# FUZZY em+
-#: stdio-common/../sysdeps/gnu/errlist.c:1181
-msgid "Exchange full"
-msgstr "Intercambio lleno"
+#: nis/nis_print_group_entry.c:138
+msgid " No implicit members\n"
+msgstr " No hay ningún miembro implícito\n"
-# FUZZY
-# anode o catode :), qué diablos ? em+
-#
-# Pongo esto provisionalmente, en electricidad se usan los términos
-# ánodo y cátodo para los polos positivo y negativo, pero no sé
-# si esto será lo mismo.
-# De cualquier forma, mantengo el FUZZY por si sale algo mejor. sv+
-#: stdio-common/../sysdeps/gnu/errlist.c:1189
-msgid "No anode"
-msgstr "No hay ningún ánodo"
+#: nis/nis_print_group_entry.c:141
+msgid " Recursive members:\n"
+msgstr " Miembros recursivos:\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:1197
-msgid "Invalid request code"
-msgstr "Código de petición incorrecto"
+#: nis/nis_print_group_entry.c:146
+msgid " No recursive members\n"
+msgstr " No hay ningún miembro recursivo\n"
-# ¿Ranura no válida?, creo que no hay traducción para slot :) em+
-# Antes: `slot' incorrecto
-#: stdio-common/../sysdeps/gnu/errlist.c:1205
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:85
-msgid "Invalid slot"
-msgstr "Ranura inválida"
+#: nis/nis_print_group_entry.c:149
+msgid " Explicit nonmembers:\n"
+msgstr " No-miembros explícitos:\n"
-# FUZZY em+
-#: stdio-common/../sysdeps/gnu/errlist.c:1213
-msgid "File locking deadlock error"
-msgstr "error `deadlock' de bloqueo de ficheros"
+#: nis/nis_print_group_entry.c:154
+msgid " No explicit nonmembers\n"
+msgstr " No hay ningún no-miembro explícito\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:1221
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:87
-msgid "Bad font file format"
-msgstr "Formato de fichero fuente incorrecto"
+#: nis/nis_print_group_entry.c:157
+msgid " Implicit nonmembers:\n"
+msgstr " No-miembros implícitos:\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:1229
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:94
-msgid "Machine is not on the network"
-msgstr "La máquina no está en red"
+#: nis/nis_print_group_entry.c:162
+msgid " No implicit nonmembers\n"
+msgstr " No hay ningún no-miembro implícito\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:1237
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:95
-msgid "Package not installed"
-msgstr "El paquete no está instalado"
+#: nis/nis_print_group_entry.c:165
+msgid " Recursive nonmembers:\n"
+msgstr " No miembros recursivos:\n"
-# FUZZY
-# Lo dejo fuzzy aposta, a ver qué se os ocurre em+
-# Pues mira, advertencia es warning, advertise es anunciar.
-# De momento lo cambio. sv
-#: stdio-common/../sysdeps/gnu/errlist.c:1245
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:98
-msgid "Advertise error"
-msgstr "Error de anuncio"
+#: nis/nis_print_group_entry.c:170
+msgid " No recursive nonmembers\n"
+msgstr " No hay ningún no miembro recursivo\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:1253
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:99
-msgid "Srmount error"
-msgstr "Error de `srmount'"
+#: nis/nss_nisplus/nisplus-publickey.c:101
+#: nis/nss_nisplus/nisplus-publickey.c:183
+#, c-format
+msgid "DES entry for netname %s not unique\n"
+msgstr "La entrada DES para el nombre %s no es única\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:1261
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:100
-msgid "Communication error on send"
-msgstr "Error de comunicación al enviar"
+#: nis/nss_nisplus/nisplus-publickey.c:220
+#, c-format
+msgid "netname2user: missing group id list in `%s'"
+msgstr "netname2user: falta la lista de ids de grupo en `%s'"
-#: stdio-common/../sysdeps/gnu/errlist.c:1269
-msgid "RFS specific error"
-msgstr "error específico de RFS"
+#: 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 "netname2user: (nis+ lookup): %s\n"
+msgstr "netname2user: (búsqueda nis+): %s\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:1277
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:110
-msgid "Name not unique on network"
-msgstr "El nombre no es único en la red"
+#: nis/nss_nisplus/nisplus-publickey.c:321
+#, c-format
+msgid "netname2user: DES entry for %s in directory %s not unique"
+msgstr "netname2user: la entrada DES para %s en el directorio %s no es única"
-#: stdio-common/../sysdeps/gnu/errlist.c:1285
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:111
-msgid "File descriptor in bad state"
-msgstr "Descriptor de fichero en mal estado"
+#: nis/nss_nisplus/nisplus-publickey.c:339
+#, c-format
+msgid "netname2user: principal name `%s' too long"
+msgstr "netname2user: el nombre principal `%s' es demasiado largo"
-#: stdio-common/../sysdeps/gnu/errlist.c:1293
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:112
-msgid "Remote address changed"
-msgstr "La dirección remota ha cambiado"
+#: nis/nss_nisplus/nisplus-publickey.c:395
+#, c-format
+msgid "netname2user: LOCAL entry for %s in directory %s not unique"
+msgstr "netname2user: la entrada LOCAL para %s en el directorio %s no es única"
-#: stdio-common/../sysdeps/gnu/errlist.c:1301
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:113
-msgid "Can not access a needed shared library"
-msgstr "No se puede acceder a una biblioteca compartida necesaria"
+#: nis/nss_nisplus/nisplus-publickey.c:402
+msgid "netname2user: should not have uid 0"
+msgstr "netname2user: no debería tener uid 0"
-#: stdio-common/../sysdeps/gnu/errlist.c:1309
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:114
-msgid "Accessing a corrupted shared library"
-msgstr "Accediendo a una biblioteca compartida que está corrompida"
+#: nis/ypclnt.c:836
+msgid "Request arguments bad"
+msgstr "Los argumentos de la petición son incorrectos"
-#: stdio-common/../sysdeps/gnu/errlist.c:1317
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:115
-msgid ".lib section in a.out corrupted"
-msgstr "la sección .lib en el a.out está corrompida"
+#: nis/ypclnt.c:839
+msgid "RPC failure on NIS operation"
+msgstr "Fallo RPC en una operación NIS"
-# Suggestion: "enlazar demasiadas bibliotecas en el ejecutable"
-# "link in" es verbo transitivo. --jtobey@channel1.com
-# Muy bien, me como lo del ejecutable para no alargar demasiado
-# el mensaje, pues creo que por el contexto el usuario sabrá a qué
-# se refiere. De paso, lo pongo en pasado (se intentaron) porque
-# es un error sobre algo que ya ha ocurrido (el intento fallido). sv
-#: stdio-common/../sysdeps/gnu/errlist.c:1325
-msgid "Attempting to link in too many shared libraries"
-msgstr "Se intentaron enlazar demasiadas bibliotecas compartidas"
+#: nis/ypclnt.c:842
+msgid "Can't bind to server which serves this domain"
+msgstr "Ha fallado la llamada a bind() con el servidor que sirve a este dominio"
-#: stdio-common/../sysdeps/gnu/errlist.c:1333
-msgid "Cannot exec a shared library directly"
-msgstr "No se puede ejecutar una biblioteca compartida directamente"
+#: nis/ypclnt.c:845
+msgid "No such map in server's domain"
+msgstr "No existe esa tabla en el dominio del servidor"
-# FUZZY FUZZY
-# ¡ Esto no hay quien lo traduzca ! em+
-#: stdio-common/../sysdeps/gnu/errlist.c:1341
-msgid "Streams pipe error"
-msgstr "Error de tubería de `streams'"
+#: nis/ypclnt.c:848
+msgid "No such key in map"
+msgstr "No existe esta clave en la tabla"
-# FUZZY
-# O me cojo otras traducciones o ando perdido em+
-#: stdio-common/../sysdeps/gnu/errlist.c:1349
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:165
-msgid "Structure needs cleaning"
-msgstr "La estructura necesita una limpieza"
+#: nis/ypclnt.c:851
+msgid "Internal NIS error"
+msgstr "Error interno de NIS"
-#: stdio-common/../sysdeps/gnu/errlist.c:1357
-msgid "Not a XENIX named type file"
-msgstr "No es un fichero XENIX del tipo `named'"
+#: nis/ypclnt.c:854
+msgid "Local resource allocation failure"
+msgstr "La asignación de recursos locales ha fallado"
-#: stdio-common/../sysdeps/gnu/errlist.c:1365
-msgid "No XENIX semaphores available"
-msgstr "No quedan semáforos XENIX disponibles"
+#: nis/ypclnt.c:857
+msgid "No more records in map database"
+msgstr "No hay más registros en la base de datos"
-# FUZZY em+
-# ¿Será esto un `named pipe'? ¿cómo se traduce?
-#: stdio-common/../sysdeps/gnu/errlist.c:1373
-msgid "Is a named type file"
-msgstr "Es un fichero de tipo `named'"
+#: nis/ypclnt.c:860
+msgid "Can't communicate with portmapper"
+msgstr "No se puede comunicar con el asignador de puertos"
-#: stdio-common/../sysdeps/gnu/errlist.c:1381
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:170
-msgid "Remote I/O error"
-msgstr "Error de E/S en la máquina remota"
+#: nis/ypclnt.c:863
+msgid "Can't communicate with ypbind"
+msgstr "No se puede establecer comunicación con `ypbind'"
-#: stdio-common/../sysdeps/gnu/errlist.c:1389
-msgid "No medium found"
-msgstr "No se ha encontrado el medio"
+#: nis/ypclnt.c:866
+msgid "Can't communicate with ypserv"
+msgstr "No se puede establecer comunicación con `ypserv'"
-#: stdio-common/../sysdeps/gnu/errlist.c:1397
-msgid "Wrong medium type"
-msgstr "Tipo de medio erróneo"
+#: nis/ypclnt.c:869
+msgid "Local domain name not set"
+msgstr "No se ha establecido el nombre del dominio local"
-#: stdio-common/../sysdeps/unix/siglist.c:26
-msgid "Signal 0"
-msgstr "Señal 0"
+#: nis/ypclnt.c:872
+msgid "NIS map database is bad"
+msgstr "La base de datos de la tabla NIS no es correcta"
-# ???, siempre lo he usado como trap, nunca encontramos la palabra
-# y es una señal estándar Unix, así que no creo conveniente traducirla
-#: stdio-common/../sysdeps/unix/siglist.c:32
-msgid "IOT trap"
-msgstr "`trap' de IOT"
+#: nis/ypclnt.c:875
+msgid "NIS client/server version mismatch - can't supply service"
+msgstr ""
+"Discordancia en las versiones de NIS del cliente y el servidor.\n"
+"No se puede suministrar el servicio."
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:30
-msgid "Error 0"
-msgstr "Error 0"
+#: nis/ypclnt.c:881
+msgid "Database is busy"
+msgstr "La base de datos está ocupada"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:31
-#: nis/nis_error.c:40
-msgid "Not owner"
-msgstr "No es el propietario"
+#: nis/ypclnt.c:884
+msgid "Unknown NIS error code"
+msgstr "Error de NIS desconocido"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:35
-msgid "I/O error"
-msgstr "Error de E/S"
+# Suggestion: Como es "internal" deberías poner "interno" para
+# indicar que el bug está en la biblioteca y no necesariamente
+# en el programa. Es lo que más importa dar a entender. Propongo
+# "Error interno en ypbind" -jtobey
+# De acuerdo.
+# [ Antes decía ... la llamada a bind para el servicio de páginas amarillas ]
+# Un poco demasiado explicativo. sv
+#: nis/ypclnt.c:924
+msgid "Internal ypbind error"
+msgstr "Error interno en ypbind"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:37
-msgid "Arg list too long"
-msgstr "La lista de argumentos es demasiado larga"
+# FUZZY
+#: nis/ypclnt.c:927
+msgid "Domain not bound"
+msgstr "No se pudo conectar con el dominio"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:39
-msgid "Bad file number"
-msgstr "Número de fichero erróneo"
+#: nis/ypclnt.c:930
+msgid "System resource allocation failure"
+msgstr "Fallo en la asignación de recursos del sistema"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:42
-msgid "Not enough space"
-msgstr "No hay espacio suficiente"
+#: nis/ypclnt.c:933
+msgid "Unknown ypbind error"
+msgstr "Error desconocido en la llamada a `ypbind()'"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:46
-msgid "Device busy"
-msgstr "Dispositivo ocupado"
+#: nis/ypclnt.c:974
+msgid "yp_update: cannot convert host to netname\n"
+msgstr "yp_update: no se puede convertir el nombre del `host' a nombre de red\n"
-# ??? ver esto.
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:48
-msgid "Cross-device link"
-msgstr "Enlace cruzado entre dispositivos"
+#: nis/ypclnt.c:992
+msgid "yp_update: cannot get server address\n"
+msgstr "yp_update: no se puede encontrar la dirección del servidor\n"
-# Sugerencia: Desbordamiento de fecha. (?) sv+
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:53
-msgid "File table overflow"
-msgstr "Desbordamiento de la tabla de ficheros"
+#: nscd/aicache.c:83 nscd/hstcache.c:492
+#, c-format
+msgid "Haven't found \"%s\" in hosts cache!"
+msgstr "No se ha encontrado \"%s\" en el caché de `hosts'"
-# fuentes
-# Sugerencia: Argumento numérico. sv
-#
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:63
-msgid "Argument out of domain"
-msgstr "Argumento fuera del dominio"
+#: nscd/aicache.c:85 nscd/hstcache.c:494
+#, c-format
+msgid "Reloading \"%s\" in hosts cache!"
+msgstr "Recargando \"%s\" en el caché de hosts"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:64
-msgid "Result too large"
-msgstr "Resultado demasiado grande"
+#: nscd/cache.c:150
+#, c-format
+msgid "add new entry \"%s\" of type %s for %s to cache%s"
+msgstr "añade nueva entrada \"%s\" de tipo %s para %s al caché%s"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:75
-msgid "Deadlock situation detected/avoided"
-msgstr "Situación de bloqueo detectada/evitada"
+#: nscd/cache.c:152
+msgid " (first)"
+msgstr " (primero)"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:76
-msgid "No record locks available"
-msgstr "No hay ningún bloqueo de registro disponible"
+#: nscd/cache.c:276 nscd/connections.c:861
+#, c-format
+msgid "cannot stat() file `%s': %s"
+msgstr "no se puede ejecutar stat() sobre el fichero `%s': %s"
-# FIXME: Disc or Disk?
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:79
-msgid "Disc quota exceeded"
-msgstr "Se ha excedido la cuota de disco"
+#: nscd/cache.c:318
+#, c-format
+msgid "pruning %s cache; time %ld"
+msgstr "limpiando %s caché; tiempo %ld"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:80
-msgid "Bad exchange descriptor"
-msgstr "Descriptor de intercambio erróneo"
+#: nscd/cache.c:347
+#, c-format
+msgid "considering %s entry \"%s\", timeout %<PRIu64>"
+msgstr "considerando la entrada %s \"%s\", tiempo límite %<PRIu64>"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:81
-msgid "Bad request descriptor"
-msgstr "Descriptor de petición erróneo"
+#: nscd/connections.c:565
+#, c-format
+msgid "invalid persistent database file \"%s\": %s"
+msgstr "fichero de base de datos persistente inválido \"%s\": %s"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:82
-msgid "Message tables full"
-msgstr "Tablas de mensajes llenas"
+#: nscd/connections.c:573
+msgid "uninitialized header"
+msgstr "cabecera no inicializada"
-# Pregunta: ¿Qué es eso de un Anode? sv
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:83
-msgid "Anode table overflow"
-msgstr "Desbordamiento de tabla de ánodos"
+#: nscd/connections.c:578
+msgid "header size does not match"
+msgstr "el tamaño de la cabecera no coincide"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:84
-msgid "Bad request code"
-msgstr "Código de petición erróneo"
+#: nscd/connections.c:588
+msgid "file size does not match"
+msgstr "el tamaño del fichero no coincide"
-# FUZZY em+
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:86
-msgid "File locking deadlock"
-msgstr "`deadlock' de bloqueo de ficheros"
+#: nscd/connections.c:605
+msgid "verification failed"
+msgstr "falló la verificación"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:88
-msgid "Error 58"
-msgstr "Error 58"
+#: nscd/connections.c:619
+#, c-format
+msgid "suggested size of table for database %s larger than the persistent database's table"
+msgstr "el tamaño sugerido de tabla para la base de datos %s es más grande que la tabla de la base de datos persistente"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:89
-msgid "Error 59"
-msgstr "Error 59"
+#: nscd/connections.c:630 nscd/connections.c:715
+#, c-format
+msgid "cannot create read-only descriptor for \"%s\"; no mmap"
+msgstr "no se puede crear descriptor de sólo lectura para \"%s\"; no hay mmap"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:90
-msgid "Not a stream device"
-msgstr "No es un dispositivo de flujo"
+#: nscd/connections.c:646
+#, c-format
+msgid "cannot access '%s'"
+msgstr "no se puede acceder a '%s'"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:93
-msgid "Out of stream resources"
-msgstr "Alcanzado el límite de recursos de `streams'"
+#: nscd/connections.c:694
+#, c-format
+msgid "database for %s corrupted or simultaneously used; remove %s manually if necessary and restart"
+msgstr "la base de datos %s está corrupta o se está usando simultáneamente; borre %s manualmente si fuera necesario y reinicie"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:102
-msgid "Error 72"
-msgstr "Error 72"
+#: nscd/connections.c:701
+#, c-format
+msgid "cannot create %s; no persistent database used"
+msgstr "no se puede crear %s; no se ha utilizado una base de datos persistente"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:103
-msgid "Error 73"
-msgstr "Error 73"
+#: nscd/connections.c:704
+#, c-format
+msgid "cannot create %s; no sharing possible"
+msgstr "no se puede crear %s; no es posible la compartición"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:105
-msgid "Error 75"
-msgstr "Error 75"
+#: nscd/connections.c:775
+#, c-format
+msgid "cannot write to database file %s: %s"
+msgstr "no se puede escribir al fichero de datos %s: %s"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:106
-msgid "Error 76"
-msgstr "Error 76"
+#: nscd/connections.c:814
+#, c-format
+msgid "cannot set socket to close on exec: %s; disabling paranoia mode"
+msgstr "no se puede establecer el `socket' para cerrar en ejecutación: %s; se desactiva el modo paranoia"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:107
-msgid "Not a data message"
-msgstr "No es un mensaje de datos"
+#: nscd/connections.c:897
+#, c-format
+msgid "cannot open socket: %s"
+msgstr "no se puede abrir el `socket': %s"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:116
-msgid "Attempting to link in more shared libraries than system limit"
-msgstr "Se intentaron enlazar más bibliotecas compartidas que el límite del sistema"
+#: nscd/connections.c:917
+#, c-format
+msgid "cannot change socket to nonblocking mode: %s"
+msgstr "no se puede cambiar el `socket' a modo no bloqueante: %s"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:117
-msgid "Can not exec a shared library directly"
-msgstr "No se puede ejecutar una biblioteca compartida directamente"
+#: nscd/connections.c:925
+#, c-format
+msgid "cannot set socket to close on exec: %s"
+msgstr "no se puede establecer el `socket' para que se cierre en ejecución: %s"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:118
-msgid "Illegal byte sequence"
-msgstr "Sucesión de bytes ilegal"
+#: nscd/connections.c:938
+#, c-format
+msgid "cannot enable socket to accept connections: %s"
+msgstr "no se puede activar el `socket' para aceptar conexiones: %s"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:119
-msgid "Operation not applicable"
-msgstr "Operación no aplicable"
+#: nscd/connections.c:1039
+#, c-format
+msgid "provide access to FD %d, for %s"
+msgstr "proporciona acceso al descriptor de fichero %d, para %s"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:120
-msgid "Number of symbolic links encountered during path name traversal exceeds MAXSYMLINKS"
+#: nscd/connections.c:1051
+#, c-format
+msgid "cannot handle old request version %d; current version is %d"
msgstr ""
-"El número de enlaces simbólicos encontrados al atravesar la ruta es mayor que\n"
-"MAXSYMLINKS"
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:121
-msgid "Error 91"
-msgstr "Error 91"
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:122
-msgid "Error 92"
-msgstr "Error 92"
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:129
-msgid "Option not supported by protocol"
-msgstr "Opción no soportada por el protocolo"
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:130
-msgid "Error 100"
-msgstr "Error 100"
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:131
-msgid "Error 101"
-msgstr "Error 101"
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:132
-msgid "Error 102"
-msgstr "Error 102"
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:133
-msgid "Error 103"
-msgstr "Error 103"
-
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:134
-msgid "Error 104"
-msgstr "Error 104"
+"no se pueden manejar peticiones de la versión %d, la versión\n"
+"actual es %d"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:135
-msgid "Error 105"
-msgstr "Error 105"
+#: nscd/connections.c:1073
+#, c-format
+msgid "request from %ld not handled due to missing permission"
+msgstr "la petición de %ld no ha sido atendida por falta de permisos"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:136
-msgid "Error 106"
-msgstr "Error 106"
+#: nscd/connections.c:1078
+#, c-format
+msgid "request from '%s' [%ld] not handled due to missing permission"
+msgstr "la petición de '%s' [%ld] no ha sido atendida por falta de permisos"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:137
-msgid "Error 107"
-msgstr "Error 107"
+#: nscd/connections.c:1083
+msgid "request not handled due to missing permission"
+msgstr "la petición no ha sido atendida por falta de permisos"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:138
-msgid "Error 108"
-msgstr "Error 108"
+#: nscd/connections.c:1121 nscd/connections.c:1174
+#, c-format
+msgid "cannot write result: %s"
+msgstr "no se puede escribir el resultado: %s"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:139
-msgid "Error 109"
-msgstr "Error 109"
+#: nscd/connections.c:1257
+#, c-format
+msgid "error getting caller's id: %s"
+msgstr "error al obtener el id de los llamantes: %s"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:140
-msgid "Error 110"
-msgstr "Error 110"
+#: nscd/connections.c:1316
+#, c-format
+msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode"
+msgstr "no se puede abrir /proc/self/cmdline: %s; se desactiva el modo paranoia"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:141
-msgid "Error 111"
-msgstr "Error 111"
+#: nscd/connections.c:1330
+#, c-format
+msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode"
+msgstr "no se puede leer /proc/self/cmdline: %s; se desactiva el modo paranoia"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:142
-msgid "Error 112"
-msgstr "Error 112"
+#: nscd/connections.c:1370
+#, c-format
+msgid "cannot change to old UID: %s; disabling paranoia mode"
+msgstr "no se puede cambiar al UID antiguo: %s; se desactiva el modo paranoia"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:143
-msgid "Error 113"
-msgstr "Error 113"
+#: nscd/connections.c:1380
+#, c-format
+msgid "cannot change to old GID: %s; disabling paranoia mode"
+msgstr "no se puede cambiar al GID antiguo: %s; se desactiva el modo paranoia"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:144
-msgid "Error 114"
-msgstr "Error 114"
+#: nscd/connections.c:1393
+#, c-format
+msgid "cannot change to old working directory: %s; disabling paranoia mode"
+msgstr "no se puede cambiar al directorio de trabajo antiguo: %s; se desactiva el modo paranoia"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:145
-msgid "Error 115"
-msgstr "Error 115"
+#: nscd/connections.c:1439
+#, c-format
+msgid "re-exec failed: %s; disabling paranoia mode"
+msgstr "falló la re-ejecución: %s; se desactiva el modo paranoia"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:146
-msgid "Error 116"
-msgstr "Error 116"
+#: nscd/connections.c:1448
+#, c-format
+msgid "cannot change current working directory to \"/\": %s"
+msgstr "no se puede cambiar el directorio de trabajo a \"/\": %s"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:147
-msgid "Error 117"
-msgstr "Error 117"
+#: nscd/connections.c:1641
+#, c-format
+msgid "short read while reading request: %s"
+msgstr "lectura insuficiente mientras se leía la petición: %s"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:148
-msgid "Error 118"
-msgstr "Error 118"
+#: nscd/connections.c:1674
+#, c-format
+msgid "key length in request too long: %d"
+msgstr "la longitud de la clave en la petición es demasiado larga: %d"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:149
-msgid "Error 119"
-msgstr "Error 119"
+#: nscd/connections.c:1687
+#, c-format
+msgid "short read while reading request key: %s"
+msgstr "se acabaron los datos mientras se leía la clave de petición: %s"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:152
-msgid "Operation not supported on transport endpoint"
-msgstr "La operación no está soportada en el otro extremo de la conexión"
+#: nscd/connections.c:1696
+#, c-format
+msgid "handle_request: request received (Version = %d) from PID %ld"
+msgstr "handle_request: petición recibida (Versión = %d) del PID %ld"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:154
-msgid "Address family not supported by protocol family"
-msgstr "Esta familia de direcciones no está soportada por la familia del protocolo"
+#: nscd/connections.c:1701
+#, c-format
+msgid "handle_request: request received (Version = %d)"
+msgstr "handle_request: petición recibida (Versión = %d)"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:159
-msgid "Network dropped connection because of reset"
-msgstr "La conexión de red se perdió debido a su reinicialización"
+#: nscd/connections.c:1901 nscd/connections.c:2099
+#, c-format
+msgid "disabled inotify after read error %d"
+msgstr "se desactiva `inotify' después de un error de lectura %d"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:166
-msgid "Error 136"
-msgstr "Error 136"
+#: nscd/connections.c:2228
+msgid "could not initialize conditional variable"
+msgstr "no se pudo inicializar la variable condicional"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:167
-msgid "Not a name file"
-msgstr "No es un fichero de tipo `name'"
+#: nscd/connections.c:2236
+msgid "could not start clean-up thread; terminating"
+msgstr "no se pudo iniciar el hilo de limpieza; terminando"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:168
-msgid "Not available"
-msgstr "No disponible"
+#: nscd/connections.c:2250
+msgid "could not start any worker thread; terminating"
+msgstr "no se pudo iniciar ningún hilo de trabajo; terminando"
-# FUZZY em+
-# ¿Será esto un `named pipe'? ¿cómo se traduce?
-# FIXME: ¿No será "named"? sv
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:169
-msgid "Is a name file"
-msgstr "Es un fichero de tipo `name'"
+#: nscd/connections.c:2301 nscd/connections.c:2302 nscd/connections.c:2319
+#: nscd/connections.c:2328 nscd/connections.c:2346 nscd/connections.c:2357
+#: nscd/connections.c:2368
+#, c-format
+msgid "Failed to run nscd as user '%s'"
+msgstr "Fallo al ejecutar nscd como usuario `%s'"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:171
-msgid "Reserved for future use"
-msgstr "Reservado para uso futuro"
+#: nscd/connections.c:2320
+#, c-format
+msgid "initial getgrouplist failed"
+msgstr "falló el `getgrouplist' inicial"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:172
-msgid "Error 142"
-msgstr "Error 142"
+#: nscd/connections.c:2329
+#, c-format
+msgid "getgrouplist failed"
+msgstr "falló `getgrouplist'"
-#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:173
-msgid "Cannot send after socket shutdown"
-msgstr "No se puede enviar después de la destrucción del `socket'"
+#: nscd/connections.c:2347
+#, c-format
+msgid "setgroups failed"
+msgstr "falló `setgroups'"
-#: stdio-common/psignal.c:63
+#: nscd/grpcache.c:383 nscd/hstcache.c:439 nscd/initgrcache.c:406
+#: nscd/pwdcache.c:378 nscd/servicescache.c:332
#, c-format
-msgid "%s%sUnknown signal %d\n"
-msgstr "%s%sSeñal desconocida %d\n"
+msgid "short write in %s: %s"
+msgstr "escritura insuficiente en %s: %s"
-#: dlfcn/dlinfo.c:51
-msgid "RTLD_SELF used in code not dynamically loaded"
-msgstr "Se ha usado RTLD_SELF en una parte del código que no se cargó dinámicamente"
+#: nscd/grpcache.c:428 nscd/initgrcache.c:78
+#, c-format
+msgid "Haven't found \"%s\" in group cache!"
+msgstr "No se ha encontrado \"%s\" en el caché de grupos"
-#: dlfcn/dlinfo.c:61
-msgid "unsupported dlinfo request"
-msgstr "Petición dlinfo no admitida"
+#: nscd/grpcache.c:430 nscd/initgrcache.c:80
+#, c-format
+msgid "Reloading \"%s\" in group cache!"
+msgstr "Recargando \"%s\" en el caché de grupos"
-#: malloc/mcheck.c:346
-msgid "memory is consistent, library is buggy\n"
-msgstr "la memoria es consistente, la biblioteca tiene un bicho\n"
+#: nscd/grpcache.c:509
+#, c-format
+msgid "Invalid numeric gid \"%s\"!"
+msgstr "¡gid numérico inválido \"%s\"!"
-#: malloc/mcheck.c:349
-msgid "memory clobbered before allocated block\n"
-msgstr "memoria alterada antes del bloque de memoria asignado\n"
+#: nscd/mem.c:431
+#, c-format
+msgid "freed %zu bytes in %s cache"
+msgstr "se han liberado %zu bytes en la caché %s"
-#: malloc/mcheck.c:352
-msgid "memory clobbered past end of allocated block\n"
-msgstr "memoria alterada pasado el final del bloque de memoria asignado\n"
+#: nscd/mem.c:574
+#, c-format
+msgid "no more memory for database '%s'"
+msgstr "no hay más memoria para la base de datos '%s'"
-#: malloc/mcheck.c:355
-msgid "block freed twice\n"
-msgstr "bloque liberado dos veces\n"
+#: nscd/nscd.c:101
+msgid "Read configuration data from NAME"
+msgstr "Lee datos de configuración de NOMBRE"
-# Revisar lo de bogus. creo que es eso.
-#: malloc/mcheck.c:358
-msgid "bogus mcheck_status, library is buggy\n"
-msgstr "valor de mcheck_status incorrecto, la biblioteca tiene un bicho\n"
+#: nscd/nscd.c:103
+msgid "Do not fork and display messages on the current tty"
+msgstr "No se divide y muestra los mensajes en la terminal actual"
-# Supondremos que se trata de un imperativo. sv
-#: malloc/memusagestat.c:53
-msgid "Name output file"
-msgstr "Nombre el fichero de salida"
+#: nscd/nscd.c:104
+msgid "NUMBER"
+msgstr "NÚMERO"
-#: malloc/memusagestat.c:54
-msgid "Title string used in output graphic"
-msgstr "Se ha utilizado una cadena de título en la gráfica de salida"
+#: nscd/nscd.c:104
+msgid "Start NUMBER threads"
+msgstr "Comienza NÚMERO hilos"
-#: malloc/memusagestat.c:55
-msgid "Generate output linear to time (default is linear to number of function calls)"
-msgstr ""
-"Genera un resultado lineal en el tiempo (por omisión es lineal en el número\n"
-"de llamadas a función)"
+#: nscd/nscd.c:105
+msgid "Shut the server down"
+msgstr "Apagar el servidor"
-#: malloc/memusagestat.c:57
-msgid "Also draw graph for total memory consumption"
-msgstr "Dibuja también una gráfica del total de memoria consumida"
+#: nscd/nscd.c:106
+msgid "Print current configuration statistics"
+msgstr "Muestra estadísticas sobre la configuración actual"
-#: malloc/memusagestat.c:58
-msgid "make output graphic VALUE pixel wide"
-msgstr "hace que la salida gráfica tenga VALOR pixels de ancho"
+#: nscd/nscd.c:107
+msgid "TABLE"
+msgstr "TABLA"
-#: malloc/memusagestat.c:59
-msgid "make output graphic VALUE pixel high"
-msgstr "hace que la salida gráfica tenga VALOR pixels de alto"
+#: nscd/nscd.c:108
+msgid "Invalidate the specified cache"
+msgstr "Invalida la caché especificada"
-#: malloc/memusagestat.c:64
-msgid "Generate graphic from memory profiling data"
-msgstr "Genera un gráfico a partir de los datos de `profiling' de memoria"
+#: nscd/nscd.c:109
+msgid "TABLE,yes"
+msgstr "TABLA,sí"
-#: malloc/memusagestat.c:67
-msgid "DATAFILE [OUTFILE]"
-msgstr "FICHERODEDATOS [FICHERODESALIDA]"
+#: nscd/nscd.c:110
+msgid "Use separate cache for each user"
+msgstr "Utiliza una caché separada para cada usuario"
-#: string/strerror.c:43 posix/../sysdeps/posix/gai_strerror.c:57
-msgid "Unknown error"
-msgstr "Error desconocido"
+#: nscd/nscd.c:115
+msgid "Name Service Cache Daemon."
+msgstr "Daemon de Caché del Servicio de Nombres."
-#: string/strsignal.c:69
+#: nscd/nscd.c:147 nss/getent.c:952 nss/makedb.c:123
#, c-format
-msgid "Real-time signal %d"
-msgstr "Señal de tiempo real %d"
+msgid "wrong number of arguments"
+msgstr "número incorrecto de argumentos"
-#: string/strsignal.c:73
+#: nscd/nscd.c:157
#, c-format
-msgid "Unknown signal %d"
-msgstr "Señal desconocida %d"
+msgid "failure while reading configuration file; this is fatal"
+msgstr "fallo al leer el fichero de configuración; este error es fatal"
-#: timezone/zdump.c:176
+#: nscd/nscd.c:166
#, c-format
-msgid "%s: usage is %s [ --version ] [ -v ] [ -c cutoff ] zonename ...\n"
-msgstr "%s: el modo de empleo es %s [ --version ] [ -v ] [ -c cutoff ] nombrezona ...\n"
+msgid "already running"
+msgstr "ya está funcionando"
-#: timezone/zdump.c:269
-msgid "Error writing to standard output"
-msgstr "Error al escribir en la salida estándar"
+#: nscd/nscd.c:181 nscd/nscd.c:236
+#, c-format
+msgid "cannot fork"
+msgstr "no se puede hacer `fork'"
-#: timezone/zic.c:361
+#: nscd/nscd.c:244
#, c-format
-msgid "%s: Memory exhausted: %s\n"
-msgstr "%s: Memoria agotada: %s\n"
+msgid "cannot change current working directory to \"/\""
+msgstr "no se puede cambiar el directorio de trabajo a \"/\""
-#: timezone/zic.c:386 misc/error.c:129 misc/error.c:157
-msgid "Unknown system error"
-msgstr "Error del sistema desconocido"
+#: nscd/nscd.c:252
+msgid "Could not create log file"
+msgstr "No se pudo crear el fichero de registro"
-#: timezone/zic.c:420
+#: nscd/nscd.c:305 nscd/nscd.c:330 nscd/nscd_stat.c:174
#, c-format
-msgid "\"%s\", line %d: %s"
-msgstr "\"%s\", línea %d: %s"
+msgid "Only root is allowed to use this option!"
+msgstr "Solamente root puede usar esta opción"
-#: timezone/zic.c:423
+#: nscd/nscd.c:345
#, c-format
-msgid " (rule from \"%s\", line %d)"
-msgstr " (regla desde \"%s\", línea %d)"
-
-#: timezone/zic.c:435
-msgid "warning: "
-msgstr "atención: "
+msgid "'%s' is not a known database"
+msgstr "'%s' no es una base de datos conocida"
-# FIXME: Decir al autor que no use tabs. sv
-#: timezone/zic.c:445
+#: nscd/nscd.c:370 nscd/nscd_stat.c:193
#, c-format
-msgid ""
-"%s: usage is %s [ --version ] [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n"
-"\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"
-msgstr ""
-"%s: el modo de empleo es %s [ --version ] [ -s ] [ -v ] [ -l hora_local ] [ -p reglasposix ] \\\n"
-" [ -d directorio ] [ -L segundos_intercalares ] [ -y tipoaño ] [ fichero ... ]\n"
+msgid "write incomplete"
+msgstr "escritura incompleta"
-#: timezone/zic.c:492
+#: nscd/nscd.c:381
#, c-format
-msgid "%s: More than one -d option specified\n"
-msgstr "%s: La opción -d se ha especificado más de una vez\n"
+msgid "cannot read invalidate ACK"
+msgstr "no se puede leer el ACK de invalidación"
-#: timezone/zic.c:502
+#: nscd/nscd.c:387
#, c-format
-msgid "%s: More than one -l option specified\n"
-msgstr "%s: La opción -l se ha especificado más de una vez\n"
+msgid "invalidation failed"
+msgstr "fallo en la invalidación"
-#: timezone/zic.c:512
+#: nscd/nscd.c:397
#, c-format
-msgid "%s: More than one -p option specified\n"
-msgstr "%s: La opción -p se ha especificado más de una vez\n"
+msgid "secure services not implemented anymore"
+msgstr "los servicios seguros ya no están implementados"
-#: timezone/zic.c:522
+#: nscd/nscd_conf.c:57
#, c-format
-msgid "%s: More than one -y option specified\n"
-msgstr "%s: La opción -y se ha especificado más de una vez\n"
+msgid "database %s is not supported"
+msgstr "la base de datos %s no está soportada"
-#: timezone/zic.c:532
+#: nscd/nscd_conf.c:108
#, c-format
-msgid "%s: More than one -L option specified\n"
-msgstr "%s: La opción -L se ha especificado más de una vez\n"
+msgid "Parse error: %s"
+msgstr "Error de análisis: %s"
-#: timezone/zic.c:639
+#: nscd/nscd_conf.c:194
#, c-format
-msgid "%s: Can't unlink %s: %s\n"
-msgstr "%s: No se puede borrar %s: %s\n"
-
-#: timezone/zic.c:646
-msgid "hard link failed, symbolic link used"
-msgstr "el enlace duro falló, se usará un enlace simbólico"
+msgid "Must specify user name for server-user option"
+msgstr "Debe especificar un nombre de usuario para la opción `server-user'"
-#: timezone/zic.c:654
+#: nscd/nscd_conf.c:201
#, c-format
-msgid "%s: Can't link from %s to %s: %s\n"
-msgstr "%s: No se pudo crear un enlace de %s a %s: %s\n"
-
-#: timezone/zic.c:752 timezone/zic.c:754
-msgid "same rule name in multiple files"
-msgstr "mismo nombre de regla en varios ficheros"
-
-#: timezone/zic.c:795
-msgid "unruly zone"
-msgstr "zona sin reglas"
+msgid "Must specify user name for stat-user option"
+msgstr "Debe especificar un nombre de usuario para la opción `stat-user'"
-#: timezone/zic.c:802
+# Ãdem. 1984.
+#: nscd/nscd_conf.c:245
#, c-format
-msgid "%s in ruleless zone"
-msgstr "%s en una zona sin reglas"
-
-#: timezone/zic.c:823
-msgid "standard input"
-msgstr "entrada estándar"
+msgid "invalid value for 'reload-count': %u"
+msgstr "valor inválido para 'reload-count': %u"
-#: timezone/zic.c:828
+#: nscd/nscd_conf.c:260
#, c-format
-msgid "%s: Can't open %s: %s\n"
-msgstr "%s: No se puede abrir %s: %s\n"
-
-#: timezone/zic.c:839
-msgid "line too long"
-msgstr "línea demasiado larga"
-
-#: timezone/zic.c:859
-msgid "input line of unknown type"
-msgstr "línea de entrada de tipo desconocido"
+msgid "Must specify value for restart-interval option"
+msgstr "Debe especificar un valor para la opción `restart-interval'"
-# ¿¿cómo se dirá eso??, pregunto en spanglish
-#
-# diría que la porción "de años bisiestos" sobra. sv
-#
-# Mejor dejarlo bien clarito. Después de haberme enterado de
-# qué diablos era eso ;)
-#
-# En ningún sitio dice que la línea de ajuste sea "de años bisiestos"
-# Si pones algo que no viene en el original puedes acabar cambiando
-# el sentido.
-# O quitas lo de "de años bisiestos" o miras el código fuente
-# a ver si de verdad es un ajuste de años bisiestos o más bien de segundos
-# intercalares. En cualquier caso me parece que queda más largo añadiendo
-# eso. sv
-#
-# Otra cosa: "en un fichero que no es el de" -> "en un fichero que no es de"
-# (sin "el"). Si no, da a entender que sólo puede haber uno,
-# y el original no da a entender eso. sv
-#
-# Varias cosas, según he entendido los ajustes en segundo se llaman
-# indiferentemente 'segundos intercalares' o 'segundos bisiestos'
-# el ajuste en sí es un ajuste de años bisiestos ( no son exactamente
-# un día ) . Por lo tanto Leap ( año bisiesto ) line, son las líneas
-# que caracterizan al leap seconds file, que podríamos llamarlo fichero
-# de ajuste de años bisiestos, fichero intercalar o incluso bisiestifile
-# De todas maneras creo que lo cambio, este mensaje, si alguna vez tengo
-# la mala suerte de que me aparezca, me acoxonaría, tal y como está
-# redactado
-# Segundo, según he visto en la documentación, sólo existe un fichero
-# de leap lines, por eso pongo 'el'... em+
-#
-#: timezone/zic.c:875
+#: nscd/nscd_conf.c:274
#, c-format
-msgid "%s: Leap line in non leap seconds file %s\n"
-msgstr ""
-"%s: Línea de segundos intercalares en un fichero que no es el de\n"
-"ajuste de años bisiestos %s\n"
+msgid "Unknown option: %s %s %s"
+msgstr "Opción desconocida: %s %s %s"
-# Ídem. 1984.
-#: timezone/zic.c:882 timezone/zic.c:1297 timezone/zic.c:1322
+#: nscd/nscd_conf.c:287
#, c-format
-msgid "%s: panic: Invalid l_value %d\n"
-msgstr "%s: grave: valor_l %d inválido\n"
+msgid "cannot get current working directory: %s; disabling paranoia mode"
+msgstr "no se puede obtener el directorio actual: %s; se desactiva el modo paranoia"
-#: timezone/zic.c:890
+#: nscd/nscd_conf.c:307
#, c-format
-msgid "%s: Error reading %s\n"
-msgstr "%s: Error al leer %s\n"
+msgid "maximum file size for %s database too small"
+msgstr "el tamaño máximo de fichero para la base de datos %s es demasiado pequeño"
-#: timezone/zic.c:897
+#: nscd/nscd_stat.c:143
#, c-format
-msgid "%s: Error closing %s: %s\n"
-msgstr "%s: Error al cerrar %s: %s\n"
-
-#: timezone/zic.c:902
-msgid "expected continuation line not found"
-msgstr "la línea de continuación esperada no se encuentra"
-
-#: timezone/zic.c:958
-msgid "wrong number of fields on Rule line"
-msgstr "número incorrecto de argumentos en la línea de regla (Rule)"
-
-#: timezone/zic.c:962
-msgid "nameless rule"
-msgstr "regla sin nombre"
+msgid "cannot write statistics: %s"
+msgstr "no se pueden escribir las estadísticas: %s"
-#: timezone/zic.c:967
-msgid "invalid saved time"
-msgstr "la hora almacenada no es válida"
+#: nscd/nscd_stat.c:158
+msgid "yes"
+msgstr "sí"
-#: timezone/zic.c:986
-msgid "wrong number of fields on Zone line"
-msgstr "número de campos incorrecto en la línea de zona (Zone)"
+#: nscd/nscd_stat.c:159
+msgid "no"
+msgstr "no"
-#: timezone/zic.c:992
+#: nscd/nscd_stat.c:170
#, c-format
-msgid "\"Zone %s\" line and -l option are mutually exclusive"
-msgstr "la línea \"Zone %s\" y la opción -l son mutuamente excluyentes"
+msgid "Only root or %s is allowed to use this option!"
+msgstr "Solamente root o %s puede usar esta opción"
-#: timezone/zic.c:1000
+#: nscd/nscd_stat.c:181
#, c-format
-msgid "\"Zone %s\" line and -p option are mutually exclusive"
-msgstr "la línea \"Zone %s\" y la opción -p son mutuamente excluyentes"
+msgid "nscd not running!\n"
+msgstr "nscd no está en ejecución\n"
-#: timezone/zic.c:1012
+#: nscd/nscd_stat.c:205
#, c-format
-msgid "duplicate zone name %s (file \"%s\", line %d)"
-msgstr "nombre de zona %s duplicado (fichero \"%s\", línea %d)"
-
-#: timezone/zic.c:1028
-msgid "wrong number of fields on Zone continuation line"
-msgstr "número de campos incorrecto en la línea de continuación de zona (Zone)"
-
-#: timezone/zic.c:1068
-msgid "invalid UTC offset"
-msgstr "desplazamiento UTC inválido"
-
-#: timezone/zic.c:1071
-msgid "invalid abbreviation format"
-msgstr "formato de abreviatura incorrecto"
+msgid "cannot read statistics data"
+msgstr "no se pueden leer los datos de estadística"
-# VER
-#: timezone/zic.c:1097
-msgid "Zone continuation line end time is not after end time of previous line"
+#: nscd/nscd_stat.c:208
+#, c-format
+msgid ""
+"nscd configuration:\n"
+"\n"
+"%15d server debug level\n"
msgstr ""
-"La línea de continuación de la zona no está después del tiempo de final\n"
-"de la línea anterior"
-
-# En todas estas, yo pondría "número incorrecto de campos",
-# "número incorrecto de argumentos", etc.
-# creo que quedaría mucho mejor. sv
-# La mitad como tú dices, y la mitad como yo em
-#
-# Eso es que te da igual...
-# O es mejor como digo, o no es mejor.
-# Si es mejor, ponlo en todos los sitios. Y si no, en ninguno.
-# Yo creo que es mucho mejor poner "número incorrecto ..."
-# Si no, queda como "al revés". sv+
-#: timezone/zic.c:1124
-msgid "wrong number of fields on Leap line"
-msgstr "número incorrecto de campos en la línea de bisiesto (Leap)"
-
-#: timezone/zic.c:1133
-msgid "invalid leaping year"
-msgstr "año bisiesto inválido"
-
-#: timezone/zic.c:1148 timezone/zic.c:1252
-msgid "invalid month name"
-msgstr "nombre de mes incorrecto"
-
-#: timezone/zic.c:1161 timezone/zic.c:1374 timezone/zic.c:1388
-msgid "invalid day of month"
-msgstr "día del mes inválido"
+"configuración nscd:\n"
+"\n"
+"%15d nivel de depuración del servidor\n"
-#: timezone/zic.c:1166
-msgid "time before zero"
-msgstr "hora antes de cero"
+#: nscd/nscd_stat.c:232
+#, c-format
+msgid "%3ud %2uh %2um %2lus server runtime\n"
+msgstr "%3ud %2uh %2um %2lus tiempo de funcionamiento del servidor\n"
-#: timezone/zic.c:1170
-msgid "time too small"
-msgstr "tiempo demasiado pequeño"
+#: nscd/nscd_stat.c:235
+#, c-format
+msgid " %2uh %2um %2lus server runtime\n"
+msgstr " %2uh %2um %2lus tiempo de funcionamiento del servidor\n"
-#: timezone/zic.c:1174
-msgid "time too large"
-msgstr "tiempo demasiado grande"
+#: nscd/nscd_stat.c:237
+#, c-format
+msgid " %2um %2lus server runtime\n"
+msgstr " %2um %2lus tiempo de funcionamiento del servidor\n"
-#: timezone/zic.c:1178 timezone/zic.c:1281
-msgid "invalid time of day"
-msgstr "hora del día inválida"
+#: nscd/nscd_stat.c:239
+#, c-format
+msgid " %2lus server runtime\n"
+msgstr " %2lus tiempo de funcionamiento del servidor\n"
-#: timezone/zic.c:1197
-msgid "illegal CORRECTION field on Leap line"
-msgstr "El campo CORRECTION en la línea de año bisiesto es ilegal"
+#: nscd/nscd_stat.c:241
+#, 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"
+"%15u reload count\n"
+msgstr ""
+"%15d número actual de hilos\n"
+"%15d número máximo de hilos\n"
+"%15lu número de veces que los clientes tuvieron que esperar\n"
+"%15s modo paranoia activado\n"
+"%15lu reinicio interno\n"
+"%15u recarga contadores\n"
-#: timezone/zic.c:1201
-msgid "illegal Rolling/Stationary field on Leap line"
-msgstr "Campo Rolling/Stationary ilegal en la línea de año bisiesto"
+#: nscd/nscd_stat.c:276
+#, 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"
+"%s caché:\n"
+"\n"
+"%15s caché activado\n"
+"%15s caché persistente\n"
+"%15s caché compartido\n"
+"%15zu tamaño sugerido\n"
+"%15zu tamaño total del almacén de datos\n"
+"%15zu tamaño usado del almacén de datos\n"
+"%15lu segundos de vida para las entradas positivas\n"
+"%15lu segundos de vida para las entradas negativas\n"
+"%15<PRIuMAX> aciertos de caché en las entradas positivas\n"
+"%15<PRIuMAX> aciertos de caché en las entradas negativas\n"
+"%15<PRIuMAX> fallos de caché en las entradas positivas\n"
+"%15<PRIuMAX> fallos de caché en las entradas negativas\n"
+"%15lu%% tasa de aciertos de caché\n"
+"%15zu número actual de valores en caché\n"
+"%15zu número máximo de valores en caché\n"
+"%15zu longitud maxima de la cadena buscada\n"
+"%15<PRIuMAX> número de retardos en rdlock\n"
+"%15<PRIuMAX> número de retardos en wrlock\n"
+"%15<PRIuMAX> fallos de asignación de memoria\n"
+"%15s compruebe /etc/%s para cambios\n"
-#: timezone/zic.c:1216
-msgid "wrong number of fields on Link line"
-msgstr "número incorrecto de campos en la línea de enlace (Link)"
+#: nscd/pwdcache.c:423
+#, c-format
+msgid "Haven't found \"%s\" in password cache!"
+msgstr "No se ha encontrado \"%s\" en el caché de contraseñas"
-#: timezone/zic.c:1220
-msgid "blank FROM field on Link line"
-msgstr "Campo FROM vacío en la línea `Link'"
+#: nscd/pwdcache.c:425
+#, c-format
+msgid "Reloading \"%s\" in password cache!"
+msgstr "Recargando \"%s\" en el caché de contraseñas"
-#: timezone/zic.c:1224
-msgid "blank TO field on Link line"
-msgstr "Campo TO vacío en la línea `Link'"
+#: nscd/pwdcache.c:506
+#, c-format
+msgid "Invalid numeric uid \"%s\"!"
+msgstr "¡uid numérico inválido \"%s\"!"
-#: timezone/zic.c:1301
-msgid "invalid starting year"
-msgstr "año de comienzo inválido"
+#: nscd/selinux.c:156
+#, c-format
+msgid "Failed opening connection to the audit subsystem: %m"
+msgstr "Fallo al abrir la conexión al subsistema de auditoría: %m"
-#: timezone/zic.c:1305
-msgid "starting year too low to be represented"
-msgstr "el año de comienzo es demasiado bajo para ser representado"
+#: nscd/selinux.c:177
+msgid "Failed to set keep-capabilities"
+msgstr "Fallo al establecer las capacidades que se mantienen"
-#: timezone/zic.c:1307
-msgid "starting year too high to be represented"
-msgstr "el año de comienzo es demasiado alto para ser representado"
+#: nscd/selinux.c:178 nscd/selinux.c:241
+#, c-format
+msgid "prctl(KEEPCAPS) failed"
+msgstr "Falló prctl(KEEPCAPS)"
-#: timezone/zic.c:1326
-msgid "invalid ending year"
-msgstr "año de final inválido"
+#: nscd/selinux.c:192
+msgid "Failed to initialize drop of capabilities"
+msgstr "Fallo al inicializar el abandono de capacidades"
-#: timezone/zic.c:1330
-msgid "ending year too low to be represented"
-msgstr "el año de final es demasiado bajo para ser representado"
+# ## Lo mismo con lstat. sv
+# Antes decía: No se pudo obtener información (lstat) del fichero .rhosts
+#: nscd/selinux.c:193
+#, c-format
+msgid "cap_init failed"
+msgstr "cap_init ha fallado"
-#: timezone/zic.c:1332
-msgid "ending year too high to be represented"
-msgstr "el año de final es demasiado alto para ser representado"
+#: nscd/selinux.c:214 nscd/selinux.c:231
+msgid "Failed to drop capabilities"
+msgstr "Fallo al abandonar capacidades"
-#: timezone/zic.c:1335
-msgid "starting year greater than ending year"
-msgstr "año de comienzo mayor que año de final"
+#: nscd/selinux.c:215 nscd/selinux.c:232
+#, c-format
+msgid "cap_set_proc failed"
+msgstr "cap_set_proc ha fallado"
-#: timezone/zic.c:1342
-msgid "typed single year"
-msgstr "tecleado un único año"
+#: nscd/selinux.c:240
+msgid "Failed to unset keep-capabilities"
+msgstr "Fallo al desactivar las capacidades que se mantienen"
-#: timezone/zic.c:1379
-msgid "invalid weekday name"
-msgstr "nombre del día de la semana incorrecto"
+#: nscd/selinux.c:256
+msgid "Failed to determine if kernel supports SELinux"
+msgstr "Fallo al determinar si el núcleo admite SELinux"
-#: timezone/zic.c:1494
+#: nscd/selinux.c:271
#, c-format
-msgid "%s: Can't remove %s: %s\n"
-msgstr "%s: No se puede eliminar %s: %s\n"
+msgid "Failed to start AVC thread"
+msgstr "Fallo al iniciar hilo AVC"
-#: timezone/zic.c:1504
+#: nscd/selinux.c:293
#, c-format
-msgid "%s: Can't create %s: %s\n"
-msgstr "%s: No se puede crear %s: %s\n"
+msgid "Failed to create AVC lock"
+msgstr "Fallo al crear bloqueo AVC"
-#: timezone/zic.c:1570
+#: nscd/selinux.c:333
#, c-format
-msgid "%s: Error writing %s\n"
-msgstr "%s: Error al escribir %s\n"
-
-# FUZZY
-#: timezone/zic.c:1760
-msgid "can't determine time zone abbreviation to use just after until time"
-msgstr ""
-"No se puede determinar la abreviación de zona horaria que se usará justo\n"
-"después"
+msgid "Failed to start AVC"
+msgstr "Fallo al iniciar AVC"
-#: timezone/zic.c:1803
-msgid "too many transitions?!"
-msgstr "¡¿demasiadas transiciones?!"
+#: nscd/selinux.c:335
+msgid "Access Vector Cache (AVC) started"
+msgstr "Access Vector Cache (AVC) iniciado"
-#: timezone/zic.c:1822
-msgid "internal error - addtype called with bad isdst"
-msgstr "error interno - se llamó a `addtype' con un `isdst' erróneo"
+#: nscd/selinux.c:356
+msgid "Error getting context of socket peer"
+msgstr "Error al obtener el contexto del `socket' remoto"
-#: timezone/zic.c:1826
-msgid "internal error - addtype called with bad ttisstd"
-msgstr "error interno - se llamó a `addtype' con un `ttisstd' erróneo"
+#: nscd/selinux.c:361
+msgid "Error getting context of nscd"
+msgstr "Error al obtener el contexto de nscd"
-#: timezone/zic.c:1830
-msgid "internal error - addtype called with bad ttisgmt"
-msgstr "error interno - se llamó a `addtype' con un `ttisgmt' erróneo"
+#: nscd/selinux.c:367
+msgid "Error getting sid from context"
+msgstr "Error al obtener sid del contexto"
-#: timezone/zic.c:1849
-msgid "too many local time types"
-msgstr "demasiados tipos de hora local"
+#: nscd/selinux.c:374
+msgid "compile-time support for database policy missing"
+msgstr "falta el soporte de tiempo de compilación para la base de datos de políticas"
-#: timezone/zic.c:1877
-msgid "too many leap seconds"
-msgstr "demasiados segundos intercalares"
-
-#: timezone/zic.c:1883
-msgid "repeated leap second moment"
-msgstr "segundo intercalar repetido"
-
-# # Otra opción, resultado incongruente al ejecutar la orden em
-#: timezone/zic.c:1935
-msgid "Wild result from command execution"
-msgstr "Resultado salvaje en la ejecución de la orden"
+#: nscd/selinux.c:407
+#, 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"
+"Estadísticas de AVC de SELinux:\n"
+"\n"
+"%15u búsquedas de entradas\n"
+"%15u aciertos de entrada\n"
+"%15u fallos de entrada\n"
+"%15u entradas descartadas\n"
+"%15u búsquedas de CAV\n"
+"%15u aciertos de CAV\n"
+"%15u consultas de CAV\n"
+"%15u fallos de CAV\n"
-# FIXME: `%s'
-#: timezone/zic.c:1936
+#: nscd/servicescache.c:381
#, c-format
-msgid "%s: command was '%s', result was %d\n"
-msgstr "%s: la orden fue `%s', el resultado fue %d\n"
+msgid "Haven't found \"%s\" in services cache!"
+msgstr "No se ha encontrado \"%s\" en el caché de `services'"
-#: timezone/zic.c:2031
-msgid "Odd number of quotation marks"
-msgstr "Número impar de comillas"
+#: nscd/servicescache.c:383
+#, c-format
+msgid "Reloading \"%s\" in services cache!"
+msgstr "Recargando \"%s\" en el caché de services"
-# Sugerencia: Desbordamiento de fecha. (?) sv+
-#: timezone/zic.c:2051 timezone/zic.c:2070
-msgid "time overflow"
-msgstr "desbordamiento horario"
+#: nss/getent.c:54
+msgid "database [key ...]"
+msgstr "basededatos [clave ...]"
-# FIXME: non leap-year -> non-leap year.
-# A lo mejor si pones "veintinueve de febrero" o "29 de febrero"
-# se entiende mejor. no sé. sv
-# Si, estas pensando lo mismo que yo, 29 de febrero puede confundir, porque
-# en el fichero pondrá 2/29 em
-#: timezone/zic.c:2117
-msgid "use of 2/29 in non leap-year"
-msgstr "uso de 2/29 en un año no bisiesto"
+#: nss/getent.c:59
+msgid "Service configuration to be used"
+msgstr "Configuración del servicio"
-# ## Antes tenías: "no hay día en la regla de coincidencia de mes" sv
-# Esto debe tener algo que ver con la función menopausie() em
-# No se me había ocurrido... ¿Se te ocurre algo mejor, ahora que ya
-# sabemos lo que quiere decir? sv
-#: timezone/zic.c:2151
-msgid "no day in month matches rule"
-msgstr "ningún día del mes coincide con la regla"
+#: nss/getent.c:60
+msgid "disable IDN encoding"
+msgstr "desactiva la codificación IDN"
-#: timezone/zic.c:2175
-msgid "too many, or too long, time zone abbreviations"
-msgstr "demasiadas abreviaturas de zona horaria, o demasiado largas"
+#: nss/getent.c:65
+msgid "Get entries from administrative database."
+msgstr "Obtiene entradas de la base de datos administrativa."
-#: timezone/zic.c:2216
+#: nss/getent.c:149 nss/getent.c:479
#, c-format
-msgid "%s: Can't create directory %s: %s\n"
-msgstr "%s: No se puede crear el directorio %s: %s\n"
+msgid "Enumeration not supported on %s\n"
+msgstr "La enumeración no está soportada sobre %s\n"
-#: timezone/zic.c:2238
+#: nss/getent.c:866
#, c-format
-msgid "%s: %d did not sign extend correctly\n"
-msgstr "%s: %d no extendió el signo correctamente\n"
-
-#: posix/../sysdeps/generic/wordexp.c:1797
-msgid "parameter null or not set"
-msgstr "parámetro nulo o no establecido"
+msgid "Unknown database name"
+msgstr "Nombre de base de datos desconocido"
-#: posix/../sysdeps/posix/gai_strerror.c:31
-msgid "Address family for hostname not supported"
-msgstr "Esta familia de direcciones no está soportada para el `host'"
+#: nss/getent.c:896
+msgid "Supported databases:\n"
+msgstr "Bases de datos admitidas:\n"
-#: posix/../sysdeps/posix/gai_strerror.c:32
-msgid "Temporary failure in name resolution"
-msgstr "Fallo temporal en la resolución del nombre"
+#: nss/getent.c:962
+#, c-format
+msgid "Unknown database: %s\n"
+msgstr "Base de datos desconocida: %s\n"
-#: posix/../sysdeps/posix/gai_strerror.c:33
-msgid "Bad value for ai_flags"
-msgstr "Valor erróneo para ai_flags"
+#: nss/makedb.c:60
+msgid "Convert key to lower case"
+msgstr "Convierte la clave a minúsculas"
-#: posix/../sysdeps/posix/gai_strerror.c:34
-msgid "Non-recoverable failure in name resolution"
-msgstr "Fallo irrecuperable en la resolución del nombre"
+#: nss/makedb.c:63
+msgid "Do not print messages while building database"
+msgstr "No muestra ningún mensaje mientras construye la base de datos"
-#: posix/../sysdeps/posix/gai_strerror.c:35
-msgid "ai_family not supported"
-msgstr "No se admite ai_familiy"
+#: nss/makedb.c:65
+msgid "Print content of database file, one entry a line"
+msgstr "Muestra el contenido de un fichero de base de datos, una entrada por línea"
-#: posix/../sysdeps/posix/gai_strerror.c:36
-msgid "Memory allocation failure"
-msgstr "Fallo en la asignación de memoria"
+#: nss/makedb.c:70
+msgid "Create simple DB database from textual input."
+msgstr "Crea una base de datos DB simple a partir de una entrada de texto."
-#: posix/../sysdeps/posix/gai_strerror.c:37
-msgid "No address associated with hostname"
-msgstr "No existe ninguna dirección asociada al nombre"
+#: nss/makedb.c:73
+msgid ""
+"INPUT-FILE OUTPUT-FILE\n"
+"-o OUTPUT-FILE INPUT-FILE\n"
+"-u INPUT-FILE"
+msgstr ""
+"FICHERO-ENTRADA FICHERO-SALIDA\n"
+"-o FICHERO-SALIDA FICHERO-ENTRADA\n"
+"-u FICHERO-ENTRADA"
-#: posix/../sysdeps/posix/gai_strerror.c:38
-msgid "Name or service not known"
-msgstr "Nombre o servicio desconocido"
+#: nss/makedb.c:142
+#, c-format
+msgid "No usable database library found."
+msgstr "No se ha encontrado ninguna biblioteca de base de datos utilizable."
-#: posix/../sysdeps/posix/gai_strerror.c:39
-msgid "Servname not supported for ai_socktype"
-msgstr "No se admite servname para ai_socktype"
+#: nss/makedb.c:149
+#, c-format
+msgid "cannot open database file `%s': %s"
+msgstr "no se puede abrir el fichero de datos `%s': %s"
-#: posix/../sysdeps/posix/gai_strerror.c:40
-msgid "ai_socktype not supported"
-msgstr "No se admite ai_socktype"
+#: nss/makedb.c:151
+msgid "incorrectly formatted file"
+msgstr "fichero formateado incorrectamente"
-#: posix/../sysdeps/posix/gai_strerror.c:41
-msgid "System error"
-msgstr "Error del sistema"
+#: nss/makedb.c:331
+msgid "duplicate key"
+msgstr "clave duplicada"
-# Vale, pero muy poco más abajo has puesto "en curso", que me parece mejor. sv
-# Creo que prefiero dejar uno de cada. Se me ocurre si no cambiar el
-# de abajo también. em
-#: posix/../sysdeps/posix/gai_strerror.c:42
-msgid "Processing request in progress"
-msgstr "Se está procesando la petición"
+#: nss/makedb.c:337
+#, c-format
+msgid "while writing database file"
+msgstr "al escribir la base de datos"
-#: posix/../sysdeps/posix/gai_strerror.c:43
-msgid "Request canceled"
-msgstr "Petición cancelada"
+#: nss/makedb.c:348
+#, c-format
+msgid "problems while reading `%s'"
+msgstr "problemas mientras se leía `%s'"
-#: posix/../sysdeps/posix/gai_strerror.c:44
-msgid "Request not canceled"
-msgstr "Petición no cancelada"
+#: nss/makedb.c:368 nss/makedb.c:385
+#, c-format
+msgid "while reading database"
+msgstr "al leer el fichero de datos"
-#: posix/../sysdeps/posix/gai_strerror.c:45
-msgid "All requests done"
-msgstr "Realizadas todas las peticiones"
+#: posix/getconf.c:1036
+#, c-format
+msgid "Usage: %s [-v specification] variable_name [pathname]\n"
+msgstr "Modo de empleo: %s [-v especificación] nombre_de_variable [ruta]\n"
-#: posix/../sysdeps/posix/gai_strerror.c:46
-msgid "Interrupted by a signal"
-msgstr "Interrumpido por una señal"
+#: posix/getconf.c:1039
+#, c-format
+msgid " %s -a [pathname]\n"
+msgstr " %s -a [ruta]\n"
-#: posix/getconf.c:892
+#: posix/getconf.c:1115
#, c-format
-msgid "Usage: %s [-v specification] variable_name [pathname]\n"
-msgstr "Modo de empleo: %s [-v especificación] nombre_de_variable [ruta]\n"
+msgid ""
+"Usage: getconf [-v SPEC] VAR\n"
+" or: getconf [-v SPEC] PATH_VAR PATH\n"
+"\n"
+"Get the configuration value for variable VAR, or for variable PATH_VAR\n"
+"for path PATH. If SPEC is given, give values for compilation\n"
+"environment SPEC.\n"
+"\n"
+msgstr ""
+"Modo de empleo: getconf [-v ESP] VAR\n"
+" o bien: getconf [-v ESP] RUTA_VAR RUTA\n"
+"\n"
+"Obtiene el valor de configuración para la variable VAR, o para la\n"
+"variable RUTA_VAR para la ruta RUTA. Si se especifica ESP, se dan\n"
+"los valores para el entorno de compilación ESP.\n"
-#: posix/getconf.c:950
+#: posix/getconf.c:1173
#, c-format
msgid "unknown specification \"%s\""
-msgstr "especificación \"%s\" desconocida"
+msgstr "especificación \"%s\" desconocida"
+
+#: posix/getconf.c:1225
+#, c-format
+msgid "Couldn't execute %s"
+msgstr "No se pudo ejecutar %s"
-#: posix/getconf.c:979 posix/getconf.c:995
+#: posix/getconf.c:1269 posix/getconf.c:1285
msgid "undefined"
msgstr "sin definir"
-#: posix/getconf.c:1017
+#: posix/getconf.c:1307
#, c-format
msgid "Unrecognized variable `%s'"
msgstr "Variable no reconocida `%s'"
-#: posix/getopt.c:692 posix/getopt.c:711
+#: posix/getopt.c:594 posix/getopt.c:623
#, c-format
-msgid "%s: option '%s' is ambiguous\n"
-msgstr "%s: la opción `%s' es ambigua\n"
+msgid "%s: option '%s' is ambiguous; possibilities:"
+msgstr "%s: la opción '%s' es ambigua; posibilidades:"
-#: posix/getopt.c:744 posix/getopt.c:748
+#: posix/getopt.c:664 posix/getopt.c:668
#, c-format
msgid "%s: option '--%s' doesn't allow an argument\n"
-msgstr "%s: la opción `--%s' no admite ningún argumento\n"
+msgstr "%s: la opción '--%s' no admite ningún argumento\n"
-#: posix/getopt.c:757 posix/getopt.c:762
+#: posix/getopt.c:677 posix/getopt.c:682
#, c-format
msgid "%s: option '%c%s' doesn't allow an argument\n"
-msgstr "%s: la opción `%c%s' no admite ningún argumento\n"
+msgstr "%s: la opción '%c%s' no admite ningún argumento\n"
-#: posix/getopt.c:807 posix/getopt.c:829 posix/getopt.c:1159
-#: posix/getopt.c:1181
+#: posix/getopt.c:725 posix/getopt.c:744
#, c-format
-msgid "%s: option '%s' requires an argument\n"
-msgstr "%s: la opción `%s' requiere un argumento\n"
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: la opción '--%s' requiere un argumento\n"
-#: posix/getopt.c:867 posix/getopt.c:870
+#: posix/getopt.c:782 posix/getopt.c:785
#, c-format
msgid "%s: unrecognized option '--%s'\n"
-msgstr "%s: opción no reconocida `--%s'\n"
+msgstr "%s: opción no reconocida '--%s'\n"
-#: posix/getopt.c:878 posix/getopt.c:881
+#: posix/getopt.c:793 posix/getopt.c:796
#, c-format
msgid "%s: unrecognized option '%c%s'\n"
-msgstr "%s: opción no reconocida `%c%s'\n"
+msgstr "%s: opción no reconocida '%c%s'\n"
-#: posix/getopt.c:936 posix/getopt.c:939
-#, c-format
-msgid "%s: illegal option -- '%c'\n"
-msgstr "%s: opción ilegal -- %c\n"
-
-# ¿Qué tiene de malo "inválida"? sv
-# Jopé, ¿y qué tiene de malo no válida?
-# usuario inválido tiene un doble sentido claro
-# ya que uso usuario no válido me parece bien usar
-# tambien opción no válida, aunque solo sea de vez
+# ¿Qué tiene de malo "inválida"? sv
+# Jopé, ¿y qué tiene de malo no válida?
+# usuario inválido tiene un doble sentido claro
+# ya que uso usuario no válido me parece bien usar
+# tambien opción no válida, aunque solo sea de vez
# en cuando em
#
-# Pues que *inválida* existe. Piensa en retroreferencia, por ejemplo.
-# Se puede poner retroreferencia porque significa referencia hacia atrás.
-# (Bueno, en este caso esa palabra se usa poco, pero inválida no). sv+
+# Pues que *inválida* existe. Piensa en retroreferencia, por ejemplo.
+# Se puede poner retroreferencia porque significa referencia hacia atrás.
+# (Bueno, en este caso esa palabra se usa poco, pero inválida no). sv+
#
-# Después de leer "1984", lo cambio.
-# Aquí y en todas partes. sv
+# Después de leer "1984", lo cambio.
+# Aquí y en todas partes. sv
#
-#: posix/getopt.c:945 posix/getopt.c:948
+#: posix/getopt.c:845 posix/getopt.c:848
#, c-format
msgid "%s: invalid option -- '%c'\n"
-msgstr "%s: opción inválida -- %c\n"
+msgstr "%s: opción inválida -- '%c'\n"
-#: posix/getopt.c:1003 posix/getopt.c:1022 posix/getopt.c:1234
-#: posix/getopt.c:1255
+#: posix/getopt.c:898 posix/getopt.c:915 posix/getopt.c:1123
+#: posix/getopt.c:1141
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
-msgstr "%s: la opción requiere un argumento --%c\n"
+msgstr "%s: la opción requiere un argumento -- '%c'\n"
-#: posix/getopt.c:1074 posix/getopt.c:1093
+#: posix/getopt.c:971 posix/getopt.c:987
#, c-format
msgid "%s: option '-W %s' is ambiguous\n"
-msgstr "%s: la opción `-W %s' es ambigua\n"
+msgstr "%s: la opción '-W %s' es ambigua\n"
-#: posix/getopt.c:1117 posix/getopt.c:1138
+#: posix/getopt.c:1011 posix/getopt.c:1029
#, c-format
msgid "%s: option '-W %s' doesn't allow an argument\n"
-msgstr "%s: la opción `-W %s' no admite ningún argumento\n"
+msgstr "%s: la opción '-W %s' no admite ningún argumento\n"
-#: posix/regcomp.c:150
+#: posix/getopt.c:1050 posix/getopt.c:1068
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: la opción '-W %s' requiere un argumento\n"
+
+#: posix/regcomp.c:135
msgid "No match"
msgstr "No hay ninguna coincidencia"
-#: posix/regcomp.c:153
+#: posix/regcomp.c:138
msgid "Invalid regular expression"
-msgstr "La expresión regular es errónea"
+msgstr "La expresión regular es errónea"
-#: posix/regcomp.c:156
+#: posix/regcomp.c:141
msgid "Invalid collation character"
-msgstr "Carácter de unión inválido"
+msgstr "Carácter de unión inválido"
-#: posix/regcomp.c:159
+#: posix/regcomp.c:144
msgid "Invalid character class name"
-msgstr "Nombre de clase de carácter inválido"
+msgstr "Nombre de clase de carácter inválido"
-#: posix/regcomp.c:162
+#: posix/regcomp.c:147
msgid "Trailing backslash"
msgstr "Barra invertida extra al final `\\'"
-#: posix/regcomp.c:165
+#: posix/regcomp.c:150
msgid "Invalid back reference"
-msgstr "Referencia hacia atrás inválida"
+msgstr "Referencia hacia atrás inválida"
-#: posix/regcomp.c:168
+#: posix/regcomp.c:153
msgid "Unmatched [ or [^"
-msgstr "[ ó ^[ desemparejados"
+msgstr "[ ó ^[ desemparejados"
-#: posix/regcomp.c:171
+#: posix/regcomp.c:156
msgid "Unmatched ( or \\("
-msgstr "( ó \\( desemparejados"
+msgstr "( ó \\( desemparejados"
-#: posix/regcomp.c:174
+#: posix/regcomp.c:159
msgid "Unmatched \\{"
msgstr "\\{ desemparejado"
-#: posix/regcomp.c:177
+#: posix/regcomp.c:162
msgid "Invalid content of \\{\\}"
-msgstr "Contenido de \\{\\} inválido"
+msgstr "Contenido de \\{\\} inválido"
-#: posix/regcomp.c:180
+#: posix/regcomp.c:165
msgid "Invalid range end"
-msgstr "Final de rango inválido"
+msgstr "Final de rango inválido"
-#: posix/regcomp.c:183
+#: posix/regcomp.c:168
msgid "Memory exhausted"
msgstr "Memoria agotada"
-#: posix/regcomp.c:186
+#: posix/regcomp.c:171
msgid "Invalid preceding regular expression"
-msgstr "La expresión regular precedente es inválida"
+msgstr "La expresión regular precedente es inválida"
-#: posix/regcomp.c:189
+#: posix/regcomp.c:174
msgid "Premature end of regular expression"
-msgstr "Fin no esperado de la expresión regular"
+msgstr "Fin no esperado de la expresión regular"
-#: posix/regcomp.c:192
+#: posix/regcomp.c:177
msgid "Regular expression too big"
-msgstr "La expresión regular es demasiado grande"
+msgstr "La expresión regular es demasiado grande"
-#: posix/regcomp.c:195
+#: posix/regcomp.c:180
msgid "Unmatched ) or \\)"
-msgstr ") ó \\) desemparejados"
+msgstr ") ó \\) desemparejados"
-#: posix/regcomp.c:661
+#: posix/regcomp.c:680
msgid "No previous regular expression"
-msgstr "No existe ninguna expresión regular anterior"
+msgstr "No existe ninguna expresión regular anterior"
-#: argp/argp-help.c:224
-#, c-format
-msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
-msgstr "%.*s: El argumento ARGP_HELP_FMT requiere un valor"
-
-#: argp/argp-help.c:233
-#, c-format
-msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
-msgstr "%.*s: Parámetro ARGP_HELP_FMT desconocido"
-
-#: argp/argp-help.c:245
-#, c-format
-msgid "Garbage in ARGP_HELP_FMT: %s"
-msgstr "Inconsistencias en ARGP_HELP_FMT: %s"
-
-#: argp/argp-help.c:1205
-msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
-msgstr ""
-"Los argumentos obligatorios u opcionales para las opciones largas son\n"
-"también obligatorios u opcionales para las opciones cortas correspondientes."
-
-#: argp/argp-help.c:1592
-msgid "Usage:"
-msgstr "Modo de empleo:"
-
-#: argp/argp-help.c:1596
-msgid " or: "
-msgstr " o: "
-
-#: argp/argp-help.c:1608
-msgid " [OPTION...]"
-msgstr " [OPCIÓN...]"
-
-#: argp/argp-help.c:1635
-#, c-format
-msgid "Try `%s --help' or `%s --usage' for more information.\n"
-msgstr "Pruebe `%s --help' o `%s --usage' para más información.\n"
-
-#: argp/argp-help.c:1663
-#, c-format
-msgid "Report bugs to %s.\n"
-msgstr "Comunicar bichos a %s.\n"
-
-#: argp/argp-parse.c:115
-msgid "Give this help list"
-msgstr "Da esta lista de ayuda"
-
-#: argp/argp-parse.c:116
-msgid "Give a short usage message"
-msgstr "Da un mensaje corto de uso"
-
-#: argp/argp-parse.c:117
-msgid "Set the program name"
-msgstr "Establece el nombre del programa"
-
-#: argp/argp-parse.c:119
-msgid "Hang for SECS seconds (default 3600)"
-msgstr "Cuelga durante SECS segundos (por omisión, 3600)"
-
-#: argp/argp-parse.c:180
-msgid "Print program version"
-msgstr "Muestra la versión del programa"
-
-#: argp/argp-parse.c:196
-msgid "(PROGRAM ERROR) No version known!?"
-msgstr "(ERROR DEL PROGRAMA) ¿¡No se conoce ninguna versión!?"
-
-#: argp/argp-parse.c:672
-#, c-format
-msgid "%s: Too many arguments\n"
-msgstr "%s: Demasiados argumentos\n"
-
-#: argp/argp-parse.c:813
-msgid "(PROGRAM ERROR) Option should have been recognized!?"
-msgstr "(ERROR DEL PROGRAMA) ¿¡No se debería haber reconocido la opción!?"
+#: posix/wordexp.c:1832
+msgid "parameter null or not set"
+msgstr "parámetro nulo o no establecido"
# ??? resolvedor, determinador, investigador, solucionador ?
-# Me suena que quizá exista resolvedor. Habría que enterarse. sv
+# Me suena que quizá exista resolvedor. Habría que enterarse. sv
#: resolv/herror.c:68
msgid "Resolver Error 0 (no error)"
-msgstr "Error del determinador de nombres 0 (ningún error)"
+msgstr "Error del determinador de nombres 0 (ningún error)"
-# En el libro de Infovía traducen host por "anfitrión"
+# En el libro de Infovía traducen host por "anfitrión"
#: resolv/herror.c:69
msgid "Unknown host"
msgstr "`Host' desconocido"
@@ -4154,439 +4788,462 @@ msgstr "Error del servidor desconocido"
#: resolv/herror.c:72
msgid "No address associated with name"
-msgstr "No existe ninguna dirección asociada al nombre"
+msgstr "No existe ninguna dirección asociada al nombre"
# ??? lo mismo que arriba
-#: resolv/herror.c:108
+#: resolv/herror.c:107
msgid "Resolver internal error"
msgstr "Error interno del determinador de nombres"
-#: resolv/herror.c:111
+#: resolv/herror.c:110
msgid "Unknown resolver error"
msgstr "Error del determinador de nombres desconocido"
-#: resolv/res_hconf.c:147
-#, c-format
-msgid "%s: line %d: expected service, found `%s'\n"
-msgstr "%s: línea %d: se esperaba un servicio, se encontró `%s'\n"
-
-#: resolv/res_hconf.c:165
-#, c-format
-msgid "%s: line %d: cannot specify more than %d services"
-msgstr "%s: línea %d: no se pueden especificar más de %d servicios"
-
-#: resolv/res_hconf.c:191
-#, c-format
-msgid "%s: line %d: list delimiter not followed by keyword"
-msgstr "%s: línea %d: el delimitador de lista no está seguido por una palabra clave"
-
-# ¿Qué son dominios trim?
-#: resolv/res_hconf.c:231
+# ¿Qué son dominios trim?
+#: resolv/res_hconf.c:124
#, c-format
msgid "%s: line %d: cannot specify more than %d trim domains"
-msgstr "%s: línea %d: no se pueden especificar más de % dominios"
+msgstr "%s: línea %d: no se pueden especificar más de % dominios"
-#: resolv/res_hconf.c:256
+#: resolv/res_hconf.c:145
#, c-format
msgid "%s: line %d: list delimiter not followed by domain"
-msgstr "%s: línea %d: el delimitador de lista no está seguido por el dominio"
+msgstr "%s: línea %d: el delimitador de lista no está seguido por el dominio"
-#: resolv/res_hconf.c:319
+#: resolv/res_hconf.c:204
#, c-format
msgid "%s: line %d: expected `on' or `off', found `%s'\n"
-msgstr "%s: línea %d: se esperaba `on' o `off', se encontró `%s'\n"
+msgstr "%s: línea %d: se esperaba `on' o `off', se encontró `%s'\n"
-#: resolv/res_hconf.c:366
+#: resolv/res_hconf.c:247
#, c-format
msgid "%s: line %d: bad command `%s'\n"
-msgstr "%s: línea %d: orden errónea `%s'\n"
+msgstr "%s: línea %d: orden errónea `%s'\n"
-#: resolv/res_hconf.c:395
+#: resolv/res_hconf.c:282
#, c-format
msgid "%s: line %d: ignoring trailing garbage `%s'\n"
-msgstr "%s: línea %d: se descarta lo que sigue `%s'\n"
+msgstr "%s: línea %d: se descarta lo que sigue `%s'\n"
-#: nss/getent.c:51
-msgid "database [key ...]"
-msgstr "basededatos [clave ...]"
+#: stdio-common/psiginfo-data.h:2
+msgid "Illegal opcode"
+msgstr "Código de operación ilegal"
-#: nss/getent.c:56
-msgid "Service configuration to be used"
-msgstr "Configuración del servicio"
+#: stdio-common/psiginfo-data.h:3
+msgid "Illegal operand"
+msgstr "Operando ilegal"
-#: nss/getent.c:136 nss/getent.c:375
-#, c-format
-msgid "Enumeration not supported on %s\n"
-msgstr "La enumeración no está soportada sobre %s\n"
+#: stdio-common/psiginfo-data.h:4
+msgid "Illegal addressing mode"
+msgstr "Modo de direccionamiento ilegal"
-#: nss/getent.c:800
-msgid "getent - get entries from administrative database."
-msgstr "getent - obtiene entradas de la base de datos administrativa."
+#: stdio-common/psiginfo-data.h:5
+msgid "Illegal trap"
+msgstr "`trap' ilegal"
-#: nss/getent.c:801
-msgid "Supported databases:"
-msgstr "Bases de datos admitidas:"
+#: stdio-common/psiginfo-data.h:6
+msgid "Privileged opcode"
+msgstr "Código de operación privilegiado"
-#: nss/getent.c:858 nscd/nscd.c:131 nscd/nscd_nischeck.c:64
-msgid "wrong number of arguments"
-msgstr "número incorrecto de argumentos"
+#: stdio-common/psiginfo-data.h:7
+msgid "Privileged register"
+msgstr "Registro privilegiado"
-#: nss/getent.c:868
-#, c-format
-msgid "Unknown database: %s\n"
-msgstr "Base de datos desconocida: %s\n"
+#: stdio-common/psiginfo-data.h:8
+msgid "Coprocessor error"
+msgstr "Error del coprocesador"
+
+#: stdio-common/psiginfo-data.h:9
+msgid "Internal stack error"
+msgstr "Error interno de pila"
+
+#: stdio-common/psiginfo-data.h:12
+msgid "Integer divide by zero"
+msgstr "División entera por cero"
+
+#: stdio-common/psiginfo-data.h:13
+msgid "Integer overflow"
+msgstr "Desbordamiento entero"
+
+#: stdio-common/psiginfo-data.h:14
+msgid "Floating-point divide by zero"
+msgstr "División de coma flotante por cero"
+
+#: stdio-common/psiginfo-data.h:15
+msgid "Floating-point overflow"
+msgstr "Desbordamiento de coma flotante"
+
+#: stdio-common/psiginfo-data.h:16
+msgid "Floating-point underflow"
+msgstr "Subdesbordamiento de coma flotante"
+
+#: stdio-common/psiginfo-data.h:17
+msgid "Floating-poing inexact result"
+msgstr "Resultado inexacto de coma flotante"
+
+#: stdio-common/psiginfo-data.h:18
+msgid "Invalid floating-point operation"
+msgstr "Operación de coma flotante inválida"
+
+#: stdio-common/psiginfo-data.h:19
+msgid "Subscript out of range"
+msgstr "Subíndice fuera de rango"
+
+#: stdio-common/psiginfo-data.h:22
+msgid "Address not mapped to object"
+msgstr "Dirección no asignada al objeto"
+
+#: stdio-common/psiginfo-data.h:23
+msgid "Invalid permissions for mapped object"
+msgstr "Permisos inválidos para el objeto asignado"
+
+#: stdio-common/psiginfo-data.h:26
+msgid "Invalid address alignment"
+msgstr "Alineación de direcciones inválida"
+
+#: stdio-common/psiginfo-data.h:27
+msgid "Nonexisting physical address"
+msgstr "Dirección física inexistente"
+
+#: stdio-common/psiginfo-data.h:28
+msgid "Object-specific hardware error"
+msgstr "Error de hardware específico del objeto"
+
+#: stdio-common/psiginfo-data.h:31
+msgid "Process breakpoint"
+msgstr "Punto de parada/seguimiento del proceso"
+
+#: stdio-common/psiginfo-data.h:32
+msgid "Process trace trap"
+msgstr "Procesa el `trap' de seguimiento"
+
+#: stdio-common/psiginfo-data.h:35
+msgid "Child has exited"
+msgstr "El proceso hijo terminó"
+
+#: stdio-common/psiginfo-data.h:36
+msgid "Child has terminated abnormally and did not create a core file"
+msgstr "El proceso hijo ha terminado anormalmente y no creó un fichero `core'"
-#: debug/pcprofiledump.c:52
-msgid "Don't buffer output"
-msgstr "No hace pasar el resultado a través de un búfer"
+#: stdio-common/psiginfo-data.h:37
+msgid "Child hat terminated abnormally and created a core file"
+msgstr "El proceso hijo ha terminado y ha creado un fichero `core'"
-# Se admiten sugerencias. sv
-#: debug/pcprofiledump.c:57
-msgid "Dump information generated by PC profiling."
-msgstr "Información de volcado generada mediante `PC profiling'."
+#: stdio-common/psiginfo-data.h:38
+msgid "Traced child has trapped"
+msgstr "El proceso hijo seguido ha sido capturado"
-#: debug/pcprofiledump.c:60
-msgid "[FILE]"
-msgstr "[FICHERO]"
+#: stdio-common/psiginfo-data.h:39
+msgid "Child has stopped"
+msgstr "El proceso hijo se ha detenido"
-#: debug/pcprofiledump.c:100
-msgid "cannot open input file"
-msgstr "no se puede abrir el fichero de entrada"
+#: stdio-common/psiginfo-data.h:40
+msgid "Stopped child has continued"
+msgstr "El proceso hijo detenido ha continuado"
-#: debug/pcprofiledump.c:106
-msgid "cannot read header"
-msgstr "no se puede leer la cabecera"
+#: stdio-common/psiginfo-data.h:43
+msgid "Data input available"
+msgstr "Datos de entrada disponibles"
-#: debug/pcprofiledump.c:170
-msgid "invalid pointer size"
-msgstr "tamaño de puntero inválido"
+# Memoria intermedia me parece una traducción óptima.
+# Desgraciadamente no tengo ningún diccionario de Castellano
+# Enrique, creo que en español existe "búfer", míralo si puedes. sv
+# ¿Buffer? memoria intermedia.
+# A ver qué dice Iñaky... sv
+#: stdio-common/psiginfo-data.h:44
+msgid "Output buffers available"
+msgstr "Hay búfers de salida disponibles"
+
+#: stdio-common/psiginfo-data.h:45
+msgid "Input message available"
+msgstr "Mensaje de entrada disponible"
+
+#: stdio-common/psiginfo-data.h:46
+msgid "I/O error"
+msgstr "Error de E/S"
-#: inet/rcmd.c:163 inet/rcmd.c:166
-msgid "rcmd: Cannot allocate memory\n"
-msgstr "rcmd: No se puede asignar memoria\n"
+#: stdio-common/psiginfo-data.h:47
+msgid "High priority input available"
+msgstr "Entrada de alta prioridad disponible"
-#: inet/rcmd.c:185 inet/rcmd.c:188
-msgid "rcmd: socket: All ports in use\n"
-msgstr "rcmd: socket: Se están usando todos los puertos\n"
+#: stdio-common/psiginfo-data.h:48
+msgid "Device disconnected"
+msgstr "Dispositivo desconectado"
-#: inet/rcmd.c:222
-#, c-format
-msgid "connect to address %s: "
-msgstr "conexión a la dirección %s: "
+#: stdio-common/psiginfo.c:145
+msgid "Signal sent by kill()"
+msgstr "Señal enviada por kill()"
-#: inet/rcmd.c:240
-#, c-format
-msgid "Trying %s...\n"
-msgstr "Intentando %s...\n"
+#: stdio-common/psiginfo.c:148
+msgid "Signal sent by sigqueue()"
+msgstr "Señal enviada por sigqueue()"
-#: inet/rcmd.c:289
-#, c-format
-msgid "rcmd: write (setting up stderr): %m\n"
-msgstr "rcmd: write (activando la salida de error estándar): %m\n"
+#: stdio-common/psiginfo.c:151
+msgid "Signal generated by the expiration of a timer"
+msgstr "Señal generada por la expiración de un temporizador"
-#: inet/rcmd.c:310
-#, c-format
-msgid "rcmd: poll (setting up stderr): %m\n"
-msgstr "rcmd: poll (activando la salida de error estándar): %m\n"
+#: stdio-common/psiginfo.c:154
+msgid "Signal generated by the completion of an asynchronous I/O request"
+msgstr "Señal generada por la compleción de una petición de E/S asíncrona"
-# ¿en la configuración del servicio?, ¿del circuito?, ¿o dejarlo así?
-# Es de locos, estuve viendo las/los fuentes, preferí dejarlo así. em
-#: inet/rcmd.c:313
-msgid "poll: protocol failure in circuit setup\n"
-msgstr "poll: fallo de protocolo al configurar el circuito\n"
+#: stdio-common/psiginfo.c:158
+msgid "Signal generated by the arrival of a message on an empty message queue"
+msgstr "Señal generada por la llegada de un mensaje en una cola de mensajes vacía"
-# ??? lo mismo que arriba
-#: inet/rcmd.c:358
-msgid "socket: protocol failure in circuit setup\n"
-msgstr "socket: fallo de protocolo al configurar el circuito\n"
+#: stdio-common/psiginfo.c:163
+msgid "Signal sent by tkill()"
+msgstr "Señal enviada por tkill()"
-#: inet/rcmd.c:387
-#, c-format
-msgid "rcmd: %s: short read"
-msgstr "rcmd: %s: lectura insuficiente"
+#: stdio-common/psiginfo.c:168
+msgid "Signal generated by the completion of an asynchronous name lookup request"
+msgstr "Señal generada por la compleción de una petición de búsqueda de nombres asíncrona"
-# ## Lo mismo con lstat. sv
-# Antes decía: No se pudo obtener información (lstat) del fichero .rhosts
-#: inet/rcmd.c:549
-msgid "lstat failed"
-msgstr "lstat ha fallado"
-
-# Antes decía: .rhosts no es un fichero regular
-#: inet/rcmd.c:551
-msgid "not regular file"
-msgstr "no es un fichero regular"
+#: stdio-common/psiginfo.c:174
+msgid "Signal generated by the completion of an I/O request"
+msgstr "Señal generada por la compleción de una petición de E/S"
-#: inet/rcmd.c:556
-msgid "cannot open"
-msgstr "no se puede abrir"
+#: stdio-common/psiginfo.c:180
+msgid "Signal sent by the kernel"
+msgstr "Señal enviada por el núcleo"
-# ## Sugerencia: Añadir (fstat) después de información. sv
-# Antes decía: No se pudo obtener información (fstat) del fichero .rhosts
-#: inet/rcmd.c:558
-msgid "fstat failed"
-msgstr "fstat ha fallado"
-
-# Antes decía: El propietario del fichero .rhosts no es válido
-#: inet/rcmd.c:560
-msgid "bad owner"
-msgstr "propietario incorrecto"
+#: stdio-common/psiginfo.c:204
+#, c-format
+msgid "Unknown signal %d\n"
+msgstr "Señal desconocida %d\n"
-#: inet/rcmd.c:562
-msgid "writeable by other than owner"
-msgstr "puede ser modificado por otros además del propietario"
+#: stdio-common/psignal.c:51
+#, c-format
+msgid "%s%sUnknown signal %d\n"
+msgstr "%s%sSeñal desconocida %d\n"
-#: inet/rcmd.c:564
-msgid "hard linked somewhere"
-msgstr "hay un enlace duro en alguna parte"
+#: stdio-common/psignal.c:52
+msgid "Unknown signal"
+msgstr "Señal desconocida"
-#: inet/ruserpass.c:170 inet/ruserpass.c:193
-msgid "out of memory"
-msgstr "memoria agotada"
+#: string/_strerror.c:47 sysdeps/mach/_strerror.c:87
+msgid "Unknown error "
+msgstr "Error desconocido "
-# Supongo que se dice legible... sv
-#: inet/ruserpass.c:184
-msgid "Error: .netrc file is readable by others."
-msgstr "Error: el fichero .netrc es legible por otros usuarios."
+#: string/strerror.c:43
+msgid "Unknown error"
+msgstr "Error desconocido"
-#: inet/ruserpass.c:185
-msgid "Remove password or make file unreadable by others."
-msgstr "Elimine la contraseña o haga el fichero no legible por otros."
+#: string/strsignal.c:65
+#, c-format
+msgid "Real-time signal %d"
+msgstr "Señal de tiempo real %d"
-#: inet/ruserpass.c:277
+#: string/strsignal.c:69
#, c-format
-msgid "Unknown .netrc keyword %s"
-msgstr "Palabra clave %s desconocida en .netrc"
+msgid "Unknown signal %d"
+msgstr "Señal desconocida %d"
-#: sunrpc/auth_unix.c:115 sunrpc/auth_unix.c:118
-msgid "authunix_create: out of memory\n"
-msgstr "authunix_create: memoria agotada\n"
+#: sunrpc/auth_unix.c:113 sunrpc/clnt_tcp.c:125 sunrpc/clnt_udp.c:136
+#: sunrpc/clnt_unix.c:126 sunrpc/svc_tcp.c:173 sunrpc/svc_tcp.c:218
+#: sunrpc/svc_udp.c:147 sunrpc/svc_unix.c:174 sunrpc/svc_unix.c:215
+#: sunrpc/xdr.c:632 sunrpc/xdr.c:792 sunrpc/xdr_array.c:100
+#: sunrpc/xdr_rec.c:154 sunrpc/xdr_ref.c:79
+msgid "out of memory\n"
+msgstr "memoria agotada\n"
-# ??? mariscalización ?
-#: sunrpc/auth_unix.c:318
-msgid "auth_none.c - Fatal marshalling problem"
-msgstr "auth_none.c - Problema muy grave con autorización marshall"
+# ??? mariscalización ?
+#: sunrpc/auth_unix.c:351
+msgid "auth_unix.c: Fatal marshalling problem"
+msgstr "auth_unix.c: - Problema muy grave con autorización marshall"
-# FIXME: ¿¿No será major y minor??
-#: sunrpc/clnt_perr.c:118 sunrpc/clnt_perr.c:139
+# FIXME: ¿¿No será major y minor??
+#: sunrpc/clnt_perr.c:98 sunrpc/clnt_perr.c:114
#, c-format
-msgid "; low version = %lu, high version = %lu"
-msgstr "; versión menor = %lu, versión mayor = %lu"
+msgid "%s: %s; low version = %lu, high version = %lu"
+msgstr "%s: %s; versión menor = %lu, versión mayor = %lu"
-#: sunrpc/clnt_perr.c:125
-msgid "; why = "
-msgstr "; causa = "
+#: sunrpc/clnt_perr.c:105
+#, c-format
+msgid "%s: %s; why = %s\n"
+msgstr "%s: %s; causa = %s\n"
-#: sunrpc/clnt_perr.c:132
+#: sunrpc/clnt_perr.c:107
#, c-format
-msgid "(unknown authentication error - %d)"
-msgstr "(error de autentificación desconocido - %d)"
+msgid "%s: %s; why = (unknown authentication error - %d)\n"
+msgstr "%s: %s; causa = (error de autentificación desconocido - %d)\n"
-#: sunrpc/clnt_perr.c:177
+#: sunrpc/clnt_perr.c:156
msgid "RPC: Success"
msgstr "RPC: Conseguido"
-#: sunrpc/clnt_perr.c:180
+#: sunrpc/clnt_perr.c:159
msgid "RPC: Can't encode arguments"
msgstr "RPC: No se pudieron codificar los argumentos"
-# Si da el error es porque lo intentó descodificar
-# y no lo consiguió. Es decir, que lo intentó ( pasado )
+# Si da el error es porque lo intentó descodificar
+# y no lo consiguió. Es decir, que lo intentó ( pasado )
# En muchos de los mensajes de GNU se usa presente o pasado
# indiferentemente. Ya se sabe lo mal que les suena el pasado de can,
# sobre todo en frases afirmativas ( que no es el caso, pero bueno )
#
-#: sunrpc/clnt_perr.c:184
+#: sunrpc/clnt_perr.c:163
msgid "RPC: Can't decode result"
msgstr "RPC: No se pudo descodificar la respuesta"
# Sugerencia: No se puede enviar. (?) (no estoy muy seguro) sv
-#: sunrpc/clnt_perr.c:188
+#: sunrpc/clnt_perr.c:167
msgid "RPC: Unable to send"
msgstr "RPC: No se puede enviar"
# Me parece que incapaz expresa mejor lo que pasa. Intenta
# recibir, pero no puede. De la otra forma (no se puede recibir)
-# da la impresión de que ni siquiera se intenta
+# da la impresión de que ni siquiera se intenta
# A lo mejor es que ni siquiera puede intentarlo ... sv
# Me suena horrible lo de "Incapaz", lo cambio. sv
-#: sunrpc/clnt_perr.c:192
+#: sunrpc/clnt_perr.c:171
msgid "RPC: Unable to receive"
msgstr "RPC: No se puede recibir"
-#: sunrpc/clnt_perr.c:196
+#: sunrpc/clnt_perr.c:175
msgid "RPC: Timed out"
-msgstr "RPC: El tiempo expiró"
+msgstr "RPC: El tiempo expiró"
-#: sunrpc/clnt_perr.c:200
+#: sunrpc/clnt_perr.c:179
msgid "RPC: Incompatible versions of RPC"
msgstr "RPC: Versiones incompatibles de RPC"
-#: sunrpc/clnt_perr.c:204
+#: sunrpc/clnt_perr.c:183
msgid "RPC: Authentication error"
-msgstr "RPC: Error de autentificación"
+msgstr "RPC: Error de autentificación"
-#: sunrpc/clnt_perr.c:208
+#: sunrpc/clnt_perr.c:187
msgid "RPC: Program unavailable"
msgstr "RPC: Programa no disponible"
-#: sunrpc/clnt_perr.c:212
+#: sunrpc/clnt_perr.c:191
msgid "RPC: Program/version mismatch"
-msgstr "RPC: La versión del programa no coincide"
+msgstr "RPC: La versión del programa no coincide"
-# ??? prefiero añadir rpc otra vez,
-# parece que queda más claro cual es el error y son solo tres letras
+# ??? prefiero añadir rpc otra vez,
+# parece que queda más claro cual es el error y son solo tres letras
#
-# No sé lo que es el RPC, pero igual es un disparate "procedimiento rpc"
-# En estos casos, preferiría no añadir nada y no "arriesgar". sv
+# No sé lo que es el RPC, pero igual es un disparate "procedimiento rpc"
+# En estos casos, preferiría no añadir nada y no "arriesgar". sv
#
-# Está bien, por homogeneizar todo un poco lo quitaré. Pero que conste que
-# procedimiento rpc es perfectamente válido ( rcp: remote procedure call )
+# Está bien, por homogeneizar todo un poco lo quitaré. Pero que conste que
+# procedimiento rpc es perfectamente válido ( rcp: remote procedure call )
# em
#
-# Incluyo una cita de César Ballardini a ver qué te parece:
-# "no es necesario explicar la terminología obvia dentro de su contexto"
-# Creo que no hace falta poner rpc dos veces. El primero ya te avisa "de qué
+# Incluyo una cita de César Ballardini a ver qué te parece:
+# "no es necesario explicar la terminología obvia dentro de su contexto"
+# Creo que no hace falta poner rpc dos veces. El primero ya te avisa "de qué
# va el rollo". sv+
#
# Por cierto, unavailable es NO disponible. Lo cambio.
# Y quito el "rpc" sv+
-#: sunrpc/clnt_perr.c:216
+#: sunrpc/clnt_perr.c:195
msgid "RPC: Procedure unavailable"
msgstr "RPC: Procedimiento no disponible"
-#: sunrpc/clnt_perr.c:220
+#: sunrpc/clnt_perr.c:199
msgid "RPC: Server can't decode arguments"
msgstr "RPC: El servidor no puede descifrar los argumentos"
-#: sunrpc/clnt_perr.c:224
+#: sunrpc/clnt_perr.c:203
msgid "RPC: Remote system error"
msgstr "RPC: Error del sistema remoto"
-#: sunrpc/clnt_perr.c:228
+#: sunrpc/clnt_perr.c:207
msgid "RPC: Unknown host"
msgstr "RPC: `Host' desconocido"
-#: sunrpc/clnt_perr.c:232
+#: sunrpc/clnt_perr.c:211
msgid "RPC: Unknown protocol"
msgstr "RPC: Protocolo desconocido"
-#: sunrpc/clnt_perr.c:236
+#: sunrpc/clnt_perr.c:215
msgid "RPC: Port mapper failure"
msgstr "RPC: Fallo del asignador de puertos"
-#: sunrpc/clnt_perr.c:240
+#: sunrpc/clnt_perr.c:219
msgid "RPC: Program not registered"
msgstr "RPC: Programa no registrado"
-# ??? Falló, fracasó, pinchó ;-)
-#: sunrpc/clnt_perr.c:244
+# ??? Falló, fracasó, pinchó ;-)
+#: sunrpc/clnt_perr.c:223
msgid "RPC: Failed (unspecified error)"
-msgstr "RPC: Falló (error no especificado)"
+msgstr "RPC: Falló (error no especificado)"
-#: sunrpc/clnt_perr.c:285
+#: sunrpc/clnt_perr.c:264
msgid "RPC: (unknown error code)"
-msgstr "RPC: (código de error desconocido)"
+msgstr "RPC: (código de error desconocido)"
-#: sunrpc/clnt_perr.c:357
+#: sunrpc/clnt_perr.c:336
msgid "Authentication OK"
-msgstr "Autentificación válida"
+msgstr "Autentificación válida"
-#: sunrpc/clnt_perr.c:360
+#: sunrpc/clnt_perr.c:339
msgid "Invalid client credential"
-msgstr "Credenciales del cliente inválidas"
+msgstr "Credenciales del cliente inválidas"
-#: sunrpc/clnt_perr.c:364
+#: sunrpc/clnt_perr.c:343
msgid "Server rejected credential"
-msgstr "El servidor rechazó la credencial"
+msgstr "El servidor rechazó la credencial"
-#: sunrpc/clnt_perr.c:368
+#: sunrpc/clnt_perr.c:347
msgid "Invalid client verifier"
-msgstr "Verificación del cliente inválida"
+msgstr "Verificación del cliente inválida"
-#: sunrpc/clnt_perr.c:372
+#: sunrpc/clnt_perr.c:351
msgid "Server rejected verifier"
-msgstr "El servidor rechazó el verificador"
+msgstr "El servidor rechazó el verificador"
-#: sunrpc/clnt_perr.c:376
+#: sunrpc/clnt_perr.c:355
msgid "Client credential too weak"
msgstr "Las credenciales del cliente son poco fiables"
-#: sunrpc/clnt_perr.c:380
+#: sunrpc/clnt_perr.c:359
msgid "Invalid server verifier"
-msgstr "Verificación del servidor inválido"
+msgstr "Verificación del servidor inválido"
-#: sunrpc/clnt_perr.c:384
+#: sunrpc/clnt_perr.c:363
msgid "Failed (unspecified error)"
-msgstr "Falló (error no especificado)"
+msgstr "Falló (error no especificado)"
-#: sunrpc/clnt_raw.c:117
-msgid "clnt_raw.c - Fatal header serialization error."
-msgstr "clnt_raw.c - Error grave en la secuencia de cabecera."
+#: sunrpc/clnt_raw.c:115
+msgid "clnt_raw.c: fatal header serialization error"
+msgstr "clnt_raw.c: error grave en la secuencia de cabecera"
-#: sunrpc/clnt_tcp.c:134 sunrpc/clnt_tcp.c:137
-msgid "clnttcp_create: out of memory\n"
-msgstr "clnttcp_create: memoria agotada\n"
+#: sunrpc/pm_getmaps.c:77
+msgid "pmap_getmaps.c: rpc problem"
+msgstr "pmap_getmaps.c: problema de rpc"
-#: sunrpc/clnt_udp.c:141 sunrpc/clnt_udp.c:144
-msgid "clntudp_create: out of memory\n"
-msgstr "clntudp_create: memoria agotada\n"
-
-#: sunrpc/clnt_unix.c:131 sunrpc/clnt_unix.c:134
-msgid "clntunix_create: out of memory\n"
-msgstr "clntunix_create: memoria agotada\n"
-
-#: sunrpc/get_myaddr.c:78
-msgid "get_myaddress: ioctl (get interface configuration)"
-msgstr "get_myaddress: ioctl (lee la configuración del interfaz)"
-
-#: sunrpc/pm_getmaps.c:74
-msgid "pmap_getmaps rpc problem"
-msgstr "pmap_getmaps problema de rpc"
-
-#: sunrpc/pmap_clnt.c:72
-msgid "__get_myaddress: ioctl (get interface configuration)"
-msgstr "__get_myaddress: ioctl (lee la configuración del interfaz)"
-
-#: sunrpc/pmap_clnt.c:137
+#: sunrpc/pmap_clnt.c:127
msgid "Cannot register service"
msgstr "No se pudo registrar el servicio"
-#: sunrpc/pmap_rmt.c:190
-msgid "broadcast: ioctl (get interface configuration)"
-msgstr "broadcast: iotcl (lee la configuración del interfaz)"
-
-# Mejorando lo presente ( idea de Jochen )
-#: sunrpc/pmap_rmt.c:199
-msgid "broadcast: ioctl (get interface flags)"
-msgstr "broadcast: iotcl (lee las propiedades del interfaz)"
-
# He intentado mejorarlo un poco ...
#
-#: sunrpc/pmap_rmt.c:269
+#: sunrpc/pmap_rmt.c:243
msgid "Cannot create socket for broadcast rpc"
msgstr "No se puede crear `socket' para enviar un mensaje `broadcast' del rpc"
-#: sunrpc/pmap_rmt.c:276
+#: sunrpc/pmap_rmt.c:250
msgid "Cannot set socket option SO_BROADCAST"
-msgstr "No se pudo especificar la opción SO_BROADCAST para el `socket'"
+msgstr "No se pudo especificar la opción SO_BROADCAST para el `socket'"
-#: sunrpc/pmap_rmt.c:328
+#: sunrpc/pmap_rmt.c:302
msgid "Cannot send broadcast packet"
msgstr "No se pudo enviar el mensaje `broadcast'"
-# Pregunta: ¿Qué es poll?
-#: sunrpc/pmap_rmt.c:353
+# Pregunta: ¿Qué es poll?
+#: sunrpc/pmap_rmt.c:327
msgid "Broadcast poll problem"
msgstr "Problema en el `poll' del `broadcast'"
-#: sunrpc/pmap_rmt.c:366
+#: sunrpc/pmap_rmt.c:340
msgid "Cannot receive reply to broadcast"
msgstr "No se puede recibir la respuesta al `broadcast'"
#: sunrpc/rpc_main.c:288
#, c-format
msgid "%s: output would overwrite %s\n"
-msgstr "%s: la salida sobreescribiría %s\n"
+msgstr "%s: la salida sobreescribiría %s\n"
#: sunrpc/rpc_main.c:295
#, c-format
@@ -4606,2412 +5263,2240 @@ msgstr "no se puede encontrar el preprocesador de C: %s \n"
#: sunrpc/rpc_main.c:350
msgid "cannot find any C preprocessor (cpp)\n"
-msgstr "no se puede encontrar ningún preprocesador de C (cpp)\n"
+msgstr "no se puede encontrar ningún preprocesador de C (cpp)\n"
#: sunrpc/rpc_main.c:419
#, c-format
msgid "%s: C preprocessor failed with signal %d\n"
-msgstr "%s: El preprocesador de C falló con la señal %d\n"
+msgstr "%s: El preprocesador de C falló con la señal %d\n"
#: sunrpc/rpc_main.c:422
#, c-format
msgid "%s: C preprocessor failed with exit code %d\n"
-msgstr "%s: El preprocesador de C falló con un código de retorno %d\n"
+msgstr "%s: El preprocesador de C falló con un código de retorno %d\n"
#: sunrpc/rpc_main.c:462
#, c-format
-msgid "illegal nettype :`%s'\n"
-msgstr "tipodered ilegal :`%s'\n"
+msgid "illegal nettype: `%s'\n"
+msgstr "tipodered ilegal: `%s'\n"
-#: sunrpc/rpc_main.c:1104
+#: sunrpc/rpc_main.c:1128
#, c-format
msgid "rpcgen: too many defines\n"
msgstr "rpcgen: demasiados defines\n"
-#: sunrpc/rpc_main.c:1116
+#: sunrpc/rpc_main.c:1140
#, c-format
msgid "rpcgen: arglist coding error\n"
-msgstr "rpcgen: error de codificación de la lista de argumentos\n"
+msgstr "rpcgen: error de codificación de la lista de argumentos\n"
#. TRANS: the file will not be removed; this is an
#. TRANS: informative message.
-#: sunrpc/rpc_main.c:1149
+#: sunrpc/rpc_main.c:1173
#, c-format
msgid "file `%s' already exists and may be overwritten\n"
-msgstr "el fichero `%s' ya existe y podría ser sobreescrito\n"
+msgstr "el fichero `%s' ya existe y podría ser sobreescrito\n"
-#: sunrpc/rpc_main.c:1194
+#: sunrpc/rpc_main.c:1218
#, c-format
msgid "Cannot specify more than one input file!\n"
-msgstr "No se puede especificar más de un fichero de entrada\n"
+msgstr "No se puede especificar más de un fichero de entrada\n"
# Se admiten sugerencias para MT-safe. sv
-#: sunrpc/rpc_main.c:1364
+#: sunrpc/rpc_main.c:1392
+#, c-format
msgid "This implementation doesn't support newstyle or MT-safe code!\n"
-msgstr "¡Esta implementación no admite código de nuevo estilo o `MT-safe'!\n"
+msgstr "¡Esta implementación no admite código de nuevo estilo o `MT-safe'!\n"
-#: sunrpc/rpc_main.c:1373
+#: sunrpc/rpc_main.c:1401
#, c-format
msgid "Cannot use netid flag with inetd flag!\n"
-msgstr "No se puede usar la opción netid con la opción inetd\n"
+msgstr "No se puede usar la opción netid con la opción inetd\n"
-#: sunrpc/rpc_main.c:1385
+#: sunrpc/rpc_main.c:1413
+#, c-format
msgid "Cannot use netid flag without TIRPC!\n"
-msgstr "No se puede usar la opción netid sin TIRPC\n"
+msgstr "No se puede usar la opción netid sin TIRPC\n"
-#: sunrpc/rpc_main.c:1392
+#: sunrpc/rpc_main.c:1420
+#, c-format
msgid "Cannot use table flags with newstyle!\n"
msgstr "No se pueden usar las opciones de la tabla con el nuevo estilo\n"
-#: sunrpc/rpc_main.c:1411
+#: sunrpc/rpc_main.c:1439
#, c-format
msgid "\"infile\" is required for template generation flags.\n"
msgstr ""
-"se necesita un \"fichero_de_entrada\" para las opciones de generación\n"
+"se necesita un \"fichero_de_entrada\" para las opciones de generación\n"
"de plantillas\n"
-#: sunrpc/rpc_main.c:1416
+#: sunrpc/rpc_main.c:1444
#, c-format
msgid "Cannot have more than one file generation flag!\n"
-msgstr "No se puede tener más de una opción de generación de fichero\n"
+msgstr "No se puede tener más de una opción de generación de fichero\n"
-#: sunrpc/rpc_main.c:1425
+#: sunrpc/rpc_main.c:1453
#, c-format
msgid "usage: %s infile\n"
msgstr "modo de empleo: %s fichero_de_entrada\n"
-# Este mensaje tal vez habría que cortarlo por algún lado. sv
-#: sunrpc/rpc_main.c:1426
+# Este mensaje tal vez habría que cortarlo por algún lado. sv
+#: sunrpc/rpc_main.c:1454
#, c-format
msgid "\t%s [-abkCLNTM][-Dname[=value]] [-i size] [-I [-K seconds]] [-Y path] infile\n"
-msgstr "\t%s [-abkCLNTM][-Dnombre[=valor]] [-i tamaño] [-I [-K segundos]] [-Y camino] fichero_de_entrada\n"
+msgstr "\t%s [-abkCLNTM][-Dnombre[=valor]] [-i tamaño] [-I [-K segundos]] [-Y camino] fichero_de_entrada\n"
-# Y este también. sv
-#: sunrpc/rpc_main.c:1428
+# Y este también. sv
+#: sunrpc/rpc_main.c:1456
#, c-format
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 fichero_de_salida] [fichero_de_entrada]\n"
-#: sunrpc/rpc_main.c:1430
+#: sunrpc/rpc_main.c:1458
#, c-format
msgid "\t%s [-s nettype]* [-o outfile] [infile]\n"
msgstr "\t%s [-s tipored]* [-o fichero_de_salida] [fichero_de_entrada]\n"
-#: sunrpc/rpc_main.c:1431
+#: sunrpc/rpc_main.c:1459
#, c-format
msgid "\t%s [-n netid]* [-o outfile] [infile]\n"
msgstr "\t%s [-n netid]* [-o fichero_de_salida] [fichero_de_entrada]\n"
-#: sunrpc/rpc_scan.c:116
+#: sunrpc/rpc_main.c:1467
+#, c-format
+msgid "options:\n"
+msgstr "opciones:\n"
+
+#: sunrpc/rpc_main.c:1468
+#, c-format
+msgid "-a\t\tgenerate all files, including samples\n"
+msgstr "-a\t\tgenera todos los ficheros, incluyendo las muestras\n"
+
+#: sunrpc/rpc_main.c:1469
+#, c-format
+msgid "-b\t\tbackward compatibility mode (generates code for SunOS 4.1)\n"
+msgstr "-b\t\tmodo de compatibilidad hacia atrás (genera código para SunOS 4.1)\n"
+
+#: sunrpc/rpc_main.c:1470
+#, c-format
+msgid "-c\t\tgenerate XDR routines\n"
+msgstr "-c\t\tgenera rutinas XDR\n"
+
+#: sunrpc/rpc_main.c:1471
+#, c-format
+msgid "-C\t\tANSI C mode\n"
+msgstr "-C\t\tmodo ANSI C\n"
+
+#: sunrpc/rpc_main.c:1472
+#, c-format
+msgid "-Dname[=value]\tdefine a symbol (same as #define)\n"
+msgstr "-Dnombre[=valor]\tdefine un símbolo (igual que #define)\n"
+
+#: sunrpc/rpc_main.c:1473
+#, c-format
+msgid "-h\t\tgenerate header file\n"
+msgstr "-h\t\tgenera un fichero de cabecera\n"
+
+#: sunrpc/rpc_main.c:1474
+#, c-format
+msgid "-i size\t\tsize at which to start generating inline code\n"
+msgstr "-i tamaño\t\ttamaño en el que comienza a generar código `inline'\n"
+
+#: sunrpc/rpc_main.c:1475
+#, c-format
+msgid "-I\t\tgenerate code for inetd support in server (for SunOS 4.1)\n"
+msgstr "-I\t\tgenera código para soporte de inetd en el servidor (para SunOS 4.1)\n"
+
+# FIXME: Tendría que ser después de "segundos" segundos de inactividad
+#: sunrpc/rpc_main.c:1476
+#, c-format
+msgid "-K seconds\tserver exits after K seconds of inactivity\n"
+msgstr "-K segundos\tel servidor termina después de K segundos de inactividad\n"
+
+# Se admiten sugerencias para "stubs"
+#: sunrpc/rpc_main.c:1477
+#, c-format
+msgid "-l\t\tgenerate client side stubs\n"
+msgstr "-l\t\tgenera `stubs' para el lado del cliente\n"
+
+#: sunrpc/rpc_main.c:1478
+#, c-format
+msgid "-L\t\tserver errors will be printed to syslog\n"
+msgstr "-L\t\tlos errores del servidor se escribirán en syslog\n"
+
+#: sunrpc/rpc_main.c:1479
+#, c-format
+msgid "-m\t\tgenerate server side stubs\n"
+msgstr "-m\t\tgenera `stubs' para el lado del servidor\n"
+
+#: sunrpc/rpc_main.c:1480
+#, c-format
+msgid "-M\t\tgenerate MT-safe code\n"
+msgstr "-M\t\tgenera código multi-hilo seguro\n"
+
+#: sunrpc/rpc_main.c:1481
+#, c-format
+msgid "-n netid\tgenerate server code that supports named netid\n"
+msgstr "-n netid\tgenera código servidor que soporta netid nombrado\n"
+
+#: sunrpc/rpc_main.c:1482
+#, c-format
+msgid "-N\t\tsupports multiple arguments and call-by-value\n"
+msgstr "-N\t\tsoporta varios argumentos y llamada por valor\n"
+
+#: sunrpc/rpc_main.c:1483
+#, c-format
+msgid "-o outfile\tname of the output file\n"
+msgstr "-o fichero_de_salida\tnombre del fichero de salida\n"
+
+#: sunrpc/rpc_main.c:1484
+#, c-format
+msgid "-s nettype\tgenerate server code that supports named nettype\n"
+msgstr "-s nettype\tgenera código servidor que soporta nettype nombrado\n"
+
+#: sunrpc/rpc_main.c:1485
+#, c-format
+msgid "-Sc\t\tgenerate sample client code that uses remote procedures\n"
+msgstr "-Sc\t\tgenera código cliente de muestra que usa procedimientos remotos\n"
+
+#: sunrpc/rpc_main.c:1486
+#, c-format
+msgid "-Ss\t\tgenerate sample server code that defines remote procedures\n"
+msgstr "-Ss\t\tgenera código servidor de muestra que define procedimientos remotos\n"
+
+#: sunrpc/rpc_main.c:1487
+#, c-format
+msgid "-Sm \t\tgenerate makefile template \n"
+msgstr "-Sm \t\tgenera una plantilla de makefile\n"
+
+#: sunrpc/rpc_main.c:1488
+#, c-format
+msgid "-t\t\tgenerate RPC dispatch table\n"
+msgstr "-t\t\tgenera tabla de ejecución RPC\n"
+
+#: sunrpc/rpc_main.c:1489
+#, c-format
+msgid "-T\t\tgenerate code to support RPC dispatch tables\n"
+msgstr "-T\t\tgenera código para soportar tablas de ejecución RPC\n"
+
+#: sunrpc/rpc_main.c:1490
+#, c-format
+msgid "-Y path\t\tdirectory name to find C preprocessor (cpp)\n"
+msgstr "-Y ruta\t\tnombre del directorio donde encontrar el preprocesador de C (cpp)\n"
+
+#: sunrpc/rpc_scan.c:112
msgid "constant or identifier expected"
msgstr "se esperaba una constante o un identificador"
-#: sunrpc/rpc_scan.c:312
+#: sunrpc/rpc_scan.c:308
msgid "illegal character in file: "
-msgstr "carácter no válido en el fichero: "
+msgstr "carácter no válido en el fichero: "
-#: sunrpc/rpc_scan.c:351 sunrpc/rpc_scan.c:377
+#: sunrpc/rpc_scan.c:347 sunrpc/rpc_scan.c:373
msgid "unterminated string constant"
msgstr "constante de caracteres sin terminar"
-#: sunrpc/rpc_scan.c:383
+#: sunrpc/rpc_scan.c:379
msgid "empty char string"
-msgstr "cadena de caracteres vacía"
+msgstr "cadena de caracteres vacía"
-#: sunrpc/rpc_scan.c:525 sunrpc/rpc_scan.c:535
+#: sunrpc/rpc_scan.c:521 sunrpc/rpc_scan.c:531
msgid "preprocessor error"
msgstr "error del preprocesador"
-#: sunrpc/rpcinfo.c:237 sunrpc/rpcinfo.c:383
+#: sunrpc/rpcinfo.c:246 sunrpc/rpcinfo.c:392
#, c-format
msgid "program %lu is not available\n"
-msgstr "el programa %lu no está disponible\n"
+msgstr "el programa %lu no está disponible\n"
-#: 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
+#: sunrpc/rpcinfo.c:273 sunrpc/rpcinfo.c:319 sunrpc/rpcinfo.c:342
+#: sunrpc/rpcinfo.c:416 sunrpc/rpcinfo.c:462 sunrpc/rpcinfo.c:485
+#: sunrpc/rpcinfo.c:519
#, c-format
msgid "program %lu version %lu is not available\n"
-msgstr "el programa %lu versión %lu no está disponible\n"
+msgstr "el programa %lu versión %lu no está disponible\n"
-#: sunrpc/rpcinfo.c:515
+#: sunrpc/rpcinfo.c:524
#, c-format
msgid "program %lu version %lu ready and waiting\n"
-msgstr "el programa %lu versión %lu está listo y a la espera\n"
+msgstr "el programa %lu versión %lu está listo y a la espera\n"
-#: sunrpc/rpcinfo.c:556 sunrpc/rpcinfo.c:563
+#: sunrpc/rpcinfo.c:565 sunrpc/rpcinfo.c:572
msgid "rpcinfo: can't contact portmapper"
msgstr "rpcinfo: no se puede comunicar con el asignador de puertos"
-# No me gusta "programa rpc". El rpc debería sobrar por el contexto. sv
-# A ver qué te parece esto em+
-# Igual de raro: Te repito la frase de César: "No hay que explicar
-# la terminología dentro de su propio contexto".
-# Con lo fácil que es poner:
-# "No se ha registrado ningún programa remoto.\n" sv+
+# No me gusta "programa rpc". El rpc debería sobrar por el contexto. sv
+# A ver qué te parece esto em+
+# Igual de raro: Te repito la frase de César: "No hay que explicar
+# la terminología dentro de su propio contexto".
+# Con lo fácil que es poner:
+# "No se ha registrado ningún programa remoto.\n" sv+
#
# Demasiado complejo.
-# Antes decía:
-# No existe ningún procedimiento rpc registrado en la máquina remota.
+# Antes decía:
+# No existe ningún procedimiento rpc registrado en la máquina remota.
# Lo cambio. sv
-#: sunrpc/rpcinfo.c:570
+#: sunrpc/rpcinfo.c:579
msgid "No remote programs registered.\n"
-msgstr "No hay ningún programa remoto registrado.\n"
+msgstr "No hay ningún programa remoto registrado.\n"
-#: sunrpc/rpcinfo.c:574
+#: sunrpc/rpcinfo.c:583
msgid " program vers proto port\n"
msgstr " programa vers proto puerto\n"
# FUZZY. sv
-# Sugerencia: Borrar "señal". sv
+# Sugerencia: Borrar "señal". sv
# Sugerencia: Asegurarse de que a lo que se refiere es femenino. sv
-# Según los antiguos fuentes esto era una señal ( lo comprobé entonces )
-# de todas maneras queda pendiente de revisar con la versión alemana
+# Según los antiguos fuentes esto era una señal ( lo comprobé entonces )
+# de todas maneras queda pendiente de revisar con la versión alemana
# no quites el fuzzy em+
-#: sunrpc/rpcinfo.c:613
+#: sunrpc/rpcinfo.c:622
msgid "(unknown)"
-msgstr "(señal desconocida)"
+msgstr "(señal desconocida)"
-#: sunrpc/rpcinfo.c:637
+#: sunrpc/rpcinfo.c:646
#, c-format
msgid "rpcinfo: broadcast failed: %s\n"
-msgstr "rpcinfo: el `broadcast' no tuvo éxito: %s\n"
+msgstr "rpcinfo: el `broadcast' no tuvo éxito: %s\n"
-#: sunrpc/rpcinfo.c:658
+#: sunrpc/rpcinfo.c:667
msgid "Sorry. You are not root\n"
msgstr "Lo siento. Usted no es root\n"
-# FUZZY. Se podría añadir rpcinfo: al principio. sv
+# FUZZY. Se podría añadir rpcinfo: al principio. sv
# Estoy pensando en poner 'dar de baja' en vez de eso em+
-#: sunrpc/rpcinfo.c:665
+#: sunrpc/rpcinfo.c:674
#, c-format
msgid "rpcinfo: Could not delete registration for prog %s version %s\n"
-msgstr "rpcinfo: No se pudo borrar el registro para el programa %s versión %s\n"
+msgstr "rpcinfo: No se pudo borrar el registro para el programa %s versión %s\n"
# Sugerencia: numprogr -> numprog. sv
-# Sugerencia: numpuerto -> númpuerto. sv
-# Sugerencia: numprog -> númprog. sv
+# Sugerencia: numpuerto -> númpuerto. sv
+# Sugerencia: numprog -> númprog. sv
# OK, lo he cambiado en todo
-#: sunrpc/rpcinfo.c:674
+#: sunrpc/rpcinfo.c:683
msgid "Usage: rpcinfo [ -n portnum ] -u host prognum [ versnum ]\n"
-msgstr "Modo de empleo: rpcinfo [ -n númpuerto ] -u host progrnúm [ numversión ]\n"
+msgstr "Modo de empleo: rpcinfo [ -n númpuerto ] -u host progrnúm [ numversión ]\n"
-#: sunrpc/rpcinfo.c:676
+#: sunrpc/rpcinfo.c:685
msgid " rpcinfo [ -n portnum ] -t host prognum [ versnum ]\n"
-msgstr " rpcinfo [ -n númpuerto ] -t host númprog [ númvers ]\n"
+msgstr " rpcinfo [ -n númpuerto ] -t host númprog [ númvers ]\n"
-#: sunrpc/rpcinfo.c:678
+#: sunrpc/rpcinfo.c:687
msgid " rpcinfo -p [ host ]\n"
msgstr " rpcinfo -p [ host ]\n"
-#: sunrpc/rpcinfo.c:679
+#: sunrpc/rpcinfo.c:688
msgid " rpcinfo -b prognum versnum\n"
-msgstr " rpcinfo -b númprog númvers\n"
+msgstr " rpcinfo -b númprog númvers\n"
-#: sunrpc/rpcinfo.c:680
+#: sunrpc/rpcinfo.c:689
msgid " rpcinfo -d prognum versnum\n"
-msgstr " rpcinfo -d númprog númvers\n"
+msgstr " rpcinfo -d númprog númvers\n"
-#: sunrpc/rpcinfo.c:695
+#: sunrpc/rpcinfo.c:714
#, c-format
msgid "rpcinfo: %s is unknown service\n"
msgstr "rpcinfo: el servicio `%s' es desconocido\n"
-#: sunrpc/rpcinfo.c:732
+#: sunrpc/rpcinfo.c:751
#, c-format
msgid "rpcinfo: %s is unknown host\n"
msgstr "rpcinfo: el `host' %s es desconocido\n"
-#: sunrpc/svc_run.c:76
+#: sunrpc/svc_run.c:71
+msgid "svc_run: - out of memory"
+msgstr "svc_run: - memoria agotada"
+
+#: sunrpc/svc_run.c:91
msgid "svc_run: - poll failed"
-msgstr "svc_run: - poll falló"
+msgstr "svc_run: - poll falló"
-#: sunrpc/svc_simple.c:87
+#: sunrpc/svc_simple.c:81
#, c-format
msgid "can't reassign procedure number %ld\n"
-msgstr "no se puede reasignar el número de procedimiento %ld\n"
+msgstr "no se puede reasignar el número de procedimiento %ld\n"
-#: sunrpc/svc_simple.c:96
+#: sunrpc/svc_simple.c:91
msgid "couldn't create an rpc server\n"
msgstr "no se pudo crear un servidor rpc\n"
-#: sunrpc/svc_simple.c:104
+#: sunrpc/svc_simple.c:99
#, c-format
msgid "couldn't register prog %ld vers %ld\n"
-msgstr "no se pudo registrar el programa %ld versión %ld\n"
+msgstr "no se pudo registrar el programa %ld versión %ld\n"
-#: sunrpc/svc_simple.c:111
+#: sunrpc/svc_simple.c:107
msgid "registerrpc: out of memory\n"
msgstr "registerrpc: memoria agotada\n"
-#: sunrpc/svc_simple.c:175
+#: sunrpc/svc_simple.c:168
#, c-format
msgid "trouble replying to prog %d\n"
msgstr "dificultades para responder al programa %d\n"
-#: sunrpc/svc_simple.c:183
+#: sunrpc/svc_simple.c:177
#, c-format
msgid "never registered prog %d\n"
msgstr "el programa %d no fue registrado nunca\n"
-#: sunrpc/svc_tcp.c:155
+#: sunrpc/svc_tcp.c:149
msgid "svc_tcp.c - tcp socket creation problem"
msgstr "svc_tcp.c - problema al crear el `socket' tcp"
-#: sunrpc/svc_tcp.c:170
+#: sunrpc/svc_tcp.c:164
msgid "svc_tcp.c - cannot getsockname or listen"
-msgstr "svc_tcp.c - fallo en la ejecución de `getsockname()' o `listen()'"
-
-#: sunrpc/svc_tcp.c:181 sunrpc/svc_tcp.c:184
-msgid "svctcp_create: out of memory\n"
-msgstr "svctcp_create: memoria agotada\n"
-
-#: sunrpc/svc_tcp.c:225 sunrpc/svc_tcp.c:228
-msgid "svc_tcp: makefd_xprt: out of memory\n"
-msgstr "svc_tcp: makefd_xprt: memoria agotada\n"
+msgstr "svc_tcp.c - fallo en la ejecución de `getsockname()' o `listen()'"
-#: sunrpc/svc_udp.c:128
+#: sunrpc/svc_udp.c:122
msgid "svcudp_create: socket creation problem"
msgstr "svcudp_create: problemas para crear el `socket'"
-#: sunrpc/svc_udp.c:142
+#: sunrpc/svc_udp.c:136
msgid "svcudp_create - cannot getsockname"
-msgstr "svcudp_create - fallo en la ejecución de `getsockname'"
+msgstr "svcudp_create - fallo en la ejecución de `getsockname'"
-#: sunrpc/svc_udp.c:154 sunrpc/svc_udp.c:157
-msgid "svcudp_create: out of memory\n"
-msgstr "svcudp_create: memoria agotada\n"
-
-#: sunrpc/svc_udp.c:182 sunrpc/svc_udp.c:185
+#: sunrpc/svc_udp.c:168
msgid "svcudp_create: xp_pad is too small for IP_PKTINFO\n"
-msgstr "svcudp_create: xp_pad es demasiado pequeño para IP_PKTINFO\n"
+msgstr "svcudp_create: xp_pad es demasiado pequeño para IP_PKTINFO\n"
-#: sunrpc/svc_udp.c:493
+#: sunrpc/svc_udp.c:476
msgid "enablecache: cache already enabled"
-msgstr "enablecache: el caché ya estaba activado"
+msgstr "enablecache: el caché ya estaba activado"
-# Se consultó a la lista sobre si era "la caché" o "el caché"
-# Parece ser indistinto, así que unas veces puede ser "la" y otras "el".
+# Se consultó a la lista sobre si era "la caché" o "el caché"
+# Parece ser indistinto, así que unas veces puede ser "la" y otras "el".
# dependiendo del caso (lo que mejor suene).
#
-#: sunrpc/svc_udp.c:499
+#: sunrpc/svc_udp.c:482
msgid "enablecache: could not allocate cache"
-msgstr "enablecache: no se pudo crear espacio para el caché"
+msgstr "enablecache: no se pudo crear espacio para el caché"
-#: sunrpc/svc_udp.c:507
+#: sunrpc/svc_udp.c:491
msgid "enablecache: could not allocate cache data"
-msgstr "enablecache: no se pudo crear espacio para los datos del caché"
+msgstr "enablecache: no se pudo crear espacio para los datos del caché"
-#: sunrpc/svc_udp.c:514
+#: sunrpc/svc_udp.c:499
msgid "enablecache: could not allocate cache fifo"
-msgstr "enablecache: no se pudo crear espacio para la pila del caché"
+msgstr "enablecache: no se pudo crear espacio para la pila del caché"
-#: sunrpc/svc_udp.c:550
+#: sunrpc/svc_udp.c:535
msgid "cache_set: victim not found"
-msgstr "cache_set: no se encontró el objetivo"
+msgstr "cache_set: no se encontró el objetivo"
-#: sunrpc/svc_udp.c:561
+#: sunrpc/svc_udp.c:546
msgid "cache_set: victim alloc failed"
-msgstr "cache_set: falló la asignación de espacio para el objetivo"
+msgstr "cache_set: falló la asignación de espacio para el objetivo"
-#: sunrpc/svc_udp.c:567
+#: sunrpc/svc_udp.c:553
msgid "cache_set: could not allocate new rpc_buffer"
-msgstr "cache_set: no se pudo asignar espacio para un nuevo búfer rpc"
+msgstr "cache_set: no se pudo asignar espacio para un nuevo búfer rpc"
-#: sunrpc/svc_unix.c:150
+#: sunrpc/svc_unix.c:148
msgid "svc_unix.c - AF_UNIX socket creation problem"
msgstr "svc_unix.c - problema al crear el `socket' AF_UNIX"
-#: sunrpc/svc_unix.c:166
+#: sunrpc/svc_unix.c:164
msgid "svc_unix.c - cannot getsockname or listen"
-msgstr "svc_unix.c - fallo en la ejecución de `getsockname()' o `listen()'"
-
-#: sunrpc/svc_unix.c:178 sunrpc/svc_unix.c:181
-msgid "svcunix_create: out of memory\n"
-msgstr "svcunix_create: memoria agotada\n"
+msgstr "svc_unix.c - fallo en la ejecución de `getsockname()' o `listen()'"
-#: sunrpc/svc_unix.c:222 sunrpc/svc_unix.c:225
-msgid "svc_unix: makefd_xprt: out of memory\n"
-msgstr "svc_unix: makefd_xprt: memoria agotada\n"
+# Habrá que mirar esto
+# Mirado, efectivamente esto es una señal que habrá
+# que dejarla con su nombre original ( entre paréntesis )
+#: sysdeps/generic/siglist.h:29 sysdeps/unix/siglist.c:27
+msgid "Hangup"
+msgstr "Colgar (hangup)"
-#: sunrpc/xdr.c:570 sunrpc/xdr.c:573
-msgid "xdr_bytes: out of memory\n"
-msgstr "xdr_bytes: memoria agotada\n"
+#: sysdeps/generic/siglist.h:30 sysdeps/unix/siglist.c:28
+msgid "Interrupt"
+msgstr "Interrupción"
-#: sunrpc/xdr.c:728 sunrpc/xdr.c:731
-msgid "xdr_string: out of memory\n"
-msgstr "xdr_string: memoria agotada\n"
+# Podría ser también "Abandonar" sv
+#: sysdeps/generic/siglist.h:31 sysdeps/unix/siglist.c:29
+msgid "Quit"
+msgstr "Abandona"
-#: sunrpc/xdr_array.c:111 sunrpc/xdr_array.c:114
-msgid "xdr_array: out of memory\n"
-msgstr "xdr_array: memoria agotada\n"
+# Se trata de una instrucción ilegal en el juego de instrucciones del 486
+# que provoca una "excepción".
+#: sysdeps/generic/siglist.h:32 sysdeps/unix/siglist.c:30
+msgid "Illegal instruction"
+msgstr "Instrucción ilegal"
-#: sunrpc/xdr_rec.c:158 sunrpc/xdr_rec.c:161
-msgid "xdrrec_create: out of memory\n"
-msgstr "xdrrec_create: memoria agotada\n"
+#: sysdeps/generic/siglist.h:33 sysdeps/unix/siglist.c:31
+msgid "Trace/breakpoint trap"
+msgstr "`trap' para punto de parada/seguimiento"
-#: sunrpc/xdr_ref.c:88 sunrpc/xdr_ref.c:91
-msgid "xdr_reference: out of memory\n"
-msgstr "xdr_reference: memoria agotada\n"
+#: sysdeps/generic/siglist.h:34
+msgid "Aborted"
+msgstr "Abortado"
-#: nis/nis_callback.c:189
-msgid "unable to free arguments"
-msgstr "no se pueden liberar los argumentos"
+#: sysdeps/generic/siglist.h:35 sysdeps/unix/siglist.c:34
+msgid "Floating point exception"
+msgstr "Excepción de coma flotante"
-#: nis/nis_error.c:30
-msgid "Probable success"
-msgstr "Éxito probable"
+# A quien se le ocurra `matar' un proceso, que especifique con qué señal.
+# En todo caso ` Terminado ( KILL ) ' sería apropiado. Ver fuentes
+#: sysdeps/generic/siglist.h:36 sysdeps/unix/siglist.c:35
+msgid "Killed"
+msgstr "Terminado (killed)"
-#: nis/nis_error.c:31
-msgid "Not found"
-msgstr "No se ha encontrado"
+#: sysdeps/generic/siglist.h:37 sysdeps/unix/siglist.c:36
+msgid "Bus error"
+msgstr "Error del bus"
-#: nis/nis_error.c:32
-msgid "Probably not found"
-msgstr "Probablemente no se encontró"
+# ¿De "segmento", o de "segmentación"? sv
+# De segmentación me parece incorrecto. La memoria ya estaba
+# segmentada, y se intentó acceder a un segmento
+# que no pertenece al programa. em
+# ¿Entonces dirías que está mal el original inglés? sv
+# No, en inglés siempre se ha dicho así. Siempre he traducido
+# Segmentation fault como violación de segmento. Consultémoslo,
+# es un mensaje que se ve demasiado a menudo em
+#: sysdeps/generic/siglist.h:38 sysdeps/unix/siglist.c:37
+msgid "Segmentation fault"
+msgstr "Violación de segmento"
-#: nis/nis_error.c:33
-msgid "Cache expired"
-msgstr "El caché ha expirado"
+# Vi traducido pipe como tubo en un libro sobre pc/dos, y me horrorizó
+# menos mal que venía siempre la palabra `pipe' al lado entrecomillada
+#
+# Este mensaje sale ahora cada vez que pulsas "q" cuando haces por ejemplo
+# cat loquesea | less
+# Sale *muy a menudo* y estoy harto, así que lo borro que ya está bien. sv
+#. 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 "Tubería rota"
-#: nis/nis_error.c:34
-msgid "NIS+ servers unreachable"
-msgstr "No se puede acceder a los servidores NIS+"
+#: sysdeps/generic/siglist.h:40 sysdeps/unix/siglist.c:40
+msgid "Alarm clock"
+msgstr "Temporizador"
-#: nis/nis_error.c:35
-msgid "Unknown object"
-msgstr "Objeto desconocido"
+#: sysdeps/generic/siglist.h:41 sysdeps/unix/siglist.c:41
+msgid "Terminated"
+msgstr "Terminado"
-#: nis/nis_error.c:36
-msgid "Server busy, try again"
-msgstr "El servidor está ocupado, inténtelo de nuevo"
+# ?? sigo pensando en una traducción para condición
+#: sysdeps/generic/siglist.h:42 sysdeps/unix/siglist.c:42
+msgid "Urgent I/O condition"
+msgstr "Condición urgente de E/S"
-#: nis/nis_error.c:37
-msgid "Generic system error"
-msgstr "Error del sistema genérico"
+#: sysdeps/generic/siglist.h:43 sysdeps/unix/siglist.c:43
+msgid "Stopped (signal)"
+msgstr "Parado (por una señal)"
-#: nis/nis_error.c:38
-msgid "First/next chain broken"
-msgstr "Cadena primero/siguiente rota"
+#: sysdeps/generic/siglist.h:44 sysdeps/unix/siglist.c:44
+msgid "Stopped"
+msgstr "Parado"
-#: nis/nis_error.c:41
-msgid "Name not served by this server"
-msgstr "Nombre no servido por este servidor"
+#: sysdeps/generic/siglist.h:45 sysdeps/unix/siglist.c:45
+msgid "Continued"
+msgstr "Continúa"
-#: nis/nis_error.c:42
-msgid "Server out of memory"
-msgstr "Memoria agotada en el servidor"
+#: sysdeps/generic/siglist.h:46 sysdeps/unix/siglist.c:46
+msgid "Child exited"
+msgstr "El proceso hijo terminó"
-#: nis/nis_error.c:43
-msgid "Object with same name exists"
-msgstr "Existe un objeto con el mismo nombre"
+# Perdonad que sea tan largo, pero es algo que nunca está de más
+# Creo que mejora al original ;)
+#: sysdeps/generic/siglist.h:47 sysdeps/unix/siglist.c:47
+msgid "Stopped (tty input)"
+msgstr "Parado (requiere entrada de terminal)"
-#: nis/nis_error.c:44
-msgid "Not master server for this domain"
-msgstr "No existe un servidor maestro para este dominio"
+# Perdonad que sea tan largo, pero es algo que nunca está de más
+# Creo que mejora al original ;)
+#: sysdeps/generic/siglist.h:48 sysdeps/unix/siglist.c:48
+msgid "Stopped (tty output)"
+msgstr "Parado (requiere salida por terminal)"
-#: nis/nis_error.c:45
-msgid "Invalid object for operation"
-msgstr "Objeto inválido para la operación"
+#: sysdeps/generic/siglist.h:49 sysdeps/unix/siglist.c:49
+msgid "I/O possible"
+msgstr "Operación de E/S permitida"
-#: nis/nis_error.c:46
-msgid "Malformed name, or illegal name"
-msgstr "Nombre mal escrito, o nombre ilegal"
+#: sysdeps/generic/siglist.h:50 sysdeps/unix/siglist.c:50
+msgid "CPU time limit exceeded"
+msgstr "Rebasado el límite de tiempo de CPU"
-#: nis/nis_error.c:47
-msgid "Unable to create callback"
-msgstr "No se puede crear la llamada de regreso"
+#: sysdeps/generic/siglist.h:51 sysdeps/unix/siglist.c:51
+msgid "File size limit exceeded"
+msgstr "Superado el límite de tamaño de fichero"
-# ¿callback?
-#: nis/nis_error.c:48
-msgid "Results sent to callback proc"
-msgstr "Resultados enviados al proceso de `callback'"
+#: sysdeps/generic/siglist.h:52 sysdeps/unix/siglist.c:52
+msgid "Virtual timer expired"
+msgstr "El temporizador virtual llegó al final"
-#: nis/nis_error.c:49
-msgid "Not found, no such name"
-msgstr "No se encontró, no existe ese nombre"
+# ¿No habría que traducir profile? sv
+# Miré los fuentes, y la última documentación de Glibc
+# No se me ocurre traducción para profile ( así se llamaba
+# en los viejos apple al disco duro de 5 Megas ) em
+# Pero esto no tiene nada que ver, ¿no?
+# "Profiling" es ejecutar un programa midiendo qué partes de él consumen
+# más tiempo. Creo recordar que esto tenía nombre en español, pero no
+# me acuerdo de cuál. sv
+# Gracias por la explicación, sé que era algo referente
+# al trace o debug de un programa. Miro a la alemana.
+#: sysdeps/generic/siglist.h:53 sysdeps/unix/siglist.c:53
+msgid "Profiling timer expired"
+msgstr "El tiempo de CPU expiró"
-#: nis/nis_error.c:50
-msgid "Name/entry isn't unique"
-msgstr "El par nombre/entrada no es único"
+#: sysdeps/generic/siglist.h:54 sysdeps/unix/siglist.c:54
+msgid "Window changed"
+msgstr "La ventana ha cambiado"
-# FIXME: ¿En qué se diferencia este del siguiente?
-#: nis/nis_error.c:51
-msgid "Modification failed"
-msgstr "Fallo en la modificación"
+#: sysdeps/generic/siglist.h:55 sysdeps/unix/siglist.c:56
+msgid "User defined signal 1"
+msgstr "Señal definida por el usuario 1"
-#: nis/nis_error.c:52
-msgid "Database for table does not exist"
-msgstr "No existe la base de datos para la tabla"
+#: sysdeps/generic/siglist.h:56 sysdeps/unix/siglist.c:57
+msgid "User defined signal 2"
+msgstr "Señal definida por el usuario 2"
-#: nis/nis_error.c:53
-msgid "Entry/table type mismatch"
-msgstr "Discordancia de tipo entrada/tabla"
+# ???, siempre lo he usado como trap, nunca encontramos la palabra
+# y es una señal estándar Unix, así que no creo conveniente traducirla
+#: sysdeps/generic/siglist.h:60 sysdeps/unix/siglist.c:33
+msgid "EMT trap"
+msgstr "`trap' de EMT"
-#: nis/nis_error.c:54
-msgid "Link points to illegal name"
-msgstr "En enlace apunta a un nombre ilegal"
+#: sysdeps/generic/siglist.h:63 sysdeps/unix/siglist.c:38
+msgid "Bad system call"
+msgstr "Llamada al sistema errónea"
-#: nis/nis_error.c:55
-msgid "Partial success"
-msgstr "Éxito parcial"
+#: sysdeps/generic/siglist.h:66
+msgid "Stack fault"
+msgstr "Fallo en la pila"
-#: nis/nis_error.c:56
-msgid "Too many attributes"
-msgstr "Demasiados atributos"
+#: sysdeps/generic/siglist.h:69
+msgid "Information request"
+msgstr "Petición de información"
-#: nis/nis_error.c:57
-msgid "Error in RPC subsystem"
-msgstr "Error en el subsistema RPC"
+#: sysdeps/generic/siglist.h:71
+msgid "Power failure"
+msgstr "Fallo de alimentación"
-#: nis/nis_error.c:58
-msgid "Missing or malformed attribute"
-msgstr "Falta un atributo o está mal escrito"
+#: sysdeps/generic/siglist.h:74 sysdeps/unix/siglist.c:55
+msgid "Resource lost"
+msgstr "Recurso perdido"
-#: nis/nis_error.c:59
-msgid "Named object is not searchable"
-msgstr "El objeto nombrado no es localizable"
+#. 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 "Operación no permitida"
-# ¿callback?
-#: nis/nis_error.c:60
-msgid "Error while talking to callback proc"
-msgstr "Error al hablar con el proceso de `callback'"
+# Sugerencia: No existe el proceso. sv
+# ¿Por qué?
+# Porque si "No such file or directory" se ha traducido por
+# "no existe el fichero o el directorio", está claro que si le dices un
+# proceso y te dice "no existe el proceso" se refiere al que
+# tú le has dicho y no a otro. sv
+#
+#. TRANS No process matches the specified process ID.
+#: sysdeps/gnu/errlist.c:45
+msgid "No such process"
+msgstr "No existe el proceso"
-#: nis/nis_error.c:61
-msgid "Non NIS+ namespace encountered"
-msgstr "Se ha encontrado un nombre de espacio que no es NIS+"
+#. 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 "Llamada al sistema interrumpida"
-#: nis/nis_error.c:62
-msgid "Illegal object type for operation"
-msgstr "Objeto ilegal para la operación"
+#. TRANS Input/output error; usually used for physical read or write errors.
+#: sysdeps/gnu/errlist.c:69
+msgid "Input/output error"
+msgstr "Error de entrada/salida"
-# ¿pasado? sv
-#: nis/nis_error.c:63
-msgid "Passed object is not the same object on server"
-msgstr "El objeto pasado no es el mismo objeto que hay en el servidor"
+#. 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 "No existe el dispositivo o la dirección"
-#: nis/nis_error.c:64
-msgid "Modify operation failed"
-msgstr "La operación de modificación ha fallado"
+#. 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 "La lista de argumentos es demasiado larga"
-#: nis/nis_error.c:65
-msgid "Query illegal for named table"
-msgstr "Consulta ilegal para la tabla nombrada"
+#. 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 "Formato de ejecutable incorrecto"
-#: nis/nis_error.c:66
-msgid "Attempt to remove a non-empty table"
-msgstr "Se intentó eliminar una tabla no vacía"
+#. 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 "Descriptor de fichero erróneo"
-#: nis/nis_error.c:67
-msgid "Error in accessing NIS+ cold start file. Is NIS+ installed?"
-msgstr "Error al acceder al fichero de comienzo frio de NIS+. ¿Está NIS+ instalado?"
+#. 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 "No hay ningún proceso hijo"
-#: nis/nis_error.c:68
-msgid "Full resync required for directory"
-msgstr "Se necesita una resincronización completa del directorio"
+# ¿Sugerencias? em
+# ¿Evitado? sv
+# Esperemos a ver la opinión de otro. em
+#
+# ¡Ya la tienen! Creo que hay que traducir (o al menos preservar) deadlock.
+# No diría "el recurso" porque aquí "resource deadlock" significa
+# "deadlock de recursos" y un deadlock siempre se trata de más de un
+# recurso. -jtobey
+#
+# Estupendo. sv
+#
+#. 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 "Se ha evitado un bloqueo de recursos"
-#: nis/nis_error.c:69
-msgid "NIS+ operation failed"
-msgstr "Falló la operación de NIS+"
+#. 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 "No se pudo asignar memoria"
-#: nis/nis_error.c:70
-msgid "NIS+ service is unavailable or not installed"
-msgstr "El servicio NIS+ no está disponible o no está instalado"
+#. 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 "Dirección incorrecta"
-# ¿¿Qué demonios es esto?? sv
-#: nis/nis_error.c:71
-msgid "Yes, 42 is the meaning of life"
-msgstr "Sí, 42 es el significado de la vida"
+#. 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 "Se requiere un dispositivo de bloques"
-#: nis/nis_error.c:72
-msgid "Unable to authenticate NIS+ server"
-msgstr "No se puede autentificar el servidor NIS+"
+#. 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 "Dispositivo o recurso ocupado"
-#: nis/nis_error.c:73
-msgid "Unable to authenticate NIS+ client"
-msgstr "No se puede autentificar el cliente NIS+"
+#. 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 "El fichero ya existe"
-#: nis/nis_error.c:74
-msgid "No file space on server"
-msgstr "No queda espacio de ficheros en el servidor"
+# ??? ver esto.
+#. 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 "Enlace cruzado entre dispositivos no permitido"
-#: nis/nis_error.c:75
-msgid "Unable to create process on server"
-msgstr "No se puede crear el proceso en el servidor"
+#. 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 "No existe el dispositivo"
-#: nis/nis_error.c:76
-msgid "Master server busy, full dump rescheduled."
-msgstr "El servidor maestro está ocupado, el volcado completo se postpone."
+#. 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 "No es un directorio"
-#: nis/nis_local_names.c:126
-#, c-format
-msgid "LOCAL entry for UID %d in directory %s not unique\n"
-msgstr "La entrada LOCAL para el UID %d en el directorio %s no es única\n"
+#. 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 "Es un directorio"
-#: nis/nis_print.c:51
-msgid "UNKNOWN"
-msgstr "DESCONOCIDO"
+#. 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 "Argumento inválido"
-#: nis/nis_print.c:109
-msgid "BOGUS OBJECT\n"
-msgstr "OBJETO INVÁLIDO\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}.
+#: sysdeps/gnu/errlist.c:264
+msgid "Too many open files"
+msgstr "Demasiados ficheros abiertos"
-#: nis/nis_print.c:112
-msgid "NO OBJECT\n"
-msgstr "NO HAY NINGÚN OBJETO\n"
+#. 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 "Demasiados ficheros abiertos en el sistema"
-#: nis/nis_print.c:115
-msgid "DIRECTORY\n"
-msgstr "DIRECTORIO\n"
+#. 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 "Función ioctl no apropiada para el dispositivo"
-#: nis/nis_print.c:118
-msgid "GROUP\n"
-msgstr "GRUPO\n"
+#. 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 "El fichero de texto está ocupado"
-#: nis/nis_print.c:121
-msgid "TABLE\n"
-msgstr "TABLA\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 "Fichero demasiado grande"
-#: nis/nis_print.c:124
-msgid "ENTRY\n"
-msgstr "ENTRADA\n"
+#. 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 "No queda espacio en el dispositivo"
-#: nis/nis_print.c:127
-msgid "LINK\n"
-msgstr "ENLACE\n"
+# ¿"seek" no era "desplazamiento"? sv
+# Según el contexto no se puede saber a qué se refiere
+# cambio ... por no permitida em+
+# Suggestion: "Llamada a lseek() inválida" -jtobey
+# Sí, bueno, esto lo hemos traducido otras veces por desplazamiento, así
+# que lo cambio (antes era "búsqueda no permitida").
+# Como hay varias funciones de desplazamiento creo que es mejor
+# no decantarse por ninguna en particular. sv
+#. TRANS Invalid seek operation (such as on a pipe).
+#: sysdeps/gnu/errlist.c:326
+msgid "Illegal seek"
+msgstr "Desplazamiento ilegal"
-#: nis/nis_print.c:130
-msgid "PRIVATE\n"
-msgstr "PRIVADO\n"
+#. 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 "Sistema de ficheros de sólo lectura"
-#: nis/nis_print.c:133
-msgid "(Unknown object)\n"
-msgstr "(Objeto desconocido)\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}).
+#: sysdeps/gnu/errlist.c:346
+msgid "Too many links"
+msgstr "Demasiados enlaces"
-#: nis/nis_print.c:166
-#, c-format
-msgid "Name : `%s'\n"
-msgstr "Nombre : `%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.
+#: sysdeps/gnu/errlist.c:369
+msgid "Numerical argument out of domain"
+msgstr "Argumento numérico fuera del dominio de la función"
-#: nis/nis_print.c:167
-#, c-format
-msgid "Type : %s\n"
-msgstr "Tipo : %s\n"
+#. 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 "Resultado numérico fuera de rango"
-#: nis/nis_print.c:172
-msgid "Master Server :\n"
-msgstr "Servidor Maestro :\n"
+#. 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 "Recurso no disponible temporalmente"
-# ¿Replicate?
-#: nis/nis_print.c:174
-msgid "Replicate :\n"
-msgstr "Replicado :\n"
+#. 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 "La operación se bloquearía"
-#: nis/nis_print.c:175
-#, c-format
-msgid "\tName : %s\n"
-msgstr "\tNombre : %s\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}.
+#: sysdeps/gnu/errlist.c:445
+msgid "Operation now in progress"
+msgstr "Operación en curso"
-#: nis/nis_print.c:176
-msgid "\tPublic Key : "
-msgstr "\tClave Pública : "
+# Vale, pero muy poco más abajo has puesto "en curso", que me parece mejor. sv
+# Creo que prefiero dejar uno de cada. Se me ocurre si no cambiar el
+# de abajo también. em
+#. 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 "La operación ya se está llevando a cabo"
-#: nis/nis_print.c:180
-msgid "None.\n"
-msgstr "Ninguno.\n"
+#. 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 "Operación de `socket' en un `no-socket'"
-#: nis/nis_print.c:183
-#, c-format
-msgid "Diffie-Hellmann (%d bits)\n"
-msgstr "Diffie-Hellmann (%d bits)\n"
+#. 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 "Mensaje demasiado largo"
-#: nis/nis_print.c:188
-#, c-format
-msgid "RSA (%d bits)\n"
-msgstr "RSA (%d bits)\n"
+#. TRANS The socket type does not support the requested communications protocol.
+#: sysdeps/gnu/errlist.c:483
+msgid "Protocol wrong type for socket"
+msgstr "Tipo de protocolo incorrecto para el `socket'"
-# Véase "Investigación y Ciencia" sv
-#: nis/nis_print.c:191
-msgid "Kerberos.\n"
-msgstr "Cerbero.\n"
+#. 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 "Protocolo no disponible"
-#: nis/nis_print.c:194
-#, c-format
-msgid "Unknown (type = %d, bits = %d)\n"
-msgstr "Desconocido (tipo = %d, bits = %d)\n"
+#. 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 "Protocolo no soportado"
-#: nis/nis_print.c:205
-#, c-format
-msgid "\tUniversal addresses (%u)\n"
-msgstr "\tDirección universal (%u)\n"
+#. TRANS The socket type is not supported.
+#: sysdeps/gnu/errlist.c:513
+msgid "Socket type not supported"
+msgstr "Tipo de `socket' no soportado"
-#: nis/nis_print.c:227
-msgid "Time to live : "
-msgstr "Tiempo de vida : "
+#. 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 "La operación no está soportada"
-#: nis/nis_print.c:229
-msgid "Default Access rights :\n"
-msgstr "Derechos de acceso predeterminados :\n"
+#. TRANS The socket communications protocol family you requested is not supported.
+#: sysdeps/gnu/errlist.c:536
+msgid "Protocol family not supported"
+msgstr "Familia de protocolos no soportada"
-#: nis/nis_print.c:238
-#, c-format
-msgid "\tType : %s\n"
-msgstr "\tTipo : %s\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}.
+#: sysdeps/gnu/errlist.c:546
+msgid "Address family not supported by protocol"
+msgstr "Esta familia de direcciones no está soportada por el protocolo"
-#: nis/nis_print.c:239
-msgid "\tAccess rights: "
-msgstr "\tDerechos de acceso: "
+#. TRANS The requested socket address is already in use. @xref{Socket Addresses}.
+#: sysdeps/gnu/errlist.c:555
+msgid "Address already in use"
+msgstr "La dirección ya se está usando"
-#: nis/nis_print.c:252
-msgid "Group Flags :"
-msgstr "Opciones de Grupo :"
+#. 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 "No se puede asignar la dirección solicitada"
-#: nis/nis_print.c:255
-msgid ""
-"\n"
-"Group Members :\n"
-msgstr ""
-"\n"
-"Miembros del Grupo :\n"
+#. TRANS A socket operation failed because the network was down.
+#: sysdeps/gnu/errlist.c:575
+msgid "Network is down"
+msgstr "La red no está activa"
-#: nis/nis_print.c:266
-#, c-format
-msgid "Table Type : %s\n"
-msgstr "Tipo de Tabla : %s\n"
+# Este no me gusta. Preferiría poner "la red es inaccesible", o al menos
+# añadirle un "es": "Es imposible conectar con la red". sv
+# En muchos mensajes he puesto el 'Es' al principio, terminaremos hablando
+# como indios si no. em
+#
+# Mira un mensaje que he puesto más arriba a ver si estás de acuerdo con
+# mi definición de "indio". sv
+#
+# Después de que me haya salido este mensaje varias veces, lo cambio.
+# Antes decía "Es imposible conectar con la red", demasiado largo. sv
+#. 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 "La red es inaccesible"
-#: nis/nis_print.c:267
-#, c-format
-msgid "Number of Columns : %d\n"
-msgstr "Número de Columnas : %d\n"
+#. TRANS A network connection was reset because the remote host crashed.
+#: sysdeps/gnu/errlist.c:594
+msgid "Network dropped connection on reset"
+msgstr "La conexión de red se perdió al reinicializar"
-#: nis/nis_print.c:268
-#, c-format
-msgid "Character Separator : %c\n"
-msgstr "Separador de Caracteres : %c\n"
+#. TRANS A network connection was aborted locally.
+#: sysdeps/gnu/errlist.c:603
+msgid "Software caused connection abort"
+msgstr "El programa provocó el fin de la conexión"
-#: nis/nis_print.c:269
-#, c-format
-msgid "Search Path : %s\n"
-msgstr "Ruta de búsqueda : %s\n"
+# Se aceptan sugerencias alternativas para "peer"
+# ¿Qué tal "remote machine"? ;-)
+# Prefiero la traducción. -jtobey
+# La verdad es que no se me ocurre nada mejor, así que se queda así. sv
+#. 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 "Conexión reinicializada por la máquina remota"
-#: nis/nis_print.c:270
-msgid "Columns :\n"
-msgstr "Columnas :\n"
+# Memoria intermedia me parece una traducción óptima.
+# Desgraciadamente no tengo ningún diccionario de Castellano
+# Enrique, creo que en español existe "búfer", míralo si puedes. sv
+# ¿Buffer? memoria intermedia.
+# A ver qué dice Iñaky... sv
+#. 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 "No queda espacio para memoria intermedia"
-#: nis/nis_print.c:273
-#, c-format
-msgid "\t[%d]\tName : %s\n"
-msgstr "\t[%d]\tNombre : %s\n"
+#. 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 "El otro extremo ya está conectado"
-#: nis/nis_print.c:275
-msgid "\t\tAttributes : "
-msgstr "\t\tAtributos : "
+#. 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 "El otro extremo de la conexión no está conectado"
-#: nis/nis_print.c:277
-msgid "\t\tAccess Rights : "
-msgstr "\t\tDerechos de Acceso : "
+#. 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 "Se debe especificar la dirección de destino"
-#: nis/nis_print.c:286
-msgid "Linked Object Type : "
-msgstr "Tipo de objeto enlazado : "
+#. TRANS The socket has already been shut down.
+#: sysdeps/gnu/errlist.c:667
+msgid "Cannot send after transport endpoint shutdown"
+msgstr "No se puede enviar tras la destrucción del punto de destino"
-#: nis/nis_print.c:288
-#, c-format
-msgid "Linked to : %s\n"
-msgstr "Enlazado a : %s\n"
+# FUZZY
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:676
+msgid "Too many references: cannot splice"
+msgstr "Demasiadas referencias: no se pueden solapar"
-#: nis/nis_print.c:297
-#, c-format
-msgid "\tEntry data of type %s\n"
-msgstr "\tEntrada de tipo %s\n"
+#. 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 "Expiró el tiempo de conexión"
-#: nis/nis_print.c:300
-#, c-format
-msgid "\t[%u] - [%u bytes] "
-msgstr "\t[%u] - [%u bytes] "
+#. 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 "Conexión rehusada"
-#: nis/nis_print.c:303
-msgid "Encrypted data\n"
-msgstr "Datos cifrados\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.
+#: sysdeps/gnu/errlist.c:706
+msgid "Too many levels of symbolic links"
+msgstr "Demasiados niveles de enlaces simbólicos"
-#: nis/nis_print.c:305
-msgid "Binary data\n"
-msgstr "Datos binarios\n"
+#. 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 "Nombre de fichero demasiado largo"
-#: nis/nis_print.c:320
-#, c-format
-msgid "Object Name : %s\n"
-msgstr "Nombre del Objeto : %s\n"
+# La palabra "host" es delicada.
+# En spanglish algunos la traducen por "anfitrión".
+#
+# Enrique considera equívoca la propia palabra host.
+# [ A un huésped también se le llama "host" ].
+#
+# En este fichero .po he decidido ser cauto y de momento la dejaré sin
+# traducir. De acuerdo con nuestra costumbre, cuando una palabra no nos
+# atrevemos a traducirla la encerramos entre apóstrofos: `host'
+#
+#. TRANS The remote host for a requested network connection is down.
+#: sysdeps/gnu/errlist.c:726
+msgid "Host is down"
+msgstr "El `host' no está operativo"
-#: nis/nis_print.c:321
-#, c-format
-msgid "Directory : %s\n"
-msgstr "Directorio : %s\n"
+#. TRANS The remote host for a requested network connection is not reachable.
+#: sysdeps/gnu/errlist.c:735
+msgid "No route to host"
+msgstr "No existe ninguna ruta hasta el `host'"
-#: nis/nis_print.c:322
-#, c-format
-msgid "Owner : %s\n"
-msgstr "Propietario : %s\n"
+#. 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 "El directorio no está vacío"
-#: nis/nis_print.c:323
-#, c-format
-msgid "Group : %s\n"
-msgstr "Grupo : %s\n"
+#. 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 "Demasiados procesos"
-#: nis/nis_print.c:324
-msgid "Access Rights : "
-msgstr "Derechos de acceso : "
+#. 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 "Demasiados usuarios"
-#: nis/nis_print.c:326
-#, c-format
-msgid ""
-"\n"
-"Time to Live : "
-msgstr ""
-"\n"
-"Tiempo de Vida : "
+#. TRANS The user's disk quota was exceeded.
+#: sysdeps/gnu/errlist.c:775
+msgid "Disk quota exceeded"
+msgstr "Se ha excedido la cuota de disco"
-#: nis/nis_print.c:329
-#, c-format
-msgid "Creation Time : %s"
-msgstr "Fecha de creación : %s"
+# ?? sugerencias ?
+# Habrá que traducir el "handle" de alguna forma... sv
+# No veo porqué. em
+# ¿No puede un fichero tener varios `handles'
+# y que unos estén bloqueados y otros no? sv
+# En efecto la traducción es incorrecta, el uso de file handle
+# en vez de file descriptor, debe ser porque nos referimos a ficheros
+# compartidos con NFS. Al igual que no se bloquean, sino que se stalan :)
+#
+# Suggestion: stale->vencido. No me gusta "bloqueado" porque el
+# remedio necesita una acción, y "bloqueado" sugiere esperar.
+# No me gusta "fichero" simplemente, pues el fichero estará perfectamente
+# bien; lo que se venció es el "handle" o sea el número o nombre que
+# nos da acceso al fichero. Habrá que traducir el "handle", como dijo sv.
+# -jtobey
+#
+# Muy bien, he buscado "stale" y por lo que parece es algo que "caduca"
+# o que "vence", como las letras comerciales. Me he decidido por "en desuso".
+#
+#. 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 "`handle' de fichero NFS en desuso"
-#: nis/nis_print.c:331
-#, c-format
-msgid "Mod. Time : %s"
-msgstr "Fecha de modificación: %s"
+#. 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 "El objeto es remoto"
-#: nis/nis_print.c:332
-msgid "Object Type : "
-msgstr "Tipo del Objeto : "
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:808
+msgid "RPC struct is bad"
+msgstr "la estructura RPC es incorrecta"
-#: nis/nis_print.c:352
-#, c-format
-msgid " Data Length = %u\n"
-msgstr " Longitud de los datos = %u\n"
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:817
+msgid "RPC version wrong"
+msgstr "versión de RPC incorrecta"
-#: nis/nis_print.c:365
-#, c-format
-msgid "Status : %s\n"
-msgstr "Estado : %s\n"
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:826
+msgid "RPC program not available"
+msgstr "Programa RPC no disponible"
-#: nis/nis_print.c:366
-#, c-format
-msgid "Number of objects : %u\n"
-msgstr "Número de objetos : %u\n"
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:835
+msgid "RPC program version wrong"
+msgstr "Versión del programa RPC incorrecta"
-# Tal vez habría que poner núm en vez de #. sv
-#: nis/nis_print.c:370
-#, c-format
-msgid "Object #%d:\n"
-msgstr "Objeto #%d:\n"
+# ## qué horror
+# ## Pues mira, quizá añadiendo dos puntos después del RPC mejoraría algo:
+# ## "RPC: procedimiento erróneo..." sv
+# FIXME -> Comunicarlo al autor.
+# En inglés podría quedar también mejor.
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:844
+msgid "RPC bad procedure for program"
+msgstr "RPC: procedimiento erróneo para el programa"
-#: nis/nis_print_group_entry.c:115
-#, c-format
-msgid "Group entry for \"%s.%s\" group:\n"
-msgstr "Entrada de grupo para el grupo \"%s.%s\"\n"
+# Ojo: ¿Solamente los ficheros se pueden bloquear?
+# Propondría: "No quedan bloqueos disponibles" o algo así. sv
+#
+# Efectivamente puede que tengas razón, pero ...
+# los dispositivos en UNIX son siempre ficheros /dev :) em
+#
+# Lo sé, lo sé, pero: Cuando bloqueas /dev/cua3, ¿dices que estás bloqueando un
+# fichero o que estás bloqueando el módem, que es un dispositivo? sv
+# Decir ficheros podría traer equívocos, por más que formalmente todos
+# lo sean. sv
+#
+# ¿Y qué se te ocurre?, ¿poner bloquear ficheros/dispositivos? em
+#
+# ( Pues mira, no estaría mal. sv )
+#
+# no quedan bloqueos me parece que no colabora a entender nada. em
+# Miro la versión alemana.
+# ??? ¿locks? ¿cómo diablos?
+#. 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 "No se pueden bloquear más ficheros"
-#: nis/nis_print_group_entry.c:123
-msgid " Explicit members:\n"
-msgstr " Miembros explícitos:\n"
+#. 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 "Formato o tipo de fichero no apropiado"
-#: nis/nis_print_group_entry.c:128
-msgid " No explicit members\n"
-msgstr " No hay ningún miembro explícito\n"
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:878
+msgid "Authentication error"
+msgstr "Error de autentificación"
-#: nis/nis_print_group_entry.c:131
-msgid " Implicit members:\n"
-msgstr " Miembros implícitos:\n"
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:887
+msgid "Need authenticator"
+msgstr "Se necesita un autentificador"
-#: nis/nis_print_group_entry.c:136
-msgid " No implicit members\n"
-msgstr " No hay ningún miembro implícito\n"
+#. 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 "Función no implementada"
-#: nis/nis_print_group_entry.c:139
-msgid " Recursive members:\n"
-msgstr " Miembros recursivos:\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.
+#: sysdeps/gnu/errlist.c:920
+msgid "Not supported"
+msgstr "No soportado"
-#: nis/nis_print_group_entry.c:144
-msgid " No recursive members\n"
-msgstr " No hay ningún miembro recursivo\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 "El carácter multibyte o extendido está incompleto o es inválido"
-#: nis/nis_print_group_entry.c:147 nis/nis_print_group_entry.c:163
-msgid " Explicit nonmembers:\n"
-msgstr " No-miembros explícitos:\n"
+# Habrá que ver a qué se refiere.
+#
+# Si le pones el "es", ponle el "La" al principio.
+# O no le pongas ninguno de los dos, si no es realmente necesario.
+# Creo que no es malo que una oración no tenga verbo, pero si lo tiene
+# debe ser una oración completa. Me explico:
+# 1 "operación no válida" sería admisible.
+# 2 "operación no es válida" suena completamente a indio (inadmisible).
+# 3 "la operación no es válida" es mucho mejor que 2, pero no siempre
+# es mejor que 1. sv
+#
+# En este caso, creo que sobran el "La" y el "es". Por eso le he quitado
+# el "es". sv
+#. 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 "Operación no válida para un proceso en segundo plano"
-#: nis/nis_print_group_entry.c:152
-msgid " No explicit nonmembers\n"
-msgstr " No hay ningún no-miembro explícito\n"
+# Requiescant in pace. ¿de verdad lo vas a dejar así? :-) sv
+# Creí que el traductor eras tú. cuídate, oye.
+# Lo siento pero no se me ocurre nada en su lugar. sv
+#
+# Tengo que mirar los fuentes, de esto y de muchas otras cosas
+# todo esta en mi disco duro en mi ordenador roto. em
+#
+# Uds. han usado "terminado" para "killed"... ¿qué les parece
+# "Se terminó el traductor"? -jtobey
+#
+# Muy bien, pero lo pongo en pretérito perfecto. sv
+#
+#. 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 "El traductor ha terminado"
-#: nis/nis_print_group_entry.c:155
-msgid " Implicit nonmembers:\n"
-msgstr " No-miembros implícitos:\n"
+#. 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 "?"
-#: nis/nis_print_group_entry.c:160
-msgid " No implicit nonmembers\n"
-msgstr " No hay ningún no-miembro implícito\n"
+# ?? Ni idea de como traducir esto
+# "Ciertamente expiraste durante este tiempo" em
+# this time es esta *vez* Pero como no acabo de verle el sentido a la frase
+# prefiero que no corramos el riesgo. sv
+# Sin fuentes no se puede hacer. Cogeré la traducción de Ulrich Drepper
+# al alemán, no sé cómo no se me había ocurrido antes. em
+# Muy buena idea. Suerte que tenemos un coordinador que sabe alemán :-) sv
+# El problema es que la 1.10.1 no esta disponible todavía. Le he mandado un
+# mail para que me envíe lo que tenga hecho. em
+# Ok, traducido exactamente igual que lo tiene Jochen. Es ist keine Schuld
+# von mir wenn es gar nicht stimmt.
+#
+# Sugerencia: "Ahora sí que te lo has cargado". sv+
+# (Preguntar a nuestros amigos americanos si se entiende).
+# (Es que me suena que "blew" no es muy fino, por eso romper es
+# demasiado suave).
+#
+#. TRANS You did @strong{what}?
+#: sysdeps/gnu/errlist.c:975
+msgid "You really blew it this time"
+msgstr "Esta vez sí que lo has roto"
-#: nis/nis_print_group_entry.c:168
-msgid " No recursive nonmembers\n"
-msgstr " No hay ningún no-miembro recursivo\n"
+# ¿qué diablos es esto?, esperemos a tener las fuentes
+# estupendo, este error parece mostrarse en dos ocasiones
+# - Macro: int EIEIO
+# Go home and have a glass of warm, dairy-fresh milk.
+# Jochen tambien lo traduce así. em
+#
+# Okay. Since you are dying to know, I'll tell you.
+# This is a joke, obviously. There is a children's song which begins,
+# "Old McDonald had a farm, e-i-e-i-o." Every time I see the (real)
+# errno macro EIO, I think about that song. Probably most of my
+# compatriots who program on Unix do, too. One of them must have stayed
+# up a little too late one night and decided to add it to Hurd or Glibc.
+# Whoever did it should be castigated, but it made me laugh.
+# --jtobey@channel1.com
+#
+# "bought the farm" means "died". -jtobey
+#
+# Bueno, pues después de pensarlo mucho, he seguido el ejemplo de la
+# traducción francesa (traducción libre). sv
+#. TRANS Go home and have a glass of warm, dairy-fresh milk.
+#: sysdeps/gnu/errlist.c:984
+msgid "Computer bought the farm"
+msgstr "Anda, vete a casa y tómate un vasito de leche"
-#: nis/nss_nisplus/nisplus-publickey.c:101
-#: nis/nss_nisplus/nisplus-publickey.c:182
-#, c-format
-msgid "DES entry for netname %s not unique\n"
-msgstr "La entrada DES para el nombre %s no es única\n"
+#. TRANS This error code has no purpose.
+#: sysdeps/gnu/errlist.c:993
+msgid "Gratuitous error"
+msgstr "Error injustificado"
-#: nis/nss_nisplus/nisplus-publickey.c:218
-#, c-format
-msgid "netname2user: missing group id list in `%s'."
-msgstr "netname2user: falta la lista de ids de grupo en `%s'."
+#: sysdeps/gnu/errlist.c:1001
+msgid "Bad message"
+msgstr "Mensaje erróneo"
-#: nis/nss_nisplus/nisplus-publickey.c:300
-#: nis/nss_nisplus/nisplus-publickey.c:306
-#: nis/nss_nisplus/nisplus-publickey.c:370
-#: nis/nss_nisplus/nisplus-publickey.c:379
-#, c-format
-msgid "netname2user: (nis+ lookup): %s\n"
-msgstr "netname2user: (búsqueda nis+): %s\n"
+#: sysdeps/gnu/errlist.c:1009
+msgid "Identifier removed"
+msgstr "El identificador se ha eliminado"
-#: nis/nss_nisplus/nisplus-publickey.c:319
-#, c-format
-msgid "netname2user: DES entry for %s in directory %s not unique"
-msgstr "netname2user: la entrada DES para %s en el directorio %s no es única"
+# FUZZY em+
+# No tengo ni idea de qué es un HOP
+# este error, que ya lo vi en errno no
+# lo encuentro documentado
+# "Hop" es "saltito", por ej. un enlace directo que es parte de la ruta
+# entre dos máquinas. --jtobey
+#: sysdeps/gnu/errlist.c:1017
+msgid "Multihop attempted"
+msgstr "Se ha intentado un `multihop'"
-#: nis/nss_nisplus/nisplus-publickey.c:337
-#, c-format
-msgid "netname2user: principal name `%s' too long"
-msgstr "netname2user: el nombre principal `%s' es demasiado largo"
+#: sysdeps/gnu/errlist.c:1025
+msgid "No data available"
+msgstr "No hay datos disponibles"
-#: nis/nss_nisplus/nisplus-publickey.c:392
-#, c-format
-msgid "netname2user: LOCAL entry for %s in directory %s not unique"
-msgstr "netname2user: la entrada LOCAL para %s en el directorio %s no es única"
+#: sysdeps/gnu/errlist.c:1033
+msgid "Link has been severed"
+msgstr "El enlace se ha cortado"
-#: nis/nss_nisplus/nisplus-publickey.c:399
-msgid "netname2user: should not have uid 0"
-msgstr "netname2user: no debería tener uid 0"
+#: sysdeps/gnu/errlist.c:1041
+msgid "No message of desired type"
+msgstr "Ningún mensaje del tipo deseado"
-#: nis/ypclnt.c:171
-#, c-format
-msgid "YPBINDPROC_DOMAIN: %s\n"
-msgstr "YPBINDPROC_DOMAIN: %s\n"
+# FIXME: Este mensaje debería ser igual al anterior. sv
+#: sysdeps/gnu/errlist.c:1049
+msgid "Out of streams resources"
+msgstr "Alcanzado el límite de recursos de `streams'"
-#: nis/ypclnt.c:780
-msgid "Request arguments bad"
-msgstr "Los argumentos de la petición son incorrectos"
+# FUZZY
+# Tal vez "de flujo", pero no sé si me atrevo... sv
+#: sysdeps/gnu/errlist.c:1057
+msgid "Device not a stream"
+msgstr "El dispositivo no es un `stream'"
-#: nis/ypclnt.c:782
-msgid "RPC failure on NIS operation"
-msgstr "Fallo RPC en una operación NIS"
+#: sysdeps/gnu/errlist.c:1065
+msgid "Value too large for defined data type"
+msgstr "Valor demasiado grande para el tipo de datos definido"
-#: nis/ypclnt.c:784
-msgid "Can't bind to server which serves this domain"
-msgstr "Ha fallado la llamada a bind() con el servidor que sirve a este dominio"
+#: sysdeps/gnu/errlist.c:1073
+msgid "Protocol error"
+msgstr "Error de protocolo"
-#: nis/ypclnt.c:786
-msgid "No such map in server's domain"
-msgstr "No existe esa tabla en el dominio del servidor"
+#: sysdeps/gnu/errlist.c:1081
+msgid "Timer expired"
+msgstr "El temporizador llegó al final"
-#: nis/ypclnt.c:788
-msgid "No such key in map"
-msgstr "No existe esta clave en la tabla"
+#. 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 "Operación cancelada"
-#: nis/ypclnt.c:790
-msgid "Internal NIS error"
-msgstr "Error interno de NIS"
+# FUZZY
+#: sysdeps/gnu/errlist.c:1101
+msgid "Interrupted system call should be restarted"
+msgstr "La llamada al sistema interrumpida debería volverse a iniciar"
-#: nis/ypclnt.c:792
-msgid "Local resource allocation failure"
-msgstr "La asignación de recursos locales ha fallado"
+#: sysdeps/gnu/errlist.c:1109
+msgid "Channel number out of range"
+msgstr "Número de canal fuera de rango"
-#: nis/ypclnt.c:794
-msgid "No more records in map database"
-msgstr "No hay más registros en la base de datos"
+#: sysdeps/gnu/errlist.c:1117
+msgid "Level 2 not synchronized"
+msgstr "Nivel 2 no sincronizado"
-#: nis/ypclnt.c:796
-msgid "Can't communicate with portmapper"
-msgstr "No se puede comunicar con el asignador de puertos"
+#: sysdeps/gnu/errlist.c:1125
+msgid "Level 3 halted"
+msgstr "Nivel 3 detenido"
-#: nis/ypclnt.c:798
-msgid "Can't communicate with ypbind"
-msgstr "No se puede establecer comunicación con `ypbind'"
+#: sysdeps/gnu/errlist.c:1133
+msgid "Level 3 reset"
+msgstr "Nivel 3 restablecido"
-#: nis/ypclnt.c:800
-msgid "Can't communicate with ypserv"
-msgstr "No se puede establecer comunicación con `ypserv'"
+#: sysdeps/gnu/errlist.c:1141
+msgid "Link number out of range"
+msgstr "Número de enlace fuera de rango"
-#: nis/ypclnt.c:802
-msgid "Local domain name not set"
-msgstr "No se ha establecido el nombre del dominio local"
+#: sysdeps/gnu/errlist.c:1149
+msgid "Protocol driver not attached"
+msgstr "Protocolo no disponible"
-#: nis/ypclnt.c:804
-msgid "NIS map database is bad"
-msgstr "La base de datos de la tabla NIS no es correcta"
+# FIXME: ¿No sería más bien CSI structures?
+#: sysdeps/gnu/errlist.c:1157
+msgid "No CSI structure available"
+msgstr "No quedan estructuras CSI disponibles"
-#: nis/ypclnt.c:806
-msgid "NIS client/server version mismatch - can't supply service"
-msgstr ""
-"Discordancia en las versiones de NIS del cliente y el servidor.\n"
-"No se puede suministrar el servicio."
+#: sysdeps/gnu/errlist.c:1165
+msgid "Level 2 halted"
+msgstr "Nivel 2 detenido"
-#: nis/ypclnt.c:810
-msgid "Database is busy"
-msgstr "La base de datos está ocupada"
+#: sysdeps/gnu/errlist.c:1173
+msgid "Invalid exchange"
+msgstr "Intercambio inválido"
-#: nis/ypclnt.c:812
-msgid "Unknown NIS error code"
-msgstr "Error de NIS desconocido"
+#: sysdeps/gnu/errlist.c:1181
+msgid "Invalid request descriptor"
+msgstr "El descriptor de fichero solicitado es erróneo"
-# Suggestion: Como es "internal" deberías poner "interno" para
-# indicar que el bug está en la biblioteca y no necesariamente
-# en el programa. Es lo que más importa dar a entender. Propongo
-# "Error interno en ypbind" -jtobey
-# De acuerdo.
-# [ Antes decía ... la llamada a bind para el servicio de páginas amarillas ]
-# Un poco demasiado explicativo. sv
-#: nis/ypclnt.c:854
-msgid "Internal ypbind error"
-msgstr "Error interno en ypbind"
+# FUZZY em+
+#: sysdeps/gnu/errlist.c:1189
+msgid "Exchange full"
+msgstr "Intercambio lleno"
# FUZZY
-#: nis/ypclnt.c:856
-msgid "Domain not bound"
-msgstr "No se pudo conectar con el dominio"
+# anode o catode :), qué diablos ? em+
+#
+# Pongo esto provisionalmente, en electricidad se usan los términos
+# ánodo y cátodo para los polos positivo y negativo, pero no sé
+# si esto será lo mismo.
+# De cualquier forma, mantengo el FUZZY por si sale algo mejor. sv+
+#: sysdeps/gnu/errlist.c:1197
+msgid "No anode"
+msgstr "No hay ningún ánodo"
-#: nis/ypclnt.c:858
-msgid "System resource allocation failure"
-msgstr "Fallo en la asignación de recursos del sistema"
+#: sysdeps/gnu/errlist.c:1205
+msgid "Invalid request code"
+msgstr "Código de petición incorrecto"
-#: nis/ypclnt.c:860
-msgid "Unknown ypbind error"
-msgstr "Error desconocido en la llamada a `ypbind()'"
+# ¿Ranura no válida?, creo que no hay traducción para slot :) em+
+# Antes: `slot' incorrecto
+#: sysdeps/gnu/errlist.c:1213
+msgid "Invalid slot"
+msgstr "Ranura inválida"
-#: nis/ypclnt.c:899
-msgid "yp_update: cannot convert host to netname\n"
-msgstr "yp_update: no se puede convertir el nombre del `host' a nombre de red\n"
+# FUZZY em+
+#: sysdeps/gnu/errlist.c:1221
+msgid "File locking deadlock error"
+msgstr "error `deadlock' de bloqueo de ficheros"
-#: nis/ypclnt.c:911
-msgid "yp_update: cannot get server address\n"
-msgstr "yp_update: no se puede encontrar la dirección del servidor\n"
+#: sysdeps/gnu/errlist.c:1229
+msgid "Bad font file format"
+msgstr "Formato de fichero fuente incorrecto"
-#: nscd/cache.c:94
-msgid "while allocating hash table entry"
-msgstr "al asignar espacio para la entrada en la tabla `hash'"
+#: sysdeps/gnu/errlist.c:1237
+msgid "Machine is not on the network"
+msgstr "La máquina no está en red"
-#: nscd/cache.c:162 nscd/connections.c:184
-#, c-format
-msgid "cannot stat() file `%s': %s"
-msgstr "no se puede ejecutar stat() sobre el fichero `%s': %s"
+#: sysdeps/gnu/errlist.c:1245
+msgid "Package not installed"
+msgstr "El paquete no está instalado"
-#: nscd/connections.c:150
-msgid "Cannot run nscd in secure mode as unprivileged user"
-msgstr "No se puede ejecutar nscd en modo seguro como usuario no privilegiado"
+# FUZZY
+# Lo dejo fuzzy aposta, a ver qué se os ocurre em+
+# Pues mira, advertencia es warning, advertise es anunciar.
+# De momento lo cambio. sv
+#: sysdeps/gnu/errlist.c:1253
+msgid "Advertise error"
+msgstr "Error de anuncio"
-#: nscd/connections.c:172
-#, c-format
-msgid "while allocating cache: %s"
-msgstr "al asignar espacio para el caché: %s"
+#: sysdeps/gnu/errlist.c:1261
+msgid "Srmount error"
+msgstr "Error de `srmount'"
-#: nscd/connections.c:197
-#, c-format
-msgid "cannot open socket: %s"
-msgstr "no se puede abrir el `socket': %s"
+#: sysdeps/gnu/errlist.c:1269
+msgid "Communication error on send"
+msgstr "Error de comunicación al enviar"
-#: nscd/connections.c:215
-#, c-format
-msgid "cannot enable socket to accept connections: %s"
-msgstr "no se puede activar el `socket' para aceptar conexiones: %s"
+#: sysdeps/gnu/errlist.c:1277
+msgid "RFS specific error"
+msgstr "error específico de RFS"
-#: nscd/connections.c:260
-#, c-format
-msgid "cannot handle old request version %d; current version is %d"
-msgstr ""
-"no se pueden manejar peticiones de la versión %d, la versión\n"
-"actual es %d"
+#: sysdeps/gnu/errlist.c:1285
+msgid "Name not unique on network"
+msgstr "El nombre no es único en la red"
-#: nscd/connections.c:298 nscd/connections.c:324
-#, c-format
-msgid "cannot write result: %s"
-msgstr "no se puede escribir el resultado: %s"
+#: sysdeps/gnu/errlist.c:1293
+msgid "File descriptor in bad state"
+msgstr "Descriptor de fichero en mal estado"
-#: nscd/connections.c:392 nscd/connections.c:514
-#, c-format
-msgid "error getting caller's id: %s"
-msgstr "error al obtener el id de los llamantes: %s"
+#: sysdeps/gnu/errlist.c:1301
+msgid "Remote address changed"
+msgstr "La dirección remota ha cambiado"
-#: nscd/connections.c:485
-#, c-format
-msgid "while accepting connection: %s"
-msgstr "al aceptar la conexión: %s"
+#: sysdeps/gnu/errlist.c:1309
+msgid "Can not access a needed shared library"
+msgstr "No se puede acceder a una biblioteca compartida necesaria"
-#: nscd/connections.c:498
-#, c-format
-msgid "short read while reading request: %s"
-msgstr "lectura insuficiente mientras se leía la petición: %s"
+#: sysdeps/gnu/errlist.c:1317
+msgid "Accessing a corrupted shared library"
+msgstr "Accediendo a una biblioteca compartida que está corrompida"
-#: nscd/connections.c:542
-#, c-format
-msgid "key length in request too long: %d"
-msgstr "la longitud de la clave en la petición es demasiado larga: %d"
+#: sysdeps/gnu/errlist.c:1325
+msgid ".lib section in a.out corrupted"
+msgstr "la sección .lib en el a.out está corrompida"
-#: nscd/connections.c:556
-#, c-format
-msgid "short read while reading request key: %s"
-msgstr "se acabaron los datos mientras se leía la clave de petición: %s"
+# Suggestion: "enlazar demasiadas bibliotecas en el ejecutable"
+# "link in" es verbo transitivo. --jtobey@channel1.com
+# Muy bien, me como lo del ejecutable para no alargar demasiado
+# el mensaje, pues creo que por el contexto el usuario sabrá a qué
+# se refiere. De paso, lo pongo en pasado (se intentaron) porque
+# es un error sobre algo que ya ha ocurrido (el intento fallido). sv
+#: sysdeps/gnu/errlist.c:1333
+msgid "Attempting to link in too many shared libraries"
+msgstr "Se intentaron enlazar demasiadas bibliotecas compartidas"
-#: nscd/connections.c:566
-#, c-format
-msgid "handle_request: request received (Version = %d) from PID %ld"
-msgstr "handle_request: petición recibida (Versión = %d) del PID %ld"
+#: sysdeps/gnu/errlist.c:1341
+msgid "Cannot exec a shared library directly"
+msgstr "No se puede ejecutar una biblioteca compartida directamente"
-#: nscd/connections.c:571
-#, c-format
-msgid "handle_request: request received (Version = %d)"
-msgstr "handle_request: petición recibida (Versión = %d)"
+# FUZZY FUZZY
+# ¡ Esto no hay quien lo traduzca ! em+
+#: sysdeps/gnu/errlist.c:1349
+msgid "Streams pipe error"
+msgstr "Error de tubería de `streams'"
-#: nscd/connections.c:635 nscd/connections.c:636 nscd/connections.c:655
-#: nscd/connections.c:668 nscd/connections.c:674 nscd/connections.c:681
-#, c-format
-msgid "Failed to run nscd as user '%s'"
-msgstr "Fallo al ejecutar nscd como usuario `%s'"
+# FUZZY
+# O me cojo otras traducciones o ando perdido em+
+#: sysdeps/gnu/errlist.c:1357
+msgid "Structure needs cleaning"
+msgstr "La estructura necesita una limpieza"
-#: nscd/connections.c:656
-msgid "getgrouplist failed"
-msgstr "falló `getgrouplist'"
+#: sysdeps/gnu/errlist.c:1365
+msgid "Not a XENIX named type file"
+msgstr "No es un fichero XENIX del tipo `named'"
-#: nscd/connections.c:669
-msgid "setgroups failed"
-msgstr "falló `setgroups'"
+#: sysdeps/gnu/errlist.c:1373
+msgid "No XENIX semaphores available"
+msgstr "No quedan semáforos XENIX disponibles"
-#: nscd/grpcache.c:103 nscd/hstcache.c:111 nscd/pwdcache.c:109
-msgid "while allocating key copy"
-msgstr "al asignar espacio para la copia de la clave"
+# FUZZY em+
+# ¿Será esto un `named pipe'? ¿cómo se traduce?
+#: sysdeps/gnu/errlist.c:1381
+msgid "Is a named type file"
+msgstr "Es un fichero de tipo `named'"
-#: nscd/grpcache.c:153 nscd/hstcache.c:168 nscd/pwdcache.c:146
-msgid "while allocating cache entry"
-msgstr "al asignar espacio para la entrada en el caché"
+#: sysdeps/gnu/errlist.c:1389
+msgid "Remote I/O error"
+msgstr "Error de E/S en la máquina remota"
-#: nscd/grpcache.c:197 nscd/hstcache.c:283 nscd/pwdcache.c:193
-#, c-format
-msgid "short write in %s: %s"
-msgstr "escritura insuficiente en %s: %s"
+#: sysdeps/gnu/errlist.c:1397
+msgid "No medium found"
+msgstr "No se ha encontrado el medio"
-#: nscd/grpcache.c:219
-#, c-format
-msgid "Haven't found \"%s\" in group cache!"
-msgstr "No se ha encontrado \"%s\" en el caché de grupos"
+#: sysdeps/gnu/errlist.c:1405
+msgid "Wrong medium type"
+msgstr "Tipo de medio erróneo"
-#: nscd/grpcache.c:285
-#, c-format
-msgid "Invalid numeric gid \"%s\"!"
-msgstr "¡gid numérico inválido \"%s\"!"
+#: sysdeps/gnu/errlist.c:1413
+msgid "Required key not available"
+msgstr "La clave requerida no está disponible"
-#: nscd/grpcache.c:292
-#, c-format
-msgid "Haven't found \"%d\" in group cache!"
-msgstr "No se ha encontrado \"%d\" en el caché de grupo"
+#: sysdeps/gnu/errlist.c:1421
+msgid "Key has expired"
+msgstr "La clave ha caducado"
-#: nscd/hstcache.c:305 nscd/hstcache.c:371 nscd/hstcache.c:436
-#: nscd/hstcache.c:501
-#, c-format
-msgid "Haven't found \"%s\" in hosts cache!"
-msgstr "No se ha encontrado \"%s\" en el caché de `hosts'"
+#: sysdeps/gnu/errlist.c:1429
+msgid "Key has been revoked"
+msgstr "La clave ha sido revocada"
-#: nscd/nscd.c:89
-msgid "Read configuration data from NAME"
-msgstr "Lee datos de configuración de NOMBRE"
+#: sysdeps/gnu/errlist.c:1437
+msgid "Key was rejected by service"
+msgstr "La clave fue rechazada por el servicio"
-#: nscd/nscd.c:91
-msgid "Do not fork and display messages on the current tty"
-msgstr "No se divide y muestra los mensajes en la terminal actual"
+#: sysdeps/gnu/errlist.c:1445
+msgid "Owner died"
+msgstr "El propietario ha muerto"
-#: nscd/nscd.c:92
-msgid "NUMBER"
-msgstr "NÚMERO"
+#: sysdeps/gnu/errlist.c:1453
+msgid "State not recoverable"
+msgstr "El estado es irrecuperable"
-#: nscd/nscd.c:92
-msgid "Start NUMBER threads"
-msgstr "Comienza NÚMERO hilos"
+#: sysdeps/gnu/errlist.c:1461
+msgid "Operation not possible due to RF-kill"
+msgstr "Operación imposible por estar la radiofrecuencia desactivada"
-#: nscd/nscd.c:93
-msgid "Shut the server down"
-msgstr "Apagar el servidor"
+# ¿Qué demonios es esto?
+# ¿Error en el error del sistema desconocido? sv
+#: sysdeps/mach/_strerror.c:57
+msgid "Error in unknown error system: "
+msgstr "Error de sistema desconocido: "
-#: nscd/nscd.c:94
-msgid "Print current configuration statistic"
-msgstr "Muestra una estadística sobre la configuración actual"
+#: sysdeps/posix/gai_strerror-strs.h:1
+msgid "Address family for hostname not supported"
+msgstr "Esta familia de direcciones no está soportada para el `host'"
-#: nscd/nscd.c:95
-msgid "TABLE"
-msgstr "TABLA"
+#: sysdeps/posix/gai_strerror-strs.h:2
+msgid "Temporary failure in name resolution"
+msgstr "Fallo temporal en la resolución del nombre"
-#: nscd/nscd.c:96
-msgid "Invalidate the specified cache"
-msgstr "Invalida la caché especificada"
+#: sysdeps/posix/gai_strerror-strs.h:3
+msgid "Bad value for ai_flags"
+msgstr "Valor erróneo para ai_flags"
-#: nscd/nscd.c:97
-msgid "TABLE,yes"
-msgstr "TABLA,sí"
+#: sysdeps/posix/gai_strerror-strs.h:4
+msgid "Non-recoverable failure in name resolution"
+msgstr "Fallo irrecuperable en la resolución del nombre"
-#: nscd/nscd.c:97
-msgid "Use separate cache for each user"
-msgstr "Utiliza una caché separada para cada usuario"
+#: sysdeps/posix/gai_strerror-strs.h:5
+msgid "ai_family not supported"
+msgstr "No se admite ai_familiy"
-#: nscd/nscd.c:102
-msgid "Name Service Cache Daemon."
-msgstr "Daemon de Caché del Servicio de Nombres."
+#: sysdeps/posix/gai_strerror-strs.h:6
+msgid "Memory allocation failure"
+msgstr "Fallo en la asignación de memoria"
-#: nscd/nscd.c:141
-msgid "cannot read configuration file; this is fatal"
-msgstr "no se puede leer el fichero de configuración; este error es fatal"
+#: sysdeps/posix/gai_strerror-strs.h:7
+msgid "No address associated with hostname"
+msgstr "No existe ninguna dirección asociada al nombre"
-#: nscd/nscd.c:152
-msgid "already running"
-msgstr "ya está funcionando"
+#: sysdeps/posix/gai_strerror-strs.h:8
+msgid "Name or service not known"
+msgstr "Nombre o servicio desconocido"
-#: nscd/nscd.c:270 nscd/nscd.c:294 nscd/nscd_stat.c:132
-msgid "Only root is allowed to use this option!"
-msgstr "Solamente root puede usar esta opción"
+#: sysdeps/posix/gai_strerror-strs.h:9
+msgid "Servname not supported for ai_socktype"
+msgstr "No se admite servname para ai_socktype"
-#: nscd/nscd_conf.c:88
-#, c-format
-msgid "Parse error: %s"
-msgstr "Error de análisis: %s"
+#: sysdeps/posix/gai_strerror-strs.h:10
+msgid "ai_socktype not supported"
+msgstr "No se admite ai_socktype"
-#: nscd/nscd_conf.c:171
-#, c-format
-msgid "Could not create log file \"%s\""
-msgstr "No se pudo crear el fichero de registro \"%s\""
+#: sysdeps/posix/gai_strerror-strs.h:11
+msgid "System error"
+msgstr "Error del sistema"
-#: nscd/nscd_conf.c:187
-msgid "Must specify user name for server-user option"
-msgstr "Debe especificar un nombre de usuario para la opción `server-user'"
+# Vale, pero muy poco más abajo has puesto "en curso", que me parece mejor. sv
+# Creo que prefiero dejar uno de cada. Se me ocurre si no cambiar el
+# de abajo también. em
+#: sysdeps/posix/gai_strerror-strs.h:12
+msgid "Processing request in progress"
+msgstr "Se está procesando la petición"
-#: nscd/nscd_conf.c:194
-msgid "Must specify user name for stat-user option"
-msgstr "Debe especificar un nombre de usuario para la opción `stat-user'"
+#: sysdeps/posix/gai_strerror-strs.h:13
+msgid "Request canceled"
+msgstr "Petición cancelada"
-#: nscd/nscd_conf.c:205
-#, c-format
-msgid "Unknown option: %s %s %s"
-msgstr "Opción desconocida: %s %s %s"
+#: sysdeps/posix/gai_strerror-strs.h:14
+msgid "Request not canceled"
+msgstr "Petición no cancelada"
-#: nscd/nscd_stat.c:103
-#, c-format
-msgid "cannot write statistics: %s"
-msgstr "no se pueden escribir las estadísticas: %s"
+#: sysdeps/posix/gai_strerror-strs.h:15
+msgid "All requests done"
+msgstr "Realizadas todas las peticiones"
-#: nscd/nscd_stat.c:128
-#, c-format
-msgid "Only root or %s is allowed to use this option!"
-msgstr "Solamente root o %s puede usar esta opción"
+#: sysdeps/posix/gai_strerror-strs.h:16
+msgid "Interrupted by a signal"
+msgstr "Interrumpido por una señal"
-#: nscd/nscd_stat.c:139
-msgid "nscd not running!\n"
-msgstr "nscd no está en ejecución\n"
+#: sysdeps/posix/gai_strerror-strs.h:17
+msgid "Parameter string not correctly encoded"
+msgstr "Cadena de parámetros codificada incorrectamente"
-#: nscd/nscd_stat.c:150
-msgid "write incomplete"
-msgstr "escritura incompleta"
+#: sysdeps/unix/siglist.c:26
+msgid "Signal 0"
+msgstr "Señal 0"
-#: nscd/nscd_stat.c:162
-msgid "cannot read statistics data"
-msgstr "no se pueden leer los datos de estadística"
+# ???, siempre lo he usado como trap, nunca encontramos la palabra
+# y es una señal estándar Unix, así que no creo conveniente traducirla
+#: sysdeps/unix/siglist.c:32
+msgid "IOT trap"
+msgstr "`trap' de IOT"
+
+#: sysdeps/unix/sysv/linux/i386/readelflib.c:49
+#, c-format
+msgid "%s is for unknown machine %d.\n"
+msgstr "%s es para la máquina desconocida %d.\n"
-#: nscd/nscd_stat.c:165
+#: 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: no sabe cómo manejar más de 8 argumentos\n"
+
+#: sysdeps/unix/sysv/linux/lddlibc4.c:61
#, c-format
msgid ""
-"nscd configuration:\n"
+"Usage: lddlibc4 FILE\n"
"\n"
-"%15d server debug level\n"
msgstr ""
-"configuración nscd:\n"
+"Modo de empleo: lddlibc4 FICHERO\n"
"\n"
-"%15d nivel de depuración del servidor\n"
-#: nscd/nscd_stat.c:189
+#: sysdeps/unix/sysv/linux/lddlibc4.c:82
#, c-format
-msgid "%3ud %2uh %2um %2lus server runtime\n"
-msgstr "%3ud %2uh %2um %2lus tiempo de funcionamiento del servidor\n"
+msgid "cannot open `%s'"
+msgstr "no se puede abrir `%s'"
-#: nscd/nscd_stat.c:192
+#: sysdeps/unix/sysv/linux/lddlibc4.c:86
#, c-format
-msgid " %2uh %2um %2lus server runtime\n"
-msgstr " %2uh %2um %2lus tiempo de funcionamiento del servidor\n"
+msgid "cannot read header from `%s'"
+msgstr "no se puede leer la cabecera de `%s'"
-#: nscd/nscd_stat.c:194
-#, c-format
-msgid " %2um %2lus server runtime\n"
-msgstr " %2um %2lus tiempo de funcionamiento del servidor\n"
+#: timezone/zdump.c:215
+msgid "lacks alphabetic at start"
+msgstr "no tiene caracteres alfabéticos al comienzo"
-#: nscd/nscd_stat.c:196
-#, c-format
-msgid " %2lus server runtime\n"
-msgstr " %2lus tiempo de funcionamiento del servidor\n"
+#: timezone/zdump.c:217
+msgid "has fewer than 3 alphabetics"
+msgstr "tiene menos de 3 caracteres alfabéticos"
-#: nscd/nscd_stat.c:198
-#, c-format
-msgid "%15lu number of times clients had to wait\n"
-msgstr "%15lu número de veces que los clientes tuvieron que esperar\n"
+#: timezone/zdump.c:219
+msgid "has more than 6 alphabetics"
+msgstr "tiene más de 6 caracteres alfabéticos"
-#: nscd/nscd_stat.c:213 nscd/nscd_stat.c:215
-msgid " no"
-msgstr " no"
+#: timezone/zdump.c:227
+msgid "differs from POSIX standard"
+msgstr "difiere del estándar POSIX"
-#: nscd/nscd_stat.c:213 nscd/nscd_stat.c:215
-msgid " yes"
-msgstr " si"
+#: timezone/zdump.c:233
+#, c-format
+msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
+msgstr "%s: atención: zona \"%s\" abreviatura \"%s\" %s\n"
-#: nscd/nscd_stat.c:221
+#: timezone/zdump.c:242
#, c-format
msgid ""
+"%s: usage is %s [ --version ] [ --help ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n"
"\n"
-"%s cache:\n"
-"\n"
-"%15s cache is enabled\n"
-"%15Zu suggested size\n"
-"%15lu seconds time to live for positive entries\n"
-"%15lu seconds time to live for negative entries\n"
-"%15lu cache hits on positive entries\n"
-"%15lu cache hits on negative entries\n"
-"%15lu cache misses on positive entries\n"
-"%15lu cache misses on negative entries\n"
-"%15lu%% cache hit rate\n"
-"%15lu current number of cached values\n"
-"%15lu maximum number of cached values\n"
-"%15lu maximum chain length searched\n"
-"%15lu number of delays on rdlock\n"
-"%15lu number of delays on wrlock\n"
-"%15s check /etc/%s for changes\n"
+"Report bugs to tz@elsie.nci.nih.gov.\n"
msgstr ""
+"%s: el modo de empleo es %s [ --version ] [ -v ] [ -c [añoinf,]añosup ] nombrezona ...\n"
"\n"
-"%s caché:\n"
-"\n"
-"%15s el caché está activado\n"
-"%15Zu tamaño sugerido\n"
-"%15lu segundos de vida para las entradas positivas\n"
-"%15lu segundos de vida para las entradas negativas\n"
-"%15lu aciertos de caché en las entradas positivas\n"
-"%15lu aciertos de caché en las entradas negativas\n"
-"%15lu fallos de caché en las entradas positivas\n"
-"%15lu fallos de caché en las entradas negativas\n"
-"%15lu%% tasa de aciertos de caché\n"
-"%15lu número actual de valores en caché\n"
-"%15lu número máximo de valores en caché\n"
-"%15lu longitud maxima de la cadena buscada\n"
-"%15lu número de retardos en rdlock\n"
-"%15lu número de retardos en wrlock\n"
-"%15s compruebe /etc/%s para cambios\n"
-
-#: nscd/pwdcache.c:215
-#, c-format
-msgid "Haven't found \"%s\" in password cache!"
-msgstr "No se ha encontrado \"%s\" en el caché de contraseñas"
-
-#: nscd/pwdcache.c:281
-#, c-format
-msgid "Invalid numeric uid \"%s\"!"
-msgstr "¡uid numérico inválido \"%s\"!"
+"Comunicar errores a tz@elsie.nci.nih.gov.\n"
-#: nscd/pwdcache.c:288
+#: timezone/zdump.c:311
#, c-format
-msgid "Haven't found \"%d\" in password cache!"
-msgstr "No se ha encontrado \"%d\" en el caché de contraseñas"
-
-#: elf/../sysdeps/generic/dl-sysdep.c:422
-msgid "cannot create capability list"
-msgstr "no se puede crear la lista de capacidades"
+msgid "%s: wild -c argument %s\n"
+msgstr "%s: argumento %s descabellado para -c\n"
-#: elf/../sysdeps/generic/readelflib.c:35
-#, c-format
-msgid "file %s is truncated\n"
-msgstr "el fichero %s está truncado\n"
+#: timezone/zdump.c:398
+msgid "Error writing to standard output"
+msgstr "Error al escribir en la salida estándar"
-#: elf/../sysdeps/generic/readelflib.c:67
+#: timezone/zdump.c:421
#, c-format
-msgid "%s is a 32 bit ELF file.\n"
-msgstr "%s es un fichero ELF de 32 bits.\n"
+msgid "%s: use of -v on system with floating time_t other than float or double\n"
+msgstr "%s: uso de -v en un sistema con time_t flotante distinto float o double\n"
-#: elf/../sysdeps/generic/readelflib.c:69
+#: timezone/zic.c:388
#, c-format
-msgid "%s is a 64 bit ELF file.\n"
-msgstr "%s es un fichero ELF de 64 bits.\n"
+msgid "%s: Memory exhausted: %s\n"
+msgstr "%s: Memoria agotada: %s\n"
-#: elf/../sysdeps/generic/readelflib.c:71
+#: timezone/zic.c:434
#, c-format
-msgid "Unknown ELFCLASS in file %s.\n"
-msgstr "ELFCLASS desconocido en el fichero %s.\n"
+msgid "\"%s\", line %d: %s"
+msgstr "\"%s\", línea %d: %s"
-#: elf/../sysdeps/generic/readelflib.c:78
+#: timezone/zic.c:437
#, c-format
-msgid "%s is not a shared object file (Type: %d).\n"
-msgstr "%s no es un fichero `shared object' (Tipo: %d).\n"
+msgid " (rule from \"%s\", line %d)"
+msgstr " (regla desde \"%s\", línea %d)"
-#: elf/../sysdeps/generic/readelflib.c:109
-msgid "more than one dynamic segment\n"
-msgstr "más de un segmento dinámico\n"
+#: timezone/zic.c:449
+msgid "warning: "
+msgstr "atención: "
-#: elf/../sysdeps/unix/sysv/linux/i386/readelflib.c:49
+# FIXME: Decir al autor que no use tabs. sv
+#: timezone/zic.c:459
#, c-format
-msgid "%s is for unknown machine %d.\n"
-msgstr "%s es para la máquina desconocida %d.\n"
-
-# FIXME: Falta ver si es niño o niña. sv
-#: elf/cache.c:70
-msgid "unknown"
-msgstr "desconocido/a"
+msgid ""
+"%s: usage is %s [ --version ] [ --help ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n"
+"\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"
+"\n"
+"Report bugs to tz@elsie.nci.nih.gov.\n"
+msgstr ""
+"%s: el modo de empleo es %s [ --version ] [ -v ] [ -l hora_local ] [ -p reglasposix ] \\\n"
+" [ -d directorio ] [ -L segundos_intercalares ] [ -y tipoaño ] [ fichero ... ]\n"
+"\n"
+"Comunicar errores a tz@elstz@elsie.nci.nih.gov.\n"
-#: elf/cache.c:111
-msgid "Unknown OS"
-msgstr "Sistema Operativo desconocido"
+#: timezone/zic.c:496
+msgid "wild compilation-time specification of zic_t"
+msgstr "especificación de zic_t en tiempo de compilación descabellada"
-#: elf/cache.c:116
+#: timezone/zic.c:515
#, c-format
-msgid ", OS ABI: %s %d.%d.%d"
-msgstr ", ABI del SO: %s %d.%d.%d"
+msgid "%s: More than one -d option specified\n"
+msgstr "%s: La opción -d se ha especificado más de una vez\n"
-#: elf/cache.c:142 elf/ldconfig.c:1078
+#: timezone/zic.c:525
#, c-format
-msgid "Can't open cache file %s\n"
-msgstr "No se puede abrir el fichero de caché %s\n"
-
-#: elf/cache.c:154
-msgid "mmap of cache file failed.\n"
-msgstr "falló la operación `mmap' sobre el fichero de caché.\n"
-
-#: elf/cache.c:158 elf/cache.c:168
-msgid "File is not a cache file.\n"
-msgstr "El fichero no es un fichero de caché.\n"
+msgid "%s: More than one -l option specified\n"
+msgstr "%s: La opción -l se ha especificado más de una vez\n"
-#: elf/cache.c:201 elf/cache.c:211
+#: timezone/zic.c:535
#, c-format
-msgid "%d libs found in cache `%s'\n"
-msgstr "%d bibliotecas se encontraron en la caché `%s'\n"
+msgid "%s: More than one -p option specified\n"
+msgstr "%s: La opción -p se ha especificado más de una vez\n"
-#: elf/cache.c:410
+#: timezone/zic.c:545
#, c-format
-msgid "Can't remove old temporary cache file %s"
-msgstr "No se puede borrar el fichero de caché temporal antiguo %s"
+msgid "%s: More than one -y option specified\n"
+msgstr "%s: La opción -y se ha especificado más de una vez\n"
-#: elf/cache.c:417
+#: timezone/zic.c:555
#, c-format
-msgid "Can't create temporary cache file %s"
-msgstr "No se puede crear el fichero temporal de caché %s"
-
-#: elf/cache.c:425 elf/cache.c:434 elf/cache.c:438
-msgid "Writing of cache data failed"
-msgstr "Falló la escritura de los datos de la caché"
+msgid "%s: More than one -L option specified\n"
+msgstr "%s: La opción -L se ha especificado más de una vez\n"
-# FIXME. Merge with previous message (?). sv
-#: elf/cache.c:442
-msgid "Writing of cache data failed."
-msgstr "Falló la escritura de los datos de la caché"
+#: timezone/zic.c:604
+msgid "link to link"
+msgstr "enlace a un enlace"
-#: elf/cache.c:449
-#, c-format
-msgid "Changing access rights of %s to %#o failed"
-msgstr "El cambio de los derechos de acceso de %s a %#o falló"
+#: timezone/zic.c:669
+msgid "hard link failed, symbolic link used"
+msgstr "el enlace duro falló, se usará un enlace simbólico"
-#: elf/cache.c:454
+#: timezone/zic.c:677
#, c-format
-msgid "Renaming of %s to %s failed"
-msgstr "Falló el renombramiento de %s a %s"
-
-#: elf/dl-close.c:128
-msgid "shared object not open"
-msgstr "el objeto compartido no está abierto"
-
-#: elf/dl-close.c:531 elf/dl-open.c:454
-msgid "TLS generation counter wrapped! Please send report with the 'glibcbug' script."
-msgstr ""
-"¡El contador de generaciones TLS ha vuelto a cero! Por favor envíe un informe\n"
-"con el script 'glibcbug'"
+msgid "%s: Can't link from %s to %s: %s\n"
+msgstr "%s: No se pudo crear un enlace de %s a %s: %s\n"
-#: elf/dl-deps.c:111 elf/dl-open.c:183
-msgid "DST not allowed in SUID/SGID programs"
-msgstr "No se permite DST en programas SUID/SGID"
+#: timezone/zic.c:749 timezone/zic.c:751
+msgid "same rule name in multiple files"
+msgstr "mismo nombre de regla en varios ficheros"
-# FIXME: Es casi el mismo mensaje de antes. sv
-#: elf/dl-deps.c:124
-msgid "empty dynamics string token substitution"
-msgstr "sustitución dinámica de un elemento por cadena vacía"
+#: timezone/zic.c:792
+msgid "unruly zone"
+msgstr "zona sin reglas"
-# Hmm, me suena que lo que es dinámica aquí es la cadena, no la sustitución.
-# FIXME: Consultarlo. sv
-#: elf/dl-deps.c:130
+#: timezone/zic.c:799
#, c-format
-msgid "cannot load auxiliary `%s' because of empty dynamic string token substitution\n"
-msgstr ""
-"no se puede cargar el `%s' auxiliar debido a la sustitución dinámica\n"
-"de un elemento por cadena vacía\n"
-
-#: elf/dl-deps.c:461
-msgid "cannot allocate dependency list"
-msgstr "no se pudo asignar espacio para la lista de dependencias"
-
-#: elf/dl-deps.c:494 elf/dl-deps.c:549
-msgid "cannot allocate symbol search list"
-msgstr "no se puede asignar espacio para la lista de búsqueda de los símbolos"
+msgid "%s in ruleless zone"
+msgstr "%s en una zona sin reglas"
-#: elf/dl-deps.c:534
-msgid "Filters not supported with LD_TRACE_PRELINKING"
-msgstr "No se admiten filtros con LD_TRACE_PRELINKING"
+#: timezone/zic.c:820
+msgid "standard input"
+msgstr "entrada estándar"
-# Véase "A bug's life".
-#: elf/dl-error.c:75
-msgid "DYNAMIC LINKER BUG!!!"
-msgstr "¡¡¡HAY UN BICHO EN EL ENLAZADOR DINÁMICO!!!"
+#: timezone/zic.c:825
+#, c-format
+msgid "%s: Can't open %s: %s\n"
+msgstr "%s: No se puede abrir %s: %s\n"
-#: elf/dl-error.c:108
-msgid "error while loading shared libraries"
-msgstr "error al cargar las bibliotecas compartidas"
+#: timezone/zic.c:836
+msgid "line too long"
+msgstr "línea demasiado larga"
-#: elf/dl-load.c:347
-msgid "cannot allocate name record"
-msgstr "no se puede asignar el registro del nombre"
+#: timezone/zic.c:856
+msgid "input line of unknown type"
+msgstr "línea de entrada de tipo desconocido"
-# He intentado mejorarlo un poco ...
+# ¿¿cómo se dirá eso??, pregunto en spanglish
#
-#: elf/dl-load.c:449 elf/dl-load.c:528 elf/dl-load.c:648 elf/dl-load.c:743
-msgid "cannot create cache for search path"
-msgstr "no se puede crear un caché para la ruta de búsqueda"
-
-#: elf/dl-load.c:551
-msgid "cannot create RUNPATH/RPATH copy"
-msgstr "no se puede crear una copia RUNPATH/RPATH"
-
-#: elf/dl-load.c:634
-msgid "cannot create search path array"
-msgstr "no se puede crear la matriz de la ruta de búsqueda"
-
-#: elf/dl-load.c:830
-msgid "cannot stat shared object"
-msgstr "no se puede efectuar `stat' sobre el objeto compartido"
-
-#: elf/dl-load.c:874
-msgid "cannot open zero fill device"
-msgstr "no se puede abrir el dispositivo de `zero fill'"
-
-#: elf/dl-load.c:883 elf/dl-load.c:1929
-msgid "cannot create shared object descriptor"
-msgstr "no se puede crear el descriptor del objeto compartido"
-
-#: elf/dl-load.c:902 elf/dl-load.c:1470 elf/dl-load.c:1553
-msgid "cannot read file data"
-msgstr "no se pueden leer los datos del fichero"
-
-#: elf/dl-load.c:946
-msgid "ELF load command alignment not page-aligned"
-msgstr "El alineamiento de la orden de carga ELF no está alineada a la página"
-
-#: elf/dl-load.c:953
-msgid "ELF load command address/offset not properly aligned"
-msgstr "La dirección/desplazamiento de la orden de carga ELF no está bien alineada"
-
-#: elf/dl-load.c:1037
-msgid "cannot allocate TLS data structures for initial thread"
-msgstr "no se pueden crear las estructuras de datos TLS para el hilo inicial"
-
-#: elf/dl-load.c:1061
-msgid "cannot handle TLS data"
-msgstr "no se pueden manejar los datos de TLS"
-
-#: elf/dl-load.c:1075
-msgid "object file has no loadable segments"
-msgstr "el fichero objeto no tiene segmentos cargables"
-
-#: elf/dl-load.c:1110
-msgid "failed to map segment from shared object"
-msgstr "fallo al asignar un segmento del objeto compartido"
-
-#: elf/dl-load.c:1135
-msgid "cannot dynamically load executable"
-msgstr "no se puede cargar el ejecutable dinámicamente"
-
-#: elf/dl-load.c:1191
-msgid "cannot change memory protections"
-msgstr "no se pueden cambiar las protecciones de memoria"
-
-#: elf/dl-load.c:1210
-msgid "cannot map zero-fill pages"
-msgstr "no se pueden asignar páginas de tipo `zero-fill'"
-
-#: elf/dl-load.c:1228
-msgid "cannot allocate memory for program header"
-msgstr "no se puede asignar memoria para la cabecera del programa"
-
-#: elf/dl-load.c:1259
-msgid "object file has no dynamic section"
-msgstr "el fichero objeto no tiene sección dinámica"
-
-#: elf/dl-load.c:1299
-msgid "shared object cannot be dlopen()ed"
-msgstr "no se puede efectuar dlopen() sobre el objeto compartido"
-
-#: elf/dl-load.c:1322
-msgid "cannot create searchlist"
-msgstr "no se puede crear la lista de búsqueda"
-
-#: elf/dl-load.c:1352
-msgid "cannot enable executable stack as shared object requires"
-msgstr "no se puede activar la pila ejecutable tal y como el objeto compartido necesita"
-
-#: elf/dl-load.c:1470
-msgid "file too short"
-msgstr "fichero demasiado corto"
-
-#: elf/dl-load.c:1493
-msgid "invalid ELF header"
-msgstr "cabecera ELF inválida"
-
-#: elf/dl-load.c:1502
-msgid "ELF file data encoding not big-endian"
-msgstr "La codificación de los datos del fichero ELF no es `big-endian'"
-
-#: elf/dl-load.c:1504
-msgid "ELF file data encoding not little-endian"
-msgstr "La codificación de los datos del fichero ELF no es `little-endian'"
-
-#: elf/dl-load.c:1508
-msgid "ELF file version ident does not match current one"
-msgstr "La identificación de versión del fichero ELF no encaja con la actual"
-
-#: elf/dl-load.c:1512
-msgid "ELF file OS ABI invalid"
-msgstr "ABI del OS del fichero ELF inválida"
-
-#: elf/dl-load.c:1514
-msgid "ELF file ABI version invalid"
-msgstr "Versión de ABI del fichero ELF inválida"
-
-#: elf/dl-load.c:1517
-msgid "internal error"
-msgstr "error interno"
-
-#: elf/dl-load.c:1524
-msgid "ELF file version does not match current one"
-msgstr "La versión del fichero ELF no coincide con la actual"
-
-#: elf/dl-load.c:1532
-msgid "ELF file's phentsize not the expected size"
-msgstr "El `phentsize' del fichero ELF no es el tamaño esperado"
-
-#: elf/dl-load.c:1538
-msgid "only ET_DYN and ET_EXEC can be loaded"
-msgstr "solamente pueden cargarse ET_DYN y ET_EXEC"
-
-#: elf/dl-load.c:1944
-msgid "cannot open shared object file"
-msgstr "no se puede abrir el fichero del objeto compartido"
-
-#: elf/dl-lookup.c:265 elf/dl-lookup.c:443
-msgid "relocation error"
-msgstr "error de relocalización"
-
-#: elf/dl-open.c:111
-msgid "cannot extend global scope"
-msgstr "no se puede extender el ámbito global"
-
-#: elf/dl-open.c:214
-msgid "empty dynamic string token substitution"
-msgstr "sustitución dinámica de un elemento por una cadena vacía"
-
-#: elf/dl-open.c:361 elf/dl-open.c:372
-msgid "cannot create scope list"
-msgstr "no se puede crear la lista de ámbito"
-
-#: elf/dl-open.c:434
-msgid "cannot create TLS data structures"
-msgstr "no se pueden crear las estructuras de datos TLS"
-
-#: elf/dl-open.c:496
-msgid "invalid mode for dlopen()"
-msgstr "modo inválido para dlopen()"
-
-#: elf/dl-reloc.c:57
-msgid "cannot allocate memory in static TLS block"
-msgstr "No se pudo asignar memoria en el bloque TLS estático"
-
-#: elf/dl-reloc.c:176
-msgid "cannot make segment writable for relocation"
-msgstr "no se puede hacer el segmento escribible para su relocalización"
-
-#: elf/dl-reloc.c:277
-#, c-format
-msgid "%s: profiler found no PLTREL in object %s\n"
-msgstr "%s el `profiler' no encontró ningún PLTREL en el objeto %s\n"
-
-#: elf/dl-reloc.c:289
+# diría que la porción "de años bisiestos" sobra. sv
+#
+# Mejor dejarlo bien clarito. Después de haberme enterado de
+# qué diablos era eso ;)
+#
+# En ningún sitio dice que la línea de ajuste sea "de años bisiestos"
+# Si pones algo que no viene en el original puedes acabar cambiando
+# el sentido.
+# O quitas lo de "de años bisiestos" o miras el código fuente
+# a ver si de verdad es un ajuste de años bisiestos o más bien de segundos
+# intercalares. En cualquier caso me parece que queda más largo añadiendo
+# eso. sv
+#
+# Otra cosa: "en un fichero que no es el de" -> "en un fichero que no es de"
+# (sin "el"). Si no, da a entender que sólo puede haber uno,
+# y el original no da a entender eso. sv
+#
+# Varias cosas, según he entendido los ajustes en segundo se llaman
+# indiferentemente 'segundos intercalares' o 'segundos bisiestos'
+# el ajuste en sí es un ajuste de años bisiestos ( no son exactamente
+# un día ) . Por lo tanto Leap ( año bisiesto ) line, son las líneas
+# que caracterizan al leap seconds file, que podríamos llamarlo fichero
+# de ajuste de años bisiestos, fichero intercalar o incluso bisiestifile
+# De todas maneras creo que lo cambio, este mensaje, si alguna vez tengo
+# la mala suerte de que me aparezca, me acoxonaría, tal y como está
+# redactado
+# Segundo, según he visto en la documentación, sólo existe un fichero
+# de leap lines, por eso pongo 'el'... em+
+#
+#: timezone/zic.c:872
#, c-format
-msgid "%s: profiler out of memory shadowing PLTREL of %s\n"
-msgstr "%s: el `profiler' se quedó sin memoria al ocultar el PLTREL de %s\n"
-
-# Se admiten sugerencias. sv
-#: elf/dl-reloc.c:304
-msgid "cannot restore segment prot after reloc"
-msgstr "no se puede restaurar el `prot' del segmento después de la relocalización"
-
-#: elf/dl-sym.c:74 elf/dl-sym.c:145
-msgid "RTLD_NEXT used in code not dynamically loaded"
-msgstr "Se ha usado RTLD_NEXT en una parte del código que no se cargó dinámicamente"
-
-#: elf/dl-version.c:303
-msgid "cannot allocate version reference table"
-msgstr "no se puede asignar espacio para la tabla de versiones de referencia"
-
-#: elf/ldconfig.c:122
-msgid "Print cache"
-msgstr "Muestra la caché"
-
-#: elf/ldconfig.c:123
-msgid "Generate verbose messages"
-msgstr "Genera mensajes explicativos"
-
-#: elf/ldconfig.c:124
-msgid "Don't build cache"
-msgstr "No crea caché"
-
-#: elf/ldconfig.c:125
-msgid "Don't generate links"
-msgstr "No genera enlaces"
-
-#: elf/ldconfig.c:126
-msgid "Change to and use ROOT as root directory"
-msgstr "Cambia a ROOT y lo utiliza como directorio raíz"
-
-#: elf/ldconfig.c:127
-msgid "Use CACHE as cache file"
-msgstr "Utiliza CACHE como fichero de caché"
-
-#: elf/ldconfig.c:128
-msgid "Use CONF as configuration file"
-msgstr "Utiliza CONF como fichero de configuración"
-
-#: elf/ldconfig.c:129
-msgid "Only process directories specified on the command line. Don't build cache."
+msgid "%s: Leap line in non leap seconds file %s\n"
msgstr ""
-"Procesa únicamente los directorios especificados en la línea de órdenes.\n"
-"No crea la caché."
-
-#: elf/ldconfig.c:130
-msgid "Manually link individual libraries."
-msgstr "Enlace bibliotecas individuales manualmente."
-
-#: elf/ldconfig.c:131
-msgid "Format to use: new, old or compat (default)"
-msgstr "Formato utilizado: new, old o compat (predeterminado)"
-
-# FIXME: Why So Many Uppercase Letters? sv
-#: elf/ldconfig.c:139
-msgid "Configure Dynamic Linker Run Time Bindings."
-msgstr "Configura las asociaciones de tiempo de ejecución del enlazador dinámico"
-
-#: elf/ldconfig.c:297
-#, c-format
-msgid "Path `%s' given more than once"
-msgstr "Se ha dado la ruta `%s' más de una vez"
-
-#: elf/ldconfig.c:341
-#, c-format
-msgid "%s is not a known library type"
-msgstr "%s no es un tipo de biblioteca conocido"
+"%s: Línea de segundos intercalares en un fichero que no es el de\n"
+"ajuste de años bisiestos %s\n"
-#: elf/ldconfig.c:361
+# Ãdem. 1984.
+#: timezone/zic.c:879 timezone/zic.c:1316 timezone/zic.c:1338
#, c-format
-msgid "Can't stat %s"
-msgstr "No se puede efectuar `stat' sobre %s"
-
-#: elf/ldconfig.c:431
-#, c-format
-msgid "Can't stat %s\n"
-msgstr "No se puede efectuar `stat' sobre %s\n"
-
-#: elf/ldconfig.c:441
-#, c-format
-msgid "%s is not a symbolic link\n"
-msgstr "%s no es un enlace simbólico\n"
+msgid "%s: panic: Invalid l_value %d\n"
+msgstr "%s: grave: valor_l %d inválido\n"
-#: elf/ldconfig.c:460
+#: timezone/zic.c:887
#, c-format
-msgid "Can't unlink %s"
-msgstr "No se puede efectuar `unlink' sobre %s"
+msgid "%s: Error reading %s\n"
+msgstr "%s: Error al leer %s\n"
-#: elf/ldconfig.c:466
+#: timezone/zic.c:894
#, c-format
-msgid "Can't link %s to %s"
-msgstr "No se puede crear un enlace de %s a %s"
+msgid "%s: Error closing %s: %s\n"
+msgstr "%s: Error al cerrar %s: %s\n"
-#: elf/ldconfig.c:472
-msgid " (changed)\n"
-msgstr " (cambiado)\n"
+#: timezone/zic.c:899
+msgid "expected continuation line not found"
+msgstr "la línea de continuación esperada no se encuentra"
-#: elf/ldconfig.c:474
-msgid " (SKIPPED)\n"
-msgstr " (SALTADO)\n"
+# Sugerencia: Desbordamiento de fecha. (?) sv+
+#: timezone/zic.c:943 timezone/zic.c:2480 timezone/zic.c:2499
+msgid "time overflow"
+msgstr "desbordamiento horario"
-#: elf/ldconfig.c:529
-#, c-format
-msgid "Can't find %s"
-msgstr "No se encuentra %s"
+#: timezone/zic.c:947
+msgid "24:00 not handled by pre-1998 versions of zic"
+msgstr "24:00 no se puede tratar por versiones de zic anteriores a 1998"
-#: elf/ldconfig.c:545
-#, c-format
-msgid "Can't lstat %s"
-msgstr "No se puede efectuar `lstat' sobre %s"
+#: timezone/zic.c:950
+msgid "values over 24 hours not handled by pre-2007 versions of zic"
+msgstr "las versiones de zic anteriores a 2007 no manejan valores por encima de 24 horas"
-#: elf/ldconfig.c:552
-#, c-format
-msgid "Ignored file %s since it is not a regular file."
-msgstr "Descartado el fichero %s dado que no es un fichero regular."
+#: timezone/zic.c:963
+msgid "wrong number of fields on Rule line"
+msgstr "número incorrecto de argumentos en la línea de regla (Rule)"
-#: elf/ldconfig.c:560
-#, c-format
-msgid "No link created since soname could not be found for %s"
-msgstr "No se creó el enlace ya que no se encontró el soname para %s"
+#: timezone/zic.c:967
+msgid "nameless rule"
+msgstr "regla sin nombre"
-#: elf/ldconfig.c:651
-#, c-format
-msgid "Can't open directory %s"
-msgstr "No se puede abrir el directorio %s"
+#: timezone/zic.c:972
+msgid "invalid saved time"
+msgstr "la hora almacenada no es válida"
-#: elf/ldconfig.c:706 elf/ldconfig.c:753
-#, c-format
-msgid "Cannot lstat %s"
-msgstr "No se puede efectuar `lstat' sobre %s"
+#: timezone/zic.c:993
+msgid "wrong number of fields on Zone line"
+msgstr "número de campos incorrecto en la línea de zona (Zone)"
-#: elf/ldconfig.c:718
+#: timezone/zic.c:999
#, c-format
-msgid "Cannot stat %s"
-msgstr "No se puede efectuar `stat' sobre %s"
+msgid "\"Zone %s\" line and -l option are mutually exclusive"
+msgstr "la línea \"Zone %s\" y la opción -l son mutuamente excluyentes"
-#: elf/ldconfig.c:775 elf/readlib.c:92
+#: timezone/zic.c:1007
#, c-format
-msgid "Input file %s not found.\n"
-msgstr "No se encontró el fichero de entrada %s.\n"
+msgid "\"Zone %s\" line and -p option are mutually exclusive"
+msgstr "la línea \"Zone %s\" y la opción -p son mutuamente excluyentes"
-#: elf/ldconfig.c:826
+#: timezone/zic.c:1019
#, c-format
-msgid "libc5 library %s in wrong directory"
-msgstr "biblioteca libc5 %s en un directorio equivocado"
+msgid "duplicate zone name %s (file \"%s\", line %d)"
+msgstr "nombre de zona %s duplicado (fichero \"%s\", línea %d)"
-#: elf/ldconfig.c:829
-#, c-format
-msgid "libc6 library %s in wrong directory"
-msgstr "biblioteca libc6 %s en un directorio equivocado"
+#: timezone/zic.c:1035
+msgid "wrong number of fields on Zone continuation line"
+msgstr "número de campos incorrecto en la línea de continuación de zona (Zone)"
-#: elf/ldconfig.c:832
-#, c-format
-msgid "libc4 library %s in wrong directory"
-msgstr "biblioteca libc4 %s en un directorio equivocado"
+#: timezone/zic.c:1075
+msgid "invalid UTC offset"
+msgstr "desplazamiento UTC inválido"
-#: elf/ldconfig.c:859
-#, c-format
-msgid "libraries %s and %s in directory %s have same soname but different type."
-msgstr "las bibliotecas %s y %s en el directorio %s tienen el mismo soname pero distinto tipo."
+#: timezone/zic.c:1078
+msgid "invalid abbreviation format"
+msgstr "formato de abreviatura incorrecto"
-#: elf/ldconfig.c:962
-#, c-format
-msgid "Can't open configuration file %s"
-msgstr "No se puede abrir el fichero de configuración `%s'"
+# VER
+#: timezone/zic.c:1107
+msgid "Zone continuation line end time is not after end time of previous line"
+msgstr ""
+"La línea de continuación de la zona no está después del tiempo de final\n"
+"de la línea anterior"
-#: elf/ldconfig.c:1033
-#, c-format
-msgid "relative path `%s' used to build cache"
-msgstr "se usa el camino relativo `%s' para construir el caché"
+# En todas estas, yo pondría "número incorrecto de campos",
+# "número incorrecto de argumentos", etc.
+# creo que quedaría mucho mejor. sv
+# La mitad como tú dices, y la mitad como yo em
+#
+# Eso es que te da igual...
+# O es mejor como digo, o no es mejor.
+# Si es mejor, ponlo en todos los sitios. Y si no, en ninguno.
+# Yo creo que es mucho mejor poner "número incorrecto ..."
+# Si no, queda como "al revés". sv+
+#: timezone/zic.c:1135
+msgid "wrong number of fields on Leap line"
+msgstr "número incorrecto de campos en la línea de bisiesto (Leap)"
-#: elf/ldconfig.c:1057
-msgid "Can't chdir to /"
-msgstr "No se puede cambiar al directorio /"
+#: timezone/zic.c:1144
+msgid "invalid leaping year"
+msgstr "año bisiesto inválido"
-#: elf/ldconfig.c:1099
-#, c-format
-msgid "Can't open cache file directory %s\n"
-msgstr "No se puede leer el directorio de ficheros de caché %s\n"
+#: timezone/zic.c:1164 timezone/zic.c:1270
+msgid "invalid month name"
+msgstr "nombre de mes incorrecto"
-#: elf/readlib.c:98
-#, c-format
-msgid "Cannot fstat file %s.\n"
-msgstr "No se puede efectuar `fstat' sobre el fichero %s.\n"
+#: timezone/zic.c:1177 timezone/zic.c:1383 timezone/zic.c:1397
+msgid "invalid day of month"
+msgstr "día del mes inválido"
-#: elf/readlib.c:108
-#, c-format
-msgid "File %s is too small, not checked."
-msgstr "El fichero %s es demasiado pequeño, no se comprueba."
+#: timezone/zic.c:1182
+msgid "time before zero"
+msgstr "hora antes de cero"
-#: elf/readlib.c:117
-#, c-format
-msgid "Cannot mmap file %s.\n"
-msgstr "No se puede efectuar `mmap' sobre el fichero %s.\n"
+#: timezone/zic.c:1186
+msgid "time too small"
+msgstr "tiempo demasiado pequeño"
-#: elf/readlib.c:155
-#, c-format
-msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n"
-msgstr "%s no es un fichero ELF - tiene los bytes mágicos equivocados en el comienzo.\n"
+#: timezone/zic.c:1190
+msgid "time too large"
+msgstr "tiempo demasiado grande"
-#: elf/sprof.c:72
-msgid "Output selection:"
-msgstr "Selección del resultado:"
+#: timezone/zic.c:1194 timezone/zic.c:1299
+msgid "invalid time of day"
+msgstr "hora del día inválida"
-#: elf/sprof.c:74
-msgid "print list of count paths and their number of use"
-msgstr "muestra la lista de contadores de ruta y su número de uso"
+#: timezone/zic.c:1213
+msgid "illegal CORRECTION field on Leap line"
+msgstr "El campo CORRECTION en la línea de año bisiesto es ilegal"
-#: elf/sprof.c:76
-msgid "generate flat profile with counts and ticks"
-msgstr "genera un `profile' plano con contadores y `ticks'"
+#: timezone/zic.c:1218
+msgid "illegal Rolling/Stationary field on Leap line"
+msgstr "Campo Rolling/Stationary ilegal en la línea de año bisiesto"
-#: elf/sprof.c:77
-msgid "generate call graph"
-msgstr "genera el grafo de llamadas"
+#: timezone/zic.c:1234
+msgid "wrong number of fields on Link line"
+msgstr "número incorrecto de campos en la línea de enlace (Link)"
-# ¿profiling? sv
-#: elf/sprof.c:84
-msgid "Read and display shared object profiling data"
-msgstr "Lee y visualiza los datos de `profiling' del objeto compartido"
+#: timezone/zic.c:1238
+msgid "blank FROM field on Link line"
+msgstr "Campo FROM vacío en la línea `Link'"
-#: elf/sprof.c:87
-msgid "SHOBJ [PROFDATA]"
-msgstr "SHOBJ [DATOSPROF]"
+#: timezone/zic.c:1242
+msgid "blank TO field on Link line"
+msgstr "Campo TO vacío en la línea `Link'"
-#: elf/sprof.c:398
-#, c-format
-msgid "failed to load shared object `%s'"
-msgstr "fallo al cargar el objeto compartido `%s'"
+#: timezone/zic.c:1320
+msgid "invalid starting year"
+msgstr "año de comienzo inválido"
-#: elf/sprof.c:407
-msgid "cannot create internal descriptors"
-msgstr "no se pueden crear descriptores internos"
+#: timezone/zic.c:1342
+msgid "invalid ending year"
+msgstr "año de final inválido"
-#: elf/sprof.c:526
-#, c-format
-msgid "Reopening shared object `%s' failed"
-msgstr "La reapertura del objeto compartido `%s' falló"
+#: timezone/zic.c:1346
+msgid "starting year greater than ending year"
+msgstr "año de comienzo mayor que año de final"
-#: elf/sprof.c:534
-msgid "mapping of section headers failed"
-msgstr "falló la asignación de las cabeceras de sección"
+#: timezone/zic.c:1353
+msgid "typed single year"
+msgstr "tecleado un único año"
-# Estupendo, entre section, header, string y table hay 4! posibilidades...
-#: elf/sprof.c:544
-msgid "mapping of section header string table failed"
-msgstr "falló la asignación de la tabla de cadenas de cabeceras de sección"
+#: timezone/zic.c:1388
+msgid "invalid weekday name"
+msgstr "nombre del día de la semana incorrecto"
-# Duda: stripped.
-#: elf/sprof.c:564
+#: timezone/zic.c:1566
#, c-format
-msgid "*** The file `%s' is stripped: no detailed analysis possible\n"
-msgstr "*** El fichero `%s' está `stripped': no es posible un análisis detallado\n"
-
-#: elf/sprof.c:594
-msgid "failed to load symbol data"
-msgstr "fallo al cargar los datos del símbolo"
-
-#: elf/sprof.c:664
-msgid "cannot load profiling data"
-msgstr "no se pueden cargar los datos de `profiling'"
-
-#: elf/sprof.c:673
-msgid "while stat'ing profiling data file"
-msgstr "al ejecutar `stat' sobre el fichero de datos de `profiling'"
+msgid "%s: Can't remove %s: %s\n"
+msgstr "%s: No se puede eliminar %s: %s\n"
-#: elf/sprof.c:681
+#: timezone/zic.c:1576
#, c-format
-msgid "profiling data file `%s' does not match shared object `%s'"
-msgstr ""
-"el fichero de datos para `profiling' %s no se corresponde con el\n"
-"objeto compartido `%s'"
-
-#: elf/sprof.c:692
-msgid "failed to mmap the profiling data file"
-msgstr "no se pudo hacer mmap con el fichero de datos de `profile'"
-
-# Se admiten sugerencias para el "profiling" sv.
-#: elf/sprof.c:700
-msgid "error while closing the profiling data file"
-msgstr "error al cerrar el fichero de datos de `profiling'"
-
-#: elf/sprof.c:709 elf/sprof.c:779
-msgid "cannot create internal descriptor"
-msgstr "no se puede crear un descriptor interno"
+msgid "%s: Can't create %s: %s\n"
+msgstr "%s: No se puede crear %s: %s\n"
-#: elf/sprof.c:755
+#: timezone/zic.c:1726
#, c-format
-msgid "`%s' is no correct profile data file for `%s'"
-msgstr "`%s' no es un fichero de datos para `profile' correcto para `%s'"
-
-#: elf/sprof.c:936 elf/sprof.c:988
-msgid "cannot allocate symbol data"
-msgstr "no se puede asignar espacio para los datos del símbolo"
-
-#~ msgid "shared object cannot be dlopen()ed: static TLS memory too small"
-#~ msgstr ""
-#~ "no se puede efectuar dlopen() sobre el objeto compartido: memoria estática TLS\n"
-#~ "demasiado pequeña"
-
-# FIXME: Decir al autor que no use tabs. sv
-#~ msgid "\t\t\t\t\t\t\t %s: value for field `%s' must be in range %d...%d"
-#~ msgstr "\t\t\t\t\t\t\t %s: el valor para el campo `%s' debe estar en el rango %d...%d"
-
-#~ msgid "Failed to look up user '%s' to run server as"
-#~ msgstr "Fallo al buscar el usuario '%s' para ejecutar el servidor"
-
-#~ msgid "no filename for profiling data given and shared object `%s' has no soname"
-#~ msgstr ""
-#~ "no se ha dado un nombre de fichero para los datos de `profiling'\n"
-#~ "y el objeto compartido `%s' no tiene soname"
-
-#~ msgid "%s: Error writing "
-#~ msgstr "%s: Error al escribir "
-
-#~ msgid "cannot load shared object file"
-#~ msgstr "no se puede cargar el objeto compartido"
-
-#~ msgid "cannot read locale directory `%s'"
-#~ msgstr "No se puede leer el directorio de locales %s"
-
-#~ msgid "neither original nor target encoding specified"
-#~ msgstr "no se ha especificado la codificación original ni la final"
-
-#~ msgid "original encoding not specified using `-f'"
-#~ msgstr "la codificación original no se ha especificado utilizando `-f'"
-
-#~ msgid "standard output"
-#~ msgstr "salida estándar"
-
-#~ msgid "target encoding not specified using `-t'"
-#~ msgstr "no se ha especificado la codificación final utilizando `-t'"
-
-#~ msgid " done\n"
-#~ msgstr " hecho\n"
-
-#~ msgid "%s: cannot get modification time"
-#~ msgstr "%s: no se puede obtener la fecha de modificación"
-
-#~ msgid "Computing table size for character classes might take a while..."
-#~ msgstr ""
-#~ "El cálculo del tamaño de la tabla de clases de caracteres podría tardar un\n"
-#~ "rato ..."
-
-# FUZZY
-# Collating, uff, lo he visto por lo menos 10 veces, en varios contextos
-# diferentes. Uno de ellos en el de comparaciones de strings en el DM de DB2.
-# Podría traducirse tambien como 'uniones' o 'emparejamientos' ... em+
-#~ msgid "Computing table size for collation information might take a while..."
-#~ msgstr ""
-#~ "El cálculo del tamaño de la tabla de información de secuencias podría tardar\n"
-#~ "un rato ..."
-
-#~ msgid "Convert key to lower case"
-#~ msgstr "Convierte la clave a minúsculas"
-
-#~ msgid "Create simple DB database from textual input."
-#~ msgstr "Crea una base de datos DB simple a partir de una entrada de texto."
-
-#~ msgid "Device not configured"
-#~ msgstr "Dispositivo no configurado"
-
-#~ msgid "Do not print messages while building database"
-#~ msgstr "No muestra ningún mensaje mientras construye la base de datos"
-
-#~ msgid ""
-#~ "INPUT-FILE OUTPUT-FILE\n"
-#~ "-o OUTPUT-FILE INPUT-FILE\n"
-#~ "-u INPUT-FILE"
-#~ msgstr ""
-#~ "FICHERO-ENTRADA FICHERO-SALIDA\n"
-#~ "-o FICHERO-SALIDA FICHERO-ENTRADA\n"
-#~ "-u FICHERO-ENTRADA"
-
-#~ msgid "Print content of database file, one entry a line"
-#~ msgstr "Muestra el contenido de un fichero de base de datos, una entrada por línea"
-
-# FUZZY
-# entries ? debe haber algo para eso
-# lo traducí antes como especificación, pero ... em+
-#~ msgid "`...' must only be used in `...' and `UNDEFINED' entries"
-#~ msgstr "`...' debe usarse únicamente en las entradas `...' y `UNDEFINED'"
-
-#~ msgid "`from' expected after first argument to `collating-element'"
-#~ msgstr "Se esperaba `from' después del primer argumento para `collating-element'"
-
-#~ msgid "`from' string in collation element declaration contains unknown character"
-#~ msgstr ""
-#~ "La cadena de caracteres `from' en la declaración de elemento de unión contiene\n"
-#~ "un carácter desconocido"
-
-#~ msgid "buffer overflow"
-#~ msgstr "desbordamiento de búfer"
+msgid "%s: Error writing %s\n"
+msgstr "%s: Error al escribir %s\n"
-#~ msgid "cannot insert collation element `%.*s'"
-#~ msgstr "no se puede insertar el elemento de unión `%.*s' "
+#: timezone/zic.c:2019
+msgid "no POSIX environment variable for zone"
+msgstr "no hay ninguna variable de entorno POSIX para la zona"
# FUZZY
-#~ msgid "cannot insert new collating symbol definition: %s"
-#~ msgstr "no se puede insertar la nueva definición para el símbolo de unión: %s"
-
-#~ msgid "cannot open database file `%s': %s"
-#~ msgstr "no se puede abrir el fichero de datos `%s': %s"
-
-#~ msgid "category data requested more than once: should not happen"
-#~ msgstr "categoría de datos reclamada más de una vez, no debería ocurrir"
-
-#, fuzzy
-#~ msgid "character L'%s' (index %Zd) in class `%s' must be in class `%s'"
-#~ msgstr "el carácter %s'%s' en la clase `%s' debe estar en la clase `%s'"
-
-#, fuzzy
-#~ msgid "character L'%s' (index %Zd) in class `%s' must not be in class `%s'"
-#~ msgstr "el carácter %s'%s' en la clase `%s' no debe estar en la clase `%s"
-
-#~ msgid "collation element `%.*s' appears more than once: ignore line"
-#~ msgstr "el elemento de unión `%.*s' aparece más de una vez: pasando por alto la línea"
-
-#~ msgid "collation symbol `%.*s' appears more than once: ignore line"
-#~ msgstr "símbolo de unión `%.*s' aparece más de una vez: descartando la línea"
-
-#~ msgid "collation symbol expected after `%s'"
-#~ msgstr "símbolo de unión esperado después de `%s'"
-
-#~ msgid "duplicate character name `%s'"
-#~ msgstr "nombre de carácter duplicado `%s'"
-
-#~ msgid "duplicate key"
-#~ msgstr "clave duplicada"
-
-#~ msgid "end point of ellipsis range is bigger then start"
-#~ msgstr "el punto de final para el rango de la elipsis es mayor que el de comienzo"
-
-#~ msgid "error while inserting collation element into hash table"
-#~ msgstr "error cuando se insertaba el elemento de unión en la tabla enlazada"
-
-#~ msgid "from-value of `collating-element' must be a string"
-#~ msgstr "el valor `from-value' del elemento de unión ha de ser una cadena de caracteres"
-
-#~ msgid "illegal character constant in string"
-#~ msgstr "carácter ilegal en la cadena"
-
-#~ msgid "illegal collation element"
-#~ msgstr "elemento de unión ilegal"
-
-#~ msgid "incorrectly formatted file"
-#~ msgstr "fichero formateado incorrectamente"
-
-#~ msgid "line after ellipsis must contain character definition"
-#~ msgstr "la línea de después de la elipsis tiene que contener una definición de carácter"
-
-#~ msgid "line before ellipsis does not contain definition for character constant"
-#~ msgstr ""
-#~ "la línea posterior a la elipsis no contiene una definición para una constante\n"
-#~ "de caracteres"
-
-#~ msgid "locale file `%s', used in `copy' statement, not found"
-#~ msgstr "fichero de locales `%s', que se usa en una orden `copy', no se encuentra"
-
-# ¿repertorio?
-#~ msgid "no repertoire map specified: cannot proceed"
-#~ msgstr "no se ha especificado ninguna asignación de repertorio: no se puede continuar"
-
-#~ msgid "no weight defined for symbol `%s'"
-#~ msgstr "no hay ningún peso definido para el símbolo `%s'"
-
-#~ msgid "problems while reading `%s'"
-#~ msgstr "problemas mientras se leía `%s'"
-
-#~ msgid "symbol for multicharacter collating element `%.*s' duplicates other symbol definition"
-#~ msgstr ""
-#~ "el símbolo para el elemento de unión multicarácter `%.*s' repite la definición\n"
-#~ "de otro símbolo"
-
-#~ msgid "symbol for multicharacter collating element `%.*s' duplicates symbol definition"
-#~ msgstr ""
-#~ "el símbolo para el elemento de unión multicarácter `%.*s' repite la definición\n"
-#~ "de otro símbolo"
+#: timezone/zic.c:2176
+msgid "can't determine time zone abbreviation to use just after until time"
+msgstr ""
+"No se puede determinar la abreviación de zona horaria que se usará justo\n"
+"después"
-#~ msgid "symbol for multicharacter collating element `%.*s' duplicates symbolic name in charset"
-#~ msgstr ""
-#~ "el símbolo para el elemento de unión multicarácter `%.*s' repite otro nombre\n"
-#~ "de símbolo en el conjunto de caracteres"
+#: timezone/zic.c:2222
+msgid "too many transitions?!"
+msgstr "¡¿demasiadas transiciones?!"
-#~ msgid "syntax error in `order_start' directive"
-#~ msgstr "error de sintaxis en la directiva `order_start'"
+#: timezone/zic.c:2241
+msgid "internal error - addtype called with bad isdst"
+msgstr "error interno - se llamó a `addtype' con un `isdst' erróneo"
-#~ msgid "syntax error in character class definition"
-#~ msgstr "error de sintaxis en el nombre de clase de carácter"
+#: timezone/zic.c:2245
+msgid "internal error - addtype called with bad ttisstd"
+msgstr "error interno - se llamó a `addtype' con un `ttisstd' erróneo"
-#~ msgid "syntax error in collating order definition"
-#~ msgstr "error de sintaxis en la definición del orden de unión"
+#: timezone/zic.c:2249
+msgid "internal error - addtype called with bad ttisgmt"
+msgstr "error interno - se llamó a `addtype' con un `ttisgmt' erróneo"
-#~ msgid "syntax error in collation definition"
-#~ msgstr "error de sintaxis en la definición de la unión"
+#: timezone/zic.c:2268
+msgid "too many local time types"
+msgstr "demasiados tipos de hora local"
-#~ msgid "syntax error in definition of LC_CTYPE category"
-#~ msgstr "error de sintaxis en una definición de categoría LC_CTYPE"
+#: timezone/zic.c:2272
+msgid "UTC offset out of range"
+msgstr "desplazamiento UTC fuera de rango"
-#~ msgid "syntax error in message locale definition"
-#~ msgstr "error de sintaxis en la definición de local para mensajes"
+#: timezone/zic.c:2300
+msgid "too many leap seconds"
+msgstr "demasiados segundos intercalares"
-#~ msgid "syntax error in monetary locale definition"
-#~ msgstr "error de sintaxis en la definición de local para moneda"
+#: timezone/zic.c:2306
+msgid "repeated leap second moment"
+msgstr "segundo intercalar repetido"
-#~ msgid "syntax error in numeric locale definition"
-#~ msgstr "error de sintaxis en la definición de local para números"
+# # Otra opción, resultado incongruente al ejecutar la orden em
+#: timezone/zic.c:2358
+msgid "Wild result from command execution"
+msgstr "Resultado salvaje en la ejecución de la orden"
-#~ msgid "syntax error in order specification"
-#~ msgstr "error de sintaxis en la especificación de orden"
+# FIXME: `%s'
+#: timezone/zic.c:2359
+#, c-format
+msgid "%s: command was '%s', result was %d\n"
+msgstr "%s: la orden fue `%s', el resultado fue %d\n"
-#~ msgid "syntax error in time locale definition"
-#~ msgstr "error de sintaxis en la definición de local para la hora"
+#: timezone/zic.c:2457
+msgid "Odd number of quotation marks"
+msgstr "Número impar de comillas"
-#~ msgid "too many character classes defined"
-#~ msgstr "demasiadas clases de caracteres definidas"
+# FIXME: non leap-year -> non-leap year.
+# A lo mejor si pones "veintinueve de febrero" o "29 de febrero"
+# se entiende mejor. no sé. sv
+# Si, estas pensando lo mismo que yo, 29 de febrero puede confundir, porque
+# en el fichero pondrá 2/29 em
+#: timezone/zic.c:2546
+msgid "use of 2/29 in non leap-year"
+msgstr "uso de 2/29 en un año no bisiesto"
-#~ msgid "too many weights"
-#~ msgstr "¡demasiados pesos!"
+#: timezone/zic.c:2581
+msgid "rule goes past start/end of month--will not work with pre-2004 versions of zic"
+msgstr "la regla sobrepasa el comienzo/final del mes--no funcionará con versiones de zic anteriores a 2004"
-#~ msgid "two lines in a row containing `...' are not allowed"
-#~ msgstr "no están permitidas dos líneas en una misma fila con `...'"
+#: timezone/zic.c:2613
+msgid "time zone abbreviation lacks alphabetic at start"
+msgstr "la abreviatura de la zona horaria no comienza con un carácter alfabético"
-#~ msgid "unknown character in field `%s' of category `%s'"
-#~ msgstr "carácter no reconocido en el campo `%s' de la categoría `%s'"
+#: timezone/zic.c:2615
+msgid "time zone abbreviation has more than 3 alphabetics"
+msgstr "la abreviatura de la zona horaria tiene más de 3 caracteres alfabéticos"
-# FUZZY em+
-#~ msgid "unknown collation directive"
-#~ msgstr "la directiva de unión es desconocida"
-
-#~ msgid "unterminated weight name"
-#~ msgstr "nombre de peso sin terminar"
-
-#~ msgid "value for <%s> must lie between 1 and 4"
-#~ msgstr "el valor para <%s> debe estar entre 1 y 4"
-
-#~ msgid "while reading database"
-#~ msgstr "al leer el fichero de datos"
-
-#~ msgid "while writing database file"
-#~ msgstr "al escribir la base de datos"
-
-#~ msgid "symbol for multicharacter collating element `%.*s' duplicates other element definition"
-#~ msgstr ""
-#~ "el símbolo para el elemento de unión multicarácter `%.*s' repite la definición\n"
-#~ "de otro elemento"
-
-#~ msgid "Filesize limit exceeded"
-#~ msgstr "Superado el límite de tamaño de fichero"
-
-#~ msgid "Trace/BPT trap"
-#~ msgstr "`trap' para seguimiento/BPT"
-
-#~ msgid ""
-#~ "Usage: %s [OPTION]... -o OUTPUT-FILE [INPUT-FILE]...\n"
-#~ " %s [OPTION]... [OUTPUT-FILE [INPUT-FILE]...]\n"
-#~ "Mandatory arguments to long options are mandatory for short options too.\n"
-#~ " -H, --header=NAME create C header file NAME containing symbol definitions\n"
-#~ " -h, --help display this help and exit\n"
-#~ " --new do not use existing catalog, force new output file\n"
-#~ " -o, --output=NAME write output to file NAME\n"
-#~ " -V, --version output version information and exit\n"
-#~ "If INPUT-FILE is -, input is read from standard input. If OUTPUT-FILE\n"
-#~ "is -, output is written to standard output.\n"
-#~ msgstr ""
-#~ "Modo de empleo: %s [OPCIÓN]... -o FICHERO-SALIDA [FICHERO-ENTRADA]...\n"
-#~ " %s [OPCIÓN]... [FICHERO-SALIDA [FICHERO-ENTRADA]...]\n"
-#~ "Los argumentos obligatorios para las opciones largas son también obligatorios\n"
-#~ "para las opciones cortas.\n"
-#~ " -H, --header=NOMBRE crea el fichero NOMBRE de cabeceras C con las definiciones de\n"
-#~ " los símbolos\n"
-#~ " -h, --help muestra esta ayuda y finaliza\n"
-#~ " --new no usa el catálogo existente, crea un nuevo fichero\n"
-#~ " de salida\n"
-#~ " -o, --output=NOMBRE escribe el resultado en el fichero NOMBRE\n"
-#~ " -V, --version informa de la versión y finaliza\n"
-#~ "Si FICHERO-ENTRADA es -, la entrada se lee de la entrada estándar.\n"
-#~ "Si FICHERO-SALIDA es -, el resultado se escribe en la salida estándar.\n"
-
-#~ msgid ""
-#~ "Usage: %s [OPTION]... INPUT-FILE OUTPUT-FILE\n"
-#~ " %s [OPTION]... -o OUTPUT-FILE INPUT-FILE\n"
-#~ " %s [OPTION]... -u INPUT-FILE\n"
-#~ "Mandatory arguments to long options are mandatory for short options too.\n"
-#~ " -f, --fold-case convert key to lower case\n"
-#~ " -h, --help display this help and exit\n"
-#~ " -o, --output=NAME write output to file NAME\n"
-#~ " --quiet don't print messages while building database\n"
-#~ " -u, --undo print content of database file, one entry a line\n"
-#~ " -V, --version output version information and exit\n"
-#~ "If INPUT-FILE is -, input is read from standard input.\n"
-#~ msgstr ""
-#~ "Modo de empleo: %s [OPCIÓN]... FICHERO-ENTRADA FICHERO-SALIDA\n"
-#~ " %s [OPCIÓN]... -o FICHERO-SALIDA FICHERO-ENTRADA\n"
-#~ " %s [OPCIÓN]... -u FICHERO-ENTRADA\n"
-#~ "Los argumentos obligatorios para las opciones largas son también obligatorios\n"
-#~ "para las opciones cortas.\n"
-#~ " -f, --fold-case convierte las claves a minúsculas\n"
-#~ " -h, --help Muestra esta ayuda y finaliza\n"
-#~ " -o, --output=FICHERO escribe el resultado en el fichero FICHERO\n"
-#~ " --quiet no muestra mensajes al construir la base de datos\n"
-#~ " -u, --undo muestra el contenido del fichero de datos, una\n"
-#~ " entrada por línea\n"
-#~ " -V, --version informa de la versión y finaliza\n"
-#~ "Si FICHERO-ENTRADA es -, la entrada se lee de la entrada estándar.\n"
-
-#~ msgid ""
-#~ "Usage: %s [OPTION]... name\n"
-#~ "Mandatory arguments to long options are mandatory for short options too.\n"
-#~ " -c, --force create output even if warning messages were issued\n"
-#~ " -h, --help display this help and exit\n"
-#~ " -f, --charmap=FILE symbolic character names defined in FILE\n"
-#~ " -i, --inputfile=FILE source definitions are found in FILE\n"
-#~ " -u, --code-set-name=NAME specify code set for mapping ISO 10646 elements\n"
-#~ " -v, --verbose print more messages\n"
-#~ " -V, --version output version information and exit\n"
-#~ " --posix be strictly POSIX conform\n"
-#~ "\n"
-#~ "System's directory for character maps: %s\n"
-#~ " locale files : %s\n"
-#~ msgstr ""
-#~ "Modo de empleo: %s [OPCIÓN]... nombre\n"
-#~ "Los argumentos obligatorios para las opciones largas son también obligatorios\n"
-#~ "para las opciones cortas.\n"
-#~ " -c, --force crea el resultado incluso si existieron mensajes\n"
-#~ " de aviso\n"
-#~ " -h, --help muestra esta ayuda y finaliza\n"
-#~ " -f, --charmap=FICHERO los nombres símbólicos de caracteres se encuentran\n"
-#~ " en FICHERO\n"
-#~ " -i, --inputfile=FICHERO las definiciones fuente se encuentran en FICHERO\n"
-#~ " -u, --code-set-name=NOMBRE especifica el conjunto de códigos para asignar\n"
-#~ " los elementos ISO 10646\n"
-#~ " -v, --verbose incrementa el número de mensajes mostrados\n"
-#~ " -V, --version informa de la versión y finaliza\n"
-#~ " --posix atiende estrictamente las especificaciones POSIX\n"
-#~ "\n"
-#~ "Directorio del sistema para las tablas de caracteres:\n"
-#~ "%s\n"
-#~ " los ficheros de locales:\n"
-#~ "%s\n"
-
-#~ msgid ""
-#~ "Usage: %s [OPTION]... name\n"
-#~ "Mandatory arguments to long options are mandatory for short options too.\n"
-#~ " -h, --help display this help and exit\n"
-#~ " -V, --version output version information and exit\n"
-#~ "\n"
-#~ " -a, --all-locales write names of available locales\n"
-#~ " -m, --charmaps write names of available charmaps\n"
-#~ "\n"
-#~ " -c, --category-name write names of selected categories\n"
-#~ " -k, --keyword-name write names of selected keywords\n"
-#~ msgstr ""
-#~ "Modo de empleo: %s [OPCIÓN]... nombre\n"
-#~ "Los argumentos para las opciones largas son tambien obligatorios para las\n"
-#~ "opciones cortas.\n"
-#~ " -h, --help muestra esta ayuda y finaliza\n"
-#~ " -V, --version informa de la versión y finaliza\n"
-#~ "\n"
-#~ " -a, --all-locales muestra los nombres de todos los locales disponibles\n"
-#~ " -m, --charmaps muestra los nombres de todas las tablas de caracteres\n"
-#~ " disponibles\n"
-#~ "\n"
-#~ " -c, --category-name muestra los nombres de las categorías seleccionadas\n"
-#~ " -k, --keyword-name muestra los nombres de las palabras clave seleccionadas\n"
-
-#~ msgid "values for field `%s' in category `%s' must not be zero"
-#~ msgstr "el valor para el campo `%s' en la categoría `%s' no debe ser cero"
-
-#~ msgid "while opening UTMP file"
-#~ msgstr "al abrir el fichero UTMP"
-
-#~ msgid "YPBINDPROC_DOMAIN: No server for domain %s\n"
-#~ msgstr "YPBINDPROC_DOMAIN: No hay servidor para el dominio %s\n"
-
-#~ msgid "YPBINDPROC_DOMAIN: Resource allocation failure\n"
-#~ msgstr "YPBINDPROC_DOMAIN: Fallo en la asignación de recursos\n"
-
-#~ msgid "yp_all: clnttcp_create failed"
-#~ msgstr "yp_all: ha fallado la llamada a 'clnttcp_create()'"
-
-#~ msgid "character `%c' not defined while needed as default value"
-#~ msgstr "el carácter `%c' no está definido cuando se necesitó como valor por defecto"
-
-#~ msgid "couldn't do tcp_create\n"
-#~ msgstr "no se ha podido ejecutar tcp_create\n"
-
-#~ msgid "couldn't do udp_create\n"
-#~ msgstr "no se pudo ejecutar udp_create\n"
-
-#~ msgid "portmap CALLIT: cannot fork.\n"
-#~ msgstr "portmap CALLIT: llamada a fork() sin éxito\n"
-
-#~ msgid "portmap cannot create socket"
-#~ msgstr "el mapeador de puertos `portmap' no ha podido crear el `socket'"
-
-#~ msgid "run_svc returned unexpectedly\n"
-#~ msgstr "run_svc terminó inesperadamente\n"
-
-# A los "arrays" les digo matrices. Igual en América se dice de otra forma.
-# Creo que habría que consultarlo. SV.
-# Echando mano de los fuentes, está claro que se refiere a un array de
-# caracteres, ¿Cadena de caracteres?, si claro. EM
-# Pues no, puede ser ambas cosas, o un array de caracteres, o una cadena.
-# ¿por qué te comes la palabra "declaración"?
-# ¿Qué tal "esperada una declaración de `array'"? sv
-# Una declaración de array es> "char *a" por ejemplo. Lo que espera
-# es algo así>"pepe" , escrito en un fichero de texto, con toda
-# seguridad ( consulté los fuentes ) em
-# Creí que una declaración y una constante eran cosas distintas. sv
-# ¿Está mal el original inglés? sv
-# Desde luego que esta mal, o poco claro al menos. Estoy convencido
-# de que la traducción mejora una vez más al original. em
-#~ msgid "array declaration expected"
-#~ msgstr "esperado un array"
-
-#~ msgid "definition keyword expected"
-#~ msgstr "esperada una palabra clave"
-
-#~ msgid "expected '%s'"
-#~ msgstr "se esperaba `%s'"
-
-#~ msgid "expected '%s' or '%s'"
-#~ msgstr "se esperaba `%s' ó `%s' "
-
-#~ msgid "expected '%s', '%s' or '%s'"
-#~ msgstr "se esperaba `%s', `%s' ó `%s'"
-
-#~ msgid "expected type specifier"
-#~ msgstr "esperado especificador de tipo"
-
-#~ msgid "no array-of-pointer declarations -- use typedef"
-#~ msgstr "no existe ninguna declaración de array-of-pointer -- usar typedef"
-
-# "array" es "array"?
-# Lo miro con cuidado, los ficheros rpc_*.c de la libc son especialmente
-# complicados. Sí, creo que se refiere a los aliases de servicios rpc, y
-# efectivamente es un array de longitud variable. No se me ocurriría
-# traducirlo de otra forma, yo no lo entendería mejor que así.
-# otra vez está ausente la "declaración", ¿no habría que ponerla? sv
-# rpc_parse contiene las funciones para 'parsear' un fichero de config. em
-# Habrá que inventar algo para 'parsear' ... sv
-# Los alemanes dicen parsen, habe geparst em, quizá comprobar
-# sintaxis o interpretar ? ( parsear es ambas cosas juntas, no ? ) em
-# Creo que "examinar" podría valer, al menos para empezar. sv
-#
-# Sugerencia: "esperado un..." -> "se esperaba un..." sv
-#~ msgid "variable-length array declaration expected"
-#~ msgstr "esperado un array de longitud variable"
+#: timezone/zic.c:2617
+msgid "time zone abbreviation has too many alphabetics"
+msgstr "la abreviatura de la zona horaria tiene demasiados caracteres alfabéticos"
-#~ msgid "voids allowed only inside union and program definitions"
-#~ msgstr "voids sólo se permiten dentro de las definiciones de uniones y de programa"
+#: timezone/zic.c:2627
+msgid "time zone abbreviation differs from POSIX standard"
+msgstr "la abreviatura de la zona horaria difiere del estándar POSIX"
-# Probablemente la traducción de path sería algo así
-# como "ruta de búsqueda" sv
-# por cierto: ¿qué son los niveles de "remote"? sv
-# Niveles de profundidad ?, ver fuentes em ??
-#~ msgid "Too many levels of remote in path"
-#~ msgstr "Demasiados niveles en el `path'"
+#: timezone/zic.c:2639
+msgid "too many, or too long, time zone abbreviations"
+msgstr "demasiadas abreviaturas de zona horaria, o demasiado largas"
-#~ msgid "illegal result type"
-#~ msgstr "tipo resultante no válido"
+#: timezone/zic.c:2680
+#, c-format
+msgid "%s: Can't create directory %s: %s\n"
+msgstr "%s: No se puede crear el directorio %s: %s\n"
-#~ msgid "too many files!\n"
-#~ msgstr "¡demasiados ficheros!\n"
+#: timezone/zic.c:2702
+#, c-format
+msgid "%s: %d did not sign extend correctly\n"
+msgstr "%s: %d no extendió el signo correctamente\n"
diff --git a/libc/po/it.po b/libc/po/it.po
index 9c3f5b919..deb465067 100644
--- a/libc/po/it.po
+++ b/libc/po/it.po
@@ -810,7 +810,7 @@ msgstr "Passa a RADICE come directory di root"
#: elf/ldconfig.c:145
msgid "ROOT"
-msgstr "RADICE"
+msgstr "ROOT"
#: elf/ldconfig.c:146
msgid "CACHE"
@@ -5806,11 +5806,11 @@ msgstr "enablecache: impossibile allocare la coda fifo della cache"
#: sunrpc/svc_udp.c:535
msgid "cache_set: victim not found"
-msgstr "cache_set: victim cache non trovata"
+msgstr "cache_set: victim non trovato"
#: sunrpc/svc_udp.c:546
msgid "cache_set: victim alloc failed"
-msgstr "cache_set: allocazione della victim cache non riuscita"
+msgstr "cache_set: allocazione di victim non riuscita"
#: sunrpc/svc_udp.c:553
msgid "cache_set: could not allocate new rpc_buffer"
diff --git a/libc/posix/regex_internal.c b/libc/posix/regex_internal.c
index a7d528ff6..6b1981a5f 100644
--- a/libc/posix/regex_internal.c
+++ b/libc/posix/regex_internal.c
@@ -1,5 +1,5 @@
/* Extended regular expression matching and search library.
- Copyright (C) 2002-2006, 2010 Free Software Foundation, Inc.
+ Copyright (C) 2002-2006, 2010, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
@@ -737,16 +737,18 @@ re_string_reconstruct (re_string_t *pstr, int idx, int eflags)
unsigned char buf[6];
size_t mbclen;
+ const unsigned char *pp = p;
if (BE (pstr->trans != NULL, 0))
{
int i = mlen < 6 ? mlen : 6;
while (--i >= 0)
buf[i] = pstr->trans[p[i]];
+ pp = buf;
}
/* XXX Don't use mbrtowc, we know which conversion
to use (UTF-8 -> UCS4). */
memset (&cur_state, 0, sizeof (cur_state));
- mbclen = __mbrtowc (&wc2, (const char *) p, mlen,
+ mbclen = __mbrtowc (&wc2, (const char *) pp, mlen,
&cur_state);
if (raw + offset - p <= mbclen
&& mbclen < (size_t) -2)
diff --git a/libc/posix/regex_internal.h b/libc/posix/regex_internal.h
index 1a210f996..575dbfd83 100644
--- a/libc/posix/regex_internal.h
+++ b/libc/posix/regex_internal.h
@@ -1,5 +1,5 @@
/* Extended regular expression matching and search library.
- Copyright (C) 2002-2005, 2007, 2008 Free Software Foundation, Inc.
+ Copyright (C) 2002-2005, 2007, 2008, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
@@ -763,7 +763,6 @@ re_string_elem_size_at (const re_string_t *pstr, int idx)
# ifdef _LIBC
const unsigned char *p, *extra;
const int32_t *table, *indirect;
- int32_t tmp;
# include <locale/weight.h>
uint_fast32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
@@ -775,7 +774,7 @@ re_string_elem_size_at (const re_string_t *pstr, int idx)
indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE,
_NL_COLLATE_INDIRECTMB);
p = pstr->mbs + idx;
- tmp = findidx (&p);
+ findidx (&p);
return p - pstr->mbs - idx;
}
else
diff --git a/libc/posix/sys/wait.h b/libc/posix/sys/wait.h
index 6d7f0684c..a5fd58f9d 100644
--- a/libc/posix/sys/wait.h
+++ b/libc/posix/sys/wait.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-1994,1996-2001,2003,2004,2005,2007,2009,2010
+/* Copyright (C) 1991-1994,1996-2001,2003,2004,2005,2007,2009,2010,2011
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -167,13 +167,13 @@ struct rusage;
WUNTRACED bit is set in OPTIONS, return status for stopped children;
otherwise don't. */
extern __pid_t wait3 (__WAIT_STATUS __stat_loc, int __options,
- struct rusage * __usage) __THROW;
+ struct rusage * __usage) __THROWNL;
#endif
#ifdef __USE_BSD
/* PID is like waitpid. Other args are like wait3. */
extern __pid_t wait4 (__pid_t __pid, __WAIT_STATUS __stat_loc, int __options,
- struct rusage *__usage) __THROW;
+ struct rusage *__usage) __THROWNL;
#endif /* Use BSD. */
diff --git a/libc/posix/tst-rfc3484-2.c b/libc/posix/tst-rfc3484-2.c
index bf5f6cff7..298fe6695 100644
--- a/libc/posix/tst-rfc3484-2.c
+++ b/libc/posix/tst-rfc3484-2.c
@@ -21,6 +21,12 @@ __check_pf (bool *p1, bool *p2, struct in6addrinfo **in6ai, size_t *in6ailen)
void
attribute_hidden
+__free_in6ai (struct in6addrinfo *ai)
+{
+}
+
+void
+attribute_hidden
__check_native (uint32_t a1_index, int *a1_native,
uint32_t a2_index, int *a2_native)
{
diff --git a/libc/posix/tst-rfc3484-3.c b/libc/posix/tst-rfc3484-3.c
index 8eba74e48..701f534bb 100644
--- a/libc/posix/tst-rfc3484-3.c
+++ b/libc/posix/tst-rfc3484-3.c
@@ -21,6 +21,12 @@ __check_pf (bool *p1, bool *p2, struct in6addrinfo **in6ai, size_t *in6ailen)
void
attribute_hidden
+__free_in6ai (struct in6addrinfo *ai)
+{
+}
+
+void
+attribute_hidden
__check_native (uint32_t a1_index, int *a1_native,
uint32_t a2_index, int *a2_native)
{
diff --git a/libc/posix/tst-rfc3484.c b/libc/posix/tst-rfc3484.c
index 26835cf8b..f77dc4c2c 100644
--- a/libc/posix/tst-rfc3484.c
+++ b/libc/posix/tst-rfc3484.c
@@ -21,6 +21,12 @@ __check_pf (bool *p1, bool *p2, struct in6addrinfo **in6ai, size_t *in6ailen)
void
attribute_hidden
+__free_in6ai (struct in6addrinfo *ai)
+{
+}
+
+void
+attribute_hidden
__check_native (uint32_t a1_index, int *a1_native,
uint32_t a2_index, int *a2_native)
{
diff --git a/libc/posix/unistd.h b/libc/posix/unistd.h
index f3ba5c764..b799b778c 100644
--- a/libc/posix/unistd.h
+++ b/libc/posix/unistd.h
@@ -776,7 +776,7 @@ extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid)
/* Clone the calling process, creating an exact copy.
Return -1 for errors, 0 to the new process,
and the process ID of the new process to the old process. */
-extern __pid_t fork (void) __THROW;
+extern __pid_t fork (void) __THROWNL;
#if (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8) \
|| defined __USE_BSD
diff --git a/libc/resolv/getaddrinfo_a.c b/libc/resolv/getaddrinfo_a.c
index f6af3aa45..6f4ad8d81 100644
--- a/libc/resolv/getaddrinfo_a.c
+++ b/libc/resolv/getaddrinfo_a.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2006, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
@@ -125,8 +125,8 @@ getaddrinfo_a (int mode, struct gaicb *list[], int ent, struct sigevent *sig)
while (total > 0)
{
#ifdef DONT_NEED_GAI_MISC_COND
- int result;
- GAI_MISC_WAIT (result, total, NULL, 1);
+ int not_used __attribute__ ((unused));
+ GAI_MISC_WAIT (not_used, total, NULL, 1);
#else
pthread_cond_wait (&cond, &__gai_requests_mutex);
#endif
diff --git a/libc/resolv/gethnamaddr.c b/libc/resolv/gethnamaddr.c
index 5cf660a8d..a8ccf1fd3 100644
--- a/libc/resolv/gethnamaddr.c
+++ b/libc/resolv/gethnamaddr.c
@@ -585,7 +585,7 @@ gethostbyname2(name, af)
}
if (!isdigit(*cp) && *cp != '.')
break;
- }
+ }
if ((isxdigit(name[0]) && strchr(name, ':') != NULL) ||
name[0] == ':')
for (cp = name;; ++cp) {
@@ -787,7 +787,7 @@ _sethtent(f)
int f;
{
if (!hostf)
- hostf = fopen(_PATH_HOSTS, "r" );
+ hostf = fopen(_PATH_HOSTS, "rce" );
else
rewind(hostf);
stayopen = f;
@@ -810,7 +810,7 @@ _gethtent()
register char *cp, **q;
int af, len;
- if (!hostf && !(hostf = fopen(_PATH_HOSTS, "r" ))) {
+ if (!hostf && !(hostf = fopen(_PATH_HOSTS, "rce" ))) {
__set_h_errno (NETDB_INTERNAL);
return (NULL);
}
diff --git a/libc/resolv/res_hconf.c b/libc/resolv/res_hconf.c
index 7b167bb3b..6f831ec6b 100644
--- a/libc/resolv/res_hconf.c
+++ b/libc/resolv/res_hconf.c
@@ -307,7 +307,7 @@ do_init (void)
if (hconf_name == NULL)
hconf_name = _PATH_HOSTCONF;
- fp = fopen (hconf_name, "rc");
+ fp = fopen (hconf_name, "rce");
if (fp)
{
/* No threads using this stream. */
diff --git a/libc/resolv/res_query.c b/libc/resolv/res_query.c
index 2f7cfaa4b..947c6513a 100644
--- a/libc/resolv/res_query.c
+++ b/libc/resolv/res_query.c
@@ -602,7 +602,7 @@ res_hostalias(const res_state statp, const char *name, char *dst, size_t siz) {
if (statp->options & RES_NOALIASES)
return (NULL);
file = getenv("HOSTALIASES");
- if (file == NULL || (fp = fopen(file, "r")) == NULL)
+ if (file == NULL || (fp = fopen(file, "rce")) == NULL)
return (NULL);
setbuf(fp, NULL);
buf[sizeof(buf) - 1] = '\0';
diff --git a/libc/scripts/check-local-headers.sh b/libc/scripts/check-local-headers.sh
index b73078d36..62831ddda 100755
--- a/libc/scripts/check-local-headers.sh
+++ b/libc/scripts/check-local-headers.sh
@@ -29,7 +29,7 @@ exec ${AWK} -v includedir="$includedir" '
BEGIN {
status = 0
exclude = "^" includedir \
- "/(asm[-/]|linux/|selinux/|gd|nss3/|sys/capability\\.h)"
+ "/(asm[-/]|linux/|selinux/|gd|nss3/|sys/capability\\.h|libaudit\\.h)"
}
/^[^ ]/ && $1 ~ /.*:/ { obj = $1 }
{
diff --git a/libc/scripts/list-sources.sh b/libc/scripts/list-sources.sh
index 41c8b9ead..53b6f7f0e 100755
--- a/libc/scripts/list-sources.sh
+++ b/libc/scripts/list-sources.sh
@@ -9,23 +9,7 @@ case $# in
*) echo >&2 "Usage: $0 [top_srcdir]"; exit 2 ;;
esac
-if [ -r CVS/Entries ]; then
-
- ${CVS:-cvs} status 2>&1 | ${AWK:-awk} '
-NF >= 2 && $(NF - 1) == "Examining" { dir = $NF }
-$1 == "File:" { print (dir == ".") ? $2 : (dir "/" $2) }'
- exit $?
-
-elif [ -r .svn/entries ]; then
-
- ${SVN:-svn} ls -R | sed '/\/$/d'
- exit $?
-
-elif [ -r MT/options ]; then
-
- exec ${MONOTONE:-monotone} list known
-
-elif [ -r .git/HEAD ]; then
+if [ -r .git/HEAD ]; then
exec ${GIT:-git} ls-files
diff --git a/libc/setjmp/bits/setjmp2.h b/libc/setjmp/bits/setjmp2.h
index b2f8efac4..ad65d2597 100644
--- a/libc/setjmp/bits/setjmp2.h
+++ b/libc/setjmp/bits/setjmp2.h
@@ -1,5 +1,5 @@
/* Checking macros for setjmp functions.
- Copyright (C) 2009 Free Software Foundation, Inc.
+ Copyright (C) 2009, 2011 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
@@ -23,18 +23,18 @@
/* Variant of the longjmp functions which perform some sanity checking. */
#ifdef __REDIRECT_NTH
-extern void __REDIRECT_NTH (longjmp,
- (struct __jmp_buf_tag __env[1], int __val),
- __longjmp_chk) __attribute__ ((__noreturn__));
-extern void __REDIRECT_NTH (_longjmp,
- (struct __jmp_buf_tag __env[1], int __val),
- __longjmp_chk) __attribute__ ((__noreturn__));
-extern void __REDIRECT_NTH (siglongjmp,
- (struct __jmp_buf_tag __env[1], int __val),
- __longjmp_chk) __attribute__ ((__noreturn__));
+extern void __REDIRECT_NTHNL (longjmp,
+ (struct __jmp_buf_tag __env[1], int __val),
+ __longjmp_chk) __attribute__ ((__noreturn__));
+extern void __REDIRECT_NTHNL (_longjmp,
+ (struct __jmp_buf_tag __env[1], int __val),
+ __longjmp_chk) __attribute__ ((__noreturn__));
+extern void __REDIRECT_NTHNL (siglongjmp,
+ (struct __jmp_buf_tag __env[1], int __val),
+ __longjmp_chk) __attribute__ ((__noreturn__));
#else
extern void __longjmp_chk (struct __jmp_buf_tag __env[1], int __val),
- __THROW __attribute__ ((__noreturn__));
+ __THROWNL __attribute__ ((__noreturn__));
# define longjmp __longjmp_chk
# define _longjmp __longjmp_chk
# define siglongjmp __longjmp_chk
diff --git a/libc/setjmp/setjmp.h b/libc/setjmp/setjmp.h
index 3bc382ff1..fd57ab645 100644
--- a/libc/setjmp/setjmp.h
+++ b/libc/setjmp/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-1999,2001,2002,2007,2009 Free Software Foundation, Inc.
+/* Copyright (C) 1991-1999,2001,2002,2007,2009,2011 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
@@ -50,19 +50,19 @@ typedef struct __jmp_buf_tag jmp_buf[1];
/* Store the calling environment in ENV, also saving the signal mask.
Return 0. */
-extern int setjmp (jmp_buf __env) __THROW;
+extern int setjmp (jmp_buf __env) __THROWNL;
__END_NAMESPACE_STD
/* Store the calling environment in ENV, also saving the
signal mask if SAVEMASK is nonzero. Return 0.
This is the internal name for `sigsetjmp'. */
-extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) __THROW;
+extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) __THROWNL;
#ifndef __FAVOR_BSD
/* Store the calling environment in ENV, not saving the signal mask.
Return 0. */
-extern int _setjmp (struct __jmp_buf_tag __env[1]) __THROW;
+extern int _setjmp (struct __jmp_buf_tag __env[1]) __THROWNL;
/* Do not save the signal mask. This is equivalent to the `_setjmp'
BSD function. */
@@ -80,7 +80,7 @@ __BEGIN_NAMESPACE_STD
/* Jump to the environment saved in ENV, making the
`setjmp' call there return VAL, or 1 if VAL is 0. */
extern void longjmp (struct __jmp_buf_tag __env[1], int __val)
- __THROW __attribute__ ((__noreturn__));
+ __THROWNL __attribute__ ((__noreturn__));
__END_NAMESPACE_STD
@@ -89,7 +89,7 @@ __END_NAMESPACE_STD
the signal mask. But it is how ENV was saved that determines whether
`longjmp' restores the mask; `_longjmp' is just an alias. */
extern void _longjmp (struct __jmp_buf_tag __env[1], int __val)
- __THROW __attribute__ ((__noreturn__));
+ __THROWNL __attribute__ ((__noreturn__));
#endif
@@ -108,7 +108,7 @@ typedef struct __jmp_buf_tag sigjmp_buf[1];
Restore the signal mask if that sigsetjmp call saved it.
This is just an alias `longjmp'. */
extern void siglongjmp (sigjmp_buf __env, int __val)
- __THROW __attribute__ ((__noreturn__));
+ __THROWNL __attribute__ ((__noreturn__));
#endif /* Use POSIX. */
diff --git a/libc/stdlib/ucontext.h b/libc/stdlib/ucontext.h
index ee6f594f0..abeb6471d 100644
--- a/libc/stdlib/ucontext.h
+++ b/libc/stdlib/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999, 2000, 2011 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
@@ -29,15 +29,15 @@
__BEGIN_DECLS
/* Get user context and store it in variable pointed to by UCP. */
-extern int getcontext (ucontext_t *__ucp) __THROW;
+extern int getcontext (ucontext_t *__ucp) __THROWNL;
/* Set user context from information of variable pointed to by UCP. */
-extern int setcontext (__const ucontext_t *__ucp) __THROW;
+extern int setcontext (__const ucontext_t *__ucp) __THROWNL;
/* Save current context in context variable pointed to by OUCP and set
context from variable pointed to by UCP. */
extern int swapcontext (ucontext_t *__restrict __oucp,
- __const ucontext_t *__restrict __ucp) __THROW;
+ __const ucontext_t *__restrict __ucp) __THROWNL;
/* Manipulate user context UCP to continue with calling functions FUNC
and the ARGC-1 parameters following ARGC when the context is used
diff --git a/libc/string/Makefile b/libc/string/Makefile
index 46d32188b..5a8d84023 100644
--- a/libc/string/Makefile
+++ b/libc/string/Makefile
@@ -54,7 +54,7 @@ strop-tests := memchr memcmp memcpy memmove mempcpy memset memccpy \
stpcpy stpncpy strcat strchr strcmp strcpy strcspn \
strlen strncmp strncpy strpbrk strrchr strspn memmem \
strstr strcasestr strnlen strcasecmp strncasecmp \
- strncat rawmemchr
+ strncat rawmemchr strchrnul
tests := tester inl-tester noinl-tester testcopy test-ffs \
tst-strlen stratcliff tst-svc tst-inlcall \
bug-strncat1 bug-strspn1 bug-strpbrk1 tst-bswap \
diff --git a/libc/string/test-strchr.c b/libc/string/test-strchr.c
index 3bbc2f570..a46ee82c1 100644
--- a/libc/string/test-strchr.c
+++ b/libc/string/test-strchr.c
@@ -23,7 +23,13 @@
#include "test-string.h"
#ifndef WIDE
-# define STRCHR strchr
+# ifdef USE_FOR_STRCHRNUL
+# define STRCHR strchrnul
+# define stupid_STRCHR stupid_STRCHRNUL
+# define simple_STRCHR simple_STRCHRNUL
+# else
+# define STRCHR strchr
+# endif
# define STRLEN strlen
# define CHAR char
# define BIG_CHAR CHAR_MAX
@@ -41,6 +47,13 @@
# define UCHAR wchar_t
#endif
+#ifdef USE_FOR_STRCHRNUL
+# define NULLRET(endptr) endptr
+#else
+# define NULLRET(endptr) NULL
+#endif
+
+
typedef CHAR *(*proto_t) (const CHAR *, int);
CHAR *
@@ -48,7 +61,7 @@ simple_STRCHR (const CHAR *s, int c)
{
for (; *s != (CHAR) c; ++s)
if (*s == '\0')
- return NULL;
+ return NULLRET ((CHAR *) s);
return (CHAR *) s;
}
@@ -60,7 +73,7 @@ stupid_STRCHR (const CHAR *s, int c)
while (n--)
if (*s++ == (CHAR) c)
return (CHAR *) s - 1;
- return NULL;
+ return NULLRET ((CHAR *) s - 1);
}
IMPL (stupid_STRCHR, 0)
@@ -73,8 +86,8 @@ do_one_test (impl_t *impl, const CHAR *s, int c, const CHAR *exp_res)
CHAR *res = CALL (impl, s, c);
if (res != exp_res)
{
- error (0, 0, "Wrong result in function %s %p %p", impl->name,
- res, exp_res);
+ error (0, 0, "Wrong result in function %s %#x %p %p", impl->name,
+ c, res, exp_res);
ret = 1;
return;
}
@@ -129,7 +142,7 @@ do_test (size_t align, size_t pos, size_t len, int seek_char, int max_char)
else if (seek_char == 0)
result = buf + align + len;
else
- result = NULL;
+ result = NULLRET (buf + align + len);
if (HP_TIMING_AVAIL)
printf ("Length %4zd, alignment in bytes %2zd:",
@@ -198,7 +211,7 @@ do_random_tests (void)
else if (seek_char == 0)
result = (CHAR *) (p + len + align);
else
- result = NULL;
+ result = NULLRET ((CHAR *) (p + len + align));
FOR_EACH_IMPL (impl, 1)
if (CALL (impl, (CHAR *) (p + align), seek_char) != result)
diff --git a/libc/string/test-strchrnul.c b/libc/string/test-strchrnul.c
new file mode 100644
index 000000000..9836af6dd
--- /dev/null
+++ b/libc/string/test-strchrnul.c
@@ -0,0 +1,2 @@
+#define USE_FOR_STRCHRNUL 1
+#include "test-strchr.c"
diff --git a/libc/sunrpc/rpc_prot.c b/libc/sunrpc/rpc_prot.c
index b19dff765..9a23cc1b0 100644
--- a/libc/sunrpc/rpc_prot.c
+++ b/libc/sunrpc/rpc_prot.c
@@ -214,7 +214,7 @@ rejected (enum reject_stat rjct_stat,
{
switch (rjct_stat)
{
- case RPC_VERSMISMATCH:
+ case RPC_MISMATCH:
error->re_status = RPC_VERSMISMATCH;
return;
case AUTH_ERROR:
diff --git a/libc/sysdeps/generic/dwarf2.h b/libc/sysdeps/generic/dwarf2.h
index 9fca4c00e..26ceef68c 100644
--- a/libc/sysdeps/generic/dwarf2.h
+++ b/libc/sysdeps/generic/dwarf2.h
@@ -1,6 +1,6 @@
/* Declarations and definitions of codes relating to the DWARF2 symbolic
debugging information format.
- Copyright (C) 1992, 1993, 1995, 1996, 1997, 2000
+ Copyright (C) 1992, 1993, 1995, 1996, 1997, 2000, 2011
Free Software Foundation, Inc.
Contributed by Gary Funck (gary@intrepid.com). Derived from the
DWARF 1 implementation written by Ron Guilmette (rfg@monkeys.com).
@@ -22,6 +22,9 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
+#ifndef _DWARF2_H
+#define _DWARF2_H 1
+
/* This file is derived from the DWARF specification (a public document)
Revision 2.0.0 (July 27, 1993) developed by the UNIX International
Programming Languages Special Interest Group (UI/PLSIG) and distributed
@@ -31,6 +34,7 @@
/* This file is shared between GCC and GDB, and should not contain
prototypes. */
+#ifndef __ASSEMBLER__
/* Tag names and codes. */
enum dwarf_tag
@@ -560,6 +564,7 @@ enum dwarf_macinfo_record_type
DW_MACINFO_vendor_ext = 255
};
+#endif /* !ASSEMBLER */
/* @@@ For use with GNU frame unwind information. */
@@ -583,3 +588,5 @@ enum dwarf_macinfo_record_type
#define DW_EH_PE_aligned 0x50
#define DW_EH_PE_indirect 0x80
+
+#endif /* dwarf2.h */
diff --git a/libc/sysdeps/generic/sysdep.h b/libc/sysdeps/generic/sysdep.h
index 54884d9af..eecbd731f 100644
--- a/libc/sysdeps/generic/sysdep.h
+++ b/libc/sysdeps/generic/sysdep.h
@@ -1,5 +1,6 @@
/* Generic asm macros used on many machines.
- Copyright (C) 1991,92,93,96,98,2002,2003,2009 Free Software Foundation, Inc.
+ Copyright (C) 1991-1993,96,98,2002,2003,2009,2011
+ 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,19 +21,19 @@
#ifndef C_LABEL
/* Define a macro we can use to construct the asm name for a C symbol. */
-#ifdef NO_UNDERSCORES
-#ifdef __STDC__
-#define C_LABEL(name) name##:
-#else
-#define C_LABEL(name) name/**/:
-#endif
-#else
-#ifdef __STDC__
-#define C_LABEL(name) _##name##:
-#else
-#define C_LABEL(name) _/**/name/**/:
-#endif
-#endif
+# ifdef NO_UNDERSCORES
+# ifdef __STDC__
+# define C_LABEL(name) name##:
+# else
+# define C_LABEL(name) name/**/:
+# endif
+# else
+# ifdef __STDC__
+# define C_LABEL(name) _##name##:
+# else
+# define C_LABEL(name) _/**/name/**/:
+# endif
+# endif
#endif
@@ -40,15 +41,17 @@
/* Mark the end of function named SYM. This is used on some platforms
to generate correct debugging information. */
# ifndef END
-# define END(sym)
+# define END(sym)
# endif
# ifndef JUMPTARGET
-# define JUMPTARGET(sym) sym
+# define JUMPTARGET(sym) sym
# endif
+#endif
/* Makros to generate eh_frame unwind information. */
-# ifdef HAVE_ASM_CFI_DIRECTIVES
+#ifdef HAVE_ASM_CFI_DIRECTIVES
+# ifdef __ASSEMBLER__
# define cfi_startproc .cfi_startproc
# define cfi_endproc .cfi_endproc
# define cfi_def_cfa(reg, off) .cfi_def_cfa reg, off
@@ -67,29 +70,9 @@
# define cfi_window_save .cfi_window_save
# define cfi_personality(enc, exp) .cfi_personality enc, exp
# define cfi_lsda(enc, exp) .cfi_lsda enc, exp
-# else
-# define cfi_startproc
-# define cfi_endproc
-# define cfi_def_cfa(reg, off)
-# define cfi_def_cfa_register(reg)
-# define cfi_def_cfa_offset(off)
-# define cfi_adjust_cfa_offset(off)
-# define cfi_offset(reg, off)
-# define cfi_rel_offset(reg, off)
-# define cfi_register(r1, r2)
-# define cfi_return_column(reg)
-# define cfi_restore(reg)
-# define cfi_same_value(reg)
-# define cfi_undefined(reg)
-# define cfi_remember_state
-# define cfi_restore_state
-# define cfi_window_save
-# define cfi_personality(enc, exp)
-# define cfi_lsda(enc, exp)
-# endif
-#else /* ! ASSEMBLER */
-# ifdef HAVE_ASM_CFI_DIRECTIVES
+# else /* ! ASSEMBLER */
+
# define CFI_STRINGIFY(Name) CFI_STRINGIFY2 (Name)
# define CFI_STRINGIFY2(Name) #Name
# define CFI_STARTPROC ".cfi_startproc"
@@ -124,43 +107,27 @@
".cfi_personality " CFI_STRINGIFY(enc) "," CFI_STRINGIFY(exp)
# define CFI_LSDA(enc, exp) \
".cfi_lsda " CFI_STRINGIFY(enc) "," CFI_STRINGIFY(exp)
-# else
-# define CFI_STARTPROC
-# define CFI_ENDPROC
-# define CFI_DEF_CFA(reg, off)
-# define CFI_DEF_CFA_REGISTER(reg)
-# define CFI_DEF_CFA_OFFSET(off)
-# define CFI_ADJUST_CFA_OFFSET(off)
-# define CFI_OFFSET(reg, off)
-# define CFI_REL_OFFSET(reg, off)
-# define CFI_REGISTER(r1, r2)
-# define CFI_RETURN_COLUMN(reg)
-# define CFI_RESTORE(reg)
-# define CFI_UNDEFINED(reg)
-# define CFI_REMEMBER_STATE
-# define CFI_RESTORE_STATE
-# define CFI_WINDOW_SAVE
-# define CFI_PERSONALITY(enc, exp)
-# define CFI_LSDA(enc, exp)
# endif
-#endif /* __ASSEMBLER__ */
+#else
+
+# define CFI_STARTPROC
+# define CFI_ENDPROC
+# define CFI_DEF_CFA(reg, off)
+# define CFI_DEF_CFA_REGISTER(reg)
+# define CFI_DEF_CFA_OFFSET(off)
+# define CFI_ADJUST_CFA_OFFSET(off)
+# define CFI_OFFSET(reg, off)
+# define CFI_REL_OFFSET(reg, off)
+# define CFI_REGISTER(r1, r2)
+# define CFI_RETURN_COLUMN(reg)
+# define CFI_RESTORE(reg)
+# define CFI_UNDEFINED(reg)
+# define CFI_REMEMBER_STATE
+# define CFI_RESTORE_STATE
+# define CFI_WINDOW_SAVE
+# define CFI_PERSONALITY(enc, exp)
+# define CFI_LSDA(enc, exp)
+#endif
-/* Values used for encoding parameter of cfi_personality and cfi_lsda. */
-#define DW_EH_PE_absptr 0x00
-#define DW_EH_PE_omit 0xff
-#define DW_EH_PE_uleb128 0x01
-#define DW_EH_PE_udata2 0x02
-#define DW_EH_PE_udata4 0x03
-#define DW_EH_PE_udata8 0x04
-#define DW_EH_PE_sleb128 0x09
-#define DW_EH_PE_sdata2 0x0a
-#define DW_EH_PE_sdata4 0x0b
-#define DW_EH_PE_sdata8 0x0c
-#define DW_EH_PE_signed 0x08
-#define DW_EH_PE_pcrel 0x10
-#define DW_EH_PE_textrel 0x20
-#define DW_EH_PE_datarel 0x30
-#define DW_EH_PE_funcrel 0x40
-#define DW_EH_PE_aligned 0x50
-#define DW_EH_PE_indirect 0x80
+#include "dwarf2.h"
diff --git a/libc/sysdeps/i386/i686/multiarch/Makefile b/libc/sysdeps/i386/i686/multiarch/Makefile
index 5f1853877..426b718e4 100644
--- a/libc/sysdeps/i386/i686/multiarch/Makefile
+++ b/libc/sysdeps/i386/i686/multiarch/Makefile
@@ -4,6 +4,7 @@ gen-as-const-headers += ifunc-defines.sym
endif
ifeq ($(subdir),string)
+gen-as-const-headers += locale-defines.sym
sysdep_routines += bzero-sse2 memset-sse2 memcpy-ssse3 mempcpy-ssse3 \
memmove-ssse3 memcpy-ssse3-rep mempcpy-ssse3-rep \
memmove-ssse3-rep bcopy-ssse3 bcopy-ssse3-rep \
@@ -15,11 +16,13 @@ sysdep_routines += bzero-sse2 memset-sse2 memcpy-ssse3 mempcpy-ssse3 \
strncpy-sse2 stpcpy-sse2 stpncpy-sse2 strcat-ssse3 \
strcat-sse2 strncat-ssse3 strncat-sse2 strncat-c \
strchr-sse2 strrchr-sse2 strchr-sse2-bsf strrchr-sse2-bsf \
- wcscmp-sse2 wcscmp-c memchr-sse2 memchr-sse2-bsf \
+ memchr-sse2 memchr-sse2-bsf \
memrchr-sse2 memrchr-sse2-bsf memrchr-c \
rawmemchr-sse2 rawmemchr-sse2-bsf \
- strnlen-sse2 strnlen-c wcslen-sse2 wcslen-c \
- wmemcmp-sse4 wmemcmp-ssse3 wmemcmp-c
+ strnlen-sse2 strnlen-c \
+ strcasecmp_l-c strcasecmp-c strcasecmp_l-ssse3 \
+ strncase_l-c strncase-c strncase_l-ssse3 \
+ strcasecmp_l-sse4 strncase_l-sse4
ifeq (yes,$(config-cflags-sse4))
sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c
CFLAGS-varshift.c += -msse4
@@ -32,6 +35,11 @@ CFLAGS-strcasestr-nonascii.c += -msse4
endif
endif
+ifeq ($(subdir),wcsmbs)
+sysdep_routines += wcscmp-sse2 wcscmp-c wcslen-sse2 wcslen-c \
+ wmemcmp-sse4 wmemcmp-ssse3 wmemcmp-c
+endif
+
ifeq (mathyes,$(subdir)$(config-cflags-avx))
libm-sysdep_routines += s_fma-fma s_fmaf-fma
CFLAGS-s_fma-fma.c += -mavx -mfpmath=sse
diff --git a/libc/sysdeps/i386/i686/multiarch/locale-defines.sym b/libc/sysdeps/i386/i686/multiarch/locale-defines.sym
new file mode 100644
index 000000000..aebff9a4f
--- /dev/null
+++ b/libc/sysdeps/i386/i686/multiarch/locale-defines.sym
@@ -0,0 +1,11 @@
+#include <locale/localeinfo.h>
+#include <langinfo.h>
+#include <stddef.h>
+
+--
+
+LOCALE_T___LOCALES offsetof (struct __locale_struct, __locales)
+LC_CTYPE
+_NL_CTYPE_NONASCII_CASE
+LOCALE_DATA_VALUES offsetof (struct __locale_data, values)
+SIZEOF_VALUES sizeof (((struct __locale_data *) 0)->values[0])
diff --git a/libc/sysdeps/i386/i686/multiarch/strcasecmp-c.c b/libc/sysdeps/i386/i686/multiarch/strcasecmp-c.c
new file mode 100644
index 000000000..753c6ec84
--- /dev/null
+++ b/libc/sysdeps/i386/i686/multiarch/strcasecmp-c.c
@@ -0,0 +1,12 @@
+#include <string.h>
+
+extern __typeof (strcasecmp) __strcasecmp_nonascii;
+
+#define __strcasecmp __strcasecmp_nonascii
+#include <string/strcasecmp.c>
+
+strong_alias (__strcasecmp_nonascii, __strcasecmp_ia32)
+
+/* The needs of strcasecmp in libc are minimal, no need to go through
+ the IFUNC. */
+strong_alias (__strcasecmp_nonascii, __GI___strcasecmp)
diff --git a/libc/sysdeps/i386/i686/multiarch/strcasecmp.S b/libc/sysdeps/i386/i686/multiarch/strcasecmp.S
new file mode 100644
index 000000000..97603d884
--- /dev/null
+++ b/libc/sysdeps/i386/i686/multiarch/strcasecmp.S
@@ -0,0 +1,68 @@
+/* Entry point for multi-version x86 strcasecmp.
+ Copyright (C) 2011 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 <sysdep.h>
+#include <init-arch.h>
+
+#ifdef SHARED
+ .text
+ENTRY(__strcasecmp)
+ .type __strcasecmp, @gnu_indirect_function
+ pushl %ebx
+ cfi_adjust_cfa_offset (4)
+ cfi_rel_offset (ebx, 0)
+ call __i686.get_pc_thunk.bx
+ addl $_GLOBAL_OFFSET_TABLE_, %ebx
+ cmpl $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
+ jne 1f
+ call __init_cpu_features
+1: leal __strcasecmp_ia32@GOTOFF(%ebx), %eax
+ testl $bit_SSSE3, CPUID_OFFSET+index_SSSE3+__cpu_features@GOTOFF(%ebx)
+ jz 2f
+ leal __strcasecmp_ssse3@GOTOFF(%ebx), %eax
+ testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx)
+ jz 2f
+ leal __strcasecmp_sse4_2@GOTOFF(%ebx), %eax
+2: popl %ebx
+ cfi_adjust_cfa_offset (-4)
+ cfi_restore (ebx)
+ ret
+END(__strcasecmp)
+#else
+ .text
+ENTRY(__strcasecmp)
+ .type __strcasecmp, @gnu_indirect_function
+ cmpl $0, KIND_OFFSET+__cpu_features
+ jne 1f
+ call __init_cpu_features
+1: leal __strcasecmp_ia32, %eax
+ testl $bit_SSSE3, CPUID_OFFSET+index_SSSE3+__cpu_features
+ jz 2f
+ leal __strcasecmp_ssse3, %eax
+#if 0
+ // XXX Temporarily
+ testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features
+ jz 2f
+ leal __strcasecmp_sse4_2, %eax
+#endif
+2: ret
+END(__strcasecmp)
+#endif
+
+weak_alias (__strcasecmp, strcasecmp)
diff --git a/libc/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c b/libc/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c
new file mode 100644
index 000000000..d10e87256
--- /dev/null
+++ b/libc/sysdeps/i386/i686/multiarch/strcasecmp_l-c.c
@@ -0,0 +1,11 @@
+#include <string.h>
+
+extern __typeof (strcasecmp_l) __strcasecmp_l_nonascii;
+
+#define __strcasecmp_l __strcasecmp_l_nonascii
+#define USE_IN_EXTENDED_LOCALE_MODEL 1
+#include <string/strcasecmp.c>
+
+/* The needs of strcasecmp in libc are minimal, no need to go through
+ the IFUNC. */
+strong_alias (__strcasecmp_l_nonascii, __GI___strcasecmp_l)
diff --git a/libc/sysdeps/i386/i686/multiarch/strcasecmp_l-sse4.S b/libc/sysdeps/i386/i686/multiarch/strcasecmp_l-sse4.S
new file mode 100644
index 000000000..411d4153f
--- /dev/null
+++ b/libc/sysdeps/i386/i686/multiarch/strcasecmp_l-sse4.S
@@ -0,0 +1,2 @@
+#define USE_AS_STRCASECMP_L 1
+#include "strcmp-sse4.S"
diff --git a/libc/sysdeps/i386/i686/multiarch/strcasecmp_l-ssse3.S b/libc/sysdeps/i386/i686/multiarch/strcasecmp_l-ssse3.S
new file mode 100644
index 000000000..a22b93c51
--- /dev/null
+++ b/libc/sysdeps/i386/i686/multiarch/strcasecmp_l-ssse3.S
@@ -0,0 +1,2 @@
+#define USE_AS_STRCASECMP_L 1
+#include "strcmp-ssse3.S"
diff --git a/libc/sysdeps/i386/i686/multiarch/strcasecmp_l.S b/libc/sysdeps/i386/i686/multiarch/strcasecmp_l.S
new file mode 100644
index 000000000..1322bd86d
--- /dev/null
+++ b/libc/sysdeps/i386/i686/multiarch/strcasecmp_l.S
@@ -0,0 +1,5 @@
+#define STRCMP __strcasecmp_l
+#define USE_AS_STRCASECMP_L
+#include "strcmp.S"
+
+weak_alias (__strcasecmp_l, strcasecmp_l)
diff --git a/libc/sysdeps/i386/i686/multiarch/strcmp-sse4.S b/libc/sysdeps/i386/i686/multiarch/strcmp-sse4.S
index 0de0a113c..c9e0317b6 100644
--- a/libc/sysdeps/i386/i686/multiarch/strcmp-sse4.S
+++ b/libc/sysdeps/i386/i686/multiarch/strcmp-sse4.S
@@ -1,5 +1,5 @@
/* strcmp with SSE4.2
- Copyright (C) 2010 Free Software Foundation, Inc.
+ Copyright (C) 2010, 2011 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -34,33 +34,184 @@
#define PUSH(REG) pushl REG; CFI_PUSH (REG)
#define POP(REG) popl REG; CFI_POP (REG)
-#ifndef USE_AS_STRNCMP
+#ifdef USE_AS_STRNCMP
# ifndef STRCMP
-# define STRCMP __strcmp_sse4_2
+# define STRCMP __strncmp_sse4_2
# endif
-# define STR1 4
+# define STR1 8
# define STR2 STR1+4
-# define RETURN ret; .p2align 4
-#else
+# define CNT STR2+4
+# define RETURN POP (REM); ret; .p2align 4; CFI_PUSH (REM)
+# define REM %ebp
+#elif defined USE_AS_STRCASECMP_L
+# include "locale-defines.h"
# ifndef STRCMP
-# define STRCMP __strncmp_sse4_2
+# define STRCMP __strcasecmp_l_sse4_2
+# endif
+# ifdef PIC
+# define STR1 12
+# else
+# define STR1 8
+# endif
+# define STR2 STR1+4
+# define LOCALE 12 /* Loaded before the adjustement. */
+# ifdef PIC
+# define RETURN POP (%edi); POP (%ebx); ret; \
+ .p2align 4; CFI_PUSH (%ebx); CFI_PUSH (%edi)
+# else
+# define RETURN POP (%edi); ret; .p2align 4; CFI_PUSH (%edi)
+# endif
+# define NONASCII __strcasecmp_nonascii
+#elif defined USE_AS_STRNCASECMP_L
+# include "locale-defines.h"
+# ifndef STRCMP
+# define STRCMP __strncasecmp_l_sse4_2
+# endif
+# ifdef PIC
+# define STR1 16
+# else
+# define STR1 12
# endif
-# define STR1 8
# define STR2 STR1+4
# define CNT STR2+4
-# define RETURN POP (%ebp); ret; .p2align 4; CFI_PUSH (%ebp)
+# define LOCALE 16 /* Loaded before the adjustement. */
+# ifdef PIC
+# define RETURN POP (%edi); POP (REM); POP (%ebx); ret; \
+ .p2align 4; \
+ CFI_PUSH (%ebx); CFI_PUSH (REM); CFI_PUSH (%edi)
+# else
+# define RETURN POP (%edi); POP (REM); ret; \
+ .p2align 4; CFI_PUSH (REM); CFI_PUSH (%edi)
+# endif
+# define REM %ebp
+# define NONASCII __strncasecmp_nonascii
+#else
+# ifndef STRCMP
+# define STRCMP __strcmp_sse4_2
+# endif
+# define STR1 4
+# define STR2 STR1+4
+# define RETURN ret; .p2align 4
#endif
.section .text.sse4.2,"ax",@progbits
-ENTRY (STRCMP)
-#ifdef USE_AS_STRNCMP
- PUSH (%ebp)
+
+#ifdef USE_AS_STRCASECMP_L
+ENTRY (__strcasecmp_sse4_2)
+# ifdef PIC
+ PUSH (%ebx)
+ call __i686.get_pc_thunk.bx
+ addl $_GLOBAL_OFFSET_TABLE_, %ebx
+ movl __libc_tsd_LOCALE@GOTNTPOFF(%ebx), %eax
+# ifdef NO_TLS_DIRECT_SEG_REFS
+ addl %gs:0, %eax
+ movl (%eax), %eax
+# else
+ movl %gs:(%eax), %eax
+# endif
+# else
+# ifdef NO_TLS_DIRECT_SEG_REFS
+ movl %gs:0, %eax
+ movl __libc_tsd_LOCALE@NTPOFF(%eax), %eax
+# else
+ movl %gs:__libc_tsd_LOCALE@NTPOFF, %eax
+# endif
+# endif
+# if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0
+ movl LOCALE_T___LOCALES+LC_CTYPE*4(%eax), %eax
+# else
+ movl (%eax), %eax
+# endif
+ testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax)
+ jne __strcasecmp_nonascii
+ jmp L(ascii)
+END (__strcasecmp_sse4_2)
+#endif
+
+#ifdef USE_AS_STRNCASECMP_L
+ENTRY (__strncasecmp_sse4_2)
+# ifdef PIC
+ PUSH (%ebx)
+ call __i686.get_pc_thunk.bx
+ addl $_GLOBAL_OFFSET_TABLE_, %ebx
+ movl __libc_tsd_LOCALE@GOTNTPOFF(%ebx), %eax
+# ifdef NO_TLS_DIRECT_SEG_REFS
+ addl %gs:0, %eax
+ movl (%eax), %eax
+# else
+ movl %gs:(%eax), %eax
+# endif
+# else
+# ifdef NO_TLS_DIRECT_SEG_REFS
+ movl %gs:0, %eax
+ movl __libc_tsd_LOCALE@NTPOFF(%eax), %eax
+# else
+ movl %gs:__libc_tsd_LOCALE@NTPOFF, %eax
+# endif
+# endif
+# if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0
+ movl LOCALE_T___LOCALES+LC_CTYPE*4(%eax), %eax
+# else
+ movl (%eax), %eax
+# endif
+ testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax)
+ jne __strncasecmp_nonascii
+ jmp L(ascii)
+END (__strncasecmp_sse4_2)
+#endif
+
+ ENTRY (STRCMP)
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+ movl LOCALE(%esp), %eax
+# if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0
+ movl LOCALE_T___LOCALES+LC_CTYPE*4(%eax), %eax
+# else
+ movl (%eax), %eax
+# endif
+ testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax)
+ jne NONASCII
+
+# ifdef PIC
+ PUSH (%ebx)
+ call __i686.get_pc_thunk.bx
+ addl $_GLOBAL_OFFSET_TABLE_, %ebx
+# endif
+L(ascii):
+ .section .rodata.cst16,"aM",@progbits,16
+ .align 16
+.Lbelowupper:
+ .quad 0x4040404040404040
+ .quad 0x4040404040404040
+.Ltopupper:
+ .quad 0x5b5b5b5b5b5b5b5b
+ .quad 0x5b5b5b5b5b5b5b5b
+.Ltouppermask:
+ .quad 0x2020202020202020
+ .quad 0x2020202020202020
+ .previous
+
+# ifdef PIC
+# define UCLOW_reg .Lbelowupper@GOTOFF(%ebx)
+# define UCHIGH_reg .Ltopupper@GOTOFF(%ebx)
+# define LCQWORD_reg .Ltouppermask@GOTOFF(%ebx)
+# else
+# define UCLOW_reg .Lbelowupper
+# define UCHIGH_reg .Ltopupper
+# define LCQWORD_reg .Ltouppermask
+# endif
+#endif
+
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ PUSH (REM)
+#endif
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+ PUSH (%edi)
#endif
mov STR1(%esp), %edx
mov STR2(%esp), %eax
-#ifdef USE_AS_STRNCMP
- movl CNT(%esp), %ebp
- test %ebp, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ movl CNT(%esp), REM
+ test REM, REM
je L(eq)
#endif
mov %dx, %cx
@@ -72,10 +223,40 @@ ENTRY (STRCMP)
and $0xfff, %ecx
cmp $0xff0, %ecx
ja L(first4bytes)
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+# define TOLOWER(reg1, reg2) \
+ movdqa reg1, %xmm3; \
+ movdqa UCHIGH_reg, %xmm4; \
+ movdqa reg2, %xmm5; \
+ movdqa UCHIGH_reg, %xmm6; \
+ pcmpgtb UCLOW_reg, %xmm3; \
+ pcmpgtb reg1, %xmm4; \
+ pcmpgtb UCLOW_reg, %xmm5; \
+ pcmpgtb reg2, %xmm6; \
+ pand %xmm4, %xmm3; \
+ pand %xmm6, %xmm5; \
+ pand LCQWORD_reg, %xmm3; \
+ pand LCQWORD_reg, %xmm5; \
+ por %xmm3, reg1; \
+ por %xmm5, reg2
+
+ movdqu (%eax), %xmm1
+ TOLOWER (%xmm2, %xmm1)
+ movd %xmm2, %ecx
+ movd %xmm1, %edi
+ movdqa %xmm2, %xmm3
+ movdqa %xmm1, %xmm4
+ cmpl %edi, %ecx
+#else
+# define TOLOWER(reg1, reg)
+
movd %xmm2, %ecx
cmp (%eax), %ecx
+#endif
jne L(less4bytes)
+#if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
movdqu (%eax), %xmm1
+#endif
pxor %xmm2, %xmm1
pxor %xmm0, %xmm0
ptest %xmm1, %xmm0
@@ -84,113 +265,210 @@ ENTRY (STRCMP)
ptest %xmm2, %xmm0
jnc L(less16bytes)
-#ifdef USE_AS_STRNCMP
- sub $16, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ sub $16, REM
jbe L(eq)
#endif
add $16, %edx
add $16, %eax
L(first4bytes):
movzbl (%eax), %ecx
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+ movzbl (%edx), %edi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%edi,4), %edi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%edi,4), %edi
+# endif
+ cmpl %ecx, %edi
+#else
cmpb %cl, (%edx)
+#endif
jne L(neq)
cmpl $0, %ecx
je L(eq)
-#ifdef USE_AS_STRNCMP
- cmp $1, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $1, REM
je L(eq)
#endif
movzbl 1(%eax), %ecx
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+ movzbl 1(%edx), %edi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%edi,4), %edi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%edi,4), %edi
+# endif
+ cmpl %ecx, %edi
+#else
cmpb %cl, 1(%edx)
+#endif
jne L(neq)
cmpl $0, %ecx
je L(eq)
-#ifdef USE_AS_STRNCMP
- cmp $2, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $2, REM
je L(eq)
#endif
movzbl 2(%eax), %ecx
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+ movzbl 2(%edx), %edi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%edi,4), %edi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%edi,4), %edi
+# endif
+ cmpl %ecx, %edi
+#else
cmpb %cl, 2(%edx)
+#endif
jne L(neq)
cmpl $0, %ecx
je L(eq)
-#ifdef USE_AS_STRNCMP
- cmp $3, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $3, REM
je L(eq)
#endif
movzbl 3(%eax), %ecx
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+ movzbl 3(%edx), %edi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%edi,4), %edi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%edi,4), %edi
+# endif
+ cmpl %ecx, %edi
+#else
cmpb %cl, 3(%edx)
+#endif
jne L(neq)
cmpl $0, %ecx
je L(eq)
-#ifdef USE_AS_STRNCMP
- cmp $4, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $4, REM
je L(eq)
#endif
movzbl 4(%eax), %ecx
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+ movzbl 4(%edx), %edi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%edi,4), %edi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%edi,4), %edi
+# endif
+ cmpl %ecx, %edi
+#else
cmpb %cl, 4(%edx)
+#endif
jne L(neq)
cmpl $0, %ecx
je L(eq)
-#ifdef USE_AS_STRNCMP
- cmp $5, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $5, REM
je L(eq)
#endif
movzbl 5(%eax), %ecx
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+ movzbl 5(%edx), %edi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%edi,4), %edi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%edi,4), %edi
+# endif
+ cmpl %ecx, %edi
+#else
cmpb %cl, 5(%edx)
+#endif
jne L(neq)
cmpl $0, %ecx
je L(eq)
-#ifdef USE_AS_STRNCMP
- cmp $6, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $6, REM
je L(eq)
#endif
movzbl 6(%eax), %ecx
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+ movzbl 6(%edx), %edi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%edi,4), %edi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%edi,4), %edi
+# endif
+ cmpl %ecx, %edi
+#else
cmpb %cl, 6(%edx)
+#endif
jne L(neq)
cmpl $0, %ecx
je L(eq)
-#ifdef USE_AS_STRNCMP
- cmp $7, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $7, REM
je L(eq)
#endif
movzbl 7(%eax), %ecx
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+ movzbl 7(%edx), %edi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%edi,4), %edi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%edi,4), %edi
+# endif
+ cmpl %ecx, %edi
+#else
cmpb %cl, 7(%edx)
+#endif
jne L(neq)
cmpl $0, %ecx
je L(eq)
-#ifdef USE_AS_STRNCMP
- sub $8, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ sub $8, REM
je L(eq)
#endif
add $8, %eax
add $8, %edx
- PUSH (%ebx)
+#if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
PUSH (%edi)
+#endif
PUSH (%esi)
-#ifdef USE_AS_STRNCMP
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
cfi_remember_state
#endif
mov %edx, %edi
mov %eax, %esi
xorl %eax, %eax
L(check_offset):
- movl %edi, %ebx
+ movl %edi, %edx
movl %esi, %ecx
- andl $0xfff, %ebx
+ andl $0xfff, %edx
andl $0xfff, %ecx
- cmpl %ebx, %ecx
- cmovl %ebx, %ecx
+ cmpl %edx, %ecx
+ cmovl %edx, %ecx
lea -0xff0(%ecx), %edx
sub %edx, %edi
sub %edx, %esi
@@ -199,11 +477,12 @@ L(check_offset):
L(loop):
movdqu (%esi,%edx), %xmm2
movdqu (%edi,%edx), %xmm1
+ TOLOWER (%xmm2, %xmm1)
pcmpistri $0x1a, %xmm2, %xmm1
jbe L(end)
-#ifdef USE_AS_STRNCMP
- sub $16, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ sub $16, REM
jbe L(more16byteseq)
#endif
@@ -211,13 +490,22 @@ L(loop):
jle L(loop)
L(crosspage):
movzbl (%edi,%edx), %eax
- movzbl (%esi,%edx), %ebx
- subl %ebx, %eax
+ movzbl (%esi,%edx), %ecx
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%eax,4), %eax
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%eax,4), %eax
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+# endif
+#endif
+ subl %ecx, %eax
jne L(ret)
- testl %ebx, %ebx
+ testl %ecx, %ecx
je L(ret)
-#ifdef USE_AS_STRNCMP
- sub $1, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ sub $1, REM
jbe L(more16byteseq)
#endif
inc %edx
@@ -230,30 +518,44 @@ L(crosspage):
.p2align 4
L(end):
jnc L(ret)
-#ifdef USE_AS_STRNCMP
- sub %ecx, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ sub %ecx, REM
jbe L(more16byteseq)
#endif
- lea (%ecx,%edx), %ebx
- movzbl (%edi,%ebx), %eax
- movzbl (%esi,%ebx), %ecx
+ lea (%ecx,%edx), %ecx
+ movzbl (%edi,%ecx), %eax
+ movzbl (%esi,%ecx), %ecx
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%eax,4), %eax
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%eax,4), %eax
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+# endif
+#endif
subl %ecx, %eax
L(ret):
POP (%esi)
POP (%edi)
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ POP (REM)
+#endif
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+# ifdef PIC
POP (%ebx)
-#ifdef USE_AS_STRNCMP
- POP (%ebp)
+# endif
#endif
ret
.p2align 4
-#ifdef USE_AS_STRNCMP
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
cfi_restore_state
L(more16byteseq):
POP (%esi)
+# ifdef USE_AS_STRNCMP
POP (%edi)
- POP (%ebx)
+# endif
#endif
L(eq):
xorl %eax, %eax
@@ -269,27 +571,45 @@ L(neq_bigger):
L(less16bytes):
add $0xfefefeff, %ecx
jnc L(less4bytes)
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+ movd %xmm3, %edi
+ xor %edi, %ecx
+#else
xor (%edx), %ecx
+#endif
or $0xfefefeff, %ecx
add $1, %ecx
jnz L(less4bytes)
-#ifdef USE_AS_STRNCMP
- cmp $4, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $4, REM
jbe L(eq)
#endif
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+ psrldq $4, %xmm3
+ psrldq $4, %xmm4
+ movd %xmm3, %ecx
+ movd %xmm4, %edi
+ cmp %edi, %ecx
+ mov %ecx, %edi
+#else
mov 4(%edx), %ecx
cmp 4(%eax), %ecx
+#endif
jne L(more4bytes)
add $0xfefefeff, %ecx
jnc L(more4bytes)
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+ xor %edi, %ecx
+#else
xor 4(%edx), %ecx
+#endif
or $0xfefefeff, %ecx
add $1, %ecx
jnz L(more4bytes)
-#ifdef USE_AS_STRNCMP
- sub $8, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ sub $8, REM
jbe L(eq)
#endif
@@ -298,80 +618,176 @@ L(less16bytes):
L(less4bytes):
movzbl (%eax), %ecx
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+ movzbl (%edx), %edi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%edi,4), %edi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%edi,4), %edi
+# endif
+ cmpl %ecx, %edi
+#else
cmpb %cl, (%edx)
+#endif
jne L(neq)
cmpl $0, %ecx
je L(eq)
-#ifdef USE_AS_STRNCMP
- cmp $1, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $1, REM
je L(eq)
#endif
movzbl 1(%eax), %ecx
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+ movzbl 1(%edx), %edi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%edi,4), %edi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%edi,4), %edi
+# endif
+ cmpl %ecx, %edi
+#else
cmpb %cl, 1(%edx)
+#endif
jne L(neq)
cmpl $0, %ecx
je L(eq)
-#ifdef USE_AS_STRNCMP
- cmp $2, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $2, REM
je L(eq)
#endif
movzbl 2(%eax), %ecx
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+ movzbl 2(%edx), %edi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%edi,4), %edi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%edi,4), %edi
+# endif
+ cmpl %ecx, %edi
+#else
cmpb %cl, 2(%edx)
+#endif
jne L(neq)
cmpl $0, %ecx
je L(eq)
-#ifdef USE_AS_STRNCMP
- cmp $3, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $3, REM
je L(eq)
#endif
movzbl 3(%eax), %ecx
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+ movzbl 3(%edx), %edi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%edi,4), %edi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%edi,4), %edi
+# endif
+ cmpl %ecx, %edi
+#else
cmpb %cl, 3(%edx)
+#endif
jne L(neq)
cmpl $0, %ecx
je L(eq)
L(more4bytes):
-#ifdef USE_AS_STRNCMP
- cmp $4, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $4, REM
je L(eq)
#endif
movzbl 4(%eax), %ecx
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+ movzbl 4(%edx), %edi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%edi,4), %edi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%edi,4), %edi
+# endif
+ cmpl %ecx, %edi
+#else
cmpb %cl, 4(%edx)
+#endif
jne L(neq)
cmpl $0, %ecx
je L(eq)
-#ifdef USE_AS_STRNCMP
- cmp $5, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $5, REM
je L(eq)
#endif
movzbl 5(%eax), %ecx
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+ movzbl 5(%edx), %edi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%edi,4), %edi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%edi,4), %edi
+# endif
+ cmpl %ecx, %edi
+#else
cmpb %cl, 5(%edx)
+#endif
jne L(neq)
cmpl $0, %ecx
je L(eq)
-#ifdef USE_AS_STRNCMP
- cmp $6, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $6, REM
je L(eq)
#endif
movzbl 6(%eax), %ecx
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+ movzbl 6(%edx), %edi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%edi,4), %edi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%edi,4), %edi
+# endif
+ cmpl %ecx, %edi
+#else
cmpb %cl, 6(%edx)
+#endif
jne L(neq)
cmpl $0, %ecx
je L(eq)
-#ifdef USE_AS_STRNCMP
- cmp $7, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $7, REM
je L(eq)
#endif
movzbl 7(%eax), %ecx
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+ movzbl 7(%edx), %edi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%edi,4), %edi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%edi,4), %edi
+# endif
+ cmpl %ecx, %edi
+#else
cmpb %cl, 7(%edx)
+#endif
jne L(neq)
jmp L(eq)
diff --git a/libc/sysdeps/i386/i686/multiarch/strcmp-ssse3.S b/libc/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
index 607b69b6f..cbba46550 100644
--- a/libc/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
+++ b/libc/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
@@ -1,5 +1,5 @@
/* strcmp with SSSE3
- Copyright (C) 2010 Free Software Foundation, Inc.
+ Copyright (C) 2010, 2011 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -34,43 +34,201 @@
#define PUSH(REG) pushl REG; CFI_PUSH (REG)
#define POP(REG) popl REG; CFI_POP (REG)
-#ifndef USE_AS_STRNCMP
+#ifdef USE_AS_STRNCMP
# ifndef STRCMP
-# define STRCMP __strcmp_ssse3
+# define STRCMP __strncmp_ssse3
# endif
-# define STR1 4
+# define STR1 8
# define STR2 STR1+4
-# define RETURN ret; .p2align 4
+# define CNT STR2+4
+# define RETURN POP (REM); ret; .p2align 4; CFI_PUSH (REM)
+# define UPDATE_STRNCMP_COUNTER \
+ /* calculate left number to compare */ \
+ mov $16, %esi; \
+ sub %ecx, %esi; \
+ cmp %esi, REM; \
+ jbe L(more8byteseq); \
+ sub %esi, REM
+# define FLAGS %ebx
+# define REM %ebp
+#elif defined USE_AS_STRCASECMP_L
+# include "locale-defines.h"
+# ifndef STRCMP
+# define STRCMP __strcasecmp_l_ssse3
+# endif
+# ifdef PIC
+# define STR1 8
+# else
+# define STR1 4
+# endif
+# define STR2 STR1+4
+# define LOCALE 12 /* Loaded before the adjustement. */
+# ifdef PIC
+# define RETURN POP (%ebx); ret; .p2align 4; CFI_PUSH (%ebx)
+# else
+# define RETURN ret; .p2align 4
+# endif
# define UPDATE_STRNCMP_COUNTER
-#else
+# define FLAGS (%esp)
+# define NONASCII __strcasecmp_nonascii
+#elif defined USE_AS_STRNCASECMP_L
+# include "locale-defines.h"
# ifndef STRCMP
-# define STRCMP __strncmp_ssse3
+# define STRCMP __strncasecmp_l_ssse3
+# endif
+# ifdef PIC
+# define STR1 12
+# else
+# define STR1 8
# endif
-# define STR1 8
# define STR2 STR1+4
# define CNT STR2+4
-# define RETURN POP (%ebp); ret; .p2align 4; CFI_PUSH (%ebp)
+# define LOCALE 16 /* Loaded before the adjustement. */
+# ifdef PIC
+# define RETURN POP (REM); POP (%ebx); ret; \
+ .p2align 4; CFI_PUSH (%ebx); CFI_PUSH (REM)
+# else
+# define RETURN POP (REM); ret; .p2align 4; CFI_PUSH (REM)
+# endif
# define UPDATE_STRNCMP_COUNTER \
/* calculate left number to compare */ \
mov $16, %esi; \
sub %ecx, %esi; \
- cmp %esi, %ebp; \
+ cmp %esi, REM; \
jbe L(more8byteseq); \
- sub %esi, %ebp
+ sub %esi, REM
+# define FLAGS (%esp)
+# define REM %ebp
+# define NONASCII __strncasecmp_nonascii
+#else
+# ifndef STRCMP
+# define STRCMP __strcmp_ssse3
+# endif
+# define STR1 4
+# define STR2 STR1+4
+# define RETURN ret; .p2align 4
+# define UPDATE_STRNCMP_COUNTER
+# define FLAGS %ebx
#endif
.section .text.ssse3,"ax",@progbits
+
+#ifdef USE_AS_STRCASECMP_L
+ENTRY (__strcasecmp_ssse3)
+# ifdef PIC
+ PUSH (%ebx)
+ call __i686.get_pc_thunk.bx
+ addl $_GLOBAL_OFFSET_TABLE_, %ebx
+ movl __libc_tsd_LOCALE@GOTNTPOFF(%ebx), %eax
+# ifdef NO_TLS_DIRECT_SEG_REFS
+ addl %gs:0, %eax
+ movl (%eax), %eax
+# else
+ movl %gs:(%eax), %eax
+# endif
+# else
+# ifdef NO_TLS_DIRECT_SEG_REFS
+ movl %gs:0, %eax
+ movl __libc_tsd_LOCALE@NTPOFF(%eax), %eax
+# else
+ movl %gs:__libc_tsd_LOCALE@NTPOFF, %eax
+# endif
+# endif
+# if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0
+ movl LOCALE_T___LOCALES+LC_CTYPE*4(%eax), %eax
+# else
+ movl (%eax), %eax
+# endif
+ testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax)
+ jne __strcasecmp_nonascii
+ jmp L(ascii)
+END (__strcasecmp_ssse3)
+#endif
+
+#ifdef USE_AS_STRNCASECMP_L
+ENTRY (__strncasecmp_ssse3)
+# ifdef PIC
+ PUSH (%ebx)
+ call __i686.get_pc_thunk.bx
+ addl $_GLOBAL_OFFSET_TABLE_, %ebx
+ movl __libc_tsd_LOCALE@GOTNTPOFF(%ebx), %eax
+# ifdef NO_TLS_DIRECT_SEG_REFS
+ addl %gs:0, %eax
+ movl (%eax), %eax
+# else
+ movl %gs:(%eax), %eax
+# endif
+# else
+# ifdef NO_TLS_DIRECT_SEG_REFS
+ movl %gs:0, %eax
+ movl __libc_tsd_LOCALE@NTPOFF(%eax), %eax
+# else
+ movl %gs:__libc_tsd_LOCALE@NTPOFF, %eax
+# endif
+# endif
+# if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0
+ movl LOCALE_T___LOCALES+LC_CTYPE*4(%eax), %eax
+# else
+ movl (%eax), %eax
+# endif
+ testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax)
+ jne __strncasecmp_nonascii
+ jmp L(ascii)
+END (__strncasecmp_ssse3)
+#endif
+
ENTRY (STRCMP)
-#ifdef USE_AS_STRNCMP
- PUSH (%ebp)
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+ movl LOCALE(%esp), %eax
+# if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0
+ movl LOCALE_T___LOCALES+LC_CTYPE*4(%eax), %eax
+# else
+ movl (%eax), %eax
+# endif
+ testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%eax)
+ jne NONASCII
+
+# ifdef PIC
+ PUSH (%ebx)
+ call __i686.get_pc_thunk.bx
+ addl $_GLOBAL_OFFSET_TABLE_, %ebx
+# endif
+L(ascii):
+ .section .rodata.cst16,"aM",@progbits,16
+ .align 16
+.Lbelowupper:
+ .quad 0x4040404040404040
+ .quad 0x4040404040404040
+.Ltopupper:
+ .quad 0x5b5b5b5b5b5b5b5b
+ .quad 0x5b5b5b5b5b5b5b5b
+.Ltouppermask:
+ .quad 0x2020202020202020
+ .quad 0x2020202020202020
+ .previous
+
+# ifdef PIC
+# define UCLOW_reg .Lbelowupper@GOTOFF(%ebx)
+# define UCHIGH_reg .Ltopupper@GOTOFF(%ebx)
+# define LCQWORD_reg .Ltouppermask@GOTOFF(%ebx)
+# else
+# define UCLOW_reg .Lbelowupper
+# define UCHIGH_reg .Ltopupper
+# define LCQWORD_reg .Ltouppermask
+# endif
#endif
+
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ PUSH (REM)
+#endif
+
movl STR1(%esp), %edx
movl STR2(%esp), %eax
-#ifdef USE_AS_STRNCMP
- movl CNT(%esp), %ebp
- cmp $16, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ movl CNT(%esp), REM
+ cmp $16, REM
jb L(less16bytes_sncmp)
-#else
+#elif !defined USE_AS_STRCASECMP_L
movzbl (%eax), %ecx
cmpb %cl, (%edx)
jne L(neq)
@@ -135,15 +293,35 @@ ENTRY (STRCMP)
movlpd (%edx), %xmm2
movhpd 8(%eax), %xmm1
movhpd 8(%edx), %xmm2
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+# define TOLOWER(reg1, reg2) \
+ movdqa reg1, %xmm5; \
+ movdqa reg2, %xmm7; \
+ movdqa UCHIGH_reg, %xmm6; \
+ pcmpgtb UCLOW_reg, %xmm5; \
+ pcmpgtb UCLOW_reg, %xmm7; \
+ pcmpgtb reg1, %xmm6; \
+ pand %xmm6, %xmm5; \
+ movdqa UCHIGH_reg, %xmm6; \
+ pcmpgtb reg2, %xmm6; \
+ pand %xmm6, %xmm7; \
+ pand LCQWORD_reg, %xmm5; \
+ por %xmm5, reg1; \
+ pand LCQWORD_reg, %xmm7; \
+ por %xmm7, reg2
+ TOLOWER (%xmm1, %xmm2)
+#else
+# define TOLOWER(reg1, reg2)
+#endif
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
psubb %xmm0, %xmm1
pmovmskb %xmm1, %ecx
sub $0xffff, %ecx
jnz L(less16bytes)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(eq)
#endif
add $16, %eax
@@ -151,10 +329,16 @@ ENTRY (STRCMP)
L(crosspage):
- PUSH (%ebx)
+#if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+ PUSH (FLAGS)
+#endif
PUSH (%edi)
PUSH (%esi)
-#ifdef USE_AS_STRNCMP
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+ pushl $0
+ cfi_adjust_cfa_offset (4)
+#endif
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
cfi_remember_state
#endif
@@ -164,11 +348,13 @@ L(crosspage):
and $0xf, %edi
xor %ecx, %eax
xor %edi, %edx
- xor %ebx, %ebx
+#if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+ xor FLAGS, FLAGS
+#endif
cmp %edi, %ecx
je L(ashr_0)
ja L(bigger)
- or $0x20, %ebx
+ orl $0x20, FLAGS
xchg %edx, %eax
xchg %ecx, %edi
L(bigger):
@@ -218,7 +404,13 @@ L(ashr_0):
movdqa (%eax), %xmm1
pxor %xmm0, %xmm0
pcmpeqb %xmm1, %xmm0
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+ movdqa (%edx), %xmm2
+ TOLOWER (%xmm1, %xmm2)
+ pcmpeqb %xmm2, %xmm1
+#else
pcmpeqb (%edx), %xmm1
+#endif
psubb %xmm0, %xmm1
pmovmskb %xmm1, %edi
shr %cl, %esi
@@ -227,23 +419,29 @@ L(ashr_0):
mov %ecx, %edi
jne L(less32bytes)
UPDATE_STRNCMP_COUNTER
- mov $0x10, %ebx
+ movl $0x10, FLAGS
mov $0x10, %ecx
pxor %xmm0, %xmm0
.p2align 4
L(loop_ashr_0):
movdqa (%eax, %ecx), %xmm1
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
movdqa (%edx, %ecx), %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
+#else
+ pcmpeqb %xmm1, %xmm0
+ pcmpeqb (%edx, %ecx), %xmm1
+#endif
psubb %xmm0, %xmm1
pmovmskb %xmm1, %esi
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
add $16, %ecx
@@ -262,6 +460,7 @@ L(ashr_1):
movdqa (%eax), %xmm1
pcmpeqb %xmm1, %xmm0
pslldq $15, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm2
psubb %xmm0, %xmm2
pmovmskb %xmm2, %edi
@@ -276,7 +475,7 @@ L(ashr_1):
movdqa (%edx), %xmm3
pxor %xmm0, %xmm0
mov $16, %ecx
- or $1, %ebx
+ orl $1, FLAGS
lea 1(%edx), %edi
and $0xfff, %edi
sub $0x1000, %edi
@@ -292,6 +491,7 @@ L(gobble_ashr_1):
movdqa %xmm2, %xmm4
palignr $1, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -299,9 +499,9 @@ L(gobble_ashr_1):
pmovmskb %xmm1, %esi
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
@@ -316,6 +516,7 @@ L(gobble_ashr_1):
movdqa %xmm2, %xmm4
palignr $1, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -324,9 +525,9 @@ L(gobble_ashr_1):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
add $16, %ecx
@@ -340,8 +541,8 @@ L(nibble_ashr_1):
test $0xfffe, %esi
jnz L(ashr_1_exittail)
-#ifdef USE_AS_STRNCMP
- cmp $15, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $15, REM
jbe L(ashr_1_exittail)
#endif
pxor %xmm0, %xmm0
@@ -368,6 +569,7 @@ L(ashr_2):
movdqa (%eax), %xmm1
pcmpeqb %xmm1, %xmm0
pslldq $14, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm2
psubb %xmm0, %xmm2
pmovmskb %xmm2, %edi
@@ -382,7 +584,7 @@ L(ashr_2):
movdqa (%edx), %xmm3
pxor %xmm0, %xmm0
mov $16, %ecx
- or $2, %ebx
+ orl $2, FLAGS
lea 2(%edx), %edi
and $0xfff, %edi
sub $0x1000, %edi
@@ -398,6 +600,7 @@ L(gobble_ashr_2):
movdqa %xmm2, %xmm4
palignr $2, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -406,9 +609,9 @@ L(gobble_ashr_2):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
add $16, %ecx
@@ -422,6 +625,7 @@ L(gobble_ashr_2):
movdqa %xmm2, %xmm4
palignr $2, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -430,9 +634,9 @@ L(gobble_ashr_2):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
add $16, %ecx
@@ -446,8 +650,8 @@ L(nibble_ashr_2):
test $0xfffc, %esi
jnz L(ashr_2_exittail)
-#ifdef USE_AS_STRNCMP
- cmp $14, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $14, REM
jbe L(ashr_2_exittail)
#endif
@@ -475,6 +679,7 @@ L(ashr_3):
movdqa (%eax), %xmm1
pcmpeqb %xmm1, %xmm0
pslldq $13, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm2
psubb %xmm0, %xmm2
pmovmskb %xmm2, %edi
@@ -489,7 +694,7 @@ L(ashr_3):
movdqa (%edx), %xmm3
pxor %xmm0, %xmm0
mov $16, %ecx
- or $3, %ebx
+ orl $3, FLAGS
lea 3(%edx), %edi
and $0xfff, %edi
sub $0x1000, %edi
@@ -505,6 +710,7 @@ L(gobble_ashr_3):
movdqa %xmm2, %xmm4
palignr $3, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -513,9 +719,9 @@ L(gobble_ashr_3):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
add $16, %ecx
@@ -529,6 +735,7 @@ L(gobble_ashr_3):
movdqa %xmm2, %xmm4
palignr $3, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -537,9 +744,9 @@ L(gobble_ashr_3):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
add $16, %ecx
@@ -553,8 +760,8 @@ L(nibble_ashr_3):
test $0xfff8, %esi
jnz L(ashr_3_exittail)
-#ifdef USE_AS_STRNCMP
- cmp $13, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $13, REM
jbe L(ashr_3_exittail)
#endif
pxor %xmm0, %xmm0
@@ -581,6 +788,7 @@ L(ashr_4):
movdqa (%eax), %xmm1
pcmpeqb %xmm1, %xmm0
pslldq $12, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm2
psubb %xmm0, %xmm2
pmovmskb %xmm2, %edi
@@ -595,7 +803,7 @@ L(ashr_4):
movdqa (%edx), %xmm3
pxor %xmm0, %xmm0
mov $16, %ecx
- or $4, %ebx
+ orl $4, FLAGS
lea 4(%edx), %edi
and $0xfff, %edi
sub $0x1000, %edi
@@ -611,6 +819,7 @@ L(gobble_ashr_4):
movdqa %xmm2, %xmm4
palignr $4, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -619,9 +828,9 @@ L(gobble_ashr_4):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
@@ -636,6 +845,7 @@ L(gobble_ashr_4):
movdqa %xmm2, %xmm4
palignr $4, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -644,9 +854,9 @@ L(gobble_ashr_4):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
@@ -661,8 +871,8 @@ L(nibble_ashr_4):
test $0xfff0, %esi
jnz L(ashr_4_exittail)
-#ifdef USE_AS_STRNCMP
- cmp $12, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $12, REM
jbe L(ashr_4_exittail)
#endif
@@ -690,6 +900,7 @@ L(ashr_5):
movdqa (%eax), %xmm1
pcmpeqb %xmm1, %xmm0
pslldq $11, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm2
psubb %xmm0, %xmm2
pmovmskb %xmm2, %edi
@@ -704,7 +915,7 @@ L(ashr_5):
movdqa (%edx), %xmm3
pxor %xmm0, %xmm0
mov $16, %ecx
- or $5, %ebx
+ orl $5, FLAGS
lea 5(%edx), %edi
and $0xfff, %edi
sub $0x1000, %edi
@@ -720,6 +931,7 @@ L(gobble_ashr_5):
movdqa %xmm2, %xmm4
palignr $5, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -728,9 +940,9 @@ L(gobble_ashr_5):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
add $16, %ecx
@@ -744,6 +956,7 @@ L(gobble_ashr_5):
movdqa %xmm2, %xmm4
palignr $5, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -752,9 +965,9 @@ L(gobble_ashr_5):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
add $16, %ecx
@@ -768,8 +981,8 @@ L(nibble_ashr_5):
test $0xffe0, %esi
jnz L(ashr_5_exittail)
-#ifdef USE_AS_STRNCMP
- cmp $11, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $11, REM
jbe L(ashr_5_exittail)
#endif
pxor %xmm0, %xmm0
@@ -797,6 +1010,7 @@ L(ashr_6):
movdqa (%eax), %xmm1
pcmpeqb %xmm1, %xmm0
pslldq $10, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm2
psubb %xmm0, %xmm2
pmovmskb %xmm2, %edi
@@ -811,7 +1025,7 @@ L(ashr_6):
movdqa (%edx), %xmm3
pxor %xmm0, %xmm0
mov $16, %ecx
- or $6, %ebx
+ orl $6, FLAGS
lea 6(%edx), %edi
and $0xfff, %edi
sub $0x1000, %edi
@@ -827,6 +1041,7 @@ L(gobble_ashr_6):
movdqa %xmm2, %xmm4
palignr $6, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -835,9 +1050,9 @@ L(gobble_ashr_6):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
@@ -852,6 +1067,7 @@ L(gobble_ashr_6):
movdqa %xmm2, %xmm4
palignr $6, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -859,9 +1075,9 @@ L(gobble_ashr_6):
pmovmskb %xmm1, %esi
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
@@ -876,8 +1092,8 @@ L(nibble_ashr_6):
test $0xffc0, %esi
jnz L(ashr_6_exittail)
-#ifdef USE_AS_STRNCMP
- cmp $10, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $10, REM
jbe L(ashr_6_exittail)
#endif
pxor %xmm0, %xmm0
@@ -905,6 +1121,7 @@ L(ashr_7):
movdqa (%eax), %xmm1
pcmpeqb %xmm1, %xmm0
pslldq $9, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm2
psubb %xmm0, %xmm2
pmovmskb %xmm2, %edi
@@ -919,7 +1136,7 @@ L(ashr_7):
movdqa (%edx), %xmm3
pxor %xmm0, %xmm0
mov $16, %ecx
- or $7, %ebx
+ orl $7, FLAGS
lea 8(%edx), %edi
and $0xfff, %edi
sub $0x1000, %edi
@@ -935,6 +1152,7 @@ L(gobble_ashr_7):
movdqa %xmm2, %xmm4
palignr $7, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -943,9 +1161,9 @@ L(gobble_ashr_7):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
@@ -960,6 +1178,7 @@ L(gobble_ashr_7):
movdqa %xmm2, %xmm4
palignr $7, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -968,9 +1187,9 @@ L(gobble_ashr_7):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
@@ -985,8 +1204,8 @@ L(nibble_ashr_7):
test $0xff80, %esi
jnz L(ashr_7_exittail)
-#ifdef USE_AS_STRNCMP
- cmp $9, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $9, REM
jbe L(ashr_7_exittail)
#endif
pxor %xmm0, %xmm0
@@ -1014,6 +1233,7 @@ L(ashr_8):
movdqa (%eax), %xmm1
pcmpeqb %xmm1, %xmm0
pslldq $8, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm2
psubb %xmm0, %xmm2
pmovmskb %xmm2, %edi
@@ -1028,7 +1248,7 @@ L(ashr_8):
movdqa (%edx), %xmm3
pxor %xmm0, %xmm0
mov $16, %ecx
- or $8, %ebx
+ orl $8, FLAGS
lea 8(%edx), %edi
and $0xfff, %edi
sub $0x1000, %edi
@@ -1044,6 +1264,7 @@ L(gobble_ashr_8):
movdqa %xmm2, %xmm4
palignr $8, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -1052,9 +1273,9 @@ L(gobble_ashr_8):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
add $16, %ecx
@@ -1068,6 +1289,7 @@ L(gobble_ashr_8):
movdqa %xmm2, %xmm4
palignr $8, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -1076,9 +1298,9 @@ L(gobble_ashr_8):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
add $16, %ecx
@@ -1092,8 +1314,8 @@ L(nibble_ashr_8):
test $0xff00, %esi
jnz L(ashr_8_exittail)
-#ifdef USE_AS_STRNCMP
- cmp $8, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $8, REM
jbe L(ashr_8_exittail)
#endif
pxor %xmm0, %xmm0
@@ -1121,6 +1343,7 @@ L(ashr_9):
movdqa (%eax), %xmm1
pcmpeqb %xmm1, %xmm0
pslldq $7, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm2
psubb %xmm0, %xmm2
pmovmskb %xmm2, %edi
@@ -1135,7 +1358,7 @@ L(ashr_9):
movdqa (%edx), %xmm3
pxor %xmm0, %xmm0
mov $16, %ecx
- or $9, %ebx
+ orl $9, FLAGS
lea 9(%edx), %edi
and $0xfff, %edi
sub $0x1000, %edi
@@ -1151,6 +1374,7 @@ L(gobble_ashr_9):
movdqa %xmm2, %xmm4
palignr $9, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -1159,9 +1383,9 @@ L(gobble_ashr_9):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
add $16, %ecx
@@ -1175,6 +1399,7 @@ L(gobble_ashr_9):
movdqa %xmm2, %xmm4
palignr $9, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -1183,9 +1408,9 @@ L(gobble_ashr_9):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
add $16, %ecx
@@ -1199,8 +1424,8 @@ L(nibble_ashr_9):
test $0xfe00, %esi
jnz L(ashr_9_exittail)
-#ifdef USE_AS_STRNCMP
- cmp $7, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $7, REM
jbe L(ashr_9_exittail)
#endif
pxor %xmm0, %xmm0
@@ -1227,6 +1452,7 @@ L(ashr_10):
movdqa (%eax), %xmm1
pcmpeqb %xmm1, %xmm0
pslldq $6, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm2
psubb %xmm0, %xmm2
pmovmskb %xmm2, %edi
@@ -1241,7 +1467,7 @@ L(ashr_10):
movdqa (%edx), %xmm3
pxor %xmm0, %xmm0
mov $16, %ecx
- or $10, %ebx
+ orl $10, FLAGS
lea 10(%edx), %edi
and $0xfff, %edi
sub $0x1000, %edi
@@ -1257,6 +1483,7 @@ L(gobble_ashr_10):
movdqa %xmm2, %xmm4
palignr $10, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -1265,9 +1492,9 @@ L(gobble_ashr_10):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
add $16, %ecx
@@ -1281,6 +1508,7 @@ L(gobble_ashr_10):
movdqa %xmm2, %xmm4
palignr $10, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -1289,9 +1517,9 @@ L(gobble_ashr_10):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
add $16, %ecx
@@ -1305,8 +1533,8 @@ L(nibble_ashr_10):
test $0xfc00, %esi
jnz L(ashr_10_exittail)
-#ifdef USE_AS_STRNCMP
- cmp $6, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $6, REM
jbe L(ashr_10_exittail)
#endif
pxor %xmm0, %xmm0
@@ -1333,6 +1561,7 @@ L(ashr_11):
movdqa (%eax), %xmm1
pcmpeqb %xmm1, %xmm0
pslldq $5, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm2
psubb %xmm0, %xmm2
pmovmskb %xmm2, %edi
@@ -1347,7 +1576,7 @@ L(ashr_11):
movdqa (%edx), %xmm3
pxor %xmm0, %xmm0
mov $16, %ecx
- or $11, %ebx
+ orl $11, FLAGS
lea 11(%edx), %edi
and $0xfff, %edi
sub $0x1000, %edi
@@ -1363,6 +1592,7 @@ L(gobble_ashr_11):
movdqa %xmm2, %xmm4
palignr $11, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -1371,9 +1601,9 @@ L(gobble_ashr_11):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
add $16, %ecx
@@ -1387,6 +1617,7 @@ L(gobble_ashr_11):
movdqa %xmm2, %xmm4
palignr $11, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -1395,9 +1626,9 @@ L(gobble_ashr_11):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
add $16, %ecx
@@ -1411,8 +1642,8 @@ L(nibble_ashr_11):
test $0xf800, %esi
jnz L(ashr_11_exittail)
-#ifdef USE_AS_STRNCMP
- cmp $5, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $5, REM
jbe L(ashr_11_exittail)
#endif
pxor %xmm0, %xmm0
@@ -1439,6 +1670,7 @@ L(ashr_12):
movdqa (%eax), %xmm1
pcmpeqb %xmm1, %xmm0
pslldq $4, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm2
psubb %xmm0, %xmm2
pmovmskb %xmm2, %edi
@@ -1453,7 +1685,7 @@ L(ashr_12):
movdqa (%edx), %xmm3
pxor %xmm0, %xmm0
mov $16, %ecx
- or $12, %ebx
+ orl $12, FLAGS
lea 12(%edx), %edi
and $0xfff, %edi
sub $0x1000, %edi
@@ -1469,6 +1701,7 @@ L(gobble_ashr_12):
movdqa %xmm2, %xmm4
palignr $12, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -1477,9 +1710,9 @@ L(gobble_ashr_12):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
@@ -1494,6 +1727,7 @@ L(gobble_ashr_12):
movdqa %xmm2, %xmm4
palignr $12, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -1502,9 +1736,9 @@ L(gobble_ashr_12):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
add $16, %ecx
@@ -1518,8 +1752,8 @@ L(nibble_ashr_12):
test $0xf000, %esi
jnz L(ashr_12_exittail)
-#ifdef USE_AS_STRNCMP
- cmp $4, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $4, REM
jbe L(ashr_12_exittail)
#endif
pxor %xmm0, %xmm0
@@ -1546,6 +1780,7 @@ L(ashr_13):
movdqa (%eax), %xmm1
pcmpeqb %xmm1, %xmm0
pslldq $3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm2
psubb %xmm0, %xmm2
pmovmskb %xmm2, %edi
@@ -1560,7 +1795,7 @@ L(ashr_13):
movdqa (%edx), %xmm3
pxor %xmm0, %xmm0
mov $16, %ecx
- or $13, %ebx
+ orl $13, FLAGS
lea 13(%edx), %edi
and $0xfff, %edi
sub $0x1000, %edi
@@ -1576,6 +1811,7 @@ L(gobble_ashr_13):
movdqa %xmm2, %xmm4
palignr $13, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -1584,9 +1820,9 @@ L(gobble_ashr_13):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
add $16, %ecx
@@ -1600,6 +1836,7 @@ L(gobble_ashr_13):
movdqa %xmm2, %xmm4
palignr $13, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -1608,9 +1845,9 @@ L(gobble_ashr_13):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
add $16, %ecx
@@ -1624,8 +1861,8 @@ L(nibble_ashr_13):
test $0xe000, %esi
jnz L(ashr_13_exittail)
-#ifdef USE_AS_STRNCMP
- cmp $3, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $3, REM
jbe L(ashr_13_exittail)
#endif
pxor %xmm0, %xmm0
@@ -1652,6 +1889,7 @@ L(ashr_14):
movdqa (%eax), %xmm1
pcmpeqb %xmm1, %xmm0
pslldq $2, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm2
psubb %xmm0, %xmm2
pmovmskb %xmm2, %edi
@@ -1666,7 +1904,7 @@ L(ashr_14):
movdqa (%edx), %xmm3
pxor %xmm0, %xmm0
mov $16, %ecx
- or $14, %ebx
+ orl $14, FLAGS
lea 14(%edx), %edi
and $0xfff, %edi
sub $0x1000, %edi
@@ -1682,6 +1920,7 @@ L(gobble_ashr_14):
movdqa %xmm2, %xmm4
palignr $14, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -1690,9 +1929,9 @@ L(gobble_ashr_14):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
add $16, %ecx
@@ -1706,6 +1945,7 @@ L(gobble_ashr_14):
movdqa %xmm2, %xmm4
palignr $14, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -1714,9 +1954,9 @@ L(gobble_ashr_14):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
add $16, %ecx
@@ -1730,8 +1970,8 @@ L(nibble_ashr_14):
test $0xc000, %esi
jnz L(ashr_14_exittail)
-#ifdef USE_AS_STRNCMP
- cmp $2, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $2, REM
jbe L(ashr_14_exittail)
#endif
pxor %xmm0, %xmm0
@@ -1759,6 +1999,7 @@ L(ashr_15):
movdqa (%eax), %xmm1
pcmpeqb %xmm1, %xmm0
pslldq $1, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm2
psubb %xmm0, %xmm2
pmovmskb %xmm2, %edi
@@ -1773,7 +2014,7 @@ L(ashr_15):
movdqa (%edx), %xmm3
pxor %xmm0, %xmm0
mov $16, %ecx
- or $15, %ebx
+ orl $15, FLAGS
lea 15(%edx), %edi
and $0xfff, %edi
sub $0x1000, %edi
@@ -1789,6 +2030,7 @@ L(gobble_ashr_15):
movdqa %xmm2, %xmm4
palignr $15, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -1797,9 +2039,9 @@ L(gobble_ashr_15):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
add $16, %ecx
@@ -1813,6 +2055,7 @@ L(gobble_ashr_15):
movdqa %xmm2, %xmm4
palignr $15, %xmm3, %xmm2
+ TOLOWER (%xmm1, %xmm2)
pcmpeqb %xmm1, %xmm0
pcmpeqb %xmm2, %xmm1
@@ -1821,9 +2064,9 @@ L(gobble_ashr_15):
sub $0xffff, %esi
jnz L(exit)
-#ifdef USE_AS_STRNCMP
- cmp $16, %ebp
- lea -16(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $16, REM
+ lea -16(REM), REM
jbe L(more8byteseq)
#endif
add $16, %ecx
@@ -1837,8 +2080,8 @@ L(nibble_ashr_15):
test $0x8000, %esi
jnz L(ashr_15_exittail)
-#ifdef USE_AS_STRNCMP
- cmp $1, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $1, REM
jbe L(ashr_15_exittail)
#endif
pxor %xmm0, %xmm0
@@ -1854,27 +2097,34 @@ L(ashr_15_exittail):
.p2align 4
L(aftertail):
+ TOLOWER (%xmm1, %xmm3)
pcmpeqb %xmm3, %xmm1
psubb %xmm0, %xmm1
pmovmskb %xmm1, %esi
not %esi
L(exit):
- mov %ebx, %edi
+ mov FLAGS, %edi
and $0x1f, %edi
lea -16(%edi, %ecx), %edi
L(less32bytes):
add %edi, %edx
add %ecx, %eax
- test $0x20, %ebx
+ testl $0x20, FLAGS
jz L(ret2)
xchg %eax, %edx
.p2align 4
L(ret2):
mov %esi, %ecx
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+ addl $4, %esp
+ cfi_adjust_cfa_offset (-4)
+#endif
POP (%esi)
POP (%edi)
- POP (%ebx)
+#if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+ POP (FLAGS)
+#endif
L(less16bytes):
test %cl, %cl
jz L(2next_8_bytes)
@@ -1899,100 +2149,179 @@ L(less16bytes):
test $0x40, %cl
jnz L(Byte6)
-#ifdef USE_AS_STRNCMP
- cmp $7, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $7, REM
jbe L(eq)
#endif
movzx 7(%eax), %ecx
movzx 7(%edx), %eax
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%eax,4), %eax
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%eax,4), %eax
+# endif
+#endif
sub %ecx, %eax
RETURN
L(Byte0):
-#ifdef USE_AS_STRNCMP
- cmp $0, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $0, REM
jbe L(eq)
#endif
movzx (%eax), %ecx
movzx (%edx), %eax
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%eax,4), %eax
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%eax,4), %eax
+# endif
+#endif
+
sub %ecx, %eax
RETURN
L(Byte1):
-#ifdef USE_AS_STRNCMP
- cmp $1, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $1, REM
jbe L(eq)
#endif
movzx 1(%eax), %ecx
movzx 1(%edx), %eax
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%eax,4), %eax
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%eax,4), %eax
+# endif
+#endif
+
sub %ecx, %eax
RETURN
L(Byte2):
-#ifdef USE_AS_STRNCMP
- cmp $2, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $2, REM
jbe L(eq)
#endif
movzx 2(%eax), %ecx
movzx 2(%edx), %eax
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%eax,4), %eax
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%eax,4), %eax
+# endif
+#endif
+
sub %ecx, %eax
RETURN
L(Byte3):
-#ifdef USE_AS_STRNCMP
- cmp $3, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $3, REM
jbe L(eq)
#endif
movzx 3(%eax), %ecx
movzx 3(%edx), %eax
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%eax,4), %eax
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%eax,4), %eax
+# endif
+#endif
+
sub %ecx, %eax
RETURN
L(Byte4):
-#ifdef USE_AS_STRNCMP
- cmp $4, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $4, REM
jbe L(eq)
#endif
movzx 4(%eax), %ecx
movzx 4(%edx), %eax
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%eax,4), %eax
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%eax,4), %eax
+# endif
+#endif
+
sub %ecx, %eax
RETURN
L(Byte5):
-#ifdef USE_AS_STRNCMP
- cmp $5, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $5, REM
jbe L(eq)
#endif
movzx 5(%eax), %ecx
movzx 5(%edx), %eax
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%eax,4), %eax
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%eax,4), %eax
+# endif
+#endif
+
sub %ecx, %eax
RETURN
L(Byte6):
-#ifdef USE_AS_STRNCMP
- cmp $6, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $6, REM
jbe L(eq)
#endif
movzx 6(%eax), %ecx
movzx 6(%edx), %eax
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%eax,4), %eax
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%eax,4), %eax
+# endif
+#endif
+
sub %ecx, %eax
RETURN
L(2next_8_bytes):
add $8, %eax
add $8, %edx
-#ifdef USE_AS_STRNCMP
- cmp $8, %ebp
- lea -8(%ebp), %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $8, REM
+ lea -8(REM), REM
jbe L(eq)
#endif
@@ -2017,196 +2346,455 @@ L(2next_8_bytes):
test $0x40, %ch
jnz L(Byte6)
-#ifdef USE_AS_STRNCMP
- cmp $7, %ebp
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ cmp $7, REM
jbe L(eq)
#endif
movzx 7(%eax), %ecx
movzx 7(%edx), %eax
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%eax,4), %eax
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%eax,4), %eax
+# endif
+#endif
+
sub %ecx, %eax
RETURN
+#ifdef USE_AS_STRNCMP
+L(neq_sncmp):
+#endif
L(neq):
mov $1, %eax
ja L(neq_bigger)
neg %eax
L(neq_bigger):
-#ifdef USE_AS_STRNCMP
- POP (%ebp)
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+ addl $4, %esp
+ cfi_adjust_cfa_offset (-4)
+#endif
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ POP (REM)
+#endif
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+# ifdef PIC
+ POP (%ebx)
+# endif
#endif
ret
-#ifdef USE_AS_STRNCMP
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
.p2align 4
cfi_restore_state
L(more8byteseq):
+
+# ifdef USE_AS_STRNCASECMP_L
+ addl $4, %esp
+ cfi_adjust_cfa_offset (-4)
+# endif
POP (%esi)
POP (%edi)
- POP (%ebx)
+# ifdef USE_AS_STRNCMP
+ POP (FLAGS)
+# endif
#endif
+#ifdef USE_AS_STRNCMP
+L(eq_sncmp):
+#endif
L(eq):
-#ifdef USE_AS_STRNCMP
- POP (%ebp)
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+ POP (REM)
+#endif
+#if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
+# ifdef PIC
+ POP (%ebx)
+# endif
#endif
xorl %eax, %eax
ret
-#ifdef USE_AS_STRNCMP
+#if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
.p2align 4
- CFI_PUSH (%ebp)
+# if defined USE_AS_STRNCASECMP_L && defined PIC
+ CFI_PUSH (%ebx)
+# endif
+ CFI_PUSH (REM)
L(less16bytes_sncmp):
- test %ebp, %ebp
- jz L(eq)
+# ifdef USE_AS_STRNCASECMP_L
+ PUSH (%esi)
+# endif
+ test REM, REM
+ jz L(eq_sncmp)
movzbl (%eax), %ecx
+# ifdef USE_AS_STRNCASECMP_L
+ movzbl (%edx), %esi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
+# endif
+ cmpl %ecx, %esi
+# else
cmpb %cl, (%edx)
- jne L(neq)
+# endif
+ jne L(neq_sncmp)
test %cl, %cl
je L(eq)
- cmp $1, %ebp
- je L(eq)
+ cmp $1, REM
+ je L(eq_sncmp)
movzbl 1(%eax), %ecx
+# ifdef USE_AS_STRNCASECMP_L
+ movzbl 1(%edx), %esi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
+# endif
+ cmpl %ecx, %esi
+# else
cmpb %cl, 1(%edx)
- jne L(neq)
+# endif
+ jne L(neq_sncmp)
test %cl, %cl
- je L(eq)
+ je L(eq_sncmp)
- cmp $2, %ebp
- je L(eq)
+ cmp $2, REM
+ je L(eq_sncmp)
movzbl 2(%eax), %ecx
+# ifdef USE_AS_STRNCASECMP_L
+ movzbl 2(%edx), %esi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
+# endif
+ cmpl %ecx, %esi
+# else
cmpb %cl, 2(%edx)
- jne L(neq)
+# endif
+ jne L(neq_sncmp)
test %cl, %cl
- je L(eq)
+ je L(eq_sncmp)
- cmp $3, %ebp
- je L(eq)
+ cmp $3, REM
+ je L(eq_sncmp)
movzbl 3(%eax), %ecx
+# ifdef USE_AS_STRNCASECMP_L
+ movzbl 3(%edx), %esi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
+# endif
+ cmpl %ecx, %esi
+# else
cmpb %cl, 3(%edx)
- jne L(neq)
+# endif
+ jne L(neq_sncmp)
test %cl, %cl
- je L(eq)
+ je L(eq_sncmp)
- cmp $4, %ebp
- je L(eq)
+ cmp $4, REM
+ je L(eq_sncmp)
movzbl 4(%eax), %ecx
+# ifdef USE_AS_STRNCASECMP_L
+ movzbl 4(%edx), %esi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
+# endif
+ cmpl %ecx, %esi
+# else
cmpb %cl, 4(%edx)
- jne L(neq)
+# endif
+ jne L(neq_sncmp)
test %cl, %cl
- je L(eq)
+ je L(eq_sncmp)
- cmp $5, %ebp
- je L(eq)
+ cmp $5, REM
+ je L(eq_sncmp)
movzbl 5(%eax), %ecx
+# ifdef USE_AS_STRNCASECMP_L
+ movzbl 5(%edx), %esi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
+# endif
+ cmpl %ecx, %esi
+# else
cmpb %cl, 5(%edx)
- jne L(neq)
+# endif
+ jne L(neq_sncmp)
test %cl, %cl
- je L(eq)
+ je L(eq_sncmp)
- cmp $6, %ebp
- je L(eq)
+ cmp $6, REM
+ je L(eq_sncmp)
movzbl 6(%eax), %ecx
+# ifdef USE_AS_STRNCASECMP_L
+ movzbl 6(%edx), %esi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
+# endif
+ cmpl %ecx, %esi
+# else
cmpb %cl, 6(%edx)
- jne L(neq)
+# endif
+ jne L(neq_sncmp)
test %cl, %cl
- je L(eq)
+ je L(eq_sncmp)
- cmp $7, %ebp
- je L(eq)
+ cmp $7, REM
+ je L(eq_sncmp)
movzbl 7(%eax), %ecx
+# ifdef USE_AS_STRNCASECMP_L
+ movzbl 7(%edx), %esi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
+# endif
+ cmpl %ecx, %esi
+# else
cmpb %cl, 7(%edx)
- jne L(neq)
+# endif
+ jne L(neq_sncmp)
test %cl, %cl
- je L(eq)
+ je L(eq_sncmp)
- cmp $8, %ebp
- je L(eq)
+ cmp $8, REM
+ je L(eq_sncmp)
movzbl 8(%eax), %ecx
+# ifdef USE_AS_STRNCASECMP_L
+ movzbl 8(%edx), %esi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
+# endif
+ cmpl %ecx, %esi
+# else
cmpb %cl, 8(%edx)
- jne L(neq)
+# endif
+ jne L(neq_sncmp)
test %cl, %cl
- je L(eq)
+ je L(eq_sncmp)
- cmp $9, %ebp
- je L(eq)
+ cmp $9, REM
+ je L(eq_sncmp)
movzbl 9(%eax), %ecx
+# ifdef USE_AS_STRNCASECMP_L
+ movzbl 9(%edx), %esi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
+# endif
+ cmpl %ecx, %esi
+# else
cmpb %cl, 9(%edx)
- jne L(neq)
+# endif
+ jne L(neq_sncmp)
test %cl, %cl
- je L(eq)
+ je L(eq_sncmp)
- cmp $10, %ebp
- je L(eq)
+ cmp $10, REM
+ je L(eq_sncmp)
movzbl 10(%eax), %ecx
+# ifdef USE_AS_STRNCASECMP_L
+ movzbl 10(%edx), %esi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
+# endif
+ cmpl %ecx, %esi
+# else
cmpb %cl, 10(%edx)
- jne L(neq)
+# endif
+ jne L(neq_sncmp)
test %cl, %cl
- je L(eq)
+ je L(eq_sncmp)
- cmp $11, %ebp
- je L(eq)
+ cmp $11, REM
+ je L(eq_sncmp)
movzbl 11(%eax), %ecx
+# ifdef USE_AS_STRNCASECMP_L
+ movzbl 11(%edx), %esi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
+# endif
+ cmpl %ecx, %esi
+# else
cmpb %cl, 11(%edx)
- jne L(neq)
+# endif
+ jne L(neq_sncmp)
test %cl, %cl
- je L(eq)
+ je L(eq_sncmp)
- cmp $12, %ebp
- je L(eq)
+ cmp $12, REM
+ je L(eq_sncmp)
movzbl 12(%eax), %ecx
+# ifdef USE_AS_STRNCASECMP_L
+ movzbl 12(%edx), %esi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
+# endif
+ cmpl %ecx, %esi
+# else
cmpb %cl, 12(%edx)
- jne L(neq)
+# endif
+ jne L(neq_sncmp)
test %cl, %cl
- je L(eq)
+ je L(eq_sncmp)
- cmp $13, %ebp
- je L(eq)
+ cmp $13, REM
+ je L(eq_sncmp)
movzbl 13(%eax), %ecx
+# ifdef USE_AS_STRNCASECMP_L
+ movzbl 13(%edx), %esi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
+# endif
+ cmpl %ecx, %esi
+# else
cmpb %cl, 13(%edx)
- jne L(neq)
+# endif
+ jne L(neq_sncmp)
test %cl, %cl
- je L(eq)
+ je L(eq_sncmp)
- cmp $14, %ebp
- je L(eq)
+ cmp $14, REM
+ je L(eq_sncmp)
movzbl 14(%eax), %ecx
+# ifdef USE_AS_STRNCASECMP_L
+ movzbl 14(%edx), %esi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
+# endif
+ cmpl %ecx, %esi
+# else
cmpb %cl, 14(%edx)
- jne L(neq)
+# endif
+ jne L(neq_sncmp)
test %cl, %cl
- je L(eq)
+ je L(eq_sncmp)
- cmp $15, %ebp
- je L(eq)
+ cmp $15, REM
+ je L(eq_sncmp)
movzbl 15(%eax), %ecx
+# ifdef USE_AS_STRNCASECMP_L
+ movzbl 15(%edx), %esi
+# ifdef PIC
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower@GOTOFF+128*4(%ebx,%esi,4), %esi
+# else
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%ecx,4), %ecx
+ movl _nl_C_LC_CTYPE_tolower+128*4(,%esi,4), %esi
+# endif
+ cmpl %ecx, %esi
+# else
cmpb %cl, 15(%edx)
- jne L(neq)
- test %cl, %cl
- je L(eq)
+# endif
+ jne L(neq_sncmp)
- POP (%ebp)
+# ifdef USE_AS_STRNCASECMP_L
+L(eq_sncmp):
+ POP (%esi)
+# endif
+ POP (REM)
+# if defined USE_AS_STRNCASECMP_L && defined PIC
+ POP (%ebx)
+# endif
xor %eax, %eax
ret
+
+# ifdef USE_AS_STRNCASECMP_L
+ .p2align 4
+# ifdef PIC
+ CFI_PUSH (%ebx)
+# endif
+ CFI_PUSH (REM)
+ CFI_PUSH (%esi)
+L(neq_sncmp):
+ mov $1, %eax
+ mov $-1, %edx
+ cmovna %edx, %eax
+ POP (%esi)
+ POP (REM)
+# ifdef PIC
+ POP (%ebx)
+# endif
+ ret
+# endif
#endif
END (STRCMP)
diff --git a/libc/sysdeps/i386/i686/multiarch/strcmp.S b/libc/sysdeps/i386/i686/multiarch/strcmp.S
index 7136d47e8..28e2d6154 100644
--- a/libc/sysdeps/i386/i686/multiarch/strcmp.S
+++ b/libc/sysdeps/i386/i686/multiarch/strcmp.S
@@ -1,5 +1,5 @@
/* Multiple versions of strcmp
- Copyright (C) 2010 Free Software Foundation, Inc.
+ Copyright (C) 2010, 2011 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -21,18 +21,30 @@
#include <sysdep.h>
#include <init-arch.h>
-#ifndef USE_AS_STRNCMP
-# define STRCMP strcmp
-# define __GI_STRCMP __GI_strcmp
-# define __STRCMP_IA32 __strcmp_ia32
-# define __STRCMP_SSSE3 __strcmp_ssse3
-# define __STRCMP_SSE4_2 __strcmp_sse4_2
-#else
+#ifdef USE_AS_STRNCMP
# define STRCMP strncmp
# define __GI_STRCMP __GI_strncmp
# define __STRCMP_IA32 __strncmp_ia32
# define __STRCMP_SSSE3 __strncmp_ssse3
# define __STRCMP_SSE4_2 __strncmp_sse4_2
+#elif defined USE_AS_STRCASECMP_L
+# define STRCMP __strcasecmp_l
+# define __GI_STRCMP __GI_strcasecmp_l
+# define __STRCMP_IA32 __strcasecmp_l_ia32
+# define __STRCMP_SSSE3 __strcasecmp_l_ssse3
+# define __STRCMP_SSE4_2 __strcasecmp_l_sse4_2
+#elif defined USE_AS_STRNCASECMP_L
+# define STRCMP __strncasecmp_l
+# define __GI_STRCMP __GI_strncasecmp_l
+# define __STRCMP_IA32 __strncasecmp_l_ia32
+# define __STRCMP_SSSE3 __strncasecmp_l_ssse3
+# define __STRCMP_SSE4_2 __strncasecmp_l_sse4_2
+#else
+# define STRCMP strcmp
+# define __GI_STRCMP __GI_strcmp
+# define __STRCMP_IA32 __strcmp_ia32
+# define __STRCMP_SSSE3 __strcmp_ssse3
+# define __STRCMP_SSE4_2 __strcmp_sse4_2
#endif
/* Define multiple versions only for the definition in libc. Don't
diff --git a/libc/sysdeps/i386/i686/multiarch/strncase-c.c b/libc/sysdeps/i386/i686/multiarch/strncase-c.c
new file mode 100644
index 000000000..76581eb62
--- /dev/null
+++ b/libc/sysdeps/i386/i686/multiarch/strncase-c.c
@@ -0,0 +1,8 @@
+#include <string.h>
+
+extern __typeof (strncasecmp) __strncasecmp_nonascii;
+
+#define __strncasecmp __strncasecmp_nonascii
+#include <string/strncase.c>
+
+strong_alias (__strncasecmp_nonascii, __strncasecmp_ia32)
diff --git a/libc/sysdeps/i386/i686/multiarch/strncase.S b/libc/sysdeps/i386/i686/multiarch/strncase.S
new file mode 100644
index 000000000..d20532f99
--- /dev/null
+++ b/libc/sysdeps/i386/i686/multiarch/strncase.S
@@ -0,0 +1,68 @@
+/* Entry point for multi-version x86 strncasecmp.
+ Copyright (C) 2011 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 <sysdep.h>
+#include <init-arch.h>
+
+#ifdef SHARED
+ .text
+ENTRY(__strncasecmp)
+ .type __strncasecmp, @gnu_indirect_function
+ pushl %ebx
+ cfi_adjust_cfa_offset (4)
+ cfi_rel_offset (ebx, 0)
+ call __i686.get_pc_thunk.bx
+ addl $_GLOBAL_OFFSET_TABLE_, %ebx
+ cmpl $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx)
+ jne 1f
+ call __init_cpu_features
+1: leal __strncasecmp_ia32@GOTOFF(%ebx), %eax
+ testl $bit_SSSE3, CPUID_OFFSET+index_SSSE3+__cpu_features@GOTOFF(%ebx)
+ jz 2f
+ leal __strncasecmp_ssse3@GOTOFF(%ebx), %eax
+ testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx)
+ jz 2f
+ leal __strncasecmp_sse4_2@GOTOFF(%ebx), %eax
+2: popl %ebx
+ cfi_adjust_cfa_offset (-4)
+ cfi_restore (ebx)
+ ret
+END(__strncasecmp)
+#else
+ .text
+ENTRY(__strncasecmp)
+ .type __strncasecmp, @gnu_indirect_function
+ cmpl $0, KIND_OFFSET+__cpu_features
+ jne 1f
+ call __init_cpu_features
+1: leal __strncasecmp_ia32, %eax
+ testl $bit_SSSE3, CPUID_OFFSET+index_SSSE3+__cpu_features
+ jz 2f
+ leal __strncasecmp_ssse3, %eax
+#if 0
+ // XXX Temporarily
+ testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features
+ jz 2f
+ leal __strncasecmp_sse4_2, %eax
+#endif
+2: ret
+END(__strncasecmp)
+#endif
+
+weak_alias (__strncasecmp, strncasecmp)
diff --git a/libc/sysdeps/i386/i686/multiarch/strncase_l-c.c b/libc/sysdeps/i386/i686/multiarch/strncase_l-c.c
new file mode 100644
index 000000000..0c68b8d1c
--- /dev/null
+++ b/libc/sysdeps/i386/i686/multiarch/strncase_l-c.c
@@ -0,0 +1,11 @@
+#include <string.h>
+
+extern __typeof (strncasecmp_l) __strncasecmp_l_nonascii;
+
+#define __strncasecmp_l __strncasecmp_l_nonascii
+#define USE_IN_EXTENDED_LOCALE_MODEL 1
+#include <string/strncase.c>
+
+/* The needs of strcasecmp in libc are minimal, no need to go through
+ the IFUNC. */
+strong_alias (__strncasecmp_l_nonascii, __GI___strncasecmp_l)
diff --git a/libc/sysdeps/i386/i686/multiarch/strncase_l-sse4.S b/libc/sysdeps/i386/i686/multiarch/strncase_l-sse4.S
new file mode 100644
index 000000000..557210832
--- /dev/null
+++ b/libc/sysdeps/i386/i686/multiarch/strncase_l-sse4.S
@@ -0,0 +1,2 @@
+#define USE_AS_STRNCASECMP_L 1
+#include "strcmp-sse4.S"
diff --git a/libc/sysdeps/i386/i686/multiarch/strncase_l-ssse3.S b/libc/sysdeps/i386/i686/multiarch/strncase_l-ssse3.S
new file mode 100644
index 000000000..d438a1ae3
--- /dev/null
+++ b/libc/sysdeps/i386/i686/multiarch/strncase_l-ssse3.S
@@ -0,0 +1,2 @@
+#define USE_AS_STRNCASECMP_L 1
+#include "strcmp-ssse3.S"
diff --git a/libc/sysdeps/i386/i686/multiarch/strncase_l.S b/libc/sysdeps/i386/i686/multiarch/strncase_l.S
new file mode 100644
index 000000000..a808c8cd7
--- /dev/null
+++ b/libc/sysdeps/i386/i686/multiarch/strncase_l.S
@@ -0,0 +1,5 @@
+#define STRCMP __strncasecmp_l
+#define USE_AS_STRNCASECMP_L
+#include "strcmp.S"
+
+weak_alias (__strncasecmp_l, strncasecmp_l)
diff --git a/libc/sysdeps/i386/i686/multiarch/strnlen-c.c b/libc/sysdeps/i386/i686/multiarch/strnlen-c.c
index 567af2c81..f02465d6a 100644
--- a/libc/sysdeps/i386/i686/multiarch/strnlen-c.c
+++ b/libc/sysdeps/i386/i686/multiarch/strnlen-c.c
@@ -1,6 +1,6 @@
-#ifndef NOT_IN_libc
-# define STRNLEN __strnlen_ia32
-# undef libc_hidden_builtin_def
+#define STRNLEN __strnlen_ia32
+#ifdef SHARED
+# undef libc_hidden_def
# define libc_hidden_def(name) \
__hidden_ver1 (__strnlen_ia32, __GI_strnlen, __strnlen_ia32);
#endif
diff --git a/libc/sysdeps/i386/i686/multiarch/wcscmp-c.c b/libc/sysdeps/i386/i686/multiarch/wcscmp-c.c
index 9592455d0..165c56afb 100644
--- a/libc/sysdeps/i386/i686/multiarch/wcscmp-c.c
+++ b/libc/sysdeps/i386/i686/multiarch/wcscmp-c.c
@@ -1,10 +1,12 @@
-#ifndef NOT_IN_libc
-
-# define WCSCMP __wcscmp_ia32
+#include <wchar.h>
+#define WCSCMP __wcscmp_ia32
+#ifdef SHARED
# undef libc_hidden_def
# define libc_hidden_def(name) \
__hidden_ver1 (__wcscmp_ia32, __GI_wcscmp, __wcscmp_ia32);
#endif
+extern __typeof (wcscmp) __wcscmp_ia32;
+
#include "wcsmbs/wcscmp.c"
diff --git a/libc/sysdeps/i386/i686/multiarch/wcslen-c.c b/libc/sysdeps/i386/i686/multiarch/wcslen-c.c
index 49f32a25e..8cebfea0e 100644
--- a/libc/sysdeps/i386/i686/multiarch/wcslen-c.c
+++ b/libc/sysdeps/i386/i686/multiarch/wcslen-c.c
@@ -1,5 +1,9 @@
+#include <wchar.h>
+
#ifndef NOT_IN_libc
# define WCSLEN __wcslen_ia32
#endif
+extern __typeof (wcslen) __wcslen_ia32;
+
#include "wcsmbs/wcslen.c"
diff --git a/libc/sysdeps/i386/i686/multiarch/wmemcmp-c.c b/libc/sysdeps/i386/i686/multiarch/wmemcmp-c.c
index 94ff6151f..bd37660fc 100644
--- a/libc/sysdeps/i386/i686/multiarch/wmemcmp-c.c
+++ b/libc/sysdeps/i386/i686/multiarch/wmemcmp-c.c
@@ -1,5 +1,9 @@
+#include <wchar.h>
+
#ifndef NOT_IN_libc
# define WMEMCMP __wmemcmp_ia32
#endif
+extern __typeof (wmemcmp) __wmemcmp_ia32;
+
#include "wcsmbs/wmemcmp.c"
diff --git a/libc/sysdeps/ieee754/dbl-64/mpsqrt.c b/libc/sysdeps/ieee754/dbl-64/mpsqrt.c
index d1a80f909..f007cab5d 100644
--- a/libc/sysdeps/ieee754/dbl-64/mpsqrt.c
+++ b/libc/sysdeps/ieee754/dbl-64/mpsqrt.c
@@ -51,7 +51,7 @@ static double fastiroot(double);
void
SECTION
__mpsqrt(mp_no *x, mp_no *y, int p) {
- int i,m,ex,ey;
+ int i,m,ey;
double dx,dy;
mp_no
mphalf = {0,{0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
@@ -66,7 +66,7 @@ __mpsqrt(mp_no *x, mp_no *y, int p) {
mphalf.e =0; mphalf.d[0] =ONE; mphalf.d[1] =HALFRAD;
mp3halfs.e=1; mp3halfs.d[0]=ONE; mp3halfs.d[1]=ONE; mp3halfs.d[2]=HALFRAD;
- ex=EX; ey=EX/2; __cpy(x,&mpxn,p); mpxn.e -= (ey+ey);
+ ey=EX/2; __cpy(x,&mpxn,p); mpxn.e -= (ey+ey);
__mp_dbl(&mpxn,&dx,p); dy=fastiroot(dx); __dbl_mp(dy,&mpu,p);
__mul(&mpxn,&mphalf,&mpz,p);
diff --git a/libc/sysdeps/ieee754/dbl-64/s_sin.c b/libc/sysdeps/ieee754/dbl-64/s_sin.c
index 6f19f158f..5183e55e8 100644
--- a/libc/sysdeps/ieee754/dbl-64/s_sin.c
+++ b/libc/sysdeps/ieee754/dbl-64/s_sin.c
@@ -138,7 +138,7 @@ __sin(double x){
cor=(ssn+s*ccs-sn*c)+cs*s;
res=sn+cor;
cor=(sn-res)+cor;
- return (res==res+1.025*cor)? res : slow1(x);
+ return (res==res+1.096*cor)? res : slow1(x);
} /* else if (k < 0x3feb6000) */
/*----------------------- 0.855469 <|x|<2.426265 ----------------------*/
diff --git a/libc/sysdeps/ieee754/ldbl-96/e_hypotl.c b/libc/sysdeps/ieee754/ldbl-96/e_hypotl.c
index a59320b06..5e0b37ec0 100644
--- a/libc/sysdeps/ieee754/ldbl-96/e_hypotl.c
+++ b/libc/sysdeps/ieee754/ldbl-96/e_hypotl.c
@@ -70,7 +70,8 @@
k=0;
if(__builtin_expect(ea > 0x5f3f,0)) { /* a>2**8000 */
if(ea == 0x7fff) { /* Inf or NaN */
- u_int32_t exp,high,low;
+ u_int32_t exp __attribute__ ((unused));
+ u_int32_t high,low;
w = a+b; /* for sNaN */
GET_LDOUBLE_WORDS(exp,high,low,a);
if(((high&0x7fffffff)|low)==0) w = a;
@@ -85,7 +86,8 @@
}
if(__builtin_expect(eb < 0x20bf, 0)) { /* b < 2**-8000 */
if(eb == 0) { /* subnormal b or 0 */
- u_int32_t exp,high,low;
+ u_int32_t exp __attribute__ ((unused));
+ u_int32_t high,low;
GET_LDOUBLE_WORDS(exp,high,low,b);
if((high|low)==0) return a;
SET_LDOUBLE_WORDS(t1, 0x7ffd, 0, 0); /* t1=2^16382 */
diff --git a/libc/sysdeps/ieee754/ldbl-96/e_j0l.c b/libc/sysdeps/ieee754/ldbl-96/e_j0l.c
index abf4f109f..325408d5d 100644
--- a/libc/sysdeps/ieee754/ldbl-96/e_j0l.c
+++ b/libc/sysdeps/ieee754/ldbl-96/e_j0l.c
@@ -108,9 +108,9 @@ __ieee754_j0l (long double x)
{
long double z, s, c, ss, cc, r, u, v;
int32_t ix;
- u_int32_t se, i0, i1;
+ u_int32_t se;
- GET_LDOUBLE_WORDS (se, i0, i1, x);
+ GET_LDOUBLE_EXP (se, x);
ix = se & 0x7fff;
if (__builtin_expect (ix >= 0x7fff, 0))
return one / (x * x);
diff --git a/libc/sysdeps/ieee754/ldbl-96/e_j1l.c b/libc/sysdeps/ieee754/ldbl-96/e_j1l.c
index 369fd830f..d7fcc9b44 100644
--- a/libc/sysdeps/ieee754/ldbl-96/e_j1l.c
+++ b/libc/sysdeps/ieee754/ldbl-96/e_j1l.c
@@ -110,9 +110,9 @@ __ieee754_j1l (long double x)
{
long double z, c, r, s, ss, cc, u, v, y;
int32_t ix;
- u_int32_t se, i0, i1;
+ u_int32_t se;
- GET_LDOUBLE_WORDS (se, i0, i1, x);
+ GET_LDOUBLE_EXP (se, x);
ix = se & 0x7fff;
if (__builtin_expect (ix >= 0x7fff, 0))
return one / x;
diff --git a/libc/sysdeps/posix/getaddrinfo.c b/libc/sysdeps/posix/getaddrinfo.c
index a5aafe93a..1a023f91f 100644
--- a/libc/sysdeps/posix/getaddrinfo.c
+++ b/libc/sysdeps/posix/getaddrinfo.c
@@ -1958,7 +1958,7 @@ gaiconf_init (void)
size_t nscopelist = 0;
bool scopelist_nullbits = false;
- FILE *fp = fopen (GAICONF_FNAME, "rc");
+ FILE *fp = fopen (GAICONF_FNAME, "rce");
if (fp != NULL)
{
struct stat64 st;
@@ -2386,7 +2386,7 @@ getaddrinfo (const char *name, const char *service,
|| (hints->ai_family == PF_INET6 && ! seen_ipv6))
{
/* We cannot possibly return a valid answer. */
- free (in6ai);
+ __free_in6ai (in6ai);
return EAI_NONAME;
}
}
@@ -2400,7 +2400,7 @@ getaddrinfo (const char *name, const char *service,
{
if (hints->ai_flags & AI_NUMERICSERV)
{
- free (in6ai);
+ __free_in6ai (in6ai);
return EAI_NONAME;
}
@@ -2422,7 +2422,7 @@ getaddrinfo (const char *name, const char *service,
if (last_i != 0)
{
freeaddrinfo (p);
- free (in6ai);
+ __free_in6ai (in6ai);
return -(last_i & GAIH_EAI);
}
@@ -2434,7 +2434,7 @@ getaddrinfo (const char *name, const char *service,
}
else
{
- free (in6ai);
+ __free_in6ai (in6ai);
return EAI_FAMILY;
}
@@ -2622,7 +2622,7 @@ getaddrinfo (const char *name, const char *service,
p->ai_canonname = canonname;
}
- free (in6ai);
+ __free_in6ai (in6ai);
if (p)
{
diff --git a/libc/sysdeps/powerpc/fpu/e_sqrt.c b/libc/sysdeps/powerpc/fpu/e_sqrt.c
index f9ded2571..d59bd08d5 100644
--- a/libc/sysdeps/powerpc/fpu/e_sqrt.c
+++ b/libc/sysdeps/powerpc/fpu/e_sqrt.c
@@ -154,6 +154,7 @@ __slow_ieee754_sqrt (double x)
return f_wash (x);
}
+#undef __ieee754_sqrt
double
__ieee754_sqrt (double x)
{
diff --git a/libc/sysdeps/powerpc/fpu/e_sqrtf.c b/libc/sysdeps/powerpc/fpu/e_sqrtf.c
index 965faee84..9c6b860c9 100644
--- a/libc/sysdeps/powerpc/fpu/e_sqrtf.c
+++ b/libc/sysdeps/powerpc/fpu/e_sqrtf.c
@@ -130,7 +130,7 @@ __slow_ieee754_sqrtf (float x)
return f_washf (x);
}
-
+#undef __ieee754_sqrtf
float
__ieee754_sqrtf (float x)
{
diff --git a/libc/sysdeps/powerpc/fpu/math_private.h b/libc/sysdeps/powerpc/fpu/math_private.h
index 90021c6d3..c4dd217d1 100644
--- a/libc/sysdeps/powerpc/fpu/math_private.h
+++ b/libc/sysdeps/powerpc/fpu/math_private.h
@@ -1,5 +1,5 @@
/* Private inline math functions for powerpc.
- Copyright (C) 2006
+ Copyright (C) 2006, 2011
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -25,12 +25,145 @@
#include <ldsodefs.h>
#include <dl-procinfo.h>
+#include <math/math_private.h>
+
# if __WORDSIZE == 64 || defined _ARCH_PWR4
# define __CPU_HAS_FSQRT 1
+
+#ifndef __ieee754_sqrt
+# define __ieee754_sqrt(x) \
+ ({ double __z; \
+ __asm __volatile ( \
+ " fsqrt %0,%1\n" \
+ : "=f" (__z) \
+ : "f"(x)); \
+ __z; })
+#endif
+#ifndef __ieee754_sqrtf
+# define __ieee754_sqrtf(x) \
+ ({ float __z; \
+ __asm __volatile ( \
+ " fsqrts %0,%1\n" \
+ : "=f" (__z) \
+ : "f"(x)); \
+ __z; })
+#endif
+
# else
# define __CPU_HAS_FSQRT ((GLRO(dl_hwcap) & PPC_FEATURE_64) != 0)
+# endif // __WORDSIZE == 64 || defined _ARCH_PWR4
+
+
+#if defined _ARCH_PWR5X
+
+# ifndef __round
+# define __round(x) \
+ ({ double __z; \
+ __asm __volatile ( \
+ " frin %0,%1\n" \
+ : "=f" (__z) \
+ : "f" (x)); \
+ __z; })
+# endif
+# ifndef __roundf
+# define __roundf(x) \
+ ({ float __z; \
+ __asm __volatile ( \
+ " frin %0,%1\n" \
+ " frsp %0,%0\n" \
+ : "=f" (__z) \
+ : "f" (x)); \
+ __z; })
+# endif
+
+# ifndef __trunc
+# define __trunc(x) \
+ ({ double __z; \
+ __asm __volatile ( \
+ " friz %0,%1\n" \
+ : "=f" (__z) \
+ : "f" (x)); \
+ __z; })
+# endif
+# ifndef __truncf
+# define __truncf(x) \
+ ({ float __z; \
+ __asm __volatile ( \
+ " friz %0,%1\n" \
+ " frsp %0,%0\n" \
+ : "=f" (__z) \
+ : "f" (x)); \
+ __z; })
+# endif
+
+# ifndef __ceil
+# define __ceil(x) \
+ ({ double __z; \
+ __asm __volatile ( \
+ " frip %0,%1\n" \
+ : "=f" (__z) \
+ : "f" (x)); \
+ __z; })
+# endif
+# ifndef __ceilf
+# define __ceilf(x) \
+ ({ float __z; \
+ __asm __volatile ( \
+ " frip %0,%1\n" \
+ " frsp %0,%0\n" \
+ : "=f" (__z) \
+ : "f" (x)); \
+ __z; })
# endif
+# ifndef __floor
+# define __floor(x) \
+ ({ double __z; \
+ __asm __volatile ( \
+ " frim %0,%1\n" \
+ : "=f" (__z) \
+ : "f" (x)); \
+ __z; })
+# endif
+# ifndef __floorf
+# define __floorf(x) \
+ ({ float __z; \
+ __asm __volatile ( \
+ " frim %0,%1\n" \
+ " frsp %0,%0\n" \
+ : "=f" (__z) \
+ : "f" (x)); \
+ __z; })
+# endif
+
+#endif /* defined _ARCH_PWR5X */
+
+
+#if defined _ARCH_PWR6
+
+# ifndef __copysign
+# define __copysign(x, y) \
+ ({ double __z; \
+ __asm __volatile ( \
+ " fcpsgn %0,%1,%2\n" \
+ : "=f" (__z) \
+ : "f" (y), "f" (x)); \
+ __z; })
+# endif
+# ifndef __copysignf
+# define __copysignf(x, y) \
+ ({ float __z; \
+ __asm __volatile ( \
+ " fcpsgn %0,%1,%2\n" \
+ " frsp %0,%0\n" \
+ : "=f" (__z) \
+ : "f" (y), "f" (x)); \
+ __z; })
+# endif
+
+#endif /* defined _ARCH_PWR6 */
+
+
# ifndef __LIBC_INTERNAL_MATH_INLINES
extern double __slow_ieee754_sqrt (double);
__inline double
@@ -78,6 +211,4 @@ __ieee754_sqrtf (float __x)
}
#endif /* __LIBC_INTERNAL_MATH_INLINES */
-#include <math/math_private.h>
-
#endif /* _PPC_MATH_PRIVATE_H_ */
diff --git a/libc/sysdeps/powerpc/powerpc64/fpu/e_sqrt.c b/libc/sysdeps/powerpc/powerpc64/fpu/e_sqrt.c
index 314abba3b..66d04ceb7 100644
--- a/libc/sysdeps/powerpc/powerpc64/fpu/e_sqrt.c
+++ b/libc/sysdeps/powerpc/powerpc64/fpu/e_sqrt.c
@@ -20,6 +20,7 @@
#include <math.h>
#include <math_private.h>
+#undef __ieee754_sqrt
double
__ieee754_sqrt (double x)
{
diff --git a/libc/sysdeps/powerpc/powerpc64/fpu/e_sqrtf.c b/libc/sysdeps/powerpc/powerpc64/fpu/e_sqrtf.c
index 715721439..847a2e4ad 100644
--- a/libc/sysdeps/powerpc/powerpc64/fpu/e_sqrtf.c
+++ b/libc/sysdeps/powerpc/powerpc64/fpu/e_sqrtf.c
@@ -20,6 +20,7 @@
#include <math.h>
#include <math_private.h>
+#undef __ieee754_sqrtf
float
__ieee754_sqrtf (float x)
{
diff --git a/libc/sysdeps/unix/clock_gettime.c b/libc/sysdeps/unix/clock_gettime.c
index d467f2b78..b4355d463 100644
--- a/libc/sysdeps/unix/clock_gettime.c
+++ b/libc/sysdeps/unix/clock_gettime.c
@@ -113,7 +113,7 @@ clock_gettime (clockid_t clock_id, struct timespec *tp)
default:
#ifdef SYSDEP_GETTIME_CPU
- retval = SYSDEP_GETTIME_CPU (clock_id, tp);
+ SYSDEP_GETTIME_CPU (clock_id, tp);
#endif
#if HP_TIMING_AVAIL
if ((clock_id & ((1 << CLOCK_IDFIELD_SIZE) - 1))
diff --git a/libc/sysdeps/unix/sysv/linux/Makefile b/libc/sysdeps/unix/sysv/linux/Makefile
index 254d809e8..bd4fae2e5 100644
--- a/libc/sysdeps/unix/sysv/linux/Makefile
+++ b/libc/sysdeps/unix/sysv/linux/Makefile
@@ -162,6 +162,6 @@ CFLAGS-mq_receive.c += -fexceptions
endif
ifeq ($(subdir),nscd)
-sysdep-CFLAGS += -DHAVE_EPOLL -DHAVE_SENDFILE -DHAVE_INOTIFY
+sysdep-CFLAGS += -DHAVE_EPOLL -DHAVE_SENDFILE -DHAVE_INOTIFY -DHAVE_NETLINK
CFLAGS-gai.c += -DNEED_NETLINK
endif
diff --git a/libc/sysdeps/unix/sysv/linux/Versions b/libc/sysdeps/unix/sysv/linux/Versions
index 3a3e8e8c2..7f2f1b9ff 100644
--- a/libc/sysdeps/unix/sysv/linux/Versions
+++ b/libc/sysdeps/unix/sysv/linux/Versions
@@ -163,6 +163,9 @@ libc {
sendmmsg;
}
+ GLIBC_2.15 {
+ process_vm_readv; process_vm_writev;
+ }
GLIBC_PRIVATE {
# functions used in other libraries
__syscall_rt_sigqueueinfo;
diff --git a/libc/sysdeps/unix/sysv/linux/bits/uio.h b/libc/sysdeps/unix/sysv/linux/bits/uio.h
index 6a283ed77..b2d77195c 100644
--- a/libc/sysdeps/unix/sysv/linux/bits/uio.h
+++ b/libc/sysdeps/unix/sysv/linux/bits/uio.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 2006, 2011 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
@@ -48,3 +48,28 @@ struct iovec
};
#endif
+
+#if defined _SYS_UIO_H && !defined _BITS_UIO_H_FOR_SYS_UIO_H
+#define _BITS_UIO_H_FOR_SYS_UIO_H 1
+
+__BEGIN_DECLS
+
+/* Read from another process' address space. */
+extern ssize_t process_vm_readv (pid_t __pid, __const struct iovec *__lvec,
+ unsigned long int __liovcnt,
+ __const struct iovec *__rvec,
+ unsigned long int __riovcnt,
+ unsigned long int __flags)
+ __THROW;
+
+/* Write to another process' address space. */
+extern ssize_t process_vm_writev (pid_t __pid, __const struct iovec *__lvec,
+ unsigned long int __liovcnt,
+ __const struct iovec *__rvec,
+ unsigned long int __riovcnt,
+ unsigned long int __flags)
+ __THROW;
+
+__END_DECLS
+
+#endif
diff --git a/libc/sysdeps/unix/sysv/linux/check_pf.c b/libc/sysdeps/unix/sysv/linux/check_pf.c
index c053adcda..0738a7012 100644
--- a/libc/sysdeps/unix/sysv/linux/check_pf.c
+++ b/libc/sysdeps/unix/sysv/linux/check_pf.c
@@ -1,5 +1,5 @@
/* Determine protocol families for which interfaces exist. Linux version.
- Copyright (C) 2003, 2006, 2007, 2008, 2010, 2011 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2006-2008, 2010, 2011 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
@@ -33,6 +33,9 @@
#include <not-cancel.h>
#include <kernel-features.h>
+#include <bits/libc-lock.h>
+#include <atomic.h>
+#include <nscd/nscd-client.h>
#ifndef IFA_F_HOMEADDRESS
@@ -43,9 +46,42 @@
#endif
-static int
-make_request (int fd, pid_t pid, bool *seen_ipv4, bool *seen_ipv6,
- struct in6addrinfo **in6ai, size_t *in6ailen)
+struct cached_data
+{
+ uint32_t timestamp;
+ uint32_t usecnt;
+ bool seen_ipv4;
+ bool seen_ipv6;
+ size_t in6ailen;
+ struct in6addrinfo in6ai[0];
+};
+
+static struct cached_data noai6ai_cached =
+ {
+ .usecnt = 1, /* Make sure we never try to delete this entry. */
+ .in6ailen = 0
+ };
+
+static struct cached_data *cache;
+__libc_lock_define_initialized (static, lock);
+
+
+#ifdef IS_IN_nscd
+static uint32_t nl_timestamp;
+
+uint32_t
+__bump_nl_timestamp (void)
+{
+ if (atomic_increment_val (&nl_timestamp) == 0)
+ atomic_increment (&nl_timestamp);
+
+ return nl_timestamp;
+}
+#endif
+
+
+static struct cached_data *
+make_request (int fd, pid_t pid)
{
struct req
{
@@ -99,9 +135,6 @@ make_request (int fd, pid_t pid, bool *seen_ipv4, bool *seen_ipv6,
sizeof (nladdr))) < 0)
goto out_fail;
- *seen_ipv4 = false;
- *seen_ipv6 = false;
-
bool done = false;
struct in6ailist
{
@@ -109,6 +142,8 @@ make_request (int fd, pid_t pid, bool *seen_ipv4, bool *seen_ipv6,
struct in6ailist *next;
} *in6ailist = NULL;
size_t in6ailistlen = 0;
+ bool seen_ipv4 = false;
+ bool seen_ipv6 = false;
do
{
@@ -172,12 +207,12 @@ make_request (int fd, pid_t pid, bool *seen_ipv4, bool *seen_ipv6,
{
if (*(const in_addr_t *) address
!= htonl (INADDR_LOOPBACK))
- *seen_ipv4 = true;
+ seen_ipv4 = true;
}
else
{
if (!IN6_IS_ADDR_LOOPBACK (address))
- *seen_ipv6 = true;
+ seen_ipv6 = true;
}
}
@@ -211,32 +246,47 @@ make_request (int fd, pid_t pid, bool *seen_ipv4, bool *seen_ipv6,
}
while (! done);
- close_not_cancel_no_status (fd);
-
- if (*seen_ipv6 && in6ailist != NULL)
+ struct cached_data *result;
+ if (seen_ipv6 && in6ailist != NULL)
{
- *in6ai = malloc (in6ailistlen * sizeof (**in6ai));
- if (*in6ai == NULL)
+ result = malloc (sizeof (*result)
+ + in6ailistlen * sizeof (struct in6addrinfo));
+ if (result == NULL)
goto out_fail;
- *in6ailen = in6ailistlen;
+#ifdef IS_IN_nscd
+ result->timestamp = nl_timestamp;
+#else
+ result->timestamp = __nscd_get_nl_timestamp ();
+#endif
+ result->usecnt = 2;
+ result->seen_ipv4 = seen_ipv4;
+ result->seen_ipv6 = true;
+ result->in6ailen = in6ailistlen;
do
{
- (*in6ai)[--in6ailistlen] = in6ailist->info;
+ result->in6ai[--in6ailistlen] = in6ailist->info;
in6ailist = in6ailist->next;
}
while (in6ailist != NULL);
}
+ else
+ {
+ atomic_add (&noai6ai_cached.usecnt, 2);
+ noai6ai_cached.seen_ipv4 = seen_ipv4;
+ noai6ai_cached.seen_ipv6 = seen_ipv6;
+ result = &noai6ai_cached;
+ }
if (use_malloc)
free (buf);
- return 0;
+ return result;
out_fail:
if (use_malloc)
free (buf);
- return -1;
+ return NULL;
}
@@ -260,24 +310,66 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6,
if (! __no_netlink_support)
{
- int fd = __socket (PF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
+ struct cached_data *olddata = NULL;
+ struct cached_data *data = NULL;
- struct sockaddr_nl nladdr;
- memset (&nladdr, '\0', sizeof (nladdr));
- nladdr.nl_family = AF_NETLINK;
+ __libc_lock_lock (lock);
- socklen_t addr_len = sizeof (nladdr);
+#ifdef IS_IN_nscd
+# define cache_valid() nl_timestamp != 0 && cache->timestamp == nl_timestamp
+#else
+# define cache_valid() \
+ ({ uint32_t val = __nscd_get_nl_timestamp (); \
+ val != 0 && cache->timestamp == val; })
+#endif
+ if (cache != NULL && cache_valid ())
+ {
+ data = cache;
+ atomic_increment (&cache->usecnt);
+ }
+ else
+ {
+ int fd = __socket (PF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
- if (fd >= 0
- && __bind (fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) == 0
- && __getsockname (fd, (struct sockaddr *) &nladdr, &addr_len) == 0
- && make_request (fd, nladdr.nl_pid, seen_ipv4, seen_ipv6,
- in6ai, in6ailen) == 0)
- /* It worked. */
- return;
+ if (__builtin_expect (fd >= 0, 1))
+ {
+ struct sockaddr_nl nladdr;
+ memset (&nladdr, '\0', sizeof (nladdr));
+ nladdr.nl_family = AF_NETLINK;
- if (fd >= 0)
- __close (fd);
+ socklen_t addr_len = sizeof (nladdr);
+
+ if(__bind (fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) == 0
+ && __getsockname (fd, (struct sockaddr *) &nladdr,
+ &addr_len) == 0)
+ data = make_request (fd, nladdr.nl_pid);
+
+ close_not_cancel_no_status (fd);
+ }
+
+ if (data != NULL)
+ {
+ olddata = cache;
+ cache = data;
+ }
+ }
+
+ __libc_lock_unlock (lock);
+
+ if (data != NULL)
+ {
+ /* It worked. */
+ *seen_ipv4 = data->seen_ipv4;
+ *seen_ipv6 = data->seen_ipv6;
+ *in6ailen = data->in6ailen;
+ *in6ai = data->in6ai;
+
+ if (olddata != NULL && olddata->usecnt > 0
+ && atomic_add_zero (&olddata->usecnt, -1))
+ free (olddata);
+
+ return;
+ }
#if __ASSUME_NETLINK_SUPPORT == 0
/* Remember that there is no netlink support. */
@@ -315,3 +407,26 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6,
(void) freeifaddrs (ifa);
#endif
}
+
+
+void
+__free_in6ai (struct in6addrinfo *ai)
+{
+ if (ai != NULL)
+ {
+ struct cached_data *data =
+ (struct cached_data *) ((char *) ai
+ - offsetof (struct cached_data, in6ai));
+
+ if (atomic_add_zero (&data->usecnt, -1))
+ {
+ __libc_lock_lock (lock);
+
+ if (data->usecnt == 0)
+ /* Still unused. */
+ free (data);
+
+ __libc_lock_unlock (lock);
+ }
+ }
+}
diff --git a/libc/sysdeps/unix/sysv/linux/clock_gettime.c b/libc/sysdeps/unix/sysv/linux/clock_gettime.c
index 0ae45de37..ad0fe1e8b 100644
--- a/libc/sysdeps/unix/sysv/linux/clock_gettime.c
+++ b/libc/sysdeps/unix/sysv/linux/clock_gettime.c
@@ -45,8 +45,8 @@
/* This means the REALTIME and MONOTONIC clock are definitely
supported in the kernel. */
-# define SYSDEP_GETTIME \
- SYSDEP_GETTIME_CPUTIME \
+# define SYSDEP_GETTIME \
+ SYSDEP_GETTIME_CPUTIME; \
case CLOCK_REALTIME: \
case CLOCK_MONOTONIC: \
retval = SYSCALL_GETTIME (clock_id, tp); \
@@ -82,8 +82,8 @@ maybe_syscall_gettime (clockid_t clock_id, struct timespec *tp)
/* The REALTIME and MONOTONIC clock might be available. Try the
syscall first. */
-# define SYSDEP_GETTIME \
- SYSDEP_GETTIME_CPUTIME \
+# define SYSDEP_GETTIME \
+ SYSDEP_GETTIME_CPUTIME; \
case CLOCK_REALTIME: \
case CLOCK_MONOTONIC: \
case CLOCK_MONOTONIC_RAW: \
@@ -100,7 +100,7 @@ maybe_syscall_gettime (clockid_t clock_id, struct timespec *tp)
__set_errno (retval); \
retval = -1; \
} \
- break;
+ break
#endif
#ifdef __NR_clock_gettime
@@ -110,7 +110,9 @@ maybe_syscall_gettime (clockid_t clock_id, struct timespec *tp)
# if __ASSUME_POSIX_CPU_TIMERS > 0
-# define SYSDEP_GETTIME_CPU SYSCALL_GETTIME
+# define SYSDEP_GETTIME_CPU(clock_id, tp) \
+ retval = SYSCALL_GETTIME (clock_id, tp); \
+ break
# define SYSDEP_GETTIME_CPUTIME /* Default catches them too. */
# else
@@ -164,7 +166,7 @@ maybe_syscall_gettime_cpu (clockid_t clock_id, struct timespec *tp)
return e;
}
-# define SYSDEP_GETTIME_CPU \
+# define SYSDEP_GETTIME_CPU(clock_id, tp) \
retval = maybe_syscall_gettime_cpu (clock_id, tp); \
if (retval == 0) \
break; \
@@ -199,7 +201,7 @@ maybe_syscall_gettime_cputime (clockid_t clock_id, struct timespec *tp)
break; \
} \
retval = hp_timing_gettime (clock_id, tp); \
- break;
+ break
# if !HP_TIMING_AVAIL
# define hp_timing_gettime(clock_id, tp) (__set_errno (EINVAL), -1)
# endif
diff --git a/libc/sysdeps/unix/sysv/linux/getsysstats.c b/libc/sysdeps/unix/sysv/linux/getsysstats.c
index 7feb7a180..bde3fa899 100644
--- a/libc/sysdeps/unix/sysv/linux/getsysstats.c
+++ b/libc/sysdeps/unix/sysv/linux/getsysstats.c
@@ -296,7 +296,7 @@ phys_pages_info (const char *format)
long int result = -1;
/* If we haven't found an appropriate entry return 1. */
- FILE *fp = fopen ("/proc/meminfo", "rc");
+ FILE *fp = fopen ("/proc/meminfo", "rce");
if (fp != NULL)
{
/* No threads use this stream. */
diff --git a/libc/sysdeps/unix/sysv/linux/internal_statvfs.c b/libc/sysdeps/unix/sysv/linux/internal_statvfs.c
index 2ddec1edb..a0bad02d7 100644
--- a/libc/sysdeps/unix/sysv/linux/internal_statvfs.c
+++ b/libc/sysdeps/unix/sysv/linux/internal_statvfs.c
@@ -237,9 +237,13 @@ INTERNAL_STATVFS (const char *name, struct STATVFS *buf,
buf->f_files = fsbuf->f_files;
buf->f_ffree = fsbuf->f_ffree;
if (sizeof (buf->f_fsid) == sizeof (fsbuf->f_fsid))
+ /* The shifting uses 'unsigned long long int' even though the target
+ field might only have 32 bits. This is OK since the 'if' branch
+ is not used in this case but the compiler would still generate
+ warnings. */
buf->f_fsid = ((fsbuf->f_fsid.__val[0]
- & ((1UL << (8 * sizeof (fsbuf->f_fsid.__val[0]))) - 1))
- | ((unsigned long int) fsbuf->f_fsid.__val[1]
+ & ((1ULL << (8 * sizeof (fsbuf->f_fsid.__val[0]))) - 1))
+ | ((unsigned long long int) fsbuf->f_fsid.__val[1]
<< (8 * (sizeof (buf->f_fsid)
- sizeof (fsbuf->f_fsid.__val[0])))));
else
diff --git a/libc/sysdeps/unix/sysv/linux/readonly-area.c b/libc/sysdeps/unix/sysv/linux/readonly-area.c
index 69e926a7a..ce8ac94c4 100644
--- a/libc/sysdeps/unix/sysv/linux/readonly-area.c
+++ b/libc/sysdeps/unix/sysv/linux/readonly-area.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2004, 2005, 2011 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
@@ -32,7 +32,7 @@ __readonly_area (const char *ptr, size_t size)
{
const void *ptr_end = ptr + size;
- FILE *fp = fopen ("/proc/self/maps", "rc");
+ FILE *fp = fopen ("/proc/self/maps", "rce");
if (fp == NULL)
{
/* It is the system administrator's choice to not have /proc
diff --git a/libc/sysdeps/unix/sysv/linux/syscalls.list b/libc/sysdeps/unix/sysv/linux/syscalls.list
index 2bed9e99e..f6e6653d3 100644
--- a/libc/sysdeps/unix/sysv/linux/syscalls.list
+++ b/libc/sysdeps/unix/sysv/linux/syscalls.list
@@ -109,3 +109,6 @@ name_to_handle_at EXTRA name_to_handle_at i:isppi name_to_handle_at
open_by_handle_at EXTRA open_by_handle_at Ci:ipi open_by_handle_at
setns EXTRA setns i:ii setns
+
+process_vm_readv EXTRA process_vm_readv i:ipipii process_vm_readv
+process_vm_writev EXTRA process_vm_writev i:ipipii process_vm_writev
diff --git a/libc/sysdeps/unix/sysv/linux/x86_64/clock_gettime.c b/libc/sysdeps/unix/sysv/linux/x86_64/clock_gettime.c
index 7802701e2..f7121106b 100644
--- a/libc/sysdeps/unix/sysv/linux/x86_64/clock_gettime.c
+++ b/libc/sysdeps/unix/sysv/linux/x86_64/clock_gettime.c
@@ -3,8 +3,14 @@
#ifdef SHARED
# define SYSCALL_GETTIME(id, tp) \
({ long int (*f) (clockid_t, struct timespec *) = __vdso_clock_gettime; \
+ long int v_ret; \
PTR_DEMANGLE (f); \
- f (id, tp); })
+ v_ret = f (id, tp); \
+ if (INTERNAL_SYSCALL_ERROR_P (v_ret, )) { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (v_ret, )); \
+ v_ret = -1; \
+ } \
+ v_ret; })
# define INTERNAL_GETTIME(id, tp) \
({ long int (*f) (clockid_t, struct timespec *) = __vdso_clock_gettime; \
PTR_DEMANGLE (f); \
diff --git a/libc/sysdeps/x86_64/fpu/multiarch/Makefile b/libc/sysdeps/x86_64/fpu/multiarch/Makefile
index f97ce1699..be689036d 100644
--- a/libc/sysdeps/x86_64/fpu/multiarch/Makefile
+++ b/libc/sysdeps/x86_64/fpu/multiarch/Makefile
@@ -36,29 +36,18 @@ endif
ifeq ($(config-cflags-avx),yes)
libm-sysdep_routines += e_exp-avx e_log-avx s_atan-avx \
- e_asin-avx e_atan2-avx s_sin-avx s_tan-avx \
+ e_atan2-avx s_sin-avx s_tan-avx \
mplog-avx mpa-avx slowexp-avx \
- sincos32-avx doasin-avx dosincos-avx \
- brandred-avx mpexp-avx \
- mpatan2-avx mpatan-avx mpsqrt-avx mptan-avx
+ mpexp-avx
-CFLAGS-brandred-avx.c = -mavx
-CFLAGS-doasin-avx.c = -mavx
-CFLAGS-dosincos-avx.c = -mavx
-CFLAGS-e_asin-avx.c = -mavx
CFLAGS-e_atan2-avx.c = -mavx
CFLAGS-e_exp-avx.c = -mavx
CFLAGS-e_log-avx.c = -mavx
CFLAGS-mpa-avx.c = -mavx
-CFLAGS-mpatan-avx.c = -mavx
-CFLAGS-mpatan2-avx.c = -mavx
CFLAGS-mpexp-avx.c = -mavx
CFLAGS-mplog-avx.c = -mavx
-CFLAGS-mpsqrt-avx.c = -mavx
-CFLAGS-mptan-avx.c = -mavx
CFLAGS-s_atan-avx.c = -mavx
CFLAGS-s_sin-avx.c = -mavx
-CFLAGS-sincos32-avx.c = -mavx
CFLAGS-slowexp-avx.c = -mavx
CFLAGS-s_tan-avx.c = -mavx
endif
diff --git a/libc/sysdeps/x86_64/fpu/multiarch/brandred-avx.c b/libc/sysdeps/x86_64/fpu/multiarch/brandred-avx.c
deleted file mode 100644
index 2f6edffad..000000000
--- a/libc/sysdeps/x86_64/fpu/multiarch/brandred-avx.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#define __branred __branred_avx
-#define SECTION __attribute__ ((section (".text.avx")))
-
-#include <sysdeps/ieee754/dbl-64/branred.c>
diff --git a/libc/sysdeps/x86_64/fpu/multiarch/doasin-avx.c b/libc/sysdeps/x86_64/fpu/multiarch/doasin-avx.c
deleted file mode 100644
index 86781c156..000000000
--- a/libc/sysdeps/x86_64/fpu/multiarch/doasin-avx.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#define __doasin __doasin_avx
-#define SECTION __attribute__ ((section (".text.avx")))
-
-#include <sysdeps/ieee754/dbl-64/doasin.c>
diff --git a/libc/sysdeps/x86_64/fpu/multiarch/dosincos-avx.c b/libc/sysdeps/x86_64/fpu/multiarch/dosincos-avx.c
deleted file mode 100644
index ffa18743d..000000000
--- a/libc/sysdeps/x86_64/fpu/multiarch/dosincos-avx.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#define __docos __docos_avx
-#define __dubcos __dubcos_avx
-#define __dubsin __dubsin_avx
-#define SECTION __attribute__ ((section (".text.avx")))
-
-#include <sysdeps/ieee754/dbl-64/dosincos.c>
diff --git a/libc/sysdeps/x86_64/fpu/multiarch/e_asin-avx.c b/libc/sysdeps/x86_64/fpu/multiarch/e_asin-avx.c
deleted file mode 100644
index 7f89e4f14..000000000
--- a/libc/sysdeps/x86_64/fpu/multiarch/e_asin-avx.c
+++ /dev/null
@@ -1,11 +0,0 @@
-#define __ieee754_acos __ieee754_acos_avx
-#define __ieee754_asin __ieee754_asin_avx
-#define __cos32 __cos32_avx
-#define __doasin __doasin_avx
-#define __docos __docos_avx
-#define __dubcos __dubcos_avx
-#define __dubsin __dubsin_avx
-#define __sin32 __sin32_avx
-#define SECTION __attribute__ ((section (".text.avx")))
-
-#include <sysdeps/ieee754/dbl-64/e_asin.c>
diff --git a/libc/sysdeps/x86_64/fpu/multiarch/e_asin.c b/libc/sysdeps/x86_64/fpu/multiarch/e_asin.c
index bb711b1ff..e742a9c13 100644
--- a/libc/sysdeps/x86_64/fpu/multiarch/e_asin.c
+++ b/libc/sysdeps/x86_64/fpu/multiarch/e_asin.c
@@ -1,29 +1,18 @@
-#if defined HAVE_FMA4_SUPPORT || defined HAVE_AVX_SUPPORT
+#ifdef HAVE_FMA4_SUPPORT
# include <init-arch.h>
# include <math_private.h>
extern double __ieee754_acos_sse2 (double);
extern double __ieee754_asin_sse2 (double);
-extern double __ieee754_acos_avx (double);
-extern double __ieee754_asin_avx (double);
-# ifdef HAVE_FMA4_SUPPORT
extern double __ieee754_acos_fma4 (double);
extern double __ieee754_asin_fma4 (double);
-# else
-# undef HAS_FMA4
-# define HAS_FMA4 0
-# define __ieee754_acos_fma4 ((void *) 0)
-# define __ieee754_asin_fma4 ((void *) 0)
-# endif
libm_ifunc (__ieee754_acos,
- HAS_FMA4 ? __ieee754_acos_fma4
- : (HAS_AVX ? __ieee754_acos_avx : __ieee754_acos_sse2));
+ HAS_FMA4 ? __ieee754_acos_fma4 : __ieee754_acos_sse2);
strong_alias (__ieee754_acos, __acos_finite)
libm_ifunc (__ieee754_asin,
- HAS_FMA4 ? __ieee754_asin_fma4
- : (HAS_AVX ? __ieee754_asin_avx : __ieee754_asin_sse2));
+ HAS_FMA4 ? __ieee754_asin_fma4 : __ieee754_asin_sse2);
strong_alias (__ieee754_asin, __asin_finite)
# define __ieee754_acos __ieee754_acos_sse2
diff --git a/libc/sysdeps/x86_64/fpu/multiarch/e_atan2-avx.c b/libc/sysdeps/x86_64/fpu/multiarch/e_atan2-avx.c
index 13155c87d..3012afac3 100644
--- a/libc/sysdeps/x86_64/fpu/multiarch/e_atan2-avx.c
+++ b/libc/sysdeps/x86_64/fpu/multiarch/e_atan2-avx.c
@@ -2,7 +2,6 @@
#define __add __add_avx
#define __dbl_mp __dbl_mp_avx
#define __dvd __dvd_avx
-#define __mpatan2 __mpatan2_avx
#define __mul __mul_avx
#define __sub __sub_avx
#define SECTION __attribute__ ((section (".text.avx")))
diff --git a/libc/sysdeps/x86_64/fpu/multiarch/mpatan-avx.c b/libc/sysdeps/x86_64/fpu/multiarch/mpatan-avx.c
deleted file mode 100644
index e26e1fa3e..000000000
--- a/libc/sysdeps/x86_64/fpu/multiarch/mpatan-avx.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#define __mpatan __mpatan_avx
-#define __add __add_avx
-#define __dvd __dvd_avx
-#define __mpsqrt __mpsqrt_avx
-#define __mul __mul_avx
-#define __sub __sub_avx
-#define AVOID_MPATAN_H 1
-#define SECTION __attribute__ ((section (".text.avx")))
-
-#include <sysdeps/ieee754/dbl-64/mpatan.c>
diff --git a/libc/sysdeps/x86_64/fpu/multiarch/mpatan2-avx.c b/libc/sysdeps/x86_64/fpu/multiarch/mpatan2-avx.c
deleted file mode 100644
index fa824d69b..000000000
--- a/libc/sysdeps/x86_64/fpu/multiarch/mpatan2-avx.c
+++ /dev/null
@@ -1,9 +0,0 @@
-#define __mpatan2 __mpatan2_avx
-#define __add __add_avx
-#define __dvd __dvd_avx
-#define __mpatan __mpatan_avx
-#define __mpsqrt __mpsqrt_avx
-#define __mul __mul_avx
-#define SECTION __attribute__ ((section (".text.avx")))
-
-#include <sysdeps/ieee754/dbl-64/mpatan2.c>
diff --git a/libc/sysdeps/x86_64/fpu/multiarch/mpsqrt-avx.c b/libc/sysdeps/x86_64/fpu/multiarch/mpsqrt-avx.c
deleted file mode 100644
index 26f2fb30f..000000000
--- a/libc/sysdeps/x86_64/fpu/multiarch/mpsqrt-avx.c
+++ /dev/null
@@ -1,8 +0,0 @@
-#define __mpsqrt __mpsqrt_avx
-#define __dbl_mp __dbl_mp_avx
-#define __mul __mul_avx
-#define __sub __sub_avx
-#define AVOID_MPSQRT_H 1
-#define SECTION __attribute__ ((section (".text.avx")))
-
-#include <sysdeps/ieee754/dbl-64/mpsqrt.c>
diff --git a/libc/sysdeps/x86_64/fpu/multiarch/mptan-avx.c b/libc/sysdeps/x86_64/fpu/multiarch/mptan-avx.c
deleted file mode 100644
index 02514b783..000000000
--- a/libc/sysdeps/x86_64/fpu/multiarch/mptan-avx.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#define __mptan __mptan_avx
-#define __c32 __c32_avx
-#define __dvd __dvd_avx
-#define __mpranred __mpranred_avx
-#define SECTION __attribute__ ((section (".text.avx")))
-
-#include <sysdeps/ieee754/dbl-64/mptan.c>
diff --git a/libc/sysdeps/x86_64/fpu/multiarch/s_atan-avx.c b/libc/sysdeps/x86_64/fpu/multiarch/s_atan-avx.c
index 8e7022f51..b5cb9c3a7 100644
--- a/libc/sysdeps/x86_64/fpu/multiarch/s_atan-avx.c
+++ b/libc/sysdeps/x86_64/fpu/multiarch/s_atan-avx.c
@@ -1,7 +1,6 @@
#define atan __atan_avx
#define __add __add_avx
#define __dbl_mp __dbl_mp_avx
-#define __mpatan __mpatan_avx
#define __mul __mul_avx
#define __sub __sub_avx
#define SECTION __attribute__ ((section (".text.avx")))
diff --git a/libc/sysdeps/x86_64/fpu/multiarch/s_sin-avx.c b/libc/sysdeps/x86_64/fpu/multiarch/s_sin-avx.c
index c0ccf4be7..e1c6de025 100644
--- a/libc/sysdeps/x86_64/fpu/multiarch/s_sin-avx.c
+++ b/libc/sysdeps/x86_64/fpu/multiarch/s_sin-avx.c
@@ -1,12 +1,5 @@
#define __cos __cos_avx
#define __sin __sin_avx
-#define __branred __branred_avx
-#define __docos __docos_avx
-#define __dubsin __dubsin_avx
-#define __mpcos __mpcos_avx
-#define __mpcos1 __mpcos1_avx
-#define __mpsin __mpsin_avx
-#define __mpsin1 __mpsin1_avx
#define SECTION __attribute__ ((section (".text.avx")))
#include <sysdeps/ieee754/dbl-64/s_sin.c>
diff --git a/libc/sysdeps/x86_64/fpu/multiarch/s_tan-avx.c b/libc/sysdeps/x86_64/fpu/multiarch/s_tan-avx.c
index f31ff65b6..53de5d3c9 100644
--- a/libc/sysdeps/x86_64/fpu/multiarch/s_tan-avx.c
+++ b/libc/sysdeps/x86_64/fpu/multiarch/s_tan-avx.c
@@ -1,8 +1,5 @@
#define tan __tan_avx
-#define __branred __branred_avx
#define __dbl_mp __dbl_mp_avx
-#define __mpranred __mpranred_avx
-#define __mptan __mptan_avx
#define __sub __sub_avx
#define SECTION __attribute__ ((section (".text.avx")))
diff --git a/libc/sysdeps/x86_64/fpu/multiarch/sincos32-avx.c b/libc/sysdeps/x86_64/fpu/multiarch/sincos32-avx.c
deleted file mode 100644
index 5af51ab38..000000000
--- a/libc/sysdeps/x86_64/fpu/multiarch/sincos32-avx.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#define __cos32 __cos32_avx
-#define __sin32 __sin32_avx
-#define __c32 __c32_avx
-#define __mpsin __mpsin_avx
-#define __mpsin1 __mpsin1_avx
-#define __mpcos __mpcos_avx
-#define __mpcos1 __mpcos1_avx
-#define __mpranred __mpranred_avx
-#define __add __add_avx
-#define __dbl_mp __dbl_mp_avx
-#define __mul __mul_avx
-#define __sub __sub_avx
-#define SECTION __attribute__ ((section (".text.avx")))
-
-#include <sysdeps/ieee754/dbl-64/sincos32.c>
diff --git a/libc/sysdeps/x86_64/multiarch/strcmp-sse42.S b/libc/sysdeps/x86_64/multiarch/strcmp-sse42.S
index b93eda13b..7a50ff05d 100644
--- a/libc/sysdeps/x86_64/multiarch/strcmp-sse42.S
+++ b/libc/sysdeps/x86_64/multiarch/strcmp-sse42.S
@@ -104,7 +104,7 @@ STRCMP_SSE42:
# else
movq (%rdx), %rax
# endif
- testl $0, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
+ testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
jne __strcasecmp_l_nonascii
#endif
#ifdef USE_AS_STRNCASECMP_L
@@ -115,7 +115,7 @@ STRCMP_SSE42:
# else
movq (%rcx), %rax
# endif
- testl $0, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
+ testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
jne __strncasecmp_l_nonascii
#endif
diff --git a/libc/sysdeps/x86_64/multiarch/strstr.c b/libc/sysdeps/x86_64/multiarch/strstr.c
index b408b752f..36dc6762c 100644
--- a/libc/sysdeps/x86_64/multiarch/strstr.c
+++ b/libc/sysdeps/x86_64/multiarch/strstr.c
@@ -1,5 +1,5 @@
/* strstr with SSE4.2 intrinsics
- Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
Contributed by Intel Corporation.
This file is part of the GNU C Library.
@@ -88,14 +88,12 @@
cross to next page. */
static inline __m128i
-__m128i_strloadu (const unsigned char * p)
+__m128i_strloadu (const unsigned char * p, __m128i zero)
{
- int offset = ((size_t) p & (16 - 1));
-
- if (offset && (int) ((size_t) p & 0xfff) > 0xff0)
+ if (__builtin_expect ((int) ((size_t) p & 0xfff) > 0xff0, 0))
{
+ size_t offset = ((size_t) p & (16 - 1));
__m128i a = _mm_load_si128 ((__m128i *) (p - offset));
- __m128i zero = _mm_setzero_si128 ();
int bmsk = _mm_movemask_epi8 (_mm_cmpeq_epi8 (a, zero));
if ((bmsk >> offset) != 0)
return __m128i_shift_right (a, offset);
@@ -106,24 +104,22 @@ __m128i_strloadu (const unsigned char * p)
#if defined USE_AS_STRCASESTR && !defined STRCASESTR_NONASCII
/* Similar to __m128i_strloadu. Convert to lower case for POSIX/C
- locale. */
+ locale and other which have single-byte letters only in the ASCII
+ range. */
static inline __m128i
-__m128i_strloadu_tolower (const unsigned char *p, __m128i rangeuc,
- __m128i u2ldelta)
+__m128i_strloadu_tolower (const unsigned char *p, __m128i zero, __m128i uclow,
+ __m128i uchigh, __m128i lcqword)
{
- __m128i frag = __m128i_strloadu (p);
+ __m128i frag = __m128i_strloadu (p, zero);
-#define UCLOW 0x4040404040404040ULL
-#define UCHIGH 0x5b5b5b5b5b5b5b5bULL
-#define LCQWORD 0x2020202020202020ULL
/* Compare if 'Z' > bytes. Inverted way to get a mask for byte <= 'Z'. */
- __m128i r2 = _mm_cmpgt_epi8 (_mm_set1_epi64x (UCHIGH), frag);
+ __m128i r2 = _mm_cmpgt_epi8 (uchigh, frag);
/* Compare if bytes are > 'A' - 1. */
- __m128i r1 = _mm_cmpgt_epi8 (frag, _mm_set1_epi64x (UCLOW));
+ __m128i r1 = _mm_cmpgt_epi8 (frag, uclow);
/* Mask byte == ff if byte(r2) <= 'Z' and byte(r1) > 'A' - 1. */
__m128i mask = _mm_and_si128 (r2, r1);
/* Apply lowercase bit 6 mask for above mask bytes == ff. */
- return _mm_or_si128 (frag, _mm_and_si128 (mask, _mm_set1_epi64x (LCQWORD)));
+ return _mm_or_si128 (frag, _mm_and_si128 (mask, lcqword));
}
#endif
@@ -190,14 +186,18 @@ STRSTR_SSE42 (const unsigned char *s1, const unsigned char *s2)
!= 0, 0))
return __strcasestr_sse42_nonascii (s1, s2);
- const __m128i rangeuc = _mm_set_epi64x (0x0, 0x5a41);
- const __m128i u2ldelta = _mm_set1_epi64x (0xe0e0e0e0e0e0e0e0);
-# define strloadu(p) __m128i_strloadu_tolower (p, rangeuc, u2ldelta)
+ const __m128i uclow = _mm_set1_epi8 (0x40);
+ const __m128i uchigh = _mm_set1_epi8 (0x5b);
+ const __m128i lcqword = _mm_set1_epi8 (0x20);
+ const __m128i zero = _mm_setzero_si128 ();
+# define strloadu(p) __m128i_strloadu_tolower (p, zero, uclow, uchigh, lcqword)
# else
# define strloadu __m128i_strloadu_tolower
+# define zero _mm_setzero_si128 ()
# endif
#else
-# define strloadu __m128i_strloadu
+# define strloadu(p) __m128i_strloadu (p, zero)
+ const __m128i zero = _mm_setzero_si128 ();
#endif
/* p1 > 1 byte long. Load up to 16 bytes of fragment. */
@@ -208,7 +208,7 @@ STRSTR_SSE42 (const unsigned char *s1, const unsigned char *s2)
/* p2 is > 1 byte long. */
frag2 = strloadu (p2);
else
- frag2 = _mm_insert_epi8 (_mm_setzero_si128 (), LOADBYTE (p2[0]), 0);
+ frag2 = _mm_insert_epi8 (zero, LOADBYTE (p2[0]), 0);
/* Unsigned bytes, equal order, does frag2 has null? */
int cmp_c = _mm_cmpistrc (frag2, frag1, 0x0c);
@@ -217,8 +217,7 @@ STRSTR_SSE42 (const unsigned char *s1, const unsigned char *s2)
int cmp_s = _mm_cmpistrs (frag2, frag1, 0x0c);
if (cmp_s & cmp_c)
{
- int bmsk = _mm_movemask_epi8 (_mm_cmpeq_epi8 (frag2,
- _mm_setzero_si128 ()));
+ int bmsk = _mm_movemask_epi8 (_mm_cmpeq_epi8 (frag2, zero));
int len;
__asm ("bsfl %[bmsk], %[len]"
: [len] "=r" (len) : [bmsk] "r" (bmsk));
@@ -344,7 +343,6 @@ re_trace:
/* Handle both zero and sign flag set and s1 is shorter in
length. */
- __m128i zero = _mm_setzero_si128 ();
int bmsk = _mm_movemask_epi8 (_mm_cmpeq_epi8 (zero, frag2));
int bmsk1 = _mm_movemask_epi8 (_mm_cmpeq_epi8 (zero, frag1));
int len;
diff --git a/libc/sysdeps/x86_64/strcmp.S b/libc/sysdeps/x86_64/strcmp.S
index 165073e90..6e5bdaaf2 100644
--- a/libc/sysdeps/x86_64/strcmp.S
+++ b/libc/sysdeps/x86_64/strcmp.S
@@ -1,5 +1,5 @@
/* Highly optimized version for x86-64.
- Copyright (C) 1999, 2000, 2002, 2003, 2005, 2009, 2010
+ Copyright (C) 1999, 2000, 2002, 2003, 2005, 2009, 2010, 2011
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Based on i686 version contributed by Ulrich Drepper
@@ -157,7 +157,7 @@ END (BP_SYM (STRCMP))
# else
movq (%rdx), %rax
# endif
- testl $0, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
+ testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
jne __strcasecmp_l_nonascii
# elif defined USE_AS_STRNCASECMP_L
/* We have to fall back on the C implementation for locales
@@ -167,7 +167,7 @@ END (BP_SYM (STRCMP))
# else
movq (%rcx), %rax
# endif
- testl $0, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
+ testl $1, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
jne __strncasecmp_l_nonascii
# endif
diff --git a/libc/time/getdate.c b/libc/time/getdate.c
index cbaa41dfd..a95bad4c4 100644
--- a/libc/time/getdate.c
+++ b/libc/time/getdate.c
@@ -1,5 +1,5 @@
/* Convert a string representation of time to a time value.
- Copyright (C) 1997,1998,1999,2000,2001,2003 Free Software Foundation, Inc.
+ Copyright (C) 1997-2001,2003,2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1997.
@@ -44,7 +44,7 @@ static int check_mday (int year, int mon, int mday);
6 memory allication failed (not enough memory available),
7 there is no line in the template that matches the input,
8 invalid input specification Example: February 31 or a time is
- specified that can not be represented in a time_t (representing
+ specified that can not be represented in a time_t (representing
the time in seconds since 00:00:00 UTC, January 1, 1970) */
int getdate_err;
@@ -129,7 +129,7 @@ __getdate_r (const char *string, struct tm *tp)
return 2;
/* Open the template file. */
- fp = fopen (datemsk, "rc");
+ fp = fopen (datemsk, "rce");
if (fp == NULL)
return 2;
diff --git a/libc/time/tzfile.c b/libc/time/tzfile.c
index f4cba46e5..144e20ba2 100644
--- a/libc/time/tzfile.c
+++ b/libc/time/tzfile.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-1993,1995-2001,2003,2004,2006,2007,2009
+/* Copyright (C) 1991-1993,1995-2001,2003,2004,2006,2007,2009,2011
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -178,8 +178,8 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
}
/* Note the file is opened with cancellation in the I/O functions
- disabled. */
- f = fopen (file, "rc");
+ disabled and if available FD_CLOEXEC set. */
+ f = fopen (file, "rce");
if (f == NULL)
goto ret_free_transitions;
diff --git a/ports/ChangeLog.arm b/ports/ChangeLog.arm
index c61cfe461..8c14f0898 100644
--- a/ports/ChangeLog.arm
+++ b/ports/ChangeLog.arm
@@ -1,3 +1,8 @@
+2011-11-16 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/arm/ioperm.c (init_iosys): Use "c" and
+ "e" in fopen.
+
2011-10-26 Joseph Myers <joseph@codesourcery.com>
* sysdeps/arm/dl-machine.h, sysdeps/unix/arm/sysdep.S: Restore
diff --git a/ports/ChangeLog.m68k b/ports/ChangeLog.m68k
index 09de15987..42dcf75db 100644
--- a/ports/ChangeLog.m68k
+++ b/ports/ChangeLog.m68k
@@ -1,3 +1,8 @@
+2011-11-01 Andreas Schwab <schwab@linux-m68k.org>
+
+ * sysdeps/m68k/stackinfo.h (stackinfo_get_sp, stackinfo_sub_sp):
+ Define.
+
2011-10-26 Andreas Schwab <schwab@linux-m68k.org>
* sysdeps/m68k/m680x0/fpu/math_private.h: New file.
diff --git a/ports/ChangeLog.mips b/ports/ChangeLog.mips
index 78932d7a0..abfc2b447 100644
--- a/ports/ChangeLog.mips
+++ b/ports/ChangeLog.mips
@@ -1,3 +1,12 @@
+2011-11-17 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/mips/mips64/n64/ftw.c,
+ sysdeps/unix/sysv/linux/mips/mips64/n64/ftw64.c: New.
+
+2011-11-11 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/mips/dl-lookup.c: Update from generic version.
+
2011-10-12 Joseph Myers <joseph@codesourcery.com>
* sysdeps/mips/fpu/e_sqrt.c: Add __sqrt_finite alias.
diff --git a/ports/sysdeps/m68k/stackinfo.h b/ports/sysdeps/m68k/stackinfo.h
index b44d4d0ee..bcfdb1285 100644
--- a/ports/sysdeps/m68k/stackinfo.h
+++ b/ports/sysdeps/m68k/stackinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2010 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2010, 2011 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
@@ -31,4 +31,12 @@
is present, but it is presumed absent. */
#define DEFAULT_STACK_PERMS (PF_R|PF_W|PF_X)
+/* Access to the stack pointer. */
+#define stackinfo_get_sp() \
+ ({ void *p__; asm volatile ("move.l %%sp, %0" : "=r" (p__)); p__; })
+#define stackinfo_sub_sp(ptr) \
+ ({ ptrdiff_t d__; \
+ asm volatile ("sub.l %%sp, %0" : "=r" (d__) : "0" (ptr)); \
+ d__; })
+
#endif /* stackinfo.h */
diff --git a/ports/sysdeps/mips/dl-lookup.c b/ports/sysdeps/mips/dl-lookup.c
index 6b36c34a8..fed3b6c66 100644
--- a/ports/sysdeps/mips/dl-lookup.c
+++ b/ports/sysdeps/mips/dl-lookup.c
@@ -877,7 +877,6 @@ internal_function
_dl_setup_hash (struct link_map *map)
{
Elf_Symndx *hash;
- Elf_Symndx nchain;
if (__builtin_expect (map->l_info[DT_ADDRTAGIDX (DT_GNU_HASH) + DT_NUM
+ DT_THISPROCNUM + DT_VERSIONTAGNUM
@@ -909,7 +908,8 @@ _dl_setup_hash (struct link_map *map)
hash = (void *) D_PTR (map, l_info[DT_HASH]);
map->l_nbuckets = *hash++;
- nchain = *hash++;
+ /* Skip nchain. */
+ hash++;
map->l_buckets = hash;
hash += map->l_nbuckets;
map->l_chain = hash;
diff --git a/ports/sysdeps/unix/sysv/linux/arm/ioperm.c b/ports/sysdeps/unix/sysv/linux/arm/ioperm.c
index 8af1ea356..8ac9b09c2 100644
--- a/ports/sysdeps/unix/sysv/linux/arm/ioperm.c
+++ b/ports/sysdeps/unix/sysv/linux/arm/ioperm.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 1998, 1999, 2003, 2005, 2008 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2003, 2005, 2008, 2011
+ Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Phil Blundell, based on the Alpha version by
David Mosberger.
@@ -135,7 +136,7 @@ init_iosys (void)
{
FILE * fp;
- fp = fopen (PATH_CPUINFO, "r");
+ fp = fopen (PATH_CPUINFO, "rce");
if (! fp)
return -1;
while ((n = fscanf (fp, "Hardware\t: %256[^\n]\n", systype))
diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/ftw.c b/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/ftw.c
new file mode 100644
index 000000000..46389568b
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/ftw.c
@@ -0,0 +1 @@
+#include <io/ftw.c>
diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/ftw64.c b/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/ftw64.c
new file mode 100644
index 000000000..cb02172b3
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/ftw64.c
@@ -0,0 +1 @@
+#include <io/ftw64.c>