diff options
42 files changed, 2462 insertions, 1119 deletions
@@ -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. @@ -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; \ @@ -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. # @@ -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; } } |