aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1996-10-31 02:57:12 +0000
committerUlrich Drepper <drepper@redhat.com>1996-10-31 02:57:12 +0000
commitba1ffaa1c6989873b57edc84491bfd1308b2190d (patch)
tree77274c1136f21a58e60397fdd62ad03846bc5888
parentf0f4432f46882d22f61a89f4130a697313f53901 (diff)
downloadglibc-ba1ffaa1c6989873b57edc84491bfd1308b2190d.tar
glibc-ba1ffaa1c6989873b57edc84491bfd1308b2190d.tar.gz
glibc-ba1ffaa1c6989873b57edc84491bfd1308b2190d.tar.bz2
glibc-ba1ffaa1c6989873b57edc84491bfd1308b2190d.zip
update from main archive 961030cvs/libc-961031
Thu Oct 31 00:01:39 1996 Ulrich Drepper <drepper@cygnus.com> * signal/Makefile (routines): Add sigwait. * signal/signal.h: Add prototype for sigwait. * sysdeps/posix/sigwait.c: New file. Implementation of sigwait function from POSIX.1c. * sysdeps/stub/sigwait.c: New file. Stub version of sigwait. Wed Oct 30 02:01:17 1996 Richard Henderson <rth@tamu.edu> * sunrpc/xdr_float.c (xdr_float): Handle sizeof(float)!=sizeof(long), but don't bother going farther than sizeof(float)==sizeof(int). (xdr_double): Handle little-endian machines! Handle sizeof(double) != 2*sizeof(long), though again don't bother with more than int. Thu Oct 29 16:09:42 1996 Craig Metz <cmetz@inner.net> * sysdeps/posix/getaddrinfo.c: Use buffer limits for inet_ntop function. Tue Oct 29 12:37:22 1996 Ulrich Drepper <drepper@cygnus.com> * Makerules: Create symbolic links for linking in $(libdir). (make-link): Use absolute path for destination if this is not in the same directory. * elf/rtld.c (dl_main): When verifying don't check the name of the dynamic linker. * shlib-versions: Change entries for Hurd specific libs from *-*-gnu* to *-*-gnu?* so that i586-pc-linux-gnu does not match these entries. * assert/assert.h: Reformat copyright. Change reference to ANSI into reference to ISO C. * ctype/ctype.h: Likewise. * errno.h: Likewise. * limits.h: Likewise. * math/math.h: Likewise. * setjmp/setjmp.h: Likewise. * stdio/stdio.h: Likewise. * libio/stdio.h: Likewise. * stdlib/stdlib.h: Likewise. * string/string.h: Likewise. * time/time.h: Likewise. * string/argz.h: Use __const is definitions. * elf/dlfcn.h: Use __const and __P. Reformat copyright. * misc/err.h: Likewise. * wctype/wctype.h (wctrans_t): Use __const instead of const. * Makeconfig ($(common-objpfx)soversions.mk): Generate list of sonames for versioned libraries. * Makefile: Remove code to generate libc-version.h. Generate gnu/lib-names.h with info from soversions.mk. * features.h: Define __GLIBC__ and __GLIBC_MINOR__. * dirent/tst-seekdir.c: Initialize save3. * grp/testgrp.c: Initialize my_group. * grp/fgetgrent_r.c: Change interface to follow POSIX.1c. * grp/grp.h: Likewise. * nss/getXXbyYY.c: Likewise. * nss/getXXbyYY_r.c: Likewise. * nss/getXXent.c: Likewise. * nss/getXXent_r.c: Likewise. * pwd/fgetpwent_r.c: Likewise. * pwd/pwd.h: Likewise. * shadow/fgetspent_r.c: Likewise. * shadow/sgetspent.c: Likewise. * shadow/sgetspent_r.c: Likewise. * grp/fgetgrent.c: Adapt for change in interface of fgetgrent_r. * pwd/fgetpwent.c: Likewise, for fgetpwent_r.c. * shadow/fgetspent.c: Likewise, for fgetpwent_r.c. * resolv/netdb.h: Adapt prototypes for reentrant functions to follow POSIX.1c. * sunrpc/rpc/netdb.h: Likewise, * shadow/shadow.h: Likewise. * inet/getnetgrent_r.c: Follow change in pwd/grp function interface. * sysdeps/unix/getlogin_r.c: Return ERANGE when buffer is too small. * inet/herrno.c: Don't define __h_errno. Only h_errno otherwise the ELF aliasing creates strange situations. * sysdeps/unix/sysv/linux/errnos.H: Define __set_errno as inline function. * sysdeps/unix/sysv/linux/i386/sysdep.S: Don't define __errno. * sysdeps/unix/sysv/linux/m68k/sysdep.S: Likewise. * libio/libio.h: Don't declare _IO_flockfile and _IO_funlockfile weak. * locale/programs/charmap.c: Add casts to prevent warnings. * locale/programs/linereader.h: Likewise. * locale/programs/ld-collate.c: Likewise. * locale/programs/stringtrans.c: Likewise. Change types for various variables to prevent warnings. * locale/programs/ld-ctype.c: Likewise. * locale/programs/linereader.h (lr_ungetc): Likewise. * locale/programs/charset.h (struct charset): Use `unsigned int' as type for width_default. * posix/regex.c: Change type of `this_reg' variables. * stdio-common/Makefile: Use -Wno-format for tstdiomisc.c. * stdio-common/bug5.c: De-ANSI-fy. Use correct types for variables. * stdio-common/printf_fp.c: Initialize to_shift. * stdio-common/test_rdwr.c: Add cast. * stdio-common/vfprintf.c: Add casts and use correct types to prevent warnings. * stdio-common/vfscanf.c: Initialize str and strptr. * sysdeps/libm-ieee754/e_jnf.c: Use correct types to prevent warnings. * sysdeps/libm-ieee754/e_pow.c: Likewise. * sysdeps/libm-ieee754/e_powf.c: Likewise. * sysdeps/libm-ieee754/e_rem_pio2f.c: Likewise. * time/test-tz.c: Likewise. * manual/creature.texi: Document _REENTRANT and _THREAD_SAFE. * manual/libc.texinfo: Prevent makeinfo failure by avoiding libc.cp index. This must be fixed. * manual/nss.texi: Adapt for correct POSIX.1c interface of reentrant functions. * manual/users.texi: Document netgroup functions. * po/es.po: Updated. * po/fr.po: Updated. * posix/fnmatch.c: Change to match libit version. * posix/unistd.h: Change prototype for ttyname_r to match POSIX.1c. * sysdep/posix/ttyname_r.c: Likewise. * stdlib/atexit.h (__new_exitfn): Add internal locking. * stdlib/exit.c: De-ANSI-fy. Handle new ef_us value for flavor. * stdlib/exit.h: De-ANSI-fy. Define new ef_us value for flavor. * stdlib/random.c (__srandom): Add internal locking. (__initstate): Likewise. (__setstate): Likewise. (__random): Likewise. Mon Oct 28 22:28:37 1996 NIIBE Yutaka <gniibe@mri.co.jp> * sysdeps/generic/crypt-entry.c (crypt_r): Use __set_errno. (crypt): Likewise. * resolv/gethnamaddr.c (gethostbyname2): Likewise. * sysdeps/generic/uname.c: Likewise. * sysdeps/posix/rename.c: Likewise. * sysdeps/stub/setrlimit.c: Likewise. * nss/nss_db/db-netgrp.c (_nss_db_setnetgrent): Fix typo. Sun Oct 27 11:12:50 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * locale/programs/ld-collate.c (collate_order_elem): Fix format string. (collate_element_to): Cast field width argument to `int' for format string. (collate_symbol): Likewise. (collate_order_elem): Likewise. (collate_weight_bsymbol): Likewise. (collate_simple_weight): Likewise. * locale/programs/ld-time.c (STRARR_ELEM): Fix format string. * locale/programs/ld-ctype.c (ctype_class_newP): Add missing argument for format string. (ctype_map_newP): Likewise. (set_class_defaults): Fix format string. * locale/programs/localedef.c (construct_output_path): Putting an explicit \0 into the format string does not work, use %c. Sat Oct 26 20:38:36 1996 Richard Henderson <rth@tamu.edu> * Makerules: Install all shared libraries in $(slibdir). * login/Makefile: Build libutil.so in others pass after libc.so is created. * misc/mntent.h: Include <paths.h> for _PATH_MNTTAB & _PATH_MOUNTED. * string/stratcliff.c: Allocate 3 pages instead of one, then use mprotect so that we know that the adjacent pages are inaccessible. * resource/sys/resource.h: Move all structures and enums to ... * sysdeps/generic/resourcebits.h: ... here ... * sysdeps/unix/bsd/sun/sunos4/resourcebits.h: ... and here. * sysdeps/unix/sysv/linux/alpha/resourcebits.h: Remove. * sysdeps/unix/sysv/linux/i386/resourcebits.h: Remove. * sysdeps/unix/sysv/linux/m68k/resourcebits.h: Remove. * sysdeps/unix/sysv/linux/mips/resourcebits.h: Remove. * sysdeps/unix/sysv/linux/resourcebits.h: New file. Use kernel header for RLIMIT_* definitions. The members of struct rlimit are longs. Thu Oct 24 17:43:34 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * MakeTAGS (sysdep-dirs): Fix typo. Wed Oct 23 03:45:22 1996 Ulrich Drepper <drepper@cygnus.com> * Makefile (headers): Don't mention libc-version.h. (install-others): ...but here. * time/strptime.c: Recognize %s, %u, %g, and %G format. nothing is found. This guarantees all subsequent calls behave * sysdeps/unix/sysv/linux/syscalls.list: Change function name for * io/getwd.c (getwd) [! PATH_MAX]: Don't assume that the user's buffer is any longer than the amount necessary to hold the filename; the Hurd getcwd uses the *entire* contents of the buffer, however long it is specified to be. * posix/getconf.c: De-ANSI-fy. Recognize POSIX.2 constant names. since these do not depend on the platform.
-rw-r--r--ChangeLog225
-rw-r--r--FAQ39
-rw-r--r--MakeTAGS2
-rw-r--r--Makeconfig6
-rw-r--r--Makefile60
-rw-r--r--Makerules27
-rw-r--r--assert/assert.h28
-rw-r--r--ctype/ctype.h30
-rw-r--r--dirent/tst-seekdir.c2
-rw-r--r--elf/dlfcn.h45
-rw-r--r--elf/rtld.c4
-rw-r--r--errno.h28
-rw-r--r--features.h15
-rw-r--r--grp/fgetgrent.c8
-rw-r--r--grp/fgetgrent_r.c15
-rw-r--r--grp/grp.h36
-rw-r--r--grp/testgrp.c2
-rw-r--r--inet/getnetgrent_r.c8
-rw-r--r--inet/herrno.c7
-rw-r--r--libio/libio.h5
-rw-r--r--libio/stdio.h2
-rw-r--r--limits.h28
-rw-r--r--locale/programs/charmap.c8
-rw-r--r--locale/programs/charset.h2
-rw-r--r--locale/programs/ld-collate.c53
-rw-r--r--locale/programs/ld-ctype.c50
-rw-r--r--locale/programs/ld-time.c2
-rw-r--r--locale/programs/linereader.c6
-rw-r--r--locale/programs/linereader.h2
-rw-r--r--locale/programs/localedef.c6
-rw-r--r--locale/programs/stringtrans.c2
-rw-r--r--login/Makefile2
-rw-r--r--manual/creature.texi14
-rw-r--r--manual/libc.texinfo9
-rw-r--r--manual/nss.texi45
-rw-r--r--manual/users.texi360
-rw-r--r--math/math.h30
-rw-r--r--misc/err.h46
-rw-r--r--misc/mntent.h1
-rw-r--r--nss/getXXbyYY.c17
-rw-r--r--nss/getXXbyYY_r.c11
-rw-r--r--nss/getXXent.c15
-rw-r--r--nss/getXXent_r.c11
-rw-r--r--nss/nss_db/db-netgrp.c2
-rw-r--r--po/es.po2327
-rw-r--r--po/fr.po917
-rw-r--r--posix/fnmatch.c23
-rw-r--r--posix/regex.c7
-rw-r--r--posix/unistd.h4
-rw-r--r--pwd/fgetpwent.c8
-rw-r--r--pwd/fgetpwent_r.c15
-rw-r--r--pwd/pwd.h50
-rw-r--r--resolv/gethnamaddr.c2
-rw-r--r--resolv/netdb.h232
-rw-r--r--resource/sys/resource.h87
-rw-r--r--setjmp/setjmp.h28
-rw-r--r--shadow/fgetspent.c6
-rw-r--r--shadow/fgetspent_r.c12
-rw-r--r--shadow/sgetspent.c6
-rw-r--r--shadow/sgetspent_r.c12
-rw-r--r--shadow/shadow.h50
-rw-r--r--shlib-versions8
-rw-r--r--signal/Makefile2
-rw-r--r--signal/signal.h5
-rw-r--r--stdio-common/Makefile1
-rw-r--r--stdio-common/bug5.c8
-rw-r--r--stdio-common/printf_fp.c2
-rw-r--r--stdio-common/test_rdwr.c11
-rw-r--r--stdio-common/vfprintf.c10
-rw-r--r--stdio-common/vfscanf.c5
-rw-r--r--stdio/stdio.h28
-rw-r--r--stdlib/atexit.c57
-rw-r--r--stdlib/exit.c23
-rw-r--r--stdlib/exit.h12
-rw-r--r--stdlib/random.c30
-rw-r--r--stdlib/stdlib.h28
-rw-r--r--string/argz.h9
-rw-r--r--string/stratcliff.c19
-rw-r--r--string/string.h28
-rw-r--r--sunrpc/rpc/netdb.h36
-rw-r--r--sunrpc/xdr_float.c82
-rw-r--r--sysdeps/generic/crypt-entry.c4
-rw-r--r--sysdeps/generic/resourcebits.h87
-rw-r--r--sysdeps/generic/uname.c2
-rw-r--r--sysdeps/libm-ieee754/e_jnf.c31
-rw-r--r--sysdeps/libm-ieee754/e_pow.c46
-rw-r--r--sysdeps/libm-ieee754/e_powf.c26
-rw-r--r--sysdeps/libm-ieee754/e_rem_pio2f.c50
-rw-r--r--sysdeps/posix/getaddrinfo.c10
-rw-r--r--sysdeps/posix/rename.c2
-rw-r--r--sysdeps/posix/sigwait.c92
-rw-r--r--sysdeps/posix/ttyname_r.c30
-rw-r--r--sysdeps/stub/setrlimit.c2
-rw-r--r--sysdeps/stub/sigwait.c31
-rw-r--r--sysdeps/unix/bsd/sun/sunos4/resourcebits.h85
-rw-r--r--sysdeps/unix/getlogin_r.c14
-rw-r--r--sysdeps/unix/sysv/linux/errnos.h46
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysdep.S5
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sysdep.S5
-rw-r--r--time/test-tz.c4
-rw-r--r--time/time.h28
-rw-r--r--wctype/wctype.h62
102 files changed, 4303 insertions, 1865 deletions
diff --git a/ChangeLog b/ChangeLog
index 00165e258a..68f5ea8836 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,210 @@
+Thu Oct 31 00:01:39 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * signal/Makefile (routines): Add sigwait.
+ * signal/signal.h: Add prototype for sigwait.
+ * sysdeps/posix/sigwait.c: New file. Implementation of sigwait
+ function from POSIX.1c.
+ * sysdeps/stub/sigwait.c: New file. Stub version of sigwait.
+
+Wed Oct 30 02:01:17 1996 Richard Henderson <rth@tamu.edu>
+
+ * sunrpc/xdr_float.c (xdr_float): Handle sizeof(float)!=sizeof(long),
+ but don't bother going farther than sizeof(float)==sizeof(int).
+ (xdr_double): Handle little-endian machines! Handle sizeof(double)
+ != 2*sizeof(long), though again don't bother with more than int.
+
+Thu Oct 29 16:09:42 1996 Craig Metz <cmetz@inner.net>
+
+ * sysdeps/posix/getaddrinfo.c: Use buffer limits for inet_ntop
+ function.
+
+Tue Oct 29 12:37:22 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makerules: Create symbolic links for linking in $(libdir).
+ (make-link): Use absolute path for destination if this is not in
+ the same directory.
+
+ * elf/rtld.c (dl_main): When verifying don't check the name of
+ the dynamic linker.
+
+ * shlib-versions: Change entries for Hurd specific libs from
+ *-*-gnu* to *-*-gnu?* so that i586-pc-linux-gnu does not match
+ these entries.
+
+ * assert/assert.h: Reformat copyright.
+ Change reference to ANSI into reference to ISO C.
+ * ctype/ctype.h: Likewise.
+ * errno.h: Likewise.
+ * limits.h: Likewise.
+ * math/math.h: Likewise.
+ * setjmp/setjmp.h: Likewise.
+ * stdio/stdio.h: Likewise.
+ * libio/stdio.h: Likewise.
+ * stdlib/stdlib.h: Likewise.
+ * string/string.h: Likewise.
+ * time/time.h: Likewise.
+
+ * string/argz.h: Use __const is definitions.
+
+ * elf/dlfcn.h: Use __const and __P. Reformat copyright.
+ * misc/err.h: Likewise.
+
+ * wctype/wctype.h (wctrans_t): Use __const instead of const.
+
+ * Makeconfig ($(common-objpfx)soversions.mk): Generate list of
+ sonames for versioned libraries.
+ * Makefile: Remove code to generate libc-version.h.
+ Generate gnu/lib-names.h with info from soversions.mk.
+ * features.h: Define __GLIBC__ and __GLIBC_MINOR__.
+
+ * dirent/tst-seekdir.c: Initialize save3.
+ * grp/testgrp.c: Initialize my_group.
+
+ * grp/fgetgrent_r.c: Change interface to follow POSIX.1c.
+ * grp/grp.h: Likewise.
+ * nss/getXXbyYY.c: Likewise.
+ * nss/getXXbyYY_r.c: Likewise.
+ * nss/getXXent.c: Likewise.
+ * nss/getXXent_r.c: Likewise.
+ * pwd/fgetpwent_r.c: Likewise.
+ * pwd/pwd.h: Likewise.
+ * shadow/fgetspent_r.c: Likewise.
+ * shadow/sgetspent.c: Likewise.
+ * shadow/sgetspent_r.c: Likewise.
+ * grp/fgetgrent.c: Adapt for change in interface of fgetgrent_r.
+ * pwd/fgetpwent.c: Likewise, for fgetpwent_r.c.
+ * shadow/fgetspent.c: Likewise, for fgetpwent_r.c.
+ * resolv/netdb.h: Adapt prototypes for reentrant functions to
+ follow POSIX.1c.
+ * sunrpc/rpc/netdb.h: Likewise,
+ * shadow/shadow.h: Likewise.
+
+ * inet/getnetgrent_r.c: Follow change in pwd/grp function interface.
+
+ * sysdeps/unix/getlogin_r.c: Return ERANGE when buffer is too small.
+
+ * inet/herrno.c: Don't define __h_errno. Only h_errno otherwise the
+ ELF aliasing creates strange situations.
+ * sysdeps/unix/sysv/linux/errnos.H: Define __set_errno as inline
+ function.
+ * sysdeps/unix/sysv/linux/i386/sysdep.S: Don't define __errno.
+ * sysdeps/unix/sysv/linux/m68k/sysdep.S: Likewise.
+
+ * libio/libio.h: Don't declare _IO_flockfile and _IO_funlockfile
+ weak.
+
+ * locale/programs/charmap.c: Add casts to prevent warnings.
+ * locale/programs/linereader.h: Likewise.
+ * locale/programs/ld-collate.c: Likewise.
+ * locale/programs/stringtrans.c: Likewise.
+ Change types for various variables to prevent warnings.
+ * locale/programs/ld-ctype.c: Likewise.
+ * locale/programs/linereader.h (lr_ungetc): Likewise.
+ * locale/programs/charset.h (struct charset): Use `unsigned int'
+ as type for width_default.
+ * posix/regex.c: Change type of `this_reg' variables.
+ * stdio-common/Makefile: Use -Wno-format for tstdiomisc.c.
+ * stdio-common/bug5.c: De-ANSI-fy. Use correct types for
+ variables.
+ * stdio-common/printf_fp.c: Initialize to_shift.
+ * stdio-common/test_rdwr.c: Add cast.
+ * stdio-common/vfprintf.c: Add casts and use correct types to
+ prevent warnings.
+ * stdio-common/vfscanf.c: Initialize str and strptr.
+ * sysdeps/libm-ieee754/e_jnf.c: Use correct types to prevent warnings.
+ * sysdeps/libm-ieee754/e_pow.c: Likewise.
+ * sysdeps/libm-ieee754/e_powf.c: Likewise.
+ * sysdeps/libm-ieee754/e_rem_pio2f.c: Likewise.
+ * time/test-tz.c: Likewise.
+
+ * manual/creature.texi: Document _REENTRANT and _THREAD_SAFE.
+ * manual/libc.texinfo: Prevent makeinfo failure by avoiding
+ libc.cp index. This must be fixed.
+ * manual/nss.texi: Adapt for correct POSIX.1c interface of
+ reentrant functions.
+ * manual/users.texi: Document netgroup functions.
+
+ * po/es.po: Updated.
+ * po/fr.po: Updated.
+
+ * posix/fnmatch.c: Change to match libit version.
+
+ * posix/unistd.h: Change prototype for ttyname_r to match POSIX.1c.
+ * sysdep/posix/ttyname_r.c: Likewise.
+
+ * stdlib/atexit.h (__new_exitfn): Add internal locking.
+ * stdlib/exit.c: De-ANSI-fy. Handle new ef_us value for flavor.
+ * stdlib/exit.h: De-ANSI-fy. Define new ef_us value for flavor.
+ * stdlib/random.c (__srandom): Add internal locking.
+ (__initstate): Likewise.
+ (__setstate): Likewise.
+ (__random): Likewise.
+
+Mon Oct 28 22:28:37 1996 NIIBE Yutaka <gniibe@mri.co.jp>
+
+ * sysdeps/generic/crypt-entry.c (crypt_r): Use __set_errno.
+ (crypt): Likewise.
+ * resolv/gethnamaddr.c (gethostbyname2): Likewise.
+ * sysdeps/generic/uname.c: Likewise.
+ * sysdeps/posix/rename.c: Likewise.
+ * sysdeps/stub/setrlimit.c: Likewise.
+
+ * nss/nss_db/db-netgrp.c (_nss_db_setnetgrent): Fix typo.
+
+Sun Oct 27 11:12:50 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * locale/programs/ld-collate.c (collate_order_elem): Fix format
+ string.
+ (collate_element_to): Cast field width argument to `int' for
+ format string.
+ (collate_symbol): Likewise.
+ (collate_order_elem): Likewise.
+ (collate_weight_bsymbol): Likewise.
+ (collate_simple_weight): Likewise.
+
+ * locale/programs/ld-time.c (STRARR_ELEM): Fix format string.
+
+ * locale/programs/ld-ctype.c (ctype_class_newP): Add missing
+ argument for format string.
+ (ctype_map_newP): Likewise.
+ (set_class_defaults): Fix format string.
+
+ * locale/programs/localedef.c (construct_output_path): Putting an
+ explicit \0 into the format string does not work, use %c.
+
+Sat Oct 26 20:38:36 1996 Richard Henderson <rth@tamu.edu>
+
+ * Makerules: Install all shared libraries in $(slibdir).
+
+ * login/Makefile: Build libutil.so in others pass after
+ libc.so is created.
+
+ * misc/mntent.h: Include <paths.h> for _PATH_MNTTAB & _PATH_MOUNTED.
+
+ * string/stratcliff.c: Allocate 3 pages instead of one, then use
+ mprotect so that we know that the adjacent pages are inaccessible.
+
+ * resource/sys/resource.h: Move all structures and enums to ...
+ * sysdeps/generic/resourcebits.h: ... here ...
+ * sysdeps/unix/bsd/sun/sunos4/resourcebits.h: ... and here.
+ * sysdeps/unix/sysv/linux/alpha/resourcebits.h: Remove.
+ * sysdeps/unix/sysv/linux/i386/resourcebits.h: Remove.
+ * sysdeps/unix/sysv/linux/m68k/resourcebits.h: Remove.
+ * sysdeps/unix/sysv/linux/mips/resourcebits.h: Remove.
+ * sysdeps/unix/sysv/linux/resourcebits.h: New file. Use kernel
+ header for RLIMIT_* definitions. The members of struct rlimit
+ are longs.
+
+
+Thu Oct 24 17:43:34 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * MakeTAGS (sysdep-dirs): Fix typo.
+
+Wed Oct 23 03:45:22 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makefile (headers): Don't mention libc-version.h.
+ (install-others): ...but here.
+
Tue Oct 22 21:38:21 1996 Ulrich Drepper <drepper@cygnus.com>
* version.h: Bump version number to 1.97.
@@ -449,7 +656,7 @@ Sat Oct 12 23:10:43 1996 Ulrich Drepper <drepper@cygnus.com>
* po/fr.po: Update.
-cd * time/strptime.c: Recognize %s, %u, %g, and %G format.
+ * time/strptime.c: Recognize %s, %u, %g, and %G format.
* posix/getopt.c: Add some more casts and initializations to
prevent warnings.
@@ -1039,7 +1246,7 @@ Thu Oct 3 13:33:31 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
Wed Oct 2 13:41:48 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/strtok.c: Don't set stored pointer to NULL when
- notheing is found. This guarantees all subsequent calls behave
+ nothing is found. This guarantees all subsequent calls behave
the same.
* sysdeps/generic/strtok_r.c: Likewise.
@@ -1224,7 +1431,7 @@ Mon Sep 30 00:14:26 1996 Ulrich Drepper <drepper@cygnus.com>
Sun Sep 29 12:55:58 1996 Ulrich Drepper <drepper@cygnus.com>
- * sysdeps/unix/sysv/linux/syscalls.list: Change funciton name for
+ * sysdeps/unix/sysv/linux/syscalls.list: Change function name for
_llseek to _llseek (not llseek).
Reported by Matthias Urlichs <smurf@smurf.noris.de>.
@@ -3792,10 +3999,10 @@ Mon Aug 12 19:03:22 1996 Thomas Bushnell n/BSG <thomas@psilocin.gnu.ai.mit.edu
Mon Aug 12 16:41:52 1996 Thomas Bushnell n/BSG <thomas@gnu.ai.mit.edu>
- * io/getwd.c (getwd) [! PATH_MAX]: Don't assume that the user's
- buffer is any longer than the amount necessary to hold the
- filename; the Hurd getcwd uses the *entire* contents of the
- buffer, however long it is specified to be.
+ * io/getwd.c (getwd) [! PATH_MAX]: Don't assume that the user's
+ buffer is any longer than the amount necessary to hold the
+ filename; the Hurd getcwd uses the *entire* contents of the
+ buffer, however long it is specified to be.
Mon Aug 12 04:33:09 1996 Ulrich Drepper <drepper@cygnus.com>
@@ -4662,13 +4869,13 @@ Fri Jul 26 03:46:08 1996 Ulrich Drepper <drepper@cygnus.com>
* stdlib/stdlib.h: Ditto.
* string/string.h: Ditto.
- * posix/getconf.c: De-ASNI-fy. Recognize POSIX.2 constant names.
+ * posix/getconf.c: De-ANSI-fy. Recognize POSIX.2 constant names.
Use `error' function instead of doing it by hand.
* sysdeps/posix/sysconf.c: De-ANSI-fy.
Handle _SC_COLL_WEIGHTS_MAX.
* sysdeps/stub/sysconf.c: Handle _SC_CHARCLASS_NAME_MAX,
_SC_COLL_WEIGHTS_MAX, _SC_EQUIV_CLASS_MAX, _SC_2_LOCALEDEF
- since these do depend on the platform.
+ since these do not depend on the platform.
Add POSIX.4 symbols.
* posix/posix2_lim.h: Add missing definition of
diff --git a/FAQ b/FAQ
index a85502839c..f2e41f54b6 100644
--- a/FAQ
+++ b/FAQ
@@ -63,6 +63,11 @@ please let me know.
functions `stat', `lstat', `fstat', and `mknod' and while
linking on my Linux system I get error messages. How is
this supposed to work?''
+
+[Q18] ``The prototypes for `connect', `accept', `getsockopt',
+ `setsockopt', `getsockname', `getpeername', `send',
+ `sendto', and `recvfrom' are different in GNU libc than
+ on any other system I saw. This is a bug, isn't it?''
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
[Q1] ``What systems does the GNU C Library run on?''
@@ -75,9 +80,9 @@ The systems glibc is known to work on in the moment and most probably
in the future are:
*-*-gnu GNU Hurd
- i[3456]86-*-linux Linux-2.0 on Intel
- m68k-*-linux Linux-2.0 on Motorola 680x0
- alpha-*-linux Linux-2.0 on DEC Alpha
+ i[3456]86-*-linux-gnu Linux-2.0 on Intel
+ m68k-*-linux-gnu Linux-2.0 on Motorola 680x0
+ alpha-*-linux-gnu Linux-2.0 on DEC Alpha
Other Linux platforms are also on the way to be supported but I need
some success reports first.
@@ -159,14 +164,10 @@ Library.
slow.
* plenty of time (approx 1h for i?86-linux on i586@133 or 2.5h on
- i486@66 or 4.5h on i486@33).
+ i486@66 or 4.5h on i486@33). For Hurd systems times are much higher.
If you have some more measurements let me know.
-* Some files depend on special tools. E.g., files ending in .gperf
- need a `gperf' program. The GNU version (part of libg++) is known
- to work while some vendor versions do not.
-
* When compiling for Linux:
+ the header files of the Linux kernel must be available in the
@@ -176,6 +177,8 @@ Library.
need a `gperf' program. The GNU version (part of libg++) is known
to work while some vendor versions do not.
+ You should not need these tools unless you change the source files.
+
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
[Q7] ``When I run `nm -u libc.so' on the produced library I still
find unresolved symbols? Can this be ok?''
@@ -407,7 +410,7 @@ libc binaries from the US.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
[Q15] ``What are these `add-ons'?''
-[A15] {UD} To avoid complications with external or external source
+[A15] {UD} To avoid complications with export rules or external source
code some optional parts of the libc are distributed as separate
packages (e.g., the crypt package, see Q14).
@@ -416,7 +419,7 @@ the package and tell the configuration script about these additional
subdirectories using the --enable-add-ons option. When you add the
crypt add-on you just have to use
- configure --enable-add-ons=crypt,XXX ...
+ configure --enable-add-ons=des-crypt,XXX ...
where XXX are possible other add-ons and ... means the rest of the
normal option list.
@@ -552,6 +555,22 @@ link. The linker script with the above contents is placed in
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
+[Q18] ``The prototypes for `connect', `accept', `getsockopt',
+ `setsockopt', `getsockname', `getpeername', `send',
+ `sendto', and `recvfrom' are different in GNU libc from
+ any other system I saw. This is a bug, isn't it?''
+
+[A18] {UD} No, this is no bug. This version of the GNU libc already
+follows the to-be-released POSIX.1g standard. In this standard
+the type `size_t' is used for all parameters which describe a size.
+So better change now.
+
+This change is critical for system which have
+ sizeof (int) != sizeof (size_t)
+like the Alpha.
+
+
+~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Answers were given by:
{UD} Ulrich Drepper, <drepper@cygnus.com>
diff --git a/MakeTAGS b/MakeTAGS
index da9cdd79c7..bca72b3e85 100644
--- a/MakeTAGS
+++ b/MakeTAGS
@@ -39,7 +39,7 @@ tags_sources = $(all-sources) $(all-headers) $(all-dist)
endif # ctype
endif # No tags_sources
-sysdep-dirs := $(full-config-subdirs)
+sysdep-dirs := $(full-config-sysdirs)
ifndef sysdep_dirs
# Find all sysdep directories.
diff --git a/Makeconfig b/Makeconfig
index 39d4fbd8ef..0a338e12e2 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -532,8 +532,10 @@ $(common-objpfx)soversions.mk: $(..)shlib-versions $(..)Makeconfig \
eval vers_lib$${lib}=yes; \
number=`echo $$v | sed "s/^.*=//"`; \
case $$number in \
- [0-9]*) echo "$$lib.so-version=.$$number";; \
- *) echo "$$lib.so-version=$$number";; \
+ [0-9]*) echo "$$lib.so-version=.$$number"; \
+ echo "all-sonames+=$$lib.so\$$($$lib.so-version)";;\
+ *) echo "$$lib.so-version=$$number"; \
+ echo "all-sonames+=\$$($$lib.so-version)";; \
esac; \
fi; \
done ;; esac; done; \
diff --git a/Makefile b/Makefile
index 774cf3bc23..ceaf5b0b62 100644
--- a/Makefile
+++ b/Makefile
@@ -82,14 +82,14 @@ subdirs := $(filter mach,$(subdirs)) $(filter hurd,$(subdirs)) \
$(addprefix install-, no-libc.a bin lib data headers others)
headers := errno.h sys/errno.h errnos.h limits.h values.h \
- features.h gnu-versions.h libc-lock.h libc-version.h
+ features.h gnu-versions.h libc-lock.h
aux = sysdep $(libc-init) version
-before-compile = $(objpfx)version-info.h $(objpfx)libc-version.h
+before-compile = $(objpfx)version-info.h
echo-headers: subdir_echo-headers
# What to install.
-install-others = $(includedir)/stubs.h
+install-others = $(includedir)/stubs.h $(includedir)/gnu/lib-names.h
ifeq (yes,$(gnu-ld))
libc-init = set-init
@@ -152,36 +152,6 @@ generated += version-info.h
version.c-objects := $(addprefix $(objpfx)version,$(object-suffixes))
$(version.c-objects): $(objpfx)version-info.h
-$(objpfx)libc-version.h: Makefile $(common-objpfx)soversions.mk \
- $(common-objpfx)version.mk
- nr="$(libc.so-version)"; \
- lnr=`echo $(version) | sed 's/[.].*//'`; \
- lmnr=`echo $(version) | sed 's/[^.]*[.]//'`; \
- if test -n $$nr; then \
- nr=`echo $$nr | sed 's/^[.]\([0-9]*\).*/\1/'`; \
- else \
- nr="$$lnr"; \
- fi; \
- rm -f $@T; \
- (echo '#ifndef __LIBC_VERSION_H'; \
- echo '#define __LIBC_VERSION_H 1'; \
- echo; \
- if test -n "$(libc.so-version)"; then \
- echo '/* Show that this is the GNU C Library. The value is the'; \
- echo ' interface number of the shared library. */'; \
- else \
- echo '/* Show that this is the GNU C Library. */'; \
- fi; \
- echo "#define __GNU_LIBRARY__ $$nr"; \
- echo; \
- echo '/* Version numbers for GNU libc release. */'; \
- echo "#define __GLIBC__ $$lnr"; \
- echo "#define __GLIBC_MINOR__ $$lmnr"; \
- echo; \
- echo '#endif /* libc-version.h */') > $@T
- mv -f $@T $@
-generated += libc-version.h
-
# Makerules creates a file `stub-$(subdir)' for each subdirectory, which
# contains `#define __stub_FUNCTION' for each function which is a stub.
# Here we paste all of these together into <stubs.h>.
@@ -202,10 +172,32 @@ $(includedir)/stubs.h: subdir_install
echo ' every time called, usually setting errno to ENOSYS. */';\
sort $(subdir-stubs)) > $(objpfx)stubs.h
if test -r $@ && cmp -s $(objpfx)stubs.h $@; \
- then echo stubs.h unchanged ; \
+ then echo 'stubs.h unchanged'; \
else $(INSTALL_DATA) $(objpfx)stubs.h $@; fi
rm -f $(objpfx)stubs.h
+# Like stubs.h the gnu/lib-names.h header is not used while building the
+# libc itself. So we generate it while installing.
+$(includedir)/gnu/lib-names.h: $(common-objpfx)soversions.mk
+ @rm -f $(objpfx)lib-names.h
+ (echo '/* This file is automatically generated.';\
+ echo ' It defines macros to allow user program to find the shared';\
+ echo ' library files which come as part of GNU libc. */';\
+ echo '#ifndef __GNU_LIB_NAMES_H'; \
+ echo '#define __GNU_LIB_NAMES_H 1'; \
+ echo; \
+ (libs='$(all-sonames)';\
+ for l in $$libs; do \
+ upname=`echo $$l | sed 's/[.]so.*//' | tr [:lower:]- [:upper:]_`; \
+ echo "#define $${upname}_SO $$l"; \
+ done;) | sort; \
+ echo; \
+ echo '#endif /* gnu/lib-names.h */';) > $(objpfx)lib-names.h
+ if test -r $@ && cmp -s $(objpfx)lib-names.h $@; \
+ then echo 'gnu/lib-names.h unchanged'; \
+ else $(INSTALL_DATA) $(objpfx)lib-names.h $@; fi
+ rm -f $(objpfx)lib-names.h
+
# This makes the Info or DVI file of the documentation from the Texinfo source.
.PHONY: info dvi
info dvi:
diff --git a/Makerules b/Makerules
index aa56406854..c563f04ef5 100644
--- a/Makerules
+++ b/Makerules
@@ -596,11 +596,18 @@ versioned := $(strip $(foreach so,$(install-lib.so),\
$(patsubst %,$(so),$($(so)-version))))
# Install all the unversioned shared libraries.
-$(addprefix $(libdir)/,$(filter-out $(versioned),$(install-lib.so))): \
-$(libdir)/%.so: $(objpfx)%.so; $(do-install-program)
+$(addprefix $(slibdir)/,$(filter-out $(versioned),$(install-lib.so))): \
+$(slibdir)/%.so: $(objpfx)%.so; $(do-install-program)
define make-link
-cd $(@D); rm -f $(@F).new; $(LN_S) $(<F) $(@F).new; mv -f $(@F).new $(@F)
+cd $(@D); \
+rm -f $(@F).new; \
+if test '$(@D)' = '$(<D)'; then \
+ $(LN_S) $(<F) $(@F).new; \
+else \
+ $(LN_S) $< $(@F).new; \
+fi; \
+mv -f $(@F).new $(@F)
endef
ifdef libc.so-version
@@ -642,7 +649,7 @@ ifneq (,$(versioned))
# Produce three sets of rules as above for all the smaller versioned libraries.
define o-iterator-doit
-$(libdir)/$o: $(libdir)/$o$($o-version); $$(make-link)
+$(libdir)/$o: $(slibdir)/$o$($o-version); $$(make-link)
endef
object-suffixes-left := $(versioned)
include $(o-iterator)
@@ -658,26 +665,26 @@ include $(o-iterator)
ifeq (,$($(subdir)-version))
define o-iterator-doit
-$(libdir)/$o$($o-version): $(libdir)/$(o:.so=)-$(version).so; $$(make-link)
+$(slibdir)/$o$($o-version): $(slibdir)/$(o:.so=)-$(version).so; $$(make-link)
endef
object-suffixes-left := $(versioned)
include $(o-iterator)
define o-iterator-doit
-$(libdir)/$(o:.so=)-$(version).so: $(objpfx)$o; $$(do-install-program)
+$(slibdir)/$(o:.so=)-$(version).so: $(objpfx)$o; $$(do-install-program)
endef
object-suffixes-left := $(versioned)
include $(o-iterator)
else
define o-iterator-doit
-$(libdir)/$o$($o-version): $(libdir)/$(o:.so=)-$($(subdir)-version).so;
+$(slibdir)/$o$($o-version): $(slibdir)/$(o:.so=)-$($(subdir)-version).so;
$$(make-link)
endef
object-suffixes-left := $(versioned)
include $(o-iterator)
define o-iterator-doit
-$(libdir)/$(o:.so=)-$($(subdir)-version).so: $(objpfx)$o;
+$(slibdir)/$(o:.so=)-$($(subdir)-version).so: $(objpfx)$o;
$$(do-install-program)
endef
object-suffixes-left := $(versioned)
@@ -693,10 +700,10 @@ endef
so-versions := $(sort $(foreach so,$(install-lib.so),.so$($(so)-version)))
$(foreach v,$(so-versions),\
- $(libdir)/lib$(libprefix)%$v): $(common-objpfx)lib%.so
+ $(slibdir)/lib$(libprefix)%$v): $(common-objpfx)lib%.so
$(do-install-so)
$(foreach v,$(so-versions),\
- $(libdir)/$(libprefix)%$v): $(common-objpfx)%.so
+ $(slibdir)/$(libprefix)%$v): $(common-objpfx)%.so
$(do-install-so)
endif
diff --git a/assert/assert.h b/assert/assert.h
index 0681fa43e0..c670a66359 100644
--- a/assert/assert.h
+++ b/assert/assert.h
@@ -1,23 +1,23 @@
/* Copyright (C) 1991, 92, 94, 95, 96 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+ 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 Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 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
-Library General Public License for more details.
+ 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
+ Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB. If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA. */
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
/*
- * ANSI Standard: 4.2 DIAGNOSTICS <assert.h>
+ * ISO C Standard: 4.2 DIAGNOSTICS <assert.h>
*/
#ifdef _ASSERT_H
diff --git a/ctype/ctype.h b/ctype/ctype.h
index c97c3e0f5d..18e3a3dbad 100644
--- a/ctype/ctype.h
+++ b/ctype/ctype.h
@@ -1,23 +1,23 @@
/* Copyright (C) 1991, 92, 93, 95, 96 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+ 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 Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 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
-Library General Public License for more details.
+ 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
+ Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB. If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA. */
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
/*
- * ANSI Standard 4.3: CHARACTER HANDLING <ctype.h>
+ * ISO C Standard 4.3: CHARACTER HANDLING <ctype.h>
*/
#ifndef _CTYPE_H
@@ -65,7 +65,7 @@ enum
These point into arrays of 384, so they can be indexed by any `unsigned
char' value [0,255]; by EOF (-1); or by any `signed char' value
- [-128,-1). ANSI requires that the ctype functions work for `unsigned
+ [-128,-1). ISO C requires that the ctype functions work for `unsigned
char' values and for EOF; we also support negative `signed char' values
for broken old programs. The case conversion arrays are of `int's
rather than `unsigned char's because tolower (EOF) must be EOF, which
diff --git a/dirent/tst-seekdir.c b/dirent/tst-seekdir.c
index f12b13f4d3..5a5c7fdd36 100644
--- a/dirent/tst-seekdir.c
+++ b/dirent/tst-seekdir.c
@@ -7,7 +7,7 @@ main (int argc, char *argv[])
{
DIR * dirp;
- long save3;
+ long int save3 = 0;
int i = 0;
struct dirent *dp;
diff --git a/elf/dlfcn.h b/elf/dlfcn.h
index b26a38fb68..b59bebd5b1 100644
--- a/elf/dlfcn.h
+++ b/elf/dlfcn.h
@@ -1,25 +1,26 @@
/* dlfcn.h -- User functions for run-time dynamic loading.
-Copyright (C) 1995, 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+ Copyright (C) 1995, 1996 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 Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 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
-Library General Public License for more details.
+ 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
+ Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB. If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA. */
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
#ifndef _DLFCN_H
-#define _DLFCN_H 1
+#define _DLFCN_H 1
+#include <features.h>
/* The MODE argument to `dlopen' contains one of the following: */
#define RTLD_LAZY 0x001 /* Lazy function call binding. */
@@ -33,30 +34,30 @@ Cambridge, MA 02139, USA. */
/* Open the shared object FILE and map it in; return a handle that can be
passed to `dlsym' to get symbol values from it. */
-extern void *dlopen (const char *__file, int __mode);
+extern void *dlopen __P ((__const char *__file, int __mode));
/* Unmap and close a shared object opened by `dlopen'.
The handle cannot be used again after calling `dlclose'. */
-extern int dlclose (void *__handle);
+extern int dlclose __P ((void *__handle));
/* Find the run-time address in the shared object HANDLE refers to
of the symbol called NAME. */
-extern void *dlsym (void *__handle, const char *__name);
+extern void *dlsym __P ((void *__handle, __const char *__name));
/* When any of the above functions fails, call this function
to return a string describing the error. Each call resets
the error string so that a following call returns null. */
-extern char *dlerror (void);
+extern char *dlerror __P ((void));
/* Fill in *INFO with the following information about ADDRESS.
Returns 0 iff no shared object's segments contain that address. */
typedef struct
{
- const char *dli_fname; /* File name of defining object. */
+ __const char *dli_fname; /* File name of defining object. */
void *dli_fbase; /* Load address of that object. */
- const char *dli_sname; /* Name of nearest symbol. */
+ __const char *dli_sname; /* Name of nearest symbol. */
void *dli_saddr; /* Exact value of nearest symbol. */
} Dl_info;
-extern int dladdr (void *__address, Dl_info *__info);
+extern int dladdr __P ((void *__address, Dl_info *__info));
#endif /* dlfcn.h */
diff --git a/elf/rtld.c b/elf/rtld.c
index 1fae3488d9..b3018fb87f 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -285,9 +285,7 @@ of this helper program; chances are you did not intend to run this program.\n",
if (mode == verify)
/* We were called just to verify that this is a dynamic executable
using us as the program interpreter. */
- _exit ((strcmp (_dl_rtld_map.l_libname, _dl_rtld_map.l_name) ||
- l->l_ld == NULL)
- ? EXIT_FAILURE : EXIT_SUCCESS);
+ _exit (l->l_ld == NULL ? EXIT_FAILURE : EXIT_SUCCESS);
/* Extract the contents of the dynamic section for easy access. */
elf_get_dynamic_info (l->l_ld, l->l_info);
diff --git a/errno.h b/errno.h
index 029d43537f..f7736ba8d0 100644
--- a/errno.h
+++ b/errno.h
@@ -1,23 +1,23 @@
/* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+ 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 Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 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
-Library General Public License for more details.
+ 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
+ Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB. If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA. */
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
/*
- * ANSI Standard: 4.1.3 Errors <errno.h>
+ * ISO C Standard: 4.1.3 Errors <errno.h>
*/
#ifndef _ERRNO_H
diff --git a/features.h b/features.h
index abf20250b6..deacda1663 100644
--- a/features.h
+++ b/features.h
@@ -144,8 +144,19 @@ Cambridge, MA 02139, USA. */
#endif
-/* Include header with information of libc version numbers. */
-#include <libc-version.h>
+/* This macro indicates that the installed library is the GNU C Library.
+ For historic reasons the value now is 6 and this will stay from now
+ on. The use of this variable is deprecated. Use __GLIBC__ and
+ __GLIBC_MINOR__ now (see below) when you want to test for a specific
+ GNU C library version and use the values in <gnu/lib-names.h> to get
+ the sonames of the shared libraries. */
+#undef __GNU_LIBRARY__
+#define __GNU_LIBRARY__ 6
+
+/* Major and minor version number of the GNU C library package. Use
+ these macros to test for features in specific releases. */
+#define __GLIBC__ 2
+#define __GLIBC_MINOR__ 0
#if !defined (__GNUC__) || __GNUC__ < 2
diff --git a/grp/fgetgrent.c b/grp/fgetgrent.c
index 95ae2ecd6a..66dd305b0b 100644
--- a/grp/fgetgrent.c
+++ b/grp/fgetgrent.c
@@ -25,7 +25,11 @@ struct group *
fgetgrent (FILE *stream)
{
static char buffer[BUFSIZ];
- static struct group result;
+ static struct group resbuf;
+ struct group *result;
- return __fgetgrent_r (stream, &result, buffer, sizeof buffer);
+ if (__fgetgrent_r (stream, &resbuf, buffer, sizeof buffer, &result) != 0)
+ return NULL;
+
+ return result;
}
diff --git a/grp/fgetgrent_r.c b/grp/fgetgrent_r.c
index d8a8bfb2e1..e9a2c25a5a 100644
--- a/grp/fgetgrent_r.c
+++ b/grp/fgetgrent_r.c
@@ -42,8 +42,9 @@ LINE_PARSER
/* Read one entry from the given stream. */
-struct group *
-__fgetgrent_r (FILE *stream, struct group *result, char *buffer, int buflen)
+int
+__fgetgrent_r (FILE *stream, struct group *resbuf, char *buffer, size_t buflen,
+ struct group **result)
{
char *p;
@@ -51,7 +52,10 @@ __fgetgrent_r (FILE *stream, struct group *result, char *buffer, int buflen)
{
p = fgets (buffer, buflen, stream);
if (p == NULL)
- return NULL;
+ {
+ *result = NULL;
+ return errno;
+ }
/* Skip leading blanks. */
while (isspace (*p))
@@ -59,8 +63,9 @@ __fgetgrent_r (FILE *stream, struct group *result, char *buffer, int buflen)
} while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- ! parse_line (p, result, (void *) buffer, buflen));
+ ! parse_line (p, resbuf, (void *) buffer, buflen));
- return result;
+ *result = resbuf;
+ return 0;
}
weak_alias (__fgetgrent_r, fgetgrent_r)
diff --git a/grp/grp.h b/grp/grp.h
index 6a88191380..c03772cb34 100644
--- a/grp/grp.h
+++ b/grp/grp.h
@@ -51,7 +51,7 @@ extern FILE *__grpopen __P ((void));
/* Read a group entry from STREAM, filling in G.
Return the `struct group' of G if successful, NULL on failure. */
-extern struct group *__grpread __P ((FILE * __stream, __ptr_t __g));
+extern struct group *__grpread __P ((FILE *__stream, __ptr_t __g));
/* Return a chunk of memory containing pre-initialized data for __grpread. */
extern __ptr_t __grpalloc __P ((void));
@@ -76,7 +76,7 @@ extern struct group *getgrent __P ((void));
#ifdef __USE_SVID
/* Read a group entry from STREAM. */
-extern struct group *fgetgrent __P ((FILE * __stream));
+extern struct group *fgetgrent __P ((FILE *__stream));
#endif
/* Search for an entry with a matching group ID. */
@@ -96,28 +96,28 @@ extern struct group *getgrnam __P ((__const char *__name));
may change in later versions of this library. */
#if defined(__USE_SVID) || defined(__USE_MISC) || defined (__USE_BSD)
-extern struct group *getgrent_r __P ((struct group *__resultbuf,
- char *buffer, int __buflen));
+extern int getgrent_r __P ((struct group *__resultbuf, char *buffer,
+ size_t __buflen, struct group **__result));
#endif
/* Search for an entry with a matching group ID. */
-extern struct group *getgrgid_r __P ((__gid_t __gid,
- struct group *__resultbuf,
- char *buffer, int __buflen));
+extern int getgrgid_r __P ((__gid_t __gid, struct group *__resultbuf,
+ char *buffer, size_t __buflen,
+ struct group **__result));
/* Search for an entry with a matching group name. */
-extern struct group *getgrnam_r __P ((__const char *__name,
- struct group *__resultbuf,
- char *buffer, int __buflen));
+extern int getgrnam_r __P ((__const char *__name, struct group *__resultbuf,
+ char *buffer, size_t __buflen,
+ struct group **__result));
#ifdef __USE_SVID
/* Read a group entry from STREAM. */
-extern struct group *__fgetgrent_r __P ((FILE * __stream,
- struct group *__resultbuf,
- char *buffer, int __buflen));
-extern struct group *fgetgrent_r __P ((FILE * __stream,
- struct group *__resultbuf,
- char *buffer, int __buflen));
+extern int __fgetgrent_r __P ((FILE * __stream, struct group *__resultbuf,
+ char *buffer, size_t __buflen,
+ struct group **__result));
+extern int fgetgrent_r __P ((FILE * __stream, struct group *__resultbuf,
+ char *buffer, size_t __buflen,
+ struct group **__result));
#endif
#endif /* reentrant */
@@ -129,12 +129,12 @@ extern struct group *fgetgrent_r __P ((FILE * __stream,
#include <stddef.h>
/* Set the group set for the current user to GROUPS (N of them). */
-extern int setgroups __P ((size_t __n, __const __gid_t * groups));
+extern int setgroups __P ((size_t __n, __const __gid_t *__groups));
/* Initialize the group set for the current user
by reading the group database and using all groups
of which USER is a member. Also include GROUP. */
-extern int initgroups __P ((__const char *user, __gid_t group));
+extern int initgroups __P ((__const char *__user, __gid_t __group));
#endif /* Use BSD. */
diff --git a/grp/testgrp.c b/grp/testgrp.c
index 3fac6b9bbf..62ba4e4a62 100644
--- a/grp/testgrp.c
+++ b/grp/testgrp.c
@@ -10,7 +10,7 @@ main (int argc, char *argv[])
{
uid_t me;
struct passwd *my_passwd;
- struct group *my_group;
+ struct group *my_group = NULL;
char **members;
me = getuid ();
diff --git a/inet/getnetgrent_r.c b/inet/getnetgrent_r.c
index ff6d5395ed..7288dbeb4c 100644
--- a/inet/getnetgrent_r.c
+++ b/inet/getnetgrent_r.c
@@ -113,7 +113,7 @@ internal_setnetgrent (const char *group)
/* Add the current group to the list of known groups. */
new_elem = (struct name_list *) malloc (sizeof (struct name_list));
- if (new_elem == NULL || (new_elem->name = strdup (group)) == NULL)
+ if (new_elem == NULL || (new_elem->name = __strdup (group)) == NULL)
{
if (new_elem != NULL)
free (new_elem);
@@ -178,7 +178,7 @@ endnetgrent (void)
int
__getnetgrent_r (char **hostp, char **userp, char **domainp,
- char *buffer, int buflen)
+ char *buffer, size_t buflen)
{
enum nss_status (*fct) (struct __netgrent *, char *, int);
struct __netgrent result;
@@ -230,7 +230,7 @@ __getnetgrent_r (char **hostp, char **userp, char **domainp,
namep = (struct name_list *) malloc (sizeof (struct name_list));
if (namep == NULL
- || (namep->name = strdup (result.val.group)) == NULL)
+ || (namep->name = __strdup (result.val.group)) == NULL)
{
/* We are out of memory. */
if (namep != NULL)
@@ -315,7 +315,7 @@ innetgr (const char *netgroup, const char *host, const char *user,
namep =
(struct name_list *) malloc (sizeof (*namep));
if (namep == NULL
- || ((namep->name = strdup (entry.val.group))
+ || ((namep->name = __strdup (entry.val.group))
== NULL))
{
/* Out of memory, simply return. */
diff --git a/inet/herrno.c b/inet/herrno.c
index ca92ec3b86..3143325e51 100644
--- a/inet/herrno.c
+++ b/inet/herrno.c
@@ -20,15 +20,12 @@ Boston, MA 02111-1307, USA. */
/* We need to have the error status variable of the resolver
accessible in the libc. */
-int __h_errno = 0;
-strong_alias (__h_errno, h_errno)
+int h_errno = 0;
/* When threaded, h_errno may be a per-process variable. */
-#ifdef __USE_REENTRANT
int *
weak_const_function
__h_errno_location (void)
{
- return &__h_errno;
+ return &h_errno;
}
-#endif
diff --git a/libio/libio.h b/libio/libio.h
index 5118b1e980..129c7312c2 100644
--- a/libio/libio.h
+++ b/libio/libio.h
@@ -278,10 +278,7 @@ extern void _IO_flockfile __P ((_IO_FILE *));
extern void _IO_funlockfile __P ((_IO_FILE *));
extern int _IO_ftrylockfile __P ((_IO_FILE *));
-#ifdef _IO_MTSAFE_IO
-weak_extern (_IO_flockfile)
-weak_extern (_IO_funlockfile)
-#else
+#ifndef _IO_MTSAFE_IO
# define _IO_flockfile(_fp) /**/
# define _IO_funlockfile(_fp) /**/
# define _IO_ftrylockfile(_fp) /**/
diff --git a/libio/stdio.h b/libio/stdio.h
index a47b663cae..7e09786215 100644
--- a/libio/stdio.h
+++ b/libio/stdio.h
@@ -19,7 +19,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/*
- * ANSI Standard: 4.9 INPUT/OUTPUT <stdio.h>
+ * ISO C Standard: 4.9 INPUT/OUTPUT <stdio.h>
*/
#ifndef _STDIO_H
diff --git a/limits.h b/limits.h
index e0993d67ac..e0cb1986cd 100644
--- a/limits.h
+++ b/limits.h
@@ -1,23 +1,23 @@
/* Copyright (C) 1991, 1992, 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+ 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 Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 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
-Library General Public License for more details.
+ 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
+ Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB. If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA. */
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
/*
- * ANSI Standard: 4.14/2.2.4.2 Limits of integral types <limits.h>
+ * ISO C Standard: 4.14/2.2.4.2 Limits of integral types <limits.h>
*/
#include <features.h>
diff --git a/locale/programs/charmap.c b/locale/programs/charmap.c
index f938d798b8..8d7b4cf391 100644
--- a/locale/programs/charmap.c
+++ b/locale/programs/charmap.c
@@ -238,9 +238,9 @@ parse_charmap (const char *filename)
continue;
}
if ((nowtok == tok_mb_cur_max && result->mb_cur_min != 0
- && arg->val.num < result->mb_cur_min)
+ && (int) arg->val.num < result->mb_cur_min)
|| (nowtok == tok_mb_cur_min && result->mb_cur_max != 0
- && arg->val.num > result->mb_cur_max))
+ && (int) arg->val.num > result->mb_cur_max))
{
lr_error (cmfile, _("\
value of <mb_cur_max> must be greater than the value of <mb_cur_min>"));
@@ -612,7 +612,7 @@ new_width (struct linereader *cmfile, struct charset_t *result,
unsigned int from_val, to_val;
from_val = charset_find_value (result, from, strlen (from));
- if (from_val == ILLEGAL_CHAR_VALUE)
+ if ((wchar_t) from_val == ILLEGAL_CHAR_VALUE)
{
lr_error (cmfile, _("unknown character `%s'"), from);
return;
@@ -623,7 +623,7 @@ new_width (struct linereader *cmfile, struct charset_t *result,
else
{
to_val = charset_find_value (result, to, strlen (to));
- if (to_val == ILLEGAL_CHAR_VALUE)
+ if ((wchar_t) to_val == ILLEGAL_CHAR_VALUE)
{
lr_error (cmfile, _("unknown character `%s'"), to);
return;
diff --git a/locale/programs/charset.h b/locale/programs/charset.h
index 2885bf1d1a..620e4d54da 100644
--- a/locale/programs/charset.h
+++ b/locale/programs/charset.h
@@ -43,7 +43,7 @@ struct charset_t
struct width_rule *width_rules;
size_t nwidth_rules;
size_t nwidth_rules_max;
- int width_default;
+ unsigned int width_default;
struct obstack mem_pool;
hash_table char_table;
diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c
index 1bfa533d98..f836ecd578 100644
--- a/locale/programs/ld-collate.c
+++ b/locale/programs/ld-collate.c
@@ -98,8 +98,8 @@ struct locale_collate_t
hash_table result;
/* Sorting rules given in order_start line. */
- int nrules;
- int nrules_max;
+ u_int32_t nrules;
+ u_int32_t nrules_max;
enum coll_sort_rule *rules;
/* Used while recognizing symbol composed of multiple tokens
@@ -122,10 +122,10 @@ struct locale_collate_t
/* While collecting the weigths we need some temporary space. */
unsigned int current_order;
int *weight_cnt;
- int weight_idx;
+ unsigned int weight_idx;
unsigned int *weight;
- int nweight;
- int nweight_max;
+ size_t nweight;
+ size_t nweight_max;
/* Patch lists. */
patch_t *current_patch;
@@ -241,7 +241,7 @@ collate_finish (struct localedef_t *locale, struct charset_t *charset)
if (value == 0)
error_at_line (0, 0, patch->fname, patch->lineno,
- _("no weight defined for symbol `%s'"), patch->token);
+ _("no weight defined for symbol `%s'"), patch->token);
else
*patch->where.pos = value;
}
@@ -482,7 +482,8 @@ Computing table size for collation information might take a while..."),
ADD_VALUE (collate->undefined.ordering[cnt]); \
for (disp = 0; disp < collate->undefined.ordering[cnt]; ++disp) \
{ \
- if (collate->undefined.ordering[idx] == ELLIPSIS_CHAR) \
+ if ((wchar_t) collate->undefined.ordering[idx] \
+ == ELLIPSIS_CHAR) \
ADD_VALUE ((pelem)->name[0]); \
else \
ADD_VALUE (collate->undefined.ordering[idx++]); \
@@ -540,7 +541,7 @@ Computing table size for collation information might take a while..."),
size_t inner;
for (inner = 0; inner < collate->nrules; ++inner)
- if (collate->undefined.ordering[collate->nrules + inner]
+ if ((wchar_t)collate->undefined.ordering[collate->nrules + inner]
== ELLIPSIS_CHAR)
table[cnt * entry_size + 1 + inner] = cnt;
else
@@ -1049,11 +1050,11 @@ collate_element_to (struct linereader *lr, struct localedef_t *locale,
}
value = charset_find_value (charset, code->val.str.start, code->val.str.len);
- if (value != ILLEGAL_CHAR_VALUE)
+ if ((wchar_t) value != ILLEGAL_CHAR_VALUE)
{
lr_error (lr, _("symbol for multicharacter collating element "
"`%.*s' duplicates symbolic name in charset"),
- code->val.str.len, code->val.str.start);
+ (int) code->val.str.len, code->val.str.start);
return;
}
@@ -1062,7 +1063,7 @@ collate_element_to (struct linereader *lr, struct localedef_t *locale,
{
lr_error (lr, _("symbol for multicharacter collating element "
"`%.*s' duplicates other element definition"),
- code->val.str.len, code->val.str.start);
+ (int) code->val.str.len, code->val.str.start);
return;
}
@@ -1071,7 +1072,7 @@ collate_element_to (struct linereader *lr, struct localedef_t *locale,
{
lr_error (lr, _("symbol for multicharacter collating element "
"`%.*s' duplicates symbol definition"),
- code->val.str.len, code->val.str.start);
+ (int) code->val.str.len, code->val.str.start);
return;
}
@@ -1180,7 +1181,7 @@ collate_symbol (struct linereader *lr, struct localedef_t *locale,
{
lr_error (lr, _("symbol for multicharacter collating element "
"`%.*s' duplicates symbolic name in charset"),
- code->val.str.len, code->val.str.start);
+ (int) code->val.str.len, code->val.str.start);
return;
}
@@ -1189,7 +1190,7 @@ collate_symbol (struct linereader *lr, struct localedef_t *locale,
{
lr_error (lr, _("symbol for multicharacter collating element "
"`%.*s' duplicates element definition"),
- code->val.str.len, code->val.str.start);
+ (int) code->val.str.len, code->val.str.start);
return;
}
@@ -1198,7 +1199,7 @@ collate_symbol (struct linereader *lr, struct localedef_t *locale,
{
lr_error (lr, _("symbol for multicharacter collating element "
"`%.*s' duplicates other symbol definition"),
- code->val.str.len, code->val.str.start);
+ (int) code->val.str.len, code->val.str.start);
return;
}
@@ -1256,7 +1257,7 @@ collate_order_elem (struct linereader *lr, struct localedef_t *locale,
int result = 0;
wchar_t value;
void *tmp;
- int i;
+ unsigned int i;
switch (code->tok)
{
@@ -1284,7 +1285,7 @@ collate_order_elem (struct linereader *lr, struct localedef_t *locale,
if (lastp->name[0] == value && lastp->name[1] == L'\0')
{
lr_error (lr, _("duplicate definition for character `%.*s'"),
- code->val.str.len, code->val.str.start);
+ (int) code->val.str.len, code->val.str.start);
lr_ignore_rest (lr, 0);
result = -1;
break;
@@ -1311,7 +1312,7 @@ collate_order_elem (struct linereader *lr, struct localedef_t *locale,
(void *) collate->current_element) < 0)
{
lr_error (lr, _("cannot insert collation element `%.*s'"),
- code->val.str.len, code->val.str.start);
+ (int) code->val.str.len, code->val.str.start);
exit (4);
}
}
@@ -1344,8 +1345,8 @@ collation element `%.*s' appears more than once: ignore line"),
if ((unsigned long int) tmp != 0ul)
{
lr_error (lr, _("\
-collation symbol `.*s' appears more than once: ignore line"),
- code->val.str.len, code->val.str.start);
+collation symbol `%.*s' appears more than once: ignore line"),
+ (int) code->val.str.len, code->val.str.start);
lr_ignore_rest (lr, 0);
result = -1;
break;
@@ -1364,7 +1365,7 @@ collation symbol `.*s' appears more than once: ignore line"),
{
if (verbose)
lr_error (lr, _("unknown symbol `%.*s': line ignored"),
- code->val.str.len, code->val.str.start);
+ (int) code->val.str.len, code->val.str.start);
lr_ignore_rest (lr, 0);
result = -1;
@@ -1454,7 +1455,7 @@ line after ellipsis must contain character definition"));
data[collate->nrules + cnt] = collate->weight[cnt];
for (cnt = 0; cnt < collate->nrules; ++cnt)
- if (data[ptr[cnt]] != ELLIPSIS_CHAR)
+ if ((wchar_t) data[ptr[cnt]] != ELLIPSIS_CHAR)
ptr[cnt] = 0;
while (name[0] <= value)
@@ -1555,7 +1556,7 @@ collate_weight_bsymbol (struct linereader *lr, struct localedef_t *locale,
{
if (verbose)
lr_error (lr, _("unknown symbol `%.*s': line ignored"),
- code->val.str.len, code->val.str.start);
+ (int) code->val.str.len, code->val.str.start);
lr_ignore_rest (lr, 0);
return -1;
}
@@ -1729,7 +1730,7 @@ collate_simple_weight (struct linereader *lr, struct localedef_t *locale,
{
if (verbose)
lr_error (lr, _("unknown symbol `%.*s': line ignored"),
- putp - startp, startp);
+ (int) (putp - startp), startp);
lr_ignore_rest (lr, 0);
return -1;
}
@@ -1741,8 +1742,8 @@ collate_simple_weight (struct linereader *lr, struct localedef_t *locale,
if (*runp == lr->escape_char)
{
- static char digits[] = "0123456789abcdef";
- char *dp;
+ static const char digits[] = "0123456789abcdef";
+ const char *dp;
int base;
++runp;
diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c
index 64f73d430f..bc3e391ace 100644
--- a/locale/programs/ld-ctype.c
+++ b/locale/programs/ld-ctype.c
@@ -75,7 +75,7 @@ struct locale_ctype_t
/* We will allow up to 8 * sizeof(u_int32_t) - 1 character classes. */
#define MAX_NR_CHARCLASS (8 * sizeof (u_int32_t) - 1)
- int nr_charclass;
+ size_t nr_charclass;
const char *classnames[MAX_NR_CHARCLASS];
unsigned long int current_class_mask;
unsigned int last_class_char;
@@ -306,7 +306,7 @@ character %s'%s' in class `%s' must not be in class `%s'"),
/* ... and now test <SP> as a special case. */
space_value = charset_find_value (charset, "SP", 2);
- if (space_value == ILLEGAL_CHAR_VALUE)
+ if ((wchar_t) space_value == ILLEGAL_CHAR_VALUE)
error (0, 0, _("character <SP> not defined in character map"));
else if ((cnt = BITPOS (tok_space),
(ELEM (ctype, class_collection, , space_value)
@@ -537,7 +537,7 @@ int
ctype_is_charclass (struct linereader *lr, struct localedef_t *locale,
const char *name)
{
- int cnt;
+ size_t cnt;
for (cnt = 0; cnt < locale->categories[LC_CTYPE].ctype->nr_charclass; ++cnt)
if (strcmp (name, locale->categories[LC_CTYPE].ctype->classnames[cnt])
@@ -554,7 +554,7 @@ ctype_class_start (struct linereader *lr, struct localedef_t *locale,
struct charset_t *charset)
{
struct locale_ctype_t *ctype = locale->categories[LC_CTYPE].ctype;
- int cnt;
+ size_t cnt;
switch (tok)
{
@@ -625,7 +625,7 @@ ctype_class_from (struct linereader *lr, struct localedef_t *locale,
ctype->last_class_char = value;
- if (value == ILLEGAL_CHAR_VALUE)
+ if ((wchar_t) value == ILLEGAL_CHAR_VALUE)
/* In the LC_CTYPE category it is no error when a character is
not found. This has to be ignored silently. */
return;
@@ -737,7 +737,7 @@ ctype_map_from (struct linereader *lr, struct localedef_t *locale,
value = charset_find_value (charset, code->val.str.start, code->val.str.len);
- if (value == ILLEGAL_CHAR_VALUE)
+ if ((wchar_t) value == ILLEGAL_CHAR_VALUE)
/* In the LC_CTYPE category it is no error when a character is
not found. This has to be ignored silently. */
return;
@@ -757,8 +757,8 @@ ctype_map_to (struct linereader *lr, struct localedef_t *locale,
value = charset_find_value (charset, code->val.str.start, code->val.str.len);
- if (ctype->from_map_char == ILLEGAL_CHAR_VALUE
- || value == ILLEGAL_CHAR_VALUE)
+ if ((wchar_t) ctype->from_map_char == ILLEGAL_CHAR_VALUE
+ || (wchar_t) value == ILLEGAL_CHAR_VALUE)
{
/* In the LC_CTYPE category it is no error when a character is
not found. This has to be ignored silently. */
@@ -790,7 +790,7 @@ static void
ctype_class_newP (struct linereader *lr, struct locale_ctype_t *ctype,
const char *name)
{
- int cnt;
+ size_t cnt;
for (cnt = 0; cnt < ctype->nr_charclass; ++cnt)
if (strcmp (ctype->classnames[cnt], name) == 0)
@@ -798,7 +798,7 @@ ctype_class_newP (struct linereader *lr, struct locale_ctype_t *ctype,
if (cnt < ctype->nr_charclass)
{
- lr_error (lr, _("character class `%s' already defined"));
+ lr_error (lr, _("character class `%s' already defined"), name);
return;
}
@@ -817,7 +817,7 @@ ctype_map_newP (struct linereader *lr, struct locale_ctype_t *ctype,
const char *name, struct charset_t *charset)
{
size_t max_chars = 0;
- int cnt;
+ size_t cnt;
for (cnt = 0; cnt < ctype->map_collection_nr; ++cnt)
{
@@ -830,7 +830,7 @@ ctype_map_newP (struct linereader *lr, struct locale_ctype_t *ctype,
if (cnt < ctype->map_collection_nr)
{
- lr_error (lr, _("character map `%s' already defined"));
+ lr_error (lr, _("character map `%s' already defined"), name);
return;
}
@@ -934,7 +934,7 @@ set_class_defaults (struct locale_ctype_t *ctype, struct charset_t *charset)
tmp[0] = ch;
value = charset_find_value (charset, tmp, 1);
- if (value == ILLEGAL_CHAR_VALUE)
+ if ((wchar_t) value == ILLEGAL_CHAR_VALUE)
{
error (0, 0, _("\
character `%s' not defined while needed as default value"),
@@ -998,7 +998,7 @@ character `%s' not defined while needed as default value"),
unsigned int value;
value = charset_find_value (charset, "space", 5);
- if (value == ILLEGAL_CHAR_VALUE)
+ if ((wchar_t) value == ILLEGAL_CHAR_VALUE)
error (0, 0, _("\
character `%s' not defined while needed as default value"),
"<space>");
@@ -1006,7 +1006,7 @@ character `%s' not defined while needed as default value"),
ELEM (ctype, class_collection, , value) |= BIT (tok_space);
value = charset_find_value (charset, "form-feed", 9);
- if (value == ILLEGAL_CHAR_VALUE)
+ if ((wchar_t) value == ILLEGAL_CHAR_VALUE)
error (0, 0, _("\
character `%s' not defined while needed as default value"),
"<form-feed>");
@@ -1014,7 +1014,7 @@ character `%s' not defined while needed as default value"),
ELEM (ctype, class_collection, , value) |= BIT (tok_space);
value = charset_find_value (charset, "newline", 7);
- if (value == ILLEGAL_CHAR_VALUE)
+ if ((wchar_t) value == ILLEGAL_CHAR_VALUE)
error (0, 0, _("\
character `%s' not defined while needed as default value"),
"<newline>");
@@ -1022,7 +1022,7 @@ character `%s' not defined while needed as default value"),
ELEM (ctype, class_collection, , value) |= BIT (tok_space);
value = charset_find_value (charset, "carriage-return", 15);
- if (value == ILLEGAL_CHAR_VALUE)
+ if ((wchar_t) value == ILLEGAL_CHAR_VALUE)
error (0, 0, _("\
character `%s' not defined while needed as default value"),
"<carriage-return>");
@@ -1030,7 +1030,7 @@ character `%s' not defined while needed as default value"),
ELEM (ctype, class_collection, , value) |= BIT (tok_space);
value = charset_find_value (charset, "tab", 3);
- if (value == ILLEGAL_CHAR_VALUE)
+ if ((wchar_t) value == ILLEGAL_CHAR_VALUE)
error (0, 0, _("\
character `%s' not defined while needed as default value"),
"<tab>");
@@ -1038,7 +1038,7 @@ character `%s' not defined while needed as default value"),
ELEM (ctype, class_collection, , value) |= BIT (tok_space);
value = charset_find_value (charset, "vertical-tab", 12);
- if (value == ILLEGAL_CHAR_VALUE)
+ if ((wchar_t) value == ILLEGAL_CHAR_VALUE)
error (0, 0, _("\
character `%s' not defined while needed as default value"),
"<vertical-tab>");
@@ -1064,7 +1064,7 @@ character `%s' not defined while needed as default value"),
unsigned int value;
value = charset_find_value (charset, "space", 5);
- if (value == ILLEGAL_CHAR_VALUE)
+ if ((wchar_t) value == ILLEGAL_CHAR_VALUE)
error (0, 0, _("\
character `%s' not defined while needed as default value"),
"<space>");
@@ -1072,7 +1072,7 @@ character `%s' not defined while needed as default value"),
ELEM (ctype, class_collection, , value) |= BIT (tok_blank);
value = charset_find_value (charset, "tab", 3);
- if (value == ILLEGAL_CHAR_VALUE)
+ if ((wchar_t) value == ILLEGAL_CHAR_VALUE)
error (0, 0, _("\
character `%s' not defined while needed as default value"),
"<tab>");
@@ -1103,7 +1103,7 @@ character `%s' not defined while needed as default value"),
unsigned long int mask = BIT (tok_upper) | BIT (tok_lower) |
BIT (tok_alpha) | BIT (tok_digit) | BIT (tok_xdigit) | BIT (tok_punct);
size_t cnt;
- int space;
+ wchar_t space;
for (cnt = 0; cnt < ctype->class_collection_act; ++cnt)
if ((ctype->class_collection[cnt] & mask) != 0)
@@ -1136,10 +1136,10 @@ character `%s' not defined while needed as default value"),
tmp[1] = (char) ch;
value_from = charset_find_value (charset, &tmp[1], 1);
- if (value_from == ILLEGAL_CHAR_VALUE)
+ if ((wchar_t) value_from == ILLEGAL_CHAR_VALUE)
{
error (0, 0, _("\
-character `%c' not defined while needed as default value"),
+character `%s' not defined while needed as default value"),
tmp);
continue;
}
@@ -1147,7 +1147,7 @@ character `%c' not defined while needed as default value"),
/* This conversion is implementation defined. */
tmp[1] = (char) (ch + ('A' - 'a'));
value_to = charset_find_value (charset, &tmp[1], 1);
- if (value_to == -1)
+ if ((wchar_t) value_to == ILLEGAL_CHAR_VALUE)
{
error (0, 0, _("\
character `%s' not defined while needed as default value"),
diff --git a/locale/programs/ld-time.c b/locale/programs/ld-time.c
index 6fcb06979a..6be7309ae9 100644
--- a/locale/programs/ld-time.c
+++ b/locale/programs/ld-time.c
@@ -672,7 +672,7 @@ time_add (struct linereader *lr, struct localedef_t *locale,
case tok_##cat: \
if (time->cur_num_##cat >= max) \
lr_error (lr, _("\
-too many values for field `%s' in category `LC_TIME'"), \
+too many values for field `%s' in category `%s'"), \
#cat, "LC_TIME"); \
else if (code->val.str.start == NULL) \
{ \
diff --git a/locale/programs/linereader.c b/locale/programs/linereader.c
index 14496c00af..4759615ec3 100644
--- a/locale/programs/linereader.c
+++ b/locale/programs/linereader.c
@@ -279,7 +279,7 @@ get_toplvl_escape (struct linereader *lr)
}
if ((base == 16 && !isxdigit (ch))
- || (base != 16 && (ch < '0' || ch >= '0' + base)))
+ || (base != 16 && (ch < '0' || ch >= (int) ('0' + base))))
{
esc_error:
lr->token.val.str.start = &lr->buf[start_idx];
@@ -299,7 +299,7 @@ get_toplvl_escape (struct linereader *lr)
ch = lr_getc (lr);
if ((base == 16 && !isxdigit (ch))
- || (base != 16 && (ch < '0' || ch >= '0' + base)))
+ || (base != 16 && (ch < '0' || ch >= (int) ('0' + base))))
goto esc_error;
byte *= base;
@@ -521,7 +521,7 @@ get_string (struct linereader *lr, const struct charset_t *charset)
{
value = charset_find_value (charset, &buf[startidx],
bufact - startidx);
- if (value == ILLEGAL_CHAR_VALUE)
+ if ((wchar_t) value == ILLEGAL_CHAR_VALUE)
illegal_string = 1;
bufact = startidx;
diff --git a/locale/programs/linereader.h b/locale/programs/linereader.h
index b78697e87d..bf5f1bccc9 100644
--- a/locale/programs/linereader.h
+++ b/locale/programs/linereader.h
@@ -117,7 +117,7 @@ lr_ungetc (struct linereader *lr, int ch)
static inline int
-lr_ungetn (struct linereader *lr, int n)
+lr_ungetn (struct linereader *lr, size_t n)
{
if (lr->idx < n)
return -1;
diff --git a/locale/programs/localedef.c b/locale/programs/localedef.c
index fbcd04a67b..1db26e5427 100644
--- a/locale/programs/localedef.c
+++ b/locale/programs/localedef.c
@@ -463,10 +463,10 @@ construct_output_path (char *path)
the end of the function we need another byte for the trailing
'/'. */
if (normal == NULL)
- asprintf (&result, "%s/%s\0", LOCALE_PATH, path);
+ asprintf (&result, "%s/%s%c", LOCALE_PATH, path, '\0');
else
- asprintf (&result, "%s/%.*s%s%s\0", LOCALE_PATH, startp - path, path,
- normal, endp);
+ asprintf (&result, "%s/%.*s%s%s%c", LOCALE_PATH, startp - path, path,
+ normal, endp, '\0');
}
else
{
diff --git a/locale/programs/stringtrans.c b/locale/programs/stringtrans.c
index 6958dd2df8..4351eea397 100644
--- a/locale/programs/stringtrans.c
+++ b/locale/programs/stringtrans.c
@@ -93,7 +93,7 @@ translate_string (char *str, struct charset_t *charset)
}
value = charset_find_value (charset, str + 1, tp - (str + 1));
- if (value == ILLEGAL_CHAR_VALUE)
+ if ((wchar_t) value == ILLEGAL_CHAR_VALUE)
{
free (buf);
return NULL;
diff --git a/login/Makefile b/login/Makefile
index 56a6aebf44..247ab958df 100644
--- a/login/Makefile
+++ b/login/Makefile
@@ -30,6 +30,8 @@ routines := setutent endutent getutent getutid getutline pututline \
# Build the -lutil library with these extra functions.
extra-libs := libutil
+extra-libs-others := $(extra-libs)
+
libutil-routines:= login login_tty logout logwtmp pty
diff --git a/manual/creature.texi b/manual/creature.texi
index 51bf53a0c2..6b4d42fbe9 100644
--- a/manual/creature.texi
+++ b/manual/creature.texi
@@ -93,6 +93,20 @@ compiler or linker. @strong{Note:} If you forget to do this, you may
get very strange errors at run time.
@end defvr
+@comment (none)
+@comment GNU
+@defvr Macro _REENTRANT,_THREAD_SAFE
+If you define this macro, reentrant versions of several functions get
+declared. Some of the functions is specified in POSIX.1c but many others
+are only available on a few other systems or are unique to GNU libc.
+The problem is that the standardization of the thread safe C library
+interface still is behind.
+
+Unlike on some other systems no special version of the C library must be
+used for linking. There is only one version but while compiling this
+it must have been specified to compile as thread safe.
+@end defvr
+
We recommend you use @code{_GNU_SOURCE} in new programs. If you don't
specify the @samp{-ansi} option to GCC and don't define any of these macros
explicitly, the effect is the same as defining @code{_GNU_SOURCE}.
diff --git a/manual/libc.texinfo b/manual/libc.texinfo
index a6553d617e..773859318d 100644
--- a/manual/libc.texinfo
+++ b/manual/libc.texinfo
@@ -57,7 +57,7 @@ Foundation.
@sp 2
@center Sandra Loosemore
@center with
-@center Richard M. Stallman, Roland McGrath, and Andrew Oram
+@center Richard M. Stallman, Roland McGrath, Andrew Oram, and Ulrich Drepper
@sp 3
@center Edition @value{EDITION}
@sp 1
@@ -988,7 +988,12 @@ Porting the GNU C Library
@node Concept Index, Type Index, Copying, Top
@unnumbered Concept Index
-@printindex cp
+@comment Could somebody with better texinfo knowledge look into this?
+@comment When I comment out the following line I get
+@comment Misplaced `{'.
+@comment Misplaced `}'.
+@comment This happens even if the libc.cp file is empty.
+@comment @printindex cp
@node Type Index, Function Index, Concept Index, Top
@unnumbered Type Index
diff --git a/manual/nss.texi b/manual/nss.texi
index b2dc886a50..6d9d831a18 100644
--- a/manual/nss.texi
+++ b/manual/nss.texi
@@ -57,6 +57,7 @@ The databases available in the NSS are
@cindex ethers
@cindex group
@cindex hosts
+@cindex netgroup
@cindex network
@cindex protocols
@cindex passwd
@@ -71,6 +72,8 @@ Ethernet numbers,
Groups of users, @pxref{Group Database}.
@item hosts
Host names and numbers, @pxref{Host Names}.
+@item netgroup
+Network wide list of host and users, @pxref{Netgroup Database}.
@item network
Network names and numbers, @pxref{Networks Database}.
@item protocols
@@ -89,8 +92,7 @@ Shadow user passwords,
@noindent
There will be some more added later (@code{aliases}, @code{automount},
-@code{bootparams}, @code{netgroup}, @code{netmasks}, and
-@code{publickey}).
+@code{bootparams}, @code{netmasks}, and @code{publickey}).
@node NSS Configuration File, NSS Module Internals, NSS Basics, Name Service Switch
@section The NSS Configuration File
@@ -122,7 +124,7 @@ the reaction on lookup result line @code{[NOTFOUND=return]}.
@end itemize
@menu
-* Services in the NSS configuration:: Service names in the NSS configuratin.
+* Services in the NSS configuration:: Service names in the NSS configuration.
* Actions in the NSS configuration:: React approprite on the lookup result.
* Notes on NSS Configuration File:: Things to take care about while
configuring NSS.
@@ -256,6 +258,20 @@ all supported databases there is a default value so it should normally
be possible to get the system running even if the file is corrupted or
missing.
+@cindex default value, and NSS
+For the @code{hosts} and @code{network} databases the default value is
+@code{dns [!UNAVAIL=return] files}. I.e., the system is prepared for
+the DNS service not to be available but if it is available the answer it
+returns is ultimative.
+
+For all other databases the default value is
+@code{compat [NOTFOUND=return] files}. This solution give the best
+chance to be correct since NIS and file based lookup is used. The
+@code{compat} service is available in a separate add-on to GNU C
+library, available in the same place you got the GNU C library source
+from.
+
+@cindex optimizing NSS
A second point is that the user should try to optimize the lookup
process. The different service have different response times. A simple
file look up on a local file could be fast, but if the file is long and the
@@ -365,17 +381,19 @@ struct hostent *gethostbyname_r (const char *name,
@end smallexample
@noindent
-The actual prototype of the function is the NSS modules in this case is
+The actual prototype of the function in the NSS modules in this case is
@smallexample
-int _nss_files_gethostbyname_r (const char *name,
- struct hostent *result_buf, char *buf,
- int buflen, int *h_errnop)
+enum nss_status _nss_files_gethostbyname_r (const char *name,
+ struct hostent *result_buf,
+ char *buf, int buflen,
+ int *h_errnop)
@end smallexample
-I.e., the interface function is in fact the reentrant function with
-the change of the return value. While the user-level function returns a
-pointer to the result the reentrant function return an @code{int} value:
+I.e., the interface function is in fact the reentrant function with the
+change of the return value. While the user-level function returns a
+pointer to the result the reentrant function return an @code{enum
+nss_status} value:
@cindex NSS_STATUS_TRYAGAIN
@cindex NSS_STATUS_UNAVAIL
@@ -399,7 +417,12 @@ numeric value @code{1}
Now you see where the action items of the @file{/etc/nsswitch.conf} file
are used.
-The above function has somthing special which is missing for almost all
+If you study the source code you will find there is a fifth value:
+@code{NSS_STATUS_RETURN}. This is an internal use only value, used by a
+few functions in places where none of the above value can be used. If
+necessary the source code should be examined to learn about the details.
+
+The above function has something special which is missing for almost all
the other module functions. There is an argument @var{h_errnop}. This
points to a variable which will be filled with the error code in case
the execution of the function fails for some reason. The reentrant
diff --git a/manual/users.texi b/manual/users.texi
index b1d0d6f929..e20c90ddaa 100644
--- a/manual/users.texi
+++ b/manual/users.texi
@@ -1,4 +1,4 @@
-@node Users and Groups, System Information, Name Service Switch, Top
+@node Users and Groups
@chapter Users and Groups
Every user who can log in on the system is identified by a unique number
@@ -46,11 +46,12 @@ can use to examine these databases.
accessing the user database.
* Group Database:: Functions and data structures for
accessing the group database.
+* Netgroup Database:: Functions for accessing the netgroup database.
* Database Example:: Example program showing use of database
inquiry functions.
@end menu
-@node User and Group IDs
+@node User and Group IDs, Process Persona, Users and Groups, Users and Groups
@section User and Group IDs
@cindex login name
@@ -71,7 +72,7 @@ not accessible to users who are not a member of that group. Each group
has a @dfn{group name} and @dfn{group ID}. @xref{Group Database},
for how to find information about a group ID or group name.
-@node Process Persona
+@node Process Persona, Why Change Persona, User and Group IDs, Users and Groups
@section The Persona of a Process
@cindex persona
@cindex effective user ID
@@ -113,7 +114,7 @@ its permission to access files, see @ref{Access Permission}.
The user ID of a process also controls permissions for sending signals
using the @code{kill} function. @xref{Signaling Another Process}.
-@node Why Change Persona
+@node Why Change Persona, How Change Persona, Process Persona, Users and Groups
@section Why Change the Persona of a Process?
The most obvious situation where it is necessary for a process to change
@@ -145,7 +146,7 @@ the game program wants to update this file, it can change its effective
user ID to be that for @code{games}. In effect, the program must
adopt the persona of @code{games} so it can write the scores file.
-@node How Change Persona
+@node How Change Persona, Reading Persona, Why Change Persona, Users and Groups
@section How an Application Can Change Persona
@cindex @code{setuid} programs
@@ -176,7 +177,7 @@ when they are not needed, which makes for more robustness.
@c !!! talk about _POSIX_SAVED_IDS
-@node Reading Persona
+@node Reading Persona, Setting User ID, How Change Persona, Users and Groups
@section Reading the Persona of a Process
Here are detailed descriptions of the functions for reading the user and
@@ -261,7 +262,7 @@ read_all_groups (void)
@end smallexample
@end deftypefun
-@node Setting User ID
+@node Setting User ID, Setting Groups, Reading Persona, Users and Groups
@section Setting the User ID
This section describes the functions for altering the user ID (real
@@ -324,7 +325,7 @@ have permission to change to the specified ID.
@end table
@end deftypefun
-@node Setting Groups
+@node Setting Groups, Enable/Disable Setuid, Setting User ID, Users and Groups
@section Setting the Group IDs
This section describes the functions for altering the group IDs (real
@@ -399,7 +400,7 @@ the user name @var{user}. The group ID @var{gid} is also included.
@c groups USER is a member of.
@end deftypefun
-@node Enable/Disable Setuid
+@node Enable/Disable Setuid, Setuid Program Example, Setting Groups, Users and Groups
@section Enabling and Disabling Setuid Access
A typical setuid program does not need its special access all of the
@@ -465,7 +466,7 @@ feature with a preprocessor conditional, like this:
#endif
@end smallexample
-@node Setuid Program Example
+@node Setuid Program Example, Tips for Setuid, Enable/Disable Setuid, Users and Groups
@section Setuid Program Example
Here's an example showing how to set up a program that changes its
@@ -605,7 +606,7 @@ record_score (int score)
@end group
@end smallexample
-@node Tips for Setuid
+@node Tips for Setuid, Who Logged In, Setuid Program Example, Users and Groups
@section Tips for Writing Setuid Programs
It is easy for setuid programs to give the user access that isn't
@@ -649,7 +650,7 @@ would ordinarily have permission to access those files. You can use the
uses the real user and group IDs, rather than the effective IDs.
@end itemize
-@node Who Logged In
+@node Who Logged In, User Database, Tips for Setuid, Users and Groups
@section Identifying Who Logged In
@cindex login name, determining
@cindex user ID, determining
@@ -703,7 +704,7 @@ For most purposes, it is more useful to use the environment variable
precisely because the user can set @code{LOGNAME} arbitrarily.
@xref{Standard Environment}.
-@node User Database
+@node User Database, Group Database, Who Logged In, Users and Groups
@section User Database
@cindex user database
@cindex password database
@@ -721,7 +722,7 @@ network server gives access to it.
* Writing a User Entry:: How a program can rewrite a user's record.
@end menu
-@node User Data Structure
+@node User Data Structure, Lookup User, User Database, User Database
@subsection The Data Structure that Describes a User
The functions and data structures for accessing the system user database
@@ -762,7 +763,7 @@ be used.
@end table
@end deftp
-@node Lookup User
+@node Lookup User, Scanning All Users, User Data Structure, User Database
@subsection Looking Up One User
@cindex converting user ID to user name
@cindex converting user name to user ID
@@ -783,6 +784,27 @@ user ID @var{uid}.
@end deftypefun
@comment pwd.h
+@comment POSIX.1c
+@deftypefun int getpwuid_r (uid_t @var{uid}, struct passwd *@var{result_buf}, char *@var{buffer}, size_t @var{buflen}, struct passwd **@var{result})
+This function is similar to @code{getpwuid} in that is returns
+information about the user whose user ID is @var{uid}. But the result
+is not placed in a static buffer. Instead the user supplied structure
+pointed to by @var{result_buf} is filled with the information. The
+first @var{buflen} bytes of the additional buffer pointed to by
+@var{buffer} are used to contain additional information, normally
+strings which are pointed to by the elements of the result structure.
+
+If the return value is @code{0} the pointer returned in @var{result}
+points to the record which contains the wanted data (i.e., @var{result}
+contains the value @var{result_buf}). In case the return value is non
+null there is no user in the data base with user ID @var{uid} or the
+buffer @var{buffer} is too small to contain all the needed information.
+In the later case the global @var{errno} variable is set to
+@code{ERANGE}.
+@end deftypefun
+
+
+@comment pwd.h
@comment POSIX.1
@deftypefun {struct passwd *} getpwnam (const char *@var{name})
This function returns a pointer to a statically-allocated structure
@@ -793,7 +815,28 @@ This structure may be overwritten on subsequent calls to
A null pointer value indicates there is no user named @var{name}.
@end deftypefun
-@node Scanning All Users
+@comment pwd.h
+@comment POSIX.1c
+@deftypefun int getpwnam_r (const char *@var{name}, struct passwd *@var{result_buf}, char *@var{buffer}, size_t @var{buflen}, struct passwd **@var{result})
+This function is similar to @code{getpwnam} in that is returns
+information about the user whose user name is @var{name}. But the result
+is not placed in a static buffer. Instead the user supplied structure
+pointed to by @var{result_buf} is filled with the information. The
+first @var{buflen} bytes of the additional buffer pointed to by
+@var{buffer} are used to contain additional information, normally
+strings which are pointed to by the elements of the result structure.
+
+If the return value is @code{0} the pointer returned in @var{result}
+points to the record which contains the wanted data (i.e., @var{result}
+contains the value @var{result_buf}). In case the return value is non
+null there is no user in the data base with user name @var{name} or the
+buffer @var{buffer} is too small to contain all the needed information.
+In the later case the global @var{errno} variable is set to
+@code{ERANGE}.
+@end deftypefun
+
+
+@node Scanning All Users, Writing a User Entry, Lookup User, User Database
@subsection Scanning the List of All Users
@cindex scanning the user list
@@ -816,14 +859,33 @@ This stream must correspond to a file in the same format as the standard
password database file. This function comes from System V.
@end deftypefun
+@comment pwd.h
+@comment GNU
+@deftypefun int fgetpwent_r (FILE *@var{stream}, struct passwd *@var{result_buf}, char *@var{buffer}, size_t @var{buflen}, struct passwd **@var{result})
+This function is similar to @code{fgetpwent} in that it reads the next
+user entry from @var{stream}. But the result is returned in the
+structure pointed to by @var{result_buf}. The
+first @var{buflen} bytes of the additional buffer pointed to by
+@var{buffer} are used to contain additional information, normally
+strings which are pointed to by the elements of the result structure.
+
+This stream must correspond to a file in the same format as the standard
+password database file.
+
+If the funciton returns null @var{result} points to the structure with
+the wanted data (normally this is in @var{result_buf}). If errors
+occured the return value is non-null and @var{result} contains a null
+pointer.
+@end deftypefun
+
The way to scan all the entries in the user database is with
@code{setpwent}, @code{getpwent}, and @code{endpwent}.
@comment pwd.h
@comment SVID, BSD
@deftypefun void setpwent (void)
-This function initializes a stream which @code{getpwent} uses to read
-the user database.
+This function initializes a stream which @code{getpwent} and
+@code{getpwent_r} use to read the user database.
@end deftypefun
@comment pwd.h
@@ -834,15 +896,35 @@ initialized by @code{setpwent}. It returns a pointer to the entry. The
structure is statically allocated and is rewritten on subsequent calls
to @code{getpwent}. You must copy the contents of the structure if you
wish to save the information.
+
+A null pointer is returned in case no further entry is available.
+@end deftypefun
+
+@comment pwd.h
+@comment GNU
+@deftypefun int getpwent_r (struct passwd *@var{result_buf}, char *@var{buffer}, int @var{buflen}, struct passwd **@var{result})
+This function is similar to @code{getpwent} in that it returns the next
+entry from the stream initialized by @code{setpwent}. But in contrast
+to the @code{getpwent} function this function is reentrant since the
+result is placed in the user supplied structure pointed to by
+@var{result_buf}. Additional data, normally the strings pointed to by
+the elements of the result structure, are placed in the additional
+buffer or length @var{buflen} starting at @var{buffer}.
+
+If the function returns null @var{result} points to the structure with
+the wanted data (normally this is in @var{result_buf}). If errors
+occured the return value is non-null and @var{result} contains a null
+pointer.
@end deftypefun
@comment pwd.h
@comment SVID, BSD
@deftypefun void endpwent (void)
-This function closes the internal stream used by @code{getpwent}.
+This function closes the internal stream used by @code{getpwent} or
+@code{getpwent_r}.
@end deftypefun
-@node Writing a User Entry
+@node Writing a User Entry, , Scanning All Users, User Database
@subsection Writing a User Entry
@comment pwd.h
@@ -862,7 +944,7 @@ would inevitably leave out much of the important information.
The function @code{putpwent} is declared in @file{pwd.h}.
@end deftypefun
-@node Group Database
+@node Group Database, Netgroup Database, User Database, Users and Groups
@section Group Database
@cindex group database
@pindex /etc/group
@@ -878,7 +960,7 @@ service provides access to it.
* Scanning All Groups:: Scanning the list of all groups.
@end menu
-@node Group Data Structure
+@node Group Data Structure, Lookup Group, Group Database, Group Database
@subsection The Data Structure for a Group
The functions and data structures for accessing the system group
@@ -905,7 +987,7 @@ null pointer.
@end table
@end deftp
-@node Lookup Group
+@node Lookup Group, Scanning All Groups, Group Data Structure, Group Database
@subsection Looking Up One Group
@cindex converting group name to group ID
@cindex converting group ID to group name
@@ -926,6 +1008,26 @@ A null pointer indicates there is no group with ID @var{gid}.
@end deftypefun
@comment grp.h
+@comment POSIX.1c
+@deftypefun int getgrgid_r (gid_t @var{gid}, struct group *@var{result_buf}, char *@var{buffer}, size_t @var{buflen}, struct group **@var{result})
+This function is similar to @code{getgrgid} in that is returns
+information about the group whose group ID is @var{gid}. But the result
+is not placed in a static buffer. Instead the user supplied structure
+pointed to by @var{result_buf} is filled with the information. The
+first @var{buflen} bytes of the additional buffer pointed to by
+@var{buffer} are used to contain additional information, normally
+strings which are pointed to by the elements of the result structure.
+
+If the return value is @code{0} the pointer returned in @var{result}
+points to the record which contains the wanted data (i.e., @var{result}
+contains the value @var{result_buf}). In case the return value is non
+null there is no group in the data base with group ID @var{gid} or the
+buffer @var{buffer} is too small to contain all the needed information.
+In the later case the global @var{errno} variable is set to
+@code{ERANGE}.
+@end deftypefun
+
+@comment grp.h
@comment SVID, BSD
@deftypefun {struct group *} getgrnam (const char *@var{name})
This function returns a pointer to a statically-allocated structure
@@ -936,7 +1038,27 @@ This structure may be overwritten by subsequent calls to
A null pointer indicates there is no group named @var{name}.
@end deftypefun
-@node Scanning All Groups
+@comment grp.h
+@comment POSIX.1c
+@deftypefun int getgrnam_r (const char *@var{name}, struct group *@var{result_buf}, char *@var{buffer}, size_t @var{buflen}, struct group **@var{result})
+This function is similar to @code{getgrnam} in that is returns
+information about the group whose group name is @var{name}. But the result
+is not placed in a static buffer. Instead the user supplied structure
+pointed to by @var{result_buf} is filled with the information. The
+first @var{buflen} bytes of the additional buffer pointed to by
+@var{buffer} are used to contain additional information, normally
+strings which are pointed to by the elements of the result structure.
+
+If the return value is @code{0} the pointer returned in @var{result}
+points to the record which contains the wanted data (i.e., @var{result}
+contains the value @var{result_buf}). In case the return value is non
+null there is no group in the data base with group name @var{name} or the
+buffer @var{buffer} is too small to contain all the needed information.
+In the later case the global @var{errno} variable is set to
+@code{ERANGE}.
+@end deftypefun
+
+@node Scanning All Groups, , Lookup Group, Group Database
@subsection Scanning the List of All Groups
@cindex scanning the group list
@@ -960,6 +1082,25 @@ The stream must correspond to a file in the same format as the standard
group database file.
@end deftypefun
+@comment grp.h
+@comment GNU
+@deftypefun int fgetgrent_r (FILE *@var{stream}, struct group *@var{result_buf}, char *@var{buffer}, size_t @var{buflen}, struct group **@var{result})
+This function is similar to @code{fgetgrent} in that it reads the next
+user entry from @var{stream}. But the result is returned in the
+structure pointed to by @var{result_buf}. The
+first @var{buflen} bytes of the additional buffer pointed to by
+@var{buffer} are used to contain additional information, normally
+strings which are pointed to by the elements of the result structure.
+
+This stream must correspond to a file in the same format as the standard
+group database file.
+
+If the funciton returns null @var{result} points to the structure with
+the wanted data (normally this is in @var{result_buf}). If errors
+occured the return value is non-null and @var{result} contains a null
+pointer.
+@end deftypefun
+
The way to scan all the entries in the group database is with
@code{setgrent}, @code{getgrent}, and @code{endgrent}.
@@ -967,7 +1108,7 @@ The way to scan all the entries in the group database is with
@comment SVID, BSD
@deftypefun void setgrent (void)
This function initializes a stream for reading from the group data base.
-You use this stream by calling @code{getgrent}.
+You use this stream by calling @code{getgrent} or @code{getgrent_r}.
@end deftypefun
@comment grp.h
@@ -981,12 +1122,177 @@ wish to save the information.
@end deftypefun
@comment grp.h
+@comment GNU
+@deftypefun int getgrent_r (struct group *@var{result_buf}, char *@var{buffer}, size_t @var{buflen}, struct group **@var{result})
+This function is similar to @code{getgrent} in that it returns the next
+entry from the stream initialized by @code{setgrent}. But in contrast
+to the @code{getgrent} function this function is reentrant since the
+result is placed in the user supplied structure pointed to by
+@var{result_buf}. Additional data, normally the strings pointed to by
+the elements of the result structure, are placed in the additional
+buffer or length @var{buflen} starting at @var{buffer}.
+
+If the function returns null @var{result} points to the structure with
+the wanted data (normally this is in @var{result_buf}). If errors
+occured the return value is non-null and @var{result} contains a null
+pointer.
+@end deftypefun
+
+@comment grp.h
@comment SVID, BSD
@deftypefun void endgrent (void)
-This function closes the internal stream used by @code{getgrent}.
+This function closes the internal stream used by @code{getgrent} or
+@code{getgrent_r}.
+@end deftypefun
+
+@node Netgroup Database, Database Example, Group Database, Users and Groups
+@section Netgroup Database
+
+@menu
+* Netgroup Data:: Data in the Netgroup database and where
+ it comes from.
+* Lookup Netgroup:: How to look for a particular netgroup.
+* Netgroup Membership:: How to test for netgroup membership.
+@end menu
+
+@node Netgroup Data, Lookup Netgroup, Netgroup Database, Netgroup Database
+@subsection Netgroup Data
+
+@cindex{Netgroup}
+Sometimes it is useful group users according to other criterias like the
+ones used in the @xref{Group Database}. E.g., it is useful to associate
+a certain group of users with a certain machine. On the other hand
+grouping of host names is not supported so far.
+
+In Sun Microsystems SunOS appeared a new kind of database, the netgroup
+database. It allows to group hosts, users, and domain freely, giving
+them individual names. More concrete: a netgroup is a list of triples
+consisting of a host name, a user name, and a domain name, where any of
+the entries can be a wildcard entry, matching all inputs. A last
+possibility is that names of other netgroups can also be given in the
+list specifying a netgroup. So one can construct arbitrary hierachies
+without loops.
+
+Sun's implementation allows netgroups only for the @code{nis} or
+@code{nisplus} service @pxref{Services in the NSS configuration}. The
+implementation in the GNU C library has no such restriction. An entry
+in either of the input services must have the following form:
+
+@smallexample
+@var{groupname} ( @var{groupname} | @code{(}@var{hostname}@code{,}@var{username}@code{,}@code{domainname}@code{)} )+
+@end smallexample
+
+Any of the fields in the triple can be empty which means anything
+matches. While describing te functions we will see that the opposite
+case is useful as well. I.e., there shall be entries which will not
+match any input. For entries like a name consisting of the single
+character @code{-} shall be used.
+
+@node Lookup Netgroup, Netgroup Membership, Netgroup Data, Netgroup Database
+@subsection Looking up one Netgroup
+
+The lookup functions for netgroups are a bit different to all other
+system database handling functions. Since a single netgroup can contain
+many entries a two-step process is needed. First a single netgroup is
+selected and then one can iterate over all entries in this netgroup.
+These functions are declared in @file{netdb.h}.
+
+@comment netdb.h
+@deftypefun int setnetgrent (const char *@var{netgroup})
+A call to this function initializes the internal state of the library to
+allow following calls of the @code{getnetgrent} iterate over all entries
+in the netgroup with name @var{netgroup}.
+
+When the call is successful (i.e., when a netgroup with this name exist)
+the return value is @code{1}. When the return value is @code{0} no
+netgroup of this name is known or some other error occured.
+@end deftypefun
+
+It is important to remember that there is only one single state for
+iterating the netgroups. Even if the programmer uses the
+@code{getnetgrent_r} function the result is not really reentrant since
+always only one single netgroup at a time can be processed. If the
+program needs to process more than one netgroup simultaneously she
+must protect this by using external locking. This problem was
+introduced in the original netgroups implementation in SunOS and since
+we must stay compatible it is not possible to change this.
+
+Some other functions also use the netgroups state. Currently these are
+the @code{innetgr} function and parts of the implementation of the
+@code{compat} service part of the NSS implementation.
+
+@comment netdb.h
+@deftypefun int getnetgrent (char **@var{hostp}, char **@var{userp}, char **@var{domainp})
+This function returns the next unprocessed entry of the currently
+selected netgroup. The string pointers, which addresses are passed in
+the arguments @var{hostp}, @var{userp}, and @var{domainp}, will contain
+after a successful call pointers to appropriate strings. If the string
+in the next entry is empty the pointer has the value @code{NULL}.
+The returned string pointers are only valid unless no of the netgroup
+related functions are called.
+
+The return value is @code{1} if the next entry was successfully read. A
+value of @code{0} means no further entry exist or internal errors occured.
+@end deftypefun
+
+@comment netdb.h
+@deftypefun int getnetgrent_r (char **@var{hostp}, char **@var{userp}, char **@var{domainp}, char *@var{buffer}, int @var{buflen})
+This function is similar to @code{getnetgrent} with only one exception:
+the strings the three string pointers @var{hostp}, @var{userp}, and
+@var{domainp} point to, are placed in the buffer of @var{buflen} bytes
+starting at @var{buffer}. This means the returned values are valid
+even after other netgroup related functions are called.
+
+The return value is @code{1} if the next entry was successfully read and
+the buffer contains enough room to place the strings in it. @code{0} is
+returned in case no more entries are found, the buffer is too small, or
+internal errors occured.
+
+This function is a GNU extension. The original implementation in the
+SunOS libc does not provide this function.
+@end deftypefun
+
+@comment netdb.h
+@deftypefun void endnetgrent (void)
+This function free all buffers which were allocated to process the last
+selected netgroup. As a result all string pointers returned by calls
+to @code{getnetgrent} are invalid afterwards.
+@end deftypefun
+
+@node Netgroup Membership, , Lookup Netgroup, Netgroup Database
+@subsection Testing for Netgroup Membership
+
+It is often not necessary to scan the whole netgroup since often the
+only interesting question is whether a given entry is part of the
+selected netgroup.
+
+@comment netdb.h
+@deftypefun int innetgr (const char *@var{netgroup}, const char *@var{host}, const char *@var{user}, const char *@var{domain})
+This function tests whether the triple specified by the parameters
+@var{hostp}, @var{userp}, and @var{domainp} is part of the netgroup
+@var{netgroup}. Using this function has the advantage that
+
+@enumerate
+@item
+no other netgroup function can use the global netgroup state since
+internal locking is used and
+@item
+the function is implemented more efficiently than successive calls
+to the other @code{set}/@code{get}/@code{endnetgrent} functions.
+@end enumerate
+
+Any of the pointers @var{hostp}, @var{userp}, and @var{domainp} can be
+@code{NULL} which means any value is excepted in this position. This is
+also true for the name @code{-} which should not match any other string
+otherwise.
+
+The return value is @code{1} if an entry matching the given triple is
+found in the netgroup. The return value is @code{0} is the netgroup
+itself is not found, the netgroup does not contain the triple or
+internal errors occured.
@end deftypefun
-@node Database Example
+@node Database Example, , Netgroup Database, Users and Groups
@section User and Group Database Example
Here is an example program showing the use of the system database inquiry
diff --git a/math/math.h b/math/math.h
index 74b893a49d..49d5c00aa3 100644
--- a/math/math.h
+++ b/math/math.h
@@ -1,24 +1,24 @@
/* Declarations for math functions.
-Copyright (C) 1991, 92, 93, 95, 96 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+ Copyright (C) 1991, 92, 93, 95, 96 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 Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 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
-Library General Public License for more details.
+ 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
+ Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB. If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA. */
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
/*
- * ANSI Standard: 4.5 MATHEMATICS <math.h>
+ * ISO C Standard: 4.5 MATHEMATICS <math.h>
*/
#ifndef _MATH_H
diff --git a/misc/err.h b/misc/err.h
index c81de1b396..403ef7f701 100644
--- a/misc/err.h
+++ b/misc/err.h
@@ -1,21 +1,21 @@
-/* err.h --- 4.4BSD utility functions for error messages.
-Copyright (C) 1995 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+/* err.h -- 4.4BSD utility functions for error messages.
+ Copyright (C) 1995, 1996 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 Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 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
-Library General Public License for more details.
+ 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
+ Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB. If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA. */
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
#ifndef _ERR_H_
#define _ERR_H_ 1
@@ -30,25 +30,25 @@ Cambridge, MA 02139, USA. */
__BEGIN_DECLS
/* Print FORMAT on stderr. */
-extern void warn __P ((const char *__format, ...))
+extern void warn __P ((__const char *__format, ...))
__attribute__ ((format (printf, 1, 2)));
-extern void vwarn __P ((const char *__format, __gnuc_va_list))
+extern void vwarn __P ((__const char *__format, __gnuc_va_list))
__attribute__ ((format (printf, 1, 0)));
/* Print "program: ", and FORMAT, and a newline, on stderr. */
-extern void warnx __P ((const char *__format, ...))
+extern void warnx __P ((__const char *__format, ...))
__attribute__ ((format (printf, 1, 2)));
-extern void vwarnx __P ((const char *__format, __gnuc_va_list))
+extern void vwarnx __P ((__const char *__format, __gnuc_va_list))
__attribute__ ((format (printf, 1, 0)));
/* Likewise, and then exit with STATUS. */
-extern void err __P ((int __status, const char *__format, ...))
+extern void err __P ((int __status, __const char *__format, ...))
__attribute__ ((noreturn, format (printf, 2, 3)));
-extern void verr __P ((int __status, const char *__format, __gnuc_va_list))
+extern void verr __P ((int __status, __const char *__format, __gnuc_va_list))
__attribute__ ((noreturn, format (printf, 2, 0)));
-extern void errx __P ((int __status, const char *__format, ...))
+extern void errx __P ((int __status, __const char *__format, ...))
__attribute__ ((noreturn, format (printf, 2, 3)));
-extern void verrx __P ((int __status, const char *, __gnuc_va_list))
+extern void verrx __P ((int __status, __const char *, __gnuc_va_list))
__attribute__ ((noreturn, format (printf, 2, 0)));
__END_DECLS
diff --git a/misc/mntent.h b/misc/mntent.h
index fc9c824135..bfa1dee797 100644
--- a/misc/mntent.h
+++ b/misc/mntent.h
@@ -23,6 +23,7 @@ Cambridge, MA 02139, USA. */
#include <features.h>
#define __need_FILE
#include <stdio.h>
+#include <paths.h>
/* File listing canonical interesting mount points. */
diff --git a/nss/getXXbyYY.c b/nss/getXXbyYY.c
index a99b68f0e2..c300117b8c 100644
--- a/nss/getXXbyYY.c
+++ b/nss/getXXbyYY.c
@@ -60,16 +60,21 @@ Boston, MA 02111-1307, USA. */
/* Prototype for reentrant version we use here. */
-extern LOOKUP_TYPE *INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *result,
- char *buffer, int buflen
- H_ERRNO_PARM);
+extern int INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf,
+ char *buffer, size_t buflen,
+ LOOKUP_TYPE **result H_ERRNO_PARM);
LOOKUP_TYPE *
FUNCTION_NAME (ADD_PARAMS)
{
- static LOOKUP_TYPE result;
static char buffer[BUFLEN];
+ static LOOKUP_TYPE resbuf;
+ LOOKUP_TYPE *result;
- return INTERNAL (REENTRANT_NAME) (ADD_VARIABLES, &result, buffer,
- BUFLEN H_ERRNO_VAR);
+ if (INTERNAL (REENTRANT_NAME) (ADD_VARIABLES, &resbuf, buffer,
+ BUFLEN, &result H_ERRNO_VAR) != 0)
+ /* Error occured. */
+ return NULL;
+
+ return result;
}
diff --git a/nss/getXXbyYY_r.c b/nss/getXXbyYY_r.c
index 631fd1e33e..d85169ab81 100644
--- a/nss/getXXbyYY_r.c
+++ b/nss/getXXbyYY_r.c
@@ -82,9 +82,9 @@ extern int DB_LOOKUP_FCT (service_user **nip, const char *name, void **fctp);
-LOOKUP_TYPE *
-INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *result, char *buffer,
- int buflen H_ERRNO_PARM)
+int
+INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer,
+ size_t buflen, LOOKUP_TYPE **result H_ERRNO_PARM)
{
static service_user *startp = NULL;
static lookup_function start_fct;
@@ -122,13 +122,14 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *result, char *buffer,
while (no_more == 0)
{
- status = (*fct) (ADD_VARIABLES, result, buffer, buflen H_ERRNO_VAR);
+ status = (*fct) (ADD_VARIABLES, resbuf, buffer, buflen H_ERRNO_VAR);
no_more = __nss_next (&nip, REENTRANT_NAME_STRING,
(void **) &fct, status, 0);
}
- return status == NSS_STATUS_SUCCESS ? result : NULL;
+ *result = status == NSS_STATUS_SUCCESS ? resbuf : NULL;
+ return status == NSS_STATUS_SUCCESS ? 0 : -1;
}
#define do_weak_alias(n1, n2) weak_alias ((n1), (n2))
diff --git a/nss/getXXent.c b/nss/getXXent.c
index ecf7eadc4c..7e291e6298 100644
--- a/nss/getXXent.c
+++ b/nss/getXXent.c
@@ -51,15 +51,22 @@ Boston, MA 02111-1307, USA. */
#endif
/* Prototype of the reentrant version. */
-LOOKUP_TYPE *INTERNAL (REENTRANT_GETNAME) (LOOKUP_TYPE *result, char *buffer,
- int buflen H_ERRNO_PARM);
+extern int INTERNAL (REENTRANT_GETNAME) (LOOKUP_TYPE *resbuf, char *buffer,
+ size_t buflen, LOOKUP_TYPE **result
+ H_ERRNO_PARM);
LOOKUP_TYPE *
GETFUNC_NAME (void)
{
static char buffer[BUFLEN];
- static LOOKUP_TYPE result;
+ static LOOKUP_TYPE resbuf;
+ LOOKUP_TYPE *result;
- return INTERNAL (REENTRANT_GETNAME) (&result, buffer, BUFLEN H_ERRNO_VAR);
+ if (INTERNAL (REENTRANT_GETNAME) (&resbuf, buffer, BUFLEN, &result
+ H_ERRNO_VAR) != 0)
+ /* Errors occured. */
+ return NULL;
+
+ return result;
}
diff --git a/nss/getXXent_r.c b/nss/getXXent_r.c
index 6bff863e07..1d06a9477a 100644
--- a/nss/getXXent_r.c
+++ b/nss/getXXent_r.c
@@ -187,9 +187,9 @@ ENDFUNC_NAME (void)
}
-LOOKUP_TYPE *
-INTERNAL (REENTRANT_GETNAME) (LOOKUP_TYPE *result, char *buffer, int buflen
- H_ERRNO_PARM)
+int
+INTERNAL (REENTRANT_GETNAME) (LOOKUP_TYPE *resbuf, char *buffer, size_t buflen,
+ LOOKUP_TYPE **result H_ERRNO_PARM)
{
get_function fct;
int no_more;
@@ -214,7 +214,7 @@ INTERNAL (REENTRANT_GETNAME) (LOOKUP_TYPE *result, char *buffer, int buflen
no_more = setup ((void **) &fct, GETFUNC_NAME_STRING, 0);
while (! no_more)
{
- status = (*fct) (result, buffer, buflen H_ERRNO_VAR);
+ status = (*fct) (resbuf, buffer, buflen H_ERRNO_VAR);
no_more = __nss_next (&nip, GETFUNC_NAME_STRING, (void **) &fct,
status, 0);
@@ -222,7 +222,8 @@ INTERNAL (REENTRANT_GETNAME) (LOOKUP_TYPE *result, char *buffer, int buflen
__libc_lock_unlock (lock);
- return status == NSS_STATUS_SUCCESS ? result : NULL;
+ *result = NSS_STATUS_SUCCESS ? resbuf : NULL;
+ return status == NSS_STATUS_SUCCESS ? 0 : -1;
}
#define do_weak_alias(n1, n2) weak_alias (n1, n2)
do_weak_alias (INTERNAL (REENTRANT_GETNAME), REENTRANT_GETNAME)
diff --git a/nss/nss_db/db-netgrp.c b/nss/nss_db/db-netgrp.c
index 3afede56c6..2090dd1eff 100644
--- a/nss/nss_db/db-netgrp.c
+++ b/nss/nss_db/db-netgrp.c
@@ -52,7 +52,7 @@ _nss_db_setnetgrent (const char *group)
db = dbopen (DBFILE, O_RDONLY, 0, DB_BTREE, NULL);
if (db == NULL)
- status = errno = EAGAIN ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL;
+ status = errno == EAGAIN ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL;
}
if (status == NSS_STATUS_SUCCESS)
diff --git a/po/es.po b/po/es.po
index 556982f587..963f668796 100644
--- a/po/es.po
+++ b/po/es.po
@@ -1,73 +1,32 @@
# Mensajes en espa�ol para GNU libc.
# Copyright (C) 1996 Free Software Foundation, Inc.
-# Enrique Melero G�mez <b182@mail.fh-wuerzburg.de>, 1996.
-#
-# 5 Abril 96, Comienzo con 1.10.1 , tendr� que coger los fuentes de esta
-# versi�n. Muchas cosas han cambiado
-#
-# 19 Abril 96 Terminado y dejado para revisi�n , crash de mi placa,
-# aplico las ideas de SV en su mensaje del 14 Abril
-#
-# 21-23 Abril 96 Jugamos un poco al ping-pong sv y yo, termino ganando
-# yo, como siempre :-), y se deja el archivo en ftp para revisi�n.
-# Aplico algunas ideas vistas en glibc-1.10.0.de.po
-#
-# 27 Abril 96 Quito los mensajes antiguos y la env�o definitivamente a Pinard.
-# Nadie m�s la revis�, adem�s de Santiago, esto es una pena.
-#
-# 5 Junio 96 Me manda Santiago Vila la 1.90 , fundida con las traducciones
-# de la 1.10.0, gracias otra vez Santiago.
-#
-# 8 Junio 96 al volver de Praga me pongo con ella, y la dejo lista para revisar.
-#
-# 13 Junio 96 Me manda Santiago la 1.92 (cuyo .pot coincid�a con el de la 1.90)
-# para que revise con cuidado todos los `fuzzy's
-#
-# 20 Junio 96 Me pongo con el 1.92 a las 10 am
-#
-# ## [ 22 de Junio: �nimo que s�lo te quedan 10 "fuzzy"s ]
-# ## Cambio el PO-Revision-Date, con tu permiso.
-# ## El d�a 23 me decido a acabar con esta versi�n, son las 23:00 , a ver
-# si puedo dormir un poco hoy ;)
-#
+# Enrique Melero G�mez <justine@iprolink.ch>, 1996.
msgid ""
msgstr ""
-"Project-Id-Version: GNU glibc 1.92\n"
-"POT-Creation-Date: 1996-05-29 14:03\n"
-"PO-Revision-Date: 1996-07-23 18:00+0200 (MET DST)\n"
-"Last-Translator: Enrique Melero G�mez <b182@mail.fh-wuerzburg.de>\n"
+"Project-Id-Version: GNU libc 1.96\n"
+"POT-Creation-Date: 1996-10-17 03:22+0200\n"
+"PO-Revision-Date: 1996-10-27 16:08 MET\n"
+"Last-Translator: Enrique Melero G�mez <justine@iprolink.ch>\n"
"Language-Team: Spanish <es@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
-#: sunrpc/rpc_main.c:80
-#, c-format
-msgid " %s [-c | -h | -l | -m] [-o outfile] [infile]\n"
-msgstr " %s [-c | -h | -l | -m] [-o archivo_salida] [archivo_entrada]\n"
-
-#: sunrpc/rpc_main.c:83
-#, c-format
-msgid " %s [-s udp|tcp]* [-o outfile] [infile]\n"
-msgstr " %s [-s udp|tcp]* [-o archivo_salida] [archivo_entrada]\n"
-
-# ## Si vas a traducir n�mprog por numprog, s� consistente. sv
-# ## lo dejo todo como numprog em
#: sunrpc/rpcinfo.c:612
-msgid " rpcinfo -b n�mprog versnum\n"
-msgstr " rpcinfo -b n�mprog versnum\n"
+msgid " rpcinfo -b prognum versnum\n"
+msgstr " rpcinfo -b n�mprog n�nvers\n"
#: sunrpc/rpcinfo.c:613
-msgid " rpcinfo -d n�mprog versnum\n"
-msgstr " rpcinfo -d n�mprog versnum\n"
+msgid " rpcinfo -d prognum versnum\n"
+msgstr " rpcinfo -d n�mprog n�mvers\n"
#: sunrpc/rpcinfo.c:611
msgid " rpcinfo -p [ host ]\n"
msgstr " rpcinfo -p [ host ]\n"
#: sunrpc/rpcinfo.c:610
-msgid " rpcinfo [ -n portnum ] -t host n�mprog [ versnum ]\n"
-msgstr " rpcinfo [ -n numpuerto ] -t host n�mprog [ versnum ]\n"
+msgid " rpcinfo [ -n portnum ] -t host prognum [ versnum ]\n"
+msgstr " rpcinfo [ -n n�mpuerto ] -t host n�mprog [ n�mvers ]\n"
# ## A�ado un espacio. sv
# Sugerencia: port -> puerto. sv
@@ -76,30 +35,34 @@ msgstr " rpcinfo [ -n numpuerto ] -t host n�mprog [ versnum ]\n"
msgid " program vers proto port\n"
msgstr " programa vers proto puerto\n"
-#: time/zic.c:423
+#: time/zic.c:424
#, c-format
msgid " (rule from \"%s\", line %d)"
msgstr " (regla desde \"%s\", l�nea %d)"
+#: locale/programs/ld-collate.c:360 locale/programs/ld-ctype.c:1234
+msgid " done\n"
+msgstr " hecho\n"
+
# ## Borro un "fuzzy" que hab�a. sv
-#: time/zic.c:420
+#: time/zic.c:421
#, c-format
msgid "\"%s\", line %d: %s"
msgstr "\"%s\", l�nea %d: %s"
# ## Cambio "Zona" por "Zone". sv
# ## Corrijo el nombre de la opci�n. sv
-#: time/zic.c:908
+#: time/zic.c:945
#, 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"
-#: time/zic.c:916
+#: time/zic.c:953
#, 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"
-#: time/zic.c:721
+#: time/zic.c:758
#, c-format
msgid "%s in ruleless zone"
msgstr "%s en una zona sin reglas"
@@ -115,7 +78,7 @@ msgstr "%s%s%s:%u: %s%sLa declaraci�n `%s' no se cumple.\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
+# ## ... y antes de que digas nada, a m� me encantan
# ## las pel�culas de los 50 em+
#: assert/assert-perr.c:46
#, c-format
@@ -127,54 +90,54 @@ msgstr "%s%s%s:%u: %s%sError no esperado: %s.\n"
msgid "%s%sUnknown signal %d\n"
msgstr "%s%sSe�al desconocida %d\n"
-#: sunrpc/rpc_util.c:258
-#, c-format
-msgid "%s, line %d: "
-msgstr "%s, l�nea %d: "
-
-#: time/zic.c:2035
+#: time/zic.c:2139
#, c-format
msgid "%s: %d did not sign extend correctly\n"
msgstr "%s: %d no extendi� el signo correctamente\n"
-#: time/zic.c:1339
+#: locale/programs/charmap.c:176
+#, c-format
+msgid "%s: <mb_cur_max> must be greater than <mb_cur_min>\n"
+msgstr "%s: <mb_cur_max> debe de ser m�s grande que <mb_cur_min>\n"
+
+#: time/zic.c:1430
#, c-format
msgid "%s: Can't create %s: %s\n"
msgstr "%s: No se puede crear %s: %s\n"
-#: time/zic.c:2014
+#: time/zic.c:2118
#, c-format
msgid "%s: Can't create directory %s: %s\n"
msgstr "%s; No se puede crear el directorio %s: %s\n"
# Sugerencia: hacer -> crear. sv
# Aceptada em+
-#: time/zic.c:600
+#: time/zic.c:612
#, c-format
msgid "%s: Can't link from %s to %s: %s\n"
-msgstr "%s: No se pudo crearr un enlace desde %s a %s: %s\n"
+msgstr "%s: No se pudo crear un enlace desde %s a %s: %s\n"
-#: time/zic.c:746
+#: time/zic.c:783
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: No se puede abrir %s: %s\n"
-#: time/zic.c:814
+#: time/zic.c:851
#, c-format
msgid "%s: Error closing %s: %s\n"
msgstr "%s: Error al cerrar %s: %s\n"
-#: time/zic.c:808
+#: time/zic.c:845
#, c-format
msgid "%s: Error reading %s\n"
msgstr "%s: Error al leer %s\n"
-#: time/zic.c:1404
+#: time/zic.c:1494
#, c-format
msgid "%s: Error writing %s\n"
msgstr "%s: Error al escribir %s\n"
-#: time/zdump.c:257
+#: time/zdump.c:258
#, c-format
msgid "%s: Error writing standard output "
msgstr "%s: Error al escribir en la salida est�ndar "
@@ -183,7 +146,7 @@ msgstr "%s: Error al escribir en la salida est�ndar "
#
# dir�a que la porci�n "de a�os bisiestos" sobra. sv
#
-# Mejor dejarlo bien clarito. Despues de haberme enterado de
+# Mejor dejarlo bien clarito. Despues de haberme enterado de
# qu� diablos era eso ;)
#
# En ning�n sitio dice que la l�nea de ajuste sea "de a�os bisiestos"
@@ -197,55 +160,55 @@ msgstr "%s: Error al escribir en la salida est�ndar "
# Otra cosa: "en un archivo que no es el de" -> "en un archivo 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 itercalares' o 'segundos bisiestos'
-# el ajuste en s� es un ajuste de a�os bisiestos ( no son ex�ctamente
+# el ajuste en s� es un ajuste de a�os bisiestos ( no son ex�ctamente
# 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, archivo 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
+# la mala suerte de que me aparezca, me acoxonar�a, tal y como est�
+# redactado
# Segundo, seg�n he visto en la documentaci�n , solo existe un fichero
-# de leap lines , por eso pongo 'el'... em+
+# de leap lines , por eso pongo 'el'... em+
#
-#: time/zic.c:793
+#: time/zic.c:830
#, c-format
msgid "%s: Leap line in non leap seconds file %s\n"
msgstr ""
"%s: L�nea de segundos intercalares en un archivo que no es el de\n"
"ajuste de a�os bisiestos %s\n"
-#: time/zic.c:360
+#: time/zic.c:362
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: Memoria agotada: %s\n"
# Sugerencia: se especific� -> se ha especificado. sv
# Aceptada em+
-#: time/zic.c:515
+#: time/zic.c:527
#, 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"
# Lo mismo. sv
# idem em+
-#: time/zic.c:475
+#: time/zic.c:487
#, 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"
# Lo mismo. sv
# jo em+
-#: time/zic.c:485
+#: time/zic.c:497
#, 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"
# Lo mismo. sv
# cachi en la mar em+
-#: time/zic.c:495
+#: time/zic.c:507
#, 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"
@@ -253,94 +216,101 @@ msgstr "%s: La opci�n -p se ha especificado m�s de una vez\n"
# Lo mismo. sv
# ahora mismo hago un search-replace em+
# solo quedaba este ;(
-#: time/zic.c:505
+#: time/zic.c:517
#, c-format
msgid "%s: More than one -y option specified\n"
-msgstr "%s: La opci�n -y se ha especidicado m�s de una vez\n"
+msgstr "%s: La opci�n -y se ha especificado m�s de una vez\n"
-# ## FUZZY. Este te dejo que se lo quites t�. sv
-# :) em+
-#: posix/getconf.c:149
-msgid "%s: Unrecognized variable `%s'\n"
-msgstr "%s: Variable desconocida `%s'\n"
-
-#: time/zic.c:1741
+#: time/zic.c:1845
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: la orden fue '%s', el resultado fue %d\n"
-#: posix/getopt.c:686
+# FUZZY
+# � Se le ocurre a alguien algo ? em+
+#: locale/programs/charmap.c:593 locale/programs/locfile.c:878
+#, c-format
+msgid "%s: error in state machine"
+msgstr "%s: error en la m�quina de estado"
+
+#: posix/getopt.c:687
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: opci�n no permitida -- %c\n"
# �Qu� tiene de malo "inv�lida"? sv
-# Jope, y que tiene de malo no v�lida ?
+# Jope, y que 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+
-#: posix/getopt.c:689
+#: posix/getopt.c:690
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: opci�n no v�lida -- %c\n"
# ## he cambiado esto de acuerdo con gettext y diffutils. sv
-#: posix/getopt.c:610
+#: posix/getopt.c:611
#, 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"
-#: posix/getopt.c:581
+#: posix/getopt.c:582
#, c-format
msgid "%s: option `%s' is ambiguous\n"
msgstr "%s: la opci�n `%s' es ambigua\n"
-#: posix/getopt.c:627
+#: posix/getopt.c:628 posix/getopt.c:801
#, c-format
msgid "%s: option `%s' requires an argument\n"
msgstr "%s: la opci�n `%s' requiere un argumento\n"
# ## lo mismo de antes. sv
-#: posix/getopt.c:605
+#: posix/getopt.c:606
#, c-format
msgid "%s: option `--%s' doesn't allow an argument\n"
msgstr "%s: la opci�n `--%s' no admite ning�n argumento\n"
-#: posix/getopt.c:725
+# ## lo mismo de antes. sv
+#: posix/getopt.c:786
#, c-format
-msgid "%s: option requires an argument -- %c\n"
-msgstr "%s: la opci�n requiere un argumento --%c\n"
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: la opci�n `-W %s' no admite ning�n argumento\n"
-#: sunrpc/rpc_main.c:146
+#: posix/getopt.c:767
#, c-format
-msgid "%s: output would overwrite %s\n"
-msgstr "%s: la salida sobreescribir�a %s\n"
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: la opci�n `-W %s' es ambigua\n"
+
+#: posix/getopt.c:721 posix/getopt.c:850
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: la opci�n requiere un argumento --%c\n"
# ## posibles traducciones de l_value: l_valor � valor_l.
# ## posiblemente la segunda aparezca en el K & R en espa�ol. sv
-#: time/zic.c:800 zic.c:1212 zic.c:1232
+#: time/zic.c:837 time/zic.c:1248 time/zic.c:1268
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: grave: valor_l no v�lido %d\n"
-#: sunrpc/rpc_main.c:152
+#: locale/programs/charmap.c:600
#, c-format
-msgid "%s: unable to open "
-msgstr "%s: no se pudo abrir "
+msgid "%s: premature end of file"
+msgstr "%s: fin de fichero no esperado"
-#: posix/getopt.c:660
+#: posix/getopt.c:661
#, c-format
msgid "%s: unrecognized option `%c%s'\n"
msgstr "%s: opci�n desconocida `%c%s'\n"
-#: posix/getopt.c:656
+#: posix/getopt.c:657
#, c-format
msgid "%s: unrecognized option `--%s'\n"
msgstr "%s: opci�n desconocida `--%s'\n"
# ## A�ado unos espacios donde dec�a "archivo ... " sv
-#: time/zic.c:432
+#: time/zic.c:446
#, c-format
msgid ""
"%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] [ -d "
@@ -349,8 +319,8 @@ msgid ""
msgstr ""
"%s: el modo de empleo es %s [ -s ] [ -v ] [ -l hora_local ] [ -p reglasposix "
"]\n"
-"\t[ -d directorio ] [ -L segundos_intercalares ] [ -y tipoa�o ] [ "
-"archivo ... ]\n"
+" [ -d directorio ] [ -L segundos_intercalares ] [ -y tipoa�o ] [ archivo ... "
+"]\n"
#: time/zdump.c:165
#, c-format
@@ -369,34 +339,37 @@ msgstr "(error de autentificaci�n desconocido - %d)"
# de todas maneras queda pendiente de revisar con la versi�n alemana
# no quites el fuzzy em+
#: sunrpc/rpcinfo.c:555
-#, fuzzy
msgid "(unknown)"
msgstr "(se�al desconocida)"
-#: catgets/gencat.c:242
+#: catgets/gencat.c:253
msgid "*standard input*"
msgstr "*entrada est�ndar*"
+#: stdio-common/../sysdeps/gnu/errlist.c:766
+msgid ".lib section in a.out corrupted"
+msgstr "la secci�n .lib en el a.out est� corrompida"
+
# Sugerencia: A�adir (fstat) despu�s de informaci�n. sv
-#: inet/rcmd.c:325
+#: inet/rcmd.c:328
msgid ".rhosts fstat failed"
msgstr "No se pudo obtener informaci�n (fstat) del archivo .rhosts"
# Lo mismo con lstat. sv
-#: inet/rcmd.c:321
+#: inet/rcmd.c:324
msgid ".rhosts lstat failed"
msgstr "No se pudo obtener informaci�n (lstat) del archivo .rhosts"
# lo de regular no me gusta, pero ?
-#: inet/rcmd.c:323
+#: inet/rcmd.c:326
msgid ".rhosts not regular file"
msgstr ".rhosts no es un archivo regular"
-#: inet/rcmd.c:329
+#: inet/rcmd.c:332
msgid ".rhosts writeable by other than owner"
msgstr ".rhosts puede ser modificado por otros adem�s del propietario"
-#: clnt_perr.c:133 sunrpc/clnt_perr.c:112
+#: sunrpc/clnt_perr.c:112 sunrpc/clnt_perr.c:133
#, c-format
msgid "; low version = %lu, high version = %lu"
msgstr "; versi�n menor = %lu, versi�n mayor = %lu"
@@ -405,38 +378,89 @@ msgstr "; versi�n menor = %lu, versi�n mayor = %lu"
msgid "; why = "
msgstr "; causa ="
+#: locale/programs/ld-ctype.c:326
+#, c-format
+msgid "<SP> character must not be in class `%s'"
+msgstr "El car�cter <SP> no debe de estar en la clase '%s'"
+
+#: locale/programs/ld-ctype.c:317
+#, c-format
+msgid "<SP> character not in class `%s'"
+msgstr "El car�cter <SP> no est� en la clase `%s'"
+
# ## �? ATENCI�N.
# ## Informar de esto a Ulrich Drepper. Debe haber en alg�n lugar
# ## una cadena que permita "�".
# ## Solucionado: Con suerte desaparecer� en la pr�xima versi�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:591
msgid "?"
msgstr "?"
+#: stdio-common/../sysdeps/gnu/errlist.c:762
+msgid "Accessing a corrupted shared library"
+msgstr "Accediendo a una biblioteca compartida que est� corrompida"
+
+#. TRANS The requested socket address is already in use. @xref{Socket Addresses}.
+#: stdio-common/../sysdeps/gnu/errlist.c:354
msgid "Address already in use"
msgstr "La direcci�n ya se est� usando"
-msgid "Address family not supported by protocol family"
+#. 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:349
+msgid "Address family not supported by protocol"
msgstr "Esta familia de direcciones no est� soportada por el protocolo"
+# FUZZY
+# Lo dejo fuzzy aposta, a ver que se os ocurre em+
+#: stdio-common/../sysdeps/gnu/errlist.c:714
+msgid "Advertise error"
+msgstr "Error de advertencia"
+
msgid "Alarm clock"
msgstr "Temporizador"
+#. 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:57
msgid "Argument list too long"
msgstr "La lista de argumentos es demasiado larga"
+#: stdio-common/../sysdeps/gnu/errlist.c:770
+msgid "Attempting to link in too many shared libraries"
+msgstr "Se intenta enlazar en demasiadas librer�as compartidas"
+
#: sunrpc/clnt_perr.c:276
msgid "Authentication OK"
msgstr "Autentificaci�n v�lida"
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:549
msgid "Authentication error"
msgstr "Error de autentificaci�n"
+#. 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:102
msgid "Bad address"
msgstr "Direcci�n incorrecta"
+#. 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:70
msgid "Bad file descriptor"
msgstr "Descriptor de archivo err�neo"
+#: stdio-common/../sysdeps/gnu/errlist.c:682
+msgid "Bad font file format"
+msgstr "Formato de fichero fuente incorrecto"
+
# ## Ya estamos ...
# � Dispositivo de bloques ? , � c�mo se le puede llamar a esto ?
# ## al principio puse , 'se precisa de' pero me son� mal
@@ -447,6 +471,10 @@ msgstr "Descriptor de archivo err�neo"
# Dispositivos de bloques y dispositivos de caracteres.
# Supongo que as� se llamar�n en espa�ol. sv
# yo los llamo as�, desde luego em+
+#. 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:109
msgid "Block device required"
msgstr "Se requiere un dispositivo de bloques"
@@ -458,12 +486,18 @@ msgstr "Se requiere un dispositivo de bloques"
# Sugerencia: `broadcast'. sv
# Creo que este mensaje est� mal traducido ...
# habr� que echar mano a las fuentes em+
-#: sunrpc/pmap_rmt.c:336
+#: sunrpc/pmap_rmt.c:337
msgid "Broadcast select problem"
-msgstr "Problema en la selecci�n del broadcast"
+msgstr "Problema en la selecci�n del `broadcast'"
# 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
+#. TRANS Broken pipe; there is no process reading from the other end of a pipe.
+#. TRANS Every library function that returns this error code also generates a
+#. TRANS @code{SIGPIPE} signal; this signal terminates the program if not handled
+#. TRANS or blocked. Thus, your program will never actually see @code{EPIPE}
+#. TRANS unless it has handled or blocked @code{SIGPIPE}.
+#: stdio-common/../sysdeps/gnu/errlist.c:222
msgid "Broken pipe"
msgstr "Tuber�a (pipe) rota"
@@ -473,48 +507,69 @@ msgstr "Error del bus"
msgid "CPU time limit exceeded"
msgstr "Rebasado el l�mite de tiempo de CPU"
-msgid "Can't assign requested address"
-msgstr "No se puede asignar la direcci�n solicitada"
-
-msgid "Can't send after socket shutdown"
-msgstr "No se puede enviar tras la destrucci�n del `socket'"
+#: stdio-common/../sysdeps/gnu/errlist.c:758
+msgid "Can not access a needed shared library"
+msgstr "No se puede acceder a una librer�a compartida que se necesita"
+#. TRANS No memory available. The system cannot allocate more virtual memory
+#. TRANS because its capacity is full.
+#: stdio-common/../sysdeps/gnu/errlist.c:91
msgid "Cannot allocate memory"
msgstr "No se pudo asignar memoria"
+#. 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:361
+msgid "Cannot assign requested address"
+msgstr "No se puede asignar la direcci�n solicitada"
+
# He intentado mejorarlo un poco ...
#
# Por favor, pon `broadcast' en lugar de broadcast.
# Si vamos a usar t�rminos ingleses a lo bestia, reconozcamos al menos que
# no son t�rminos espa�oles. sv
-#: sunrpc/pmap_rmt.c:254
+#: sunrpc/pmap_rmt.c:255
msgid "Cannot create socket for broadcast rpc"
msgstr "No se puede crear `socket' para enviar un mensaje `broadcast' del rpc"
+#: stdio-common/../sysdeps/gnu/errlist.c:774
+msgid "Cannot exec a shared library directly"
+msgstr "No se puede ejecutar una librer�a compartida directamente"
+
# ???
# �Qu� tal "... recibir la respuesta al `broadcast'"?
# Mucho mejor em+
-#: sunrpc/pmap_rmt.c:348
+#: sunrpc/pmap_rmt.c:349
msgid "Cannot receive reply to broadcast"
-msgstr "No se puede recibir respuesta al `broadcast'"
+msgstr "No se puede recibir la respuesta al `broadcast'"
#: sunrpc/pmap_clnt.c:79
msgid "Cannot register service"
msgstr "No se pudo registrar el servicio"
+#. TRANS The socket has already been shut down.
+#: stdio-common/../sysdeps/gnu/errlist.c:422
+msgid "Cannot send after transport endpoint shutdown"
+msgstr "No se puede enviar tras la destrucci�n del punto de destino"
+
# ???
# En todo caso. mandar -> enviar. sv
-#: sunrpc/pmap_rmt.c:312
+#: sunrpc/pmap_rmt.c:313
msgid "Cannot send broadcast packet"
msgstr "No se pudo enviar el mensaje `broadcast'"
# ## �Y qu� te parecer�a cambiar el orden? As�:
# ## "No se pudo especificar la opci�n SO_BROADCAST para el `socket'" sv
# ## Gracias.
-#: sunrpc/pmap_rmt.c:260
+#: sunrpc/pmap_rmt.c:261
msgid "Cannot set socket option SO_BROADCAST"
msgstr "No se pudo especificar la opci�n SO_BROADCAST para el `socket'"
+#: stdio-common/../sysdeps/gnu/errlist.c:622
+msgid "Channel number out of range"
+msgstr "N�mero de canal fuera de rango"
+
msgid "Child exited"
msgstr "El proceso hijo termin�"
@@ -522,39 +577,109 @@ msgstr "El proceso hijo termin�"
msgid "Client credential too weak"
msgstr "Las credenciales del cliente son poco fiables"
+#: stdio-common/../sysdeps/gnu/errlist.c:722
+msgid "Communication error on send"
+msgstr "Error de comunicaci�n al enviar"
+
# � 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 asi. em
+#. TRANS Go home and have a glass of warm, dairy-fresh milk.
+#: stdio-common/../sysdeps/gnu/errlist.c:601
msgid "Computer bought the farm"
-msgstr "El ordenador ha comprado la granja"
+msgstr "El ordenador ha comprado una granja"
+
+#: locale/programs/ld-ctype.c:1197
+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+
+#: locale/programs/ld-collate.c:327
+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 ..."
+#. 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:439
msgid "Connection refused"
msgstr "Conexi�n rehusada"
# Se aceptan sugerencias alternativas para "peer"
+#. 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:389
msgid "Connection reset by peer"
msgstr "Conexi�n reinicializada por la m�quina remota"
+#. TRANS A socket operation with a specified timeout received no response during
+#. TRANS the timeout period.
+#: stdio-common/../sysdeps/gnu/errlist.c:433
msgid "Connection timed out"
msgstr "Expir� el tiempo de conexi�n"
msgid "Continued"
msgstr "Contin�a"
+#: catgets/gencat.c:169 db/makedb.c:120 locale/programs/locale.c:187
+#: locale/programs/localedef.c:177
+#, 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"
+"Este es software de libre distribuci�n; vea las fuentes para ver las\n"
+"condiciones de duplicado. No existe NINGUNA garant�a; tampoco incluso para\n"
+"su COMERCIABILIDAD o ADECUACI�N para alg�n prop�sito en particular.\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:417
msgid "Destination address required"
msgstr "Se debe especificar la direcci�n de destino"
-msgid "Device busy"
-msgstr "Dispositivo ocupado"
-
+# FUZZY
+#: stdio-common/../sysdeps/gnu/errlist.c:686
+msgid "Device not a stream"
+msgstr "El dispositivo no es un `stream'"
+
+#. 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:49
msgid "Device not configured"
msgstr "Dispositivo no configurado"
+#. 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:116
+msgid "Device or resource busy"
+msgstr "Dispositivo o recurso ocupado"
+
+#. 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:468
msgid "Directory not empty"
msgstr "El directorio no est� vacio"
+#. TRANS The user's disk quota was exceeded.
+#: stdio-common/../sysdeps/gnu/errlist.c:486
msgid "Disc quota exceeded"
msgstr "Se ha excedido la cuota de disco"
@@ -567,27 +692,59 @@ msgstr "Error %d"
msgid "Error in unknown error system: "
msgstr "Error de sistema desconocido: "
+#: inet/ruserpass.c:161
+msgid "Error: .netrc file is readable by others."
+msgstr "Error: el fichero .netrc es leible por otros usuarios."
+
+# FUZZY em+
+#: stdio-common/../sysdeps/gnu/errlist.c:662
+msgid "Exchange full"
+msgstr "Intercambio lleno"
+
+#. 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:63
msgid "Exec format error"
msgstr "Formato de ejecutable incorrecto"
+#: locale/programs/localedef.c:213
+msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
+msgstr "Error fatal: el sistema no define `_POSIX2_LOCALEDEF'"
+
#: sunrpc/clnt_perr.c:290
msgid "Failed (unspecified error)"
msgstr "Fall� (error no especificado)"
+#: stdio-common/../sysdeps/gnu/errlist.c:750
+msgid "File descriptor in bad state"
+msgstr "El descriptor de archivo est� en mal estado"
+
+#. 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:122
msgid "File exists"
msgstr "El archivo existe"
+# FUZZY em+
+#: stdio-common/../sysdeps/gnu/errlist.c:678
+msgid "File locking deadlock error"
+msgstr "error `deadlock' al bloquear el archivo"
+
+#. 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:452
msgid "File name too long"
msgstr "Nombre de archivo demasiado largo"
msgid "File size limit exceeded"
msgstr "Superado el l�mite de tama�o de archivo"
+#. TRANS File too big; the size of a file would be larger than allowed by the system.
+#: stdio-common/../sysdeps/gnu/errlist.c:190
msgid "File too large"
msgstr "Archivo demasiado grande"
-# ## ???
-# ## Con permiso, le pongo doble almohadilla. sv
msgid "Floating point exception"
msgstr "Excepci�n de coma flotante"
@@ -600,9 +757,24 @@ msgstr "Excepci�n de coma flotante"
# funciona no tienes a quien quejarte.
# En cambio no implementada es que no est� implementada. sv
# Ok, me has convencido em
+# �No existe en espa�ol "implementar"? sv
+# � Crees que es tan importante ? em
+# No, pero si el autor hubiera querido decir soportada, podr�a haber puesto
+# "supported". por eso creo que lo l�gico ser�a:
+# supported -> soportada e implemented -> implementada.
+# "no soportado" tiene el matiz de que puede estar implementado pero si no
+# funciona no tienes a quien quejarte.
+# En cambio no implementada es que no est� implementada. sv
+# Ok, me has convencido em
+#. TRANS Function not implemented. Some functions have commands or options defined
+#. TRANS that might not be supported in all implementations, and this is the kind
+#. TRANS of error you get if you request them and they are not supported.
+#: stdio-common/../sysdeps/gnu/errlist.c:561
msgid "Function not implemented"
msgstr "Funci�n no implementada"
+#. TRANS This error code has no purpose.
+#: stdio-common/../sysdeps/gnu/errlist.c:606
msgid "Gratuitous error"
msgstr "Error injustificado"
@@ -632,12 +804,14 @@ msgstr "Colgar ( hangup )"
#
# A esto no me has contestado todav�a. sv
#
-# Ni te lo voy a contestar, habr� que aceptar que el espa�ol
+# Ni te lo voy a contestar, habr� que aceptar que el espa�ol
# sigue Enrique-ciendose con nuevas palabras em+
+#. TRANS The remote host for a requested network connection is down.
+#: stdio-common/../sysdeps/gnu/errlist.c:457
msgid "Host is down"
msgstr "El host no est� operativo"
-#: resolv/herror.c:74
+#: resolv/herror.c:75
msgid "Host name lookup failure"
msgstr "Nombre de host no encontrado"
@@ -649,6 +823,10 @@ msgstr "Operaci�n de entrada/salida permitida"
msgid "IOT trap"
msgstr "`trap' de IOT"
+#: stdio-common/../sysdeps/gnu/errlist.c:618
+msgid "Identifier removed"
+msgstr "El identificador se ha eliminado"
+
# Se trata de una instrucci�n ilegal en el juego de instrucciones del 486
# que provoca una "excepci�n".
msgid "Illegal Instruction"
@@ -657,12 +835,23 @@ msgstr "Instrucci�n ilegal"
# �"seek" no era "desplazamiento"? sv
# Seg�n el contexto no se puede saber a que se refiere
# cambio ... por no permitida em+
+#. TRANS Invalid seek operation (such as on a pipe).
+#: stdio-common/../sysdeps/gnu/errlist.c:201
msgid "Illegal seek"
msgstr "B�squeda no permitida"
+#. 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:544
msgid "Inappropriate file type or format"
msgstr "Formato o tipo de archivo no apropiado"
+#. TRANS Inappropriate I/O control operation, such as trying to set terminal
+#. TRANS modes on an ordinary file.
+#: stdio-common/../sysdeps/gnu/errlist.c:176
msgid "Inappropriate ioctl for device"
msgstr "Funci�n ioctl no apropiada para el dispositivo"
@@ -679,18 +868,43 @@ msgstr "Funci�n ioctl no apropiada para el dispositivo"
#
# 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:577
msgid "Inappropriate operation for background process"
msgstr "Operaci�n no v�lida para un proceso en segundo plano"
+#. TRANS Input/output error; usually used for physical read or write errors.
+#: stdio-common/../sysdeps/gnu/errlist.c:40
msgid "Input/output error"
msgstr "Error de entrada/salida"
msgid "Interrupt"
msgstr "Interrupci�n"
+#. TRANS Interrupted function call; an asynchronous signal occured 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:35
msgid "Interrupted system call"
msgstr "Llamada al sistema interrumpida"
+# FUZZY
+#: stdio-common/../sysdeps/gnu/errlist.c:610
+msgid "Interrupted system call should be restarted"
+msgstr "La llamada al sistema interrumpida deber�a volverse a iniciar"
+
+#. 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:152
msgid "Invalid argument"
msgstr "Argumento no v�lido"
@@ -719,8 +933,22 @@ msgid "Invalid content of \\{\\}"
msgstr "Contenido de \\{\\} inv�lido"
# ??? 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:129
msgid "Invalid cross-device link"
-msgstr "Enlace de un dispositivo a otro no permitido"
+msgstr "Enlace cruzado entre dispositivos no permitido"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:654
+msgid "Invalid exchange"
+msgstr "Intercambio no v�lido"
+
+#. 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:567
+msgid "Invalid or incomplete multibyte or wide character"
+msgstr "El car�cter multibyte o extendido est� incompleto o es inv�lido"
#: posix/regex.c:953
msgid "Invalid preceding regular expression"
@@ -734,31 +962,101 @@ msgstr "Final de rango no v�lido"
msgid "Invalid regular expression"
msgstr "La expresi�n regular es err�nea"
+#: stdio-common/../sysdeps/gnu/errlist.c:670
+msgid "Invalid request code"
+msgstr "C�digo de petici�n incorrecto"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:658
+msgid "Invalid request descriptor"
+msgstr "El descriptor de archivo solicitado es err�neo"
+
#: sunrpc/clnt_perr.c:288
msgid "Invalid server verifier"
msgstr "Verificaci�n del servidor no v�lido"
+# Ranura no v�lida ? , creo que no hay traducci�n para slot :) em+
+#: stdio-common/../sysdeps/gnu/errlist.c:674
+msgid "Invalid slot"
+msgstr "`slot' incorrecto"
+
+#. 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:146
msgid "Is a directory"
msgstr "Es un directorio"
+# FUZZY em+
+# � Ser� esto un `named pipe' ? � c�mo se traduce ?
+#: stdio-common/../sysdeps/gnu/errlist.c:794
+msgid "Is a named type file"
+msgstr "Es un fichero `named'"
+
# A quien se le ocurra `matar' un proceso, que especifique con qu� se�al.
# En todo caso ` Terminado ( KILL ) ' ser�a apropiado. Ver fuentes
msgid "Killed"
msgstr "Terminado (killed)"
+#: stdio-common/../sysdeps/gnu/errlist.c:650
+msgid "Level 2 halted"
+msgstr "Nivel 2 detenido"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:626
+msgid "Level 2 not synchronized"
+msgstr "Nivel 2 no sincronizado"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:630
+msgid "Level 3 halted"
+msgstr "Nivel 3 detenido"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:634
+msgid "Level 3 reset"
+msgstr "Nivel 3 restablecido"
+
+# FUZZY em+
+# � qu� significa esto ?
+#: stdio-common/../sysdeps/gnu/errlist.c:710
+msgid "Link has been severed"
+msgstr ""
+
+#: stdio-common/../sysdeps/gnu/errlist.c:638
+msgid "Link number out of range"
+msgstr "N�mero de enlace fuera de rango"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:702
+msgid "Machine is not on the network"
+msgstr "La m�quina no est� en red"
+
#: posix/regex.c:952
msgid "Memory exhausted"
msgstr "Memoria agotada"
+#. TRANS The size of a message sent on a socket was larger than the supported
+#. TRANS maximum size.
+#: stdio-common/../sysdeps/gnu/errlist.c:305
msgid "Message too long"
msgstr "Mensaje demasiado largo"
+# FUZZY em+
+#: stdio-common/../sysdeps/gnu/errlist.c:730
+msgid "Multihop attempted"
+msgstr ""
+
+#: stdio-common/../sysdeps/gnu/errlist.c:746
+msgid "Name not unique on network"
+msgstr "El nombre no es �nico en la red"
+
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:554
msgid "Need authenticator"
msgstr "Se necesita un autentificador"
+#. TRANS A network connection was reset because the remote host crashed.
+#: stdio-common/../sysdeps/gnu/errlist.c:377
msgid "Network dropped connection on reset"
msgstr "La conexi�n de red se perdi� al reinicializar"
+#. TRANS A socket operation failed because the network was down.
+#: stdio-common/../sysdeps/gnu/errlist.c:366
msgid "Network is down"
msgstr "La red no est� activa"
@@ -769,22 +1067,67 @@ msgstr "La red no est� activa"
#
# Mira un mensaje que he puesto m�s arriba a ver si est�s de acuerdo con
# mi definici�n de "indio". sv
+#. TRANS A socket operation failed because the subnet containing the remote host
+#. TRANS was unreachable.
+#: stdio-common/../sysdeps/gnu/errlist.c:372
msgid "Network is unreachable"
msgstr "Es imposible conectar con la red"
+# FUZZY
+#: stdio-common/../sysdeps/gnu/errlist.c:646
+msgid "No CSI structure available"
+msgstr "No quedan estructuras CSI disponibles"
+
+# Ojo: �Solamente los archivos 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 archivos /dev :) em
+#
+# Lo s�, lo s�, pero: Cuando bloqueas /dev/cua3, �dices que est�s bloqueando un
+# archivo o que est�s bloqueando el m�dem, que es un dispositivo? sv
+# Decir archivos podr�a traer equ�vocos, por m�s que formalmente todos
+# lo sean. sv
+#
+# �Y qu� se te ocurre?, �poner bloquear archivos/dispositivos? em
+#
+# ( Pues mira, no estar�a mal. sv )
+# A esto no me has contestado. sv
+#
+# no quedan bloqueos me parece que no colabora a entender nada. em
+# Miro la versi�n alemana.
+# ??? � locks ? � c�mo diablos ?
+#: stdio-common/../sysdeps/gnu/errlist.c:790
+msgid "No XENIX semaphores available"
+msgstr "No quedan sem�foros XENIX disponibels"
+
# Bueno, pero entonces pon "ninguna" en vez de "una", �no? sv
-#: resolv/herror.c:76
+#: resolv/herror.c:77
msgid "No address associated with name"
msgstr "No existe una direcci�n asociada al nombre"
+# FUZZY
+# anode o catode :) , qu� diablos ? em+
+#: stdio-common/../sysdeps/gnu/errlist.c:666
+msgid "No anode"
+msgstr ""
+
# 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:396
msgid "No buffer space available"
msgstr "No queda espacio para memoria intermedia"
+#. 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:77
msgid "No child processes"
msgstr "Ning�n proceso hijo"
@@ -807,6 +1150,34 @@ msgstr "Ning�n proceso hijo"
# no quedan bloqueos me parece que no colabora a entender nada. em
# Miro la versi�n alemana.
# ??? � locks ? � c�mo diablos ?
+#: stdio-common/../sysdeps/gnu/errlist.c:690
+msgid "No data available"
+msgstr "No hay datos disponobles"
+
+# Ojo: �Solamente los archivos 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 archivos /dev :) em
+#
+# Lo s�, lo s�, pero: Cuando bloqueas /dev/cua3, �dices que est�s bloqueando un
+# archivo o que est�s bloqueando el m�dem, que es un dispositivo? sv
+# Decir archivos podr�a traer equ�vocos, por m�s que formalmente todos
+# lo sean. sv
+#
+# �Y qu� se te ocurre?, �poner bloquear archivos/dispositivos? em
+#
+# ( Pues mira, no estar�a mal. sv )
+# A esto no me has contestado. 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:535
msgid "No locks available"
msgstr "No se pueden bloquear m�s archivos"
@@ -814,14 +1185,17 @@ msgstr "No se pueden bloquear m�s archivos"
msgid "No match"
msgstr "Ninguna coincidencia"
-#: posix/regex.c:5200
+#: stdio-common/../sysdeps/gnu/errlist.c:614
+msgid "No message of desired type"
+msgstr "Ning�n mensaje del tipo deseado"
+
+#: posix/regex.c:5204
msgid "No previous regular expression"
msgstr "No existe una expresi�n regular anterior"
# No me gusta "programa rpc". El rpc deber�a sobrar por el contexto. sv
# A ver que te parece esto em+
#: sunrpc/rpcinfo.c:515
-#, fuzzy
msgid "No remote programs registered.\n"
msgstr "No existe ning�n procedimiento rpc registrado en la m�quina remota.\n"
@@ -829,12 +1203,21 @@ msgstr "No existe ning�n procedimiento rpc registrado en la m�quina remota.\n"
# Doppel verneinung , o doble negaci�n , tambien
# lo hacen en Bayern , bueno aqu� es peor, porque
# tienen la drei Fach Verneinung ( osea, tres veces ) em+
+#. TRANS The remote host for a requested network connection is not reachable.
+#: stdio-common/../sysdeps/gnu/errlist.c:462
msgid "No route to host"
msgstr "No existe ruta hasta el host"
+#. TRANS No space left on device; write operation on a file failed because the
+#. TRANS disk is full.
+#: stdio-common/../sysdeps/gnu/errlist.c:196
msgid "No space left on device"
msgstr "No queda m�s espacio en el dispositivo"
+#. 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:19
msgid "No such file or directory"
msgstr "No existe el archivo o el directorio"
@@ -845,46 +1228,118 @@ msgstr "No existe el archivo o el directorio"
# 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:24
msgid "No such process"
msgstr "No existe tal proceso"
+#: stdio-common/../sysdeps/gnu/errlist.c:786
+msgid "Not a XENIX named type file"
+msgstr "No es un fichero XENIX del tipo `named'"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:738
+msgid "Not a data message"
+msgstr "No es un mensaje de datos"
+
+#. TRANS A file that isn't a directory was specified when a directory is required.
+#: stdio-common/../sysdeps/gnu/errlist.c:140
msgid "Not a directory"
msgstr "No es un directorio"
# fuentes
# Sugerencia: Argumento num�rico. sv
-#
+#
+#. 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:228
msgid "Numerical argument out of domain"
msgstr "Argumento num�rico fuera del dominio de la funci�n"
+#. TRANS Range error; used by mathematical functions when the result value is
+#. TRANS not representable because of overflow or underflow.
+#: stdio-common/../sysdeps/gnu/errlist.c:234
msgid "Numerical result out of range"
msgstr "Resultado num�rico fuera de rango"
-#: time/zic.c:1835
+#. 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:502
+msgid "Object is remote"
+msgstr "El objeto es remoto"
+
+#: time/zic.c:1939
msgid "Odd number of quotation marks"
msgstr "N�mero impar de comillas"
# 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:294
msgid "Operation already in progress"
msgstr "La operaci�n ya se est� llevando a cabo"
# No te pases. Aqu� se podr�a poner
# "Operaci�n no permitida" y no quedar�a mal. sv
# em+
+#. 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:12
msgid "Operation not permitted"
msgstr "Pperaci�n no permitida"
+#. 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:338
msgid "Operation not supported"
msgstr "La operaci�n no est� soportada"
+#. 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:135
msgid "Operation not supported by device"
msgstr "La operaci�n no est� soportada por el dispositivo"
+#. 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:288
msgid "Operation now in progress"
msgstr "Operaci�n en curso"
+#. 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:276
+msgid "Operation would block"
+msgstr "La operaci�n se bloquear�a"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:698
+msgid "Out of streams resources"
+msgstr "Alcanzado el l�mite de recursos de `streams'"
+
+# FUZZY
+# aqu� va a haber co�a em+
+#: stdio-common/../sysdeps/gnu/errlist.c:706
+msgid "Package not installed"
+msgstr "El paquete no est� instalado"
+
+#. TRANS Permission denied; the file permissions do not allow the attempted operation.
+#: stdio-common/../sysdeps/gnu/errlist.c:96
msgid "Permission denied"
msgstr "Permiso denegado"
@@ -908,36 +1363,70 @@ msgstr "Fin no esperado de la expresi�n regular"
msgid "Profiling timer expired"
msgstr "El tiempo de CPU expir�"
+#: stdio-common/../sysdeps/gnu/errlist.c:642
+msgid "Protocol driver not attached"
+msgstr "Protocolo no disponible"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:726
+msgid "Protocol error"
+msgstr "error de protocolo"
+
+#. TRANS The socket communications protocol family you requested is not supported.
+#: stdio-common/../sysdeps/gnu/errlist.c:343
msgid "Protocol family not supported"
msgstr "Familia de protocolos no soportada"
+#. 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:316
msgid "Protocol not available"
msgstr "Protocolo no disponible"
+#. 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:323
msgid "Protocol not supported"
msgstr "Protocolo no soportado"
+#. TRANS The socket type does not support the requested communications protocol.
+#: stdio-common/../sysdeps/gnu/errlist.c:310
msgid "Protocol wrong type for socket"
msgstr "Tipo de protocolo incorrecto para el `socket'"
msgid "Quit"
msgstr "Abandona"
+# FUZZY
+#: stdio-common/../sysdeps/gnu/errlist.c:734
+msgid "RFS specific error"
+msgstr "error espec�fico de RFS"
+
# qu� horror
# Pues mira, quiz� a�adiendo dos puntos despu�s del RPC mejorar�a algo:
# "RPC: procedimiento err�neo..." sv
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:527
msgid "RPC bad procedure for program"
msgstr "RPC: procedimiento err�neo para el programa"
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:517
msgid "RPC program not available"
msgstr "Programa RPC no disponible"
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:522
msgid "RPC program version wrong"
msgstr "Versi�n del programa RPC incorrecta"
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:507
msgid "RPC struct is bad"
msgstr "la estructura RPC es incorrecta"
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:512
msgid "RPC version wrong"
msgstr "versi�n de RPC incorrecta"
@@ -984,8 +1473,8 @@ msgstr "RPC: Fallo del mapeador de puertos"
# 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:
@@ -1046,6 +1535,8 @@ msgstr "RPC: Host desconocido"
msgid "RPC: Unknown protocol"
msgstr "RPC: Protocolo desconocido"
+#. TRANS An attempt was made to modify something on a read-only file system.
+#: stdio-common/../sysdeps/gnu/errlist.c:206
msgid "Read-only file system"
msgstr "Sistema de archivos de s�lo lectura"
@@ -1053,77 +1544,75 @@ msgstr "Sistema de archivos de s�lo lectura"
msgid "Regular expression too big"
msgstr "La expresi�n regular es demasiado grande"
-msgid "Reserved error 82"
-msgstr "Error reservado 82"
-
-msgid "Reserved error 83"
-msgstr "Error reservado 83"
-
-msgid "Reserved error 84"
-msgstr "Error reservado 84"
-
-msgid "Reserved error 85"
-msgstr "Error reservado 85"
-
-msgid "Reserved error 86"
-msgstr "Error reservado 86"
-
-msgid "Reserved error 87"
-msgstr "Error reservado 87"
-
-msgid "Reserved error 88"
-msgstr "Error reservado 88"
-
-msgid "Reserved error 89"
-msgstr "Error reservado 89"
-
-msgid "Reserved error 90"
-msgstr "Error reservado 90"
-
-msgid "Reserved error 91"
-msgstr "Error reservado 91"
-
-msgid "Reserved error 92"
-msgstr "Error reservado 92"
-
-msgid "Reserved error 93"
-msgstr "Error reservado 93"
-
-msgid "Reserved error 94"
-msgstr "Error reservado 94"
-
-msgid "Reserved error 95"
-msgstr "Error reservado 95"
+#: stdio-common/../sysdeps/gnu/errlist.c:798
+msgid "Remote I/O error"
+msgstr "Error de entrada/salida en la m�quina remota"
-msgid "Reserved error 96"
-msgstr "Error reservado 96"
+#: stdio-common/../sysdeps/gnu/errlist.c:754
+msgid "Remote address changed"
+msgstr "La direcci�n remota ha cambiado"
-msgid "Reserved error 97"
-msgstr "Error reservado 97"
+#: inet/ruserpass.c:162
+msgid "Remove password or make file unreadable by others."
+msgstr "El password remoto o archivo make no es leible por los dem�s"
-msgid "Reserved error 98"
-msgstr "Error reservado 98"
-
-msgid "Reserved error 99"
-msgstr "Error reservado 99"
+#: catgets/gencat.c:224 db/makedb.c:227 locale/programs/locale.c:257
+#: locale/programs/localedef.c:408
+msgid "Report bugs to <bug-glibc@prep.ai.mit.edu>.\n"
+msgstr "Informe de bugs a <bug-glibc@prep.ai.mit.edu>.\n"
# ??? resolvedor , determinador , investigador , solucionador ?
# Me suena que quiz� exista resolvedor. Habr�a que enterarse. sv
-#: resolv/herror.c:72
+#: resolv/herror.c:73
msgid "Resolver Error 0 (no error)"
msgstr "Error del determinador de nombres 0 (ning�n error)"
# ??? lo mismo que arriba
-#: resolv/herror.c:114
+#: resolv/herror.c:115
msgid "Resolver internal error"
msgstr "Error interno del determinador de nombres"
# � Sugerencias ? em
# �Evitado? sv
# Esperemos a ver la opini�n de otro. em
+#. 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:85
msgid "Resource deadlock avoided"
msgstr "Esquivado el bloqueo para el recurso"
+#. 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 older Unix many 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:267
msgid "Resource temporarily unavailable"
msgstr "Recurso no disponible temporalmente"
@@ -1146,21 +1635,25 @@ msgstr "El servidor rechaz� la credencial"
msgid "Server rejected verifier"
msgstr "El servidor rechaz� el verificador"
-msgid "Socket is already connected"
-msgstr "El `socket' ya est� activo"
-
-msgid "Socket is not connected"
-msgstr "El `socket' no est� activo"
-
+#. TRANS A file that isn't a socket was specified when a socket is required.
+#: stdio-common/../sysdeps/gnu/errlist.c:299
msgid "Socket operation on non-socket"
msgstr "Operaci�n de `socket' en un `no-socket'"
+#. TRANS The socket type is not supported.
+#: stdio-common/../sysdeps/gnu/errlist.c:328
msgid "Socket type not supported"
msgstr "Tipo de `socket' no soportado"
+#. TRANS A network connection was aborted locally.
+#: stdio-common/../sysdeps/gnu/errlist.c:382
msgid "Software caused connection abort"
msgstr "El programa provoc� el fin de la conexi�n"
+#: stdio-common/../sysdeps/gnu/errlist.c:718
+msgid "Srmount error"
+msgstr "Error de `srmount'"
+
# ?? sugerencias ?
# Habr� que traducir el "handle" de alguna forma... sv
# No veo porqu�. em
@@ -1170,6 +1663,11 @@ msgstr "El programa provoc� el fin de la conexi�n"
# en vez de file descriptor, debe de ser porque nos referimos a archivos
# compartidos con NFS. Al igual que no se bloquean, sino que se stalan :)
#
+#. 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:494
msgid "Stale NFS file handle"
msgstr "Archivo NFS bloqueado"
@@ -1190,47 +1688,89 @@ msgstr "Parado (requiere entrada de terminal)"
msgid "Stopped (tty output)"
msgstr "Parado (requiere salida por terminal)"
+# FUZZY FUZZY
+# Esto no hay quien lo traduzca ! em+
+#: stdio-common/../sysdeps/gnu/errlist.c:778
+msgid "Streams pipe error"
+msgstr "Error en de Tuber�a de streams"
+
+# FUZZY
+# O me cojo otras traducciones o ando perdido em+
+#: stdio-common/../sysdeps/gnu/errlist.c:782
+msgid "Structure needs cleaning"
+msgstr "La estructura necesita una limpieza"
+
# "�conseguido!" me recuerda a los "sketches" de Faemimo y Cansado...
# me gustar�a que hubiera otra palabra mejor. SV
# Siempre me han gustado F&C ;-)
# A m� tambi�n :-) sv
-#: posix/regex.c:940
+#: posix/regex.c:940 stdio-common/../sysdeps/gnu/errlist.c:7
msgid "Success"
msgstr "Conseguido"
msgid "Terminated"
msgstr "Terminado"
+#. 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:185
msgid "Text file busy"
msgstr "El archivo de texto est� ocupado"
-# 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'"
+#: stdio-common/../sysdeps/gnu/errlist.c:694
+msgid "Timer expired"
+msgstr "El temporizador lleg� al final"
+#. 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:445
msgid "Too many levels of symbolic links"
msgstr "Demasiados niveles de enlaces simb�licos"
+#. 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:213
msgid "Too many links"
msgstr "Demasiados enlaces (links)"
+#. 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:163
msgid "Too many open files"
msgstr "Demasiados archivos abiertos"
+#. 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:170
msgid "Too many open files in system"
msgstr "Demasiados archivos abiertos en el sistema"
+#. 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:475
msgid "Too many processes"
msgstr "Demasiados procesos"
-# No se me ocurre traducir splice , bueno , es que no s� lo que es
-# Esperemos que alguien m�s lo vea. <ver>
-msgid "Too many references: can't splice"
-msgstr "Demasiadas llamadas indirectas:"
+# FUZZY
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:427
+msgid "Too many references: cannot splice"
+msgstr "Demasiadas referencias: no se pueden solapar"
+#. 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:481
msgid "Too many users"
msgstr "Demasiados usuarios"
@@ -1248,36 +1788,61 @@ msgstr "Barra invertida extra al final `\\'"
# Tengo que mirar los fuentes, de esto y de muchas otras cosas
# todo esta en mi disco duro en mi ordenador roto. em
#
+#. 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:584
msgid "Translator died"
msgstr "Muri� el traductor"
+#. TRANS You tried to connect a socket that is already connected.
+#. TRANS @xref{Connecting}.
+#: stdio-common/../sysdeps/gnu/errlist.c:402
+msgid "Transport endpoint is already connected"
+msgstr "El otro extremo ya est� conectado"
+
+#. 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:410
+msgid "Transport endpoint is not connected"
+msgstr "El otro extremo de la conexi�n no est� conectado"
+
# ## Siguiendo los est�ndares de Spanish-GNU, he cambiado Intente por Pruebe.
# ## Y si me dices que no, tengo ya a casi todo el equipo convencido :-) sv
-#: catgets/gencat.c:201
+#: catgets/gencat.c:208 db/makedb.c:209 locale/programs/locale.c:241
+#: locale/programs/localedef.c:389
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Pruebe `%s --help' para m�s informaci�n.\n"
# ## Sin embargo este no tiene nada que ver con el anterior. sv
-#: inet/rcmd.c:118
+#: inet/rcmd.c:121
#, c-format
msgid "Trying %s...\n"
msgstr "Intentando %s...\n"
-#: ../sysdeps/mach/_strerror.c:58 string/../sysdeps/generic/_strerror.c:36
+#: inet/ruserpass.c:246
+#, c-format
+msgid "Unknown .netrc keyword %s"
+msgstr "palabra clave desconocida en .netrc %s"
+
+#: string/../sysdeps/generic/_strerror.c:36
+#: string/../sysdeps/mach/_strerror.c:58
msgid "Unknown error "
msgstr "Error desconocido "
# En el libro de Infov�a traducen host por "anfitri�n"
-#: resolv/herror.c:73
+#: resolv/herror.c:74
msgid "Unknown host"
msgstr "Host desconocido"
-#: resolv/herror.c:117
+#: resolv/herror.c:118
msgid "Unknown resolver error"
msgstr "Error del determinador de nombres desconocido"
-#: resolv/herror.c:75
+#: resolv/herror.c:76
msgid "Unknown server error"
msgstr "Error del servidor desconocido"
@@ -1286,7 +1851,7 @@ msgstr "Error del servidor desconocido"
msgid "Unknown signal %d"
msgstr "Se�al desconocida %d"
-#: misc/error.c:92
+#: misc/error.c:94
msgid "Unknown system error"
msgstr "Error del sistema desconocido"
@@ -1306,11 +1871,18 @@ msgstr "[ � ^[ desemparejados"
msgid "Unmatched \\{"
msgstr "\\{ desemparejado"
+# ## FUZZY. Este te dejo que se lo quites t�. sv
+# :) em+
+#: posix/getconf.c:191
+#, c-format
+msgid "Unrecognized variable `%s'"
+msgstr "Variable desconocida `%s'"
+
# ?? sigo pensando en una traducci�n para condici�n
msgid "Urgent I/O condition"
msgstr "Condici�n urgente de entrada/saluda"
-#: catgets/gencat.c:204
+#: catgets/gencat.c:212
#, c-format
msgid ""
"Usage: %s [OPTION]... -o OUTPUT-FILE [INPUT-FILE]...\n"
@@ -1326,11 +1898,9 @@ msgid ""
msgstr ""
"Modo de empleo: %s [OPCI�N]... -o ARCHIVO-SALIDA [ARCHIVO-ENTRADA]...\n"
" %s [OPCI�N]... [ARCHIVO-SALIDA [ARCHIVO-ENTRADA]...]\n"
-"Los argumentos obligatorios para las opciones largas son tambi�n "
-"obligatorios\n"
+"Los argumentos obligatorios para las opciones largas son tambi�n obligatorios\n"
"para las opciones cortas.\n"
-" -H, --header Crea un archivo de cabecera C con las definiciones "
-"de\n"
+" -H, --header Crea un archivo de cabecera 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 archivo\n"
@@ -1339,8 +1909,101 @@ msgstr ""
" -V, --version informa de la versi�n y finaliza\n"
"Si ARCHIVO-ENTRADA es -, la entrada se lee de la entrada est�ndar.\n"
"Si ARCHIVO-SALIDA es - , el resultado se escribe en la salida est�ndar.\n"
+"Informar de los bugs a <bug-glibc@prep.ai.mit.edu>\n"
+
+#: db/makedb.c:213
+#, c-format
+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]... ARCHIVO-ENTRADA ARCHIVO-SALIDA\n"
+" %s [OPCI�N]... -o ARCHIVO-SALIDA ARCHIVO-ENTRADA \n"
+" %s [OPCI�N]... -u ARCHIVO-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=ARCHIVO escribe el resultado en el archivo ARCHIVO\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 ARCHIVO-ENTRADA es -, la entrada se lee de la entrada est�ndar.\n"
-#: posix/getconf.c:81
+#: locale/programs/localedef.c:393
+#, c-format
+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 [OPCION]... nombre\n"
+"Los argumentos para las opciones largas son tambien obligatorios para las\n"
+"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=ARCHIVO los nombres s�mb�licos de caracteres se encuentran\n"
+" en ARCHIVO\n"
+" -i, --inputfile=ARCHIVO las definiciones fuente se encuetran en ARCHIVO\n"
+" -u, --code-set-name=NOMBRE especifica el conjunto de c�digos para mapear\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"
+"El directorio del sistema para los mapas de caracteres es: %s\n"
+" los archivos de locales es: %s\n"
+" \n"
+
+#: locale/programs/locale.c:245
+#, c-format
+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 [OPCION]... 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 todos los mapas 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 los palabras clave seleccionadas\n"
+
+#: posix/getconf.c:138
#, c-format
msgid "Usage: %s variable_name [pathname]\n"
msgstr "Modo de empleo: %s nombre_de_variable [ruta]\n"
@@ -1349,11 +2012,11 @@ msgstr "Modo de empleo: %s nombre_de_variable [ruta]\n"
# Sugerencia: numprogr -> numprog. sv
# Sugerencia: numpuerto -> n�mpuerto. sv
# Sugerencia: numprog -> n�mprog. sv
-# OK, lo he cambiado en todo
+# OK, lo he cambiado en todo
#: sunrpc/rpcinfo.c:609
-msgid "Usage: rpcinfo [ -n portnum ] -u host n�mprog [ versnum ]\n"
+msgid "Usage: rpcinfo [ -n portnum ] -u host prognum [ versnum ]\n"
msgstr ""
-"Modo de empleo: rpcinfo [ -n numpuerto ] -u host progrnum [ numversi�n ]\n"
+"Modo de empleo: rpcinfo [ -n n�mpuerto ] -u host progrn�m [ numversi�n ]\n"
# ## �"user defined" no ser�a "definida por el usuario"? sv
# ## Si , puede que sea mejor, lo cambio em
@@ -1363,17 +2026,27 @@ msgstr "Se�al definida por el usuario 1"
msgid "User defined signal 2"
msgstr "Se�al definida por el usuario 2"
+#: stdio-common/../sysdeps/gnu/errlist.c:742
+msgid "Value too large for defined data type"
+msgstr "Valor demasiado grande para el tipo de datos definido"
+
msgid "Virtual timer expired"
msgstr "El temporizador virtual lleg� al final"
# # Otra opci�n, resultado incongruente al ejecutar la orden em
-#: time/zic.c:1740
+#: time/zic.c:1844
msgid "Wild result from command execution"
msgstr "Resultado salvaje en la ejecuci�n de la orden"
msgid "Window changed"
msgstr "Ventana cambiada"
+#: catgets/gencat.c:174 db/makedb.c:125 locale/programs/locale.c:192
+#: locale/programs/localedef.c:182
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Escrito por %s.\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
@@ -1389,101 +2062,259 @@ msgstr "Ventana cambiada"
# Sugerencia: "Ahora s� que te lo has cargado".
# (Preguntar a nuestros amigos americanos si se entiende).
# (No s� pero me suena que "blew" no es muy fino). sv
+#. TRANS You did @strong{what}?
+#: stdio-common/../sysdeps/gnu/errlist.c:596
msgid "You really blew it this time"
msgstr "Esta vez si que lo has roto"
# VER
-#: time/zic.c:1013
+#: time/zic.c:1050
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 esta despu�s del tiempo de final\n"
"de la l�nea anterior"
-# 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 archivo 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
-#: sunrpc/rpc_parse.c:326
-msgid "array declaration expected"
-msgstr "esperado un array"
+#: locale/programs/charmap.c:397 locale/programs/locfile.c:341
+#, 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/ld-monetary.c:358 locale/programs/ld-numeric.c:190
+#, c-format
+msgid "`-1' must be last entry in `%s' field in `%s' category"
+msgstr ""
+"`-1' tiene que ser la �ltima especidicaci�n en el campo `%s' de la "
+"categor�a\n"
+"`%s'"
+
+# FUZZY
+# entries ? debe de haber algo para eso
+# lo traduc� antes como especificaci�n , pero ... em+
+#: locale/programs/ld-collate.c:1651
+msgid "`...' must only be used in `...' and `UNDEFINED' entries"
+msgstr "`...' debe de ser usado �nicamente en las entradas `...' y `UNDEFINED'"
+
+#: locale/programs/locfile.c:538
+msgid "`from' expected after first argument to `collating-element'"
+msgstr ""
+"Se esperaba `from' despu�s del primer argumento para `collating-element'"
+
+#: locale/programs/ld-collate.c:1108
+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 caracter desconocico"
+
+#: locale/programs/charmap.c:267
+#, c-format
+msgid "argument to <%s> must be a single character"
+msgstr "el argumento para <%s> debe de ser un �nico car�cter"
+
+#: locale/programs/locfile.c:215
+#, c-format
+msgid "argument to `%s' must be a single character"
+msgstr "el argumento para `%s' debe de ser un �nico car�cter"
# ??? mariscalizaci�n ?
-#: sunrpc/auth_unix.c:314
+#: sunrpc/auth_unix.c:322
msgid "auth_none.c - Fatal marshalling problem"
msgstr "auth_none.c - Problema muy grave con autorizaci�n marshall"
-#: inet/rcmd.c:327
+#: inet/rcmd.c:330
msgid "bad .rhosts owner"
msgstr "El propietario del archivo .rhosts no es v�lido"
-#: time/zic.c:1136
+#: locale/programs/charmap.c:212 locale/programs/locfile.c:209
+msgid "bad argument"
+msgstr "Argumento no v�lido"
+
+#: time/zic.c:1172
msgid "blank FROM field on Link line"
msgstr "Campo FROM vac�o en la l�nea `Link'"
-#: time/zic.c:1140
+#: time/zic.c:1176
msgid "blank TO field on Link line"
msgstr "Campo TO vac�o en la l�nea `Link'"
-#: malloc/mcheck.c:174
+#: malloc/mcheck.c:189
msgid "block freed twice"
msgstr "bloque liberado dos veces"
# Revisar lo de bogus. creo que es eso.
-#: malloc/mcheck.c:177
+#: malloc/mcheck.c:192
msgid "bogus mcheck_status, library is buggy"
msgstr "Valor de mcheck_status incorrecto, la biblioteca tiene un bug"
-#: sunrpc/pmap_rmt.c:177
+#: sunrpc/pmap_rmt.c:179
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:184
+#: sunrpc/pmap_rmt.c:186
msgid "broadcast: ioctl (get interface flags)"
msgstr "broadcast: iotcl (lee las propiedades del interfaz)"
-#: sunrpc/svc_udp.c:398
+#: sunrpc/svc_udp.c:402
msgid "cache_set: victim not found"
msgstr "cache_set: no se encontr� el objetivo"
+# FUZZY
+#: time/zic.c:1685
+msgid "can't determine time zone abbrevation to use just after until time"
+msgstr ""
+"No se puede determinar la abreviaci�n de zona horaria que se usar� justo\n"
+"despues "
+
#: sunrpc/svc_simple.c:64
#, c-format
msgid "can't reassign procedure number %d\n"
msgstr "no se puede reasignar el procedimiento n�mero %d\n"
-#: catgets/gencat.c:248
+#: locale/programs/localedef.c:287
+#, c-format
+msgid "cannot `stat' locale file `%s'"
+msgstr "la llamada a `stat' fall� en el archivo de locales `%s'"
+
+#: locale/programs/ld-collate.c:1313
+#, c-format
+msgid "cannot insert collation element `%.*s'"
+msgstr "no se puede insertar el elemento de uni�n`%.*s' "
+
+#: locale/programs/ld-collate.c:1492 locale/programs/ld-collate.c:1497
+msgid "cannot insert into result table"
+msgstr "no se puede insertar el la tabla de resultados"
+
+# FUZZY
+#: locale/programs/ld-collate.c:1165 locale/programs/ld-collate.c:1207
+#, c-format
+msgid "cannot insert new collating symbol definition: %s"
+msgstr "no se puede isertar la nueva definici�n para el s�mbolo de uni�n: %s"
+
+#: db/makedb.c:161
+#, c-format
+msgid "cannot open database file `%s': %s"
+msgstr "no se puede abrir el fichero de datos `%s': %s"
+
+#: catgets/gencat.c:259 db/makedb.c:180
#, c-format
msgid "cannot open input file `%s'"
msgstr "no se puede abrir el archivo de entrada `%s'"
-#: catgets/gencat.c:753 gencat.c:794
+#: locale/programs/localedef.c:221
+#, c-format
+msgid "cannot open locale definition file `%s'"
+msgstr "no se puede abrir el archivo de definici�n de locales `%s'"
+
+#: catgets/gencat.c:764 catgets/gencat.c:805 db/makedb.c:189
#, c-format
msgid "cannot open output file `%s'"
msgstr "no se puede abrir el archivo de salida `%s'"
+#: locale/programs/locfile.c:986
+#, c-format
+msgid "cannot open output file `%s' for category `%s'"
+msgstr "no se puede abrir el archivo de salida `%s' para la categor�a `%s'"
+
+# FUZZY
+#: locale/programs/ld-collate.c:1359
+msgid "cannot process order specification"
+msgstr "no se pueden procesar las especificaciones de orden"
+
+#: locale/programs/locale.c:303
+#, c-format
+msgid "cannot read character map directory `%s'"
+msgstr "no se puede leer el directorio de mapas de caracters `%s'"
+
+#: locale/programs/locale.c:278
+#, c-format
+msgid "cannot read locale directory `%s'"
+msgstr "No se puede leer directorio de locales %s"
+
+#: locale/programs/localedef.c:309
+#, c-format
+msgid "cannot read locale file `%s'"
+msgstr "no se puede leer el archivo de locales `%s'"
+
+#: locale/programs/localedef.c:334
+#, c-format
+msgid "cannot write output files to `%s'"
+msgstr "no se puede escribir en el archivo de salida `%s'"
+
+#: locale/programs/localedef.c:377
+msgid "category data requested more than once: should not happen"
+msgstr "categor�a de datos reclamada m�s de una vez, no deber�a de ocurrir"
+
+#: locale/programs/ld-ctype.c:265
+#, c-format
+msgid "character %s'%s' in class `%s' must be in class `%s'"
+msgstr "el car�cter %s'%s' en la clase `%s' debe de estar en la clase `%s'"
+
+#: locale/programs/ld-ctype.c:289
+#, c-format
+msgid "character %s'%s' in class `%s' must not be in class `%s'"
+msgstr "el car�cter %s'%s' en la clase `%s' no debe de estar en la clase `%s"
+
+#: locale/programs/ld-ctype.c:310
+msgid "character <SP> not defined in character map"
+msgstr "el car�cter <SP> no est� definido en el mapa de caracteres'"
+
+#: locale/programs/ld-ctype.c:1141
+#, c-format
+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"
+
+#: locale/programs/ld-ctype.c:939 locale/programs/ld-ctype.c:1002
+#: locale/programs/ld-ctype.c:1010 locale/programs/ld-ctype.c:1018
+#: locale/programs/ld-ctype.c:1026 locale/programs/ld-ctype.c:1034
+#: locale/programs/ld-ctype.c:1042 locale/programs/ld-ctype.c:1068
+#: locale/programs/ld-ctype.c:1076 locale/programs/ld-ctype.c:1114
+#: locale/programs/ld-ctype.c:1152
+#, 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"
+
+#: locale/programs/ld-ctype.c:801
+#, c-format
+msgid "character class `%s' already defined"
+msgstr "la clase de car�cter `%s' ya fue definida"
+
+#: locale/programs/ld-ctype.c:833
+#, c-format
+msgid "character map `%s' already defined"
+msgstr "mapa de caracteres `%s' ya est� definido"
+
+#: locale/programs/charmap.c:76
+#, c-format
+msgid "character map file `%s' not found"
+msgstr "el mapa de caracteres `%s' no se encontr�"
+
#: sunrpc/clnt_raw.c:106
msgid "clnt_raw.c - Fatal header serialization error."
msgstr "clnt_raw.c - Error grave en la secuencia de cabecera"
-#: inet/rcmd.c:112
+#: locale/programs/ld-collate.c:1328
+#, c-format
+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"
+
+#: locale/programs/ld-collate.c:1346
+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"
+
+#: locale/programs/locfile.c:522
+#, c-format
+msgid "collation symbol expected after `%s'"
+msgstr "s�mbolo de uni�n esperado despu�s de `%s'"
+
+#: inet/rcmd.c:114
#, c-format
msgid "connect to address %s: "
msgstr "conexi�n a la direcci�n %s: "
-#: sunrpc/rpc_scan.c:109
-msgid "constant or identifier expected"
-msgstr "esperada una constante o un identificador"
-
#: sunrpc/svc_simple.c:70
msgid "couldn't create an rpc server\n"
msgstr "no se pudo crear un servidor rpc\n"
@@ -1491,12 +2322,12 @@ msgstr "no se pudo crear un servidor rpc\n"
# ## Antes dec�a: no se pudo crear un servidor rpc
# ## Lo he cambiado por lo que ves. sv
# ## Borro el "fuzzy". sv
-#: sunrpc/portmap.c:122
+#: sunrpc/portmap.c:121
msgid "couldn't do tcp_create\n"
msgstr "no se ha podido ejecutar tcp_create\n"
# ## Borro el fuzzy. sv
-#: sunrpc/portmap.c:100
+#: sunrpc/portmap.c:99
msgid "couldn't do udp_create\n"
msgstr "no se pudo ejecutar udp_create\n"
@@ -1505,30 +2336,71 @@ msgstr "no se pudo ejecutar udp_create\n"
msgid "couldn't register prog %d vers %d\n"
msgstr "no se pudo registrar el programa %d versi�n %d\n"
-#: sunrpc/rpc_parse.c:77
-msgid "definition keyword expected"
-msgstr "esperada una palabra clave"
+#: locale/programs/charmap.c:86
+#, c-format
+msgid "default character map file `%s' not found"
+msgstr " no se encontr� el archivo de mapa de caracteres por defecto `%s'"
+
+#: locale/programs/ld-time.c:154
+#, c-format
+msgid ""
+"direction flag in string %d in `era' field in category `%s' is not '+' nor "
+"'-'"
+msgstr ""
+"el indicador de direcci�n en la cadena %d en el campo `era' de la categoria\n"
+"`%s' no es '+' o '-'"
+
+#: locale/programs/ld-time.c:164
+#, c-format
+msgid ""
+"direction flag in string %d in `era' field in category `%s' is not a single "
+"character"
+msgstr ""
+"el indicador de direcci�n en la cadena %d en el campo `era' de la categoria\n"
+"`%s' no es un �nico car�cter"
+
+#: locale/programs/charset.c:87 locale/programs/charset.c:132
+#, c-format
+msgid "duplicate character name `%s'"
+msgstr "nombre de car�cter duplicado `%s'"
+
+#: locale/programs/ld-collate.c:1140
+msgid "duplicate collating element definition"
+msgstr "definici�n duplicada del elemento de uni�n"
# �No ser� "definici�n de conjunto duplicada"? sv
# Esto no lo has visto todav�a. sv
-#: catgets/gencat.c:367
+#: locale/programs/ld-collate.c:1286
+#, c-format
+msgid "duplicate definition for character `%.*s'"
+msgstr "definici�n duplicada del car�cter `%.*s"
+
+#: db/makedb.c:310
+msgid "duplicate key"
+msgstr "tecla duplicada"
+
+#: catgets/gencat.c:378
msgid "duplicate set definition"
-msgstr "definici�n `set' duplicada"
+msgstr "definici�n de conjunto duplicada"
-#: time/zic.c:928
+#: time/zic.c:965
#, c-format
msgid "duplicate zone name %s (file \"%s\", line %d)"
msgstr "nombre de zona %s duplicado (archivo \"%s\", l�nea %d)"
-#: catgets/gencat.c:530
+#: catgets/gencat.c:541
msgid "duplicated message identifier"
msgstr "identificador de mensaje duplicado"
-#: catgets/gencat.c:503
+#: catgets/gencat.c:514
msgid "duplicated message number"
msgstr "n�mero de mensaje duplicado"
-#: sunrpc/svc_udp.c:344
+#: locale/programs/ld-collate.c:1695
+msgid "empty weight name: line ignored"
+msgstr "nombre de peso vacio: la l�nea se pasa por alto"
+
+#: sunrpc/svc_udp.c:348
msgid "enablecache: cache already enabled"
msgstr "enablecache: el cach� ya estaba activado"
@@ -1536,131 +2408,262 @@ msgstr "enablecache: el cach� ya estaba activado"
# Parece ser indistinto, as� que unas veces puede ser "la" y otras "el".
# dependiendo del caso (lo que mejor suene).
#
-#: sunrpc/svc_udp.c:349
+#: sunrpc/svc_udp.c:353
msgid "enablecache: could not allocate cache"
msgstr "enablecache: no se pudo crear espacio para el cach�"
-#: sunrpc/svc_udp.c:356
+#: sunrpc/svc_udp.c:360
msgid "enablecache: could not allocate cache data"
msgstr "enablecache: no se pudo crear espacio para los datos del cach�"
-#: sunrpc/svc_udp.c:362
+#: sunrpc/svc_udp.c:366
msgid "enablecache: could not allocate cache fifo"
msgstr "enablecache: no se pudo crear espacio para la pila del cach�"
-# Sugerencia: se esperaba `%s'. sv
-#: sunrpc/rpc_util.c:300
+#: locale/programs/ld-collate.c:1418
+msgid "end point of ellipsis range is bigger then start"
+msgstr ""
+"el punto de final para el rango de la elipse es mayor que el de comienzo"
+
+#: locale/programs/ld-collate.c:1148
+msgid "error while inserting collation element into hash table"
+msgstr "error cuando se insertaba el elemento de uni�n en la tabla enlazada"
+
+#: locale/programs/ld-collate.c:1160
+msgid "error while inserting to hash table"
+msgstr "error al insertar en la tabla enlazada"
+
+#: locale/programs/locfile.c:465
+msgid "expect string argument for `copy'"
+msgstr "se espera un argumento de cadena de caracteres para `copy'"
+
+# Sugerencia: La l�nea de continuaci�n *esperada*. sv
+# OK em+
+#: time/zic.c:856
+msgid "expected continuation line not found"
+msgstr "la l�nea de continuaci�n esperada no se encuentra"
+
+#: locale/programs/locfile.c:1010
#, c-format
-msgid "expected '%s'"
-msgstr "`%s' esperado"
+msgid "failure while writing data for category `%s'"
+msgstr "error al escribir los datos para la categor�a `%s'"
-# Sugerencia: Lo mismo de antes. sv
-#: sunrpc/rpc_util.c:312
+#: locale/programs/ld-monetary.c:154 locale/programs/ld-numeric.c:95
#, c-format
-msgid "expected '%s' or '%s'"
-msgstr "`%s' o `%s' esperado"
+msgid "field `%s' in category `%s' not defined"
+msgstr "el campo `%s' en la categoria `%s' no est� definido"
-# Lo mismo. sv
-#: sunrpc/rpc_util.c:325
+#: locale/programs/ld-messages.c:81 locale/programs/ld-messages.c:102
#, c-format
-msgid "expected '%s', '%s' or '%s'"
-msgstr "`%s', `%s' o `%s' esperado"
+msgid "field `%s' in category `%s' undefined"
+msgstr "el campo `%s' el la categor�a `%s' no se ha definido"
-# Sugerencia: La l�nea de continuaci�n *esperada*. sv
-#: time/zic.c:819
-msgid "expected continuation line not found"
-msgstr "La l�nea de continuaci�n no se encuentra"
+#: locale/programs/locfile.c:547
+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"
+
+#: locale/programs/linereader.c:328
+msgid "garbage at end of character code specification"
+msgstr ""
+"inconsistencias al final de la l�nea de especificaci�n de c�digo de "
+"caracteres"
+
+#: locale/programs/linereader.c:214
+msgid "garbage at end of digit"
+msgstr "inconsistencias al final del d�gito"
+
+#: locale/programs/ld-time.c:183
+#, c-format
+msgid ""
+"garbage at end of offset value in string %d in `era' field in category `%s'"
+msgstr ""
+"incongruencias al final del valor de desplazamiento en la cadena %d en el\n"
+"campo `era' de la categoria `%s'"
-#: sunrpc/rpc_parse.c:384
-msgid "expected type specifier"
-msgstr "esperado especificador de tipo"
+#: locale/programs/ld-time.c:238
+#, c-format
+msgid ""
+"garbage at end of starting date in string %d in `era' field in category `%s'"
+msgstr ""
+"incongruencias al final de la fecha de comienzo en la cadena %d en el\n"
+"campo `era' de la categoria `%s'"
+
+#: locale/programs/ld-time.c:310
+#, c-format
+msgid ""
+"garbage at end of stopping date in string %d in `era' field in category `%s'"
+msgstr ""
+"incongruencias al final de la fecha de parada en la cadena %d en el<\n"
+"campo `era' de la categoria `%s'"
#: sunrpc/get_myaddr.c:73
msgid "get_myaddress: ioctl (get interface configuration)"
msgstr "get_myaddress: ioctl (lee la configuraci�n del interfaz)"
-#: time/zic.c:1113
+#: time/zic.c:1149
msgid "illegal CORRECTION field on Leap line"
msgstr "El campo CORRECTION en la l�nea de a�o bisiesto no es v�lido"
-#: time/zic.c:1117
+#: time/zic.c:1153
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "Campo Rolling/Stationary no v�lido en la l�nea de a�o bisiesto"
-#: sunrpc/rpc_scan.c:281
-msgid "illegal character in file: "
+#: locale/programs/ld-collate.c:1766
+msgid "illegal character constant in string"
msgstr "car�cter no v�lido en el archivo: "
-#: sunrpc/rpc_parse.c:146
-msgid "illegal result type"
-msgstr "tipo resultante no v�lido"
+#: locale/programs/ld-collate.c:1115
+msgid "illegal collation element"
+msgstr "elemento de uni�n no v�lido"
-# ## Borro el fuzzy. sv
-#: catgets/gencat.c:340 gencat.c:417
+#: locale/programs/charmap.c:196
+msgid "illegal definition"
+msgstr "definici�n no v�lida"
+
+#: locale/programs/charmap.c:349
+msgid "illegal encoding given"
+msgstr "especificada una codificaci�n no v�lida"
+
+#: locale/programs/linereader.c:546
+msgid "illegal escape sequence at end of string"
+msgstr "secuencia de escape no permitida al final de la cadena de caracteres"
+
+#: locale/programs/charset.c:101
+msgid "illegal names for character range"
+msgstr "nombres no permitidos para el rango de caracteres"
+
+#: locale/programs/ld-time.c:176
+#, c-format
+msgid "illegal number for offset in string %d in `era' field in category `%s'"
+msgstr ""
+"n�mero de desplazamiento no v�lido en la cadena %d en el campo `era' de la\n"
+"categoria `%s'"
+
+#: catgets/gencat.c:351 catgets/gencat.c:428
msgid "illegal set number"
msgstr "n�mero de conjunto inv�lido"
-#: time/zic.c:777
+#: locale/programs/ld-time.c:230
+#, c-format
+msgid "illegal starting date in string %d in `era' field in category `%s'"
+msgstr ""
+"fecha de comienzo no v�lida en la cadena %d en el campo `era' de la\n"
+"categoria `%s'"
+
+#: locale/programs/ld-time.c:302
+#, c-format
+msgid "illegal stopping date in string %d in `era' field in category `%s'"
+msgstr ""
+"fecha de parada no v�lida en la cadena %d en el campo `era' de la\n"
+"categoria `%s'"
+
+#: locale/programs/ld-ctype.c:807
+#, c-format
+msgid "implementation limit: no more than %d character classes allowed"
+msgstr ""
+"l�mite de la implementaci�n: no se permiten m�s de %d clases de caracteres "
+
+#: locale/programs/ld-ctype.c:839
+#, 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 mapas de caracteres"
+
+#: db/makedb.c:163
+msgid "incorrectly formatted file"
+msgstr "archivo formateado incorrectamente"
+
+#: time/zic.c:814
msgid "input line of unknown type"
msgstr "l�nea de entrada de tipo desconocido"
-#: time/zic.c:984
+#: time/zic.c:1733
+msgid "internal error - addtype called with bad isdst"
+msgstr "error interno - se llam� a 'addtype' con 'isdst' err�neo"
+
+#: time/zic.c:1741
+msgid "internal error - addtype called with bad ttisgmt"
+msgstr "error interno - se llam� a 'addtype' con 'ttisgmt' err�neo"
+
+#: time/zic.c:1737
+msgid "internal error - addtype called with bad ttisstd"
+msgstr "error interno - se llam� a 'addtype' con 'ttisstd' err�neo"
+
+#: locale/programs/ld-ctype.c:301
+#, c-format
+msgid "internal error in %s, line %u"
+msgstr "error interno en %s, l�nea %u"
+
+#: time/zic.c:1021
msgid "invalid GMT offset"
msgstr "desplazamiento GMT no v�lido"
# �No ser� "abreviatura"? sv
# �? A esto no me has contestado. sv
-#: time/zic.c:987
+#: time/zic.c:1024
msgid "invalid abbreviation format"
msgstr "formato de abreviaci�n incorrecto"
-#: time/zic.c:1078 zic.c:1277 zic.c:1291
-#, fuzzy
+#: time/zic.c:1114 time/zic.c:1313 time/zic.c:1327
msgid "invalid day of month"
msgstr "d�a del mes no v�lido"
-#: time/zic.c:1236
-#, fuzzy
+#: time/zic.c:1272
msgid "invalid ending year"
msgstr "a�o de final no v�lido"
-#: time/zic.c:1050
-#, fuzzy
+#: time/zic.c:1086
msgid "invalid leaping year"
msgstr "a�o bisiesto inv�lido"
-#: time/zic.c:1065 zic.c:1168
+#: time/zic.c:1101 time/zic.c:1204
msgid "invalid month name"
msgstr "nombre de mes incorrecto"
-#: time/zic.c:883
-#, fuzzy
+#: time/zic.c:920
msgid "invalid saved time"
msgstr "la hora almacenada no es v�lida"
-#: time/zic.c:1216
-#, fuzzy
+#: time/zic.c:1252
msgid "invalid starting year"
msgstr "a�o de comienzo no v�lido"
-#: time/zic.c:1094 zic.c:1196
-#, fuzzy
+#: time/zic.c:1130 time/zic.c:1232
msgid "invalid time of day"
msgstr "hora del d�a no v�lida"
# ## Antes ten�as "nombre de la semana incorrecto" sv
# ## Mandeeee ? em
# ## Te lo prometo... sv
-#: time/zic.c:1282
+#: time/zic.c:1318
msgid "invalid weekday name"
msgstr "nombre del d�a de la semana incorrecto"
-# ## Borro un fuzzy que hab�a. sv
-#: time/zic.c:757
+#: locale/programs/ld-collate.c:1411
+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"
+
+#: locale/programs/ld-collate.c:1390
+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 de car�cter"
+
+#: time/zic.c:794
msgid "line too long"
msgstr "l�nea demasiado larga"
-#: catgets/gencat.c:598
+#: locale/programs/localedef.c:281
+#, c-format
+msgid "locale file `%s', used in `copy' statement, not found"
+msgstr ""
+"archivo de locales `%s', que se usa en una orden `copy', no se encuentra"
+
+#: catgets/gencat.c:609
msgid "malformed line ignored"
msgstr "l�nea incorrecta se ignor�"
@@ -1669,23 +2672,44 @@ msgstr "l�nea incorrecta se ignor�"
# �estropeada? �alterada? <- votar�a por �sta. sv
# Pues despu�s de ver la traducci�n de Jochen estoy perdido
# le voy a consultar a �l directamente. em
-#: malloc/mcheck.c:168
+#: malloc/mcheck.c:183
msgid "memory clobbered before allocated block"
msgstr "memoria alterada antes del comienzo del bloque de memoria asignado"
# ??? lo mismo digo
# aceptado hasta que consulte con Jochen
# lo mismo sugiero. sv
-#: malloc/mcheck.c:171
+#: malloc/mcheck.c:186
msgid "memory clobbered past end of allocated block"
msgstr "memoria alterada pasado el final del bloque de memoria asignado"
+#: locale/programs/ld-collate.c:167 locale/programs/ld-collate.c:173
+#: locale/programs/ld-collate.c:177 locale/programs/ld-collate.c:1438
+#: locale/programs/ld-collate.c:1467 locale/programs/locfile.c:940
+#: locale/programs/xmalloc.c:68 posix/getconf.c:181
+msgid "memory exhausted"
+msgstr "Memoria agotada"
+
# biblioteca est� recogida en la lista de pifias de �ngel �lvarez.
-#: malloc/mcheck.c:165
+#: malloc/mcheck.c:180
msgid "memory is consistent, library is buggy"
msgstr "no hay problemas con la memoria, la biblioteca tiene un bug"
-#: time/zic.c:878
+#: locale/programs/ld-time.c:348
+#, c-format
+msgid "missing era format in string %d in `era' field in category `%s'"
+msgstr ""
+"nombre de era no encontrado en la cadena %d en el campo `era' de la\n"
+"categoria `%s'"
+
+#: locale/programs/ld-time.c:337
+#, c-format
+msgid "missing era name in string %d in `era' fieldin category `%s'"
+msgstr ""
+"nomnbre de era no encontrado en la cadena %d en el campo `era' de la\n"
+"categoria `%s'"
+
+#: time/zic.c:915
msgid "nameless rule"
msgstr "regla sin nombre"
@@ -1694,44 +2718,81 @@ msgstr "regla sin nombre"
msgid "never registered prog %d\n"
msgstr "el programa %d no fue registrado nunca\n"
-#: rpc_parse.c:313 sunrpc/rpc_parse.c:305
-msgid "no array-of-pointer declarations -- use typedef"
-msgstr "no existe ninguna declaraci�n de array-of-pointer -- usar typedef"
+#: locale/programs/ld-messages.c:95 locale/programs/ld-messages.c:116
+#, c-format
+msgid "no correct regular expression for field `%s' in category `%s': %s"
+msgstr ""
+"falta una expresi�n regular correcta para el campo `%s' en la categor�a "
+"`%s': \n"
+"%s'"
# ## 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
-#: time/zic.c:1955
+#: time/zic.c:2059
msgid "no day in month matches rule"
msgstr "ning�n d�a del mes coincide con la regla"
-#: sunrpc/portmap.c:452
+#: locale/programs/ld-collate.c:259
+msgid "no definition of `UNDEFINED'"
+msgstr "no hay definici�n para `UNDEFINED'"
+
+#: locale/programs/locfile.c:479
+msgid "no other keyword shall be specified when `copy' is used"
+msgstr "ninguna otra palabra clave debe ser especificada al usar `copy'"
+
+#: locale/programs/localedef.c:340
+msgid "no output file produced because warning were issued"
+msgstr "no se produjo fichero de salida debido a la existencia de warnings"
+
+#: locale/programs/charmap.c:315 locale/programs/charmap.c:466
+#: locale/programs/charmap.c:545
+msgid "no symbolic name given"
+msgstr "no se proporci� un nombre simb�lico"
+
+#: locale/programs/charmap.c:380 locale/programs/charmap.c:512
+#: locale/programs/charmap.c:578
+msgid "no symbolic name given for end of range"
+msgstr "no se proporci� un nombre simb�lico para el final del rango"
+
+#: locale/programs/ld-collate.c:244
+#, c-format
+msgid "no weight defined for symbol `%s'"
+msgstr "el peso no est� definido para el s�mbolo `%s'"
+
+#: locale/programs/charmap.c:430
+msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
+msgstr ""
+"solo est�n permitidas definiciones WIDTH despu�s de la una definici�n CHARMAP"
+
+#: sunrpc/portmap.c:451
msgid "portmap CALLIT: cannot fork.\n"
msgstr "portmap CALLIT: llamada a fork() sin �xito\n"
# mapeador es *horroroso* sv
-#: portmap.c:117 sunrpc/portmap.c:95
+#: sunrpc/portmap.c:94 sunrpc/portmap.c:116
msgid "portmap cannot bind"
msgstr "fall� la llamada a bind() del mapeador de puertos `portmap' "
-#: portmap.c:113 sunrpc/portmap.c:87
+#: sunrpc/portmap.c:86 sunrpc/portmap.c:112
msgid "portmap cannot create socket"
msgstr "el mapeador de puertos `portmap' no ha podido crear el `socket'"
-#: rpc_scan.c:464 sunrpc/rpc_scan.c:456
-msgid "preprocessor error"
-msgstr "error del preprocesador"
+#: db/makedb.c:326
+#, c-format
+msgid "problems while reading `%s'"
+msgstr "problemas mientras se le�a `%s'"
# ## Borro un fuzzy que hab�a. sv
-#: rpcinfo.c:350 sunrpc/rpcinfo.c:222
+#: sunrpc/rpcinfo.c:222 sunrpc/rpcinfo.c:350
#, c-format
msgid "program %lu is not available\n"
msgstr "el programa %lu no est� disponible\n"
# ## Borro un "fuzzy" que hab�a. sv
-#: rpcinfo.c:282 rpcinfo.c:371 rpcinfo.c:408 rpcinfo.c:429
-#: sunrpc/rpcinfo.c:245 sunrpc/rpcinfo.c:462
+#: sunrpc/rpcinfo.c:245 sunrpc/rpcinfo.c:282 sunrpc/rpcinfo.c:371
+#: sunrpc/rpcinfo.c:408 sunrpc/rpcinfo.c:429 sunrpc/rpcinfo.c:462
#, c-format
msgid "program %lu version %lu is not available\n"
msgstr "el programa %lu versi�n %lu no est� disponible\n"
@@ -1744,16 +2805,16 @@ msgstr "el programa %lu versi�n %lu no est� disponible\n"
msgid "program %lu version %lu ready and waiting\n"
msgstr "el programa %lu versi�n %lu est� listo y esperando\n"
-#: inet/rcmd.c:154
+#: inet/rcmd.c:157
#, c-format
msgid "rcmd: select (setting up stderr): %s\n"
msgstr "rcmd: select (activando la salida de error est�ndar): %s\n"
-#: inet/rcmd.c:86
+#: inet/rcmd.c:87
msgid "rcmd: socket: All ports in use\n"
msgstr "rcmd: socket: Todos los puertos est�n siendo usados\n"
-#: inet/rcmd.c:141
+#: inet/rcmd.c:144
#, c-format
msgid "rcmd: write (setting up stderr): %s\n"
msgstr "rcmd: write (activando la salida de error est�ndar): %s\n"
@@ -1762,7 +2823,7 @@ msgstr "rcmd: write (activando la salida de error est�ndar): %s\n"
msgid "registerrpc: out of memory\n"
msgstr "registerrpc: memoria agotada\n"
-#: time/zic.c:1690
+#: time/zic.c:1794
msgid "repeated leap second moment"
msgstr "segundo intercalar repetido"
@@ -1777,8 +2838,9 @@ msgid "rpcinfo: %s is unknown service\n"
msgstr "rpcinfo: el servicio `%s' es desconocido\n"
# 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:600
-#, fuzzy, c-format
+#, c-format
msgid "rpcinfo: Could not delete registration for prog %s version %s\n"
msgstr "no se pudo borrar el registro para el programa %s versi�n %s\n"
@@ -1799,114 +2861,298 @@ msgid "rpcinfo: can't contact portmapper: "
msgstr ""
"rpcinfo: no se puede comunicar con el mapeador de puertos (`portmapper'): "
-#: sunrpc/portmap.c:138
+#: sunrpc/portmap.c:137
msgid "run_svc returned unexpectedly\n"
msgstr "run_svc termin� inesperadamente\n"
+#: time/zic.c:708 time/zic.c:710
+msgid "same rule name in multiple files"
+msgstr "mismo nombre de regla en varios ficheros"
+
# �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:158
+#: inet/rcmd.c:161
msgid "select: protocol failure in circuit setup\n"
-msgstr "select: fallo de protocolo.\n"
+msgstr "select: fallo de protocolo al configurar el circuito\n"
# ??? lo mismo que arriba
-#: inet/rcmd.c:176
-msgid "socket: protocol failure in circuit setup.\n"
-msgstr "socket: fallo de protocolo.\n"
+#: inet/rcmd.c:179
+msgid "socket: protocol failure in circuit setup\n"
+msgstr "socket: fallo de protocolo al configurar el circuito\n"
-#: time/zic.c:742
+#: locale/programs/locfile.c:600
+msgid "sorting order `forward' and `backward' are mutually exclusive"
+msgstr "los �rdenes `forward' y `backward' son mutuamente excluyentes"
+
+#: locale/programs/ld-collate.c:1567 locale/programs/ld-collate.c:1613
+msgid ""
+"specification of sorting weight for collation symbol does not make sense"
+msgstr ""
+"la especificaci�n para el orden de peso del s�mbolo de uni�n no tiene "
+"sentido "
+
+#: time/zic.c:779
msgid "standard input"
msgstr "entrada est�ndar"
-#: time/zdump.c:259
+#: time/zdump.c:260
msgid "standard output"
msgstr "salida est�ndar"
-#: time/zic.c:1240
+#: locale/programs/ld-time.c:256
+#, c-format
+msgid "starting date is illegal in string %d in `era' field in category `%s'"
+msgstr ""
+"la fecha de comienzo no es v�lida en la cadena %d del campo `era' de la\n"
+"categor�a `%s'"
+
+#: time/zic.c:1276
msgid "starting year greater than ending year"
msgstr "a�o de comienzo mayor que a�o de final"
-#: sunrpc/svc_tcp.c:199 svc_tcp.c:204
+#: locale/programs/ld-time.c:328
+#, c-format
+msgid "stopping date is illegal in string %d in `era' field in category `%s'"
+msgstr ""
+"la fecha de final no es v�lida en la cadena %d del campo `era' de la\\n\"\n"
+"\"categor�a `%s'"
+
+#: sunrpc/svc_tcp.c:201 sunrpc/svc_tcp.c:206
msgid "svc_tcp: makefd_xprt: out of memory\n"
msgstr "svc_tcp: makefd_xprt: memoria agotada\n"
-#: sunrpc/svc_tcp.c:147
+#: sunrpc/svc_tcp.c:149
msgid "svctcp_.c - cannot getsockname or listen"
msgstr "svctcp_.c - fallo en la ejecuci�n de `getsockname()' o `listen()'"
-#: sunrpc/svc_tcp.c:134
+#: sunrpc/svc_tcp.c:136
msgid "svctcp_.c - udp socket creation problem"
msgstr "svctcp_.c - problema al crear el `socket' del `udp'"
-#: sunrpc/svc_tcp.c:154 svc_tcp.c:161
+#: sunrpc/svc_tcp.c:156 sunrpc/svc_tcp.c:163
msgid "svctcp_create: out of memory\n"
msgstr "svctcp_create: memoria agotada\n"
-#: sunrpc/svc_udp.c:119
+#: sunrpc/svc_udp.c:123
msgid "svcudp_create - cannot getsockname"
msgstr "svcudp_create - fallo en la ejecuci�n de `getsockname'"
-#: sunrpc/svc_udp.c:107
+#: sunrpc/svc_udp.c:111
msgid "svcudp_create: socket creation problem"
msgstr "svcudp_create: problemas para crear el `socket'"
-#: catgets/gencat.c:369 gencat.c:505 gencat.c:532
+#: locale/programs/ld-collate.c:1190
+#, c-format
+msgid ""
+"symbol for multicharacter collating element `%.*s' duplicates element "
+"definition"
+msgstr ""
+"el s�mbolo para el elemento de uni�n para multi-caracter `%.*s' repite la\n"
+"definici�n de otro elemento"
+
+#: locale/programs/ld-collate.c:1063
+#, c-format
+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"
+
+#: locale/programs/ld-collate.c:1199
+#, c-format
+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"
+
+#: locale/programs/ld-collate.c:1072
+#, c-format
+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"
+"repite la definici�n de otro s�mbolo"
+
+#: locale/programs/ld-collate.c:1054 locale/programs/ld-collate.c:1181
+#, c-format
+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"
+
+#: locale/programs/charmap.c:314 locale/programs/charmap.c:348
+#: locale/programs/charmap.c:378 locale/programs/charmap.c:465
+#: locale/programs/charmap.c:511 locale/programs/charmap.c:544
+#: locale/programs/charmap.c:576
+#, c-format
+msgid "syntax error in %s definition: %s"
+msgstr "error de sint�xis en ls definici�n de %s: %s"
+
+#: locale/programs/locfile.c:620
+msgid "syntax error in `order_start' directive"
+msgstr "error de sint�xis en la directiva `order_start'"
+
+#: locale/programs/locfile.c:362
+msgid "syntax error in character class definition"
+msgstr "error de sint�xis en el nombre de clase de car�cter"
+
+#: locale/programs/locfile.c:420
+msgid "syntax error in character conversion definition"
+msgstr "error de sint�xis en la definici�n de la conversi�n de car�cter"
+
+#: locale/programs/locfile.c:662
+msgid "syntax error in collating order definition"
+msgstr "error de sint�xis en la definici�n del orden de uni�n"
+
+#: locale/programs/locfile.c:512
+msgid "syntax error in collation definition"
+msgstr "error de sint�xis en la definici�n de la uni�n"
+
+#: locale/programs/locfile.c:335
+msgid "syntax error in definition of LC_CTYPE category"
+msgstr "error de sint�xis en una definici�n de categor�a LC_CTYPE"
+
+#: locale/programs/locfile.c:278
+msgid "syntax error in definition of new character class"
+msgstr "error de sint�xis en la definici�n de una nueva clase de car�cter"
+
+#: locale/programs/locfile.c:288
+msgid "syntax error in definition of new character map"
+msgstr "error de sint�xis en la definici�n de un nuevo mapa de car�cter"
+
+#: locale/programs/locfile.c:873
+msgid "syntax error in message locale definition"
+msgstr "error de sint�xis en la definici�n de local para mensajes"
+
+#: locale/programs/locfile.c:784
+msgid "syntax error in monetary locale definition"
+msgstr "error de sint�xis en la definici�n de local para moneda"
+
+#: locale/programs/locfile.c:811
+msgid "syntax error in numeric locale definition"
+msgstr "error de sint�xis en la definici�n de local para n�meros"
+
+#: locale/programs/locfile.c:722
+msgid "syntax error in order specification"
+msgstr "error de sint�xis en la especificaci�n de �rden"
+
+#: locale/programs/charmap.c:195 locale/programs/charmap.c:211
+#, c-format
+msgid "syntax error in prolog: %s"
+msgstr "error de sint�xis en el pr�logo: %s"
+
+#: locale/programs/locfile.c:849
+msgid "syntax error in time locale definition"
+msgstr "error de sint�xis en la definici�n de local para la hora"
+
+#: locale/programs/locfile.c:255
+msgid "syntax error: not inside a locale definition section"
+msgstr ""
+"error de sint�xis: no est� dentro de una seci�n de definici�n para un local"
+
+#: catgets/gencat.c:380 catgets/gencat.c:516 catgets/gencat.c:543
msgid "this is the first definition"
msgstr "esta es la primera vez que aparece la definici�n"
-#: time/zic.c:1083
+#: time/zic.c:1119
msgid "time before zero"
msgstr "hora antes de cero"
# Sugerencia: Desbordamiento de fecha. (?) sv
-#: time/zic.c:1091 zic.c:1855 zic.c:1874
+#: time/zic.c:1127 time/zic.c:1959 time/zic.c:1978
msgid "time overflow"
msgstr "desbordamiento horario"
-#: sunrpc/rpc_util.c:285
-msgid "too many files!\n"
-msgstr "�demasiados archivos!\n"
+#: locale/programs/charset.c:44
+msgid "too few bytes in character encoding"
+msgstr "demasiados pocos bytes en la codificaci�n del car�cter"
-# ## Borro un "fuzzy" que hab�a. sv
-#: time/zic.c:1684
+#: locale/programs/charset.c:46
+msgid "too many bytes in character encoding"
+msgstr "demasiados bytes en la codificaci�n del car�cter"
+
+#: locale/programs/locales.h:72
+msgid "too many character classes defined"
+msgstr "demasiadas clases de caracteres definidas"
+
+#: time/zic.c:1788
msgid "too many leap seconds"
msgstr "demasiados segundos intercalares"
-# ## Borro un "fuzzy" que hab�a. sv
-#: time/zic.c:1656
+#: time/zic.c:1760
msgid "too many local time types"
msgstr "demasiados tipos de hora local"
-# ## Borro el "fuzzy" que hab�a. sv
-#: time/zic.c:1622
+#: time/zic.c:1714
msgid "too many transitions?!"
msgstr "��demasiadas transiciones?!"
+# FUZZY
+# � Qu� puede ser esto ? em+
+#: locale/programs/ld-collate.c:1622
+msgid "too many weights"
+msgstr "�demasiados pesos!"
+
# Sugerencia: abreviaturas. sv
-#: time/zic.c:1978
+# Ok em+
+#: time/zic.c:2082
msgid "too many, or too long, time zone abbreviations"
-msgstr "demasiadas o demasiado largas abreviaciones de zona horaria"
+msgstr "demasiadas o demasiado largas abreviaturas de zona horaria"
+
+# FUZZY
+# es una traducci�n un poco libre, � que te parece ? em+
+#: locale/programs/linereader.h:146
+msgid "trailing garbage at end of line"
+msgstr "ignorando inconsistencias al final de la l�nea"
#: sunrpc/svc_simple.c:132
#, c-format
msgid "trouble replying to prog %d\n"
msgstr "dificultades para responder al programa %d\n"
-#: time/zic.c:1247
+#: locale/programs/ld-collate.c:1382
+msgid "two lines in a row containing `...' are not allowed"
+msgstr "no est�n permitidas dos l�neas en una misma fila con `...'"
+
+#: time/zic.c:1283
msgid "typed single year"
msgstr "tecleado un �nico a�o"
+#: locale/programs/charmap.c:617 locale/programs/charmap.c:628
+#, c-format
+msgid "unknown character `%s'"
+msgstr "car�cter desconocido `%s'"
+
+#: locale/programs/ld-messages.c:193 locale/programs/ld-messages.c:204
+#: locale/programs/ld-messages.c:215 locale/programs/ld-messages.c:226
+#: locale/programs/ld-time.c:696
+#, c-format
+msgid "unknown character in field `%s' of category `%s'"
+msgstr "car�cter no reconocido en el campo `%s' de la categor�a `%s'"
+
+# FUZZY em+
+#: locale/programs/locfile.c:585
+msgid "unknown collation directive"
+msgstr "la directiva de uni�n es desconocida"
+
# descartada (?) sv
-#: catgets/gencat.c:466
+# � y asi ? em+
+#: catgets/gencat.c:477
#, c-format
msgid "unknown directive `%s': line ignored"
-msgstr "directiva desconocida '%s': l�nea ignorada"
+msgstr "directiva desconocida '%s': l�nea pasada por alto"
-# ## En el libro de Infov�a traducen host por "anfitri�n"
-# ## El comentario anterior sobra, procede de la "fuzzyness".
-# ## Set podr�a ser conjunto. Mirarlo. sv
-# ## Borro el "fuzzy" que hab�a. sv
-#: catgets/gencat.c:445
+#: catgets/gencat.c:456
#, c-format
msgid "unknown set `%s'"
msgstr "conjunto `%s' desconocido"
@@ -1914,71 +3160,116 @@ msgstr "conjunto `%s' desconocido"
msgid "unknown signal"
msgstr "se�al desconocida"
-# ## Me gust� la traducci�n de ingobernable, no se me ocurr�a otra
-# ## �"zona sin reglas"? sv
-# ## Jolines, pues s�, claro. Mucho mejor que eso desde luego em
-#: time/zic.c:714
+# descartada (?) sv
+# Me gusta m�s `pasada por alto ' em+
+#: locale/programs/ld-collate.c:1366 locale/programs/ld-collate.c:1557
+#: locale/programs/ld-collate.c:1731
+#, c-format
+msgid "unknown symbol `%.*s': line ignored"
+msgstr "s�mbolo desconocido `%.*s': l�nea descartada"
+
+#: time/zic.c:751
msgid "unruly zone"
msgstr "zona sin reglas"
-# ## Borro el "fuzzy" que hab�a. sv
-#: catgets/gencat.c:950
+#: catgets/gencat.c:961
msgid "unterminated message"
msgstr "mensaje sin terminar"
-#: sunrpc/rpc_scan.c:319
-msgid "unterminated string constant"
+#: locale/programs/linereader.c:515 locale/programs/linereader.c:550
+msgid "unterminated string"
msgstr "cadena de caracteres sin terminar"
-# Tambi�n se podr�a haber puesto "Uso:"
-# En recode ya se puso "Modo de empleo"
-# me suena a prospecto de crecepelo EM
-#
-#: sunrpc/rpc_main.c:78
-#, c-format
-msgid "usage: %s infile\n"
-msgstr "Modo de empleo: %s archivo_de_entrada\n"
+#: locale/programs/linereader.c:385
+msgid "unterminated symbolic name"
+msgstr "nombre simb�lico sin terminar"
+
+#: locale/programs/ld-collate.c:1684
+msgid "unterminated weight name"
+msgstr "nombre de peso sin terminar"
+
+#: locale/programs/charset.c:119
+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"
# 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
-#
# Sugerencia: "uso de 2/29 ..." (usando ser�a "using") sv
-#: time/zic.c:1921
+# Tienes raz�n em+
+#: time/zic.c:2025
msgid "use of 2/29 in non leap-year"
-msgstr "usando 2/29 en un a�o no bisiesto"
+msgstr "uso de 2/29 en un a�o no bisiesto"
-# "array" es "array"?
-# Lo miro con cuidado , los archivos 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 archivo 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
-#: sunrpc/rpc_parse.c:330
-msgid "variable-length array declaration expected"
-msgstr "esperado un array de longitud variable"
+# Lo siento Santiago em+
+#: locale/programs/charmap.c:438 locale/programs/charmap.c:492
+#, c-format
+msgid "value for %s must be an integer"
+msgstr "el valor para %s tiene que ser un n�mero entero"
+
+#: locale/programs/charmap.c:233
+#, c-format
+msgid "value for <%s> must lie between 1 and 4"
+msgstr "el valor para <%s> debe de estar entre 1 y 4"
+
+#: locale/programs/ld-monetary.c:148 locale/programs/ld-numeric.c:89
+#, c-format
+msgid "value for field `%s' in category `%s' must not be the empty string"
+msgstr "el valor para el campo `%s' en la categor�a `%s' no debe estar vacio "
-#: sunrpc/rpc_parse.c:370
-msgid "voids allowed only inside union and program definitions"
+#: locale/programs/charmap.c:245
+msgid "value of <mb_cur_max> must be greater than the value of <mb_cur_min>"
msgstr ""
-"voids s�lo se permiten dentro de las definiciones de uniones y de programa"
+"el valor de <mb_cur_max> tiene que ser mayor que el valor de <mb_cur_min>"
+
+#: locale/programs/ld-monetary.c:138
+msgid ""
+"value of field `int_curr_symbol' in category `LC_MONETARY' does not "
+"correspond to a valid name in ISO 4217"
+msgstr ""
+"el valor del campo `int_curr_symbol' en la categor�a `LC_MONETARY' no se \n"
+"corresponde con un nombre v�lido en ISO 4217"
+
+# FUZZY
+# � Erronea ? em+
+#: locale/programs/ld-monetary.c:133
+msgid ""
+"value of field `int_curr_symbol' in category `LC_MONETARY' has wrong length"
+msgstr ""
+"el valor del campo `int_curr_symbol' en la categoria `LC_MONETARY' tiene\n"
+"una longitud err�nea"
+
+#: locale/programs/ld-monetary.c:370 locale/programs/ld-numeric.c:199
+#, c-format
+msgid "values for field `%s' in category `%s' must be smaller than 127"
+msgstr "el valor para el campo `%s' en la categor�a `%s' no debe de ser cero"
+
+#: locale/programs/ld-monetary.c:366
+#, c-format
+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 de ser cero"
#: login/setutent_r.c:47
msgid "while opening UTMP file"
msgstr "al abrir el archivo UTMP"
-#: catgets/gencat.c:977
+#: catgets/gencat.c:988
msgid "while opening old catalog file"
msgstr "al abrir el archivo de cat�logo antiguo"
+#: db/makedb.c:353
+msgid "while reading database"
+msgstr "al leer el archivo de datos"
+
+#: db/makedb.c:315
+msgid "while writing data base file"
+msgstr "al abrir el archivo de datos"
+
+#: db/makedb.c:142
+msgid "wrong number of arguments"
+msgstr "n�mero incorrecto de argumentos"
+
# En todas estas, yo pondr�a "n�mero incorrecto de campos",
# "n�mero incorrecto de argumentos", etc.
# creo que quedar�a mucho mejor. sv
@@ -1989,22 +3280,184 @@ msgstr "al abrir el archivo de cat�logo antiguo"
# 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
-#: time/zic.c:1041
+#: time/zic.c:1077
msgid "wrong number of fields on Leap line"
msgstr "n�mero incorrecto de campos en la l�nea de bisiesto ( Leap )"
-#: time/zic.c:1132
+#: time/zic.c:1168
msgid "wrong number of fields on Link line"
msgstr "n�mero incorrecto de campos en la l�nea de enlace ( Link )"
-#: time/zic.c:874
+#: time/zic.c:911
msgid "wrong number of fields on Rule line"
msgstr "n�mero incorrecto de argumentos en la l�nea de regla ( Rule )"
-#: time/zic.c:944
+#: time/zic.c:981
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)"
-#: time/zic.c:902
+#: time/zic.c:939
msgid "wrong number of fields on Zone line"
msgstr "n�mero de campos incorrecto en la l�nea de zona ( Zone )"
+
+#~ msgid " %s [-c | -h | -l | -m] [-o outfile] [infile]\n"
+#~ msgstr ""
+#~ " %s [-c | -h | -l | -m] [-o archivo_salida] [archivo_entrada]\n"
+
+#~ msgid " %s [-s udp|tcp]* [-o outfile] [infile]\n"
+#~ msgstr " %s [-s udp|tcp]* [-o archivo_salida] [archivo_entrada]\n"
+
+#~ msgid "%s, line %d: "
+#~ msgstr "%s, l�nea %d: "
+
+#~ msgid "%s: output would overwrite %s\n"
+#~ msgstr "%s: la salida sobreescribir�a %s\n"
+
+#~ msgid "%s: unable to open "
+#~ msgstr "%s: no se pudo abrir "
+
+# 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 archivo 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 "constant or identifier expected"
+#~ msgstr "esperada una constante o un identificador"
+
+#~ msgid "definition keyword expected"
+#~ msgstr "esperada una palabra clave"
+
+# Sugerencia: se esperaba `%s'. sv
+# Ok em+
+#~ msgid "expected '%s'"
+#~ msgstr "se esperaba `%s'"
+
+# Sugerencia: Lo mismo de antes. sv
+# OK em+
+#~ msgid "expected '%s' or '%s'"
+#~ msgstr "se esperaba `%s' � `%s' "
+
+# Lo mismo. sv
+#~ msgid "expected '%s', '%s' or '%s'"
+#~ msgstr "se esperaba `%s', `%s' � `%s'"
+
+#~ msgid "expected type specifier"
+#~ msgstr "esperado especificador de tipo"
+
+#~ msgid "illegal character in file: "
+#~ msgstr "car�cter no v�lido en el archivo: "
+
+#~ msgid "illegal result type"
+#~ msgstr "tipo resultante no v�lido"
+
+#~ msgid "no array-of-pointer declarations -- use typedef"
+#~ msgstr "no existe ninguna declaraci�n de array-of-pointer -- usar typedef"
+
+#~ msgid "preprocessor error"
+#~ msgstr "error del preprocesador"
+
+#~ msgid "too many files!\n"
+#~ msgstr "�demasiados archivos!\n"
+
+#~ msgid "unterminated string constant"
+#~ msgstr "cadena de caracteres sin terminar"
+
+# Tambi�n se podr�a haber puesto "Uso:"
+# En recode ya se puso "Modo de empleo"
+# me suena a prospecto de crecepelo EM
+#
+#~ msgid "usage: %s infile\n"
+#~ msgstr "Modo de empleo: %s archivo_de_entrada\n"
+
+# "array" es "array"?
+# Lo miro con cuidado , los archivos 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 archivo 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"
+
+#~ msgid "voids allowed only inside union and program definitions"
+#~ msgstr ""
+#~ "voids s�lo se permiten dentro de las definiciones de uniones y de programa"
+
+#~ msgid "Reserved error 82"
+#~ msgstr "Error reservado 82"
+
+#~ msgid "Reserved error 83"
+#~ msgstr "Error reservado 83"
+
+#~ msgid "Reserved error 84"
+#~ msgstr "Error reservado 84"
+
+#~ msgid "Reserved error 85"
+#~ msgstr "Error reservado 85"
+
+#~ msgid "Reserved error 86"
+#~ msgstr "Error reservado 86"
+
+#~ msgid "Reserved error 87"
+#~ msgstr "Error reservado 87"
+
+#~ msgid "Reserved error 88"
+#~ msgstr "Error reservado 88"
+
+#~ msgid "Reserved error 89"
+#~ msgstr "Error reservado 89"
+
+#~ msgid "Reserved error 90"
+#~ msgstr "Error reservado 90"
+
+#~ msgid "Reserved error 91"
+#~ msgstr "Error reservado 91"
+
+#~ msgid "Reserved error 92"
+#~ msgstr "Error reservado 92"
+
+#~ msgid "Reserved error 93"
+#~ msgstr "Error reservado 93"
+
+#~ msgid "Reserved error 94"
+#~ msgstr "Error reservado 94"
+
+#~ msgid "Reserved error 95"
+#~ msgstr "Error reservado 95"
+
+#~ msgid "Reserved error 96"
+#~ msgstr "Error reservado 96"
+
+#~ msgid "Reserved error 97"
+#~ msgstr "Error reservado 97"
+
+#~ msgid "Reserved error 98"
+#~ msgstr "Error reservado 98"
+
+#~ msgid "Reserved error 99"
+#~ msgstr "Error reservado 99"
+
+# 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'"
diff --git a/po/fr.po b/po/fr.po
index 62fdd23690..20382f340f 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -4,25 +4,15 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: GNU libc 1.94\n"
-"POT-Creation-Date: 1996-09-08 03:45 -0400\n"
-"PO-Revision-Date: 1996-10-10 19:03 -0400\n"
+"Project-Id-Version: GNU libc 1.96\n"
+"POT-Creation-Date: 1996-10-17 03:22+0200\n"
+"PO-Revision-Date: 1996-10-22 22:01 -0400\n"
"Last-Translator: Michel Robitaille <robitail@IRO.UMontreal.CA>\n"
"Language-Team: French <fr@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
-#: sunrpc/rpc_main.c:80
-#, c-format
-msgid " %s [-c | -h | -l | -m] [-o outfile] [infile]\n"
-msgstr " %s [-c | -h | -l | -m] [-o fichier_de_sortie] [fichier_d_entr�e]\n"
-
-#: sunrpc/rpc_main.c:83
-#, c-format
-msgid " %s [-s udp|tcp]* [-o outfile] [infile]\n"
-msgstr " %s [-s udp|tcp]* [-o fichier_de_sortie] [fichier_d_entr�e]\n"
-
#: sunrpc/rpcinfo.c:612
msgid " rpcinfo -b prognum versnum\n"
msgstr " rpcinfo -b no_program no_version\n"
@@ -43,217 +33,173 @@ msgstr " rpcinfo [ -n no_de_port ] -t h�te no_program [ no_version ]\n"
msgid " program vers proto port\n"
msgstr " program no_version protocole no_port\n"
-#: time/zic.c:425
-#, c-format
+#: time/zic.c:424
msgid " (rule from \"%s\", line %d)"
msgstr " (r�gles de \"%s\", ligne %d)"
-#: locale/programs/ld-collate.c:360 locale/programs/ld-ctype.c:1233
+#: locale/programs/ld-collate.c:360 locale/programs/ld-ctype.c:1234
msgid " done\n"
-msgstr " compl�t�\n"
+msgstr " compl�t�.\n"
-#: time/zic.c:422
-#, c-format
+#: time/zic.c:421
msgid "\"%s\", line %d: %s"
-msgstr "\"%s\", ligne %d: %s"
+msgstr "\"%s\", ligne %d: %s."
-#: time/zic.c:946
-#, c-format
+#: time/zic.c:945
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "La ligne \"Zone %s\" et l'option -l sont mutuellement exclusives."
-#: time/zic.c:954
-#, c-format
+#: time/zic.c:953
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "La ligne \"Zone %s\" et l'option -p sont mutuellement exclusives."
-#: time/zic.c:759
-#, c-format
+#: time/zic.c:758
msgid "%s in ruleless zone"
msgstr "%s est dans une zone sans r�gle."
#: assert/assert.c:48
-#, c-format
msgid "%s%s%s:%u: %s%sAssertion `%s' failed.\n"
msgstr "%s%s%s:%u: %s%s l'assertion `%s' a �chou�.\n"
#: assert/assert-perr.c:46
-#, c-format
msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n"
-msgstr "%s%s%s:%u: %s%s erreur non pr�vue: %s.\n"
+msgstr "%s%s%s:%u: %s%s erreur impr�vue: %s.\n"
#: stdio-common/psignal.c:48
-#, c-format
msgid "%s%sUnknown signal %d\n"
-msgstr "%s%ssignal inconnu %d\n"
+msgstr "%s%ssignal inconnu %d.\n"
-#: sunrpc/rpc_util.c:258
-#, c-format
-msgid "%s, line %d: "
-msgstr "%s, ligne %d: "
-
-#: time/zic.c:2140
-#, c-format
+#: time/zic.c:2139
msgid "%s: %d did not sign extend correctly\n"
-msgstr "%s: %d n'a pas fait correctement l'expansion de la valeur sign�e\n"
+msgstr "%s: %d n'a pas fait correctement l'expansion de la valeur sign�e.\n"
#: locale/programs/charmap.c:176
-#, c-format
msgid "%s: <mb_cur_max> must be greater than <mb_cur_min>\n"
-msgstr "%s: <mb_cur_max> doit �tre plus grande que <mb_cur_min>\n"
+msgstr "%s: <mb_cur_max> doit �tre plus grande que <mb_cur_min>.\n"
-#: time/zic.c:1431
-#, c-format
+#: time/zic.c:1430
msgid "%s: Can't create %s: %s\n"
-msgstr "%s: ne peut cr�er %s: %s\n"
+msgstr "%s: ne peut cr�er %s: %s.\n"
-#: time/zic.c:2119
-#, c-format
+#: time/zic.c:2118
msgid "%s: Can't create directory %s: %s\n"
-msgstr "%s: ne peut cr�er le r�pertoire %s: %s\n"
+msgstr "%s: ne peut cr�er le r�pertoire %s: %s.\n"
-#: time/zic.c:613
-#, c-format
+#: time/zic.c:612
msgid "%s: Can't link from %s to %s: %s\n"
-msgstr "%s: ne peut �tablir un lien entre %s et %s: %s\n"
+msgstr "%s: ne peut �tablir un lien entre %s et %s: %s.\n"
-#: time/zic.c:784
-#, c-format
+#: time/zic.c:783
msgid "%s: Can't open %s: %s\n"
-msgstr "%s: ne peut ouvrir %s: %s\n"
+msgstr "%s: ne peut ouvrir %s: %s.\n"
-#: time/zic.c:852
-#, c-format
+#: time/zic.c:851
msgid "%s: Error closing %s: %s\n"
-msgstr "%s: erreur lors de la fermeture de %s: %s\n"
+msgstr "%s: erreur lors de la fermeture de %s: %s.\n"
-#: time/zic.c:846
-#, c-format
+#: time/zic.c:845
msgid "%s: Error reading %s\n"
-msgstr "%s: erreur de lecture de %s\n"
+msgstr "%s: erreur de lecture de %s.\n"
-#: time/zic.c:1495
-#, c-format
+#: time/zic.c:1494
msgid "%s: Error writing %s\n"
-msgstr "%s: erreur d'�criture de %s\n"
+msgstr "%s: erreur d'�criture de %s.\n"
#: time/zdump.c:258
-#, c-format
msgid "%s: Error writing standard output "
-msgstr "%s: erreur d'�criture sur la sortie standard "
+msgstr "%s: erreur d'�criture sur la sortie standard."
-#: time/zic.c:831
-#, c-format
+#: time/zic.c:830
msgid "%s: Leap line in non leap seconds file %s\n"
-msgstr "%s: ligne de type `Leap' dans un fichier qui n'a pas de d�lai en secondes %s\n"
+msgstr ""
+"%s: ligne de type `Leap' dans un fichier qui n'a pas\n"
+"de d�lai en secondes %s.\n"
#: time/zic.c:362
-#, c-format
msgid "%s: Memory exhausted: %s\n"
-msgstr "%s: m�moire �puis�e: %s\n"
+msgstr "%s: m�moire �puis�e: %s.\n"
-#: time/zic.c:528
-#, c-format
+#: time/zic.c:527
msgid "%s: More than one -L option specified\n"
msgstr "%s: option -L sp�cifi�e plus d'une fois.\n"
-#: time/zic.c:488
-#, c-format
+#: time/zic.c:487
msgid "%s: More than one -d option specified\n"
msgstr "%s: option -d sp�cifi�e plus d'une fois.\n"
-#: time/zic.c:498
-#, c-format
+#: time/zic.c:497
msgid "%s: More than one -l option specified\n"
msgstr "%s: option -l sp�cifi�e plus d'une fois.\n"
-#: time/zic.c:508
-#, c-format
+#: time/zic.c:507
msgid "%s: More than one -p option specified\n"
msgstr "%s: option -p sp�cifi�e plus d'une fois.\n"
-#: time/zic.c:518
-#, c-format
+#: time/zic.c:517
msgid "%s: More than one -y option specified\n"
msgstr "%s: option -y sp�cifi�e plus d'une fois.\n"
-#: time/zic.c:1846
-#, c-format
+#: time/zic.c:1845
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: la commande �tait '%s', le r�sultat �tait %d.\n"
#: locale/programs/charmap.c:593 locale/programs/locfile.c:878
-#, c-format
msgid "%s: error in state machine"
msgstr "%s: erreur de l'automate � �tats finis."
-#: posix/getopt.c:686
-#, c-format
+#: posix/getopt.c:687
msgid "%s: illegal option -- %c\n"
msgstr "%s: option ill�gale -- %c.\n"
-#: posix/getopt.c:689
-#, c-format
+#: posix/getopt.c:690
msgid "%s: invalid option -- %c\n"
msgstr "%s: option invalide -- %c.\n"
-#: posix/getopt.c:610
-#, c-format
+#: posix/getopt.c:611
msgid "%s: option `%c%s' doesn't allow an argument\n"
msgstr "%s: l'option `%c%s' ne permet pas de param�tre.\n"
-#: posix/getopt.c:581
-#, c-format
+#: posix/getopt.c:582
msgid "%s: option `%s' is ambiguous\n"
msgstr "%s: l'option `%s' est ambigu�.\n"
-#: posix/getopt.c:627
-#, c-format
+#: posix/getopt.c:628 posix/getopt.c:801
msgid "%s: option `%s' requires an argument\n"
msgstr "%s: l'option `%s' requiert un param�tre.\n"
-#: posix/getopt.c:605
-#, c-format
+#: posix/getopt.c:606
msgid "%s: option `--%s' doesn't allow an argument\n"
msgstr "%s: l'option `--%s' ne permet pas de param�tre.\n"
-#: posix/getopt.c:725
-#, c-format
+#: posix/getopt.c:786
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: l'option `-W %s' ne permet pas de param�tre.\n"
+
+#: posix/getopt.c:767
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: l'option `-W %s' est ambigu�.\n"
+
+#: posix/getopt.c:721 posix/getopt.c:850
msgid "%s: option requires an argument -- %c\n"
msgstr "%s: l'option requiert un param�tre -- %c.\n"
-#: sunrpc/rpc_main.c:146
-#, c-format
-msgid "%s: output would overwrite %s\n"
-msgstr "%s: la sortie �craserait %s.\n"
-
-#: time/zic.c:838 time/zic.c:1249 time/zic.c:1269
-#, c-format
+#: time/zic.c:837 time/zic.c:1248 time/zic.c:1268
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: panique: valeur %d de type `l_value' invalide.\n"
#: locale/programs/charmap.c:600
-#, c-format
msgid "%s: premature end of file"
msgstr "%s: fin pr�matur�e de fichier."
-#: sunrpc/rpc_main.c:152
-#, c-format
-msgid "%s: unable to open "
-msgstr "%s: incapable d'ouvrir "
-
-#: posix/getopt.c:660
-#, c-format
+#: posix/getopt.c:661
msgid "%s: unrecognized option `%c%s'\n"
msgstr "%s: option non reconnue `%c%s'.\n"
-#: posix/getopt.c:656
-#, c-format
+#: posix/getopt.c:657
msgid "%s: unrecognized option `--%s'\n"
msgstr "%s: option non reconnue `--%s'.\n"
-#: time/zic.c:447
-#, c-format
+#: time/zic.c:446
msgid ""
"%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] [ -d "
"directory ]\n"
@@ -264,12 +210,10 @@ msgstr ""
"\t[ -L secondes_�coul�es ] [ -y type_ann�e ] [ fichier ... ]\n"
#: time/zdump.c:165
-#, c-format
msgid "%s: usage is %s [ -v ] [ -c cutoff ] zonename ...\n"
msgstr "%s: usage: %s [ -v ] [ -c seuil ] nom_de_zone ...\n"
#: sunrpc/clnt_perr.c:125
-#, c-format
msgid "(unknown authentication error - %d)"
msgstr "(erreur inconnue d'authentification - %d)"
@@ -277,7 +221,7 @@ msgstr "(erreur inconnue d'authentification - %d)"
msgid "(unknown)"
msgstr "(inconnu)"
-#: catgets/gencat.c:244
+#: catgets/gencat.c:253
msgid "*standard input*"
msgstr "*entr�e standard*"
@@ -285,24 +229,23 @@ msgstr "*entr�e standard*"
msgid ".lib section in a.out corrupted"
msgstr "La section .lib dans a.out est corrompue."
-#: inet/rcmd.c:325
+#: inet/rcmd.c:328
msgid ".rhosts fstat failed"
msgstr "�chec d'�valuation fstat() de .rhosts."
-#: inet/rcmd.c:321
+#: inet/rcmd.c:324
msgid ".rhosts lstat failed"
msgstr "�chec d'�valuation lstat() de .rhosts."
-#: inet/rcmd.c:323
+#: inet/rcmd.c:326
msgid ".rhosts not regular file"
msgstr ".rhosts n'est pas un fichier r�gulier."
-#: inet/rcmd.c:329
+#: inet/rcmd.c:332
msgid ".rhosts writeable by other than owner"
msgstr ".rhosts accessible en �criture par d'autres que le propri�taire."
#: sunrpc/clnt_perr.c:112 sunrpc/clnt_perr.c:133
-#, c-format
msgid "; low version = %lu, high version = %lu"
msgstr "; version basse = %lu, version haute = %lu"
@@ -310,15 +253,13 @@ msgstr "; version basse = %lu, version haute = %lu"
msgid "; why = "
msgstr "; pourquoi = "
-#: locale/programs/ld-ctype.c:325
-#, c-format
+#: locale/programs/ld-ctype.c:326
msgid "<SP> character must not be in class `%s'"
-msgstr "Le caract�res <SP> ne doit pas �tre dans la classe `%s'."
+msgstr "Le caract�re <SP> ne doit pas �tre dans la classe `%s'."
-#: locale/programs/ld-ctype.c:316
-#, c-format
+#: locale/programs/ld-ctype.c:317
msgid "<SP> character not in class `%s'"
-msgstr "Le caract�res <SP> n'est pas dans la classe `%s'."
+msgstr "Le caract�re <SP> n'est pas dans la classe `%s'."
#. 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.
@@ -346,6 +287,9 @@ msgstr "Famille d'adresses non support�e par le protocole."
msgid "Advertise error"
msgstr "Erreur d'annonce."
+msgid "Alarm clock"
+msgstr "Minuterie d'alerte"
+
#. 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
@@ -391,7 +335,7 @@ msgstr "Mauvais format du fichier de fontes."
msgid "Block device required"
msgstr "Bloc de p�riph�rique requis."
-#: sunrpc/pmap_rmt.c:335
+#: sunrpc/pmap_rmt.c:337
msgid "Broadcast select problem"
msgstr "Probl�me de s�lection durant la diffusion."
@@ -404,6 +348,12 @@ msgstr "Probl�me de s�lection durant la diffusion."
msgid "Broken pipe"
msgstr "Relais bris� (pipe)"
+msgid "Bus error"
+msgstr "Erreur du BUS."
+
+msgid "CPU time limit exceeded"
+msgstr "Temps limite expir�."
+
#: stdio-common/../sysdeps/gnu/errlist.c:758
msgid "Can not access a needed shared library"
msgstr "Ne peut acc�der � la librairie partag�e demand�e."
@@ -421,7 +371,7 @@ msgstr "Ne peut allouer de la m�moire."
msgid "Cannot assign requested address"
msgstr "Ne peut attribuer l'adresse demand�e."
-#: sunrpc/pmap_rmt.c:253
+#: sunrpc/pmap_rmt.c:255
msgid "Cannot create socket for broadcast rpc"
msgstr "Ne peut cr�er un socket pour une diffusion de type rpc."
@@ -429,7 +379,7 @@ msgstr "Ne peut cr�er un socket pour une diffusion de type rpc."
msgid "Cannot exec a shared library directly"
msgstr "Ne peut ex�cuter une librairie partag�e directement."
-#: sunrpc/pmap_rmt.c:347
+#: sunrpc/pmap_rmt.c:349
msgid "Cannot receive reply to broadcast"
msgstr "Ne peut recevoir l'accus� r�ception � la requ�te faite par diffusion."
@@ -442,11 +392,11 @@ msgstr "Ne peut enregistrer le service."
msgid "Cannot send after transport endpoint shutdown"
msgstr "Ne peut transmettre apr�s la fermeture du noeud final de transport."
-#: sunrpc/pmap_rmt.c:311
+#: sunrpc/pmap_rmt.c:313
msgid "Cannot send broadcast packet"
msgstr "Ne peut transmettre le paquet par diffusion."
-#: sunrpc/pmap_rmt.c:259
+#: sunrpc/pmap_rmt.c:261
msgid "Cannot set socket option SO_BROADCAST"
msgstr "Ne peut initialiser l'option `SO_BROADCAST' de socket."
@@ -454,6 +404,9 @@ msgstr "Ne peut initialiser l'option `SO_BROADCAST' de socket."
msgid "Channel number out of range"
msgstr "Num�ro de canal en dehors des limites."
+msgid "Child exited"
+msgstr "Le processus `enfant' a termin�."
+
#: sunrpc/clnt_perr.c:286
msgid "Client credential too weak"
msgstr "Identit� du client peu fiable."
@@ -467,7 +420,7 @@ msgstr "Erreur de communication lors de la transmission."
msgid "Computer bought the farm"
msgstr "Allez � la maison et buvez un verre de lait."
-#: locale/programs/ld-ctype.c:1196
+#: locale/programs/ld-ctype.c:1197
msgid "Computing table size for character classes might take a while..."
msgstr ""
"Le calcul de la taille de la table des classes de caract�res\n"
@@ -498,6 +451,22 @@ msgstr "Connexion r�-initialis�e par le correspondant."
msgid "Connection timed out"
msgstr "Connexion termin�e par expiration du d�lai d'inactivit�."
+msgid "Continued"
+msgstr "Poursuite."
+
+#: catgets/gencat.c:169 db/makedb.c:120 locale/programs/locale.c:187
+#: locale/programs/localedef.c:177
+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"
+"Ce logiciel est gratuit; voir les fichiers source pour les conditions\n"
+"de reproduction.\n"
+"Aucune garantie n'est donn�e; tant pour des raisons COMMER�IALES que pour\n"
+"r�pondre � un BESOIN PARTICULIER.\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}.
@@ -507,7 +476,7 @@ msgstr "Adresse de destination requise."
#: stdio-common/../sysdeps/gnu/errlist.c:686
msgid "Device not a stream"
-msgstr "Le p�riph�rique n'est pas de type stream."
+msgstr "Le p�riph�rique n'est pas de type `stream'."
#. 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.
@@ -537,7 +506,6 @@ msgid "Disc quota exceeded"
msgstr "D�bordement du quota du disque."
#: sunrpc/clnt_perr.c:254
-#, c-format
msgid "Error %d"
msgstr "Erreur %d"
@@ -545,7 +513,7 @@ msgstr "Erreur %d"
msgid "Error in unknown error system: "
msgstr "Erreur provenant d'une erreur syst�me inconnue: "
-#: inet/ruserpass.c:156
+#: inet/ruserpass.c:161
msgid "Error: .netrc file is readable by others."
msgstr "Erreur: le fichier .netrc est lisible par les autres."
@@ -559,7 +527,7 @@ msgstr "L'�changeur est plein."
msgid "Exec format error"
msgstr "Erreur de format pour exec()."
-#: locale/programs/localedef.c:207
+#: locale/programs/localedef.c:213
msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
msgstr "ERREUR FATALE: le syst�me ne peut d�finir `_POSIX2_LOCALEDEF'"
@@ -588,11 +556,17 @@ msgstr "Erreur de verrou bloquant l'acc�s au fichier"
msgid "File name too long"
msgstr "Nom de fichier trop long."
+msgid "File size limit exceeded"
+msgstr "D�bordement de la taille permise pour un fichier."
+
#. TRANS File too big; the size of a file would be larger than allowed by the system.
#: stdio-common/../sysdeps/gnu/errlist.c:190
msgid "File too large"
msgstr "Fichier trop gros."
+msgid "Floating point exception"
+msgstr "Exception en point flottant."
+
#. TRANS Function not implemented. Some functions have commands or options defined
#. TRANS that might not be supported in all implementations, and this is the kind
#. TRANS of error you get if you request them and they are not supported.
@@ -605,6 +579,9 @@ msgstr "Fonction non implant�e."
msgid "Gratuitous error"
msgstr "Erreur gratuite."
+msgid "Hangup"
+msgstr "Fin de la connexion (raccroch�)."
+
#. TRANS The remote host for a requested network connection is down.
#: stdio-common/../sysdeps/gnu/errlist.c:457
msgid "Host is down"
@@ -614,10 +591,19 @@ msgstr "L'h�te cible est arr�t� ou en panne."
msgid "Host name lookup failure"
msgstr "Erreur de rep�rage du nom de l'h�te cible."
+msgid "I/O possible"
+msgstr "E/S possible."
+
+msgid "IOT trap"
+msgstr "Trappe IOT."
+
#: stdio-common/../sysdeps/gnu/errlist.c:618
msgid "Identifier removed"
msgstr "Identificateur �limin�."
+msgid "Illegal Instruction"
+msgstr "Instruction ill�gale."
+
#. TRANS Invalid seek operation (such as on a pipe).
#: stdio-common/../sysdeps/gnu/errlist.c:201
msgid "Illegal seek"
@@ -653,6 +639,9 @@ msgstr "Op�ration inappropri�e pour un processus d'arri�re-plan."
msgid "Input/output error"
msgstr "Erreur d'entr�e/sortie."
+msgid "Interrupt"
+msgstr "Interruption."
+
#. TRANS Interrupted function call; an asynchronous signal occured and prevented
#. TRANS completion of the call. When this happens, you should try the call
#. TRANS again.
@@ -753,6 +742,9 @@ msgstr "est un r�pertoire."
msgid "Is a named type file"
msgstr "est un type de fichier nomm� (named)."
+msgid "Killed"
+msgstr "Processus arr�t�."
+
#: stdio-common/../sysdeps/gnu/errlist.c:650
msgid "Level 2 halted"
msgstr "Niveau 2 en halte."
@@ -791,8 +783,8 @@ msgstr "M�moire �puis�e."
msgid "Message too long"
msgstr "Message trop long."
+# MRO a verifier
#: stdio-common/../sysdeps/gnu/errlist.c:730
-#: MRO a verifier
msgid "Multihop attempted"
msgstr "Connexion par liens par noeuds multiples de relais tent�e."
@@ -833,8 +825,8 @@ msgstr "Aucun s�maphore XENIX disponible."
msgid "No address associated with name"
msgstr "Aucune adresse associ�e avec le nom."
+# MRO a verifier
#: stdio-common/../sysdeps/gnu/errlist.c:666
-#: MRO a verifier
msgid "No anode"
msgstr "Aucune `anode' disponible."
@@ -872,7 +864,7 @@ msgstr "Pas de concordance."
msgid "No message of desired type"
msgstr "Aucun message du type d�sir�."
-#: posix/regex.c:5202
+#: posix/regex.c:5204
msgid "No previous regular expression"
msgstr "Aucune expression r�guli�re ne pr�c�de."
@@ -936,7 +928,7 @@ msgstr "Le r�sultat num�rique est en dehors de l'intervalle."
msgid "Object is remote"
msgstr "L'objet est t�l�-accessible."
-#: time/zic.c:1940
+#: time/zic.c:1939
msgid "Odd number of quotation marks"
msgstr "Nombre impair de caract�res apostrophe."
@@ -1002,10 +994,16 @@ msgstr "Le package n'est pas install�."
msgid "Permission denied"
msgstr "Permission non accord�e."
+msgid "Power failure"
+msgstr "Panne d'alimentation."
+
#: posix/regex.c:954
msgid "Premature end of regular expression"
msgstr "Fin pr�matur�e de l'expression r�guli�re."
+msgid "Profiling timer expired"
+msgstr "Expiration de la minuterie durant l'�tablissement du profile."
+
#: stdio-common/../sysdeps/gnu/errlist.c:642
msgid "Protocol driver not attached"
msgstr "Pilote du protocole n'est pas attach�."
@@ -1037,6 +1035,9 @@ msgstr "Protocole non support�."
msgid "Protocol wrong type for socket"
msgstr "Mauvais type pour un socket de protocole."
+msgid "Quit"
+msgstr "Quitter."
+
#: stdio-common/../sysdeps/gnu/errlist.c:734
msgid "RFS specific error"
msgstr "Erreur sp�cifique � RFS."
@@ -1159,9 +1160,15 @@ msgstr "Erreur d'entr�e/sortie sur l'h�te cible."
msgid "Remote address changed"
msgstr "L'adresse de l'h�te cible a �t� modifi�e."
-#: inet/ruserpass.c:157
+#: inet/ruserpass.c:162
msgid "Remove password or make file unreadable by others."
-msgstr "Retirer le mot de passe ou rendre les fichiers illisibles par les autres."
+msgstr ""
+"Retirer le mot de passe ou rendre les fichiers illisibles par les autres."
+
+#: catgets/gencat.c:224 db/makedb.c:227 locale/programs/locale.c:257
+#: locale/programs/localedef.c:408
+msgid "Report bugs to <bug-glibc@prep.ai.mit.edu>.\n"
+msgstr "Rapporter toutes anomalies � l'adresse suivante: <bug-glibc@prep.ai.mit.edu>.\n"
#: resolv/herror.c:73
msgid "Resolver Error 0 (no error)"
@@ -1212,6 +1219,9 @@ msgstr "Blocage �vit� des acc�s aux ressources."
msgid "Resource temporarily unavailable"
msgstr "Ressource temporairement non disponible."
+msgid "Segmentation fault"
+msgstr "Erreur de segmentation."
+
#: sunrpc/clnt_perr.c:280
msgid "Server rejected credential"
msgstr "Le serveur a rejet� l'identit�."
@@ -1247,6 +1257,18 @@ msgstr "Erreur srmount()."
msgid "Stale NFS file handle"
msgstr "Panne d'acc�s au fichier NFS."
+msgid "Stopped"
+msgstr "Arr�t�."
+
+msgid "Stopped (signal)"
+msgstr "Signal d'arr�t."
+
+msgid "Stopped (tty input)"
+msgstr "Arr�t� (via l'entr�e sur tty)."
+
+msgid "Stopped (tty output)"
+msgstr "Arr�t� (via la sortie sur tty)."
+
#: stdio-common/../sysdeps/gnu/errlist.c:778
msgid "Streams pipe error"
msgstr "Erreur de relais de type streams."
@@ -1259,6 +1281,9 @@ msgstr "La structure a besoin d'un nettoyage."
msgid "Success"
msgstr "Succ�s."
+msgid "Terminated"
+msgstr "Compl�t�."
+
#. 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
@@ -1321,6 +1346,9 @@ msgstr "Trop de r�f�rences: ne peut segmenter."
msgid "Too many users"
msgstr "Trop d'usagers."
+msgid "Trace/breakpoint trap"
+msgstr "Trappe pour point d'arr�t et de trace."
+
#: posix/regex.c:945
msgid "Trailing backslash"
msgstr "Barre oblique en suffixe."
@@ -1346,19 +1374,16 @@ msgstr "Noeud final de transport d�j� connect�."
msgid "Transport endpoint is not connected"
msgstr "Le noeud final de transport n'est pas connect�."
-#: catgets/gencat.c:202 db/makedb.c:197 locale/programs/locale.c:234
-#: locale/programs/localedef.c:383
-#, c-format
+#: catgets/gencat.c:208 db/makedb.c:209 locale/programs/locale.c:241
+#: locale/programs/localedef.c:389
msgid "Try `%s --help' for more information.\n"
msgstr "Pour en savoir davantage, faites: `%s --help'.\n"
-#: inet/rcmd.c:118
-#, c-format
+#: inet/rcmd.c:121
msgid "Trying %s...\n"
msgstr "On tente %s...\n"
-#: inet/ruserpass.c:241
-#, c-format
+#: inet/ruserpass.c:246
msgid "Unknown .netrc keyword %s"
msgstr "Mot cl� inconnu %s dans .netrc."
@@ -1380,11 +1405,10 @@ msgid "Unknown server error"
msgstr "Erreur du serveur inconnu."
#: string/strsignal.c:40
-#, c-format
msgid "Unknown signal %d"
msgstr "Signal inconnu %d"
-#: misc/error.c:92
+#: misc/error.c:94
msgid "Unknown system error"
msgstr "Erreur syst�me inconnue."
@@ -1402,15 +1426,16 @@ msgstr "�chec du pairage de [ ou de [^"
#: posix/regex.c:949
msgid "Unmatched \\{"
-msgstr "�chec du pairage de \\{"
+msgstr "�chec du pairage de \\{."
-#: posix/getconf.c:184
-#, c-format
+#: posix/getconf.c:191
msgid "Unrecognized variable `%s'"
-msgstr "Variable non reconnue `%s'"
+msgstr "Variable non reconnue `%s'."
+
+msgid "Urgent I/O condition"
+msgstr "Condition d'E/S urgente."
-#: catgets/gencat.c:205
-#, c-format
+#: catgets/gencat.c:212
msgid ""
"Usage: %s [OPTION]... -o OUTPUT-FILE [INPUT-FILE]...\n"
" %s [OPTION]... [OUTPUT-FILE [INPUT-FILE]...]\n"
@@ -1422,7 +1447,6 @@ msgid ""
" -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"
-"Report bugs to <bug-glibc@prep.ai.mit.edu>.\n"
msgstr ""
"Usage: %s [OPTION]... -o FICHIER_DE_SORTIE [FICHIER_D_ENTR�E]...\n"
" %s [OPTION]... [FICHIER_DE_SORTIE [FICHIER_D_ENTR�E]...]\n"
@@ -1437,10 +1461,8 @@ msgstr ""
" -V, --version afficher le nom et la version du logiciel\n"
"Si le FICHIER_D_ENTR�E est -, la lecture se fait de l'entr�e standard.\n"
"Si le FICHIER_DE_SORTIE est -, l'�criture se fait sur la sortie standard.\n"
-"Rapporter toutes anomalies � l'adresse suivante: <bug-glibc@prep.ai.mit.edu>.\n"
-#: db/makedb.c:200
-#, c-format
+#: db/makedb.c:213
msgid ""
"Usage: %s [OPTION]... INPUT-FILE OUTPUT-FILE\n"
" %s [OPTION]... -o OUTPUT-FILE INPUT-FILE\n"
@@ -1453,7 +1475,6 @@ msgid ""
" -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"
-"Report bugs to <bug-glibc@prep.ai.mit.edu>.\n"
msgstr ""
"Usage: %s [OPTION]... FICHIER_D_ENTR�E FICHIER_DE_SORTIE\n"
" %s [OPTION]... -o FICHIER_DE_SORTIE FICHIER_D_ENTR�E\n"
@@ -1469,10 +1490,8 @@ msgstr ""
" une entr�e par ligne\n"
" -V, --version afficher le nom et la version du logiciel\n"
"Si le FICHIER_D_ENTR�E est -, la lecture se fait l'entr�e standard.\n"
-"Rapporter toutes anomalies � l'adresse suivante: <bug-glibc@prep.ai.mit.edu>.\n"
-#: locale/programs/localedef.c:386
-#, c-format
+#: locale/programs/localedef.c:393
msgid ""
"Usage: %s [OPTION]... name\n"
"Mandatory arguments to long options are mandatory for short options too.\n"
@@ -1488,7 +1507,6 @@ msgid ""
"\n"
"System's directory for character maps: %s\n"
" locale files : %s\n"
-"Report bugs to <bug-glibc@prep.ai.mit.edu>.\n"
msgstr ""
"Usage: %s [OPTION]... nom\n"
"Les param�tres obligatoires pour les options de formes longues le sont\n"
@@ -1508,10 +1526,8 @@ msgstr ""
"\n"
"R�pertoire syst�me des tables de caract�res: %s\n"
" fichiers locaux: %s\n"
-"Rapporter toutes anomalies � l'adresse suivante: <bug-glibc@prep.ai.mit.edu>.\n"
-#: locale/programs/locale.c:237
-#, c-format
+#: locale/programs/locale.c:245
msgid ""
"Usage: %s [OPTION]... name\n"
"Mandatory arguments to long options are mandatory for short options too.\n"
@@ -1523,7 +1539,6 @@ msgid ""
"\n"
" -c, --category-name write names of selected categories\n"
" -k, --keyword-name write names of selected keywords\n"
-"Report bugs to <bug-glibc@prep.ai.mit.edu>.\n"
msgstr ""
"Usage: %s [OPTION]... nom\n"
"Les param�tres obligatoires pour les options de formes longues le sont\n"
@@ -1536,10 +1551,8 @@ msgstr ""
"\n"
" -c, --category-name afficher les noms des cat�gories s�lectionn�es\n"
" -k, --keyword-name afficher les noms des mots cl�s s�lectionn�s\n"
-"Rapporter toutes anomalies � l'adresse suivante: <bug-glibc@prep.ai.mit.edu>.\n"
-#: posix/getconf.c:131
-#, c-format
+#: posix/getconf.c:138
msgid "Usage: %s variable_name [pathname]\n"
msgstr "Usage: %s nom_de_variable [chemin_d_acc�s]\n"
@@ -1547,38 +1560,54 @@ msgstr "Usage: %s nom_de_variable [chemin_d_acc�s]\n"
msgid "Usage: rpcinfo [ -n portnum ] -u host prognum [ versnum ]\n"
msgstr "Usage: rpcinfo [ -n no_port ] -u h�te no_prog [ no_version ]\n"
+msgid "User defined signal 1"
+msgstr "Signal #1 d�fini par l'usager."
+
+msgid "User defined signal 2"
+msgstr "Signal #2 d�fini par l'usager."
+
#: stdio-common/../sysdeps/gnu/errlist.c:742
msgid "Value too large for defined data type"
msgstr "Valeur trop grande pour le type d�fini de donn�es."
-#: time/zic.c:1845
+msgid "Virtual timer expired"
+msgstr "Expiration de la minuterie virtuelle."
+
+#: time/zic.c:1844
msgid "Wild result from command execution"
msgstr "R�sultat anarchique r�sultant de l'ex�cution de la commande."
+msgid "Window changed"
+msgstr "La fen�tre a chang�e."
+
+#: catgets/gencat.c:174 db/makedb.c:125 locale/programs/locale.c:192
+#: locale/programs/localedef.c:182
+msgid "Written by %s.\n"
+msgstr "�crits par %s.\n"
+
#. TRANS You did @strong{what}?
#: stdio-common/../sysdeps/gnu/errlist.c:596
msgid "You really blew it this time"
msgstr "Vous avez vraiment tout g�cher cette fois-ci."
-#: time/zic.c:1051
+#: time/zic.c:1050
msgid "Zone continuation line end time is not after end time of previous line"
msgstr ""
"Temps final de la ligne de la zone de continuation est ant�rieur\n"
"au temps final de la ligne pr�c�dente."
#: locale/programs/charmap.c:397 locale/programs/locfile.c:341
-#, c-format
msgid "`%1$s' definition does not end with `END %1$s'"
-msgstr "`%1$s' la d�finition ne se termine pas par `END %1$s'"
+msgstr "`%1$s' la d�finition ne se termine pas par `END %1$s'."
#: locale/programs/ld-monetary.c:358 locale/programs/ld-numeric.c:190
-#, c-format
msgid "`-1' must be last entry in `%s' field in `%s' category"
-msgstr "`-1' doit �tre la derni�re entr�e du champ `%s' de cat�gorie `%s'"
+msgstr "`-1' doit �tre la derni�re entr�e du champ `%s' de cat�gorie `%s'."
#: locale/programs/ld-collate.c:1651
msgid "`...' must only be used in `...' and `UNDEFINED' entries"
-msgstr "`...' doit �tre utilis� seulement avec les entr�es `...' et `UNDEFINED'"
+msgstr ""
+"`...' doit �tre utilis� seulement avec les entr�es `...' et `UNDEFINED'."
#: locale/programs/locfile.c:538
msgid "`from' expected after first argument to `collating-element'"
@@ -1588,27 +1617,22 @@ msgstr "`from' attendu apr�s le premier param�tre de `collating-element'"
msgid ""
"`from' string in collation element declaration contains unknown character"
msgstr ""
-"La cha�ne `from' d�clarant un �l�ment de fusionnement contient un caract�re inconnu."
+"La cha�ne `from' d�clarant un �l�ment de fusionnement contient un caract�re "
+"inconnu."
#: locale/programs/charmap.c:267
-#, c-format
msgid "argument to <%s> must be a single character"
msgstr "Le param�tre de <%s> doit �tre un caract�re simple."
#: locale/programs/locfile.c:215
-#, c-format
msgid "argument to `%s' must be a single character"
msgstr "Le param�tre de `%s' doit �tre un caract�re simple."
-#: sunrpc/rpc_parse.c:326
-msgid "array declaration expected"
-msgstr "D�claration attendue de tableau."
-
-#: sunrpc/auth_unix.c:314
+#: sunrpc/auth_unix.c:322
msgid "auth_none.c - Fatal marshalling problem"
msgstr "auth_none.c - probl�me fatal de mise en ordre."
-#: inet/rcmd.c:327
+#: inet/rcmd.c:330
msgid "bad .rhosts owner"
msgstr "Mauvais propri�taire du fichier .rhosts."
@@ -1616,11 +1640,11 @@ msgstr "Mauvais propri�taire du fichier .rhosts."
msgid "bad argument"
msgstr "Mauvais param�tre."
-#: time/zic.c:1173
+#: time/zic.c:1172
msgid "blank FROM field on Link line"
msgstr "Champ `FROM' vide dans la ligne de type `Link'."
-#: time/zic.c:1177
+#: time/zic.c:1176
msgid "blank TO field on Link line"
msgstr "Champ `TO' vide dans la ligne de type `Link'."
@@ -1632,36 +1656,33 @@ msgstr "Bloc lib�r� deux fois."
msgid "bogus mcheck_status, library is buggy"
msgstr "Statut de `mcheck_status' erron�, la librarie est erron�e."
-#: sunrpc/pmap_rmt.c:177
+#: sunrpc/pmap_rmt.c:179
msgid "broadcast: ioctl (get interface configuration)"
msgstr "Diffusion: ioctl (a obtenu la configuration de l'interface)"
-#: sunrpc/pmap_rmt.c:184
+#: sunrpc/pmap_rmt.c:186
msgid "broadcast: ioctl (get interface flags)"
msgstr "Diffusion: ioctl (a obtenu la valeur des fanions de l'interface)"
-#: sunrpc/svc_udp.c:398
+#: sunrpc/svc_udp.c:402
msgid "cache_set: victim not found"
msgstr "cache_set: victime non rep�r�e."
-#: time/zic.c:1686
+#: time/zic.c:1685
msgid "can't determine time zone abbrevation to use just after until time"
msgstr ""
"Ne peut d�terminer le nom abr�g� du fuseau horaire � utiliser\n"
"pour rencontrer la condition `jusqu'au temps voulue'."
#: sunrpc/svc_simple.c:64
-#, c-format
msgid "can't reassign procedure number %d\n"
msgstr "Ne peut r�assigner le num�ro de proc�dure %d.\n"
-#: locale/programs/localedef.c:281
-#, c-format
+#: locale/programs/localedef.c:287
msgid "cannot `stat' locale file `%s'"
msgstr "Ne peut effectuer l'�valuation `stat' du fichier local `%s'."
#: locale/programs/ld-collate.c:1313
-#, c-format
msgid "cannot insert collation element `%.*s'"
msgstr "Ne peut ins�rer l'�l�ment de fusionnement `%.*s'."
@@ -1670,32 +1691,27 @@ msgid "cannot insert into result table"
msgstr "Ne peut effectuer une insertion dans la table des r�sultats."
#: locale/programs/ld-collate.c:1165 locale/programs/ld-collate.c:1207
-#, c-format
msgid "cannot insert new collating symbol definition: %s"
-msgstr "Ne peut ins�rer une nouvelle d�finition de symbole de fusionnement: %s."
+msgstr ""
+"Ne peut ins�rer une nouvelle d�finition de symbole de fusionnement: %s."
-#: db/makedb.c:149
-#, c-format
+#: db/makedb.c:161
msgid "cannot open database file `%s': %s"
msgstr "Ne peut ouvrir le fichier de base de donn�es `%s': %s."
-#: catgets/gencat.c:250 db/makedb.c:168
-#, c-format
+#: catgets/gencat.c:259 db/makedb.c:180
msgid "cannot open input file `%s'"
msgstr "Ne peut ouvrir le fichier d'entr�e `%s'."
-#: locale/programs/localedef.c:215
-#, c-format
+#: locale/programs/localedef.c:221
msgid "cannot open locale definition file `%s'"
msgstr "Ne peut ouvrir le fichier des localisations `%s'."
-#: catgets/gencat.c:755 catgets/gencat.c:796 db/makedb.c:177
-#, c-format
+#: catgets/gencat.c:764 catgets/gencat.c:805 db/makedb.c:189
msgid "cannot open output file `%s'"
msgstr "Ne peut ouvrir le fichier de sortie `%s'."
#: locale/programs/locfile.c:986
-#, c-format
msgid "cannot open output file `%s' for category `%s'"
msgstr "Ne peut ouvrir le fichier de sortie `%s' de cat�gorie `%s'."
@@ -1703,71 +1719,62 @@ msgstr "Ne peut ouvrir le fichier de sortie `%s' de cat�gorie `%s'."
msgid "cannot process order specification"
msgstr "Ne peut traiter la sp�cification d'ordonnancement."
-#: locale/programs/locale.c:293
-#, c-format
+#: locale/programs/locale.c:303
msgid "cannot read character map directory `%s'"
msgstr "Ne peut lire via le r�pertoire de la table des caract�res `%s'."
-#: locale/programs/locale.c:268
-#, c-format
+#: locale/programs/locale.c:278
msgid "cannot read locale directory `%s'"
msgstr "Ne peut lire via le r�pertoire des d�finitions localis�es `%s'."
-#: locale/programs/localedef.c:303
-#, c-format
+#: locale/programs/localedef.c:309
msgid "cannot read locale file `%s'"
msgstr "Ne peut lire le fichier des d�finitions localis�es `%s'."
-#: locale/programs/localedef.c:328
-#, c-format
+#: locale/programs/localedef.c:334
msgid "cannot write output files to `%s'"
msgstr "Ne peut �crire dans les fichiers de sortie vers `%s'."
-#: locale/programs/localedef.c:371
+#: locale/programs/localedef.c:377
msgid "category data requested more than once: should not happen"
-msgstr "Cat�gorie de donn�es requises plus d'une fois: n'aurait pas d� se produire."
+msgstr ""
+"Cat�gorie de donn�es requises plus d'une fois: n'aurait pas d� se produire."
-#: locale/programs/ld-ctype.c:264
-#, c-format
+#: locale/programs/ld-ctype.c:265
msgid "character %s'%s' in class `%s' must be in class `%s'"
msgstr "Caract�re %s'%s' de la classe `%s' doit �tre dans la classe `%s'."
-#: locale/programs/ld-ctype.c:288
-#, c-format
+#: locale/programs/ld-ctype.c:289
msgid "character %s'%s' in class `%s' must not be in class `%s'"
-msgstr "Caract�re %s'%s' de la classe `%s' ne doit pas �tre dans la classe `%s'."
+msgstr ""
+"Caract�re %s'%s' de la classe `%s' ne doit pas �tre dans la classe `%s'."
-#: locale/programs/ld-ctype.c:309
+#: locale/programs/ld-ctype.c:310
msgid "character <SP> not defined in character map"
msgstr "Caract�re <SP> non d�fini dans la table des caract�res."
-#: locale/programs/ld-ctype.c:1140
-#, c-format
+#: locale/programs/ld-ctype.c:1141
msgid "character `%c' not defined while needed as default value"
msgstr "Caract�re `%c' non d�fini alors qu'attendu comme valeur par d�faut."
-#: locale/programs/ld-ctype.c:938 locale/programs/ld-ctype.c:1001
-#: locale/programs/ld-ctype.c:1009 locale/programs/ld-ctype.c:1017
-#: locale/programs/ld-ctype.c:1025 locale/programs/ld-ctype.c:1033
-#: locale/programs/ld-ctype.c:1041 locale/programs/ld-ctype.c:1067
-#: locale/programs/ld-ctype.c:1075 locale/programs/ld-ctype.c:1113
-#: locale/programs/ld-ctype.c:1151
-#, c-format
+#: locale/programs/ld-ctype.c:939 locale/programs/ld-ctype.c:1002
+#: locale/programs/ld-ctype.c:1010 locale/programs/ld-ctype.c:1018
+#: locale/programs/ld-ctype.c:1026 locale/programs/ld-ctype.c:1034
+#: locale/programs/ld-ctype.c:1042 locale/programs/ld-ctype.c:1068
+#: locale/programs/ld-ctype.c:1076 locale/programs/ld-ctype.c:1114
+#: locale/programs/ld-ctype.c:1152
msgid "character `%s' not defined while needed as default value"
msgstr "Caract�re `%s' non d�fini alors qu'attendu comme valeur par d�faut."
-#: locale/programs/ld-ctype.c:800
-#, c-format
+#: locale/programs/ld-ctype.c:801
msgid "character class `%s' already defined"
msgstr "Classe de caract�res `%s' d�j� d�finie."
-#: locale/programs/ld-ctype.c:832
-#, c-format
+#: locale/programs/ld-ctype.c:833
msgid "character map `%s' already defined"
msgstr "Table de caract�res `%s' d�j� d�finie."
#: locale/programs/charmap.c:76
-#, c-format
msgid "character map file `%s' not found"
msgstr "Fichier de la table des caract�res `%s' non rep�rable."
@@ -1776,28 +1783,22 @@ msgid "clnt_raw.c - Fatal header serialization error."
msgstr "clnt_raw.c - erreur fatale de s�rialisation d'en-t�te."
#: locale/programs/ld-collate.c:1328
-#, c-format
msgid "collation element `%.*s' appears more than once: ignore line"
-msgstr "�l�ment de fusionnement `%.*s' appara�t plus d'une fois: ligne ignor�e."
+msgstr ""
+"�l�ment de fusionnement `%.*s' appara�t plus d'une fois: ligne ignor�e."
#: locale/programs/ld-collate.c:1346
msgid "collation symbol `.*s' appears more than once: ignore line"
msgstr "Symbole de fusionnement `.*s' appara�t plus d'une fois: ligne ignor�e."
#: locale/programs/locfile.c:522
-#, c-format
msgid "collation symbol expected after `%s'"
msgstr "Symbole de fusionnement attendu apr�s `%s'."
-#: inet/rcmd.c:112
-#, c-format
+#: inet/rcmd.c:114
msgid "connect to address %s: "
msgstr "Connexion �tablie � l'adresse %s: "
-#: sunrpc/rpc_scan.c:109
-msgid "constant or identifier expected"
-msgstr "Constante ou identificateur attendu."
-
#: sunrpc/svc_simple.c:70
msgid "couldn't create an rpc server\n"
msgstr "Ne peut cr�er un serveur rpc.\n"
@@ -1811,21 +1812,30 @@ msgid "couldn't do udp_create\n"
msgstr "Ne peut ex�cuter udp_create.\n"
#: sunrpc/svc_simple.c:77
-#, c-format
msgid "couldn't register prog %d vers %d\n"
msgstr "Ne peut enregistrer le programme %d de version %d.\n"
#: locale/programs/charmap.c:86
-#, c-format
msgid "default character map file `%s' not found"
msgstr "Fichier de la table des caract�res par d�faut `%s' non rep�r�."
-#: sunrpc/rpc_parse.c:77
-msgid "definition keyword expected"
-msgstr "D�finition de mot cl� attendu."
+#: locale/programs/ld-time.c:154
+msgid ""
+"direction flag in string %d in `era' field in category `%s' is not '+' nor "
+"'-'"
+msgstr ""
+"L'indication de direction dans la cha�ne %d du champ `era' de\n"
+"cat�gorie `%s' n'est pas un `+' ni un `-'."
+
+#: locale/programs/ld-time.c:164
+msgid ""
+"direction flag in string %d in `era' field in category `%s' is not a single "
+"character"
+msgstr ""
+"L'indication de direction dans la cha�ne %d du champ `era' de\n"
+"cat�gorie `%s' n'est pas un caract�res simple."
#: locale/programs/charset.c:87 locale/programs/charset.c:132
-#, c-format
msgid "duplicate character name `%s'"
msgstr "Duplicit� du nom de caract�re `%s'."
@@ -1834,28 +1844,26 @@ msgid "duplicate collating element definition"
msgstr "Duplicit� de la d�finition d'�l�ment de fusionnement."
#: locale/programs/ld-collate.c:1286
-#, c-format
msgid "duplicate definition for character `%.*s'"
msgstr "Duplicit� de la d�finition du caract�re `%.*s'."
-#: db/makedb.c:295
+#: db/makedb.c:310
msgid "duplicate key"
msgstr "Duplicit� de cl�."
-#: catgets/gencat.c:369
+#: catgets/gencat.c:378
msgid "duplicate set definition"
msgstr "Duplicit� de la d�finition d'ensemble."
-#: time/zic.c:966
-#, c-format
+#: time/zic.c:965
msgid "duplicate zone name %s (file \"%s\", line %d)"
msgstr "Duplicit� du nom de zone %s (fichier \"%s\", ligne %d)."
-#: catgets/gencat.c:532
+#: catgets/gencat.c:541
msgid "duplicated message identifier"
msgstr "Duplicit� de l'identificateur de message."
-#: catgets/gencat.c:505
+#: catgets/gencat.c:514
msgid "duplicated message number"
msgstr "Duplicit� du num�ro de message"
@@ -1863,19 +1871,19 @@ msgstr "Duplicit� du num�ro de message"
msgid "empty weight name: line ignored"
msgstr "Nom du poids vide: ligne ignor�e."
-#: sunrpc/svc_udp.c:344
+#: sunrpc/svc_udp.c:348
msgid "enablecache: cache already enabled"
msgstr "enablecache: cache d�j� activ�e."
-#: sunrpc/svc_udp.c:349
+#: sunrpc/svc_udp.c:353
msgid "enablecache: could not allocate cache"
msgstr "enablecache: ne peut allouer une cache."
-#: sunrpc/svc_udp.c:356
+#: sunrpc/svc_udp.c:360
msgid "enablecache: could not allocate cache data"
msgstr "enablecache: ne peut allouer une cache de donn�es."
-#: sunrpc/svc_udp.c:362
+#: sunrpc/svc_udp.c:366
msgid "enablecache: could not allocate cache fifo"
msgstr "enablecache: ne peut allouer une cache de type fifo."
@@ -1885,7 +1893,9 @@ msgstr "Le noeud final de l'intervalle d'ellipse est plus grand que l'initial."
#: locale/programs/ld-collate.c:1148
msgid "error while inserting collation element into hash table"
-msgstr "Erreur durant l'insertion d'un �l�ment de fusionnement dans la table de hachage."
+msgstr ""
+"Erreur durant l'insertion d'un �l�ment de fusionnement dans la table de "
+"hachage."
#: locale/programs/ld-collate.c:1160
msgid "error while inserting to hash table"
@@ -1895,41 +1905,19 @@ msgstr "Erreur lors de l'insertion dans la table de hachage."
msgid "expect string argument for `copy'"
msgstr "Cha�ne attendue pour le param�tre de `copy'."
-#: sunrpc/rpc_util.c:300
-#, c-format
-msgid "expected '%s'"
-msgstr "attendu '%s'"
-
-#: sunrpc/rpc_util.c:312
-#, c-format
-msgid "expected '%s' or '%s'"
-msgstr "attendu '%s' ou '%s'"
-
-#: sunrpc/rpc_util.c:325
-#, c-format
-msgid "expected '%s', '%s' or '%s'"
-msgstr "attendu '%s', '%s' ou '%s'"
-
-#: time/zic.c:857
+#: time/zic.c:856
msgid "expected continuation line not found"
msgstr "Ligne de continuation attendue, non rep�r�e."
-#: sunrpc/rpc_parse.c:384
-msgid "expected type specifier"
-msgstr "Sp�cification de type attendu."
-
#: locale/programs/locfile.c:1010
-#, c-format
msgid "failure while writing data for category `%s'"
msgstr "�chec durant l'�criture des donn�es de cat�gorie `%s'."
#: locale/programs/ld-monetary.c:154 locale/programs/ld-numeric.c:95
-#, c-format
msgid "field `%s' in category `%s' not defined"
msgstr "Champ `%s' de cat�gorie `%s' n'est pas d�fini."
#: locale/programs/ld-messages.c:81 locale/programs/ld-messages.c:102
-#, c-format
msgid "field `%s' in category `%s' undefined"
msgstr "Champ `%s' de cat�gorie `%s' ind�fini."
@@ -1945,15 +1933,36 @@ msgstr "Rebut � la fin du caract�re du code de sp�cification."
msgid "garbage at end of digit"
msgstr "Rebut � la fin des chiffres."
+#: locale/programs/ld-time.c:183
+msgid ""
+"garbage at end of offset value in string %d in `era' field in category `%s'"
+msgstr ""
+"Rebut � la fin de la valeur de saut dans la cha�ne %d du champ `era'\n"
+"de cat�gorie `%s'."
+
+#: locale/programs/ld-time.c:238
+msgid ""
+"garbage at end of starting date in string %d in `era' field in category `%s'"
+msgstr ""
+"Rebut � la fin de la date finale dans la cha�ne %d du champ `era'\n"
+"de cat�gorie `%s'."
+
+#: locale/programs/ld-time.c:310
+msgid ""
+"garbage at end of stopping date in string %d in `era' field in category `%s'"
+msgstr ""
+"Rebut � la fin de la date finale dans la cha�ne %d du champ `era'\n"
+"de cat�gorie `%s'."
+
#: sunrpc/get_myaddr.c:73
msgid "get_myaddress: ioctl (get interface configuration)"
msgstr "get_myaddress: ioctl (a obtenu la configuration de l'interface)."
-#: time/zic.c:1150
+#: time/zic.c:1149
msgid "illegal CORRECTION field on Leap line"
msgstr "CORRECTION ill�gale du champ dans la ligne de type `Leap'."
-#: time/zic.c:1154
+#: time/zic.c:1153
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "Champ `Rolling/Stationary' ill�gal sur la ligne de type `Leap'."
@@ -1961,10 +1970,6 @@ msgstr "Champ `Rolling/Stationary' ill�gal sur la ligne de type `Leap'."
msgid "illegal character constant in string"
msgstr "Caract�re ill�gal de constante dans la cha�ne."
-#: sunrpc/rpc_scan.c:281
-msgid "illegal character in file: "
-msgstr "Caract�re ill�gal dans le fichier: "
-
#: locale/programs/ld-collate.c:1115
msgid "illegal collation element"
msgstr "�l�ment de fusionnement ill�gal."
@@ -1985,86 +1990,99 @@ msgstr "S�quence d'�chappement ill�gale � la fin de la cha�ne."
msgid "illegal names for character range"
msgstr "Nom ill�gal pour un intervalle de caract�res."
-#: sunrpc/rpc_parse.c:146
-msgid "illegal result type"
-msgstr "R�sultat de type ill�gal."
+#: locale/programs/ld-time.c:176
+msgid "illegal number for offset in string %d in `era' field in category `%s'"
+msgstr ""
+"Nombre ill�gal pour la valeur de saut dans la cha�ne %d du champ `era'\n"
+"de cat�gorie `%s'."
-#: catgets/gencat.c:342 catgets/gencat.c:419
+#: catgets/gencat.c:351 catgets/gencat.c:428
msgid "illegal set number"
msgstr "Num�ro d'ensemble ill�gal."
-#: locale/programs/ld-ctype.c:806
-#, c-format
+#: locale/programs/ld-time.c:230
+msgid "illegal starting date in string %d in `era' field in category `%s'"
+msgstr ""
+"Date finale ill�gale dans la cha�ne %d du champ `era'\n"
+"de cat�gorie `%s'."
+
+#: locale/programs/ld-time.c:302
+msgid "illegal stopping date in string %d in `era' field in category `%s'"
+msgstr ""
+"Date finale ill�gale dans la cha�ne %d du champ `era'\n"
+"de cat�gorie `%s'."
+
+#: locale/programs/ld-ctype.c:807
msgid "implementation limit: no more than %d character classes allowed"
-msgstr "Limite d'impantation: pas plus de %d classes de caract�res sont permises."
+msgstr ""
+"Limite d'impantation: pas plus de %d classes de caract�res sont permises."
-#: locale/programs/ld-ctype.c:838
-#, c-format
+#: locale/programs/ld-ctype.c:839
msgid "implementation limit: no more than %d character maps allowed"
-msgstr "Limite d'impantation: pas plus de %d tables de caract�res sont permises."
+msgstr ""
+"Limite d'impantation: pas plus de %d tables de caract�res sont permises."
-#: db/makedb.c:151
+#: db/makedb.c:163
msgid "incorrectly formatted file"
msgstr "Fichier incorrectement format�."
-#: time/zic.c:815
+#: time/zic.c:814
msgid "input line of unknown type"
msgstr "Ligne d'entr�e de type inconnu."
-#: time/zic.c:1734
+#: time/zic.c:1733
msgid "internal error - addtype called with bad isdst"
msgstr "Erreur interne - addtype appell� avec un mauvais bloc isdst."
-#: time/zic.c:1742
+#: time/zic.c:1741
msgid "internal error - addtype called with bad ttisgmt"
msgstr "Erreur interne - addtype appell� avec un mauvais bloc ttisgmt."
-#: time/zic.c:1738
+#: time/zic.c:1737
msgid "internal error - addtype called with bad ttisstd"
msgstr "Erreur interne - addtype appell� avec un mauvais bloc ttisstd."
-#: locale/programs/ld-ctype.c:300
-#, c-format
+#: locale/programs/ld-ctype.c:301
msgid "internal error in %s, line %u"
-msgstr "Erreur interne dans %s, ligne %u"
+msgstr "Erreur interne dans %s, ligne %u."
-#: time/zic.c:1022
+#: time/zic.c:1021
msgid "invalid GMT offset"
msgstr "D�calage relatif GMT invalide."
-#: time/zic.c:1025
+#: time/zic.c:1024
msgid "invalid abbreviation format"
msgstr "Format d'abr�viation invalide."
-#: time/zic.c:1115 time/zic.c:1314 time/zic.c:1328
+#: time/zic.c:1114 time/zic.c:1313 time/zic.c:1327
msgid "invalid day of month"
msgstr "Jour du mois invalide."
-#: time/zic.c:1273
+#: time/zic.c:1272
msgid "invalid ending year"
msgstr "Ann�e finale invalide."
-#: time/zic.c:1087
+#: time/zic.c:1086
msgid "invalid leaping year"
msgstr "Ann�e bissextile invalide."
-#: time/zic.c:1102 time/zic.c:1205
+#: time/zic.c:1101 time/zic.c:1204
msgid "invalid month name"
msgstr "Nom de mois invalide."
-#: time/zic.c:921
+#: time/zic.c:920
msgid "invalid saved time"
msgstr "Temps sauvegard� invalide."
-#: time/zic.c:1253
+#: time/zic.c:1252
msgid "invalid starting year"
msgstr "Ann�e initiale invalide."
-#: time/zic.c:1131 time/zic.c:1233
+#: time/zic.c:1130 time/zic.c:1232
msgid "invalid time of day"
msgstr "Heure du jour invalide."
-#: time/zic.c:1319
+#: time/zic.c:1318
msgid "invalid weekday name"
msgstr "Nom du jour de semaine invalide."
@@ -2074,20 +2092,22 @@ msgstr "La ligne apr�s l'ellipse doit contenir la d�finition d'un caract�re."
#: locale/programs/ld-collate.c:1390
msgid "line before ellipsis does not contain definition for character constant"
-msgstr "La ligne avant l'ellipse ne doit pas contenir la d�finition d'une constante de caract�res."
+msgstr ""
+"La ligne avant l'ellipse ne doit pas contenir la d�finition d'une constante "
+"de caract�res."
-#: time/zic.c:795
+#: time/zic.c:794
msgid "line too long"
msgstr "Ligne trop longue."
-#: locale/programs/localedef.c:275
-#, c-format
+#: locale/programs/localedef.c:281
msgid "locale file `%s', used in `copy' statement, not found"
-msgstr "Fichier localis� `%s', utilis� dans la d�claration de `copy', non rep�r�."
+msgstr ""
+"Fichier localis� `%s', utilis� dans la d�claration de `copy', non rep�r�."
-#: catgets/gencat.c:600
+#: catgets/gencat.c:609
msgid "malformed line ignored"
-msgstr "Ligne malform�e ignor�e."
+msgstr "Ligne incorrecte ignor�e."
#: malloc/mcheck.c:183
msgid "memory clobbered before allocated block"
@@ -2100,7 +2120,7 @@ msgstr "M�moire �cras�e apr�s la fin du bloc allou�."
#: locale/programs/ld-collate.c:167 locale/programs/ld-collate.c:173
#: locale/programs/ld-collate.c:177 locale/programs/ld-collate.c:1438
#: locale/programs/ld-collate.c:1467 locale/programs/locfile.c:940
-#: locale/programs/xmalloc.c:64 posix/getconf.c:174
+#: locale/programs/xmalloc.c:68 posix/getconf.c:181
msgid "memory exhausted"
msgstr "M�moire �puis�e."
@@ -2108,25 +2128,31 @@ msgstr "M�moire �puis�e."
msgid "memory is consistent, library is buggy"
msgstr "M�moire consistente, la librairie est fautive."
-#: time/zic.c:916
+#: locale/programs/ld-time.c:348
+msgid "missing era format in string %d in `era' field in category `%s'"
+msgstr ""
+"Format de type era manquant dans la cha�ne %d du champ `era'\n"
+"de cat�gorie `%s'."
+
+#: locale/programs/ld-time.c:337
+msgid "missing era name in string %d in `era' fieldin category `%s'"
+msgstr ""
+"Nom de type era manquant dans la cha�ne %d du champ `era'\n"
+"de cat�gorie `%s'."
+
+#: time/zic.c:915
msgid "nameless rule"
msgstr "R�gle sans nom."
#: sunrpc/svc_simple.c:140
-#, c-format
msgid "never registered prog %d\n"
msgstr "Le programme %d n'a jamais �t� enregistr�.\n"
-#: sunrpc/rpc_parse.c:305 sunrpc/rpc_parse.c:313
-msgid "no array-of-pointer declarations -- use typedef"
-msgstr "Pas de d�claration `array-of-pointer' -- utiliser typedef."
-
#: locale/programs/ld-messages.c:95 locale/programs/ld-messages.c:116
-#, c-format
msgid "no correct regular expression for field `%s' in category `%s': %s"
msgstr "Expression reguliere incorrecte du champ `%s' de cat�gorie `%s': %s"
-#: time/zic.c:2060
+#: time/zic.c:2059
msgid "no day in month matches rule"
msgstr "Pas de jour dans les r�gles de concordance."
@@ -2138,7 +2164,7 @@ msgstr "Pas de d�finition de type `UNDEFINED'."
msgid "no other keyword shall be specified when `copy' is used"
msgstr "Aucun autre mot cl� ne doit �tre sp�cifi� lorsque `copy' est utilis�."
-#: locale/programs/localedef.c:334
+#: locale/programs/localedef.c:340
msgid "no output file produced because warning were issued"
msgstr "Aucun fichier de sortie g�n�r� en raison d'un avertissement d�j� �mis."
@@ -2153,7 +2179,6 @@ msgid "no symbolic name given for end of range"
msgstr "Pas de nom symbolique fourni pour la fin de l'intervalle."
#: locale/programs/ld-collate.c:244
-#, c-format
msgid "no weight defined for symbol `%s'"
msgstr "Pas de poids d�fini pour le symbole `%s'."
@@ -2175,42 +2200,32 @@ msgstr "portmap ne peut �tablir un pairage (bind)."
msgid "portmap cannot create socket"
msgstr "portmap ne cr�er un socket"
-#: sunrpc/rpc_scan.c:456 sunrpc/rpc_scan.c:464
-msgid "preprocessor error"
-msgstr "Erreur du pr�processeur."
-
-#: db/makedb.c:311
-#, c-format
+#: db/makedb.c:326
msgid "problems while reading `%s'"
msgstr "Probl�mes lors de la lecture de `%s'"
#: sunrpc/rpcinfo.c:222 sunrpc/rpcinfo.c:350
-#, c-format
msgid "program %lu is not available\n"
msgstr "Le programme %lu n'est pas disponible.\n"
#: sunrpc/rpcinfo.c:245 sunrpc/rpcinfo.c:282 sunrpc/rpcinfo.c:371
#: sunrpc/rpcinfo.c:408 sunrpc/rpcinfo.c:429 sunrpc/rpcinfo.c:462
-#, c-format
msgid "program %lu version %lu is not available\n"
msgstr "Le programme %lu de version %lu n'est pas disponible.\n"
#: sunrpc/rpcinfo.c:466
-#, c-format
msgid "program %lu version %lu ready and waiting\n"
msgstr "Le programme %lu de version %lu est pr�t et en attente.\n"
-#: inet/rcmd.c:154
-#, c-format
+#: inet/rcmd.c:157
msgid "rcmd: select (setting up stderr): %s\n"
msgstr "rcmd: s�lection (configuration de stderr): %s.\n"
-#: inet/rcmd.c:86
+#: inet/rcmd.c:87
msgid "rcmd: socket: All ports in use\n"
msgstr "rcmd: socket: tous les ports sont occup�s.\n"
-#: inet/rcmd.c:141
-#, c-format
+#: inet/rcmd.c:144
msgid "rcmd: write (setting up stderr): %s\n"
msgstr "rcmd: �criture (configuration de stderr): %s.\n"
@@ -2218,27 +2233,24 @@ msgstr "rcmd: �criture (configuration de stderr): %s.\n"
msgid "registerrpc: out of memory\n"
msgstr "registerrpc: m�moire �puis�e.\n"
-#: time/zic.c:1795
+#: time/zic.c:1794
msgid "repeated leap second moment"
msgstr "R�p�tition du d�lai une seconde fois."
#: sunrpc/rpcinfo.c:659
-#, c-format
msgid "rpcinfo: %s is unknown host\n"
msgstr "rpcinfo: %s est un h�te inconnu.\n"
#: sunrpc/rpcinfo.c:626
-#, c-format
msgid "rpcinfo: %s is unknown service\n"
msgstr "rpcinfo: %s est un service inconnu.\n"
#: sunrpc/rpcinfo.c:600
-#, c-format
msgid "rpcinfo: Could not delete registration for prog %s version %s\n"
-msgstr "rpcinfo: ne peut �liminer l'enregistrement du programme %s de version %s.\n"
+msgstr ""
+"rpcinfo: ne peut �liminer l'enregistrement du programme %s de version %s.\n"
#: sunrpc/rpcinfo.c:576
-#, c-format
msgid "rpcinfo: broadcast failed: %s\n"
msgstr "rpcinfo: �chec de diffusion: %s.\n"
@@ -2254,29 +2266,31 @@ msgstr "rpcinfo: ne peut contacter le convertisseur de ports."
msgid "run_svc returned unexpectedly\n"
msgstr "run_svc a retourn� de fa�on impr�vue.\n"
-#: time/zic.c:709 time/zic.c:711
+#: time/zic.c:708 time/zic.c:710
msgid "same rule name in multiple files"
msgstr "M�me nom de r�gle dans plusieurs fichiers."
-#: inet/rcmd.c:158
+#: inet/rcmd.c:161
msgid "select: protocol failure in circuit setup\n"
msgstr "select: �chec de protocole dans la configuration du circuit.\n"
-#: inet/rcmd.c:176
-msgid "socket: protocol failure in circuit setup.\n"
+#: inet/rcmd.c:179
+msgid "socket: protocol failure in circuit setup\n"
msgstr "socket: �chec de protocole dans la configuration du circuit.\n"
#: locale/programs/locfile.c:600
msgid "sorting order `forward' and `backward' are mutually exclusive"
-msgstr "Les options de tri `forward' et `backward' sont mutuellement exclusives."
+msgstr ""
+"Les options de tri `forward' et `backward' sont mutuellement exclusives."
#: locale/programs/ld-collate.c:1567 locale/programs/ld-collate.c:1613
msgid ""
"specification of sorting weight for collation symbol does not make sense"
msgstr ""
-"La sp�cification de tri par le poids des symboles de fusionnement n'a aucun sens."
+"La sp�cification de tri par le poids des symboles de\n"
+"fusionnement n'a aucun sens."
-#: time/zic.c:780
+#: time/zic.c:779
msgid "standard input"
msgstr "entr�e standard"
@@ -2284,36 +2298,48 @@ msgstr "entr�e standard"
msgid "standard output"
msgstr "sortie standard"
-#: time/zic.c:1277
+#: locale/programs/ld-time.c:256
+msgid "starting date is illegal in string %d in `era' field in category `%s'"
+msgstr ""
+"Date initiale ill�gale dans la cha�ne %d du champ `era'\n"
+"de cat�gorie `%s'."
+
+#: time/zic.c:1276
msgid "starting year greater than ending year"
msgstr "Ann�e initiale plus grande que l'ann�e finale."
-#: sunrpc/svc_tcp.c:199 sunrpc/svc_tcp.c:204
+#: locale/programs/ld-time.c:328
+msgid "stopping date is illegal in string %d in `era' field in category `%s'"
+msgstr ""
+"Date finale ill�gale dans la cha�ne %d du champ `era'\\n\"\n"
+"de cat�gorie `%s'."
+
+#: sunrpc/svc_tcp.c:201 sunrpc/svc_tcp.c:206
msgid "svc_tcp: makefd_xprt: out of memory\n"
msgstr "svc_tcp: makefd_xprt: m�moire �puis�e.\n"
-#: sunrpc/svc_tcp.c:147
+#: sunrpc/svc_tcp.c:149
msgid "svctcp_.c - cannot getsockname or listen"
-msgstr "svctcp_.c - ne peut trouver le nom du socket par getsockname() ou listen()."
+msgstr ""
+"svctcp_.c - ne peut trouver le nom du socket par getsockname() ou listen()."
-#: sunrpc/svc_tcp.c:134
+#: sunrpc/svc_tcp.c:136
msgid "svctcp_.c - udp socket creation problem"
msgstr "svctcp_.c - probl�me de cr�ation d'un socket udp."
-#: sunrpc/svc_tcp.c:154 sunrpc/svc_tcp.c:161
+#: sunrpc/svc_tcp.c:156 sunrpc/svc_tcp.c:163
msgid "svctcp_create: out of memory\n"
msgstr "svctcp_create: m�moire �puis�e.\n"
-#: sunrpc/svc_udp.c:119
+#: sunrpc/svc_udp.c:123
msgid "svcudp_create - cannot getsockname"
msgstr "svcudp_create - ne peut trouver le nom du socket par getsockname()."
-#: sunrpc/svc_udp.c:107
+#: sunrpc/svc_udp.c:111
msgid "svcudp_create: socket creation problem"
msgstr "svcudp_create: probl�me de cr�ation du socket."
#: locale/programs/ld-collate.c:1190
-#, c-format
msgid ""
"symbol for multicharacter collating element `%.*s' duplicates element "
"definition"
@@ -2322,7 +2348,6 @@ msgstr ""
"provoque la duplication de la d�finition d'un �l�ment."
#: locale/programs/ld-collate.c:1063
-#, c-format
msgid ""
"symbol for multicharacter collating element `%.*s' duplicates other element "
"definition"
@@ -2331,7 +2356,6 @@ msgstr ""
"provoque la duplication d'autres d�finitions d'�l�ments."
#: locale/programs/ld-collate.c:1199
-#, c-format
msgid ""
"symbol for multicharacter collating element `%.*s' duplicates other symbol "
"definition"
@@ -2340,7 +2364,6 @@ msgstr ""
"provoque la duplication d'autres d�finitions de symboles."
#: locale/programs/ld-collate.c:1072
-#, c-format
msgid ""
"symbol for multicharacter collating element `%.*s' duplicates symbol "
"definition"
@@ -2349,7 +2372,6 @@ msgstr ""
"provoque la duplication de la d�finition d'un symbole."
#: locale/programs/ld-collate.c:1054 locale/programs/ld-collate.c:1181
-#, c-format
msgid ""
"symbol for multicharacter collating element `%.*s' duplicates symbolic name "
"in charset"
@@ -2361,7 +2383,6 @@ msgstr ""
#: locale/programs/charmap.c:378 locale/programs/charmap.c:465
#: locale/programs/charmap.c:511 locale/programs/charmap.c:544
#: locale/programs/charmap.c:576
-#, c-format
msgid "syntax error in %s definition: %s"
msgstr "Erreur de syntaxe dans la d�finition de %s: %s."
@@ -2387,15 +2408,18 @@ msgstr "Erreur de syntaxe dans la d�finition du fusionnement."
#: locale/programs/locfile.c:335
msgid "syntax error in definition of LC_CTYPE category"
-msgstr "Erreur de syntaxe dans la d�finition d'une cat�gorie de type `LC_CTYPE'."
+msgstr ""
+"Erreur de syntaxe dans la d�finition d'une cat�gorie de type `LC_CTYPE'."
#: locale/programs/locfile.c:278
msgid "syntax error in definition of new character class"
-msgstr "Erreur de syntaxe dans la d�finition d'une nouvelle classe de caract�res."
+msgstr ""
+"Erreur de syntaxe dans la d�finition d'une nouvelle classe de caract�res."
#: locale/programs/locfile.c:288
msgid "syntax error in definition of new character map"
-msgstr "Erreur de syntaxe dans la d�finition d'une nouvelle table de caract�res."
+msgstr ""
+"Erreur de syntaxe dans la d�finition d'une nouvelle table de caract�res."
#: locale/programs/locfile.c:873
msgid "syntax error in message locale definition"
@@ -2407,37 +2431,40 @@ msgstr "Erreur de syntaxe dans la d�finition localis�e des valeurs mon�taires."
#: locale/programs/locfile.c:811
msgid "syntax error in numeric locale definition"
-msgstr "Erreur de syntaxe dans la d�finition localis�e de repr�sentation num�rique."
+msgstr ""
+"Erreur de syntaxe dans la d�finition localis�e de repr�sentation num�rique."
#: locale/programs/locfile.c:722
msgid "syntax error in order specification"
msgstr "Erreur de syntaxe dans la sp�ficication de l'ordonnancement."
#: locale/programs/charmap.c:195 locale/programs/charmap.c:211
-#, c-format
msgid "syntax error in prolog: %s"
msgstr "Erreur de syntaxe du prologue: %s."
#: locale/programs/locfile.c:849
msgid "syntax error in time locale definition"
-msgstr "Erreur de syntaxe dans la d�finition localis�e de la repr�sentation du temps."
+msgstr ""
+"Erreur de syntaxe dans la d�finition localis�e de la repr�sentation du temps."
#: locale/programs/locfile.c:255
msgid "syntax error: not inside a locale definition section"
-msgstr "Erreur de syntaxe: pas � l'int�rieur d'une section de d�finition localis�e."
+msgstr ""
+"Erreur de syntaxe: pas � l'int�rieur d'une section de d�finition localis�e."
-#: catgets/gencat.c:371 catgets/gencat.c:507 catgets/gencat.c:534
+#: catgets/gencat.c:380 catgets/gencat.c:516 catgets/gencat.c:543
msgid "this is the first definition"
msgstr "Ceci est la premi�re d�finition."
-#: time/zic.c:1120A
-#: mro: � investiguer dans le code source
+# time/zic.c:1120A
+# mro: � investiguer dans le code source
+#: time/zic.c:1119
msgid "time before zero"
msgstr "Temps d�fini avant le z�ro."
-#: time/zic.c:1128 time/zic.c:1960 time/zic.c:1979
+#: time/zic.c:1127 time/zic.c:1959 time/zic.c:1978
msgid "time overflow"
-msgstr "D�bordement de temps."
+msgstr "D�bordement du temps allou�."
#: locale/programs/charset.c:44
msgid "too few bytes in character encoding"
@@ -2451,19 +2478,15 @@ msgstr "Trop d'octets pour l'encodage des caract�res."
msgid "too many character classes defined"
msgstr "Trop de d�finitions de classes de caract�res."
-#: sunrpc/rpc_util.c:285
-msgid "too many files!\n"
-msgstr "Trop de fichiers!\n"
-
-#: time/zic.c:1789
+#: time/zic.c:1788
msgid "too many leap seconds"
msgstr "Trop de d�lai en secondes."
-#: time/zic.c:1761
+#: time/zic.c:1760
msgid "too many local time types"
msgstr "Trop de types localis�s pour la repr�sentation du temps."
-#: time/zic.c:1715
+#: time/zic.c:1714
msgid "too many transitions?!"
msgstr "Trop de transitions d�finies?!"
@@ -2471,7 +2494,7 @@ msgstr "Trop de transitions d�finies?!"
msgid "too many weights"
msgstr "Trop de poids d�finis."
-#: time/zic.c:2083
+#: time/zic.c:2082
msgid "too many, or too long, time zone abbreviations"
msgstr "Trop ou de trop longues abr�viations de fuseaux horaires."
@@ -2480,7 +2503,6 @@ msgid "trailing garbage at end of line"
msgstr "Suffixe en rebut � la fin de la ligne."
#: sunrpc/svc_simple.c:132
-#, c-format
msgid "trouble replying to prog %d\n"
msgstr "Probl�me � r�pondre au programme %d.\n"
@@ -2488,18 +2510,17 @@ msgstr "Probl�me � r�pondre au programme %d.\n"
msgid "two lines in a row containing `...' are not allowed"
msgstr "Deux lignes cons�cutives contenant `...' ne sont pas permises."
-#: time/zic.c:1284
+#: time/zic.c:1283
msgid "typed single year"
msgstr "Une seule ann�e fournie."
#: locale/programs/charmap.c:617 locale/programs/charmap.c:628
-#, c-format
msgid "unknown character `%s'"
msgstr "Caract�re inconnu `%s'."
#: locale/programs/ld-messages.c:193 locale/programs/ld-messages.c:204
#: locale/programs/ld-messages.c:215 locale/programs/ld-messages.c:226
-#, c-format
+#: locale/programs/ld-time.c:696
msgid "unknown character in field `%s' of category `%s'"
msgstr "Caract�re inconnu dans le champ `%s' de cat�gorie `%s'."
@@ -2507,27 +2528,27 @@ msgstr "Caract�re inconnu dans le champ `%s' de cat�gorie `%s'."
msgid "unknown collation directive"
msgstr "Directive de fusionnement inconnue."
-#: catgets/gencat.c:468
-#, c-format
+#: catgets/gencat.c:477
msgid "unknown directive `%s': line ignored"
msgstr "Directive inconnue `%s': ligne ignor�e."
-#: catgets/gencat.c:447
-#, c-format
+#: catgets/gencat.c:456
msgid "unknown set `%s'"
msgstr "Ensemble inconnu `%s'."
+msgid "unknown signal"
+msgstr "Signal inconnu."
+
#: locale/programs/ld-collate.c:1366 locale/programs/ld-collate.c:1557
#: locale/programs/ld-collate.c:1731
-#, c-format
msgid "unknown symbol `%.*s': line ignored"
msgstr "Symbole inconnu `%.*s': ligne ignor�e."
-#: time/zic.c:752
+#: time/zic.c:751
msgid "unruly zone"
msgstr "Zone sans r�gle."
-#: catgets/gencat.c:952
+#: catgets/gencat.c:961
msgid "unterminated message"
msgstr "Message incomplet."
@@ -2535,10 +2556,6 @@ msgstr "Message incomplet."
msgid "unterminated string"
msgstr "Cha�ne incompl�te."
-#: sunrpc/rpc_scan.c:319
-msgid "unterminated string constant"
-msgstr "Cha�ne de constante incompl�te."
-
#: locale/programs/linereader.c:385
msgid "unterminated symbolic name"
msgstr "Nom symbolique incomplet."
@@ -2549,35 +2566,32 @@ msgstr "Nom de poids incomplet."
#: locale/programs/charset.c:119
msgid "upper limit in range is not smaller then lower limit"
-msgstr "Limite sup�rieure de l'intervalle n'est pas plus petite que la limite inf�rieure."
-
-#: sunrpc/rpc_main.c:78
-#, c-format
-msgid "usage: %s infile\n"
-msgstr "Usage: %s fichier_d_entr�e\n"
+msgstr ""
+"Limite sup�rieure de l'intervalle n'est pas plus petite que la limite "
+"inf�rieure."
-#: time/zic.c:2026
+#: time/zic.c:2025
msgid "use of 2/29 in non leap-year"
msgstr "Utiliser 2/29 pour les ann�es non-bissextiles."
#: locale/programs/charmap.c:438 locale/programs/charmap.c:492
-#, c-format
msgid "value for %s must be an integer"
msgstr "La valeur de %s doit �tre un entier."
#: locale/programs/charmap.c:233
-#, c-format
msgid "value for <%s> must lie between 1 and 4"
msgstr "La valeur de <%s> doit �tre comprise entre 1 et 4."
#: locale/programs/ld-monetary.c:148 locale/programs/ld-numeric.c:89
-#, c-format
msgid "value for field `%s' in category `%s' must not be the empty string"
-msgstr "La valeur du champ `%s' de cat�gorie `%s' ne doit pas �tre un cha�ne vide."
+msgstr ""
+"La valeur du champ `%s' de cat�gorie `%s' ne doit pas �tre un cha�ne vide."
#: locale/programs/charmap.c:245
msgid "value of <mb_cur_max> must be greater than the value of <mb_cur_min>"
-msgstr "La valeur de <mb_cur_max> doit �tre plus grande que la valeur de <mb_cur_min>."
+msgstr ""
+"La valeur de <mb_cur_max> doit �tre plus grande que la valeur de "
+"<mb_cur_min>."
#: locale/programs/ld-monetary.c:138
msgid ""
@@ -2591,62 +2605,55 @@ msgstr ""
msgid ""
"value of field `int_curr_symbol' in category `LC_MONETARY' has wrong length"
msgstr ""
-"La valeur du champ `int_curr_symbol' de cat�gorie `LC_MONETARY' n'a pas la bonne longueur."
+"La valeur du champ `int_curr_symbol' de cat�gorie `LC_MONETARY' n'a pas la "
+"bonne longueur."
#: locale/programs/ld-monetary.c:370 locale/programs/ld-numeric.c:199
-#, c-format
msgid "values for field `%s' in category `%s' must be smaller than 127"
-msgstr "Les valeurs du champ `%s' de cat�gorie `%s' doivent �tre plus petite que 127."
+msgstr ""
+"Les valeurs du champ `%s' de cat�gorie `%s' doivent �tre plus petite que 127."
#: locale/programs/ld-monetary.c:366
-#, c-format
msgid "values for field `%s' in category `%s' must not be zero"
-msgstr "Les valeurs du champ `%s' de cat�gorie `%s' ne doivent pas �tre �gal � z�ro."
-
-#: sunrpc/rpc_parse.c:330
-msgid "variable-length array declaration expected"
-msgstr "D�claration attendue de tableau de type `variable-length'."
-
-#: sunrpc/rpc_parse.c:370
-msgid "voids allowed only inside union and program definitions"
-msgstr "D�claration `voids' permises seulement � l'int�rieur d'une d�finition d'`union' et de programme."
+msgstr ""
+"Les valeurs du champ `%s' de cat�gorie `%s' ne doivent pas �tre �gal � z�ro."
#: login/setutent_r.c:47
msgid "while opening UTMP file"
msgstr "durant l'ouverture du fichier UTMP."
-#: catgets/gencat.c:979
+#: catgets/gencat.c:988
msgid "while opening old catalog file"
msgstr "durant l'ouverture du vieux fichier du catalogue."
-#: db/makedb.c:338
+#: db/makedb.c:353
msgid "while reading database"
msgstr "durant la lecture de la base de donn�es."
-#: db/makedb.c:300
+#: db/makedb.c:315
msgid "while writing data base file"
msgstr "durant l'�criture dans le fichier de la base de donn�es."
-#: db/makedb.c:130
+#: db/makedb.c:142
msgid "wrong number of arguments"
msgstr "Mauvais nombre de param�tres."
-#: time/zic.c:1078
+#: time/zic.c:1077
msgid "wrong number of fields on Leap line"
msgstr "Mauvais nombre de champs sur la ligne de type `Leap'."
-#: time/zic.c:1169
+#: time/zic.c:1168
msgid "wrong number of fields on Link line"
msgstr "Mauvais nombre de champs sur la ligne de type `Link'."
-#: time/zic.c:912
+#: time/zic.c:911
msgid "wrong number of fields on Rule line"
msgstr "Mauvais nombre de champs sur la ligne de type `Rule'."
-#: time/zic.c:982
+#: time/zic.c:981
msgid "wrong number of fields on Zone continuation line"
msgstr "Mauvais nombre de champs sur la ligne de type continuation de `Zone'."
-#: time/zic.c:940
+#: time/zic.c:939
msgid "wrong number of fields on Zone line"
msgstr "Mauvais nombre de champs sur la ligne de type `Zone'."
diff --git a/posix/fnmatch.c b/posix/fnmatch.c
index de45941f8f..553a968eed 100644
--- a/posix/fnmatch.c
+++ b/posix/fnmatch.c
@@ -15,13 +15,13 @@ License along with this library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
+#if HAVE_CONFIG_H
+# include <config.h>
#endif
/* Enable GNU extensions in fnmatch.h. */
#ifndef _GNU_SOURCE
-#define _GNU_SOURCE 1
+# define _GNU_SOURCE 1
#endif
#include <errno.h>
@@ -40,9 +40,18 @@ Cambridge, MA 02139, USA. */
#if defined (_LIBC) || !defined (__GNU_LIBRARY__)
-#ifndef errno
+# if defined (STDC_HEADERS) || !defined (isascii)
+# define ISASCII(c) 1
+# else
+# define ISASCII(c) isascii(c)
+# endif
+
+# define ISUPPER(c) (ISASCII (c) && isupper (c))
+
+
+# ifndef errno
extern int errno;
-#endif
+# endif
/* Match STRING against the filename pattern PATTERN, returning zero if
it matches, nonzero if not. */
@@ -56,7 +65,7 @@ fnmatch (pattern, string, flags)
register char c;
/* Note that this evalutes C many times. */
-#define FOLD(c) ((flags & FNM_CASEFOLD) && isupper (c) ? tolower (c) : (c))
+# define FOLD(c) ((flags & FNM_CASEFOLD) && ISUPPER (c) ? tolower (c) : (c))
while ((c = *p++) != '\0')
{
@@ -225,6 +234,8 @@ fnmatch (pattern, string, flags)
return 0;
return FNM_NOMATCH;
+
+# undef FOLD
}
#endif /* _LIBC or not __GNU_LIBRARY__. */
diff --git a/posix/regex.c b/posix/regex.c
index c277234684..4b640e6079 100644
--- a/posix/regex.c
+++ b/posix/regex.c
@@ -1144,7 +1144,7 @@ typedef struct
char *destination; \
/* Must be int, so when we don't save any registers, the arithmetic \
of 0 + -1 isn't done as unsigned. */ \
- int this_reg; \
+ unsigned this_reg; \
\
DEBUG_STATEMENT (failure_id++); \
DEBUG_STATEMENT (nfailure_points_pushed++); \
@@ -1257,7 +1257,7 @@ typedef struct
#define POP_FAILURE_POINT(str, pat, low_reg, high_reg, regstart, regend, reg_info)\
{ \
DEBUG_STATEMENT (fail_stack_elt_t failure_id;) \
- int this_reg; \
+ unsigned this_reg; \
const unsigned char *string_temp; \
\
assert (!FAIL_STACK_EMPTY ()); \
@@ -5436,7 +5436,8 @@ regerror (errcode, preg, errbuf, errbuf_size)
size_t msg_size;
if (errcode < 0
- || errcode >= (sizeof (re_error_msgid) / sizeof (re_error_msgid[0])))
+ || errcode >= (int) (sizeof (re_error_msgid)
+ / sizeof (re_error_msgid[0])))
/* Only error codes returned by the rest of the code should be passed
to this routine. If we are given anything else, or if other regex
code generates an invalid error code, then the program has a bug.
diff --git a/posix/unistd.h b/posix/unistd.h
index 14b11b16c0..e9754e1208 100644
--- a/posix/unistd.h
+++ b/posix/unistd.h
@@ -513,8 +513,8 @@ extern char *ttyname __P ((int __fd));
#ifdef __USE_REENTRANT
/* Store at most BUFLEN characters of the pathname of the terminal FD is
open on in BUF. Return 0 on success, -1 otherwise. */
-extern int __ttyname_r __P ((int __fd, char *__buf, int __buflen));
-extern int ttyname_r __P ((int __fd, char *__buf, int __buflen));
+extern int __ttyname_r __P ((int __fd, char *__buf, size_t __buflen));
+extern int ttyname_r __P ((int __fd, char *__buf, size_t __buflen));
#endif
/* Return 1 if FD is a valid descriptor associated
diff --git a/pwd/fgetpwent.c b/pwd/fgetpwent.c
index 215d6e07c8..0bcc25ca6a 100644
--- a/pwd/fgetpwent.c
+++ b/pwd/fgetpwent.c
@@ -25,7 +25,11 @@ struct passwd *
fgetpwent (FILE *stream)
{
static char buffer[BUFSIZ];
- static struct passwd result;
+ static struct passwd resbuf;
+ struct passwd *result;
- return __fgetpwent_r (stream, &result, buffer, sizeof buffer);
+ if (__fgetpwent_r (stream, &resbuf, buffer, sizeof buffer, &result) != 0)
+ return NULL;
+
+ return result;
}
diff --git a/pwd/fgetpwent_r.c b/pwd/fgetpwent_r.c
index bd380bd48c..4e5fe99290 100644
--- a/pwd/fgetpwent_r.c
+++ b/pwd/fgetpwent_r.c
@@ -49,8 +49,9 @@ LINE_PARSER
/* Read one entry from the given stream. */
-struct passwd *
-__fgetpwent_r (FILE *stream, struct passwd *result, char *buffer, int buflen)
+int
+__fgetpwent_r (FILE *stream, struct passwd *resbuf, char *buffer,
+ size_t buflen, struct passwd **result)
{
char *p;
@@ -58,7 +59,10 @@ __fgetpwent_r (FILE *stream, struct passwd *result, char *buffer, int buflen)
{
p = fgets (buffer, buflen, stream);
if (p == NULL)
- return NULL;
+ {
+ *result = NULL;
+ return errno;
+ }
/* Skip leading blanks. */
while (isspace (*p))
@@ -66,8 +70,9 @@ __fgetpwent_r (FILE *stream, struct passwd *result, char *buffer, int buflen)
} while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- ! parse_line (p, result, (void *) buffer, buflen));
+ ! parse_line (p, resbuf, (void *) buffer, buflen));
- return result;
+ *result = resbuf;
+ return 0;
}
weak_alias (__fgetpwent_r, fgetpwent_r)
diff --git a/pwd/pwd.h b/pwd/pwd.h
index 9bd380a6db..14d0a9ea7f 100644
--- a/pwd/pwd.h
+++ b/pwd/pwd.h
@@ -54,7 +54,7 @@ extern FILE *__pwdopen __P ((void));
/* Read a password entry from STREAM, filling in P.
Return the `struct passwd' of P if successful, NULL on failure. */
-extern struct passwd *__pwdread __P ((FILE * __stream, __ptr_t __p));
+extern struct passwd *__pwdread __P ((FILE *__stream, __ptr_t __p));
/* Return a chunk of memory containing pre-initialized data for __pwdread. */
extern __ptr_t __pwdalloc __P ((void));
@@ -80,10 +80,10 @@ extern struct passwd *getpwent __P ((void));
#ifdef __USE_SVID
/* Read an entry from STREAM. */
-extern struct passwd *fgetpwent __P ((FILE * __stream));
+extern struct passwd *fgetpwent __P ((FILE *__stream));
/* Write the given entry onto the given stream. */
-extern int putpwent __P ((__const struct passwd * __p, FILE * __f));
+extern int putpwent __P ((__const struct passwd *__p, FILE *__f));
#endif
/* Search for an entry with a matching user ID. */
@@ -103,35 +103,35 @@ extern struct passwd *getpwnam __P ((__const char *__name));
may change in later versions of this library. */
#if defined(__USE_SVID) || defined(__USE_MISC)
-extern struct passwd *__getpwent_r __P ((struct passwd *__resultbuf,
- char *__buffer, int __buflen));
-extern struct passwd *getpwent_r __P ((struct passwd *__resultbuf,
- char *__buffer, int __buflen));
+extern int __getpwent_r __P ((struct passwd *__resultbuf, char *__buffer,
+ size_t __buflen, struct passwd **__result));
+extern int getpwent_r __P ((struct passwd *__resultbuf, char *__buffer,
+ size_t __buflen, struct passwd **__result));
#endif
-extern struct passwd *__getpwuid_r __P ((__uid_t __uid,
- struct passwd *__resultbuf,
- char *__buffer, int __buflen));
-extern struct passwd *getpwuid_r __P ((__uid_t __uid,
- struct passwd *__resultbuf,
- char *__buffer, int __buflen));
+extern int __getpwuid_r __P ((__uid_t __uid, struct passwd *__resultbuf,
+ char *__buffer, size_t __buflen,
+ struct passwd **__result));
+extern int getpwuid_r __P ((__uid_t __uid, struct passwd *__resultbuf,
+ char *__buffer, size_t __buflen,
+ struct passwd **__result));
-extern struct passwd *__getpwnam_r __P ((__const char *__name,
- struct passwd *__resultbuf,
- char *__buffer, int __buflen));
-extern struct passwd *getpwnam_r __P ((__const char *__name,
- struct passwd *__resultbuf,
- char *__buffer, int __buflen));
+extern int __getpwnam_r __P ((__const char *__name, struct passwd *__resultbuf,
+ char *__buffer, size_t __buflen,
+ struct passwd **__result));
+extern int getpwnam_r __P ((__const char *__name, struct passwd *__resultbuf,
+ char *__buffer, size_t __buflen,
+ struct passwd **__result));
#ifdef __USE_SVID
/* Read an entry from STREAM. */
-extern struct passwd *__fgetpwent_r __P ((FILE * __stream,
- struct passwd *__resultbuf,
- char *__buffer, int __buflen));
-extern struct passwd *fgetpwent_r __P ((FILE * __stream,
- struct passwd *__resultbuf,
- char *__buffer, int __buflen));
+extern int __fgetpwent_r __P ((FILE * __stream, struct passwd *__resultbuf,
+ char *__buffer, size_t __buflen,
+ struct passwd **__result));
+extern int fgetpwent_r __P ((FILE * __stream, struct passwd *__resultbuf,
+ char *__buffer, size_t __buflen,
+ struct passwd **__result));
#endif
#endif /* reentrant */
diff --git a/resolv/gethnamaddr.c b/resolv/gethnamaddr.c
index 7c3096c967..6962f59610 100644
--- a/resolv/gethnamaddr.c
+++ b/resolv/gethnamaddr.c
@@ -455,7 +455,7 @@ gethostbyname2(name, af)
break;
default:
__set_h_errno (NETDB_INTERNAL);
- errno = EAFNOSUPPORT;
+ __set_errno (EAFNOSUPPORT);
return (NULL);
}
diff --git a/resolv/netdb.h b/resolv/netdb.h
index 38622e87fe..f906edac0b 100644
--- a/resolv/netdb.h
+++ b/resolv/netdb.h
@@ -28,6 +28,8 @@
/* This is necessary to make this include file properly replace the
Sun version. */
#include <rpc/netdb.h>
+#define __need_size_t
+#include <stddef.h>
/* Absolute file name for network data base files. */
#define _PATH_HEQUIV "/etc/hosts.equiv"
@@ -43,23 +45,30 @@ __BEGIN_DECLS
/* Error status for non-reentrant lookup functions. */
extern int h_errno;
-#if defined __USE_REENTRANT && (!defined _LIBC || defined _LIBC_REENTRANT)
-/* Function to access thread specific `h_errno' variable. */
+/* Function to get address of global `h_errno' variable. */
extern int *__h_errno_location __P ((void)) __attribute__ ((__const__));
-/* An alias name for above variable. */
-extern int __h_errno;
-
-/* Use a macro to access always the thread specific `h_errno' variable. */
-#define h_errno (*__h_errno_location ())
-
+#ifdef _LIBC
/* Retain some binary compatibility with old libraries by having both the
global variable and the per-thread variable set on error. */
-#define __set_h_errno(x) (h_errno = __h_errno = (x))
-#else
-#define __set_h_errno(x) (h_errno = (x))
+# ifdef _LIBC_REENTRANT
+static inline int
+__set_h_errno (int __err)
+{
+ return *__h_errno_location () = h_errno = __err;
+}
+# else
+# define __set_h_errno(x) (h_errno = (x))
+# endif /* _LIBC_REENTRANT */
+#endif /* _LIBC */
+
+
+#if defined __USE_REENTRANT && (!defined _LIBC || defined _LIBC_REENTRANT)
+/* Use a macro to access always the thread specific `h_errno' variable. */
+# define h_errno (*__h_errno_location ())
#endif
+
/* Possible values left in `h_errno'. */
#define NETDB_INTERNAL -1 /* See errno. */
#define NETDB_SUCCESS 0 /* No problem. */
@@ -122,41 +131,39 @@ extern struct hostent *gethostbyname2 __P ((__const char *__name, int __af));
argument is a pointer to a variable which gets the value which
would be stored in the global variable `herrno' by the
non-reentrant functions. */
-extern struct hostent *__gethostent_r __P ((struct hostent *__result_buf,
- char *__buf, int __buf_len,
- int *__h_errnop));
-extern struct hostent *gethostent_r __P ((struct hostent *__result_buf,
- char *__buf, int __buf_len,
- int *__h_errnop));
-
-extern struct hostent *__gethostbyaddr_r __P ((__const char *__addr, int __len,
- int __type,
- struct hostent *__result_buf,
- char *__buf, int __buflen,
- int *__h_errnop));
-extern struct hostent *gethostbyaddr_r __P ((__const char *__addr, int __len,
- int __type,
- struct hostent *__result_buf,
- char *__buf, int __buflen,
- int *__h_errnop));
-
-extern struct hostent *__gethostbyname_r __P ((__const char *__name,
- struct hostent *__result_buf,
- char *__buf, int __buflen,
- int *__h_errnop));
-extern struct hostent *gethostbyname_r __P ((__const char *__name,
- struct hostent *__result_buf,
- char *__buf, int __buflen,
- int *__h_errnop));
-
-extern struct hostent *__gethostbyname2_r __P ((__const char *__name, int __af,
- struct hostent *__result_buf,
- char *__buf, int __buflen,
- int *__h_errnop));
-extern struct hostent *gethostbyname2_r __P ((__const char *__name, int __af,
- struct hostent *__result_buf,
- char *__buf, int __buflen,
- int *__h_errnop));
+extern int __gethostent_r __P ((struct hostent *__result_buf, char *__buf,
+ size_t __buflen, struct hostent **__result,
+ int *__h_errnop));
+extern int gethostent_r __P ((struct hostent *__result_buf, char *__buf,
+ size_t __buflen, struct hostent **__result,
+ int *__h_errnop));
+
+extern int __gethostbyaddr_r __P ((__const char *__addr, int __len, int __type,
+ struct hostent *__result_buf, char *__buf,
+ size_t __buflen, struct hostent **__result,
+ int *__h_errnop));
+extern int gethostbyaddr_r __P ((__const char *__addr, int __len, int __type,
+ struct hostent *__result_buf, char *__buf,
+ size_t __buflen, struct hostent **__result,
+ int *__h_errnop));
+
+extern int __gethostbyname_r __P ((__const char *__name,
+ struct hostent *__result_buf, char *__buf,
+ size_t __buflen, struct hostent **__result,
+ int *__h_errnop));
+extern int gethostbyname_r __P ((__const char *__name,
+ struct hostent *__result_buf, char *__buf,
+ size_t __buflen, struct hostent **__result,
+ int *__h_errnop));
+
+extern int __gethostbyname2_r __P ((__const char *__name, int __af,
+ struct hostent *__result_buf, char *__buf,
+ size_t __buflen, struct hostent **__result,
+ int *__h_errnop));
+extern int gethostbyname2_r __P ((__const char *__name, int __af,
+ struct hostent *__result_buf, char *__buf,
+ size_t __buflen, struct hostent **__result,
+ int *__h_errnop));
#endif /* reentrant */
@@ -196,32 +203,30 @@ extern struct netent *getnetbyname __P ((__const char *__name));
argument is a pointer to a variable which gets the value which
would be stored in the global variable `herrno' by the
non-reentrant functions. */
-extern struct netent *__getnetent_r __P ((struct netent *__result_buf,
- char *__buf, int __buf_len,
- int *__h_errnop));
-extern struct netent *getnetent_r __P ((struct netent *__result_buf,
- char *__buf, int __buf_len,
- int *__h_errnop));
-
-extern struct netent *__getnetbyaddr_r __P ((unsigned long int __net,
- int __type,
- struct netent *__result_buf,
- char *__buf, int __buflen,
- int *__h_errnop));
-extern struct netent *getnetbyaddr_r __P ((unsigned long int __net,
- int __type,
- struct netent *__result_buf,
- char *__buf, int __buflen,
- int *__h_errnop));
-
-extern struct netent *__getnetbyname_r __P ((__const char *__name,
- struct netent *__result_buf,
- char *__buf, int __buflen,
- int *__h_errnop));
-extern struct netent *getnetbyname_r __P ((__const char *__name,
- struct netent *__result_buf,
- char *__buf, int __buflen,
- int *__h_errnop));
+extern int __getnetent_r __P ((struct netent *__result_buf, char *__buf,
+ size_t __buflen, struct netent **__result,
+ int *__h_errnop));
+extern int getnetent_r __P ((struct netent *__result_buf, char *__buf,
+ size_t __buflen, struct netent **__result,
+ int *__h_errnop));
+
+extern int __getnetbyaddr_r __P ((unsigned long int __net, int __type,
+ struct netent *__result_buf, char *__buf,
+ size_t __buflen, struct netent **__result,
+ int *__h_errnop));
+extern int getnetbyaddr_r __P ((unsigned long int __net, int __type,
+ struct netent *__result_buf, char *__buf,
+ size_t __buflen, struct netent **__result,
+ int *__h_errnop));
+
+extern int __getnetbyname_r __P ((__const char *__name,
+ struct netent *__result_buf, char *__buf,
+ size_t __buflen, struct netent **__result,
+ int *__h_errnop));
+extern int getnetbyname_r __P ((__const char *__name,
+ struct netent *__result_buf, char *__buf,
+ size_t __buflen, struct netent **__result,
+ int *__h_errnop));
#endif /* reentrant */
@@ -258,27 +263,26 @@ extern struct servent *getservbyport __P ((int __port, __const char *__proto));
#ifdef __USE_REENTRANT
/* Reentrant versions of the functions above. The additional
arguments specify a buffer of BUFLEN starting at BUF. */
-extern struct servent *__getservent_r __P ((struct servent *__result_buf,
- char *__buf, int __buf_len));
-extern struct servent *getservent_r __P ((struct servent *__result_buf,
- char *__buf, int __buf_len));
-
-extern struct servent *__getservbyname_r __P ((__const char *__name,
- __const char *__proto,
- struct servent *__result_buf,
- char *__buf, int __buflen));
-extern struct servent *getservbyname_r __P ((__const char *__name,
- __const char *__proto,
- struct servent *__result_buf,
- char *__buf, int __buflen));
-
-extern struct servent *__getservbyport_r __P ((int __port,
- __const char *__proto,
- struct servent *__result_buf,
- char *__buf, int __buflen));
-extern struct servent *getservbyport_r __P ((int __port, __const char *__proto,
- struct servent *__result_buf,
- char *__buf, int __buflen));
+extern int __getservent_r __P ((struct servent *__result_buf, char *__buf,
+ size_t __buflen, struct servent **__result));
+extern int getservent_r __P ((struct servent *__result_buf, char *__buf,
+ size_t __buflen, struct servent **__result));
+
+extern int __getservbyname_r __P ((__const char *__name, __const char *__proto,
+ struct servent *__result_buf, char *__buf,
+ size_t __buflen,
+ struct servent **__result));
+extern int getservbyname_r __P ((__const char *__name, __const char *__proto,
+ struct servent *__result_buf, char *__buf,
+ size_t __buflen, struct servent **__result));
+
+extern int __getservbyport_r __P ((int __port, __const char *__proto,
+ struct servent *__result_buf, char *__buf,
+ size_t __buflen,
+ struct servent **__result));
+extern int getservbyport_r __P ((int __port, __const char *__proto,
+ struct servent *__result_buf, char *__buf,
+ size_t __buflen, struct servent **__result));
#endif /* reentrant */
@@ -311,24 +315,26 @@ extern struct protoent *getprotobynumber __P ((int __proto));
#ifdef __USE_REENTRANT
/* Reentrant versions of the functions above. The additional
arguments specify a buffer of BUFLEN starting at BUF. */
-extern struct protoent *__getprotoent_r __P ((struct protoent *__result_buf,
- char *__buf, int __buf_len));
-extern struct protoent *getprotoent_r __P ((struct protoent *__result_buf,
- char *__buf, int __buf_len));
-
-extern struct protoent *__getprotobyname_r __P ((__const char *__name,
- struct protoent *__result_buf,
- char *__buf, int __buflen));
-extern struct protoent *getprotobyname_r __P ((__const char *__name,
- struct protoent *__result_buf,
- char *__buf, int __buflen));
-
-extern struct protoent *__getprotobynumber_r __P ((int __proto,
- struct protoent *__res_buf,
- char *__buf, int __buflen));
-extern struct protoent *getprotobynumber_r __P ((int __proto,
- struct protoent *__result_buf,
- char *__buf, int __buflen));
+extern int __getprotoent_r __P ((struct protoent *__result_buf, char *__buf,
+ size_t __buflen, struct protoent **__result));
+extern int getprotoent_r __P ((struct protoent *__result_buf, char *__buf,
+ size_t __buflen, struct protoent **__result));
+
+extern int __getprotobyname_r __P ((__const char *__name,
+ struct protoent *__result_buf, char *__buf,
+ size_t __buflen,
+ struct protoent **__result));
+extern int getprotobyname_r __P ((__const char *__name,
+ struct protoent *__result_buf, char *__buf,
+ size_t __buflen,
+ struct protoent **__result));
+
+extern int __getprotobynumber_r __P ((int __proto, struct protoent *__res_buf,
+ char *__buf, size_t __buflen,
+ struct protoent **__result));
+extern int getprotobynumber_r __P ((int __proto, struct protoent *__result_buf,
+ char *__buf, size_t __buflen,
+ struct protoent **__result));
#endif /* reentrant */
@@ -351,10 +357,10 @@ extern int innetgr __P ((__const char *__netgroup, __const char *__host,
/* Reentrant version of `getnetgrent' where result is placed in BUFFER. */
extern int __getnetgrent_r __P ((char **__hostp, char **__userp,
char **__domainp,
- char *__buffer, int __buflen));
+ char *__buffer, size_t __buflen));
extern int getnetgrent_r __P ((char **__hostp, char **__userp,
char **__domainp,
- char *__buffer, int __buflen));
+ char *__buffer, size_t __buflen));
#endif
diff --git a/resource/sys/resource.h b/resource/sys/resource.h
index 3d0e5a921b..aa8e66555d 100644
--- a/resource/sys/resource.h
+++ b/resource/sys/resource.h
@@ -23,20 +23,9 @@ Cambridge, MA 02139, USA. */
__BEGIN_DECLS
-/* Get the system-dependent definitions of RLIM_*. */
+/* Get the system-dependent definitions of structures and bit values. */
#include <resourcebits.h>
-struct rlimit
- {
- /* The current (soft) limit. */
- int rlim_cur;
- /* The hard limit. */
- int rlim_max;
- };
-
-/* Value used to indicate that there is no limit. */
-#define RLIM_INFINITY 0x7fffffff
-
/* Put the soft and hard limits for RESOURCE in *RLIMITS.
Returns 0 if successful, -1 if not (and sets errno). */
extern int __getrlimit __P ((enum __rlimit_resource __resource,
@@ -50,66 +39,6 @@ extern int getrlimit __P ((enum __rlimit_resource __resource,
extern int setrlimit __P ((enum __rlimit_resource __resource,
struct rlimit *__rlimits));
-
-/* Whose usage statistics do you want? */
-enum __rusage_who
-/* The macro definitions are necessary because some programs want
- to test for operating system features with #ifdef RUSAGE_SELF.
- In ANSI C the reflexive definition is a no-op. */
- {
- /* The calling process. */
- RUSAGE_SELF = 0,
-#define RUSAGE_SELF RUSAGE_SELF
- /* All of its terminated child processes. */
- RUSAGE_CHILDREN = -1
-#define RUSAGE_CHILDREN RUSAGE_CHILDREN
- };
-
-#include <sys/time.h> /* For `struct timeval'. */
-
-/* Structure which says how much of each resource has been used. */
-struct rusage
- {
- /* Total amount of user time used. */
- struct timeval ru_utime;
- /* Total amount of system time used. */
- struct timeval ru_stime;
- /* Maximum resident set size (in kilobytes). */
- long ru_maxrss;
- /* Amount of sharing of text segment memory
- with other processes (kilobyte-seconds). */
- long ru_ixrss;
- /* Amount of data segment memory used (kilobyte-seconds). */
- long ru_idrss;
- /* Amount of stack memory used (kilobyte-seconds). */
- long ru_isrss;
- /* Number of soft page faults (i.e. those serviced by reclaiming
- a page from the list of pages awaiting reallocation. */
- long ru_minflt;
- /* Number of hard page faults (i.e. those that required I/O). */
- long ru_majflt;
- /* Number of times a process was swapped out of physical memory. */
- long ru_nswap;
- /* Number of input operations via the file system. Note: This
- and `ru_oublock' do not include operations with the cache. */
- long ru_inblock;
- /* Number of output operations via the file system. */
- long ru_oublock;
- /* Number of IPC messages sent. */
- long ru_msgsnd;
- /* Number of IPC messages received. */
- long ru_msgrcv;
- /* Number of signals delivered. */
- long ru_nsignals;
- /* Number of voluntary context switches, i.e. because the process
- gave up the process before it had to (usually to wait for some
- resource to be available). */
- long ru_nvcsw;
- /* Number of involuntary context switches, i.e. a higher priority process
- became runnable or the current process used up its time slice. */
- long ru_nivcsw;
- };
-
/* Return resource usage information on process indicated by WHO
and put it in *USAGE. Returns 0 for success, -1 for failure. */
extern int __getrusage __P ((enum __rusage_who __who, struct rusage *__usage));
@@ -125,20 +54,6 @@ extern int getrusage __P ((enum __rusage_who __who, struct rusage *__usage));
extern long int __ulimit __P ((int __cmd, long int __newlimit));
extern long int ulimit __P ((int __cmd, long int __newlimit));
-
-/* Priority limits. */
-#define PRIO_MIN -20 /* Minimum priority a process can have. */
-#define PRIO_MAX 20 /* Maximum priority a process can have. */
-
-/* The type of the WHICH argument to `getpriority' and `setpriority',
- indicating what flavor of entity the WHO argument specifies. */
-enum __priority_which
- {
- PRIO_PROCESS = 0, /* WHO is a process ID. */
- PRIO_PGRP = 1, /* WHO is a process group ID. */
- PRIO_USER = 2 /* WHO is a user ID. */
- };
-
/* Return the highest priority of any process specified by WHICH and WHO
(see above); if WHO is zero, the current process, process group, or user
(as specified by WHO) is used. A lower priority number means higher
diff --git a/setjmp/setjmp.h b/setjmp/setjmp.h
index 8207cdfd82..75abb18c6d 100644
--- a/setjmp/setjmp.h
+++ b/setjmp/setjmp.h
@@ -1,23 +1,23 @@
/* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+ 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 Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 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
-Library General Public License for more details.
+ 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
+ Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB. If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA. */
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
/*
- * ANSI Standard: 4.6 NON-LOCAL JUMPS <setjmp.h>
+ * ISO C Standard: 4.6 NON-LOCAL JUMPS <setjmp.h>
*/
#ifndef _SETJMP_H
diff --git a/shadow/fgetspent.c b/shadow/fgetspent.c
index d6c4e4fc05..8782b6b1b9 100644
--- a/shadow/fgetspent.c
+++ b/shadow/fgetspent.c
@@ -25,7 +25,9 @@ struct spwd *
fgetspent (FILE *stream)
{
static char buffer[BUFSIZ];
- static struct spwd result;
+ static struct spwd resbuf;
+ struct spwd *result;
- return __fgetspent_r (stream, &result, buffer, sizeof buffer);
+ return __fgetspent_r (stream, &resbuf, buffer, sizeof buffer, &result)
+ ? NULL : result;
}
diff --git a/shadow/fgetspent_r.c b/shadow/fgetspent_r.c
index 6521517a6f..0cdcc76d9b 100644
--- a/shadow/fgetspent_r.c
+++ b/shadow/fgetspent_r.c
@@ -32,8 +32,9 @@ struct spent_data {};
/* Read one shadow entry from the given stream. */
-struct spwd *
-__fgetspent_r (FILE *stream, struct spwd *result, char *buffer, int buflen)
+int
+__fgetspent_r (FILE *stream, struct spwd *resbuf, char *buffer, size_t buflen,
+ struct spwd **result)
{
char *p;
@@ -41,7 +42,7 @@ __fgetspent_r (FILE *stream, struct spwd *result, char *buffer, int buflen)
{
p = fgets (buffer, buflen, stream);
if (p == NULL)
- return NULL;
+ return errno;
/* Skip leading blanks. */
while (isspace (*p))
@@ -49,8 +50,9 @@ __fgetspent_r (FILE *stream, struct spwd *result, char *buffer, int buflen)
} while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- ! parse_line (buffer, (void *) result, NULL, 0));
+ ! parse_line (buffer, (void *) resbuf, NULL, 0));
- return result;
+ *result = resbuf;
+ return 0;
}
weak_alias (__fgetspent_r, fgetspent_r)
diff --git a/shadow/sgetspent.c b/shadow/sgetspent.c
index a3c61f9026..d18e5d78fb 100644
--- a/shadow/sgetspent.c
+++ b/shadow/sgetspent.c
@@ -28,9 +28,10 @@ Cambridge, MA 02139, USA. */
struct spwd *
sgetspent (const char *string)
{
- static struct spwd result;
+ static struct spwd resbuf;
static int max_size = 0;
static char *buffer = NULL;
+ struct spwd *result;
int len;
len = strlen (string) + 1;
@@ -42,5 +43,6 @@ sgetspent (const char *string)
return NULL;
}
- return __sgetspent_r (string, &result, buffer, max_size);
+ return __sgetspent_r (string, &resbuf, buffer, max_size, &result)
+ ? NULL : result;
}
diff --git a/shadow/sgetspent_r.c b/shadow/sgetspent_r.c
index 407886ede4..5270a2a163 100644
--- a/shadow/sgetspent_r.c
+++ b/shadow/sgetspent_r.c
@@ -68,11 +68,13 @@ LINE_PARSER
/* Read one shadow entry from the given stream. */
-struct spwd *
-__sgetspent_r (const char *string, struct spwd *result, char *buffer,
- int buflen)
+int
+__sgetspent_r (const char *string, struct spwd *resbuf, char *buffer,
+ size_t buflen, struct spwd **result)
{
- return parse_line (strncpy (buffer, string, buflen), result, NULL, 0)
- ? result : NULL;
+ *result = parse_line (strncpy (buffer, string, buflen), resbuf, NULL, 0)
+ ? resbuf : NULL;
+
+ return *result == NULL ? errno : 0;
}
weak_alias (__sgetspent_r, sgetspent_r)
diff --git a/shadow/shadow.h b/shadow/shadow.h
index 133cfd6009..c27cc9a996 100644
--- a/shadow/shadow.h
+++ b/shadow/shadow.h
@@ -74,31 +74,31 @@ extern int putspent __P ((__const struct spwd *__p, FILE *__stream));
#ifdef __USE_REENTRANT
/* Reentrant versions of some of the functions above. */
-extern struct spwd *__getspent_r __P ((struct spwd *__result_buf,
- char *__buffer, int __buflen));
-extern struct spwd *getspent_r __P ((struct spwd *__result_buf,
- char *__buffer, int __buflen));
-
-extern struct spwd *__getspnam_r __P ((__const char *__name,
- struct spwd *__result_buf,
- char *__buffer, int __buflen));
-extern struct spwd *getspnam_r __P ((__const char *__name,
- struct spwd *__result_buf,
- char *__buffer, int __buflen));
-
-extern struct spwd *__sgetspent_r __P ((__const char *__string,
- struct spwd *__result_buf,
- char *__buffer, int __buflen));
-extern struct spwd *sgetspent_r __P ((__const char *__string,
- struct spwd *__result_buf,
- char *__buffer, int __buflen));
-
-extern struct spwd *__fgetspent_r __P ((FILE *__stream,
- struct spwd *__result_buf,
- char *__buffer, int __buflen));
-extern struct spwd *fgetspent_r __P ((FILE *__stream,
- struct spwd *__result_buf,
- char *__buffer, int __buflen));
+extern int __getspent_r __P ((struct spwd *__result_buf, char *__buffer,
+ size_t __buflen, struct spwd **__result));
+extern int getspent_r __P ((struct spwd *__result_buf, char *__buffer,
+ size_t __buflen, struct spwd **__result));
+
+extern int __getspnam_r __P ((__const char *__name, struct spwd *__result_buf,
+ char *__buffer, size_t __buflen,
+ struct spwd **__result));
+extern int getspnam_r __P ((__const char *__name, struct spwd *__result_buf,
+ char *__buffer, size_t __buflen,
+ struct spwd **__result));
+
+extern int __sgetspent_r __P ((__const char *__string,
+ struct spwd *__result_buf, char *__buffer,
+ size_t __buflen, struct spwd **__result));
+extern int sgetspent_r __P ((__const char *__string, struct spwd *__result_buf,
+ char *__buffer, size_t __buflen,
+ struct spwd **__result));
+
+extern int __fgetspent_r __P ((FILE *__stream, struct spwd *__result_buf,
+ char *__buffer, size_t __buflen,
+ struct spwd **__result));
+extern int fgetspent_r __P ((FILE *__stream, struct spwd *__result_buf,
+ char *__buffer, size_t __buflen,
+ struct spwd **__result));
#endif /* reentrant */
diff --git a/shlib-versions b/shlib-versions
index 0c94f3ba2f..58ea1f55b3 100644
--- a/shlib-versions
+++ b/shlib-versions
@@ -19,13 +19,13 @@ m68k-*-linux* libc=6
alpha-*-linux* libc=6
# libmachuser.so.1 corresponds to mach/*.defs as of Utah's UK22 release.
-*-*-gnu* libmachuser=1
+*-*-gnu?* libmachuser=1
# libhurduser.so.0.0 corresponds to hurd/*.defs as of 7 May 1996.
-*-*-gnu* libhurduser=0.0
+*-*-gnu?* libhurduser=0.0
# libc.so.0.2 is for the Hurd alpha release 0.2.
-*-*-gnu* libc=0.2
+*-*-gnu?* libc=0.2
# The dynamic loader also requires different names.
i?86-*-linux* ld=ld-linux.so.2
@@ -53,5 +53,5 @@ i?86-*-linux* ld=ld-linux.so.2
# We use libdb.so.2 for the interface in version 1.85 of the Berkeley DB code.
*-*-* libdb=2
-# This file defines the shared library version numbers we will install.
+# This defines the shared library version numbers we will install.
*-*-* libcrypt=1
diff --git a/signal/Makefile b/signal/Makefile
index 6957953ba7..d3337385c9 100644
--- a/signal/Makefile
+++ b/signal/Makefile
@@ -25,7 +25,7 @@ headers := signal.h sys/signal.h signum.h sigcontext.h sigaction.h sigset.h
routines := signal raise killpg \
sigaction sigprocmask kill \
- sigpending sigsuspend \
+ sigpending sigsuspend sigwait \
sigblock sigsetmask sigpause sigvec \
sigstack sigaltstack sigintr \
sigsetops sigempty sigfillset sigaddset sigdelset sigismem \
diff --git a/signal/signal.h b/signal/signal.h
index 402d15e0f9..f7b2d131ad 100644
--- a/signal/signal.h
+++ b/signal/signal.h
@@ -177,6 +177,11 @@ extern int sigaction __P ((int __sig, __const struct sigaction *__act,
/* Put in SET all signals that are blocked and waiting to be delivered. */
extern int sigpending __P ((sigset_t *__set));
+
+/* Select any of pending signals from SET or wait for any to arrive. */
+extern int __sigwait __P ((__const sigset_t *__set, int *__sig));
+extern int sigwait __P ((__const sigset_t *__set, int *__sig));
+
#endif /* <signal.h> included. */
#endif /* Use POSIX. */
diff --git a/stdio-common/Makefile b/stdio-common/Makefile
index 240016c112..920af7938f 100644
--- a/stdio-common/Makefile
+++ b/stdio-common/Makefile
@@ -50,6 +50,7 @@ include ../Rules
CFLAGS-_itoa.c = -Wno-unused
CFLAGS-tst-printf.c = -Wno-format
+CFLAGS-tstdiomisc.c = -Wno-format
ifeq ($(stdio),libio)
ifneq (,$(filter %REENTRANT, $(defines)))
diff --git a/stdio-common/bug5.c b/stdio-common/bug5.c
index def73397de..59fb6bb9d9 100644
--- a/stdio-common/bug5.c
+++ b/stdio-common/bug5.c
@@ -3,7 +3,6 @@
exhibits itself, outfile will be missing the 2nd through 1023rd
characters. */
-#include <ansidecl.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
@@ -11,14 +10,15 @@
static char buf[8192];
int
-DEFUN_VOID(main)
+main (void)
{
FILE *in;
FILE *out;
static char inname[] = "/tmp/bug5.in";
static char outname[] = "/tmp/bug5.out";
char *printbuf;
- int i, result;
+ size_t i;
+ int result;
/* Create a test file. */
in = fopen (inname, "w+");
@@ -28,7 +28,7 @@ DEFUN_VOID(main)
return 1;
}
for (i = 0; i < 1000; ++i)
- fprintf (in, "%d\n", i);
+ fprintf (in, "%u\n", i);
out = fopen (outname, "w");
if (out == NULL)
diff --git a/stdio-common/printf_fp.c b/stdio-common/printf_fp.c
index 7ab46f1ae2..967ece2cf8 100644
--- a/stdio-common/printf_fp.c
+++ b/stdio-common/printf_fp.c
@@ -156,7 +156,7 @@ __printf_fp (FILE *fp,
position. */
mp_limb_t fp_input[(LDBL_MANT_DIG + BITS_PER_MP_LIMB - 1) / BITS_PER_MP_LIMB];
/* We need to shift the contents of fp_input by this amount of bits. */
- int to_shift;
+ int to_shift = 0;
/* The significant of the floting-point value in question */
MPN_VAR(frac);
diff --git a/stdio-common/test_rdwr.c b/stdio-common/test_rdwr.c
index e8423f256b..cd739a6c71 100644
--- a/stdio-common/test_rdwr.c
+++ b/stdio-common/test_rdwr.c
@@ -16,7 +16,6 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
-#include <ansidecl.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
@@ -24,11 +23,11 @@ Cambridge, MA 02139, USA. */
int
-DEFUN(main, (argc, argv), int argc AND char **argv)
+main (int argc, char **argv)
{
- static CONST char hello[] = "Hello, world.\n";
- static CONST char replace[] = "Hewwo, world.\n";
- static CONST size_t replace_from = 2, replace_to = 4;
+ static const char hello[] = "Hello, world.\n";
+ static const char replace[] = "Hewwo, world.\n";
+ static const size_t replace_from = 2, replace_to = 4;
char filename[FILENAME_MAX];
char *name = strrchr(*argv, '/');
char buf[BUFSIZ];
@@ -78,7 +77,7 @@ DEFUN(main, (argc, argv), int argc AND char **argv)
{
long int where = ftell(f);
- if (where == replace_from)
+ if (where == (long int) replace_from)
{
register size_t i;
for (i = replace_from; i < replace_to; ++i)
diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
index 82b0e06a31..9eb6295c5d 100644
--- a/stdio-common/vfprintf.c
+++ b/stdio-common/vfprintf.c
@@ -145,9 +145,9 @@ extern void __funlockfile (FILE *);
#define outstring(String, Len) \
do \
{ \
- if (PUT (s, String, Len) != Len) \
+ if ((size_t) PUT (s, (String), (Len)) != (size_t) (Len)) \
return -1; \
- done += Len; \
+ done += (Len); \
} \
while (0)
@@ -1075,7 +1075,7 @@ do_positional:
size_t max_ref_arg = 0;
/* Just a counter. */
- int cnt;
+ size_t cnt;
if (grouping == (const char *) -1)
@@ -1194,7 +1194,7 @@ do_positional:
}
/* Now walk through all format specifiers and process them. */
- for (; nspecs_done < nspecs; ++nspecs_done)
+ for (; (size_t) nspecs_done < nspecs; ++nspecs_done)
{
#undef REF
#define REF(Name) &&do2_##Name
@@ -1501,7 +1501,7 @@ buffered_vfprintf (register _IO_FILE *s, const CHAR_T *format,
/* Now flush anything from the helper to the S. */
if ((to_flush = hp->_IO_write_ptr - hp->_IO_write_base) > 0)
{
- if (_IO_sputn (s, hp->_IO_write_base, to_flush) != to_flush)
+ if ((int) _IO_sputn (s, hp->_IO_write_base, to_flush) != to_flush)
return -1;
}
diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c
index 5564e2b0e6..28f8ceb820 100644
--- a/stdio-common/vfscanf.c
+++ b/stdio-common/vfscanf.c
@@ -172,8 +172,9 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
unsigned long int ul;
} num;
/* Character-buffer pointer. */
- register char *str, **strptr;
- size_t strsize;
+ char *str = NULL;
+ char **strptr = NULL;
+ size_t strsize = 0;
/* We must not react on white spaces immediately because they can
possibly be matched even if in the input stream no character is
available anymore. */
diff --git a/stdio/stdio.h b/stdio/stdio.h
index 8072625312..12996b8607 100644
--- a/stdio/stdio.h
+++ b/stdio/stdio.h
@@ -1,23 +1,23 @@
/* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+ 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 Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 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
-Library General Public License for more details.
+ 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
+ Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB. If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA. */
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
/*
- * ANSI Standard: 4.9 INPUT/OUTPUT <stdio.h>
+ * ISO C Standard: 4.9 INPUT/OUTPUT <stdio.h>
*/
#ifndef _STDIO_H
diff --git a/stdlib/atexit.c b/stdlib/atexit.c
index a2ab453576..675de668cc 100644
--- a/stdlib/atexit.c
+++ b/stdlib/atexit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1996 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
@@ -16,16 +16,16 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
-#include <ansidecl.h>
+#include <libc-lock.h>
#include <stdlib.h>
#include "exit.h"
/* Register FUNC to be executed by `exit'. */
int
-DEFUN(atexit, (func), void EXFUN((*func), (NOARGS)))
+atexit (void (*func) (void))
{
- struct exit_function *new = __new_exitfn();
+ struct exit_function *new = __new_exitfn ();
if (new == NULL)
return -1;
@@ -36,30 +36,55 @@ DEFUN(atexit, (func), void EXFUN((*func), (NOARGS)))
}
+/* We change global data, so we need locking. */
+__libc_lock_define_initialized (static, lock)
+
+
static struct exit_function_list fnlist = { NULL, 0, };
struct exit_function_list *__exit_funcs = &fnlist;
struct exit_function *
-DEFUN_VOID(__new_exitfn)
+__new_exitfn (void)
{
- register struct exit_function_list *l;
+ struct exit_function_list *l;
+ size_t i = 0;
+
+ __libc_lock_lock (lock)
for (l = __exit_funcs; l != NULL; l = l->next)
{
- register size_t i;
for (i = 0; i < l->idx; ++i)
if (l->fns[i].flavor == ef_free)
- return &l->fns[i];
- if (l->idx < sizeof(l->fns) / sizeof(l->fns[0]))
- return &l->fns[l->idx++];
+ break;
+ if (i < l->idx)
+ break;
+
+ if (l->idx < sizeof (l->fns) / sizeof (l->fns[0]))
+ {
+ i = l->idx++;
+ break;
+ }
}
- l = (struct exit_function_list *) malloc(sizeof(struct exit_function_list));
if (l == NULL)
- return NULL;
- l->next = __exit_funcs;
- __exit_funcs = l;
+ {
+ l = (struct exit_function_list *)
+ malloc (sizeof (struct exit_function_list));
+ if (l != NULL)
+ {
+ l->next = __exit_funcs;
+ __exit_funcs = l;
+
+ l->idx = 1;
+ i = 0;
+ }
+ }
+
+ /* Mark entry as used, but we don't know the flavor now. */
+ if (l != NULL)
+ l->fns[i].flavor = ef_us;
+
+ __libc_lock_unlock (lock)
- l->idx = 1;
- return &l->fns[0];
+ return l == NULL ? NULL : &l->fns[i];
}
diff --git a/stdlib/exit.c b/stdlib/exit.c
index 4f33a25cc4..ec7ee6a2db 100644
--- a/stdlib/exit.c
+++ b/stdlib/exit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1995, 1996 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
@@ -16,7 +16,6 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
-#include <ansidecl.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
@@ -32,25 +31,26 @@ DEFINE_HOOK (__libc_atexit, (void))
in the reverse of the order in which they were registered
perform stdio cleanup, and terminate program execution with STATUS. */
void
-DEFUN(exit, (status), int status)
+exit (int status)
{
- register CONST struct exit_function_list *l;
+ const struct exit_function_list *l;
for (l = __exit_funcs; l != NULL; l = l->next)
{
- register size_t i = l->idx;
+ size_t i = l->idx;
while (i-- > 0)
{
- CONST struct exit_function *CONST f = &l->fns[i];
+ const struct exit_function *const f = &l->fns[i];
switch (f->flavor)
{
case ef_free:
+ case ef_us:
break;
case ef_on:
- (*f->func.on.fn)(status, f->func.on.arg);
+ (*f->func.on.fn) (status, f->func.on.arg);
break;
case ef_at:
- (*f->func.at)();
+ (*f->func.at) ();
break;
}
}
@@ -60,11 +60,10 @@ DEFUN(exit, (status), int status)
RUN_HOOK (__libc_atexit, ());
#else
{
- extern void EXFUN(_cleanup, (NOARGS));
- _cleanup();
+ extern void _cleanup (void);
+ _cleanup ();
}
#endif
- _exit(status);
+ _exit (status);
}
-
diff --git a/stdlib/exit.h b/stdlib/exit.h
index 214217853e..83d20b7451 100644
--- a/stdlib/exit.h
+++ b/stdlib/exit.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1996 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,14 +20,14 @@ Cambridge, MA 02139, USA. */
struct exit_function
{
- enum { ef_free, ef_on, ef_at } flavor; /* `ef_free' MUST be zero! */
+ enum { ef_free, ef_us, ef_on, ef_at } flavor; /* `ef_free' MUST be zero! */
union
{
- void EXFUN((*at), (NOARGS));
+ void (*at) (void);
struct
{
- void EXFUN((*fn), (int status, PTR arg));
- PTR arg;
+ void (*fn) (int status, void *arg);
+ void *arg;
} on;
} func;
};
@@ -39,6 +39,6 @@ struct exit_function_list
};
extern struct exit_function_list *__exit_funcs;
-extern struct exit_function *EXFUN(__new_exitfn, (NOARGS));
+extern struct exit_function *__new_exitfn (void);
#endif /* exit.h */
diff --git a/stdlib/random.c b/stdlib/random.c
index e2b191b696..461b76f29b 100644
--- a/stdlib/random.c
+++ b/stdlib/random.c
@@ -22,6 +22,7 @@
* Rewritten to use reentrant functions by Ulrich Drepper, 1995.
*/
+#include <libc-lock.h>
#include <limits.h>
#include <stddef.h>
#include <stdlib.h>
@@ -162,6 +163,11 @@ static struct random_data unsafe_state =
end_ptr : &randtbl[sizeof (randtbl) / sizeof (randtbl[0])]
};
+/* POSIX.1c requires that there is mutual exclusion for the `rand' and
+ `srand' functions to prevent concurrent calls from modifying common
+ data. */
+__libc_lock_define_initialized (static, lock)
+
/* Initialize the random number generator based on the given seed. If the
type is the trivial no-state-information type, just remember the seed.
Otherwise, initializes state[] based on the given "seed" via a linear
@@ -174,7 +180,9 @@ void
__srandom (x)
unsigned int x;
{
+ __libc_lock_lock (lock)
(void) __srandom_r (x, &unsafe_state);
+ __libc_lock_unlock (lock)
}
weak_alias (__srandom, srandom)
@@ -197,10 +205,16 @@ __initstate (seed, arg_state, n)
void *arg_state;
size_t n;
{
- void *ostate = (void *) &unsafe_state.state[-1];
+ void *ostate;
+
+ __libc_lock_lock (lock)
+
+ ostate = (void *) &unsafe_state.state[-1];
__initstate_r (seed, arg_state, n, &unsafe_state);
+ __libc_lock_unlock (lock)
+
return ostate;
}
@@ -218,10 +232,16 @@ void *
__setstate (arg_state)
void *arg_state;
{
- void *ostate = (void *) &unsafe_state.state[-1];
+ void *ostate;
+
+ __libc_lock_lock (lock)
+
+ ostate = (void *) &unsafe_state.state[-1];
if (__setstate_r (arg_state, &unsafe_state) < 0)
- return NULL;
+ ostate = NULL;
+
+ __libc_lock_unlock (lock)
return ostate;
}
@@ -244,8 +264,12 @@ __random ()
{
int32_t retval;
+ __libc_lock_lock (lock)
+
(void) __random_r (&unsafe_state, &retval);
+ __libc_lock_unlock (lock)
+
return retval;
}
diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h
index cb48aa1f1c..d11b8bf73b 100644
--- a/stdlib/stdlib.h
+++ b/stdlib/stdlib.h
@@ -1,23 +1,23 @@
/* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+ 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 Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 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
-Library General Public License for more details.
+ 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
+ Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB. If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA. */
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
/*
- * ANSI Standard: 4.10 GENERAL UTILITIES <stdlib.h>
+ * ISO S Standard: 4.10 GENERAL UTILITIES <stdlib.h>
*/
#ifndef _STDLIB_H
diff --git a/string/argz.h b/string/argz.h
index b6906d976e..d7814fdd2e 100644
--- a/string/argz.h
+++ b/string/argz.h
@@ -110,7 +110,7 @@ extern char *argz_next __P ((char *argz, size_t __argz_len,
#if defined (__OPTIMIZE__) && __GNUC__ >= 2
extern inline char *
-__argz_next (char *__argz, size_t __argz_len, const char *__entry)
+__argz_next (char *__argz, size_t __argz_len, __const char *__entry)
{
if (__entry)
{
@@ -120,13 +120,10 @@ __argz_next (char *__argz, size_t __argz_len, const char *__entry)
return __entry >= __argz + __argz_len ? NULL : (char *) __entry;
}
else
- if (__argz_len > 0)
- return __argz;
- else
- return 0;
+ return __argz_len > 0 ? __argz : 0;
}
extern inline char *
-argz_next (char *__argz, size_t __argz_len, const char *__entry)
+argz_next (char *__argz, size_t __argz_len, __const char *__entry)
{
return __argz_next (__argz, __argz_len, __entry);
}
diff --git a/string/stratcliff.c b/string/stratcliff.c
index 5f6a467c15..10c1f1f6b7 100644
--- a/string/stratcliff.c
+++ b/string/stratcliff.c
@@ -14,12 +14,14 @@ int
main (int argc, char *argv[])
{
size_t size = sysconf (_SC_PAGESIZE);
- char *adr;
+ char *adr, *dest;
int result = 0;
- adr = (char *) mmap (NULL, size, PROT_READ|PROT_WRITE,
- MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
- if (adr == NULL)
+ adr = (char *) mmap (NULL, 3 * size, PROT_READ|PROT_WRITE,
+ MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
+ dest = (char *) mmap (NULL, 3*size, PROT_READ|PROT_WRITE,
+ MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
+ if (adr == (char *)-1L || dest == (char *)-1L)
{
if (errno == ENOSYS)
puts ("No test, mmap not available.");
@@ -31,9 +33,16 @@ main (int argc, char *argv[])
}
else
{
- char dest[size];
int inner, middle, outer;
+ mprotect(adr, size, PROT_NONE);
+ mprotect(adr+2*size, size, PROT_NONE);
+ adr += size;
+
+ mprotect(dest, size, PROT_NONE);
+ mprotect(dest+2*size, size, PROT_NONE);
+ dest += size;
+
memset (adr, 'T', size);
/* strlen test */
diff --git a/string/string.h b/string/string.h
index a8b34b2b33..414f2cb22a 100644
--- a/string/string.h
+++ b/string/string.h
@@ -1,23 +1,23 @@
/* Copyright (C) 1991, 92, 93, 95, 96 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+ 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 Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 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
-Library General Public License for more details.
+ 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
+ Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB. If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA. */
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
/*
- * ANSI Standard: 4.11 STRING HANDLING <string.h>
+ * ISO C Standard: 4.11 STRING HANDLING <string.h>
*/
#ifndef _STRING_H
diff --git a/sunrpc/rpc/netdb.h b/sunrpc/rpc/netdb.h
index c4043b807d..f77c6b3d76 100644
--- a/sunrpc/rpc/netdb.h
+++ b/sunrpc/rpc/netdb.h
@@ -38,27 +38,33 @@
#define _RPC_NETDB_H 1
#include <features.h>
+#define __need_size_t
+#include <stddef.h>
+
__BEGIN_DECLS
-struct rpcent {
- char *r_name; /* name of server for this rpc program */
- char **r_aliases; /* alias list */
- int r_number; /* rpc program number */
+struct rpcent
+{
+ char *r_name; /* Name of server for this rpc program. */
+ char **r_aliases; /* Alias list. */
+ int r_number; /* RPC program number. */
};
-struct rpcent *getrpcbyname __P ((const char *__name));
-struct rpcent *getrpcbynumber __P ((int __number));
-struct rpcent *getrpcent __P ((void));
+extern struct rpcent *getrpcbyname __P ((__const char *__name));
+extern struct rpcent *getrpcbynumber __P ((int __number));
+extern struct rpcent *getrpcent __P ((void));
#ifdef __USE_REENTRANT
-struct rpcent *getrpcbyname_r __P ((const char *__name,
- struct rpcent *__result,
- char *__buffer, int __buflen));
-struct rpcent *getrpcbynumber_r __P ((int __number,
- struct rpcent *__result,
- char *__buffer, int __buflen));
-struct rpcent *getrpcent_r __P ((struct rpcent *__result, char *__buffer,
- int __buflen));
+extern int getrpcbyname_r __P ((__const char *__name,
+ struct rpcent *__result_buf, char *__buffer,
+ size_t __buflen, struct rpcent **__result));
+
+extern int getrpcbynumber_r __P ((int __number, struct rpcent *__result_buf,
+ char *__buffer, size_t __buflen,
+ struct rpcent **__result));
+
+extern int getrpcent_r __P ((struct rpcent *__result_buf, char *__buffer,
+ size_t __buflen, struct rpcent **__result));
#endif
__END_DECLS
diff --git a/sunrpc/xdr_float.c b/sunrpc/xdr_float.c
index 549f8bd97b..4e322eccf1 100644
--- a/sunrpc/xdr_float.c
+++ b/sunrpc/xdr_float.c
@@ -6,23 +6,23 @@
* may copy or modify Sun RPC without charge, but are not authorized
* to license or distribute it to anyone else except as part of a product or
* program developed by the user.
- *
+ *
* SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
* WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
* PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
+ *
* Sun RPC is provided with no support and without any obligation on the
* part of Sun Microsystems, Inc. to assist in its use, correction,
* modification or enhancement.
- *
+ *
* SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
* INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
* OR ANY PART THEREOF.
- *
+ *
* In no event will Sun Microsystems, Inc. be liable for any lost revenue
* or profits or other special, indirect and consequential damages, even if
* Sun has been advised of the possibility of such damages.
- *
+ *
* Sun Microsystems, Inc.
* 2550 Garcia Avenue
* Mountain View, California 94043
@@ -42,6 +42,7 @@ static char sccsid[] = "@(#)xdr_float.c 1.12 87/08/11 Copyr 1984 Sun Micro";
*/
#include <stdio.h>
+#include <endian.h>
#include <rpc/types.h>
#include <rpc/xdr.h>
@@ -51,6 +52,8 @@ static char sccsid[] = "@(#)xdr_float.c 1.12 87/08/11 Copyr 1984 Sun Micro";
* This routine works on Suns (Sky / 68000's) and Vaxen.
*/
+#define LSW (__BYTE_ORDER == __BIG_ENDIAN)
+
#ifdef vax
/* What IEEE single precision floating point looks like on a Vax */
@@ -96,9 +99,7 @@ xdr_float(xdrs, fp)
switch (xdrs->x_op) {
case XDR_ENCODE:
-#ifndef vax
- return (XDR_PUTLONG(xdrs, (long *)fp));
-#else
+#ifdef vax
vs = *((struct vax_single *)fp);
for (i = 0, lim = sgl_limits;
i < sizeof(sgl_limits)/sizeof(struct sgl_limits);
@@ -115,12 +116,18 @@ xdr_float(xdrs, fp)
shipit:
is.sign = vs.sign;
return (XDR_PUTLONG(xdrs, (long *)&is));
+#else
+ if (sizeof(float) == sizeof(long))
+ return (XDR_PUTLONG(xdrs, (long *)fp));
+ else if (sizeof(float) == sizeof(int)) {
+ long tmp = *(int *)fp;
+ return (XDR_PUTLONG(xdrs, &tmp));
+ }
+ break;
#endif
case XDR_DECODE:
-#ifndef vax
- return (XDR_GETLONG(xdrs, (long *)fp));
-#else
+#ifdef vax
vsp = (struct vax_single *)fp;
if (!XDR_GETLONG(xdrs, (long *)&is))
return (FALSE);
@@ -139,6 +146,17 @@ xdr_float(xdrs, fp)
doneit:
vsp->sign = is.sign;
return (TRUE);
+#else
+ if (sizeof(float) == sizeof(long))
+ return (XDR_GETLONG(xdrs, (long *)fp));
+ else if (sizeof(float) == sizeof(int)) {
+ long tmp;
+ if (XDR_GETLONG(xdrs, &tmp)) {
+ *(int *)fp = tmp;
+ return (TRUE);
+ }
+ }
+ break;
#endif
case XDR_FREE:
@@ -192,7 +210,6 @@ xdr_double(xdrs, dp)
register XDR *xdrs;
double *dp;
{
- register long *lp;
#ifdef vax
struct ieee_double id;
struct vax_double vd;
@@ -203,9 +220,7 @@ xdr_double(xdrs, dp)
switch (xdrs->x_op) {
case XDR_ENCODE:
-#ifndef vax
- lp = (long *)dp;
-#else
+#ifdef vax
vd = *((struct vax_double *)dp);
for (i = 0, lim = dbl_limits;
i < sizeof(dbl_limits)/sizeof(struct dbl_limits);
@@ -226,15 +241,24 @@ xdr_double(xdrs, dp)
((vd.mantissa4 >> 3) & MASK(13));
shipit:
id.sign = vd.sign;
- lp = (long *)&id;
+ dp = (double *)&id;
#endif
- return (XDR_PUTLONG(xdrs, lp++) && XDR_PUTLONG(xdrs, lp));
+ if (2*sizeof(long) == sizeof(double)) {
+ long *lp = (long *)dp;
+ return (XDR_PUTLONG(xdrs, lp+!LSW) &&
+ XDR_PUTLONG(xdrs, lp+LSW));
+ } else if (2*sizeof(int) == sizeof(double)) {
+ int *ip = (int *)dp;
+ long tmp[2];
+ tmp[0] = ip[!LSW];
+ tmp[1] = ip[LSW];
+ return (XDR_PUTLONG(xdrs, tmp) &&
+ XDR_PUTLONG(xdrs, tmp+1));
+ }
+ break;
case XDR_DECODE:
-#ifndef vax
- lp = (long *)dp;
- return (XDR_GETLONG(xdrs, lp++) && XDR_GETLONG(xdrs, lp));
-#else
+#ifdef vax
lp = (long *)&id;
if (!XDR_GETLONG(xdrs, lp++) || !XDR_GETLONG(xdrs, lp))
return (FALSE);
@@ -258,6 +282,22 @@ xdr_double(xdrs, dp)
vd.sign = id.sign;
*dp = *((double *)&vd);
return (TRUE);
+#else
+ if (2*sizeof(long) == sizeof(double)) {
+ long *lp = (long *)dp;
+ return (XDR_GETLONG(xdrs, lp+!LSW) &&
+ XDR_GETLONG(xdrs, lp+LSW));
+ } else if (2*sizeof(int) == sizeof(double)) {
+ int *ip = (int *)dp;
+ long tmp[2];
+ if (XDR_GETLONG(xdrs, tmp+!LSW) &&
+ XDR_GETLONG(xdrs, tmp+LSW)) {
+ ip[0] = tmp[0];
+ ip[1] = tmp[1];
+ return (TRUE);
+ }
+ }
+ break;
#endif
case XDR_FREE:
diff --git a/sysdeps/generic/crypt-entry.c b/sysdeps/generic/crypt-entry.c
index de15904b2c..ab1c6faaab 100644
--- a/sysdeps/generic/crypt-entry.c
+++ b/sysdeps/generic/crypt-entry.c
@@ -48,7 +48,7 @@ crypt_r (key, salt, data)
return md5_crypt_r (key, salt, (char *) data, sizeof (struct crypt_data));
/* We don't have DES encryption. */
- errno = ENOSYS;
+ __set_errno (ENOSYS);
return NULL;
}
@@ -63,6 +63,6 @@ crypt (key, salt)
return md5_crypt (key, salt);
/* We don't have DES encryption. */
- errno = ENOSYS;
+ __set_errno (ENOSYS);
return NULL;
}
diff --git a/sysdeps/generic/resourcebits.h b/sysdeps/generic/resourcebits.h
index 74cbcb0e97..01dbb8f952 100644
--- a/sysdeps/generic/resourcebits.h
+++ b/sysdeps/generic/resourcebits.h
@@ -1,4 +1,4 @@
-/* Bit values for resource limits. 4.4 BSD/generic GNU version.
+/* Bit values & structures for resource limits. 4.4 BSD/generic GNU version.
Copyright (C) 1994, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -59,5 +59,88 @@ enum __rlimit_resource
#define RLIMIT_NOFILE RLIMIT_NOFILE
RLIMIT_NLIMITS, /* Number of limit flavors. */
- RLIM_NLIMITS = RLIMIT_NLIMITS /* Traditional name for same. */
+ RLIM_NLIMITS = RLIMIT_NLIMITS, /* Traditional name for same. */
+
+ RLIM_INFINITY = 0x7fffffff /* Value to indicate that there is no limit. */
+#define RLIM_INFINITY RLIM_INFINITY
+ };
+
+struct rlimit
+ {
+ /* The current (soft) limit. */
+ int rlim_cur;
+ /* The hard limit. */
+ int rlim_max;
+ };
+
+/* Whose usage statistics do you want? */
+enum __rusage_who
+/* The macro definitions are necessary because some programs want
+ to test for operating system features with #ifdef RUSAGE_SELF.
+ In ISO C the reflexive definition is a no-op. */
+ {
+ /* The calling process. */
+ RUSAGE_SELF = 0,
+#define RUSAGE_SELF RUSAGE_SELF
+ /* All of its terminated child processes. */
+ RUSAGE_CHILDREN = -1
+#define RUSAGE_CHILDREN RUSAGE_CHILDREN
+ };
+
+#include <sys/time.h> /* For `struct timeval'. */
+
+/* Structure which says how much of each resource has been used. */
+struct rusage
+ {
+ /* Total amount of user time used. */
+ struct timeval ru_utime;
+ /* Total amount of system time used. */
+ struct timeval ru_stime;
+ /* Maximum resident set size (in kilobytes). */
+ long int ru_maxrss;
+ /* Amount of sharing of text segment memory
+ with other processes (kilobyte-seconds). */
+ long int ru_ixrss;
+ /* Amount of data segment memory used (kilobyte-seconds). */
+ long int ru_idrss;
+ /* Amount of stack memory used (kilobyte-seconds). */
+ long int ru_isrss;
+ /* Number of soft page faults (i.e. those serviced by reclaiming
+ a page from the list of pages awaiting reallocation. */
+ long int ru_minflt;
+ /* Number of hard page faults (i.e. those that required I/O). */
+ long int ru_majflt;
+ /* Number of times a process was swapped out of physical memory. */
+ long int ru_nswap;
+ /* Number of input operations via the file system. Note: This
+ and `ru_oublock' do not include operations with the cache. */
+ long int ru_inblock;
+ /* Number of output operations via the file system. */
+ long int ru_oublock;
+ /* Number of IPC messages sent. */
+ long int ru_msgsnd;
+ /* Number of IPC messages received. */
+ long int ru_msgrcv;
+ /* Number of signals delivered. */
+ long int ru_nsignals;
+ /* Number of voluntary context switches, i.e. because the process
+ gave up the process before it had to (usually to wait for some
+ resource to be available). */
+ long int ru_nvcsw;
+ /* Number of involuntary context switches, i.e. a higher priority process
+ became runnable or the current process used up its time slice. */
+ long int ru_nivcsw;
+ };
+
+/* Priority limits. */
+#define PRIO_MIN -20 /* Minimum priority a process can have. */
+#define PRIO_MAX 20 /* Maximum priority a process can have. */
+
+/* The type of the WHICH argument to `getpriority' and `setpriority',
+ indicating what flavor of entity the WHO argument specifies. */
+enum __priority_which
+ {
+ PRIO_PROCESS = 0, /* WHO is a process ID. */
+ PRIO_PGRP = 1, /* WHO is a process group ID. */
+ PRIO_USER = 2 /* WHO is a user ID. */
};
diff --git a/sysdeps/generic/uname.c b/sysdeps/generic/uname.c
index c0bc13e02a..f5f90239ca 100644
--- a/sysdeps/generic/uname.c
+++ b/sysdeps/generic/uname.c
@@ -44,7 +44,7 @@ uname (name)
{
/* Hostname is meaningless for this machine. */
name->nodename[0] = '\0';
- errno = save;
+ __set_errno (save);
}
#ifdef ENAMETOOLONG
else if (errno == ENAMETOOLONG)
diff --git a/sysdeps/libm-ieee754/e_jnf.c b/sysdeps/libm-ieee754/e_jnf.c
index b9951f6b43..9e5279c30a 100644
--- a/sysdeps/libm-ieee754/e_jnf.c
+++ b/sysdeps/libm-ieee754/e_jnf.c
@@ -8,7 +8,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -53,7 +53,7 @@ static float zero = 0.0000000000e+00;
ix = 0x7fffffff&hx;
/* if J(n,NaN) is NaN */
if(ix>0x7f800000) return x+x;
- if(n<0){
+ if(n<0){
n = -n;
x = -x;
hx ^= 0x80000000;
@@ -64,7 +64,7 @@ static float zero = 0.0000000000e+00;
x = fabsf(x);
if(ix==0||ix>=0x7f800000) /* if x is 0 or inf */
b = zero;
- else if((float)n<=x) {
+ else if((float)n<=x) {
/* Safe to use J(n+1,x)=2n/x *J(n,x)-J(n-1,x) */
a = __ieee754_j0f(x);
b = __ieee754_j1f(x);
@@ -75,7 +75,7 @@ static float zero = 0.0000000000e+00;
}
} else {
if(ix<0x30800000) { /* x < 2**-29 */
- /* x is tiny, return the first Taylor expansion of J(n,x)
+ /* x is tiny, return the first Taylor expansion of J(n,x)
* J(n,x) = 1/n!*(x/2)^n - ...
*/
if(n>33) /* underflow */
@@ -90,14 +90,14 @@ static float zero = 0.0000000000e+00;
}
} else {
/* use backward recurrence */
- /* x x^2 x^2
+ /* x x^2 x^2
* J(n,x)/J(n-1,x) = ---- ------ ------ .....
* 2n - 2(n+1) - 2(n+2)
*
- * 1 1 1
+ * 1 1 1
* (for large x) = ---- ------ ------ .....
* 2n 2(n+1) 2(n+2)
- * -- - ------ - ------ -
+ * -- - ------ - ------ -
* x x x
*
* Let w = 2n/x and h=2/x, then the above quotient
@@ -113,9 +113,9 @@ static float zero = 0.0000000000e+00;
* To determine how many terms needed, let
* Q(0) = w, Q(1) = w(w+h) - 1,
* Q(k) = (w+k*h)*Q(k-1) - Q(k-2),
- * When Q(k) > 1e4 good for single
- * When Q(k) > 1e9 good for double
- * When Q(k) > 1e17 good for quadruple
+ * When Q(k) > 1e4 good for single
+ * When Q(k) > 1e9 good for double
+ * When Q(k) > 1e17 good for quadruple
*/
/* determine k */
float t,v;
@@ -137,7 +137,7 @@ static float zero = 0.0000000000e+00;
* single 8.8722839355e+01
* double 7.09782712893383973096e+02
* long double 1.1356523406294143949491931077970765006170e+04
- * then recurrent value may overflow and the result is
+ * then recurrent value may overflow and the result is
* likely underflow to zero
*/
tmp = n;
@@ -173,13 +173,14 @@ static float zero = 0.0000000000e+00;
}
#ifdef __STDC__
- float __ieee754_ynf(int n, float x)
+ float __ieee754_ynf(int n, float x)
#else
- float __ieee754_ynf(n,x)
+ float __ieee754_ynf(n,x)
int n; float x;
#endif
{
- int32_t i,hx,ix,ib;
+ int32_t i,hx,ix;
+ u_int32_t ib;
int32_t sign;
float a, b, temp;
@@ -202,7 +203,7 @@ static float zero = 0.0000000000e+00;
b = __ieee754_y1f(x);
/* quit if b is -inf */
GET_FLOAT_WORD(ib,b);
- for(i=1;i<n&&ib!=0xff800000;i++){
+ for(i=1;i<n&&ib!=0xff800000;i++){
temp = b;
b = ((float)(i+i)/x)*b - a;
GET_FLOAT_WORD(ib,b);
diff --git a/sysdeps/libm-ieee754/e_pow.c b/sysdeps/libm-ieee754/e_pow.c
index 0d42381946..4b9ba3d5eb 100644
--- a/sysdeps/libm-ieee754/e_pow.c
+++ b/sysdeps/libm-ieee754/e_pow.c
@@ -5,7 +5,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -21,7 +21,7 @@ static char rcsid[] = "$NetBSD: e_pow.c,v 1.9 1995/05/12 04:57:32 jtc Exp $";
* 1. Compute and return log2(x) in two pieces:
* log2(x) = w1 + w2,
* where w1 has 53-24 = 29 bit trailing zeros.
- * 2. Perform y*log2(x) = n+y' by simulating muti-precision
+ * 2. Perform y*log2(x) = n+y' by simulating muti-precision
* arithmetic, where |y'|<=0.5.
* 3. Return x**y = 2**n*exp(y'*log2)
*
@@ -49,13 +49,13 @@ static char rcsid[] = "$NetBSD: e_pow.c,v 1.9 1995/05/12 04:57:32 jtc Exp $";
* Accuracy:
* pow(x,y) returns x**y nearly rounded. In particular
* pow(integer,integer)
- * always returns the correct integer provided it is
+ * always returns the correct integer provided it is
* representable.
*
* Constants :
- * The hexadecimal values are the intended ones for the following
- * constants. The decimal values may be used, provided that the
- * compiler will convert from decimal to binary accurately enough
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
* to produce the hexadecimal values shown.
*/
@@ -63,9 +63,9 @@ static char rcsid[] = "$NetBSD: e_pow.c,v 1.9 1995/05/12 04:57:32 jtc Exp $";
#include "math_private.h"
#ifdef __STDC__
-static const double
+static const double
#else
-static double
+static double
#endif
bp[] = {1.0, 1.5,},
dp_h[] = { 0.0, 5.84962487220764160156e-01,}, /* 0x3FE2B803, 0x40000000 */
@@ -117,12 +117,12 @@ ivln2_l = 1.92596299112661746887e-08; /* 0x3E54AE0B, 0xF85DDF44 =1/ln2 tail*/
ix = hx&0x7fffffff; iy = hy&0x7fffffff;
/* y==zero: x**0 = 1 */
- if((iy|ly)==0) return one;
+ if((iy|ly)==0) return one;
/* +-NaN return x+y */
if(ix > 0x7ff00000 || ((ix==0x7ff00000)&&(lx!=0)) ||
- iy > 0x7ff00000 || ((iy==0x7ff00000)&&(ly!=0)))
- return x+y;
+ iy > 0x7ff00000 || ((iy==0x7ff00000)&&(ly!=0)))
+ return x+y;
/* determine if y is an odd int when x < 0
* yisint = 0 ... y is not an integer
@@ -130,22 +130,22 @@ ivln2_l = 1.92596299112661746887e-08; /* 0x3E54AE0B, 0xF85DDF44 =1/ln2 tail*/
* yisint = 2 ... y is an even int
*/
yisint = 0;
- if(hx<0) {
+ if(hx<0) {
if(iy>=0x43400000) yisint = 2; /* even integer y */
else if(iy>=0x3ff00000) {
k = (iy>>20)-0x3ff; /* exponent */
if(k>20) {
j = ly>>(52-k);
- if((j<<(52-k))==ly) yisint = 2-(j&1);
+ if((u_int32_t)(j<<(52-k))==ly) yisint = 2-(j&1);
} else if(ly==0) {
j = iy>>(20-k);
- if((j<<(20-k))==iy) yisint = 2-(j&1);
+ if((int32_t)(j<<(20-k))==iy) yisint = 2-(j&1);
}
- }
- }
+ }
+ }
/* special value of y */
- if(ly==0) {
+ if(ly==0) {
if (iy==0x7ff00000) { /* y is +-inf */
if(((ix-0x3ff00000)|lx)==0)
return y - y; /* inf**+-1 is NaN */
@@ -153,14 +153,14 @@ ivln2_l = 1.92596299112661746887e-08; /* 0x3E54AE0B, 0xF85DDF44 =1/ln2 tail*/
return (hy>=0)? y: zero;
else /* (|x|<1)**-,+inf = inf,0 */
return (hy<0)?-y: zero;
- }
+ }
if(iy==0x3ff00000) { /* y is +-1 */
if(hy<0) return one/x; else return x;
}
if(hy==0x40000000) return x*x; /* y is 2 */
if(hy==0x3fe00000) { /* y is 0.5 */
if(hx>=0) /* x >= +0 */
- return __ieee754_sqrt(x);
+ return __ieee754_sqrt(x);
}
}
@@ -173,13 +173,13 @@ ivln2_l = 1.92596299112661746887e-08; /* 0x3E54AE0B, 0xF85DDF44 =1/ln2 tail*/
if(hx<0) {
if(((ix-0x3ff00000)|yisint)==0) {
z = (z-z)/(z-z); /* (-1)**non-int is NaN */
- } else if(yisint==1)
+ } else if(yisint==1)
z = -z; /* (x<0)**odd = -(|x|**odd) */
}
return z;
}
}
-
+
/* (x<0)**(non-int) is NaN */
if(((((u_int32_t)hx>>31)-1)|yisint)==0) return (x-x)/(x-x);
@@ -192,7 +192,7 @@ ivln2_l = 1.92596299112661746887e-08; /* 0x3E54AE0B, 0xF85DDF44 =1/ln2 tail*/
/* over/underflow if x is not close to one */
if(ix<0x3fefffff) return (hy<0)? huge*huge:tiny*tiny;
if(ix>0x3ff00000) return (hy>0)? huge*huge:tiny*tiny;
- /* now |1-x| is tiny <= 2**-20, suffice to compute
+ /* now |1-x| is tiny <= 2**-20, suffice to compute
log(x) by x-x^2/2+x^3/3-x^4/4 */
t = x-1; /* t has 20 trailing zeros */
w = (t*t)*(0.5-t*(0.3333333333333333333333-t*0.25));
@@ -289,7 +289,7 @@ ivln2_l = 1.92596299112661746887e-08; /* 0x3E54AE0B, 0xF85DDF44 =1/ln2 tail*/
n = ((n&0x000fffff)|0x00100000)>>(20-k);
if(j<0) n = -n;
p_h -= t;
- }
+ }
t = p_l+p_h;
SET_LOW_WORD(t,0);
u = t*lg2_h;
diff --git a/sysdeps/libm-ieee754/e_powf.c b/sysdeps/libm-ieee754/e_powf.c
index 37e32ab3ca..1358555128 100644
--- a/sysdeps/libm-ieee754/e_powf.c
+++ b/sysdeps/libm-ieee754/e_powf.c
@@ -8,7 +8,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -74,12 +74,12 @@ ivln2_l = 7.0526075433e-06; /* 0x36eca570 =1/ln2 tail*/
ix = hx&0x7fffffff; iy = hy&0x7fffffff;
/* y==zero: x**0 = 1 */
- if(iy==0) return one;
+ if(iy==0) return one;
/* +-NaN return x+y */
if(ix > 0x7f800000 ||
iy > 0x7f800000)
- return x+y;
+ return x+y;
/* determine if y is an odd int when x < 0
* yisint = 0 ... y is not an integer
@@ -87,14 +87,14 @@ ivln2_l = 7.0526075433e-06; /* 0x36eca570 =1/ln2 tail*/
* yisint = 2 ... y is an even int
*/
yisint = 0;
- if(hx<0) {
+ if(hx<0) {
if(iy>=0x4b800000) yisint = 2; /* even integer y */
else if(iy>=0x3f800000) {
k = (iy>>23)-0x7f; /* exponent */
j = iy>>(23-k);
if((j<<(23-k))==iy) yisint = 2-(j&1);
- }
- }
+ }
+ }
/* special value of y */
if (iy==0x7f800000) { /* y is +-inf */
@@ -104,14 +104,14 @@ ivln2_l = 7.0526075433e-06; /* 0x36eca570 =1/ln2 tail*/
return (hy>=0)? y: zero;
else /* (|x|<1)**-,+inf = inf,0 */
return (hy<0)?-y: zero;
- }
+ }
if(iy==0x3f800000) { /* y is +-1 */
if(hy<0) return one/x; else return x;
}
if(hy==0x40000000) return x*x; /* y is 2 */
if(hy==0x3f000000) { /* y is 0.5 */
if(hx>=0) /* x >= +0 */
- return __ieee754_sqrtf(x);
+ return __ieee754_sqrtf(x);
}
ax = fabsf(x);
@@ -122,12 +122,12 @@ ivln2_l = 7.0526075433e-06; /* 0x36eca570 =1/ln2 tail*/
if(hx<0) {
if(((ix-0x3f800000)|yisint)==0) {
z = (z-z)/(z-z); /* (-1)**non-int is NaN */
- } else if(yisint==1)
+ } else if(yisint==1)
z = -z; /* (x<0)**odd = -(|x|**odd) */
}
return z;
}
-
+
/* (x<0)**(non-int) is NaN */
if(((((u_int32_t)hx>>31)-1)|yisint)==0) return (x-x)/(x-x);
@@ -136,7 +136,7 @@ ivln2_l = 7.0526075433e-06; /* 0x36eca570 =1/ln2 tail*/
/* over/underflow if x is not close to one */
if(ix<0x3f7ffff8) return (hy<0)? huge*huge:tiny*tiny;
if(ix>0x3f800007) return (hy>0)? huge*huge:tiny*tiny;
- /* now |1-x| is tiny <= 2**-20, suffice to compute
+ /* now |1-x| is tiny <= 2**-20, suffice to compute
log(x) by x-x^2/2+x^3/3-x^4/4 */
t = x-1; /* t has 20 trailing zeros */
w = (t*t)*((float)0.5-t*((float)0.333333333333-t*(float)0.25));
@@ -217,7 +217,7 @@ ivln2_l = 7.0526075433e-06; /* 0x36eca570 =1/ln2 tail*/
}
else if ((j&0x7fffffff)>0x43160000) /* z <= -150 */
return s*tiny*tiny; /* underflow */
- else if (j==0xc3160000){ /* z == -150 */
+ else if ((u_int32_t) j==0xc3160000){ /* z == -150 */
if(p_l<=z-p_h) return s*tiny*tiny; /* underflow */
}
/*
@@ -233,7 +233,7 @@ ivln2_l = 7.0526075433e-06; /* 0x36eca570 =1/ln2 tail*/
n = ((n&0x007fffff)|0x00800000)>>(23-k);
if(j<0) n = -n;
p_h -= t;
- }
+ }
t = p_l+p_h;
GET_FLOAT_WORD(is,t);
SET_FLOAT_WORD(t,is&0xfffff000);
diff --git a/sysdeps/libm-ieee754/e_rem_pio2f.c b/sysdeps/libm-ieee754/e_rem_pio2f.c
index e5d50a11b4..4b8c4466bd 100644
--- a/sysdeps/libm-ieee754/e_rem_pio2f.c
+++ b/sysdeps/libm-ieee754/e_rem_pio2f.c
@@ -8,7 +8,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -18,8 +18,8 @@ static char rcsid[] = "$NetBSD: e_rem_pio2f.c,v 1.5 1995/05/10 20:46:03 jtc Exp
#endif
/* __ieee754_rem_pio2f(x,y)
- *
- * return the remainder of x rem pi/2 in y[0]+y[1]
+ *
+ * return the remainder of x rem pi/2 in y[0]+y[1]
* use __kernel_rem_pio2f()
*/
@@ -27,7 +27,7 @@ static char rcsid[] = "$NetBSD: e_rem_pio2f.c,v 1.5 1995/05/10 20:46:03 jtc Exp
#include "math_private.h"
/*
- * Table of constants for 2/pi, 396 Hex digits (476 decimal) of 2/pi
+ * Table of constants for 2/pi, 396 Hex digits (476 decimal) of 2/pi
*/
#ifdef __STDC__
static const int32_t two_over_pi[] = {
@@ -35,27 +35,27 @@ static const int32_t two_over_pi[] = {
static int32_t two_over_pi[] = {
#endif
0xA2, 0xF9, 0x83, 0x6E, 0x4E, 0x44, 0x15, 0x29, 0xFC,
-0x27, 0x57, 0xD1, 0xF5, 0x34, 0xDD, 0xC0, 0xDB, 0x62,
+0x27, 0x57, 0xD1, 0xF5, 0x34, 0xDD, 0xC0, 0xDB, 0x62,
0x95, 0x99, 0x3C, 0x43, 0x90, 0x41, 0xFE, 0x51, 0x63,
-0xAB, 0xDE, 0xBB, 0xC5, 0x61, 0xB7, 0x24, 0x6E, 0x3A,
+0xAB, 0xDE, 0xBB, 0xC5, 0x61, 0xB7, 0x24, 0x6E, 0x3A,
0x42, 0x4D, 0xD2, 0xE0, 0x06, 0x49, 0x2E, 0xEA, 0x09,
-0xD1, 0x92, 0x1C, 0xFE, 0x1D, 0xEB, 0x1C, 0xB1, 0x29,
+0xD1, 0x92, 0x1C, 0xFE, 0x1D, 0xEB, 0x1C, 0xB1, 0x29,
0xA7, 0x3E, 0xE8, 0x82, 0x35, 0xF5, 0x2E, 0xBB, 0x44,
-0x84, 0xE9, 0x9C, 0x70, 0x26, 0xB4, 0x5F, 0x7E, 0x41,
+0x84, 0xE9, 0x9C, 0x70, 0x26, 0xB4, 0x5F, 0x7E, 0x41,
0x39, 0x91, 0xD6, 0x39, 0x83, 0x53, 0x39, 0xF4, 0x9C,
-0x84, 0x5F, 0x8B, 0xBD, 0xF9, 0x28, 0x3B, 0x1F, 0xF8,
+0x84, 0x5F, 0x8B, 0xBD, 0xF9, 0x28, 0x3B, 0x1F, 0xF8,
0x97, 0xFF, 0xDE, 0x05, 0x98, 0x0F, 0xEF, 0x2F, 0x11,
-0x8B, 0x5A, 0x0A, 0x6D, 0x1F, 0x6D, 0x36, 0x7E, 0xCF,
+0x8B, 0x5A, 0x0A, 0x6D, 0x1F, 0x6D, 0x36, 0x7E, 0xCF,
0x27, 0xCB, 0x09, 0xB7, 0x4F, 0x46, 0x3F, 0x66, 0x9E,
-0x5F, 0xEA, 0x2D, 0x75, 0x27, 0xBA, 0xC7, 0xEB, 0xE5,
+0x5F, 0xEA, 0x2D, 0x75, 0x27, 0xBA, 0xC7, 0xEB, 0xE5,
0xF1, 0x7B, 0x3D, 0x07, 0x39, 0xF7, 0x8A, 0x52, 0x92,
-0xEA, 0x6B, 0xFB, 0x5F, 0xB1, 0x1F, 0x8D, 0x5D, 0x08,
+0xEA, 0x6B, 0xFB, 0x5F, 0xB1, 0x1F, 0x8D, 0x5D, 0x08,
0x56, 0x03, 0x30, 0x46, 0xFC, 0x7B, 0x6B, 0xAB, 0xF0,
-0xCF, 0xBC, 0x20, 0x9A, 0xF4, 0x36, 0x1D, 0xA9, 0xE3,
+0xCF, 0xBC, 0x20, 0x9A, 0xF4, 0x36, 0x1D, 0xA9, 0xE3,
0x91, 0x61, 0x5E, 0xE6, 0x1B, 0x08, 0x65, 0x99, 0x85,
-0x5F, 0x14, 0xA0, 0x68, 0x40, 0x8D, 0xFF, 0xD8, 0x80,
+0x5F, 0x14, 0xA0, 0x68, 0x40, 0x8D, 0xFF, 0xD8, 0x80,
0x4D, 0x73, 0x27, 0x31, 0x06, 0x06, 0x15, 0x56, 0xCA,
-0x73, 0xA8, 0xC9, 0x60, 0xE2, 0x7B, 0xC0, 0x8C, 0x6B,
+0x73, 0xA8, 0xC9, 0x60, 0xE2, 0x7B, 0xC0, 0x8C, 0x6B,
};
/* This array is like the one in e_rem_pio2.c, but the numbers are
@@ -84,9 +84,9 @@ static int32_t npio2_hw[] = {
*/
#ifdef __STDC__
-static const float
+static const float
#else
-static float
+static float
#endif
zero = 0.0000000000e+00, /* 0x00000000 */
half = 5.0000000000e-01, /* 0x3f000000 */
@@ -115,7 +115,7 @@ pio2_3t = 6.1232342629e-17; /* 0x248d3132 */
if(ix<=0x3f490fd8) /* |x| ~<= pi/4 , no need for reduction */
{y[0] = x; y[1] = 0; return 0;}
if(ix<0x4016cbe4) { /* |x| < 3pi/4, special case with n=+-1 */
- if(hx>0) {
+ if(hx>0) {
z = x - pio2_1;
if((ix&0xfffffff0)!=0x3fc90fd0) { /* 24+24 bit pi OK */
y[0] = z - pio2_1t;
@@ -145,27 +145,27 @@ pio2_3t = 6.1232342629e-17; /* 0x248d3132 */
fn = (float)n;
r = t-fn*pio2_1;
w = fn*pio2_1t; /* 1st round good to 40 bit */
- if(n<32&&(ix&0xffffff00)!=npio2_hw[n-1]) {
+ if(n<32&&(int32_t)(ix&0xffffff00)!=npio2_hw[n-1]) {
y[0] = r-w; /* quick check no cancellation */
} else {
u_int32_t high;
j = ix>>23;
- y[0] = r-w;
+ y[0] = r-w;
GET_FLOAT_WORD(high,y[0]);
i = j-((high>>23)&0xff);
if(i>8) { /* 2nd iteration needed, good to 57 */
t = r;
- w = fn*pio2_2;
+ w = fn*pio2_2;
r = t-w;
- w = fn*pio2_2t-((t-r)-w);
+ w = fn*pio2_2t-((t-r)-w);
y[0] = r-w;
GET_FLOAT_WORD(high,y[0]);
i = j-((high>>23)&0xff);
if(i>25) { /* 3rd iteration need, 74 bits acc */
t = r; /* will cover all possible cases */
- w = fn*pio2_3;
+ w = fn*pio2_3;
r = t-w;
- w = fn*pio2_3t-((t-r)-w);
+ w = fn*pio2_3t-((t-r)-w);
y[0] = r-w;
}
}
@@ -174,7 +174,7 @@ pio2_3t = 6.1232342629e-17; /* 0x248d3132 */
if(hx<0) {y[0] = -y[0]; y[1] = -y[1]; return -n;}
else return n;
}
- /*
+ /*
* all other (large) arguments
*/
if(ix>=0x7f800000) { /* x is inf or NaN */
diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
index 32b050ecf4..90af24fb61 100644
--- a/sysdeps/posix/getaddrinfo.c
+++ b/sysdeps/posix/getaddrinfo.c
@@ -287,6 +287,10 @@ static int gaih_inet(const char *name, const struct gaih_service *service,
struct gaih_servtuple *st2;
struct gaih_addrtuple *at2 = at;
int j;
+#ifndef MAXHOSTNAMELEN
+# define MAXHOSTNAMELEN 128
+#endif /* MAXHOSTNAMELEN */
+ char buffer[MAXHOSTNAMELEN];
while(at2) {
if (req->ai_flags & AI_CANONNAME) {
@@ -308,9 +312,9 @@ static int gaih_inet(const char *name, const struct gaih_service *service,
sizeof(struct in_addr), at2->family);
#endif /* HOSTTABLE */
- if (!h) {
- c = inet_ntop(at2->family, at2->addr, NULL, 0);
- } else
+ if (!h)
+ c = inet_ntop(at2->family, at2->addr, buffer, sizeof(buffer));
+ else
c = h->h_name;
if (!c) {
diff --git a/sysdeps/posix/rename.c b/sysdeps/posix/rename.c
index c318081bac..b8d31f900c 100644
--- a/sysdeps/posix/rename.c
+++ b/sysdeps/posix/rename.c
@@ -31,7 +31,7 @@ rename (old, new)
{
if (errno == EEXIST)
{
- errno = save;
+ __set_errno (save);
/* Race condition, required for 1003.1 conformance. */
if (__unlink (new) < 0 ||
__link (old, new) < 0)
diff --git a/sysdeps/posix/sigwait.c b/sysdeps/posix/sigwait.c
new file mode 100644
index 0000000000..0cd5f80fda
--- /dev/null
+++ b/sysdeps/posix/sigwait.c
@@ -0,0 +1,92 @@
+/* sigwait - implementation of sigwait function from POSIX.1c.
+ Copyright (C) 1996 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <assert.h>
+#include <errno.h>
+#include <signal.h>
+
+
+/* This is our dummy signal handler we use here. */
+static void ignore_signal (int sig);
+
+/* Place where to remember which signal we got. Please note that this
+ implementation cannot be used for the threaded libc. The
+ libpthread must provide an own version. */
+static int was_sig;
+
+
+int
+__sigwait (const sigset_t *set, int *sig)
+{
+ sigset_t tmp_mask;
+ struct sigaction saved[NSIG];
+ struct sigaction action;
+ int save_errno;
+ int this;
+
+ /* Prepare set. */
+ sigfillset (&tmp_mask);
+
+ /* Unblock all signals in the SET and register our nice handler. */
+ action.sa_handler = ignore_signal;
+ action.sa_flags = 0;
+ sigfillset (&action.sa_mask); /* Block all signals for handler. */
+
+ /* Make sure we recognize error conditions by setting WAS_SIG to a
+ value which does not describe a legal signal number. */
+ was_sig = -1;
+
+ for (this = 0; this < NSIG; ++this)
+ if (sigismember (set, this))
+ {
+ /* Unblock this signal. */
+ sigdelset (&tmp_mask, this);
+
+ /* Register temporary action handler. */
+ if (sigaction (this, &action, &saved[this]) != 0)
+ goto restore_handler;
+ }
+
+ /* Now we can wait for signals. */
+ sigsuspend (&tmp_mask);
+
+ restore_handler:
+ save_errno = errno;
+
+ while (--this >= 0)
+ if (sigismember (set, this))
+ /* We ignore errors here since we must restore all handlers. */
+ sigaction (this, &saved[this], NULL);
+
+ __set_errno (save_errno);
+
+ /* Store the result and return. */
+ *sig = was_sig;
+ return was_sig == -1 ? -1 : 0;
+}
+weak_alias (__sigwait, sigwait)
+
+
+static void
+ignore_signal (int sig)
+{
+ /* Remember the signal. */
+ was_sig = sig;
+}
diff --git a/sysdeps/posix/ttyname_r.c b/sysdeps/posix/ttyname_r.c
index d7f6026d8a..5b62826a19 100644
--- a/sysdeps/posix/ttyname_r.c
+++ b/sysdeps/posix/ttyname_r.c
@@ -36,7 +36,7 @@ int
__ttyname_r (fd, buf, buflen)
int fd;
char *buf;
- int buflen;
+ size_t buflen;
{
static const char dev[] = "/dev";
struct stat st;
@@ -50,21 +50,24 @@ __ttyname_r (fd, buf, buflen)
the loop. */
if (buflen < (int) (sizeof (dev) + 1))
{
- __set_errno (EINVAL);
- return -1;
+ __set_errno (ERANGE);
+ return ERANGE;
}
if (!__isatty (fd))
- return -1;
+ {
+ __set_errno (ENOTTY);
+ return ENOTTY;
+ }
if (fstat (fd, &st) < 0)
- return -1;
+ return errno;
mydev = st.st_dev;
myino = st.st_ino;
dirstream = opendir (dev);
if (dirstream == NULL)
- return -1;
+ return errno;
/* Prepare the result buffer. */
memcpy (buf, dev, sizeof (dev) - 1);
@@ -75,9 +78,16 @@ __ttyname_r (fd, buf, buflen)
if ((ino_t) d->d_fileno == myino)
{
char *cp;
+ size_t needed = _D_EXACT_NAMLEN (d) + 1;
+
+ if (needed > buflen)
+ {
+ (void) closedir (dirstream);
+ __set_errno (ERANGE);
+ return ERANGE;
+ }
- cp = __stpncpy (&buf[sizeof (dev)], d->d_name,
- MIN ((int) (_D_EXACT_NAMLEN (d) + 1), buflen));
+ cp = __stpncpy (&buf[sizeof (dev)], d->d_name, needed);
cp[0] = '\0';
if (stat (buf, &st) == 0 && st.st_dev == mydev)
@@ -90,6 +100,8 @@ __ttyname_r (fd, buf, buflen)
(void) closedir (dirstream);
__set_errno (save);
- return -1;
+ /* It is not clear what to return in this case. `isatty' says FD
+ refers to a TTY but no entry in /dev has this inode. */
+ return ENOTTY;
}
weak_alias (__ttyname_r, ttyname_r)
diff --git a/sysdeps/stub/setrlimit.c b/sysdeps/stub/setrlimit.c
index 79b96235b7..5978602906 100644
--- a/sysdeps/stub/setrlimit.c
+++ b/sysdeps/stub/setrlimit.c
@@ -27,7 +27,7 @@ setrlimit (resource, rlimits)
enum __rlimit_resource resource;
struct rlimit *rlimits;
{
- errno = ENOSYS;
+ __set_errno (ENOSYS);
return -1;
}
diff --git a/sysdeps/stub/sigwait.c b/sysdeps/stub/sigwait.c
new file mode 100644
index 0000000000..28b86aa698
--- /dev/null
+++ b/sysdeps/stub/sigwait.c
@@ -0,0 +1,31 @@
+/* sigwait - implementation of sigwait function from POSIX.1c.
+ Copyright (C) 1996 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 Library General Public License as
+ published by the Free Software Foundation; either version 2 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include <errno.h>
+#include <signal.h>
+
+int
+__sigwait (const sigset_t *set, int *sig)
+{
+ __set_errno (ENOSYS);
+ return -1;
+}
+weak_alias (__sigwait, sigwait)
+
+stub_warning (sigwait)
diff --git a/sysdeps/unix/bsd/sun/sunos4/resourcebits.h b/sysdeps/unix/bsd/sun/sunos4/resourcebits.h
index 485dec9b81..8f515db330 100644
--- a/sysdeps/unix/bsd/sun/sunos4/resourcebits.h
+++ b/sysdeps/unix/bsd/sun/sunos4/resourcebits.h
@@ -52,5 +52,88 @@ enum __rlimit_resource
#defin RLIMIT_NOFILE RLIMIT_NOFILE
#defin RLIMIT_OFILE RLIMIT_OFILE
- RLIM_NLIMITS
+ RLIM_NLIMITS,
+
+ RLIM_INFINITY = 0x7fffffff /* Value to indicate that there is no limit. */
+#define RLIM_INFINITY RLIM_INFINITY
+ };
+
+struct rlimit
+ {
+ /* The current (soft) limit. */
+ int rlim_cur;
+ /* The hard limit. */
+ int rlim_max;
+ };
+
+/* Whose usage statistics do you want? */
+enum __rusage_who
+/* The macro definitions are necessary because some programs want
+ to test for operating system features with #ifdef RUSAGE_SELF.
+ In ISO C the reflexive definition is a no-op. */
+ {
+ /* The calling process. */
+ RUSAGE_SELF = 0,
+#define RUSAGE_SELF RUSAGE_SELF
+ /* All of its terminated child processes. */
+ RUSAGE_CHILDREN = -1
+#define RUSAGE_CHILDREN RUSAGE_CHILDREN
+ };
+
+#include <sys/time.h> /* For `struct timeval'. */
+
+/* Structure which says how much of each resource has been used. */
+struct rusage
+ {
+ /* Total amount of user time used. */
+ struct timeval ru_utime;
+ /* Total amount of system time used. */
+ struct timeval ru_stime;
+ /* Maximum resident set size (in kilobytes). */
+ long int ru_maxrss;
+ /* Amount of sharing of text segment memory
+ with other processes (kilobyte-seconds). */
+ long int ru_ixrss;
+ /* Amount of data segment memory used (kilobyte-seconds). */
+ long int ru_idrss;
+ /* Amount of stack memory used (kilobyte-seconds). */
+ long int ru_isrss;
+ /* Number of soft page faults (i.e. those serviced by reclaiming
+ a page from the list of pages awaiting reallocation. */
+ long int ru_minflt;
+ /* Number of hard page faults (i.e. those that required I/O). */
+ long int ru_majflt;
+ /* Number of times a process was swapped out of physical memory. */
+ long int ru_nswap;
+ /* Number of input operations via the file system. Note: This
+ and `ru_oublock' do not include operations with the cache. */
+ long int ru_inblock;
+ /* Number of output operations via the file system. */
+ long int ru_oublock;
+ /* Number of IPC messages sent. */
+ long int ru_msgsnd;
+ /* Number of IPC messages received. */
+ long int ru_msgrcv;
+ /* Number of signals delivered. */
+ long int ru_nsignals;
+ /* Number of voluntary context switches, i.e. because the process
+ gave up the process before it had to (usually to wait for some
+ resource to be available). */
+ long int ru_nvcsw;
+ /* Number of involuntary context switches, i.e. a higher priority process
+ became runnable or the current process used up its time slice. */
+ long int ru_nivcsw;
+ };
+
+/* Priority limits. */
+#define PRIO_MIN -20 /* Minimum priority a process can have. */
+#define PRIO_MAX 20 /* Maximum priority a process can have. */
+
+/* The type of the WHICH argument to `getpriority' and `setpriority',
+ indicating what flavor of entity the WHO argument specifies. */
+enum __priority_which
+ {
+ PRIO_PROCESS = 0, /* WHO is a process ID. */
+ PRIO_PGRP = 1, /* WHO is a process group ID. */
+ PRIO_USER = 2 /* WHO is a user ID. */
};
diff --git a/sysdeps/unix/getlogin_r.c b/sysdeps/unix/getlogin_r.c
index f80b2c7518..aa2c0617e6 100644
--- a/sysdeps/unix/getlogin_r.c
+++ b/sysdeps/unix/getlogin_r.c
@@ -72,8 +72,18 @@ getlogin_r (name, name_len)
}
else
{
- strncpy (name, ut->ut_line, name_len);
- result = 0;
+ size_t needed = strlen (ut->ut_line) + 1;
+
+ if (needed < name_len)
+ {
+ __set_errno (ERANGE);
+ result = ERANGE;
+ }
+ else
+ {
+ memcpy (name, ut->ut_line, needed);
+ result = 0;
+ }
}
endutent_r (&utmp_data);
diff --git a/sysdeps/unix/sysv/linux/errnos.h b/sysdeps/unix/sysv/linux/errnos.h
index 40707d1d62..4456e570f0 100644
--- a/sysdeps/unix/sysv/linux/errnos.h
+++ b/sysdeps/unix/sysv/linux/errnos.h
@@ -19,34 +19,40 @@ Boston, MA 02111-1307, USA. */
#ifdef _ERRNO_H
-#undef EDOM
-#undef ERANGE
-#include <linux/errno.h>
+# undef EDOM
+# undef ERANGE
+# include <linux/errno.h>
-#ifndef __ASSEMBLER__
-#if defined __USE_REENTRANT && (!defined _LIBC || defined _LIBC_REENTRANT)
-/* Declare alias of `errno' variable so it is accessible even if macro
- with name `errno' is defined. */
-extern int __errno;
+# ifndef __ASSEMBLER__
+# ifdef _LIBC
+/* We now need a declaration of the `errno' variable. */
+extern int errno;
-/* When using threads, errno is a per-thread value. */
+/* Function to get address of global `errno' variable. */
extern int *__errno_location __P ((void)) __attribute__ ((__const__));
-#define errno (*__errno_location ())
-
-#define __set_errno(val) errno = __errno = (val)
-
-#else /* !__USE_REENTRENT || (_LIBC && !_LIBC_REENTRANT) */
-#define __set_errno(val) errno = (val)
-
-#endif /* __USE_REENTRANT && (!_LIBC || _LIBC_REENTRANT) */
-#endif /* !__ASSEMBLER */
+# ifdef _LIBC_REENTRANT
+static inline int
+__set_errno (int __err)
+{
+ return *__errno_location () = errno = __err;
+}
+# else /* !_LIBC_REENTRANT */
+# define __set_errno(val) errno = (val)
+# endif /* _LIBC_REENTRANT */
+# endif /* _LIBC */
+
+# if defined __USE_REENTRANT && (!defined _LIBC || defined _LIBC_REENTRANT)
+/* When using threads, errno is a per-thread value. */
+# define errno (*__errno_location ())
+# endif
+# endif /* !__ASSEMBLER__ */
#endif /* _ERRNO_H */
#if !defined (_ERRNO_H) && defined (__need_Emath)
/* This is ugly but the kernel header is not clean enough. We must
define only the values EDOM and ERANGE in case __need_Emath is
defined. The value is the same for all Linux ports. */
-#define EDOM 33 /* Math argument out of domain of function. */
-#define ERANGE 34 /* Math result not representable. */
+# define EDOM 33 /* Math argument out of domain of function. */
+# define ERANGE 34 /* Math result not representable. */
#endif /* !_ERRNO_H && __need_Emath */
diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.S b/sysdeps/unix/sysv/linux/i386/sysdep.S
index 742ba2b1a9..c9c78842d8 100644
--- a/sysdeps/unix/sysv/linux/i386/sysdep.S
+++ b/sysdeps/unix/sysv/linux/i386/sysdep.S
@@ -32,10 +32,7 @@ Cambridge, MA 02139, USA. */
errno: .zero 4
.globl _errno
.type _errno,@object
-_errno = errno /* This name is expected by hj libc.so.5 startup code. */
- .globl __errno
- .type __errno,@object
-__errno = errno /* This name is expected by the MT code. */
+_errno = errno /* This name is expected by hj's libc.so.5 startup code. */
.text
/* The following code is only used in the shared library when we
diff --git a/sysdeps/unix/sysv/linux/m68k/sysdep.S b/sysdeps/unix/sysv/linux/m68k/sysdep.S
index 848ece58e8..7016a26a60 100644
--- a/sysdeps/unix/sysv/linux/m68k/sysdep.S
+++ b/sysdeps/unix/sysv/linux/m68k/sysdep.S
@@ -32,10 +32,7 @@ errno: .space 4
.size errno,4
.globl _errno
.type _errno,@object
-_errno = errno /* This name is expected by hj libc.so.5 startup code. */
- .globl __errno
- .type __errno,@object
-__errno = errno /* This name is expected by the MT code. */
+_errno = errno /* This name is expected by hj's libc.so.5 startup code. */
.text
/* The following code is only used in the shared library when we
diff --git a/time/test-tz.c b/time/test-tz.c
index 47565cedec..c59a8b5ecf 100644
--- a/time/test-tz.c
+++ b/time/test-tz.c
@@ -21,7 +21,7 @@ main(int argc, char ** argv)
int errors = 0;
struct tm tm;
time_t t;
- int i;
+ unsigned int i;
memset (&tm, 0, sizeof (tm));
tm.tm_isdst = 0;
@@ -39,7 +39,7 @@ main(int argc, char ** argv)
t = mktime(&tm);
if (t != tests[i].expected)
{
- printf ("%s: flunked test %d (expected %lu, got %lu)\n",
+ printf ("%s: flunked test %u (expected %lu, got %lu)\n",
argv[0], i, (long) tests[i].expected, (long) t);
++errors;
}
diff --git a/time/time.h b/time/time.h
index 2dc25ab0b9..de7214ac52 100644
--- a/time/time.h
+++ b/time/time.h
@@ -1,23 +1,23 @@
/* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+ 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 Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 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
-Library General Public License for more details.
+ 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
+ Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB. If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA. */
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
/*
- * ANSI Standard: 4.12 DATE and TIME <time.h>
+ * ISO C Standard: 4.12 DATE and TIME <time.h>
*/
#ifndef _TIME_H
diff --git a/wctype/wctype.h b/wctype/wctype.h
index 87451e5d83..7a165810cf 100644
--- a/wctype/wctype.h
+++ b/wctype/wctype.h
@@ -1,20 +1,20 @@
/* Copyright (C) 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+ 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 Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 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
-Library General Public License for more details.
+ 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
+ Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB. If
-not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA. */
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
/*
* ISO/IEC 9899:1990/Amendment 1:1995 7.15:
@@ -44,7 +44,7 @@ typedef unsigned int wint_t;
/* Scalar type that can hold values which represent locale-specific
character mappings. */
-typedef const unsigned int *wctrans_t;
+typedef __const unsigned int *wctrans_t;
/* Scalar type that can hold values which represent locale-specific
character classifications. */
@@ -96,52 +96,52 @@ enum
/* Test for any wide character for which `iswalpha' or `iswdigit' is
true. */
-int iswalnum __P ((wint_t __wc));
+extern int iswalnum __P ((wint_t __wc));
/* Test for any wide character for which `iswupper' or 'iswlower' is
true, or any wide character that is one of a locale-specific set of
wide-characters for which none of `iswcntrl', `iswdigit',
`iswpunct', or `iswspace' is true. */
-int iswalpha __P ((wint_t __wc));
+extern int iswalpha __P ((wint_t __wc));
/* Test for any control wide character. */
-int iswcntrl __P ((wint_t __wc));
+extern int iswcntrl __P ((wint_t __wc));
/* Test for any wide character that corresponds to a decimal-digit
character. */
-int iswdigit __P ((wint_t __wc));
+extern int iswdigit __P ((wint_t __wc));
/* Test for any wide character for which `iswprint' is true and
`iswspace' is false. */
-int iswgraph __P ((wint_t __wc));
+extern int iswgraph __P ((wint_t __wc));
/* Test for any wide character that corresponds to a lowercase letter
or is one of a locale-specific set of wide characters for which
none of `iswcntrl', `iswdigit', `iswpunct', or `iswspace' is true. */
-int iswlower __P ((wint_t __wc));
+extern int iswlower __P ((wint_t __wc));
/* Test for any printing wide character. */
-int iswprint __P ((wint_t __wc));
+extern int iswprint __P ((wint_t __wc));
/* Test for any printing wide character that is one of a
locale-specific et of wide characters for which neither `iswspace'
nor `iswalnum' is true. */
-int iswpunct __P ((wint_t __wc));
+extern int iswpunct __P ((wint_t __wc));
/* Test for any wide character that corresponds to a locale-specific
set of wide characters for which none of `iswalnum', `iswgraph', or
`iswpunct' is true. */
-int iswspace __P ((wint_t __wc));
+extern int iswspace __P ((wint_t __wc));
/* Test for any wide character that corresponds to an uppercase letter
or is one of a locale-specific set of wide character for which none
of `iswcntrl', `iswdigit', `iswpunct', or `iswspace' is true. */
-int iswupper __P ((wint_t __wc));
+extern int iswupper __P ((wint_t __wc));
/* Test for any wide character that corresponds to a hexadecimal-digit
character equivalent to that performed be the functions described
in the previous subclause. */
-int iswxdigit __P ((wint_t __wc));
+extern int iswxdigit __P ((wint_t __wc));
/*
* Extensible wide-character classification functions: 7.15.2.2.
@@ -149,11 +149,11 @@ int iswxdigit __P ((wint_t __wc));
/* Construct value that describes a class of wide characters identified
by the string argument PROPERTY. */
-wctype_t wctype __P ((__const char *__property));
+extern wctype_t wctype __P ((__const char *__property));
/* Determine whether the wide-character WC has the property described by
DESC. */
-int iswctype __P ((wint_t __wc, wctype_t __desc));
+extern int iswctype __P ((wint_t __wc, wctype_t __desc));
/*
@@ -161,10 +161,10 @@ int iswctype __P ((wint_t __wc, wctype_t __desc));
*/
/* Converts an uppercase letter to the corresponding lowercase letter. */
-wint_t towlower __P ((wint_t __wc));
+extern wint_t towlower __P ((wint_t __wc));
/* Converts an lowercase letter to the corresponding uppercase letter. */
-wint_t towupper __P ((wint_t __wc));
+extern wint_t towupper __P ((wint_t __wc));
/*
* Extensible wide-character mapping functions: 7.15.3.2.
@@ -172,10 +172,10 @@ wint_t towupper __P ((wint_t __wc));
/* Construct value that describes a mapping between wide characters
identified by the string argument PROPERTY. */
-wctrans_t wctrans __P ((__const char *__property));
+extern wctrans_t wctrans __P ((__const char *__property));
/* Map the wide character WC using the mapping described by DESC. */
-wint_t towctrans __P ((wint_t __wc, wctrans_t __desc));
+extern wint_t towctrans __P ((wint_t __wc, wctrans_t __desc));