summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1996-09-20 01:58:09 +0000
committerUlrich Drepper <drepper@redhat.com>1996-09-20 01:58:09 +0000
commitec4b0518a39f46354c0d75b4c3e2f507c9af261e (patch)
tree642ad0e74e2222c3750073d7827cfc0aead1372e
parentd66b7b41b83e89e9ef27950adc31891c11800144 (diff)
update from main archive 960919cvs/libc-960920
Thu Sep 19 21:50:55 1996 Ulrich Drepper <drepper@cygnus.com> * sysdeps/posix/gettimeofday.c (__gettimeofday): Use localtime_r instead of localtime. Reported by Matthias Urlichs. * shlib-versions: Remove version number for libcrypt. * features.h: Define __USE_REENTRANT if _REENTRANT or _THREAD_SAFE. * libc-symbols.h: Define _REENTRANT while compiling libc. * sysdeps/unix/sysv/linux/i386/sysdep.S (__errno_location): Define even if !_LIBC_REENTRANT. * sysdeps/unix/sysv/linux/i386/sysdep.S (__errno_location): Likewise. * sysdeps/posix/cuserid.h: Remove prototype for geteuid(). De-ANSI-fy. * MakeTAGS ($P/libc.pot): Generate correctly formed header. * po/header.pot: Correct title line. * po/nl.po: Update. Thu Sep 19 18:59:55 1996 Ulrich Drepper <drepper@cygnus.com> * Makeconfig (soversions.mk): Prefer shared lib version numbers is add ons over version in libc itself. * sysdeps/unix/sysv/linux/i386/sysdep.S: Include <sysdep.h>. * sysdeps/unix/sysv/linux/i386/sysdep.h: Prevent multiple inclusion. * libio/iofgets.c: Use __flockfile and __funlockfile instead of _IO_flockfile and _IO_funlockfile resp. * locale/categories.def: Partly support for correct `era' handling in LC_TIME category. * locale/langinfo.h: Likewise. * locale/programs/ld-time.c: Likewise. * locale/localeinfo.h: Change comment a bit. * malloc/memalign.c: Don't use goto, not necessary anymore. 1996-09-18 Paul Eggert <eggert@twinsun.com> * time/mktime.c (ydhms_tm_diff): Work correctly even if year is negative, or if time_t is unsigned. * time/strftime.c (tm_diff): Work correctly even if tm_year is near INT_MIN. Tue Sep 17 16:14:34 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/m68k/fpu/__math.h (__inline_mathop): Changed to generate all three versions of the math function. (__inline_mathopf, __inline_mathopl): Removed. (__inline_functions): New temporary definition containing all non-trivial inline functions. Wed Sep 18 00:25:41 1996 Ulrich Drepper <drepper@cygnus.com> * time/strftime.c (strftime): The T_FMT_AMPM string may be empty. Tue Sep 17 20:27:18 1996 Ulrich Drepper <drepper@cygnus.com> * math/Makefile (extra-libs-others): Use $(extra-libs) instead of $(extra-libc). Tue Sep 17 17:09:44 1996 Ulrich Drepper <drepper@cygnus.com> * sysdeps/stub/fpu_control.h: Correct end of file comment. Tue Sep 17 05:39:18 1996 Ulrich Drepper <drepper@cygnus.com> * stdio-common/bug3.c, stdio-common/bug4.c, stdio-common/bug5.c, stdio-common/test-popen.c: Remove temporary files after test. * stdio-common/bug5.c: Use `system' instead of `execlp'. Patches by Andreas Jaeger. * stdio-common/bug5.c: Create string for `system' argument to make sure the input and output file names are really correct. Sun Sep 15 12:46:44 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * configure.in: If $os contains a hyphen add the part before the hyphen to $ostry. Sun Sep 15 18:14:02 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/m68k/fpu/__math.h (__ieee754_pow, __ieee754_powf, __ieee754_powl): Rename local variable i to __i. (__ieee754_atan2, __ieee754_atan2f, __ieee754_atan2l): New inline functions. * sysdeps/m68k/fpu/e_atan2.c, sysdeps/m68k/fpu/e_atan2f.c, sysdeps/m68k/fpu/e_atan2l.c: New files. 1996-09-15 Paul Eggert <eggert@twinsun.com> * manual/time.texi: Change `range X to Y' to `range X through Y', to avoid ambiguity in English. (strftime): Numbers that do not have a range indicated are not padded. Describe E and O modifiers. %g, %G, %u: New formats. %C, %y, %Y: Describe behavior on negative years. %e: Fix typo (was labeled %d). %l, %V: Fix typo in range. %M, %S, %U, %w, %W: Give ranges. %p: Clarify how noon and midnight are handled for AM and PM. %s: Clarify leap second handling. %r: Now locale-defined. %C, %D, %e, %h, %n, %r, %t, %T: Say that they are POSIX.2 extensions. %z: Say that it is a GNU extension. %Z: Wording fix. * time/strftime.c: (strftime): %V: Fix mishandling of week numbers near year boundaries. %g, %G: New formats (suggested by Arthur David Olson). %U, %W: Use inline expression instead of `week' function. %C, %y: Handle negative years portably. %C, %Y: Use width 1, since values can be arbitrarily wide. %r: Use T_FMT_AMPM format if _NL_CURRENT is defined. %u: New Posix.2 format. %w: Width is 1, not 2. (iso_week_days): New function, for %V, %G, %g. (week): Remove; it didn't handle %V correctly. (__isleap): New macro. (mbsinit): Use arg, to pacify GCC -Wall. 1996-09-13 Paul Eggert <eggert@twinsun.com> * time/strftime.c (strftime): If using the GNU C library, do not bother to check for multibyte encodings, since they're safe in formats. Otherwise: - Check for multibyte encodings when encountering any character that is not in the basic execution character set of the C Standard. - Use mbrlen (if available) instead of mblen, to avoid modifying mblen's internal state. - Do not assume that '%' cannot appear as the first character of a multibyte character sequence, since this is possible when not in the initial shift state. (HAVE_MBRLEN, MULTIBYTE_IS_FORMAT_SAFE): Define if _LIBC is defined. (DO_MULTIBYTE): New macro. (<ctype.h>): Do not include. (<wchar.h>): Include if HAVE_MBRLEN. (mbstate_t, mbrlen, mbsinit): Define if ! HAVE_MBRLEN. (mbstate_zero): New constant. 1996-09-12 Paul Eggert <eggert@twinsun.com> * time/strftime.c (strftime): Use an empty zone if it can't be determined; POSIX.2 requires this. Use plain `int' for pad and modifier (which now contain char value). Use plain `int' for number_value, to print negative values correctly. Use plain `int' for digits; there was no need to make it unsigned. Initialize subfmt consistently. Remove incorrect code for %EC and %Ey; they aren't implemented yet. For %O, if there is no alternate digit, output Ascii instead of "". Output the `%' of an unknown format; this is most likely the right thing to do if a multibyte string has been misparsed. Thu Sep 12 23:23:13 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * stdio-common/scanf7.c (main): Remove extra conversion from printf format string. Thu Sep 12 23:01:16 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * stdlib/test-canon.c (tests): Rename structure member from errno to error, all uses changed. Thu Sep 12 20:08:06 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/m68k/fpu/__math.h (__ldexp, __ldexpf, __ldexpl): Removed. * sysdeps/m68k/fpu/s_ldexp.c, sysdeps/m68k/fpu/s_ldexpf.c, sysdeps/m68k/fpu/s_ldexpl.c: Removed, use generic implementation instead. * sysdeps/m68k/fpu/s_scalbn.c, sysdeps/m68k/fpu/s_scalbnf.c, sysdeps/m68k/fpu/s_scalbnl.c: Replaced with old contents of s_ldexp.c, s_ldexpf.c and s_ldexpl.c, resp., suitably adpted. * sysdeps/m68k/fpu/__math.h (__frexp, __frexpf, __frexpl): Return value must be in [0.5, 1), not [1, 2). Reported by Chris Lawrence. (__ilogb, __ilogbf, __ilogbl): Check for argument being zero. (__scalbn, __scalbnf, __scalbnl): Use second argument directly. Thu Sep 12 19:59:24 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/libm-ieee754/e_acoshl.c: Fix typos. * sysdeps/libm-ieee754/s_cbrtl.c: Remove unused variable. Thu Sep 12 19:59:24 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/libm-ieee754/e_acoshl.c: Fix typos. * sysdeps/libm-ieee754/s_cbrtl.c: Remove unused variable. Thu Sep 12 19:56:07 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * inet/herrno.c (__h_errno_location): Fix return type. Tue Sep 17 10:51:58 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> * malloc/memalign.c (memalign): Only acquire __libc_malloc_lock for actual modifications to global state. Fri Sep 13 01:21:36 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> * sysdeps/mach/Makefile (includes): Add -I$(common-objpfx)mach/. * sysdeps/mach/hurd/Makefile (includes): Add -I$(common-objpfx)hurd/. Reported by Marcus Daniels. * sysdeps/generic/schedbits.h (struct sched_param): Renamed from struct sched_params. * sysdeps/stub/sched_setp.c (__sched_setparam): struct sched_params -> struct sched_param. * sysdeps/stub/sched_getp.c (__sched_getparam): Likewise. * sysdeps/stub/sched_sets.c (__sched_setscheduler): Likewise. Thu Sep 12 23:58:25 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> * sysdeps/mach/libc-lock.h (__libc_cleanup_region_start): Fix syntax error. * stdio-common/Makefile: Put lockfile in routines unconditionally. Define _MT_SAFE_IO if using for libio and compiling reentrant libc. * stdio-common/vfprintf.c (__flockfile, __funlockfile): Declare this always, not just if _LIBC_REENTRANT. (__funlockfile): Don't use weak_extern for this one; __libc_cleanup_region_end might be defined and the use of __funlockfile can't be protected the way the use of __flockfile can be. * sched.h: New file. Helper to access posix/sched.h. Thu Sep 12 12:33:52 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> * sysdeps/mach/hurd/dl-cache.c: Delete second copy of file accidentally added on. * sysdeps/stub/intr-msg.h: New file. * stdio-common/vfprintf.c: Include <libc-lock.h>. * stdio-common/vfscanf.c: Include <libc-lock.h>. * sysdeps/mach/libc-lock.h (__libc_cleanup_region_start): New macro. (__libc_cleanup_region_end): New macro.
-rw-r--r--ChangeLog251
-rw-r--r--MakeTAGS5
-rw-r--r--Makeconfig4
-rwxr-xr-xconfigure47
-rw-r--r--configure.in5
-rw-r--r--features.h4
-rw-r--r--inet/herrno.c2
-rw-r--r--libc-symbols.h2
-rw-r--r--libio/iofgets.c4
-rw-r--r--locale/categories.def5
-rw-r--r--locale/langinfo.h4
-rw-r--r--locale/localeinfo.h2
-rw-r--r--locale/programs/ld-time.c42
-rw-r--r--manual/time.texi171
-rw-r--r--math/Makefile2
-rw-r--r--po/header.pot2
-rw-r--r--po/nl.po1612
-rw-r--r--shlib-versions7
-rw-r--r--stdio-common/Makefile6
-rw-r--r--stdio-common/bug3.c4
-rw-r--r--stdio-common/bug4.c4
-rw-r--r--stdio-common/bug5.c13
-rw-r--r--stdio-common/scanf7.c2
-rw-r--r--stdio-common/test-popen.c6
-rw-r--r--stdlib/test-canon.c6
-rw-r--r--sysdeps/libm-ieee754/e_acoshl.c8
-rw-r--r--sysdeps/libm-ieee754/s_cbrtl.c1
-rw-r--r--sysdeps/m68k/fpu/__math.h775
-rw-r--r--sysdeps/m68k/fpu/s_ldexp.c39
-rw-r--r--sysdeps/m68k/fpu/s_ldexpf.c5
-rw-r--r--sysdeps/m68k/fpu/s_ldexpl.c5
-rw-r--r--sysdeps/m68k/fpu/s_scalbn.c38
-rw-r--r--sysdeps/m68k/fpu/s_scalbnf.c4
-rw-r--r--sysdeps/m68k/fpu/s_scalbnl.c4
-rw-r--r--sysdeps/posix/cuserid.c13
-rw-r--r--sysdeps/posix/gettimeofday.c2
-rw-r--r--sysdeps/stub/fpu_control.h2
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysdep.S12
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysdep.h5
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sysdep.S2
-rw-r--r--time/mktime.c18
-rw-r--r--time/strftime.c436
42 files changed, 2462 insertions, 1119 deletions
diff --git a/ChangeLog b/ChangeLog
index 98eb138801..cfb7ae8026 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -31,9 +31,244 @@ Thu Sep 12 23:58:25 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
__funlockfile can't be protected the way the use of __flockfile
can be.
+Thu Sep 19 21:50:55 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/posix/gettimeofday.c (__gettimeofday): Use localtime_r
+ instead of localtime.
+ Reported by Matthias Urlichs.
+
+ * shlib-versions: Remove version number for libcrypt.
+ * features.h: Define __USE_REENTRANT if _REENTRANT or _THREAD_SAFE.
+ * libc-symbols.h: Define _REENTRANT while compiling libc.
+
+ * sysdeps/unix/sysv/linux/i386/sysdep.S (__errno_location):
+ Define even if !_LIBC_REENTRANT.
+ * sysdeps/unix/sysv/linux/i386/sysdep.S (__errno_location):
+ Likewise.
+
+ * sysdeps/posix/cuserid.h: Remove prototype for geteuid().
+ De-ANSI-fy.
+
+ * MakeTAGS ($P/libc.pot): Generate correctly formed header.
+ * po/header.pot: Correct title line.
+ * po/nl.po: Update.
+
+Thu Sep 19 18:59:55 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makeconfig (soversions.mk): Prefer shared lib version numbers
+ is add ons over version in libc itself.
+
+ * sysdeps/unix/sysv/linux/i386/sysdep.S: Include <sysdep.h>.
+ * sysdeps/unix/sysv/linux/i386/sysdep.h: Prevent multiple
+ inclusion.
+
+ * libio/iofgets.c: Use __flockfile and __funlockfile instead of
+ _IO_flockfile and _IO_funlockfile resp.
+
+ * locale/categories.def: Partly support for correct `era' handling
+ in LC_TIME category.
+ * locale/langinfo.h: Likewise.
+ * locale/programs/ld-time.c: Likewise.
+ * locale/localeinfo.h: Change comment a bit.
+
+ * malloc/memalign.c: Don't use goto, not necessary anymore.
+
+1996-09-18 Paul Eggert <eggert@twinsun.com>
+
+ * time/mktime.c (ydhms_tm_diff): Work correctly even if year
+ is negative, or if time_t is unsigned.
+ * time/strftime.c (tm_diff): Work correctly even if tm_year
+ is near INT_MIN.
+
+Tue Sep 17 16:14:34 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/m68k/fpu/__math.h (__inline_mathop): Changed to generate
+ all three versions of the math function.
+ (__inline_mathopf, __inline_mathopl): Removed.
+ (__inline_functions): New temporary definition containing all
+ non-trivial inline functions.
+
+Wed Sep 18 00:25:41 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * time/strftime.c (strftime): The T_FMT_AMPM string may be empty.
+
+Tue Sep 17 20:27:18 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * math/Makefile (extra-libs-others): Use $(extra-libs) instead
+ of $(extra-libc).
+
+Tue Sep 17 17:09:44 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/stub/fpu_control.h: Correct end of file comment.
+
+Tue Sep 17 05:39:18 1996 Ulrich Drepper <drepper@cygnus.com>
+
+ * stdio-common/bug3.c, stdio-common/bug4.c, stdio-common/bug5.c,
+ stdio-common/test-popen.c: Remove temporary files after test.
+ * stdio-common/bug5.c: Use `system' instead of `execlp'.
+ Patches by Andreas Jaeger.
+
+ * stdio-common/bug5.c: Create string for `system' argument to
+ make sure the input and output file names are really correct.
+
+Sun Sep 15 12:46:44 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * configure.in: If $os contains a hyphen add the part before the
+ hyphen to $ostry.
+
+Sun Sep 15 18:14:02 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/m68k/fpu/__math.h (__ieee754_pow, __ieee754_powf,
+ __ieee754_powl): Rename local variable i to __i.
+ (__ieee754_atan2, __ieee754_atan2f, __ieee754_atan2l): New inline
+ functions.
+ * sysdeps/m68k/fpu/e_atan2.c, sysdeps/m68k/fpu/e_atan2f.c,
+ sysdeps/m68k/fpu/e_atan2l.c: New files.
+
+1996-09-15 Paul Eggert <eggert@twinsun.com>
+
+ * manual/time.texi: Change `range X to Y' to `range X through
+ Y', to avoid ambiguity in English.
+
+ (strftime): Numbers that do not have a range indicated are not padded.
+ Describe E and O modifiers.
+ %g, %G, %u: New formats.
+ %C, %y, %Y: Describe behavior on negative years.
+ %e: Fix typo (was labeled %d).
+ %l, %V: Fix typo in range.
+ %M, %S, %U, %w, %W: Give ranges.
+ %p: Clarify how noon and midnight are handled for AM and PM.
+ %s: Clarify leap second handling.
+ %r: Now locale-defined.
+ %C, %D, %e, %h, %n, %r, %t, %T: Say that they are POSIX.2 extensions.
+ %z: Say that it is a GNU extension.
+ %Z: Wording fix.
+
+ * time/strftime.c: (strftime):
+ %V: Fix mishandling of week numbers near year boundaries.
+ %g, %G: New formats (suggested by Arthur David Olson).
+ %U, %W: Use inline expression instead of `week' function.
+ %C, %y: Handle negative years portably.
+ %C, %Y: Use width 1, since values can be arbitrarily wide.
+ %r: Use T_FMT_AMPM format if _NL_CURRENT is defined.
+ %u: New Posix.2 format.
+ %w: Width is 1, not 2.
+ (iso_week_days): New function, for %V, %G, %g.
+ (week): Remove; it didn't handle %V correctly.
+ (__isleap): New macro.
+ (mbsinit): Use arg, to pacify GCC -Wall.
+
+1996-09-13 Paul Eggert <eggert@twinsun.com>
+
+ * time/strftime.c (strftime):
+ If using the GNU C library, do not bother to check for
+ multibyte encodings, since they're safe in formats. Otherwise:
+ - Check for multibyte encodings when encountering any character that
+ is not in the basic execution character set of the C Standard.
+ - Use mbrlen (if available) instead of mblen, to avoid modifying
+ mblen's internal state.
+ - Do not assume that '%' cannot appear as the first character of a
+ multibyte character sequence, since this is possible when not in the
+ initial shift state.
+ (HAVE_MBRLEN, MULTIBYTE_IS_FORMAT_SAFE): Define if _LIBC is defined.
+ (DO_MULTIBYTE): New macro.
+ (<ctype.h>): Do not include.
+ (<wchar.h>): Include if HAVE_MBRLEN.
+ (mbstate_t, mbrlen, mbsinit): Define if ! HAVE_MBRLEN.
+ (mbstate_zero): New constant.
+
+1996-09-12 Paul Eggert <eggert@twinsun.com>
+
+ * time/strftime.c (strftime):
+ Use an empty zone if it can't be determined; POSIX.2 requires this.
+ Use plain `int' for pad and modifier (which now contain char value).
+ Use plain `int' for number_value, to print negative values correctly.
+ Use plain `int' for digits; there was no need to make it unsigned.
+ Initialize subfmt consistently.
+ Remove incorrect code for %EC and %Ey; they aren't implemented yet.
+ For %O, if there is no alternate digit, output Ascii instead of "".
+ Output the `%' of an unknown format; this is most likely the right
+ thing to do if a multibyte string has been misparsed.
+
+Thu Sep 12 23:23:13 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * stdio-common/scanf7.c (main): Remove extra conversion from
+ printf format string.
+
+Thu Sep 12 23:01:16 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * stdlib/test-canon.c (tests): Rename structure member from errno
+ to error, all uses changed.
+
+Thu Sep 12 20:08:06 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/m68k/fpu/__math.h (__ldexp, __ldexpf, __ldexpl):
+ Removed.
+ * sysdeps/m68k/fpu/s_ldexp.c, sysdeps/m68k/fpu/s_ldexpf.c,
+ sysdeps/m68k/fpu/s_ldexpl.c: Removed, use generic implementation
+ instead.
+ * sysdeps/m68k/fpu/s_scalbn.c, sysdeps/m68k/fpu/s_scalbnf.c,
+ sysdeps/m68k/fpu/s_scalbnl.c: Replaced with old contents of
+ s_ldexp.c, s_ldexpf.c and s_ldexpl.c, resp., suitably adpted.
+
+ * sysdeps/m68k/fpu/__math.h (__frexp, __frexpf, __frexpl):
+ Return value must be in [0.5, 1), not [1, 2). Reported by Chris
+ Lawrence.
+ (__ilogb, __ilogbf, __ilogbl): Check for argument being zero.
+ (__scalbn, __scalbnf, __scalbnl): Use second argument directly.
+
+Thu Sep 12 19:59:24 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/libm-ieee754/e_acoshl.c: Fix typos.
+ * sysdeps/libm-ieee754/s_cbrtl.c: Remove unused variable.
+
+Thu Sep 12 19:59:24 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/libm-ieee754/e_acoshl.c: Fix typos.
+ * sysdeps/libm-ieee754/s_cbrtl.c: Remove unused variable.
+
+Thu Sep 12 19:56:07 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * inet/herrno.c (__h_errno_location): Fix return type.
+
+Tue Sep 17 10:51:58 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
+
+ * malloc/memalign.c (memalign): Only acquire __libc_malloc_lock
+ for actual modifications to global state.
+
+Fri Sep 13 01:21:36 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
+
+ * sysdeps/mach/Makefile (includes): Add -I$(common-objpfx)mach/.
+ * sysdeps/mach/hurd/Makefile (includes): Add
+ -I$(common-objpfx)hurd/. Reported by Marcus Daniels.
+
+ * sysdeps/generic/schedbits.h (struct sched_param): Renamed from
+ struct sched_params.
+ * sysdeps/stub/sched_setp.c (__sched_setparam): struct
+ sched_params -> struct sched_param.
+ * sysdeps/stub/sched_getp.c (__sched_getparam): Likewise.
+ * sysdeps/stub/sched_sets.c (__sched_setscheduler): Likewise.
+
+Thu Sep 12 23:58:25 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
+
+ * sysdeps/mach/libc-lock.h (__libc_cleanup_region_start): Fix
+ syntax error.
+
+ * stdio-common/Makefile: Put lockfile in routines
+ unconditionally.
+ Define _MT_SAFE_IO if using for libio and compiling reentrant
+ libc.
+
+ * stdio-common/vfprintf.c (__flockfile, __funlockfile): Declare
+ this always, not just if _LIBC_REENTRANT.
+ (__funlockfile): Don't use weak_extern for this one;
+ __libc_cleanup_region_end might be defined and the use of
+ __funlockfile can't be protected the way the use of __flockfile
+ can be.
+
Fri Sep 13 04:33:08 1996 Ulrich Drepper <drepper@cygnus.com>
- * sched.h: New file. helper to access posix/sched.h.
+ * sched.h: New file. Helper to access posix/sched.h.
* posix/sched.h: Change `sched_params' to `sched_param' to follow
POSIX.4.
@@ -76,6 +311,20 @@ Thu Sep 12 12:33:52 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
macro.
(__libc_cleanup_region_end): New macro.
+Thu Sep 12 12:33:52 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
+
+ * sysdeps/mach/hurd/dl-cache.c: Delete second copy of file
+ accidentally added on.
+
+ * sysdeps/stub/intr-msg.h: New file.
+
+ * stdio-common/vfprintf.c: Include <libc-lock.h>.
+ * stdio-common/vfscanf.c: Include <libc-lock.h>.
+
+ * sysdeps/mach/libc-lock.h (__libc_cleanup_region_start): New
+ macro.
+ (__libc_cleanup_region_end): New macro.
+
Thu Sep 12 03:35:27 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/i386/Dist: Remove init-first.h.
diff --git a/MakeTAGS b/MakeTAGS
index 336d63f483..a11ff9be48 100644
--- a/MakeTAGS
+++ b/MakeTAGS
@@ -166,9 +166,12 @@ $P/subdirs.pot: $(subdirs:%=$P/%.pot)
include $(common-objpfx)version.mk
# Combine all the messages into the final sorted template translation file.
+# The following code requires GNU date.
$P/libc.pot: $(all-pot)
@rm -f $@.new
- sed -e 's/VERSION/$(version)/' -e "s/DATE/`date +'%Y-%m-%d %k:%M'`/" \
+ disp='set `date -R`; echo $$6'; \
+ sed -e 's/VERSION/$(version)/' \
+ -e "s/DATE/`date +'%Y-%m-%d %I:%M'$$disp/" \
po/header.pot > $@.new
$(XGETTEXT) -d - --omit-header -n -s $^ >> $@.new
mv -f $@.new $@
diff --git a/Makeconfig b/Makeconfig
index 3134132fcc..8eb15d0c64 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -527,8 +527,8 @@ $(common-objpfx)soversions.mk: $(..)shlib-versions $(..)Makeconfig \
$(wildcard $(patsubst %, $(..)%/shlib-versions,\
$(add-ons))) \
$(common-objpfx)config.make
- (file="$(..)shlib-versions \
- $(wildcard $(patsubst %,$(..)%/shlib-versions,$(add-ons)))"; \
+ (file="$(wildcard $(patsubst %,$(..)%/shlib-versions,$(add-ons))) \
+ $(..)shlib-versions"; \
for f in $$file; do \
sed 's/#.*$$//' $$f | while read conf versions; do \
test -n "$$versions" || continue; \
diff --git a/configure b/configure
index 58c71b1dfc..dcbdebcc52 100755
--- a/configure
+++ b/configure
@@ -2,7 +2,7 @@
# From configure.in CVSid
# Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.99
+# Generated automatically using autoconf version 2.10
# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
#
# This configure script is free software; the Free Software Foundation
@@ -355,7 +355,7 @@ EOF
verbose=yes ;;
-version | --version | --versio | --versi | --vers)
- echo "configure generated by autoconf version 2.99"
+ echo "configure generated by autoconf version 2.10"
exit 0 ;;
-with-* | --with-*)
@@ -717,9 +717,9 @@ NONE)
esac
host=`$ac_config_sub $host_alias`
-host_cpu=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'`
-host_vendor=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'`
-host_os=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'`
+host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
echo "$ac_t""$host" 1>&6
# We keep the original values in `$config_*' and never modify them, so we
@@ -799,6 +799,11 @@ o=`echo $tail | sed 's/[0-9]*$//'`
if test $o != $tail; then
ostry="$ostry /$o"
fi
+# For linux-gnu, try linux-gnu, then linux.
+o=`echo $tail | sed 's/-.*$//'`
+if test $o != $tail; then
+ ostry="$ostry /$o"
+fi
# For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
base=
@@ -1085,9 +1090,9 @@ NONE)
esac
build=`$ac_config_sub $build_alias`
-build_cpu=`echo $build | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'`
-build_vendor=`echo $build | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'`
-build_os=`echo $build | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'`
+build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
echo "$ac_t""$build" 1>&6
if test $host != $build; then
@@ -1170,13 +1175,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 1174 "configure"
+#line 1179 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1180: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1185: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
:
@@ -1185,13 +1190,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 1189 "configure"
+#line 1194 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1195: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1200: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
:
@@ -1333,7 +1338,7 @@ if eval "test \"`echo '$''{'libc_cv_friendly_stddef'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1337 "configure"
+#line 1342 "configure"
#include "confdefs.h"
#define __need_size_t
#define __need_wchar_t
@@ -1349,7 +1354,7 @@ size_t size; wchar_t wchar;
if (&size == NULL || &wchar == NULL) abort ();
; return 0; }
EOF
-if { (eval echo configure:1353: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1358: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libc_cv_friendly_stddef=yes
else
@@ -1456,7 +1461,7 @@ if eval "test \"`echo '$''{'libc_cv_have_initfini'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1460 "configure"
+#line 1465 "configure"
#include "confdefs.h"
int main() { return 0; }
@@ -1466,7 +1471,7 @@ asm (".section .init");
asm (".text");
; return 0; }
EOF
-if { (eval echo configure:1470: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1475: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libc_cv_have_initfini=yes
else
@@ -1494,7 +1499,7 @@ if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1498 "configure"
+#line 1503 "configure"
#include "confdefs.h"
asm ("_glibc_foobar:");
int main() { return 0; }
@@ -1502,7 +1507,7 @@ int t() {
glibc_foobar ();
; return 0; }
EOF
-if { (eval echo configure:1506: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+if { (eval echo configure:1511: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
rm -rf conftest*
libc_cv_asm_underscores=yes
else
@@ -1596,7 +1601,7 @@ __throw () {}
EOF
if { ac_try='${CC-cc} $CFLAGS
-nostdlib -nostartfiles -Wl,--no-whole-archive
- -o conftest conftest.c'; { (eval echo configure:1600: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+ -o conftest conftest.c'; { (eval echo configure:1605: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_ld_no_whole_archive=yes
else
libc_cv_ld_no_whole_archive=no
@@ -1617,7 +1622,7 @@ __throw () {}
EOF
if { ac_try='${CC-cc} $CFLAGS
-nostdlib -nostartfiles -fno-exceptions
- -o conftest conftest.c'; { (eval echo configure:1621: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+ -o conftest conftest.c'; { (eval echo configure:1626: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_gcc_no_exceptions=yes
else
libc_cv_gcc_no_exceptions=no
@@ -1834,7 +1839,7 @@ do
echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
-version | --version | --versio | --versi | --vers | --ver | --ve | --v)
- echo "$CONFIG_STATUS generated by autoconf version 2.99"
+ echo "$CONFIG_STATUS generated by autoconf version 2.10"
exit 0 ;;
-help | --help | --hel | --he | --h)
echo "\$ac_cs_usage"; exit 0 ;;
diff --git a/configure.in b/configure.in
index da1853bdf0..df0de5d648 100644
--- a/configure.in
+++ b/configure.in
@@ -167,6 +167,11 @@ o=`echo $tail | sed 's/[0-9]*$//'`
if test $o != $tail; then
ostry="$ostry /$o"
fi
+# For linux-gnu, try linux-gnu, then linux.
+o=`echo $tail | sed 's/-.*$//'`
+if test $o != $tail; then
+ ostry="$ostry /$o"
+fi
# For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
base=
diff --git a/features.h b/features.h
index 47a4124502..83977e9c95 100644
--- a/features.h
+++ b/features.h
@@ -29,6 +29,8 @@ Cambridge, MA 02139, USA. */
_BSD_SOURCE ANSI, POSIX, and 4.3BSD things.
_SVID_SOURCE ANSI, POSIX, and SVID things.
_GNU_SOURCE All of the above, plus GNU extensions.
+ _REENTRANT Select additionally reentrant object.
+ _THREAD_SAFE Same as _REENTRANT, often used by other systems.
The `-ansi' switch to the GNU C compiler defines __STRICT_ANSI__.
If none of these are defined, the default is all but _GNU_SOURCE.
@@ -137,7 +139,7 @@ Cambridge, MA 02139, USA. */
#define __USE_GNU 1
#endif
-#if defined (__USE_GNU) || defined (__USE_MISC)
+#if defined (_REENTRANT) || defined (_THREAD_SAFE)
#define __USE_REENTRANT 1
#endif
diff --git a/inet/herrno.c b/inet/herrno.c
index d20c96cb3c..ca92ec3b86 100644
--- a/inet/herrno.c
+++ b/inet/herrno.c
@@ -25,7 +25,7 @@ strong_alias (__h_errno, h_errno)
/* When threaded, h_errno may be a per-process variable. */
#ifdef __USE_REENTRANT
-int
+int *
weak_const_function
__h_errno_location (void)
{
diff --git a/libc-symbols.h b/libc-symbols.h
index c64d8826f7..370c631f20 100644
--- a/libc-symbols.h
+++ b/libc-symbols.h
@@ -48,6 +48,8 @@ Cambridge, MA 02139, USA. */
/* Enable declarations of GNU extensions, since we are compiling them. */
#define _GNU_SOURCE 1
+/* And we also need the data for the reentrant functions. */
+#define _REENTRANT 1
#include <config.h>
/*
diff --git a/libio/iofgets.c b/libio/iofgets.c
index 369251f22a..4d4ce5c726 100644
--- a/libio/iofgets.c
+++ b/libio/iofgets.c
@@ -35,8 +35,8 @@ _IO_fgets (buf, n, fp)
CHECK_FILE (fp, NULL);
if (n <= 0)
return NULL;
- __libc_cleanup_region_start (&_IO_funlockfile, fp);
- _IO_flockfile (fp);
+ __libc_cleanup_region_start (&__funlockfile, fp);
+ __flockfile (fp);
count = _IO_getline (fp, buf, n - 1, '\n', 1);
if (count == 0 || (fp->_IO_file_flags & _IO_ERR_SEEN))
result = NULL;
diff --git a/locale/categories.def b/locale/categories.def
index 7c47fd4662..5e72319774 100644
--- a/locale/categories.def
+++ b/locale/categories.def
@@ -137,12 +137,15 @@ DEFINE_CATEGORY
DEFINE_ELEMENT (D_FMT, "d_fmt", std, string)
DEFINE_ELEMENT (T_FMT, "t_fmt", std, string)
DEFINE_ELEMENT (T_FMT_AMPM, "t_fmt_ampm", std, string)
- DEFINE_ELEMENT (ERA, "era", opt, string)
+ DEFINE_ELEMENT (ERA, "era", opt, stringarray, 0, 100)/*XXX*/
DEFINE_ELEMENT (ERA_YEAR, "era_year", opt, string)
DEFINE_ELEMENT (ERA_D_FMT, "era_d_fmt", opt, string)
DEFINE_ELEMENT (ALT_DIGITS, "alt_digits", opt, stringarray, 0, 100)
DEFINE_ELEMENT (ERA_D_T_FMT, "era_d_t_fmt", opt, string)
DEFINE_ELEMENT (ERA_T_FMT, "era_t_fmt", opt, string)
+ DEFINE_ELEMENT (_NL_TIME_ERA_NUM_ENTRIES, "time-era-num-entries", opt, word)
+ DEFINE_ELEMENT (_NL_TIME_ERA_ENTRIES_EB, "time-era-entries-eb", opt, string)
+ DEFINE_ELEMENT (_NL_TIME_ERA_ENTRIES_EL, "time-era-entries-el", opt, string)
), NO_POSTLOAD, NULL, NULL, NULL)
diff --git a/locale/langinfo.h b/locale/langinfo.h
index 90aee3d745..82bd51024a 100644
--- a/locale/langinfo.h
+++ b/locale/langinfo.h
@@ -101,6 +101,10 @@ typedef enum
ERA_D_T_FMT, /* Date and time in alternate era format. */
ERA_T_FMT, /* Time in alternate era format. */
+ _NL_TIME_ERA_NUM_ENTRIES, /* Number entries in the era arrays. */
+ _NL_TIME_ERA_ENTRIES_EB, /* Structure with era entries in usable form.*/
+ _NL_TIME_ERA_ENTRIES_EL,
+
_NL_NUM_LC_TIME, /* Number of indices in LC_TIME category. */
/* LC_COLLATE category: text sorting.
diff --git a/locale/localeinfo.h b/locale/localeinfo.h
index 7a035c8739..2b7c6faa84 100644
--- a/locale/localeinfo.h
+++ b/locale/localeinfo.h
@@ -64,7 +64,7 @@ enum coll_sort_rule
sort_mask
};
-/* We can map the types of the entries into four categories. */
+/* We can map the types of the entries into a few categories. */
enum value_type
{
none,
diff --git a/locale/programs/ld-time.c b/locale/programs/ld-time.c
index 00f288f69b..75f6021109 100644
--- a/locale/programs/ld-time.c
+++ b/locale/programs/ld-time.c
@@ -34,6 +34,7 @@ Boston, MA 02111-1307, USA. */
void *xmalloc (size_t __n);
+void *xrealloc (void *__p, size_t __n);
/* The real definition of the struct for the LC_TIME locale. */
@@ -53,7 +54,8 @@ struct locale_time_t
const char *d_fmt;
const char *t_fmt;
const char *t_fmt_ampm;
- const char *era;
+ const char **era;
+ size_t era_num;
const char *era_year;
const char *era_d_t_fmt;
const char *era_t_fmt;
@@ -115,6 +117,7 @@ time_output (struct localedef_t *locale, const char *output_path)
{
struct locale_time_t *time = locale->categories[LC_TIME].time;
struct iovec iov[2 + _NL_ITEM_INDEX (_NL_NUM_LC_TIME)
+ + (time->era_num > 0 ? time->era_num - 1 : 0)
+ time->cur_num_alt_digits];
struct locale_file data;
u_int32_t idx[_NL_ITEM_INDEX (_NL_NUM_LC_TIME)];
@@ -203,22 +206,27 @@ time_output (struct localedef_t *locale, const char *output_path)
iov[2 + cnt].iov_base = (void *) (time->t_fmt_ampm ?: "");
iov[2 + cnt].iov_len = strlen (iov[2 + cnt].iov_base) + 1;
idx[1 + cnt] = idx[cnt] + iov[2 + cnt].iov_len;
- ++cnt;
+ last_idx = ++cnt;
- iov[2 + cnt].iov_base = (void *) (time->era ?: "");
- iov[2 + cnt].iov_len = strlen (iov[2 + cnt].iov_base) + 1;
- idx[1 + cnt] = idx[cnt] + iov[2 + cnt].iov_len;
- ++cnt;
+ idx[1 + last_idx] = idx[last_idx];
+ for (num = 0; num < time->era_num; ++num, ++cnt)
+ {
+ iov[2 + cnt].iov_base = (void *) time->era[num];
+ iov[2 + cnt].iov_len = strlen (iov[2 + cnt].iov_base) + 1;
+ }
+ ++last_idx;
iov[2 + cnt].iov_base = (void *) (time->era_year ?: "");
iov[2 + cnt].iov_len = strlen (iov[2 + cnt].iov_base) + 1;
- idx[1 + cnt] = idx[cnt] + iov[2 + cnt].iov_len;
+ idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
++cnt;
+ ++last_idx;
iov[2 + cnt].iov_base = (void *) (time->era_d_fmt ?: "");
iov[2 + cnt].iov_len = strlen (iov[2 + cnt].iov_base) + 1;
- idx[1 + cnt] = idx[cnt] + iov[2 + cnt].iov_len;
- last_idx = ++cnt;
+ idx[1 + last_idx] = idx[last_idx] + iov[2 + cnt].iov_len;
+ ++cnt;
+ ++last_idx;
idx[1 + last_idx] = idx[last_idx];
for (num = 0; num < time->cur_num_alt_digits; ++num, ++cnt)
@@ -267,8 +275,7 @@ too many values for field `%s' in category `LC_TIME'"), \
time->cat[time->cur_num_##cat++] = ""; \
} \
else \
- time->cat[time->cur_num_##cat++] \
- = code->val.str.start; \
+ time->cat[time->cur_num_##cat++] = code->val.str.start; \
break
STRARR_ELEM (abday, 7);
@@ -278,6 +285,18 @@ too many values for field `%s' in category `LC_TIME'"), \
STRARR_ELEM (am_pm, 2);
STRARR_ELEM (alt_digits, 100);
+ case tok_era:
+ if (code->val.str.start == NULL)
+ lr_error (lr, _("unknown character in field `%s' of category `%s'"),
+ "era", "LC_TIME");
+ else
+ {
+ ++time->era_num;
+ time->era = xrealloc (time->era, time->era_num * sizeof (char *));
+ time->era[time->era_num - 1] = code->val.str.start;
+ }
+ break;
+
#define STR_ELEM(cat) \
case tok_##cat: \
if (time->cat != NULL) \
@@ -298,7 +317,6 @@ field `%s' in category `%s' declared more than once"), \
STR_ELEM (d_fmt);
STR_ELEM (t_fmt);
STR_ELEM (t_fmt_ampm);
- STR_ELEM (era);
STR_ELEM (era_year);
STR_ELEM (era_d_t_fmt);
STR_ELEM (era_d_fmt);
diff --git a/manual/time.texi b/manual/time.texi
index 9da23fbfb3..18224a5520 100644
--- a/manual/time.texi
+++ b/manual/time.texi
@@ -465,33 +465,34 @@ contains at least the following members, which can appear in any order:
@table @code
@item int tm_sec
This is the number of seconds after the minute, normally in the range
-@code{0} to @code{59}. (The actual upper limit is @code{60}, to allow
+@code{0} through @code{59}. (The actual upper limit is @code{60}, to allow
for leap seconds if leap second support is available.)
@cindex leap second
@item int tm_min
-This is the number of minutes after the hour, in the range @code{0} to
+This is the number of minutes after the hour, in the range @code{0} through
@code{59}.
@item int tm_hour
-This is the number of hours past midnight, in the range @code{0} to
+This is the number of hours past midnight, in the range @code{0} through
@code{23}.
@item int tm_mday
-This is the day of the month, in the range @code{1} to @code{31}.
+This is the day of the month, in the range @code{1} through @code{31}.
@item int tm_mon
-This is the number of months since January, in the range @code{0} to
+This is the number of months since January, in the range @code{0} through
@code{11}.
@item int tm_year
This is the number of years since @code{1900}.
@item int tm_wday
-This is the number of days since Sunday, in the range @code{0} to @code{6}.
+This is the number of days since Sunday, in the range @code{0} through
+@code{6}.
@item int tm_yday
-This is the number of days since January 1, in the range @code{0} to
+This is the number of days since January 1, in the range @code{0} through
@code{365}.
@item int tm_isdst
@@ -617,6 +618,7 @@ does so. @xref{Time Zone Functions}.
@comment time.h
@comment ANSI
+@comment POSIX.2
@deftypefun size_t strftime (char *@var{s}, size_t @var{size}, const char *@var{template}, const struct tm *@var{brokentime})
This function is similar to the @code{sprintf} function (@pxref{Formatted
Input}), but the conversion specifications that can appear in the format
@@ -626,9 +628,9 @@ time conversion (@pxref{Locales}).
Ordinary characters appearing in the @var{template} are copied to the
output string @var{s}; this can include multibyte character sequences.
-Conversion specifiers are introduced by a @samp{%} character. Now can
-follow an optional flag which can be one of the following. These flags
-only affect the output of numbers:
+Conversion specifiers are introduced by a @samp{%} character, followed
+by an optional flag which can be one of the following. These flags,
+which are GNU extensions, affect only the output of numbers:
@table @code
@item _
@@ -638,9 +640,31 @@ The number is padded with spaces.
The number is not padded at all.
@end table
-The default action is to pad the number with zeros. Following to the
-flag comes the format specifier. The whole @samp{%} sequence is
-replaced in the output string as follows:
+The default action is to pad the number with zeros to keep it a constant
+width. Numbers that do not have a range indicated below are never
+padded, since there is no natural width for them.
+
+An optional modifier can follow the optional flag. The modifiers, which
+are POSIX.2 extensions, are:
+
+@table @code
+@item E
+Use the locale's alternate representation for date and time. This
+modifier applies to the @code{%c}, @code{%C}, @code{%x}, @code{%X},
+@code{%y} and @code{%Y} format specifiers. In a Japanese locale, for
+example, @code{%Ex} might yield a date format based on the Japanese
+Emperors' reigns.
+
+@item O
+Use the locale's alternate numeric symbols for numbers. This modifier
+applies only to numeric format specifiers.
+@end table
+
+A modifier is ignored if no alternate representation is available.
+
+The conversion specifier ends with a format specifier taken from the
+following list. The whole @samp{%} sequence is replaced in the output
+string as follows:
@table @code
@item %a
@@ -659,19 +683,38 @@ The full month name according to the current locale.
The preferred date and time representation for the current locale.
@item %C
-The century of the year.
+The century of the year. This is equivalent to the greatest integer not
+greater than the year divided by 100.
+
+This format is a POSIX.2 extension.
@item %d
-The day of the month as a decimal number (range @code{01} to @code{31}).
+The day of the month as a decimal number (range @code{01} through @code{31}).
@item %D
The date using the format @code{%m/%d/%y}.
-This format is a GNU extension.
+This format is a POSIX.2 extension.
-@item %d
+@item %e
The day of the month like with @code{%d}, but padded with blank (range
-@code{ 1} to @code{31}).
+@code{ 1} through @code{31}).
+
+This format is a POSIX.2 extension.
+
+@item %g
+The year corresponding to the ISO week number, but without the century
+(range @code{00} through @code{99}). This has the same format and value
+as @code{%y}, except that if the ISO week number (see @code{%V}) belongs
+to the previous or next year, that year is used instead.
+
+This format is a GNU extension.
+
+@item %G
+The year corresponding to the ISO week number. This has the same format
+and value as @code{%Y}, except that if the ISO week number (see
+@code{%V}) belongs to the previous or next year, that year is used
+instead.
This format is a GNU extension.
@@ -679,50 +722,51 @@ This format is a GNU extension.
The abbreviated month name according to the current locale. The action
is the same as for @code{%b}.
-This format is a GNU extension.
+This format is a POSIX.2 extension.
@item %H
-The hour as a decimal number, using a 24-hour clock (range @code{00} to
+The hour as a decimal number, using a 24-hour clock (range @code{00} through
@code{23}).
@item %I
-The hour as a decimal number, using a 12-hour clock (range @code{01} to
+The hour as a decimal number, using a 12-hour clock (range @code{01} through
@code{12}).
@item %j
-The day of the year as a decimal number (range @code{001} to @code{366}).
+The day of the year as a decimal number (range @code{001} through @code{366}).
@item %k
The hour as a decimal number, using a 24-hour clock like @code{%H}, but
-padded with blank (range @code{ 0} to @code{23}).
+padded with blank (range @code{ 0} through @code{23}).
This format is a GNU extension.
@item %l
The hour as a decimal number, using a 12-hour clock like @code{%I}, but
-padded with blank (range @code{ 0} to @code{12}).
+padded with blank (range @code{ 1} through @code{12}).
This format is a GNU extension.
@item %m
-The month as a decimal number (range @code{01} to @code{12}).
+The month as a decimal number (range @code{01} through @code{12}).
@item %M
-The minute as a decimal number.
+The minute as a decimal number (range @code{00} through @code{59}).
@item %n
A single @samp{\n} (newline) character.
-This format is a GNU extension.
+This format is a POSIX.2 extension.
@item %p
-Either @samp{am} or @samp{pm}, according to the given time value; or the
-corresponding strings for the current locale.
+Either @samp{AM} or @samp{PM}, according to the given time value; or the
+corresponding strings for the current locale. Noon is treated as
+@samp{PM} and midnight as @samp{AM}.
@item %r
-The time in decinal numbers using the format @code{%I:%M:%S %p}.
+The complete time using the AM/PM format of the current locale.
-This format is a GNU extension.
+This format is a POSIX.2 extension.
@item %R
The hour and minute in decimal numbers using the format @code{%H:%M}.
@@ -730,47 +774,58 @@ The hour and minute in decimal numbers using the format @code{%H:%M}.
This format is a GNU extension.
@item %s
-The seconds since the epoch, i.e., 1970-01-01 00:00:00 UTC. Note
-that this value is the number of seconds between the epoch and the
-current date as defined by the @code{localtime} system call.
+The number of seconds since the epoch, i.e., since 1970-01-01 00:00:00 UTC.
+Leap seconds are not counted unless leap second support is available.
This format is a GNU extension.
@item %S
-The second as a decimal number.
+The second as a decimal number (range @code{00} through @code{60}).
@item %t
A single @samp{\t} (tabulator) character.
-This format is a GNU extension.
+This format is a POSIX.2 extension.
@item %T
The time using decimal numbers using the format @code{%H:%M:%S}.
-This format is a GNU extension.
+This format is a POSIX.2 extension.
+
+@item %u
+The day of the week as a decimal number (range @code{1} through
+@code{7}), Monday being @code{1}.
+
+This format is a POSIX.2 extension.
@item %U
-The week number of the current year as a decimal number, starting with
-the first Sunday as the first day of the first week. All days preceding
-the first Sunday in the year are considered to be in week @code{0}.
+The week number of the current year as a decimal number (range @code{00}
+through @code{53}), starting with the first Sunday as the first day of
+the first week. Days preceding the first Sunday in the year are
+considered to be in week @code{00}.
@item %V
-The @w{ISO 8601:1988} week number as a decimal number (range @code{00}
-to @code{53}). ISO weeks start with Monday and end with Sunday. Week
-01 of a year is the first week which has the majority of its days in
-that year; this is equivalent to the week containing the year's first
-Thursday, and it is also equivalent to the week containing January 4.
-Week 01 of a year can contain days from the previous year. The week
-before week 01 of a year is the last week (52 or 53) of the previous
-year even if it contains days from the new year.
+The @w{ISO 8601:1988} week number as a decimal number (range @code{01}
+through @code{53}). ISO weeks start with Monday and end with Sunday.
+Week @code{01} of a year is the first week which has the majority of its
+days in that year; this is equivalent to the week containing the year's
+first Thursday, and it is also equivalent to the week containing January
+4. Week @code{01} of a year can contain days from the previous year.
+The week before week @code{01} of a year is the last week (@code{52} or
+@code{53}) of the previous year even if it contains days from the new
+year.
+
+This format is a POSIX.2 extension.
@item %w
-The day of the week as a decimal number, Sunday being @code{0}.
+The day of the week as a decimal number (range @code{0} through
+@code{6}), Sunday being @code{0}.
@item %W
-The week number of the current year as a decimal number, starting with
-the first Monday as the first day of the first week. All days preceding
-the first Monday in the year are considered to be in week @code{0}.
+The week number of the current year as a decimal number (range @code{00}
+through @code{53}), starting with the first Monday as the first day of
+the first week. All days preceding the first Monday in the year are
+considered to be in week @code{00}.
@item %x
The preferred date representation for the current locale, but without the
@@ -780,20 +835,22 @@ time.
The preferred time representation for the current locale, but with no date.
@item %y
-The year as a decimal number, but without a century (range @code{00} to
-@code{99}).
+The year without a century as a decimal number (range @code{00} through
+@code{99}). This is equivalent to the year modulo 100.
@item %Y
-The year as a decimal number, including the century.
+The year as a decimal number, using the Gregorian calendar. Years
+before the year @code{1} are numbered @code{0}, @code{-1}, and so on.
@item %z
@w{RFC 822}/@w{ISO 8601:1988} style numeric time zone (e.g.,
@code{-0600} or @code{+0100}), or nothing if no time zone is
determinable.
+This format is a GNU extension.
+
@item %Z
-The time zone or name or abbreviation (empty if the time zone can't be
-determined).
+The time zone abbreviation (empty if the time zone can't be determined).
@item %%
A literal @samp{%} character.
diff --git a/math/Makefile b/math/Makefile
index 2c76633fb4..c7bacd03f8 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -32,7 +32,7 @@ aux := fpu_control setfpucw
# Build the -lm library.
extra-libs := libm
-extra-libs-others = $(extra-libc)
+extra-libs-others = $(extra-libs)
libm-support = k_standard s_lib_version s_matherr s_signgam
libm-calls = e_acos e_acosh e_asin e_atan2 e_atanh e_cosh e_exp e_fmod \
diff --git a/po/header.pot b/po/header.pot
index db749fb132..ea05c22466 100644
--- a/po/header.pot
+++ b/po/header.pot
@@ -1,4 +1,4 @@
-# GNU libc message catalog of translations
+# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
diff --git a/po/nl.po b/po/nl.po
index 7b860bdd26..dade331dd8 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -4,9 +4,9 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: glibc 1.90\n"
-"POT-Creation-Date: 1996-05-29 14:03\n"
-"PO-Revision-Date: 1996-07-30 13:32 MET DST\n"
+"Project-Id-Version: libc 1.94\n"
+"POT-Creation-Date: 1996-09-08 3:45\n"
+"PO-Revision-Date: 1996-09-17 14:30 MET DST\n"
"Last-Translator: Erick Branderhorst <branderh@debian.org>\n"
"Language-Team: Dutch <nl@li.org>\n"
"MIME-Version: 1.0\n"
@@ -43,27 +43,31 @@ msgstr ""
msgid " program vers proto port\n"
msgstr ""
-#: time/zic.c:423
+#: time/zic.c:425
#, c-format
msgid " (rule from \"%s\", line %d)"
-msgstr " (rule uit \"%s\", regel %d)"
+msgstr " (voorwaarde uit \"%s\", regel %d)"
-#: time/zic.c:420
+#: locale/programs/ld-collate.c:360 locale/programs/ld-ctype.c:1233
+msgid " done\n"
+msgstr " klaar\n"
+
+#: time/zic.c:422
#, c-format
msgid "\"%s\", line %d: %s"
msgstr "\"%s\", regel %d: %s"
-#: time/zic.c:908
+#: time/zic.c:946
#, c-format
msgid "\"Zone %s\" line and -l option are mutually exclusive"
msgstr "\"Zone %s\" regel en -l optie gaan niet samen"
-#: time/zic.c:916
+#: time/zic.c:954
#, c-format
msgid "\"Zone %s\" line and -p option are mutually exclusive"
msgstr "\"Zone %s\" regel en -p optie gaan niet samen"
-#: time/zic.c:721
+#: time/zic.c:759
#, c-format
msgid "%s in ruleless zone"
msgstr "%s in regelloze zone"
@@ -88,96 +92,101 @@ msgstr "%s%sOnbekend signaal %d\n"
msgid "%s, line %d: "
msgstr "%s, regel %d: "
-#: time/zic.c:2035
+#: time/zic.c:2140
#, c-format
msgid "%s: %d did not sign extend correctly\n"
msgstr "%s: %d heeft `extend' niet juist gesigneerd\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> moet groter zijn dan <mb_cur_min>\n"
+
+#: time/zic.c:1431
#, c-format
msgid "%s: Can't create %s: %s\n"
msgstr "%s: Kan %s niet aanmaken: %s\n"
-#: time/zic.c:2014
+#: time/zic.c:2119
#, c-format
msgid "%s: Can't create directory %s: %s\n"
msgstr "%s: Kan directory %s niet aanmaken: %s\n"
-#: time/zic.c:600
+#: time/zic.c:613
#, c-format
msgid "%s: Can't link from %s to %s: %s\n"
msgstr "%s: Kan niet verwijzing van %s naar %s: %s\n"
-#: time/zic.c:746
+#: time/zic.c:784
#, c-format
msgid "%s: Can't open %s: %s\n"
msgstr "%s: Kan %s niet openen: %s\n"
-#: time/zic.c:814
+#: time/zic.c:852
#, c-format
msgid "%s: Error closing %s: %s\n"
msgstr "%s: Fout bij sluiten %s: %s\n"
-#: time/zic.c:808
+#: time/zic.c:846
#, c-format
msgid "%s: Error reading %s\n"
msgstr "%s: Fout bij lezen %s\n"
-#: time/zic.c:1404
+#: time/zic.c:1495
#, c-format
msgid "%s: Error writing %s\n"
msgstr "%s: Fout bij schrijven %s\n"
-#: time/zdump.c:257
+#: time/zdump.c:258
#, c-format
msgid "%s: Error writing standard output "
msgstr "%s: Fout bij schrijven standaarduitvoer "
-#: time/zic.c:793
+#: time/zic.c:831
#, c-format
msgid "%s: Leap line in non leap seconds file %s\n"
msgstr "%s: Schrikkelregel in niet schrikkelseconde bestand %s (FIXME)\n"
-#: time/zic.c:360
+#: time/zic.c:362
#, c-format
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: Niet meer geheugen beschikbaar: %s\n"
-#: time/zic.c:515
+#: time/zic.c:528
#, c-format
msgid "%s: More than one -L option specified\n"
msgstr "%s: Meer dan een -L optie gegeven\n"
-#: time/zic.c:475
+#: time/zic.c:488
#, c-format
msgid "%s: More than one -d option specified\n"
msgstr "%s: Meer dan een -d optie gegeven\n"
-#: time/zic.c:485
+#: time/zic.c:498
#, c-format
msgid "%s: More than one -l option specified\n"
msgstr "%s: Meer dan een -l optie gegeven\n"
-#: time/zic.c:495
+#: time/zic.c:508
#, c-format
msgid "%s: More than one -p option specified\n"
msgstr "%s: Meer dan een -p optie gegeven\n"
-#: time/zic.c:505
+#: time/zic.c:518
#, c-format
msgid "%s: More than one -y option specified\n"
msgstr "%s: Meer dan een -y optie gegeven\n"
-#: posix/getconf.c:149
-#, c-format
-msgid "%s: Unrecognized variable `%s'\n"
-msgstr "%s: Onbekende variabele `%s'\n"
-
-#: time/zic.c:1741
+#: time/zic.c:1846
#, c-format
msgid "%s: command was '%s', result was %d\n"
msgstr "%s: commando was '%s', resultaat was %d\n"
+#: locale/programs/charmap.c:593 locale/programs/locfile.c:878
+#, c-format
+msgid "%s: error in state machine"
+msgstr "%s: fout in state machine"
+
#: posix/getopt.c:686
#, c-format
msgid "%s: illegal option -- %c\n"
@@ -218,15 +227,20 @@ msgstr "%s: optie vereist een argument -- %c\n"
msgid "%s: output would overwrite %s\n"
msgstr "%s: uitvoer zal %s overschrijven\n"
-#: time/zic.c:800 zic.c:1212 zic.c:1232
+#: time/zic.c:838 time/zic.c:1249 time/zic.c:1269
#, c-format
msgid "%s: panic: Invalid l_value %d\n"
msgstr "%s: paniek: Onjuiste `l_value' %d\n"
+#: locale/programs/charmap.c:600
+#, c-format
+msgid "%s: premature end of file"
+msgstr "%s: voorbarig einde van bestand"
+
#: sunrpc/rpc_main.c:152
#, c-format
msgid "%s: unable to open "
-msgstr "%s: kan niet openen "
+msgstr "%s: niet in staat te openen "
#: posix/getopt.c:660
#, c-format
@@ -238,10 +252,11 @@ msgstr "%s: onbekende optie `%c%s'\n"
msgid "%s: unrecognized option `--%s'\n"
msgstr "%s: onbekende optie `--%s'\n"
-#: time/zic.c:432
+#: time/zic.c:447
#, c-format
msgid ""
-"%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] [ -d directory ]\n"
+"%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] [ -d "
+"directory ]\n"
"\t[ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"
msgstr ""
"%s: gebruik is %s [ -s ] [ -v ] \n"
@@ -262,10 +277,14 @@ msgstr "(onbekende authenticatie (FIXME) fout - %d)"
msgid "(unknown)"
msgstr "(onbekend)"
-#: catgets/gencat.c:242
+#: catgets/gencat.c:244
msgid "*standard input*"
msgstr "*standaardinvoer*"
+#: stdio-common/../sysdeps/gnu/errlist.c:766
+msgid ".lib section in a.out corrupted"
+msgstr ".lib deel in a.out corrupt"
+
#: inet/rcmd.c:325
msgid ".rhosts fstat failed"
msgstr ".rhosts fstat faalde"
@@ -282,7 +301,7 @@ msgstr ".rhosts is geen gewoon bestand"
msgid ".rhosts writeable by other than owner"
msgstr ".rhosts overschrijfbaar door anderen dan de eigenaar"
-#: 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 "; low versie = %lu, high versie = %lu (FIXME)"
@@ -291,41 +310,100 @@ msgstr "; low versie = %lu, high versie = %lu (FIXME)"
msgid "; why = "
msgstr "; waarom = "
+#: locale/programs/ld-ctype.c:325
+#, c-format
+msgid "<SP> character must not be in class `%s'"
+msgstr "<SP> karakter mag geen onderdeel zijn van klasse `%s'"
+
+#: locale/programs/ld-ctype.c:316
+#, c-format
+msgid "<SP> character not in class `%s'"
+msgstr "<SP> karakter geen onderdeel van klasse `%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.
+#. TRANS @c Don't change it.
+#: stdio-common/../sysdeps/gnu/errlist.c:591
msgid "?"
-msgstr "?"
+msgstr ""
+#: stdio-common/../sysdeps/gnu/errlist.c:762
+msgid "Accessing a corrupted shared library"
+msgstr "Benaderen van een corrupte gezamelijk bibliotheek"
+
+#. 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 "Address is al in gebruik"
-msgid "Address family not supported by protocol family"
-msgstr "Adres familie niet ondersteund door protocol familie"
+#. 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 "Adres familie niet ondersteund door protocol"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:714
+msgid "Advertise error"
+msgstr "Advertise (FIXME) fout"
msgid "Alarm clock"
msgstr "Alarmklok"
+#. 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 "Argumentenlijst is te lang"
+#: stdio-common/../sysdeps/gnu/errlist.c:770
+msgid "Attempting to link in too many shared libraries"
+msgstr "Probeer in te veel gezamelijke bibliotheken te linken"
+
#: sunrpc/clnt_perr.c:276
msgid "Authentication OK"
msgstr "Authenticatie OK"
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:549
msgid "Authentication error"
msgstr "Authenticatie fout"
+#. 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 "Onjuist adres"
+#. 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 "Onjuiste bestandsbeschrijver"
+#: stdio-common/../sysdeps/gnu/errlist.c:682
+msgid "Bad font file format"
+msgstr "Onjuist lettertype bestandsformaat"
+
+#. 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 "Blokapparaat vereist"
-#: sunrpc/pmap_rmt.c:336
+#: sunrpc/pmap_rmt.c:335
msgid "Broadcast select problem"
msgstr "Broadcast selectie probleem (FIXME)"
+#. 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 "Onderbroken pijp"
@@ -335,20 +413,32 @@ msgstr "Bus fout"
msgid "CPU time limit exceeded"
msgstr "CPU tijdlimiet overschreden"
-msgid "Can't assign requested address"
-msgstr "Kan gevraagde adres niet toewijzen"
-
-msgid "Can't send after socket shutdown"
-msgstr "Kan niet zenden na `socket shutdown'"
+#: stdio-common/../sysdeps/gnu/errlist.c:758
+msgid "Can not access a needed shared library"
+msgstr "Kan geen toegang verkrijgen tot benodigde gezamelijk bibliotheekbestand"
+#. 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 "Kan geen geheugen aanspreken"
-#: sunrpc/pmap_rmt.c:254
+#. 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 "Kan gevraagde adres niet toewijzen"
+
+#: sunrpc/pmap_rmt.c:253
msgid "Cannot create socket for broadcast rpc"
msgstr "Kan geen `socket' maken voor `broadcast' rpc"
-#: sunrpc/pmap_rmt.c:348
+#: stdio-common/../sysdeps/gnu/errlist.c:774
+msgid "Cannot exec a shared library directly"
+msgstr "Kan geen gezamelijke bibliotheek rechtstreeks uitvoeren"
+
+#: sunrpc/pmap_rmt.c:347
msgid "Cannot receive reply to broadcast"
msgstr "Kan geen antwoord ontvangen om te zenden"
@@ -356,13 +446,22 @@ msgstr "Kan geen antwoord ontvangen om te zenden"
msgid "Cannot register service"
msgstr "Kan service niet registreren"
-#: sunrpc/pmap_rmt.c:312
+#. TRANS The socket has already been shut down.
+#: stdio-common/../sysdeps/gnu/errlist.c:422
+msgid "Cannot send after transport endpoint shutdown"
+msgstr "Kan niet zenden na transport eindpunt `shutdown'"
+
+#: sunrpc/pmap_rmt.c:311
msgid "Cannot send broadcast packet"
msgstr "Kan broadcast pakket niet verzenden"
-#: sunrpc/pmap_rmt.c:260
+#: sunrpc/pmap_rmt.c:259
msgid "Cannot set socket option SO_BROADCAST"
-msgstr ""
+msgstr "Kan socket optie SO_BROADCAST niet instellen"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:622
+msgid "Channel number out of range"
+msgstr "Kanaal nummer buiten domein"
msgid "Child exited"
msgstr "Kind is er mee opgehouden (FIXME)"
@@ -371,33 +470,80 @@ msgstr "Kind is er mee opgehouden (FIXME)"
msgid "Client credential too weak"
msgstr "Klant credential is te zwak (FIXME)"
+#: stdio-common/../sysdeps/gnu/errlist.c:722
+msgid "Communication error on send"
+msgstr "Communicatie fout bij zenden"
+
+#. 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 "Computer heeft de boerderij gekocht"
+#: locale/programs/ld-ctype.c:1196
+msgid "Computing table size for character classes might take a while..."
+msgstr "Berekenen tabelgrootte voor karakterklassen kan even duren..."
+
+#: locale/programs/ld-collate.c:327
+msgid "Computing table size for collation information might take a while..."
+msgstr "Berekenen tabelgrootte voor collation informatie kan even duren..."
+
+#. 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 "Connectie gewijgerd"
+#. 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 "Connectie reset door `peer'"
+#. 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 "Connectie timed out"
msgid "Continued"
msgstr "Gecontinueerd"
+#. 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 "Bestemmingsadres vereist"
-msgid "Device busy"
-msgstr "Apparaat bezig"
+#: stdio-common/../sysdeps/gnu/errlist.c:686
+msgid "Device not a stream"
+msgstr "Apparaat is geen `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 "Apparaat niet geconfigureerd"
+#. 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 "Apparaat of resource bezig"
+
+#. 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 "Directory niet leeg"
+#. TRANS The user's disk quota was exceeded.
+#: stdio-common/../sysdeps/gnu/errlist.c:486
msgid "Disc quota exceeded"
msgstr "Schijf quota overschreden"
@@ -410,41 +556,81 @@ msgstr "Fout %d"
msgid "Error in unknown error system: "
msgstr "Fout in onbekende fout systeem (FIXME): "
+#: inet/ruserpass.c:156
+msgid "Error: .netrc file is readable by others."
+msgstr "Fout: .netrc bestand is leesbaar voor anderen."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:662
+msgid "Exchange full"
+msgstr "Uitwisseling vol"
+
+#. 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 "Exec formaat fout"
+#: locale/programs/localedef.c:207
+msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
+msgstr "FATAAL: systeem heeft `_POSIX2_LOCALEDEF' niet gedefinieerd"
+
#: sunrpc/clnt_perr.c:290
msgid "Failed (unspecified error)"
msgstr "Gefaald (onbekende fout)"
+#: stdio-common/../sysdeps/gnu/errlist.c:750
+msgid "File descriptor in bad state"
+msgstr "Bestandsbeschrijver in slechte staat"
+
+#. 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 "Bestand bestaat"
+#: stdio-common/../sysdeps/gnu/errlist.c:678
+msgid "File locking deadlock error"
+msgstr "Bestandsafscherming deadlock fout"
+
+#. 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 "Bestandsnaam te lang"
msgid "File size limit exceeded"
msgstr "Bestandsgrootte limiet overschreden"
+#. 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 "Bestand te groot"
msgid "Floating point exception"
msgstr "Drijvende punt exceptie"
+#. 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 "Functie niet geimplementeerd"
+#. TRANS This error code has no purpose.
+#: stdio-common/../sysdeps/gnu/errlist.c:606
msgid "Gratuitous error"
msgstr "Gratuitous (FIXME) fout"
msgid "Hangup"
msgstr "Ophangen"
+#. TRANS The remote host for a requested network connection is down.
+#: stdio-common/../sysdeps/gnu/errlist.c:457
msgid "Host is down"
msgstr "`Host' is `down'"
-#: resolv/herror.c:74
+#: resolv/herror.c:75
msgid "Host name lookup failure"
msgstr "Host naam opzoek fout (FIXME)"
@@ -454,30 +640,69 @@ msgstr "I/O mogelijk"
msgid "IOT trap"
msgstr "IOT trap (FIXME)"
+#: stdio-common/../sysdeps/gnu/errlist.c:618
+msgid "Identifier removed"
+msgstr "Identifier verwijderd"
+
msgid "Illegal Instruction"
msgstr "Verkeerde instructie"
+#. TRANS Invalid seek operation (such as on a pipe).
+#: stdio-common/../sysdeps/gnu/errlist.c:201
msgid "Illegal seek"
msgstr "Verkeerd zoeken"
+#. 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 "Ongeschikt bestandstype of bestandsformaat"
+#. 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 "Ongeschikte `ioctl' voor apparaat"
+#. 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 "Ongeschikte operatie voor achtergrond proces"
+#. TRANS Input/output error; usually used for physical read or write errors.
+#: stdio-common/../sysdeps/gnu/errlist.c:40
msgid "Input/output error"
msgstr "Invoer/uitvoer fout"
msgid "Interrupt"
msgstr "Interrupt"
+#. 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 "Onderbroken systeemaanroep (FIXME)"
+#: stdio-common/../sysdeps/gnu/errlist.c:610
+msgid "Interrupted system call should be restarted"
+msgstr "Onderbroken systeemaanroep moet opnieuw gestart worden"
+
+#. 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 "Onjuist argument"
@@ -505,9 +730,23 @@ msgstr "Ongeldig collatie karakter (FIXME)"
msgid "Invalid content of \\{\\}"
msgstr "Ongeldige inhoud van \\{\\}"
+#. 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 "Ongeldige cross-device verwijzing"
+#: stdio-common/../sysdeps/gnu/errlist.c:654
+msgid "Invalid exchange"
+msgstr "Onjuiste uitwisseling"
+
+#. 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 "Ongeldig of incompleet multibyte of wide karakter"
+
#: posix/regex.c:953
msgid "Invalid preceding regular expression"
msgstr "Ongeldige voorafgaande reguliere expressie"
@@ -520,45 +759,141 @@ msgstr "Onjuist bereik einde"
msgid "Invalid regular expression"
msgstr "Onjuiste reguliere expressie"
+#: stdio-common/../sysdeps/gnu/errlist.c:670
+msgid "Invalid request code"
+msgstr "Ongeldige vraag code"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:658
+msgid "Invalid request descriptor"
+msgstr "Onjuiste vraag beschrijver"
+
#: sunrpc/clnt_perr.c:288
msgid "Invalid server verifier"
msgstr "Onjuiste `server' verifier (FIXME)"
+#: stdio-common/../sysdeps/gnu/errlist.c:674
+msgid "Invalid slot"
+msgstr "Onjuist slot"
+
+#. 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 "Is een directory"
+#: stdio-common/../sysdeps/gnu/errlist.c:794
+msgid "Is a named type file"
+msgstr "Is een benoemd bestandstype"
+
msgid "Killed"
msgstr "Gedood"
+#: stdio-common/../sysdeps/gnu/errlist.c:650
+msgid "Level 2 halted"
+msgstr "Nivo 2 gestopt"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:626
+msgid "Level 2 not synchronized"
+msgstr "Nivo 2 niet gesyncrhoniseerd"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:630
+msgid "Level 3 halted"
+msgstr "Nivo 3 gestopt"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:634
+msgid "Level 3 reset"
+msgstr "Nivo 3 reset"
+
+#: 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 "Verwijzingsnummer buiten bereik"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:702
+msgid "Machine is not on the network"
+msgstr "Machine is niet aangesloten op het netwerk"
+
#: posix/regex.c:952
msgid "Memory exhausted"
msgstr "Geheugen opgebruikt"
+#. 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 "Melding te lang"
+#: stdio-common/../sysdeps/gnu/errlist.c:730
+msgid "Multihop attempted"
+msgstr "Multihop geprobeerd"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:746
+msgid "Name not unique on network"
+msgstr "Naam is niet uniek op netwerk"
+
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:554
msgid "Need authenticator"
msgstr "Heb een authenticator nodig"
+#. 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 "Netwerk heeft verbinding verbroken bij reset"
+#. TRANS A socket operation failed because the network was down.
+#: stdio-common/../sysdeps/gnu/errlist.c:366
msgid "Network is down"
msgstr "Netwerk is `down'"
+#. 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 "Netwerk is onbereikbaar"
-#: resolv/herror.c:76
+#: stdio-common/../sysdeps/gnu/errlist.c:646
+msgid "No CSI structure available"
+msgstr "Geen CSI structuur beschikbaar"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:790
+msgid "No XENIX semaphores available"
+msgstr "Geen XENIX semaphoren beschikbaar"
+
+#: resolv/herror.c:77
msgid "No address associated with name"
msgstr "Geen adres geassocieerd met naam"
+#: stdio-common/../sysdeps/gnu/errlist.c:666
+msgid "No anode"
+msgstr "Geen anode"
+
+#. 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 "Geen bufferruimte beschikbaar"
+#. 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 "Geen kindprocessen (FIXME)"
+#: stdio-common/../sysdeps/gnu/errlist.c:690
+msgid "No data available"
+msgstr "Geen data beschikbaar"
+
+#. 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 "Geen sloten beschikbaar"
@@ -566,7 +901,11 @@ msgstr "Geen sloten beschikbaar"
msgid "No match"
msgstr "Geen overeenkomst"
-#: posix/regex.c:5200
+#: stdio-common/../sysdeps/gnu/errlist.c:614
+msgid "No message of desired type"
+msgstr "Geen melding van gewenst type"
+
+#: posix/regex.c:5202
msgid "No previous regular expression"
msgstr "Geen vorige reguliere expressie"
@@ -574,46 +913,125 @@ msgstr "Geen vorige reguliere expressie"
msgid "No remote programs registered.\n"
msgstr "Geen `op-afstand' programmas geregistreerd.\n"
+#. 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 "Geen route naar `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 "Geen ruimte meer op apparaat"
+#. 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 "Onbekend bestand of directory"
+#. TRANS No process matches the specified process ID.
+#: stdio-common/../sysdeps/gnu/errlist.c:24
msgid "No such process"
msgstr "Onbekend proces"
+#: stdio-common/../sysdeps/gnu/errlist.c:786
+msgid "Not a XENIX named type file"
+msgstr "Geen XENIX benoemd type bestand"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:738
+msgid "Not a data message"
+msgstr "Geen data melding"
+
+#. 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 "Niet een directory"
+#. 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 "Numeriek argument is buiten domein"
+#. 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 "Numeriek resultaat is buiten domein"
-#: 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 ""
+
+#: time/zic.c:1940
msgid "Odd number of quotation marks"
msgstr "Oneven aantal quotes"
+#. 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 "Operatie al in voorbereiding"
+#. 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 "Ingreep niet toegestaan (FIXME)"
+#. 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 "Ingreep niet ondersteund"
+#. 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 "Ingreep niet ondersteund door apparaat"
+#. 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 "Ingreep in voorbereiding"
+#. 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 "Operatie zou blokeren"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:698
+msgid "Out of streams resources"
+msgstr "Geen streams resources meer"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:706
+msgid "Package not installed"
+msgstr "Pakket niet geïnstalleerd"
+
+#. TRANS Permission denied; the file permissions do not allow the attempted operation.
+#: stdio-common/../sysdeps/gnu/errlist.c:96
msgid "Permission denied"
msgstr "Toegang geweigerd"
@@ -627,33 +1045,66 @@ msgstr "Prematuur einde van reguliere expressie"
msgid "Profiling timer expired"
msgstr "Profiling timer verlopen (FIMXE)"
+#: stdio-common/../sysdeps/gnu/errlist.c:642
+msgid "Protocol driver not attached"
+msgstr "Protocol driver niet aangesloten"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:726
+msgid "Protocol error"
+msgstr "Protocol fout"
+
+#. TRANS The socket communications protocol family you requested is not supported.
+#: stdio-common/../sysdeps/gnu/errlist.c:343
msgid "Protocol family not supported"
msgstr "Protocol familie niet ondersteund"
+#. 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 "Protocol niet beschikbaar"
+#. 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 "Protocol niet ondersteund"
+#. 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 "Protocol verkeerd type voor socket (FIXME)"
msgid "Quit"
msgstr "Stop"
+#: stdio-common/../sysdeps/gnu/errlist.c:734
+msgid "RFS specific error"
+msgstr "RFS specifieke fout"
+
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:527
msgid "RPC bad procedure for program"
msgstr "RPC verkeerde procedure voor programa"
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:517
msgid "RPC program not available"
msgstr "RPC programa niet beschikbaar"
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:522
msgid "RPC program version wrong"
msgstr "RPC programa versie onjuist"
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:507
msgid "RPC struct is bad"
msgstr "RPC structuur is onjuist"
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:512
msgid "RPC version wrong"
msgstr "RPC versie onjuist"
@@ -733,6 +1184,8 @@ msgstr "RPC: Onbekende host"
msgid "RPC: Unknown protocol"
msgstr "RPC: Onbekend protocol"
+#. 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 "Read-only bestandssysteem (FIXME)"
@@ -740,71 +1193,64 @@ msgstr "Read-only bestandssysteem (FIXME)"
msgid "Regular expression too big"
msgstr "Reguliere expressie te groot"
-msgid "Reserved error 82"
-msgstr "Gereserveerde fout 82"
-
-msgid "Reserved error 83"
-msgstr "Gereserveerde fout 83"
-
-msgid "Reserved error 84"
-msgstr "Gereserveerde fout 84"
-
-msgid "Reserved error 85"
-msgstr "Gereserveerde fout 85"
-
-msgid "Reserved error 86"
-msgstr "Gereserveerde fout 86"
-
-msgid "Reserved error 87"
-msgstr "Gereserveerde fout 87"
-
-msgid "Reserved error 88"
-msgstr "Gereserveerde fout 88"
-
-msgid "Reserved error 89"
-msgstr "Gereserveerde fout 89"
-
-msgid "Reserved error 90"
-msgstr "Gereserveerde fout 90"
-
-msgid "Reserved error 91"
-msgstr "Gereserveerde fout 91"
-
-msgid "Reserved error 92"
-msgstr "Gereserveerde fout 92"
-
-msgid "Reserved error 93"
-msgstr "Gereserveerde fout 93"
-
-msgid "Reserved error 94"
-msgstr "Gereserveerde fout 94"
-
-msgid "Reserved error 95"
-msgstr "Gereserveerde fout 95"
+#: stdio-common/../sysdeps/gnu/errlist.c:798
+msgid "Remote I/O error"
+msgstr "Remote I/O fout"
-msgid "Reserved error 96"
-msgstr "Gereserveerde fout 96"
+#: stdio-common/../sysdeps/gnu/errlist.c:754
+msgid "Remote address changed"
+msgstr "Op-afstand adres gewijzigd"
-msgid "Reserved error 97"
-msgstr "Gereserveerde fout 97"
+#: inet/ruserpass.c:157
+msgid "Remove password or make file unreadable by others."
+msgstr "Verwijder wachtwoord of maak bestand onleesbaar voor anderen."
-msgid "Reserved error 98"
-msgstr "Gereserveerde fout 98"
-
-msgid "Reserved error 99"
-msgstr "Gereserveerde fout 99"
-
-#: resolv/herror.c:72
+#: resolv/herror.c:73
msgid "Resolver Error 0 (no error)"
msgstr "Resolver Fout 0 (geen fout)"
-#: resolv/herror.c:114
+#: resolv/herror.c:115
msgid "Resolver internal error"
msgstr "Resolver interne fout"
+#. 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 "Resource dood lock vermeden (FIXME)"
+#. 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 "Resource tijdelijk niet beschikbaar"
@@ -819,21 +1265,30 @@ msgstr "Server rejected credential (FIXME)"
msgid "Server rejected verifier"
msgstr "Server rejected verifier (FIXME)"
-msgid "Socket is already connected"
-msgstr "Socket heeft al verbinding"
-
-msgid "Socket is not connected"
-msgstr "Socket heeft geen verbinding"
-
+#. 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 "Socket operatie op niet-socket"
+#. TRANS The socket type is not supported.
+#: stdio-common/../sysdeps/gnu/errlist.c:328
msgid "Socket type not supported"
msgstr "Socket type niet ondersteund"
+#. TRANS A network connection was aborted locally.
+#: stdio-common/../sysdeps/gnu/errlist.c:382
msgid "Software caused connection abort"
msgstr "Software veroorzaakte afbreken verbinding"
+#: stdio-common/../sysdeps/gnu/errlist.c:718
+msgid "Srmount error"
+msgstr "Srmount fout"
+
+#. 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 "Stale NFS file handle (FIMXE)"
@@ -849,37 +1304,80 @@ msgstr "Gestopt (tty invoer)"
msgid "Stopped (tty output)"
msgstr "Gestopt (tty uitvoer)"
-#: posix/regex.c:940
+#: stdio-common/../sysdeps/gnu/errlist.c:778
+msgid "Streams pipe error"
+msgstr ""
+
+#: stdio-common/../sysdeps/gnu/errlist.c:782
+msgid "Structure needs cleaning"
+msgstr "Struktuur heeft schoonmaak nodig"
+
+#: posix/regex.c:940 stdio-common/../sysdeps/gnu/errlist.c:7
msgid "Success"
msgstr "Succes"
msgid "Terminated"
msgstr "Getermineerd"
+#. 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 "Tekstbestand in gebruik"
-msgid "Too many levels of remote in path"
-msgstr "Te veel nivo's van `remote' in path"
+#: stdio-common/../sysdeps/gnu/errlist.c:694
+msgid "Timer expired"
+msgstr "Timer afgelopen"
+#. 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 "Te veel nivo's van symbolische verwijzingen"
+#. 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 "Te veel verwijzingen"
+#. 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 "Te veel open bestanden"
+#. 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 "Te veel geopende bestanden op systeem"
+#. 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 "Te veel processen"
-msgid "Too many references: can't splice"
-msgstr "Te veel referenties: kan niet splice (FIXME)"
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:427
+msgid "Too many references: cannot splice"
+msgstr "Te veel referenties: kan splice niet doen"
+#. 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 "Te veel gebruikers"
@@ -890,10 +1388,29 @@ msgstr "Trace/breakpoint trap (FIXME)"
msgid "Trailing backslash"
msgstr "Trailing backslash (FIXME)"
+#. 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 "Vertaler overleden (da's jammer)"
-#: catgets/gencat.c:201
+#. 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 "Er is al verbinding met het transport eindpunt"
+
+#. 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 "Er is geen verbinding met het transport eindpunt"
+
+#: catgets/gencat.c:202 db/makedb.c:197 locale/programs/locale.c:234
+#: locale/programs/localedef.c:383
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Probeer `%s --help' voor meer informatie.\n"
@@ -903,19 +1420,25 @@ msgstr "Probeer `%s --help' voor meer informatie.\n"
msgid "Trying %s...\n"
msgstr "Probeer %s...\n"
-#: ../sysdeps/mach/_strerror.c:58 string/../sysdeps/generic/_strerror.c:36
+#: inet/ruserpass.c:241
+#, c-format
+msgid "Unknown .netrc keyword %s"
+msgstr "Onbekend .netrc sleutelwoord %s"
+
+#: string/../sysdeps/generic/_strerror.c:36
+#: string/../sysdeps/mach/_strerror.c:58
msgid "Unknown error "
msgstr "Onbekende fout "
-#: resolv/herror.c:73
+#: resolv/herror.c:74
msgid "Unknown host"
msgstr "Onbekende host"
-#: resolv/herror.c:117
+#: resolv/herror.c:118
msgid "Unknown resolver error"
msgstr "Onbekende resolver fout (FIXME)"
-#: resolv/herror.c:75
+#: resolv/herror.c:76
msgid "Unknown server error"
msgstr "Onbekende server fout (FIXME)"
@@ -944,10 +1467,15 @@ msgstr "Niet corresponderende [ of [^"
msgid "Unmatched \\{"
msgstr "Niet corresponderende \\{"
+#: posix/getconf.c:184
+#, c-format
+msgid "Unrecognized variable `%s'"
+msgstr "Onbekende variabele `%s'"
+
msgid "Urgent I/O condition"
msgstr "Dringende I/O conditie"
-#: catgets/gencat.c:204
+#: catgets/gencat.c:205
#, c-format
msgid ""
"Usage: %s [OPTION]... -o OUTPUT-FILE [INPUT-FILE]...\n"
@@ -960,6 +1488,7 @@ 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 ""
"Gebruik: %s [OPTIE]... -o UITVOER-BESTAND [INVOER-BESTAND]...\n"
" %s [OPTIE]... [UITVOER-BESTAND [INVOER-BESTAND]...]\n"
@@ -969,17 +1498,108 @@ msgstr ""
" --new gebruik niet een bestaande catalog, maak een nieuwe\n"
" -o, --output=NAAM schrijf uitvoer naar bestand NAAM\n"
" -V, --version toon versie-informatie en be\\353indig programma\n"
-"Als INVOER-BESTAND is -, lees invoer uit standardinvoer. Als UITVOER-BESTAND\n"
+"Als INVOER-BESTAND is -, lees invoer uit standardinvoer. Als "
+"UITVOER-BESTAND\n"
"is -, schrijf uitvoer naar standaarduitvoer.\n"
-#: posix/getconf.c:81
+#: db/makedb.c:200
+#, 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"
+"Report bugs to <bug-glibc@prep.ai.mit.edu>.\n"
+msgstr ""
+"Gebruik: %s [OPTIE]... INVOER-BESTAND UITVOER-BESTAND\n"
+" %s [OPTIE]... -o UITVOER-BESTAND [INVOER-BESTAND]\n"
+" %s [OPTIE]... -u INVOER-BESTAND\n"
+"Verplichte argument bij lange opties zijn ook verplicht bij korte opties.\n"
+" -f, --fold-case converteer sleutel naar kleine letters\n"
+" -h, --help toon hulp-tekst en beëindig programma\n"
+" -o, --output=NAAM schrijf uitvoer naar bestand NAAM\n"
+" --quiet toon geen meldingen bij aanmaken database\n"
+" -V, --version toon versie-informatie en beëindig programma\n"
+"Als INVOER-BESTAND is -, lees invoer uit standardinvoer.\n"
+"Meld fouten via <bug-glibc@prep.ai.mit.edu>.\n"
+
+#: locale/programs/localedef.c:386
+#, 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"
+"Report bugs to <bug-glibc@prep.ai.mit.edu>.\n"
+msgstr ""
+"Aanroep: %s [OPTIE]... naam\n"
+"Verplichte argumenten bij lange opties zijn ook verplicht bij korte opties.\n"
+" -c, --force maak uitvoer zelfs als waarschuwing werden gegeven\n"
+" -h, --help toon hulptekst en beëindig programma\n"
+" -f, --charmap=BESTAND symbolische karakternamen gedefinieerd in BESTAND\n"
+" -i, --inputfile=BESTAND bron definities zijn gevonden in BESTAND\n"
+" -u, --code-set-name=NAAM specificeer codeset voor mappen ISO 10646 elementen\n"
+" -v, --verbose toon meer meldigen\n"
+" -V, --version toon versie-informatie en beëindig programma\n"
+" --posix volg de POSIX afspraken\n"
+"\n"
+"Directory van systeem voor karaktermappen: %s\n"
+" locale bestanden: %s\n"
+"Meld fouten aan <bug-glibc@prep.ai.mit.edu>.\n"
+
+#: locale/programs/locale.c:237
+#, 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"
+"Report bugs to <bug-glibc@prep.ai.mit.edu>.\n"
+msgstr ""
+"Aanroep: %s [OPTIE]... naam\n"
+"Verplichte argumenten bij lange opties zijn ook verplicht bij korte opties.\n"
+" -h, --help toon hulptekst en beëindig programma\n"
+" -V, --version toon versie-informatie en beëindig programma\n"
+"\n"
+" -a, --all-locales toon namen van beschikbare localen\n"
+" -m, --charmaps toon namen van beschikbare karaktermappen\n"
+"\n"
+" -c, --category-name toon namen van geselecteerde categorien\n"
+" -k, --keyword-name toon namen van geselecteerde sleutelwoorden\n"
+"Meld fouten aan <bug-glibc@prep.ai.mit.edu>.\n"
+
+#: posix/getconf.c:131
#, c-format
msgid "Usage: %s variable_name [pathname]\n"
msgstr "Gebruik: %s variabele_naam [padnaam]\n"
#: sunrpc/rpcinfo.c:609
msgid "Usage: rpcinfo [ -n portnum ] -u host prognum [ versnum ]\n"
-msgstr "Gebruik: rpcinfo [ -n portnummer ] -u host prognummer [ versienummer ]\n"
+msgstr ""
+"Gebruik: rpcinfo [ -n portnummer ] -u host prognummer [ versienummer ]\n"
msgid "User defined signal 1"
msgstr "Gebruiker gedefinieerd signaal 1"
@@ -987,22 +1607,62 @@ msgstr "Gebruiker gedefinieerd signaal 1"
msgid "User defined signal 2"
msgstr "Gebruiker gedefinieerd signaal 2"
+#: stdio-common/../sysdeps/gnu/errlist.c:742
+msgid "Value too large for defined data type"
+msgstr "Waarde te groot voor gedefinieerd data type"
+
msgid "Virtual timer expired"
msgstr "Virtuele timer afgelopen (FIXME)"
-#: time/zic.c:1740
+#: time/zic.c:1845
msgid "Wild result from command execution"
msgstr "Wild resultaat afkomstig uit commando uitvoer"
msgid "Window changed"
msgstr "Venster veranderd"
+#. TRANS You did @strong{what}?
+#: stdio-common/../sysdeps/gnu/errlist.c:596
msgid "You really blew it this time"
msgstr "Deze keer heb je het echt goed verknalt"
-#: time/zic.c:1013
+#: time/zic.c:1051
msgid "Zone continuation line end time is not after end time of previous line"
-msgstr "Zone continuatie regel einde tijd is niet an einde tijd van voorgaande regel"
+msgstr ""
+"Zone continuatie regel einde tijd is niet an einde tijd van voorgaande regel"
+
+#: 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' definitie eindigt niet met `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' moet de laatste ingang zijn `%s' veld in `%s' categorie"
+
+#: locale/programs/ld-collate.c:1651
+msgid "`...' must only be used in `...' and `UNDEFINED' entries"
+msgstr "`...' mag alleen gebruikt worden `...' en `UNDEFINED' ingangen"
+
+#: locale/programs/locfile.c:538
+msgid "`from' expected after first argument to `collating-element'"
+msgstr "verwacht `from' na eerste argument (??)to `collating-element'"
+
+#: locale/programs/ld-collate.c:1108
+msgid ""
+"`from' string in collation element declaration contains unknown character"
+msgstr ""
+
+#: locale/programs/charmap.c:267
+#, c-format
+msgid "argument to <%s> must be a single character"
+msgstr "argument van <%s> moet één karakter zijn"
+
+#: locale/programs/locfile.c:215
+#, c-format
+msgid "argument to `%s' must be a single character"
+msgstr "argument van `%s' moet één karakter zijn"
#: sunrpc/rpc_parse.c:326
msgid "array declaration expected"
@@ -1016,19 +1676,23 @@ msgstr ""
msgid "bad .rhosts owner"
msgstr "onjuiste .rhosts eigenaar"
-#: time/zic.c:1136
+#: locale/programs/charmap.c:212 locale/programs/locfile.c:209
+msgid "bad argument"
+msgstr "onjuist argument"
+
+#: time/zic.c:1173
msgid "blank FROM field on Link line"
msgstr "leeg FROM veld op `Link' regel"
-#: time/zic.c:1140
+#: time/zic.c:1177
msgid "blank TO field on Link line"
msgstr "leeg TO veld op `Link' regel"
-#: malloc/mcheck.c:174
+#: malloc/mcheck.c:189
msgid "block freed twice"
msgstr "blok is twee keer vrijgegeven"
-#: malloc/mcheck.c:177
+#: malloc/mcheck.c:192
msgid "bogus mcheck_status, library is buggy"
msgstr "bogus mcheck_status, bibliotheek is maar zozo"
@@ -1044,25 +1708,149 @@ msgstr ""
msgid "cache_set: victim not found"
msgstr "cache_set: slachtoffer niet gevonden"
+#: time/zic.c:1686
+msgid "can't determine time zone abbrevation to use just after until time"
+msgstr "kan afkorting tijdzone (te gebruiken na tijdsaanduiding) niet achterhalen"
+
#: sunrpc/svc_simple.c:64
#, c-format
msgid "can't reassign procedure number %d\n"
msgstr "kan procedure nummer %d niet opnieuw toewijzen\n"
-#: catgets/gencat.c:248
+#: locale/programs/localedef.c:281
+#, c-format
+msgid "cannot `stat' locale file `%s'"
+msgstr "kan niet `stat' locale bestand `%s'"
+
+#: locale/programs/ld-collate.c:1313
+#, c-format
+msgid "cannot insert collation element `%.*s'"
+msgstr "kan collation element `%.*s' niet invoegen"
+
+#: locale/programs/ld-collate.c:1492 locale/programs/ld-collate.c:1497
+msgid "cannot insert into result table"
+msgstr "kan niet invoegen in resultaat tabel"
+
+#: locale/programs/ld-collate.c:1165 locale/programs/ld-collate.c:1207
+#, c-format
+msgid "cannot insert new collating symbol definition: %s"
+msgstr ""
+
+#: db/makedb.c:149
+#, c-format
+msgid "cannot open database file `%s': %s"
+msgstr "kan database bestand `%s' niet openen: %s"
+
+#: catgets/gencat.c:250 db/makedb.c:168
#, c-format
msgid "cannot open input file `%s'"
msgstr "kan invoerbestand `%s' niet openen"
-#: catgets/gencat.c:753 gencat.c:794
+#: locale/programs/localedef.c:215
+#, c-format
+msgid "cannot open locale definition file `%s'"
+msgstr "kan locale definitie bestand `%s' niet openen"
+
+#: catgets/gencat.c:755 catgets/gencat.c:796 db/makedb.c:177
#, c-format
msgid "cannot open output file `%s'"
msgstr "kan uitvoerbestand `%s' niet openen"
+#: locale/programs/locfile.c:986
+#, c-format
+msgid "cannot open output file `%s' for category `%s'"
+msgstr "kan uitvoerbestand `%s' niet openen voor categorie `%s'"
+
+#: locale/programs/ld-collate.c:1359
+msgid "cannot process order specification"
+msgstr ""
+
+#: locale/programs/locale.c:293
+#, c-format
+msgid "cannot read character map directory `%s'"
+msgstr "kan karakter map directory `%s' niet lezen"
+
+#: locale/programs/locale.c:268
+#, c-format
+msgid "cannot read locale directory `%s'"
+msgstr "kan locale directory `%s' niet lezen"
+
+#: locale/programs/localedef.c:303
+#, c-format
+msgid "cannot read locale file `%s'"
+msgstr "kan locale bestand `%s' niet lezen"
+
+#: locale/programs/localedef.c:328
+#, c-format
+msgid "cannot write output files to `%s'"
+msgstr "kan uitvoer niet schrijven naar `%s'"
+
+#: locale/programs/localedef.c:371
+msgid "category data requested more than once: should not happen"
+msgstr "categorie data meer dan eens gevraagd: zou niet mogen gebeuren"
+
+#: locale/programs/ld-ctype.c:264
+#, c-format
+msgid "character %s'%s' in class `%s' must be in class `%s'"
+msgstr "karakter %s'%s' in klasse `%s' hoort in klasse `%s'"
+
+#: locale/programs/ld-ctype.c:288
+#, c-format
+msgid "character %s'%s' in class `%s' must not be in class `%s'"
+msgstr "karakter %s'%s' in klasse `%s' hoort niet in klasse `%s'"
+
+#: locale/programs/ld-ctype.c:309
+msgid "character <SP> not defined in character map"
+msgstr "karakter <SP> niet gedefinieerd in karaktermap"
+
+#: locale/programs/ld-ctype.c:1140
+#, c-format
+msgid "character `%c' not defined while needed as default value"
+msgstr "karakter `%c' niet gedefinieerd maar nodig als standaard waarde"
+
+#: 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
+msgid "character `%s' not defined while needed as default value"
+msgstr "karakter `%s' niet gedefinieerd maar nodig als standaard waarde"
+
+#: locale/programs/ld-ctype.c:800
+#, c-format
+msgid "character class `%s' already defined"
+msgstr "karakterklasse `%s' is al gedefinieerd"
+
+#: locale/programs/ld-ctype.c:832
+#, c-format
+msgid "character map `%s' already defined"
+msgstr "karaktermap `%s' is al gedefinieerd"
+
+#: locale/programs/charmap.c:76
+#, c-format
+msgid "character map file `%s' not found"
+msgstr "karaktermapbestand `%s' niet gevonden"
+
#: sunrpc/clnt_raw.c:106
msgid "clnt_raw.c - Fatal header serialization error."
msgstr ""
+#: locale/programs/ld-collate.c:1328
+#, c-format
+msgid "collation element `%.*s' appears more than once: ignore line"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1346
+msgid "collation symbol `.*s' appears more than once: ignore line"
+msgstr ""
+
+#: locale/programs/locfile.c:522
+#, c-format
+msgid "collation symbol expected after `%s'"
+msgstr ""
+
#: inet/rcmd.c:112
#, c-format
msgid "connect to address %s: "
@@ -1076,11 +1864,11 @@ msgstr "verwacht konstante of identifier (FIXME)"
msgid "couldn't create an rpc server\n"
msgstr "kan geen rpc server aanmaken\n"
-#: sunrpc/portmap.c:122
+#: sunrpc/portmap.c:121
msgid "couldn't do tcp_create\n"
msgstr "kan niet tcp_create doen\n"
-#: sunrpc/portmap.c:100
+#: sunrpc/portmap.c:99
msgid "couldn't do udp_create\n"
msgstr "kan niet udp_create doen\n"
@@ -1089,27 +1877,54 @@ msgstr "kan niet udp_create doen\n"
msgid "couldn't register prog %d vers %d\n"
msgstr "kan programma %d versie %d niet registreren\n"
+#: locale/programs/charmap.c:86
+#, c-format
+msgid "default character map file `%s' not found"
+msgstr "standaard karaktermapbestand `%s' niet gevonden"
+
#: sunrpc/rpc_parse.c:77
msgid "definition keyword expected"
msgstr "verwacht definitie keyword"
-#: catgets/gencat.c:367
+#: locale/programs/charset.c:87 locale/programs/charset.c:132
+#, c-format
+msgid "duplicate character name `%s'"
+msgstr "dubbele karakternaam `%s'"
+
+#: locale/programs/ld-collate.c:1140
+msgid "duplicate collating element definition"
+msgstr "dubbele collating element definitie"
+
+#: locale/programs/ld-collate.c:1286
+#, c-format
+msgid "duplicate definition for character `%.*s'"
+msgstr "dubbele definietie voor karakter `%.*s'"
+
+#: db/makedb.c:295
+msgid "duplicate key"
+msgstr "dubbele sleutel"
+
+#: catgets/gencat.c:369
msgid "duplicate set definition"
msgstr "tweede set definitie"
-#: time/zic.c:928
+#: time/zic.c:966
#, c-format
msgid "duplicate zone name %s (file \"%s\", line %d)"
msgstr "dubbele zonenaam %s (bestand \"%s\", regel %d)"
-#: catgets/gencat.c:530
+#: catgets/gencat.c:532
msgid "duplicated message identifier"
msgstr "gedupliceerde meldings identifier"
-#: catgets/gencat.c:503
+#: catgets/gencat.c:505
msgid "duplicated message number"
msgstr "gedupliceerd meldingnummer"
+#: locale/programs/ld-collate.c:1695
+msgid "empty weight name: line ignored"
+msgstr "lege gewicht naam: regel genegeerd"
+
#: sunrpc/svc_udp.c:344
msgid "enablecache: cache already enabled"
msgstr "enablecache: cache is al mogelijk"
@@ -1126,6 +1941,22 @@ msgstr ""
msgid "enablecache: could not allocate cache fifo"
msgstr ""
+#: locale/programs/ld-collate.c:1418
+msgid "end point of ellipsis range is bigger then start"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1148
+msgid "error while inserting collation element into hash table"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1160
+msgid "error while inserting to hash table"
+msgstr "fout tijdens bij invoegen in hash tabel"
+
+#: locale/programs/locfile.c:465
+msgid "expect string argument for `copy'"
+msgstr "verwacht string argument voor `copy'"
+
#: sunrpc/rpc_util.c:300
#, c-format
msgid "expected '%s'"
@@ -1141,7 +1972,7 @@ msgstr "verwachte '%s' of '%s'"
msgid "expected '%s', '%s' or '%s'"
msgstr "verwachte '%s', '%s' of '%s'"
-#: time/zic.c:819
+#: time/zic.c:857
msgid "expected continuation line not found"
msgstr "verwachte continuation regel niet gevonden (FIXME)"
@@ -1149,95 +1980,197 @@ msgstr "verwachte continuation regel niet gevonden (FIXME)"
msgid "expected type specifier"
msgstr "verwachte type specificatie"
+#: locale/programs/locfile.c:1010
+#, c-format
+msgid "failure while writing data for category `%s'"
+msgstr "gefaald bij schrijven data voor categorie `%s'"
+
+#: locale/programs/ld-monetary.c:154 locale/programs/ld-numeric.c:95
+#, c-format
+msgid "field `%s' in category `%s' not defined"
+msgstr "veld `%s' uit categorie `%s' niet gedefinieerd"
+
+#: locale/programs/ld-messages.c:81 locale/programs/ld-messages.c:102
+#, c-format
+msgid "field `%s' in category `%s' undefined"
+msgstr "veld `%s' uit category `%s' ongedefinieerd"
+
+#: locale/programs/locfile.c:547
+msgid "from-value of `collating-element' must be a string"
+msgstr ""
+
+#: locale/programs/linereader.c:328
+msgid "garbage at end of character code specification"
+msgstr "rommel aan het einde van de karakter code specificatie"
+
+#: locale/programs/linereader.c:214
+msgid "garbage at end of digit"
+msgstr "rommel aan het einde van digit"
+
#: sunrpc/get_myaddr.c:73
msgid "get_myaddress: ioctl (get interface configuration)"
msgstr "get_myaddress: ioctl (haal interface configuratie op)"
-#: time/zic.c:1113
+#: time/zic.c:1150
msgid "illegal CORRECTION field on Leap line"
msgstr "ongeldige CORRECTION veld op schrikkel regel"
-#: time/zic.c:1117
+#: time/zic.c:1154
msgid "illegal Rolling/Stationary field on Leap line"
msgstr "ongeldig Rolling/Stationary veld op schrikkelregel"
+#: locale/programs/ld-collate.c:1766
+msgid "illegal character constant in string"
+msgstr "ongeldige karakterkonstante in string"
+
#: sunrpc/rpc_scan.c:281
msgid "illegal character in file: "
msgstr "ongeldig karakter in bestand: "
+#: locale/programs/ld-collate.c:1115
+msgid "illegal collation element"
+msgstr ""
+
+#: locale/programs/charmap.c:196
+msgid "illegal definition"
+msgstr "ongeldige definitie"
+
+#: locale/programs/charmap.c:349
+msgid "illegal encoding given"
+msgstr "ongeldige codering gegeven"
+
+#: locale/programs/linereader.c:546
+msgid "illegal escape sequence at end of string"
+msgstr ""
+
+#: locale/programs/charset.c:101
+msgid "illegal names for character range"
+msgstr "ongeldige namen voor karakter range"
+
#: sunrpc/rpc_parse.c:146
msgid "illegal result type"
msgstr "ongeldig resultaat type"
-#: catgets/gencat.c:340 gencat.c:417
+#: catgets/gencat.c:342 catgets/gencat.c:419
msgid "illegal set number"
msgstr "ongeldig set nummer"
-#: time/zic.c:777
+#: locale/programs/ld-ctype.c:806
+#, c-format
+msgid "implementation limit: no more than %d character classes allowed"
+msgstr "implementatielimiet: niet meer dan %d karakterklassen toegestaan"
+
+#: locale/programs/ld-ctype.c:838
+#, c-format
+msgid "implementation limit: no more than %d character maps allowed"
+msgstr "implementatielimiet: niet meer dan %d karaktermappen toegestaan"
+
+#: db/makedb.c:151
+msgid "incorrectly formatted file"
+msgstr "onjuist geformateerd bestand"
+
+#: time/zic.c:815
msgid "input line of unknown type"
msgstr "invoer regel van onbekend type"
-#: time/zic.c:984
+#: time/zic.c:1734
+msgid "internal error - addtype called with bad isdst"
+msgstr "interne fout - `addtype' aangeroepen met onjuiste `isdst'"
+
+#: time/zic.c:1742
+msgid "internal error - addtype called with bad ttisgmt"
+msgstr "interne fout - `addtype' aangeroepen met onjuiste `ttisgmt'"
+
+#: time/zic.c:1738
+msgid "internal error - addtype called with bad ttisstd"
+msgstr "interne fout - `addtype' aangeroepen met onjuiste `ttisstd'"
+
+#: locale/programs/ld-ctype.c:300
+#, c-format
+msgid "internal error in %s, line %u"
+msgstr "interne fout in %s, regel %u"
+
+#: time/zic.c:1022
msgid "invalid GMT offset"
msgstr "onjuiste GMT offset"
-#: time/zic.c:987
+#: time/zic.c:1025
msgid "invalid abbreviation format"
msgstr "onjuist afkortingsformaat"
-#: time/zic.c:1078 zic.c:1277 zic.c:1291
+#: time/zic.c:1115 time/zic.c:1314 time/zic.c:1328
msgid "invalid day of month"
msgstr "ongeldige dag van de maand"
-#: time/zic.c:1236
+#: time/zic.c:1273
msgid "invalid ending year"
msgstr "ongeldig ending jaar (FIXME)"
-#: time/zic.c:1050
+#: time/zic.c:1087
msgid "invalid leaping year"
msgstr "ongeldig schrikkeljaar"
-#: time/zic.c:1065 zic.c:1168
+#: time/zic.c:1102 time/zic.c:1205
msgid "invalid month name"
msgstr "ongeldige maandnaam"
-#: time/zic.c:883
+#: time/zic.c:921
msgid "invalid saved time"
msgstr "ongeldig bewaarde tijd"
-#: time/zic.c:1216
+#: time/zic.c:1253
msgid "invalid starting year"
msgstr "ongeldig starting jaar (FIXME)"
-#: time/zic.c:1094 zic.c:1196
+#: time/zic.c:1131 time/zic.c:1233
msgid "invalid time of day"
msgstr "ongeldige tijd van de dag"
-#: time/zic.c:1282
+#: time/zic.c:1319
msgid "invalid weekday name"
msgstr "ongeldig weekdagnaam"
-#: time/zic.c:757
+#: locale/programs/ld-collate.c:1411
+msgid "line after ellipsis must contain character definition"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1390
+msgid "line before ellipsis does not contain definition for character constant"
+msgstr ""
+
+#: time/zic.c:795
msgid "line too long"
msgstr "regel te lang"
-#: catgets/gencat.c:598
+#: locale/programs/localedef.c:275
+#, c-format
+msgid "locale file `%s', used in `copy' statement, not found"
+msgstr "locale bestand `%s', gebruikt in `copy' statement, niet gevonden"
+
+#: catgets/gencat.c:600
msgid "malformed line ignored"
msgstr "verkeerde regel genegeerd"
-#: malloc/mcheck.c:168
+#: malloc/mcheck.c:183
msgid "memory clobbered before allocated block"
msgstr "geheugen clobbered voordat blok gereserveerd was (FIXME)"
-#: malloc/mcheck.c:171
+#: malloc/mcheck.c:186
msgid "memory clobbered past end of allocated block"
msgstr ""
-#: malloc/mcheck.c:165
+#: 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
+msgid "memory exhausted"
+msgstr "geen geheugen meer beschikbaar"
+
+#: malloc/mcheck.c:180
msgid "memory is consistent, library is buggy"
msgstr "geheugen is consistent, bibliotheek is buggy"
-#: time/zic.c:878
+#: time/zic.c:916
msgid "nameless rule"
msgstr "naamloze regel"
@@ -1246,37 +2179,78 @@ msgstr "naamloze regel"
msgid "never registered prog %d\n"
msgstr "nooit geregistreerd programma %d\n"
-#: rpc_parse.c:313 sunrpc/rpc_parse.c:305
+#: sunrpc/rpc_parse.c:305 sunrpc/rpc_parse.c:313
msgid "no array-of-pointer declarations -- use typedef"
msgstr "geen array-of-pointer declaraties -- gebruik typedef"
-#: time/zic.c:1955
+#: 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 ""
+
+#: time/zic.c:2060
msgid "no day in month matches rule"
-msgstr "geen dag in de maand voldoet aan regel"
+msgstr "geen enkele dag van de maand voldoet aan voorwaarde"
+
+#: locale/programs/ld-collate.c:259
+msgid "no definition of `UNDEFINED'"
+msgstr "geen definitie van `UNDEFINED'"
+
+#: locale/programs/locfile.c:479
+msgid "no other keyword shall be specified when `copy' is used"
+msgstr "geen ander sleutelwoord mag worden gespecificeerd wanneer `copy' is gebruikt"
+
+#: locale/programs/localedef.c:334
+msgid "no output file produced because warning were issued"
+msgstr "geen uitvoer bestand gemaakt omdat waarschuwingen zijn gegeven"
+
+#: locale/programs/charmap.c:315 locale/programs/charmap.c:466
+#: locale/programs/charmap.c:545
+msgid "no symbolic name given"
+msgstr "geen symbolische naam gegeven"
-#: sunrpc/portmap.c:452
+#: 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 "geen symbolisch naam gegeven voor einde bereik"
+
+#: locale/programs/ld-collate.c:244
+#, c-format
+msgid "no weight defined for symbol `%s'"
+msgstr "geen gewicht gedefinieerd voor symbool `%s'"
+
+#: locale/programs/charmap.c:430
+msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
+msgstr "alleen WIDTH definities zijn toegestaan na de CHARMAP definitie"
+
+#: sunrpc/portmap.c:451
msgid "portmap CALLIT: cannot fork.\n"
msgstr "portmap CALLIT: kan niet `fork'en.\n"
-#: portmap.c:117 sunrpc/portmap.c:95
+#: sunrpc/portmap.c:94 sunrpc/portmap.c:116
msgid "portmap cannot bind"
msgstr "portmap kan niet bind (FIXME)"
-#: portmap.c:113 sunrpc/portmap.c:87
+#: sunrpc/portmap.c:86 sunrpc/portmap.c:112
msgid "portmap cannot create socket"
msgstr "portmap kan geen socket aanmaken"
-#: rpc_scan.c:464 sunrpc/rpc_scan.c:456
+#: sunrpc/rpc_scan.c:456 sunrpc/rpc_scan.c:464
msgid "preprocessor error"
msgstr "voorbewerkingsfout"
-#: rpcinfo.c:350 sunrpc/rpcinfo.c:222
+#: db/makedb.c:311
+#, c-format
+msgid "problems while reading `%s'"
+msgstr "problemem tijdens lezen `%s'"
+
+#: sunrpc/rpcinfo.c:222 sunrpc/rpcinfo.c:350
#, c-format
msgid "program %lu is not available\n"
msgstr "programma %lu is niet beschikbaar\n"
-#: 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 "programma %lu versie %lu is niet beschikbaar\n"
@@ -1304,7 +2278,7 @@ msgstr "rcmd: schrijf (setting up stderr): %s (FIXME)\n"
msgid "registerrpc: out of memory\n"
msgstr "registerrpc: geen geheugen meer beschikbaar\n"
-#: time/zic.c:1690
+#: time/zic.c:1795
msgid "repeated leap second moment"
msgstr "herhalend schrikkelseconde moment"
@@ -1336,10 +2310,14 @@ msgstr ""
msgid "rpcinfo: can't contact portmapper: "
msgstr ""
-#: sunrpc/portmap.c:138
+#: sunrpc/portmap.c:137
msgid "run_svc returned unexpectedly\n"
msgstr "run_svc kwam onverwacht terug (FIXME)\n"
+#: time/zic.c:709 time/zic.c:711
+msgid "same rule name in multiple files"
+msgstr "zelfde regel naam in meerdere bestanden"
+
#: inet/rcmd.c:158
msgid "select: protocol failure in circuit setup\n"
msgstr ""
@@ -1348,19 +2326,28 @@ msgstr ""
msgid "socket: protocol failure in circuit setup.\n"
msgstr ""
-#: time/zic.c:742
+#: locale/programs/locfile.c:600
+msgid "sorting order `forward' and `backward' are mutually exclusive"
+msgstr "sorteervolgorde `forward' en `backward' zijn niet eenduidig"
+
+#: 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 "specificatie van sorteergewich voor collation symbool heeft geen zin"
+
+#: time/zic.c:780
msgid "standard input"
msgstr "standaardinvoer"
-#: time/zdump.c:259
+#: time/zdump.c:260
msgid "standard output"
msgstr "standaarduitvoer"
-#: time/zic.c:1240
+#: time/zic.c:1277
msgid "starting year greater than ending year"
msgstr "beginjaar is groter dan eindejaar"
-#: sunrpc/svc_tcp.c:199 svc_tcp.c:204
+#: sunrpc/svc_tcp.c:199 sunrpc/svc_tcp.c:204
msgid "svc_tcp: makefd_xprt: out of memory\n"
msgstr ""
@@ -1372,7 +2359,7 @@ msgstr ""
msgid "svctcp_.c - udp socket creation problem"
msgstr ""
-#: sunrpc/svc_tcp.c:154 svc_tcp.c:161
+#: sunrpc/svc_tcp.c:154 sunrpc/svc_tcp.c:161
msgid "svctcp_create: out of memory\n"
msgstr "svctcp_create: geen geheugen meer beschikbaar\n"
@@ -1384,53 +2371,196 @@ msgstr ""
msgid "svcudp_create: socket creation problem"
msgstr ""
-#: 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 ""
+
+#: locale/programs/ld-collate.c:1063
+#, c-format
+msgid ""
+"symbol for multicharacter collating element `%.*s' duplicates other element "
+"definition"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1199
+#, c-format
+msgid ""
+"symbol for multicharacter collating element `%.*s' duplicates other symbol "
+"definition"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1072
+#, c-format
+msgid ""
+"symbol for multicharacter collating element `%.*s' duplicates symbol "
+"definition"
+msgstr ""
+
+#: 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 ""
+
+#: 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 "syntactische fout in %s definitie: %s"
+
+#: locale/programs/locfile.c:620
+msgid "syntax error in `order_start' directive"
+msgstr "syntactische fout in `order_start' directief"
+
+#: locale/programs/locfile.c:362
+msgid "syntax error in character class definition"
+msgstr "syntactische fout in karakter klasse definitie"
+
+#: locale/programs/locfile.c:420
+msgid "syntax error in character conversion definition"
+msgstr "syntactische fout in karakter conversie definitie"
+
+#: locale/programs/locfile.c:662
+msgid "syntax error in collating order definition"
+msgstr ""
+
+#: locale/programs/locfile.c:512
+msgid "syntax error in collation definition"
+msgstr ""
+
+#: locale/programs/locfile.c:335
+msgid "syntax error in definition of LC_CTYPE category"
+msgstr "syntactische fout in definitie van LC_CTYPE category"
+
+#: locale/programs/locfile.c:278
+msgid "syntax error in definition of new character class"
+msgstr "syntactische fout in definitie van nieuwe karakterklasse"
+
+#: locale/programs/locfile.c:288
+msgid "syntax error in definition of new character map"
+msgstr "syntactische fout in definitie van nieuwe karaktermap"
+
+#: locale/programs/locfile.c:873
+msgid "syntax error in message locale definition"
+msgstr "syntactische fout in melding locale definitie"
+
+#: locale/programs/locfile.c:784
+msgid "syntax error in monetary locale definition"
+msgstr "syntactische fout in monetaire locale definitie"
+
+#: locale/programs/locfile.c:811
+msgid "syntax error in numeric locale definition"
+msgstr "syntactische fout in numerieke locale definitie"
+
+#: locale/programs/locfile.c:722
+msgid "syntax error in order specification"
+msgstr "syntactische fout in volgorde specificatie"
+
+#: locale/programs/charmap.c:195 locale/programs/charmap.c:211
+#, c-format
+msgid "syntax error in prolog: %s"
+msgstr "syntactische fout in prolog: %s"
+
+#: locale/programs/locfile.c:849
+msgid "syntax error in time locale definition"
+msgstr "syntactische fout in tijd locale definitie"
+
+#: locale/programs/locfile.c:255
+msgid "syntax error: not inside a locale definition section"
+msgstr "syntactische fout: niet in een locale definitie deel"
+
+#: catgets/gencat.c:371 catgets/gencat.c:507 catgets/gencat.c:534
msgid "this is the first definition"
msgstr "dit is de eerste definitie"
-#: time/zic.c:1083
+#: time/zic.c:1120
msgid "time before zero"
msgstr "tijd voor nul"
-#: time/zic.c:1091 zic.c:1855 zic.c:1874
+#: time/zic.c:1128 time/zic.c:1960 time/zic.c:1979
msgid "time overflow"
msgstr "tijd overflow"
+#: locale/programs/charset.c:44
+msgid "too few bytes in character encoding"
+msgstr "te weinig bytes in karaktercodering"
+
+#: locale/programs/charset.c:46
+msgid "too many bytes in character encoding"
+msgstr "te veel bytes in karaktercodering"
+
+#: locale/programs/locales.h:72
+msgid "too many character classes defined"
+msgstr "te veel karakterklassen gedefinieerd"
+
#: sunrpc/rpc_util.c:285
msgid "too many files!\n"
msgstr "te veel bestanden!\n"
-#: time/zic.c:1684
+#: time/zic.c:1789
msgid "too many leap seconds"
msgstr "te veel schrikkelseconden"
-#: time/zic.c:1656
+#: time/zic.c:1761
msgid "too many local time types"
msgstr "te veel lokale tijd typen"
-#: time/zic.c:1622
+#: time/zic.c:1715
msgid "too many transitions?!"
msgstr "te veel overgangen?!"
-#: time/zic.c:1978
+#: locale/programs/ld-collate.c:1622
+msgid "too many weights"
+msgstr "te veel gewichten"
+
+#: time/zic.c:2083
msgid "too many, or too long, time zone abbreviations"
msgstr "te veel, of te lange, tijdzone afkortingen"
+#: locale/programs/linereader.h:146
+msgid "trailing garbage at end of line"
+msgstr "rommel aan het einde van de regel"
+
#: sunrpc/svc_simple.c:132
#, c-format
msgid "trouble replying to prog %d\n"
msgstr "moeite met antwoorden naar programma %d\n"
-#: time/zic.c:1247
+#: locale/programs/ld-collate.c:1382
+msgid "two lines in a row containing `...' are not allowed"
+msgstr "twee regels in een rij bevattende `...' zijn niet toegestaan"
+
+#: time/zic.c:1284
msgid "typed single year"
msgstr "typed enkel jaar (FIMXE)"
-#: catgets/gencat.c:466
+#: locale/programs/charmap.c:617 locale/programs/charmap.c:628
+#, c-format
+msgid "unknown character `%s'"
+msgstr "onbekend karakter `%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
+msgid "unknown character in field `%s' of category `%s'"
+msgstr "onbekend karakter in veld `%s' uit category `%s'"
+
+#: locale/programs/locfile.c:585
+msgid "unknown collation directive"
+msgstr ""
+
+#: catgets/gencat.c:468
#, c-format
msgid "unknown directive `%s': line ignored"
msgstr "onbekende richtlijn `%s': regel genegeerd (FIXME)"
-#: catgets/gencat.c:445
+#: catgets/gencat.c:447
#, c-format
msgid "unknown set `%s'"
msgstr "onbekende set `%s'"
@@ -1438,27 +2568,93 @@ msgstr "onbekende set `%s'"
msgid "unknown signal"
msgstr "onbekend signaal"
-#: time/zic.c:714
+#: 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 "onbekend symbool `%.*s': regel genegeerd"
+
+#: time/zic.c:752
msgid "unruly zone"
msgstr "regelloze zone"
-#: catgets/gencat.c:950
+#: catgets/gencat.c:952
msgid "unterminated message"
msgstr "niet getermineerde melding"
+#: locale/programs/linereader.c:515 locale/programs/linereader.c:550
+msgid "unterminated string"
+msgstr "niet getermineerde string"
+
#: sunrpc/rpc_scan.c:319
msgid "unterminated string constant"
msgstr "niet getermineerde string konstante"
+#: locale/programs/linereader.c:385
+msgid "unterminated symbolic name"
+msgstr "niet getermineerde symbolische naam"
+
+#: locale/programs/ld-collate.c:1684
+msgid "unterminated weight name"
+msgstr "niet getermineerde gewichtnaam"
+
+#: locale/programs/charset.c:119
+msgid "upper limit in range is not smaller then lower limit"
+msgstr "grootste limiet in bereik is niet kleiner dan kleinste limiet"
+
#: sunrpc/rpc_main.c:78
#, c-format
msgid "usage: %s infile\n"
msgstr "gebruik: %s invoerbestand\n"
-#: time/zic.c:1921
+#: time/zic.c:2026
msgid "use of 2/29 in non leap-year"
msgstr "gebruik van 29 februari in niet schrikkeljaar"
+#: locale/programs/charmap.c:438 locale/programs/charmap.c:492
+#, c-format
+msgid "value for %s must be an integer"
+msgstr "waarde voor %s moet een integer zijn"
+
+#: locale/programs/charmap.c:233
+#, c-format
+msgid "value for <%s> must lie between 1 and 4"
+msgstr "waarde voor <%s> moet tussen 1 en 4 liggen"
+
+#: 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 "waarde voor veld `%s' in categorie `%s' mag geen lege string zijn"
+
+#: locale/programs/charmap.c:245
+msgid "value of <mb_cur_max> must be greater than the value of <mb_cur_min>"
+msgstr "waarde van <mb_cur_max> moet groter zijn dan de waarde van <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 ""
+"waarde van veld `int_curr_symbol' in categorie `LC_MONETARY'\n"
+"korrespondeert niet met een geldige naam in ISO 4217"
+
+#: locale/programs/ld-monetary.c:133
+msgid ""
+"value of field `int_curr_symbol' in category `LC_MONETARY' has wrong length"
+msgstr ""
+"de lengte van waarde van veld `int_curr_symbol' in categorie\n"
+"`LC_MONETARY' is niet juist"
+
+#: 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 "waarden voor veld `%s' uit categorie `%s' moeten kleiner zijn dan 127"
+
+#: locale/programs/ld-monetary.c:366
+#, c-format
+msgid "values for field `%s' in category `%s' must not be zero"
+msgstr "waarden voor veld `%s' uit categorie `%s' mogen geen nul zijn"
+
#: sunrpc/rpc_parse.c:330
msgid "variable-length array declaration expected"
msgstr "verwachte variabelelengte `array' declaratie"
@@ -1471,26 +2667,38 @@ msgstr "voids enkel toegestaan in union en programma definities"
msgid "while opening UTMP file"
msgstr "bij openen UTMP bestand"
-#: catgets/gencat.c:977
+#: catgets/gencat.c:979
msgid "while opening old catalog file"
msgstr "bij openen oud catalogusbestand"
-#: time/zic.c:1041
+#: db/makedb.c:338
+msgid "while reading database"
+msgstr "bij lezen database"
+
+#: db/makedb.c:300
+msgid "while writing data base file"
+msgstr "bij schrijven databasebestand"
+
+#: db/makedb.c:130
+msgid "wrong number of arguments"
+msgstr "onjuist aantal argumenten"
+
+#: time/zic.c:1078
msgid "wrong number of fields on Leap line"
msgstr "onjuist aantal velden op schrikkelregel"
-#: time/zic.c:1132
+#: time/zic.c:1169
msgid "wrong number of fields on Link line"
msgstr "onjuist aantal velden op `Link' regel"
-#: time/zic.c:874
+#: time/zic.c:912
msgid "wrong number of fields on Rule line"
msgstr "onjuist aantal velden op `Rule' regel"
-#: time/zic.c:944
+#: time/zic.c:982
msgid "wrong number of fields on Zone continuation line"
msgstr "onjuist aantal velden op `Zone' continuation regel (FIXME)"
-#: time/zic.c:902
+#: time/zic.c:940
msgid "wrong number of fields on Zone line"
msgstr "onjuist aantal velden op `Zone' regel"
diff --git a/shlib-versions b/shlib-versions
index 5f9ed657da..4699b1f7d1 100644
--- a/shlib-versions
+++ b/shlib-versions
@@ -47,10 +47,3 @@ alpha-*-linux* libc=6
# We use libdb.so.2 for the interface in version 1.85 of the Berkeley DB code.
*-*-* libdb=2
-
-# So far libcrypt.so.0 specifies the interface of the traditional `crypt'
-# function. The libc distribution installs the stub `nocrypt' library
-# with this interface. The separate crypt distribution (which cannot be
-# legally exported from the USA) provides real DES encryption in a shared
-# library libcrypt.so.0 with the same interface.
-*-*-* libcrypt=0
diff --git a/stdio-common/Makefile b/stdio-common/Makefile
index 8c7bae9c45..e65ff70713 100644
--- a/stdio-common/Makefile
+++ b/stdio-common/Makefile
@@ -50,3 +50,9 @@ include ../Rules
CFLAGS-_itoa.c = -Wno-unused
CFLAGS-tst-printf.c = -Wno-format
+
+ifeq ($(stdio),libio)
+ifneq (,$(filter %REENTRANT, $(defines)))
+CPPFLAGS += -D_IO_MTSAFE_IO
+endif
+endif
diff --git a/stdio-common/bug3.c b/stdio-common/bug3.c
index 1684720b9f..3bb0158a21 100644
--- a/stdio-common/bug3.c
+++ b/stdio-common/bug3.c
@@ -7,8 +7,9 @@ DEFUN_VOID(main)
{
FILE *f;
int i;
+ const char filename[] = "/tmp/bugtest";
- f = fopen("/tmp/bugtest", "w+");
+ f = fopen(filename, "w+");
for (i=0; i<9000; i++)
putc ('x', f);
fseek (f, 8180L, 0);
@@ -45,6 +46,7 @@ DEFUN_VOID(main)
}
fclose(f);
+ remove(filename);
puts ("Test succeeded.");
diff --git a/stdio-common/bug4.c b/stdio-common/bug4.c
index 00abf3c502..acf5b5433b 100644
--- a/stdio-common/bug4.c
+++ b/stdio-common/bug4.c
@@ -14,6 +14,7 @@ DEFUN(main, (argc, argv),
FILE *f;
int i;
char buffer[31];
+ const char filename[] = "/tmp/bugtest";
while ((i = getopt (argc, argv, "rw")) != EOF)
switch (i)
@@ -26,7 +27,7 @@ DEFUN(main, (argc, argv),
break;
}
- f = fopen("/tmp/bugtest", "w+");
+ f = fopen(filename, "w+");
for (i=0; i<9000; i++) {
putc('x', f);
}
@@ -36,6 +37,7 @@ DEFUN(main, (argc, argv),
fread(buffer, 1, 31, f);
fwrite(buffer, 1, 31, stdout);
fclose(f);
+ remove(filename);
if (!memcmp (buffer, "Where does this text come from?", 31))
{
diff --git a/stdio-common/bug5.c b/stdio-common/bug5.c
index 18f069ae29..def73397de 100644
--- a/stdio-common/bug5.c
+++ b/stdio-common/bug5.c
@@ -17,7 +17,8 @@ DEFUN_VOID(main)
FILE *out;
static char inname[] = "/tmp/bug5.in";
static char outname[] = "/tmp/bug5.out";
- int i;
+ char *printbuf;
+ int i, result;
/* Create a test file. */
in = fopen (inname, "w+");
@@ -54,7 +55,11 @@ DEFUN_VOID(main)
puts ("There should be no further output from this test.");
fflush (stdout);
- execlp ("cmp", "cmp", inname, outname, (char *) NULL);
- perror ("execlp: cmp");
- exit (1);
+
+ asprintf (&printbuf, "cmp %s %s", inname, outname);
+ result = system (printbuf);
+ remove (inname);
+ remove (outname);
+
+ exit ((result != 0));
}
diff --git a/stdio-common/scanf7.c b/stdio-common/scanf7.c
index 386dac4d06..d5023af8a1 100644
--- a/stdio-common/scanf7.c
+++ b/stdio-common/scanf7.c
@@ -8,7 +8,7 @@ main ()
n = -1;
ret = sscanf ("1000", "%lld", &n);
- printf ("%%lld: ret: %d, n: %Ld, c: %c\n", ret, n);
+ printf ("%%lld: ret: %d, n: %Ld\n", ret, n);
if (ret != 1 || n != 1000L)
abort ();
diff --git a/stdio-common/test-popen.c b/stdio-common/test-popen.c
index b452f3f63c..a17606e503 100644
--- a/stdio-common/test-popen.c
+++ b/stdio-common/test-popen.c
@@ -58,10 +58,8 @@ DEFUN_VOID(main)
rstatus = pclose (input);
printf ("reading pclose returned %d\n", rstatus);
+ remove ("/tmp/tstpopen.tmp");
+
puts (wstatus | rstatus ? "Test FAILED!" : "Test succeeded.");
exit (wstatus | rstatus);
}
-
-
-
-
diff --git a/stdlib/test-canon.c b/stdlib/test-canon.c
index 6f0171d200..8d04bb6ba0 100644
--- a/stdlib/test-canon.c
+++ b/stdlib/test-canon.c
@@ -45,7 +45,7 @@ struct {
struct {
const char * in, * out, * resolved;
- int errno;
+ int error;
} tests[] = {
/* 0 */
{"/", "/"},
@@ -145,10 +145,10 @@ main (int argc, char ** argv)
continue;
}
- if (!tests[i].out && errno != tests[i].errno)
+ if (!tests[i].out && errno != tests[i].error)
{
printf ("%s: flunked test %d (expected errno %d, got %d)\n",
- argv[0], i, tests[i].errno, errno);
+ argv[0], i, tests[i].errno, error);
++errors;
continue;
}
diff --git a/sysdeps/libm-ieee754/e_acoshl.c b/sysdeps/libm-ieee754/e_acoshl.c
index 8af7c27aa7..7b7bea7054 100644
--- a/sysdeps/libm-ieee754/e_acoshl.c
+++ b/sysdeps/libm-ieee754/e_acoshl.c
@@ -52,17 +52,17 @@ ln2 = 6.931471805599453094287e-01L; /* 0x3FFE, 0xB17217F7, 0xD1CF79AC */
{
long double t;
u_int32_t se,i0,i1;
- EXTRACT_LDOUBLE_WORDS(se,i0,i1,x);
+ GET_LDOUBLE_WORDS(se,i0,i1,x);
if(se<0x3fff) { /* x < 1 */
return (x-x)/(x-x);
- } else if(hx >=0x401b) { /* x > 2**28 */
- if(hx >=0x7fff) { /* x is inf of NaN */
+ } else if(se >=0x401b) { /* x > 2**28 */
+ if(se >=0x7fff) { /* x is inf of NaN */
return x+x;
} else
return __ieee754_logl(x)+ln2; /* acoshl(huge)=logl(2x) */
} else if(((se-0x3fff)|i0|i1)==0) {
return 0.0; /* acosh(1) = 0 */
- } else if (hx > 0x4000) { /* 2**28 > x > 2 */
+ } else if (se > 0x4000) { /* 2**28 > x > 2 */
t=x*x;
return __ieee754_logl(2.0*x-one/(x+__ieee754_sqrtl(t-one)));
} else { /* 1<x<2 */
diff --git a/sysdeps/libm-ieee754/s_cbrtl.c b/sysdeps/libm-ieee754/s_cbrtl.c
index 03ebfe7eb8..9f45faa00c 100644
--- a/sysdeps/libm-ieee754/s_cbrtl.c
+++ b/sysdeps/libm-ieee754/s_cbrtl.c
@@ -53,7 +53,6 @@ G = 3.57142857142857150787e-01L; /* 5/14 */
long double x;
#endif
{
- int32_t hx;
long double r,s,t=0.0,w;
u_int32_t sign, se, x0, x1;
diff --git a/sysdeps/m68k/fpu/__math.h b/sysdeps/m68k/fpu/__math.h
index 4992aea561..0e3e2a3d8c 100644
--- a/sysdeps/m68k/fpu/__math.h
+++ b/sysdeps/m68k/fpu/__math.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 92, 93, 94, 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
@@ -39,30 +39,30 @@ Cambridge, MA 02139, USA. */
__m81_inline rettype \
__m81_u(func) args
+/* Define the three variants of a math function that has a direct
+ implementation in the m68k fpu. FUNC is the name for C (which will be
+ suffixed with f and l for the float and long double version, resp). OP
+ is the name of the fpu operation (without leading f). */
#define __inline_mathop(func, op) \
__m81_defun (double, func, (double __mathop_x)) \
{ \
double __result; \
__asm("f" __STRING(op) "%.x %1, %0" : "=f" (__result) : "f" (__mathop_x));\
return __result; \
- }
-
-#define __inline_mathopf(func, op) \
- __m81_defun (float, func, (float __mathop_x)) \
+ } \
+ __m81_defun (float, func##f, (float __mathop_x)) \
{ \
float __result; \
__asm("f" __STRING(op) "%.x %1, %0" : "=f" (__result) : "f" (__mathop_x));\
return __result; \
- }
-
-#define __inline_mathopl(func, op) \
- __m81_defun (long double, func, (long double __mathop_x)) \
+ } \
+ __m81_defun (long double, func##l, (long double __mathop_x)) \
{ \
long double __result; \
__asm("f" __STRING(op) "%.x %1, %0" : "=f" (__result) : "f" (__mathop_x));\
return __result; \
}
-
+
/* ieee style elementary functions */
__inline_mathop(__ieee754_acos, acos)
__inline_mathop(__ieee754_asin, asin)
@@ -74,28 +74,6 @@ __inline_mathop(__ieee754_log, logn)
__inline_mathop(__ieee754_sqrt, sqrt)
__inline_mathop(__ieee754_atanh, atanh)
-/* ieee style elementary float functions */
-__inline_mathopf(__ieee754_acosf, acos)
-__inline_mathopf(__ieee754_asinf, asin)
-__inline_mathopf(__ieee754_coshf, cosh)
-__inline_mathopf(__ieee754_sinhf, sinh)
-__inline_mathopf(__ieee754_expf, etox)
-__inline_mathopf(__ieee754_log10f, log10)
-__inline_mathopf(__ieee754_logf, logn)
-__inline_mathopf(__ieee754_sqrtf, sqrt)
-__inline_mathopf(__ieee754_atanhf, atan)
-
-/* ieee style elementary long double functions */
-__inline_mathopl(__ieee754_acosl, acos)
-__inline_mathopl(__ieee754_asinl, asin)
-__inline_mathopl(__ieee754_coshl, cosh)
-__inline_mathopl(__ieee754_sinhl, sinh)
-__inline_mathopl(__ieee754_expl, etox)
-__inline_mathopl(__ieee754_log10l, log10)
-__inline_mathopl(__ieee754_logl, logn)
-__inline_mathopl(__ieee754_sqrtl, sqrt)
-__inline_mathopl(__ieee754_atanhl, atan)
-
__inline_mathop(__atan, atan)
__inline_mathop(__cos, cos)
__inline_mathop(__sin, sin)
@@ -110,517 +88,226 @@ __inline_mathop(__log1p, lognp1)
__inline_mathop(__logb, log2)
__inline_mathop(__significand, getman)
-__inline_mathopf(__atanf, atan)
-__inline_mathopf(__cosf, cos)
-__inline_mathopf(__sinf, sin)
-__inline_mathopf(__tanf, tan)
-__inline_mathopf(__tanhf, tanh)
-__inline_mathopf(__fabsf, abs)
-__inline_mathopf(__sqrtf, sqrt)
-
-__inline_mathopf(__rintf, int)
-__inline_mathopf(__expm1f, etoxm1)
-__inline_mathopf(__log1pf, lognp1)
-__inline_mathopf(__logbf, log2)
-__inline_mathopf(__significandf, getman)
-
-__inline_mathopl(__atanl, atan)
-__inline_mathopl(__cosl, cos)
-__inline_mathopl(__sinl, sin)
-__inline_mathopl(__tanl, tan)
-__inline_mathopl(__tanhl, tanh)
-__inline_mathopl(__fabsl, abs)
-__inline_mathopl(__sqrtl, sqrt)
-
-__inline_mathopl(__rintl, int)
-__inline_mathopl(__expm1l, etoxm1)
-__inline_mathopl(__log1pl, lognp1)
-__inline_mathopl(__logbl, log2)
-__inline_mathopl(__significandl, getman)
-
-__m81_defun (double, __ieee754_remainder, (double __x, double __y))
-{
- double __result;
- __asm("frem%.x %1, %0" : "=f" (__result) : "f" (__y), "0" (__x));
- return __result;
-}
-
-__m81_defun (double, __ldexp, (double __x, int __e))
-{
- double __result;
- double __double_e = (double) __e;
- __asm("fscale%.x %1, %0" : "=f" (__result) : "f" (__double_e), "0" (__x));
- return __result;
-}
-
-__m81_defun (double, __ieee754_fmod, (double __x, double __y))
-{
- double __result;
- __asm("fmod%.x %1, %0" : "=f" (__result) : "f" (__y), "0" (__x));
- return __result;
-}
-
-__m81_inline double
-__m81_u(__frexp)(double __value, int *__expptr)
-{
- double __mantissa, __exponent;
- __asm("fgetexp%.x %1, %0" : "=f" (__exponent) : "f" (__value));
- __asm("fgetman%.x %1, %0" : "=f" (__mantissa) : "f" (__value));
- *__expptr = (int) __exponent;
- return __mantissa;
-}
-
-__m81_defun (double, __floor, (double __x))
-{
- double __result;
- unsigned long int __ctrl_reg;
- __asm __volatile__ ("fmove%.l %!, %0" : "=dm" (__ctrl_reg));
- /* Set rounding towards negative infinity. */
- __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs. */
- : "dmi" ((__ctrl_reg & ~0x10) | 0x20));
- /* Convert X to an integer, using -Inf rounding. */
- __asm __volatile__ ("fint%.x %1, %0" : "=f" (__result) : "f" (__x));
- /* Restore the previous rounding mode. */
- __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs. */
- : "dmi" (__ctrl_reg));
- return __result;
-}
-
-__m81_defun (double, __ieee754_pow, (double __x, double __y))
-{
- double __result;
- if (__x == 0.0)
- {
- if (__y <= 0.0)
- __result = 0.0 / 0.0;
- else
- __result = 0.0;
- }
- else if (__y == 0.0 || __x == 1.0)
- __result = 1.0;
- else if (__y == 1.0)
- __result = __x;
- else if (__y == 2.0)
- __result = __x * __x;
- else if (__x == 10.0)
- __asm("ftentox%.x %1, %0" : "=f" (__result) : "f" (__y));
- else if (__x == 2.0)
- __asm("ftwotox%.x %1, %0" : "=f" (__result) : "f" (__y));
- else if (__x < 0.0)
- {
- double __temp = __m81_u (__rint) (__y);
- if (__y == __temp)
- {
- int i = (int) __y;
- __result = __m81_u(__ieee754_exp)(__y * __m81_u(__ieee754_log)(-__x));
- if (i & 1)
- __result = -__result;
- }
- else
- __result = 0.0 / 0.0;
- }
- else
- __result = __m81_u(__ieee754_exp)(__y * __m81_u(__ieee754_log)(__x));
- return __result;
-}
-
-__m81_defun (double, __ceil, (double __x))
-{
- double __result;
- unsigned long int __ctrl_reg;
- __asm __volatile__ ("fmove%.l %!, %0" : "=dm" (__ctrl_reg));
- /* Set rounding towards positive infinity. */
- __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs. */
- : "dmi" (__ctrl_reg | 0x30));
- /* Convert X to an integer, using +Inf rounding. */
- __asm __volatile__ ("fint%.x %1, %0" : "=f" (__result) : "f" (__x));
- /* Restore the previous rounding mode. */
- __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs. */
- : "dmi" (__ctrl_reg));
- return __result;
-}
-
-__m81_inline double
-__m81_u(__modf)(double __value, double *__iptr)
-{
- double __modf_int;
- __asm ("fintrz%.x %1, %0" : "=f" (__modf_int) : "f" (__value));
- *__iptr = __modf_int;
- return __value - __modf_int;
-}
-
-__m81_defun (int, __isinf, (double __value))
-{
- /* There is no branch-condition for infinity,
- so we must extract and examine the condition codes manually. */
- unsigned long int __fpsr;
- __asm("ftst%.x %1\n"
- "fmove%.l %/fpsr, %0" : "=dm" (__fpsr) : "f" (__value));
- return (__fpsr & (2 << 24)) ? (__fpsr & (8 << 24) ? -1 : 1) : 0;
-}
-
-__m81_defun (int, __isnan, (double __value))
-{
- char __result;
- __asm("ftst%.x %1\n"
- "fsun %0" : "=dm" (__result) : "f" (__value));
- return __result;
-}
-
-__m81_defun (int, __finite, (double __value))
-{
- /* There is no branch-condition for infinity, so we must extract and
- examine the condition codes manually. */
- unsigned long int __fpsr;
- __asm ("ftst%.x %1\n"
- "fmove%.l %/fpsr, %0" : "=dm" (__fpsr) : "f" (__value));
- return (__fpsr & (3 << 24)) == 0;
-}
-
-__m81_defun (int, __ilogb, (double __x))
-{
- double __result;
- __asm("fgetexp%.x %1, %0" : "=f" (__result) : "f" (__x));
- return (int) __result;
-}
-
-__m81_defun (double, __ieee754_scalb, (double __x, double __n))
-{
- double __result;
- __asm ("fscale%.x %1, %0" : "=f" (__result) : "f" (__n), "0" (__x));
- return __result;
-}
-
-__m81_defun (double, __scalbn, (double __x, int __n))
-{
- double __result;
- double __double_n = (double) __n;
- __asm ("fscale%.x %1, %0" : "=f" (__result) : "f" (__double_n), "0" (__x));
- return __result;
-}
-
-__m81_defun (float, __ieee754_remainderf, (float __x, float __y))
-{
- float __result;
- __asm("frem%.x %1, %0" : "=f" (__result) : "f" (__y), "0" (__x));
- return __result;
-}
-
-__m81_defun (float, __ldexpf, (float __x, int __e))
-{
- float __result;
- float __float_e = (float) __e;
- __asm("fscale%.x %1, %0" : "=f" (__result) : "f" (__float_e), "0" (__x));
- return __result;
-}
-
-__m81_defun (float, __ieee754_fmodf, (float __x, float __y))
-{
- float __result;
- __asm("fmod%.x %1, %0" : "=f" (__result) : "f" (__y), "0" (__x));
- return __result;
-}
-
-__m81_inline float
-__m81_u(__frexpf)(float __value, int *__expptr)
-{
- float __mantissa, __exponent;
- __asm("fgetexp%.x %1, %0" : "=f" (__exponent) : "f" (__value));
- __asm("fgetman%.x %1, %0" : "=f" (__mantissa) : "f" (__value));
- *__expptr = (int) __exponent;
- return __mantissa;
-}
-
-__m81_defun (float, __floorf, (float __x))
-{
- float __result;
- unsigned long int __ctrl_reg;
- __asm __volatile__ ("fmove%.l %!, %0" : "=dm" (__ctrl_reg));
- /* Set rounding towards negative infinity. */
- __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs. */
- : "dmi" ((__ctrl_reg & ~0x10) | 0x20));
- /* Convert X to an integer, using -Inf rounding. */
- __asm __volatile__ ("fint%.x %1, %0" : "=f" (__result) : "f" (__x));
- /* Restore the previous rounding mode. */
- __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs. */
- : "dmi" (__ctrl_reg));
- return __result;
-}
-
-__m81_defun (float, __ieee754_powf, (float __x, float __y))
-{
- float __result;
- if (__x == 0.0f)
- {
- if (__y <= 0.0f)
- __result = 0.0f / 0.0f;
- else
- __result = 0.0f;
- }
- else if (__y == 0.0f || __x == 1.0f)
- __result = 1.0;
- else if (__y == 1.0f)
- __result = __x;
- else if (__y == 2.0f)
- __result = __x * __x;
- else if (__x == 10.0f)
- __asm("ftentox%.x %1, %0" : "=f" (__result) : "f" (__y));
- else if (__x == 2.0f)
- __asm("ftwotox%.x %1, %0" : "=f" (__result) : "f" (__y));
- else if (__x < 0.0f)
- {
- float __temp = __m81_u(__rintf)(__y);
- if (__y == __temp)
- {
- int i = (int) __y;
- __result = __m81_u(__ieee754_expf)(__y * __m81_u(__ieee754_logf)(-__x));
- if (i & 1)
- __result = -__result;
- }
- else
- __result = 0.0f / 0.0f;
- }
- else
- __result = __m81_u(__ieee754_expf)(__y * __m81_u(__ieee754_logf)(__x));
- return __result;
-}
-
-__m81_defun (float, __ceilf, (float __x))
-{
- float __result;
- unsigned long int __ctrl_reg;
- __asm __volatile__ ("fmove%.l %!, %0" : "=dm" (__ctrl_reg));
- /* Set rounding towards positive infinity. */
- __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs. */
- : "dmi" (__ctrl_reg | 0x30));
- /* Convert X to an integer, using +Inf rounding. */
- __asm __volatile__ ("fint%.x %1, %0" : "=f" (__result) : "f" (__x));
- /* Restore the previous rounding mode. */
- __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs. */
- : "dmi" (__ctrl_reg));
- return __result;
-}
-
-__m81_inline float
-__m81_u(__modff)(float __value, float *__iptr)
-{
- float __modf_int;
- __asm ("fintrz%.x %1, %0" : "=f" (__modf_int) : "f" (__value));
- *__iptr = __modf_int;
- return __value - __modf_int;
-}
-
-__m81_defun (int, __isinff, (float __value))
-{
- /* There is no branch-condition for infinity,
- so we must extract and examine the condition codes manually. */
- unsigned long int __fpsr;
- __asm("ftst%.x %1\n"
- "fmove%.l %/fpsr, %0" : "=dm" (__fpsr) : "f" (__value));
- return (__fpsr & (2 << 24)) ? (__fpsr & (8 << 24) ? -1 : 1) : 0;
-}
-
-__m81_defun (int, __isnanf, (float __value))
-{
- char __result;
- __asm("ftst%.x %1\n"
- "fsun %0" : "=dm" (__result) : "f" (__value));
- return __result;
-}
-
-__m81_defun (int, __finitef, (float __value))
-{
- /* There is no branch-condition for infinity, so we must extract and
- examine the condition codes manually. */
- unsigned long int __fpsr;
- __asm ("ftst%.x %1\n"
- "fmove%.l %/fpsr, %0" : "=dm" (__fpsr) : "f" (__value));
- return (__fpsr & (3 << 24)) == 0;
-}
-
-__m81_defun (int, __ilogbf, (float __x))
-{
- float __result;
- __asm("fgetexp%.x %1, %0" : "=f" (__result) : "f" (__x));
- return (int) __result;
-}
-
-__m81_defun (float, __ieee754_scalbf, (float __x, float __n))
-{
- float __result;
- __asm ("fscale%.x %1, %0" : "=f" (__result) : "f" (__n), "0" (__x));
- return __result;
-}
-
-__m81_defun (float, __scalbnf, (float __x, int __n))
-{
- float __result;
- float __float_n = (float) __n;
- __asm ("fscale%.x %1, %0" : "=f" (__result) : "f" (__float_n), "0" (__x));
- return __result;
-}
-
-__m81_defun (long double, __ieee754_remainderl, (long double __x,
- long double __y))
-{
- long double __result;
- __asm ("frem%.x %1, %0" : "=f" (__result) : "f" (__y), "0" (__x));
- return __result;
-}
-
-__m81_defun (long double, __ldexpl, (long double __x, int __e))
-{
- long double __result;
- long double __float_e = (long double) __e;
- __asm ("fscale%.x %1, %0" : "=f" (__result) : "f" (__float_e), "0" (__x));
- return __result;
-}
-
-__m81_defun (long double, __ieee754_fmodl, (long double __x, long double __y))
-{
- long double __result;
- __asm("fmod%.x %1, %0" : "=f" (__result) : "f" (__y), "0" (__x));
- return __result;
-}
-
-__m81_inline long double
-__m81_u(__frexpl)(long double __value, int *__expptr)
-{
- long double __mantissa, __exponent;
- __asm("fgetexp%.x %1, %0" : "=f" (__exponent) : "f" (__value));
- __asm("fgetman%.x %1, %0" : "=f" (__mantissa) : "f" (__value));
- *__expptr = (int) __exponent;
- return __mantissa;
-}
-
-__m81_defun (long double, __floorl, (long double __x))
-{
- long double __result;
- unsigned long int __ctrl_reg;
- __asm __volatile__ ("fmove%.l %!, %0" : "=dm" (__ctrl_reg));
- /* Set rounding towards negative infinity. */
- __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs. */
- : "dmi" ((__ctrl_reg & ~0x10) | 0x20));
- /* Convert X to an integer, using -Inf rounding. */
- __asm __volatile__ ("fint%.x %1, %0" : "=f" (__result) : "f" (__x));
- /* Restore the previous rounding mode. */
- __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs. */
- : "dmi" (__ctrl_reg));
- return __result;
-}
-
-__m81_defun (long double, __ieee754_powl, (long double __x, long double __y))
-{
- long double __result;
- if (__x == 0.0l)
- {
- if (__y <= 0.0l)
- __result = 0.0l / 0.0l;
- else
- __result = 0.0l;
- }
- else if (__y == 0.0l || __x == 1.0l)
- __result = 1.0;
- else if (__y == 1.0l)
- __result = __x;
- else if (__y == 2.0l)
- __result = __x * __x;
- else if (__x == 10.0l)
- __asm("ftentox%.x %1, %0" : "=f" (__result) : "f" (__y));
- else if (__x == 2.0l)
- __asm("ftwotox%.x %1, %0" : "=f" (__result) : "f" (__y));
- else if (__x < 0.0l)
- {
- long double __temp = __m81_u(__rintl)(__y);
- if (__y == __temp)
- {
- int i = (int) __y;
- __result
- = __m81_u(__ieee754_expl)(__y * __m81_u(__ieee754_logl)(-__x));
- if (i & 1)
- __result = -__result;
- }
- else
- __result = 0.0l / 0.0l;
- }
- else
- __result = __m81_u(__ieee754_expl)(__y * __m81_u(__ieee754_logl)(__x));
- return __result;
-}
-
-__m81_defun (long double, __ceill, (long double __x))
-{
- long double __result;
- unsigned long int __ctrl_reg;
- __asm __volatile__ ("fmove%.l %!, %0" : "=dm" (__ctrl_reg));
- /* Set rounding towards positive infinity. */
- __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs. */
- : "dmi" (__ctrl_reg | 0x30));
- /* Convert X to an integer, using +Inf rounding. */
- __asm __volatile__ ("fint%.x %1, %0" : "=f" (__result) : "f" (__x));
- /* Restore the previous rounding mode. */
- __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs. */
- : "dmi" (__ctrl_reg));
- return __result;
-}
-
-__m81_inline long double
-__m81_u(__modfl)(long double __value, long double *__iptr)
-{
- long double __modf_int;
- __asm ("fintrz%.x %1, %0" : "=f" (__modf_int) : "f" (__value));
- *__iptr = __modf_int;
- return __value - __modf_int;
-}
-
-__m81_defun (int, __isinfl, (long double __value))
-{
- /* There is no branch-condition for infinity,
- so we must extract and examine the condition codes manually. */
- unsigned long int __fpsr;
- __asm("ftst%.x %1\n"
- "fmove%.l %/fpsr, %0" : "=dm" (__fpsr) : "f" (__value));
- return (__fpsr & (2 << 24)) ? (__fpsr & (8 << 24) ? -1 : 1) : 0;
-}
-
-__m81_defun (int, __isnanl, (long double __value))
-{
- char __result;
- __asm("ftst%.x %1\n"
- "fsun %0" : "=dm" (__result) : "f" (__value));
- return __result;
-}
-
-__m81_defun (int, __finitel, (long double __value))
-{
- /* There is no branch-condition for infinity, so we must extract and
- examine the condition codes manually. */
- unsigned long int __fpsr;
- __asm ("ftst%.x %1\n"
- "fmove%.l %/fpsr, %0" : "=dm" (__fpsr) : "f" (__value));
- return (__fpsr & (3 << 24)) == 0;
-}
-
-__m81_defun (int, __ilogbl, (long double __x))
-{
- long double __result;
- __asm("fgetexp%.x %1, %0" : "=f" (__result) : "f" (__x));
- return (int) __result;
-}
-
-__m81_defun (long double, __ieee754_scalbl, (long double __x, long double __n))
-{
- long double __result;
- __asm ("fscale%.x %1, %0" : "=f" (__result) : "f" (__n), "0" (__x));
- return __result;
-}
-
-__m81_defun (long double, __scalbnl, (long double __x, int __n))
-{
- long double __result;
- long double __float_n = (long double) __n;
- __asm ("fscale%.x %1, %0" : "=f" (__result) : "f" (__float_n), "0" (__x));
- return __result;
-}
+/* This macro contains the definition for the rest of the inline
+ functions, using __FLOAT_TYPE as the domain type and __S as the suffix
+ for the function names. */
+
+#define __inline_functions(__float_type, __s) \
+__m81_defun (__float_type, \
+ __ieee754_remainder##__s, (__float_type __x, __float_type __y)) \
+{ \
+ __float_type __result; \
+ __asm("frem%.x %1, %0" : "=f" (__result) : "f" (__y), "0" (__x)); \
+ return __result; \
+} \
+ \
+__m81_defun (__float_type, \
+ __ieee754_fmod##__s, (__float_type __x, __float_type __y)) \
+{ \
+ __float_type __result; \
+ __asm("fmod%.x %1, %0" : "=f" (__result) : "f" (__y), "0" (__x)); \
+ return __result; \
+} \
+ \
+__m81_defun (__float_type, \
+ __ieee754_atan2##__s, (__float_type __y, __float_type __x)) \
+{ \
+ __float_type __pi, __pi_2; \
+ \
+ __asm ("fmovecr%.x %#0, %0" : "=f" (__pi)); \
+ __asm ("fscale%.w %#-1, %0" : "=f" (__pi_2) : "0" (__pi)); \
+ if (__x > 0) \
+ { \
+ if (__y > 0) \
+ { \
+ if (__x > __y) \
+ return __m81_u(__atan##__s) (__y / __x); \
+ else \
+ return __pi_2 - __m81_u(__atan##__s) (__x / __y); \
+ } \
+ else \
+ { \
+ if (__x > -__y) \
+ return __m81_u(__atan##__s) (__y / __x); \
+ else \
+ return -__pi_2 - __m81_u(__atan##__s) (__x / __y); \
+ } \
+ } \
+ else \
+ { \
+ if (__y > 0) \
+ { \
+ if (-__x < __y) \
+ return __pi + __m81_u(__atan##__s) (__y / __x); \
+ else \
+ return __pi_2 - __m81_u(__atan##__s) (__x / __y); \
+ } \
+ else \
+ { \
+ if (-__x > -__y) \
+ return -__pi + __m81_u(__atan##__s) (__y / __x); \
+ else \
+ return -__pi_2 - __m81_u(__atan##__s) (__x / __y); \
+ } \
+ } \
+} \
+ \
+__m81_inline __float_type \
+__m81_u(__frexp##__s)(__float_type __value, int *__expptr) \
+{ \
+ __float_type __mantissa, __exponent; \
+ int __iexponent; \
+ if (__value == 0.0) \
+ { \
+ *__expptr = 0; \
+ return __value; \
+ } \
+ __asm("fgetexp%.x %1, %0" : "=f" (__exponent) : "f" (__value)); \
+ __iexponent = (int) __exponent + 1; \
+ *__expptr = __iexponent; \
+ __asm("fscale%.l %2, %0" : "=f" (__mantissa) \
+ : "0" (__value), "dmi" (-__iexponent)); \
+ return __mantissa; \
+} \
+ \
+__m81_defun (__float_type, __floor##__s, (__float_type __x)) \
+{ \
+ __float_type __result; \
+ unsigned long int __ctrl_reg; \
+ __asm __volatile__ ("fmove%.l %!, %0" : "=dm" (__ctrl_reg)); \
+ /* Set rounding towards negative infinity. */ \
+ __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs. */ \
+ : "dmi" ((__ctrl_reg & ~0x10) | 0x20)); \
+ /* Convert X to an integer, using -Inf rounding. */ \
+ __asm __volatile__ ("fint%.x %1, %0" : "=f" (__result) : "f" (__x)); \
+ /* Restore the previous rounding mode. */ \
+ __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs. */ \
+ : "dmi" (__ctrl_reg)); \
+ return __result; \
+} \
+ \
+__m81_defun (__float_type, \
+ __ieee754_pow##__s, (__float_type __x, __float_type __y)) \
+{ \
+ __float_type __result; \
+ if (__x == 0.0) \
+ { \
+ if (__y <= 0.0) \
+ __result = 0.0 / 0.0; \
+ else \
+ __result = 0.0; \
+ } \
+ else if (__y == 0.0 || __x == 1.0) \
+ __result = 1.0; \
+ else if (__y == 1.0) \
+ __result = __x; \
+ else if (__y == 2.0) \
+ __result = __x * __x; \
+ else if (__x == 10.0) \
+ __asm("ftentox%.x %1, %0" : "=f" (__result) : "f" (__y)); \
+ else if (__x == 2.0) \
+ __asm("ftwotox%.x %1, %0" : "=f" (__result) : "f" (__y)); \
+ else if (__x < 0.0) \
+ { \
+ __float_type __temp = __m81_u (__rint##__s) (__y); \
+ if (__y == __temp) \
+ { \
+ int __i = (int) __y; \
+ __result = (__m81_u(__ieee754_exp##__s) \
+ (__y * __m81_u(__ieee754_log##__s) (-__x))); \
+ if (__i & 1) \
+ __result = -__result; \
+ } \
+ else \
+ __result = 0.0 / 0.0; \
+ } \
+ else \
+ __result = (__m81_u(__ieee754_exp##__s) \
+ (__y * __m81_u(__ieee754_log##__s) (__x))); \
+ return __result; \
+} \
+ \
+__m81_defun (__float_type, __ceil##__s, (__float_type __x)) \
+{ \
+ __float_type __result; \
+ unsigned long int __ctrl_reg; \
+ __asm __volatile__ ("fmove%.l %!, %0" : "=dm" (__ctrl_reg)); \
+ /* Set rounding towards positive infinity. */ \
+ __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs. */ \
+ : "dmi" (__ctrl_reg | 0x30)); \
+ /* Convert X to an integer, using +Inf rounding. */ \
+ __asm __volatile__ ("fint%.x %1, %0" : "=f" (__result) : "f" (__x)); \
+ /* Restore the previous rounding mode. */ \
+ __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs. */ \
+ : "dmi" (__ctrl_reg)); \
+ return __result; \
+} \
+ \
+__m81_inline __float_type \
+__m81_u(__modf##__s)(__float_type __value, __float_type *__iptr) \
+{ \
+ __float_type __modf_int; \
+ __asm ("fintrz%.x %1, %0" : "=f" (__modf_int) : "f" (__value)); \
+ *__iptr = __modf_int; \
+ return __value - __modf_int; \
+} \
+ \
+__m81_defun (int, __isinf##__s, (__float_type __value)) \
+{ \
+ /* There is no branch-condition for infinity, \
+ so we must extract and examine the condition codes manually. */ \
+ unsigned long int __fpsr; \
+ __asm("ftst%.x %1\n" \
+ "fmove%.l %/fpsr, %0" : "=dm" (__fpsr) : "f" (__value)); \
+ return (__fpsr & (2 << 24)) ? (__fpsr & (8 << 24) ? -1 : 1) : 0; \
+} \
+ \
+__m81_defun (int, __isnan##__s, (__float_type __value)) \
+{ \
+ char __result; \
+ __asm("ftst%.x %1\n" \
+ "fsun %0" : "=dm" (__result) : "f" (__value)); \
+ return __result; \
+} \
+ \
+__m81_defun (int, __finite##__s, (__float_type __value)) \
+{ \
+ /* There is no branch-condition for infinity, so we must extract and \
+ examine the condition codes manually. */ \
+ unsigned long int __fpsr; \
+ __asm ("ftst%.x %1\n" \
+ "fmove%.l %/fpsr, %0" : "=dm" (__fpsr) : "f" (__value)); \
+ return (__fpsr & (3 << 24)) == 0; \
+} \
+ \
+__m81_defun (int, __ilogb##__s, (__float_type __x)) \
+{ \
+ __float_type __result; \
+ if (__x == 0.0) \
+ return 0x80000001; \
+ __asm("fgetexp%.x %1, %0" : "=f" (__result) : "f" (__x)); \
+ return (int) __result; \
+} \
+ \
+__m81_defun (__float_type, \
+ __ieee754_scalb##__s, (__float_type __x, __float_type __n)) \
+{ \
+ __float_type __result; \
+ __asm ("fscale%.x %1, %0" : "=f" (__result) : "f" (__n), "0" (__x)); \
+ return __result; \
+} \
+ \
+__m81_defun (__float_type, __scalbn##__s, (__float_type __x, int __n)) \
+{ \
+ __float_type __result; \
+ __asm ("fscale%.l %1, %0" : "=f" (__result) : "dmi" (__n), "0" (__x)); \
+ return __result; \
+}
+
+/* This defines the three variants of the inline functions. */
+__inline_functions (double, )
+__inline_functions (float, f)
+__inline_functions (long double, l)
+#undef __inline_functions
#endif /* GCC. */
diff --git a/sysdeps/m68k/fpu/s_ldexp.c b/sysdeps/m68k/fpu/s_ldexp.c
deleted file mode 100644
index 18f4d43c37..0000000000
--- a/sysdeps/m68k/fpu/s_ldexp.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* 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., 675 Mass Ave,
-Cambridge, MA 02139, USA. */
-
-#include <ansidecl.h>
-#define __NO_M81_MATH_INLINES
-#include <math.h>
-
-#ifndef FUNC
-#define FUNC ldexp
-#endif
-#ifndef float_type
-#define float_type double
-#endif
-
-#define __CONCATX(a,b) __CONCAT(a,b)
-
-float_type
-DEFUN(__CONCATX(__,FUNC), (x, exp), float_type x AND int exp)
-{
- return __m81_u(__CONCATX(__,FUNC))(x, exp);
-}
-
-#define weak_aliasx(a,b) weak_alias(a,b)
-weak_aliasx (__CONCATX(__,FUNC), FUNC)
diff --git a/sysdeps/m68k/fpu/s_ldexpf.c b/sysdeps/m68k/fpu/s_ldexpf.c
deleted file mode 100644
index 81a6b28acc..0000000000
--- a/sysdeps/m68k/fpu/s_ldexpf.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#ifndef FUNC
-#define FUNC ldexpf
-#endif
-#define float_type float
-#include <s_ldexp.c>
diff --git a/sysdeps/m68k/fpu/s_ldexpl.c b/sysdeps/m68k/fpu/s_ldexpl.c
deleted file mode 100644
index 25796b75f4..0000000000
--- a/sysdeps/m68k/fpu/s_ldexpl.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#ifndef FUNC
-#define FUNC ldexpl
-#endif
-#define float_type long double
-#include <s_ldexp.c>
diff --git a/sysdeps/m68k/fpu/s_scalbn.c b/sysdeps/m68k/fpu/s_scalbn.c
index 433aa757d2..4039bba652 100644
--- a/sysdeps/m68k/fpu/s_scalbn.c
+++ b/sysdeps/m68k/fpu/s_scalbn.c
@@ -1,2 +1,40 @@
+/* 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., 675 Mass Ave,
+Cambridge, MA 02139, USA. */
+
+#include <ansidecl.h>
+#define __NO_M81_MATH_INLINES
+#include <math.h>
+
+#ifndef FUNC
#define FUNC scalbn
#include <s_ldexp.c>
+#endif
+#ifndef float_type
+#define float_type double
+#endif
+
+#define __CONCATX(a,b) __CONCAT(a,b)
+
+float_type
+DEFUN(__CONCATX(__,FUNC), (x, exp), float_type x AND int exp)
+{
+ return __m81_u(__CONCATX(__,FUNC))(x, exp);
+}
+
+#define weak_aliasx(a,b) weak_alias(a,b)
+weak_aliasx (__CONCATX(__,FUNC), FUNC)
diff --git a/sysdeps/m68k/fpu/s_scalbnf.c b/sysdeps/m68k/fpu/s_scalbnf.c
index 00461dc30c..55d64fd502 100644
--- a/sysdeps/m68k/fpu/s_scalbnf.c
+++ b/sysdeps/m68k/fpu/s_scalbnf.c
@@ -1,2 +1,6 @@
+#ifndef FUNC
#define FUNC scalbnf
#include <s_ldexpf.c>
+#endif
+#define float_type float
+#include <s_scalbn.c>
diff --git a/sysdeps/m68k/fpu/s_scalbnl.c b/sysdeps/m68k/fpu/s_scalbnl.c
index 83e8bfefc1..84849921dc 100644
--- a/sysdeps/m68k/fpu/s_scalbnl.c
+++ b/sysdeps/m68k/fpu/s_scalbnl.c
@@ -1,2 +1,6 @@
+#ifndef FUNC
#define FUNC scalbnl
#include <s_ldexpl.c>
+#endif
+#define float_type long double
+#include <s_scalbn.c>
diff --git a/sysdeps/posix/cuserid.c b/sysdeps/posix/cuserid.c
index b874e909ce..2fe535ea1d 100644
--- a/sysdeps/posix/cuserid.c
+++ b/sysdeps/posix/cuserid.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,22 +16,19 @@ 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 <string.h>
#include <pwd.h>
-extern int EXFUN(geteuid, (NOARGS));
-
-
/* Return the username of the caller.
If S is not NULL, it points to a buffer of at least L_cuserid bytes
into which the name is copied; otherwise, a static buffer is used. */
char *
-DEFUN(cuserid, (s), char *s)
+cuserid (s)
+ char *s;
{
static char name[L_cuserid];
- struct passwd *pwent = getpwuid(geteuid());
+ struct passwd *pwent = getpwuid (geteuid ());
if (pwent == NULL)
{
@@ -42,5 +39,5 @@ DEFUN(cuserid, (s), char *s)
if (s == NULL)
s = name;
- return strcpy(s, pwent->pw_name);
+ return strcpy (s, pwent->pw_name);
}
diff --git a/sysdeps/posix/gettimeofday.c b/sysdeps/posix/gettimeofday.c
index c3b8108258..3c079a5af2 100644
--- a/sysdeps/posix/gettimeofday.c
+++ b/sysdeps/posix/gettimeofday.c
@@ -56,7 +56,7 @@ __gettimeofday (tv, tz)
save_tzname[0] = __tzname[0];
save_tzname[1] = __tzname[1];
- tmp = localtime (&timer, &tm);
+ tmp = localtime_r (&timer, &tm);
tz->tz_minuteswest = __timezone / 60;
tz->tz_dsttime = __daylight;
diff --git a/sysdeps/stub/fpu_control.h b/sysdeps/stub/fpu_control.h
index 65f58824ae..832c15aac9 100644
--- a/sysdeps/stub/fpu_control.h
+++ b/sysdeps/stub/fpu_control.h
@@ -43,4 +43,4 @@ extern void __setfpucw __P ((fpu_control_t));
__END_DECLS
-#endif /* _M68K_FPU_CONTROL_H */
+#endif /* _FPU_CONTROL_H */
diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.S b/sysdeps/unix/sysv/linux/i386/sysdep.S
index 7d5444d6a6..0f3e31dbce 100644
--- a/sysdeps/unix/sysv/linux/i386/sysdep.S
+++ b/sysdeps/unix/sysv/linux/i386/sysdep.S
@@ -16,6 +16,8 @@ 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 <sysdep.h>
+
/* Because the Linux version is in fact i386/ELF and the start.? file
for this system (sysdeps/i386/elf/start.S) is also used by The Hurd
and therefore this files must not contain the definition of the
@@ -43,9 +45,7 @@ _errno = errno /* This name is expected by hj libc.so.5 startup code. */
The code for Linux is almost identical to the canonical Unix/i386
code, except that the error number in %eax is negated. */
- .globl __syscall_error
- .type __syscall_error,@function
-__syscall_error:
+ENTRY (__syscall_error)
negl %eax
#define __syscall_error __syscall_error_1
@@ -54,10 +54,7 @@ __syscall_error:
#endif /* !PIC */
-#ifdef _LIBC_REENTRANT
- .globl __errno_location
- .type __errno_location,@function
-__errno_location:
+ENTRY (__errno_location)
#ifdef PIC
call .L2
.L2: popl %ecx
@@ -69,4 +66,3 @@ __errno_location:
ret
.Lfe1:
.size __errno_location, .Lfe1-__errno_location
-#endif
diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h
index 96470a19b9..cbd7b5553b 100644
--- a/sysdeps/unix/sysv/linux/i386/sysdep.h
+++ b/sysdeps/unix/sysv/linux/i386/sysdep.h
@@ -17,6 +17,9 @@ 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. */
+#ifndef _LINUX_I386_SYSDEP_H
+#define _LINUX_I386_SYSDEP_H 1
+
/* There is some commonality. */
#include <sysdeps/unix/i386/sysdep.h>
@@ -179,3 +182,5 @@ syscall_error: \
#define _POPARGS_5 _POPARGS_4; popl %edi
#endif /* ASSEMBLER */
+
+#endif /* linux/i386/sysdep.h */
diff --git a/sysdeps/unix/sysv/linux/m68k/sysdep.S b/sysdeps/unix/sysv/linux/m68k/sysdep.S
index 674715f824..b47e167159 100644
--- a/sysdeps/unix/sysv/linux/m68k/sysdep.S
+++ b/sysdeps/unix/sysv/linux/m68k/sysdep.S
@@ -62,7 +62,6 @@ __syscall_error:
.size __syscall_error, . - __syscall_error
#endif /* PIC */
-#ifdef _LIBC_REENTRANT
.globl __errno_location
.type __errno_location, @function
__errno_location:
@@ -73,4 +72,3 @@ __errno_location:
#endif
rts
.size __errno_location, . - __errno_location
-#endif
diff --git a/time/mktime.c b/time/mktime.c
index c3c539526a..7fa5ccb23a 100644
--- a/time/mktime.c
+++ b/time/mktime.c
@@ -133,11 +133,19 @@ ydhms_tm_diff (year, yday, hour, min, sec, tp)
int year, yday, hour, min, sec;
const struct tm *tp;
{
- time_t ay = year + (time_t) (TM_YEAR_BASE - 1);
- time_t by = tp->tm_year + (time_t) (TM_YEAR_BASE - 1);
- time_t intervening_leap_days =
- (ay/4 - by/4) - (ay/100 - by/100) + (ay/400 - by/400);
- time_t years = ay - by;
+ /* Compute intervening leap days correctly even if year is negative.
+ Take care to avoid int overflow. time_t overflow is OK, since
+ only the low order bits of the correct time_t answer are needed.
+ Don't convert to time_t until after all divisions are done, since
+ time_t might be unsigned. */
+ int a4 = (year >> 2) + (TM_YEAR_BASE >> 2) - ! (year & 3);
+ int b4 = (tp->tm_year >> 2) + (TM_YEAR_BASE >> 2) - ! (tp->tm_year & 3);
+ int a100 = a4 / 25 - (a4 % 25 < 0);
+ int b100 = b4 / 25 - (b4 % 25 < 0);
+ int a400 = a100 >> 2;
+ int b400 = b100 >> 2;
+ int intervening_leap_days = (a4 - b4) - (a100 - b100) + (a400 - b400);
+ time_t years = year - (time_t) tp->tm_year;
time_t days = (365 * years + intervening_leap_days
+ (yday - tp->tm_yday));
return (60 * (60 * (24 * days + (hour - tp->tm_hour))
diff --git a/time/strftime.c b/time/strftime.c
index 866a28065d..7837373aed 100644
--- a/time/strftime.c
+++ b/time/strftime.c
@@ -23,8 +23,10 @@ Cambridge, MA 02139, USA. */
#ifdef _LIBC
# define HAVE_LIMITS_H 1
# define HAVE_MBLEN 1
+# define HAVE_MBRLEN 1
# define HAVE_TM_GMTOFF 1
# define HAVE_TM_ZONE 1
+# define MULTIBYTE_IS_FORMAT_SAFE 1
# define STDC_HEADERS 1
# include <ansidecl.h>
# include "../locale/localeinfo.h"
@@ -43,8 +45,24 @@ Cambridge, MA 02139, USA. */
# endif
#endif
-#if HAVE_MBLEN
-# include <ctype.h>
+/* Do multibyte processing if multibytes are supported, unless
+ multibyte sequences are safe in formats. Multibyte sequences are
+ safe if they cannot contain byte sequences that look like format
+ conversion specifications. The GNU C Library uses UTF8 multibyte
+ encoding, which is safe for formats, but strftime.c can be used
+ with other C libraries that use unsafe encodings. */
+#define DO_MULTIBYTE (HAVE_MBLEN && ! MULTIBYTE_IS_FORMAT_SAFE)
+
+#if DO_MULTIBYTE
+# if HAVE_MBRLEN
+# include <wchar.h>
+# else
+ /* Simulate mbrlen with mblen as best we can. */
+# define mbstate_t int
+# define mbrlen(s, n, ps) mblen (s, n)
+# define mbsinit(ps) (*(ps) == 0)
+# endif
+ static const mbstate_t mbstate_zero;
#endif
#if HAVE_LIMITS_H
@@ -91,6 +109,13 @@ Cambridge, MA 02139, USA. */
#define TM_YEAR_BASE 1900
+#ifndef __isleap
+/* Nonzero if YEAR is a leap year (every 4 years,
+ except every 100th isn't, and every 400th is). */
+#define __isleap(year) \
+ ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0))
+#endif
+
#ifdef _LIBC
# define gmtime_r __gmtime_r
@@ -132,9 +157,6 @@ localtime_r (t, tp)
#endif /* ! defined (_LIBC) */
-static unsigned int week __P ((const struct tm *const, int, int));
-
-
#define add(n, f) \
do \
{ \
@@ -159,14 +181,17 @@ tm_diff (a, b)
const struct tm *a;
const struct tm *b;
{
- int ay = a->tm_year + TM_YEAR_BASE - 1;
- int by = b->tm_year + TM_YEAR_BASE - 1;
- /* Divide years by 100, rounding towards minus infinity. */
- int ac = ay / 100 - (ay % 100 < 0);
- int bc = by / 100 - (by % 100 < 0);
- int intervening_leap_days =
- ((ay >> 2) - (by >> 2)) - (ac - bc) + ((ac >> 2) - (bc >> 2));
- int years = ay - by;
+ /* Compute intervening leap days correctly even if year is negative.
+ Take care to avoid int overflow in leap day calculations,
+ but it's OK to assume that A and B are close to each other. */
+ int a4 = (a->tm_year >> 2) + (TM_YEAR_BASE >> 2) - ! (a->tm_year & 3);
+ int b4 = (b->tm_year >> 2) + (TM_YEAR_BASE >> 2) - ! (b->tm_year & 3);
+ int a100 = a4 / 25 - (a4 % 25 < 0);
+ int b100 = b4 / 25 - (b4 % 25 < 0);
+ int a400 = a100 >> 2;
+ int b400 = b100 >> 2;
+ int intervening_leap_days = (a4 - b4) - (a100 - b100) + (a400 - b400);
+ int years = a->tm_year - b->tm_year;
int days = (365 * years + intervening_leap_days
+ (a->tm_yday - b->tm_yday));
return (60 * (60 * (24 * days + (a->tm_hour - b->tm_hour))
@@ -177,45 +202,30 @@ tm_diff (a, b)
-/* Return the week in the year specified by TP,
- with weeks starting on STARTING_DAY. */
-#ifdef __GNUC__
+/* The number of days from the first day of the first ISO week of this
+ year to the year day YDAY with week day WDAY. ISO weeks start on
+ Monday; the first ISO week has the year's first Thursday. YDAY may
+ be as small as YDAY_MINIMUM. */
+#define ISO_WEEK_START_WDAY 1 /* Monday */
+#define ISO_WEEK1_WDAY 4 /* Thursday */
+#define YDAY_MINIMUM (-366)
+static int iso_week_days __P ((int, int));
+#ifdef __GNUC__
inline
#endif
-static unsigned int
-week (tp, starting_day, max_preceding)
- const struct tm *const tp;
- int starting_day;
- int max_preceding;
+static int
+iso_week_days (yday, wday)
+ int yday;
+ int wday;
{
- int wday, dl, base;
-
- wday = tp->tm_wday - starting_day;
- if (wday < 0)
- wday += 7;
-
- /* Set DL to the day in the year of the first day of the week
- containing the day specified in TP. */
- dl = tp->tm_yday - wday;
-
- /* For the computation following ISO 8601:1988 we set the number of
- the week containing January 1st to 1 if this week has more than
- MAX_PRECEDING days in the new year. For ISO 8601 this number is
- 3, for the other representation it is 7 (i.e., not to be
- fulfilled). */
- base = ((dl + 7) % 7) > max_preceding ? 1 : 0;
-
- /* If DL is negative we compute the result as 0 unless we have to
- compute it according ISO 8601. In this case we have to return 53
- or 1 if the week containing January 1st has less than 4 days in
- the new year or not. If DL is not negative we calculate the
- number of complete weeks for our week (DL / 7) plus 1 (because
- only for DL < 0 we are in week 0/53 and plus the number of the
- first week computed in the last step. */
- return dl < 0 ? (dl < -max_preceding ? 53 : base)
- : base + 1 + dl / 7;
+ /* Add enough to the first operand of % to make it nonnegative. */
+ int big_enough_multiple_of_7 = (-YDAY_MINIMUM / 7 + 2) * 7;
+ return (yday
+ - (yday - wday + ISO_WEEK1_WDAY + big_enough_multiple_of_7) % 7
+ + ISO_WEEK1_WDAY - ISO_WEEK_START_WDAY);
}
+
#ifndef _NL_CURRENT
static char const weekday_name[][10] =
{
@@ -254,8 +264,8 @@ strftime (s, maxsize, format, tp)
size_t am_len = strlen(a_month);
size_t ap_len = strlen (ampm);
- const char * const*alt_digits = &_NL_CURRENT (LC_TIME, ALT_DIGITS);
- int nr_alt_digits = (_NL_CURRENT (LC_TIME, ALT_DIGITS + 1) - *alt_digits);
+ const char *alt_digits = _NL_CURRENT (LC_TIME, ALT_DIGITS);
+ const char *end_alt_digits = _NL_CURRENT (LC_TIME, ALT_DIGITS + 1);
#else
const char *const f_wkday = weekday_name[tp->tm_wday];
const char *const f_month = month_name[tp->tm_mon];
@@ -268,9 +278,6 @@ strftime (s, maxsize, format, tp)
#endif
size_t wkday_len = strlen (f_wkday);
size_t month_len = strlen (f_month);
- const unsigned int y_week0 = week (tp, 0, 7);
- const unsigned int y_week1 = week (tp, 1, 7);
- const unsigned int y_week2 = week (tp, 1, 3);
const char *zone;
size_t zonelen;
register size_t i = 0;
@@ -285,8 +292,8 @@ strftime (s, maxsize, format, tp)
if (!(zone && *zone) && tp->tm_isdst >= 0)
zone = tzname[tp->tm_isdst];
#endif
- if (!(zone && *zone))
- zone = "???";
+ if (! zone)
+ zone = ""; /* POSIX.2 requires the empty string here. */
zonelen = strlen (zone);
@@ -297,50 +304,101 @@ strftime (s, maxsize, format, tp)
for (f = format; *f != '\0'; ++f)
{
- enum { pad_zero, pad_space, pad_none } pad; /* Padding for number. */
- unsigned int digits; /* Max digits for numeric format. */
- unsigned int number_value; /* Numeric value to be printed. */
+ int pad; /* Padding for number ('-', '_', or 0). */
+ int modifier; /* Field modifier ('E', 'O', or 0). */
+ int digits; /* Max digits for numeric format. */
+ int number_value; /* Numeric value to be printed. */
int negative_number; /* 1 if the number is negative. */
- const char *subfmt = "";
- enum { none, alternate, era } modifier;
+ const char *subfmt;
char *bufp;
char buf[1 + (sizeof (int) < sizeof (time_t)
? INT_STRLEN_BOUND (time_t)
: INT_STRLEN_BOUND (int))];
-#if HAVE_MBLEN
- if (!isascii (*f))
+#if DO_MULTIBYTE
+
+ switch (*f)
{
- /* Non-ASCII, may be a multibyte. */
- int len = mblen (f, strlen (f));
- if (len > 0)
- {
- cpy(len, f);
- continue;
- }
+ case '%':
+ break;
+
+ case '\a': case '\b': case '\t': case '\n':
+ case '\v': case '\f': case '\r':
+ case ' ': case '!': case '"': case '#': case '&': case'\'':
+ case '(': case ')': case '*': case '+': case ',': case '-':
+ case '.': case '/': case '0': case '1': case '2': case '3':
+ case '4': case '5': case '6': case '7': case '8': case '9':
+ case ':': case ';': case '<': case '=': case '>': case '?':
+ case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
+ case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
+ case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
+ case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
+ case 'Y': case 'Z': case '[': case'\\': case ']': case '^':
+ case '_': case 'a': case 'b': case 'c': case 'd': case 'e':
+ case 'f': case 'g': case 'h': case 'i': case 'j': case 'k':
+ case 'l': case 'm': case 'n': case 'o': case 'p': case 'q':
+ case 'r': case 's': case 't': case 'u': case 'v': case 'w':
+ case 'x': case 'y': case 'z': case '{': case '|': case '}':
+ case '~':
+ /* The C Standard requires these 98 characters (plus '%') to
+ be in the basic execution character set. None of these
+ characters can start a multibyte sequence, so they need
+ not be analyzed further. */
+ add (1, *p = *f);
+ continue;
+
+ default:
+ /* Copy this multibyte sequence until we reach its end, find
+ an error, or come back to the initial shift state. */
+ {
+ mbstate_t mbstate = mbstate_zero;
+ size_t len = 0;
+
+ do
+ {
+ size_t bytes = mbrlen (f + len, (size_t) -1, &mbstate);
+
+ if (bytes == 0)
+ break;
+
+ if (bytes == (size_t) -2 || bytes == (size_t) -1)
+ {
+ len++;
+ break;
+ }
+
+ len += bytes;
+ }
+ while (! mbsinit (&mbstate));
+
+ cpy (len, f);
+ continue;
+ }
}
-#endif
+#else /* ! DO_MULTIBYTE */
+
+ /* Either multibyte encodings are not supported, or they are
+ safe for formats, so any non-'%' byte can be copied through. */
if (*f != '%')
{
add (1, *p = *f);
continue;
}
+#endif /* ! DO_MULTIBYTE */
+
/* Check for flags that can modify a number format. */
++f;
switch (*f)
{
case '_':
- pad = pad_space;
- ++f;
- break;
case '-':
- pad = pad_none;
- ++f;
+ pad = *f++;
break;
+
default:
- pad = pad_zero;
+ pad = 0;
break;
}
@@ -348,15 +406,12 @@ strftime (s, maxsize, format, tp)
switch (*f)
{
case 'E':
- ++f;
- modifier = era;
- break;
case 'O':
- ++f;
- modifier = alternate;
+ modifier = *f++;
break;
+
default:
- modifier = none;
+ modifier = 0;
break;
}
@@ -372,43 +427,42 @@ strftime (s, maxsize, format, tp)
--f;
/* Fall through. */
case '%':
- if (modifier != none)
+ if (modifier != 0)
goto bad_format;
add (1, *p = *f);
break;
case 'a':
- if (modifier != none)
+ if (modifier != 0)
goto bad_format;
cpy (aw_len, a_wkday);
break;
case 'A':
- if (modifier != none)
+ if (modifier != 0)
goto bad_format;
cpy (wkday_len, f_wkday);
break;
case 'b':
- case 'h': /* GNU extension. */
- if (modifier != none)
+ case 'h': /* POSIX.2 extension. */
+ if (modifier != 0)
goto bad_format;
cpy (am_len, a_month);
break;
case 'B':
- if (modifier != none)
+ if (modifier != 0)
goto bad_format;
cpy (month_len, f_month);
break;
case 'c':
- if (modifier == alternate)
+ if (modifier == 'O')
goto bad_format;
#ifdef _NL_CURRENT
- if (modifier == era)
- subfmt = _NL_CURRENT (LC_TIME, ERA_D_T_FMT);
- if (*subfmt == '\0')
+ if (! (modifier == 'E'
+ && *(subfmt = _NL_CURRENT (LC_TIME, ERA_D_T_FMT)) != '\0'))
subfmt = _NL_CURRENT (LC_TIME, D_T_FMT);
#else
subfmt = "%a %b %e %H:%M:%S %Z %Y";
@@ -423,40 +477,41 @@ strftime (s, maxsize, format, tp)
}
break;
- case 'C':
- if (modifier == alternate)
+ case 'C': /* POSIX.2 extension. */
+ if (modifier == 'O')
goto bad_format;
#ifdef _NL_CURRENT
- /* XXX I'm not sure about this. --drepper@gnu */
- if (modifier == era &&
- *(subfmt = _NL_CURRENT (LC_TIME, ERA)) != '\0')
- goto subformat;
+ /* XXX %EC is not implemented yet. */
#endif
- DO_NUMBER (2, (1900 + tp->tm_year) / 100);
+ {
+ int year = tp->tm_year + TM_YEAR_BASE;
+ DO_NUMBER (1, year / 100 - (year % 100 < 0));
+ }
case 'x':
- if (modifier == alternate)
+ if (modifier == 'O')
goto bad_format;
#ifdef _NL_CURRENT
- if (modifier == era)
- subfmt = _NL_CURRENT (LC_TIME, ERA_D_FMT);
- if (*subfmt == '\0')
+ if (! (modifier == 'E'
+ && *(subfmt = _NL_CURRENT (LC_TIME, ERA_D_FMT)) != '\0'))
subfmt = _NL_CURRENT (LC_TIME, D_FMT);
goto subformat;
#endif
/* Fall through. */
- case 'D': /* GNU extension. */
+ case 'D': /* POSIX.2 extension. */
+ if (modifier != 0)
+ goto bad_format;
subfmt = "%m/%d/%y";
goto subformat;
case 'd':
- if (modifier == era)
+ if (modifier == 'E')
goto bad_format;
DO_NUMBER (2, tp->tm_mday);
- case 'e': /* GNU extension: %d, but blank-padded. */
- if (modifier == era)
+ case 'e': /* POSIX.2 extension. */
+ if (modifier == 'E')
goto bad_format;
DO_NUMBER_SPACEPAD (2, tp->tm_mday);
@@ -466,22 +521,33 @@ strftime (s, maxsize, format, tp)
do_number_spacepad:
/* Force `_' flag. */
- pad = pad_space;
+ pad = '_';
do_number:
/* Format the number according to the MODIFIER flag. */
#ifdef _NL_CURRENT
- if (modifier == alternate && 0 <= number_value
- && number_value < (unsigned int) nr_alt_digits)
+ if (modifier == 'O' && 0 <= number_value)
{
/* ALT_DIGITS is the first entry in an array with
- alternative digit symbols. */
- size_t digitlen = strlen (*(alt_digits + number_value));
- if (digitlen == 0)
- break;
- cpy (digitlen, *(alt_digits + number_value));
- goto done_with_number;
+ alternative digit symbols. We have to find string
+ number NUMBER_VALUE, but must not look beyond
+ END_ALT_DIGITS. */
+ int run = number_value;
+ const char *cp = alt_digits;
+
+ while (run-- > 0 && cp < end_alt_digits)
+ cp = strchr (cp, '\0') + 1;
+
+ if (cp < end_alt_digits)
+ {
+ size_t digitlen = strlen (cp);
+ if (digitlen != 0)
+ {
+ cpy (digitlen, cp);
+ break;
+ }
+ }
}
#endif
{
@@ -502,11 +568,11 @@ strftime (s, maxsize, format, tp)
if (negative_number)
*--bufp = '-';
- if (pad != pad_none)
+ if (pad != '-')
{
int padding = digits - (buf + sizeof (buf) - bufp);
- if (pad == pad_space)
+ if (pad == '_')
{
while (0 < padding--)
*--bufp = ' ';
@@ -522,56 +588,52 @@ strftime (s, maxsize, format, tp)
}
cpy (buf + sizeof (buf) - bufp, bufp);
-
-#ifdef _NL_CURRENT
- done_with_number:
-#endif
break;
case 'H':
- if (modifier == era)
+ if (modifier == 'E')
goto bad_format;
DO_NUMBER (2, tp->tm_hour);
case 'I':
- if (modifier == era)
+ if (modifier == 'E')
goto bad_format;
DO_NUMBER (2, hour12);
case 'k': /* GNU extension. */
- if (modifier == era)
+ if (modifier == 'E')
goto bad_format;
DO_NUMBER_SPACEPAD (2, tp->tm_hour);
case 'l': /* GNU extension. */
- if (modifier == era)
+ if (modifier == 'E')
goto bad_format;
DO_NUMBER_SPACEPAD (2, hour12);
case 'j':
- if (modifier == era)
+ if (modifier == 'E')
goto bad_format;
DO_NUMBER (3, 1 + tp->tm_yday);
case 'M':
- if (modifier == era)
+ if (modifier == 'E')
goto bad_format;
DO_NUMBER (2, tp->tm_min);
case 'm':
- if (modifier == era)
+ if (modifier == 'E')
goto bad_format;
DO_NUMBER (2, tp->tm_mon + 1);
- case 'n': /* GNU extension. */
+ case 'n': /* POSIX.2 extension. */
add (1, *p = '\n');
break;
@@ -583,13 +645,16 @@ strftime (s, maxsize, format, tp)
subfmt = "%H:%M";
goto subformat;
- case 'r': /* GNU extension. */
- subfmt = "%I:%M:%S %p";
+ case 'r': /* POSIX.2 extension. */
+#ifdef _NL_CURRENT
+ if (*(subfmt = _NL_CURRENT (LC_TIME, T_FMT_AMPM)) == '\0')
+#endif
+ subfmt = "%I:%M:%S %p";
goto subformat;
case 'S':
- if (modifier == era)
- return 0;
+ if (modifier == 'E')
+ goto bad_format;
DO_NUMBER (2, tp->tm_sec);
@@ -630,67 +695,101 @@ strftime (s, maxsize, format, tp)
}
case 'X':
- if (modifier == alternate)
+ if (modifier == 'O')
goto bad_format;
#ifdef _NL_CURRENT
- if (modifier == era)
- subfmt = _NL_CURRENT (LC_TIME, ERA_T_FMT);
- if (*subfmt == '\0')
+ if (! (modifier == 'E'
+ && *(subfmt = _NL_CURRENT (LC_TIME, ERA_T_FMT)) != '\0'))
subfmt = _NL_CURRENT (LC_TIME, T_FMT);
goto subformat;
#endif
/* Fall through. */
- case 'T': /* GNU extension. */
+ case 'T': /* POSIX.2 extension. */
subfmt = "%H:%M:%S";
goto subformat;
- case 't': /* GNU extension. */
+ case 't': /* POSIX.2 extension. */
add (1, *p = '\t');
break;
+ case 'u': /* POSIX.2 extension. */
+ DO_NUMBER (1, (tp->tm_wday - 1 + 7) % 7 + 1);
+
case 'U':
- if (modifier == era)
+ if (modifier == 'E')
goto bad_format;
- DO_NUMBER (2, y_week0);
+ DO_NUMBER (2, (tp->tm_yday - tp->tm_wday + 7) / 7);
case 'V':
- if (modifier == era)
+ case 'g': /* GNU extension. */
+ case 'G': /* GNU extension. */
+ if (modifier == 'E')
goto bad_format;
+ {
+ int year = tp->tm_year + TM_YEAR_BASE;
+ int days = iso_week_days (tp->tm_yday, tp->tm_wday);
+
+ if (days < 0)
+ {
+ /* This ISO week belongs to the previous year. */
+ year--;
+ days = iso_week_days (tp->tm_yday + (365 + __isleap (year)),
+ tp->tm_wday);
+ }
+ else
+ {
+ int d = iso_week_days (tp->tm_yday - (365 + __isleap (year)),
+ tp->tm_wday);
+ if (0 <= d)
+ {
+ /* This ISO week belongs to the next year. */
+ year++;
+ days = d;
+ }
+ }
+
+ switch (*f)
+ {
+ case 'g':
+ DO_NUMBER (2, (year % 100 + 100) % 100);
+
+ case 'G':
+ DO_NUMBER (1, year);
- DO_NUMBER (2, y_week2);
+ default:
+ DO_NUMBER (2, days / 7 + 1);
+ }
+ }
case 'W':
- if (modifier == era)
+ if (modifier == 'E')
goto bad_format;
- DO_NUMBER (2, y_week1);
+ DO_NUMBER (2, (tp->tm_yday - (tp->tm_wday - 1 + 7) % 7 + 7) / 7);
case 'w':
- if (modifier == era)
+ if (modifier == 'E')
goto bad_format;
- DO_NUMBER (2, tp->tm_wday);
+ DO_NUMBER (1, tp->tm_wday);
case 'Y':
#ifdef _NL_CURRENT
- if (modifier == era
+ if (modifier == 'E'
&& *(subfmt = _NL_CURRENT (LC_TIME, ERA_YEAR)) != '\0')
goto subformat;
- else
#endif
- if (modifier == alternate)
- goto bad_format;
- else
- DO_NUMBER (4, 1900 + tp->tm_year);
+ if (modifier == 'O')
+ goto bad_format;
+ else
+ DO_NUMBER (1, tp->tm_year + TM_YEAR_BASE);
case 'y':
#ifdef _NL_CURRENT
- if (modifier == era
- && *(subfmt = _NL_CURRENT (LC_TIME, ERA_YEAR)) != '\0')
- goto subformat;
+ /* XXX %Ey is not implemented yet. */
#endif
- DO_NUMBER (2, tp->tm_year % 100);
+ DO_NUMBER (2, (tp->tm_year % 100 + 100) % 100);
case 'Z':
cpy(zonelen, zone);
@@ -740,26 +839,21 @@ strftime (s, maxsize, format, tp)
else
add (1, *p = '+');
- pad = pad_zero;
-
diff /= 60;
DO_NUMBER (4, (diff / 60) * 100 + diff % 60);
}
default:
- /* Bad format. */
+ /* Unknown format; output the format, including the '%',
+ since this is most likely the right thing to do if a
+ multibyte string has been misparsed. */
bad_format:
- if (pad == pad_space)
- add (1, *p = '_');
- else if (pad == pad_zero)
- add (1, *p = '0');
-
- if (modifier == era)
- add (1, *p = 'E');
- else if (modifier == alternate)
- add (1, *p = 'O');
-
- add (1, *p = *f);
+ {
+ int flen;
+ for (flen = 2; f[1 - flen] != '%'; flen++)
+ continue;
+ cpy (flen, &f[1 - flen]);
+ }
break;
}
}