From 655b26bb758d9acb15e4870c1c541bb25c36cdd1 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 31 Oct 1998 11:42:52 +0000 Subject: Update. 1998-10-29 Andreas Schwab * manual/locale.texi (Formatting Numbers): Fix strfmon examples. 1998-10-28 Andreas Schwab * sysdeps/generic/bits/select.h (__FD_ZERO): Change '\0' to plain 0, __fd_mask is usually not a char. 1998-10-30 Andreas Jaeger * sysdeps/unix/sysv/linux/sigpending.c (sigpending): Allow compilation on systems without rt_* syscalls (e.g. on Linux 2.0). * sysdeps/unix/sysv/linux/sigprocmask.c (__sigprocmask): Likewise. * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. * sysdeps/unix/sysv/linux/sigsuspend.c (__sigsuspend): Likewise * sysdeps/unix/sysv/linux/sigqueue.c: Likewise. * sysdeps/unix/sysv/linux/aio_sigqueue.c: Likewise. * sysdeps/unix/sysv/linux/i386/sigaction.c (__sigaction): Allow compiling on systems without rt_sigaction syscall. * sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c (__sigaction): Likewise. 1998-10-30 Andreas Jaeger * time/strptime.c (HERE_D_FMT): Fix typo. Reported by Claus Heine , PR libc/842. * catgets/test1.msg: New file. --- ChangeLog | 31 +++++++++++++++++++++++ bits/select.h | 2 +- manual/locale.texi | 6 ++--- sysdeps/generic/bits/select.h | 2 +- sysdeps/unix/sysv/linux/aio_sigqueue.c | 4 +++ sysdeps/unix/sysv/linux/i386/sigaction.c | 2 ++ sysdeps/unix/sysv/linux/sigpending.c | 2 ++ sysdeps/unix/sysv/linux/sigprocmask.c | 2 ++ sysdeps/unix/sysv/linux/sigqueue.c | 5 +++- sysdeps/unix/sysv/linux/sigsuspend.c | 2 ++ sysdeps/unix/sysv/linux/sigtimedwait.c | 4 +++ sysdeps/unix/sysv/linux/sigwaitinfo.c | 4 +++ sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c | 2 ++ time/strptime.c | 2 +- 14 files changed, 63 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5455bd20cb..e6a5ccc3d2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,8 +1,39 @@ +1998-10-29 Andreas Schwab + + * manual/locale.texi (Formatting Numbers): Fix strfmon examples. + +1998-10-28 Andreas Schwab + + * sysdeps/generic/bits/select.h (__FD_ZERO): Change '\0' to plain + 0, __fd_mask is usually not a char. + +1998-10-30 Andreas Jaeger + + * sysdeps/unix/sysv/linux/sigpending.c (sigpending): Allow + compilation on systems without rt_* syscalls (e.g. on Linux 2.0). + * sysdeps/unix/sysv/linux/sigprocmask.c (__sigprocmask): Likewise. + * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. + * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. + * sysdeps/unix/sysv/linux/sigsuspend.c (__sigsuspend): Likewise + * sysdeps/unix/sysv/linux/sigqueue.c: Likewise. + * sysdeps/unix/sysv/linux/aio_sigqueue.c: Likewise. + + * sysdeps/unix/sysv/linux/i386/sigaction.c (__sigaction): Allow + compiling on systems without rt_sigaction syscall. + * sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c (__sigaction): + Likewise. + +1998-10-30 Andreas Jaeger + + * time/strptime.c (HERE_D_FMT): Fix typo. + Reported by Claus Heine , PR libc/842. + 1998-10-30 Ulrich Drepper * catgets/Makefile (tests): Add rules to run gencat on test1.msg. (generate): Add test1.cat and test1.h. (distribute): Add test1.msg. + * catgets/test1.msg: New file. * catgets/gencat.c: Do a better job in initializing dynamic memory [PR libc/844]. diff --git a/bits/select.h b/bits/select.h index 1025532afe..4513135af9 100644 --- a/bits/select.h +++ b/bits/select.h @@ -28,7 +28,7 @@ unsigned int __i; \ __fd_set *__arr = (s); \ for (__i = 0; __i < sizeof (__fd_set) / sizeof (__fd_mask); ++__i) \ - __FDS_BITS (__arr)[__i] = '\0'; \ + __FDS_BITS (__arr)[__i] = 0; \ } while (0) #define __FD_SET(d, s) (__FDS_BITS (s)[__FDELT(d)] |= __FDMASK(d)) #define __FD_CLR(d, s) (__FDS_BITS (s)[__FDELT(d)] &= ~__FDMASK(d)) diff --git a/manual/locale.texi b/manual/locale.texi index 6208710121..b4b7f4b24f 100644 --- a/manual/locale.texi +++ b/manual/locale.texi @@ -1052,7 +1052,7 @@ strfmon (buf, 100, "@@%n@@%n@@%n@@", 123.45, -567.89, 12345.678); @noindent The output produced is @smallexample -"@@$123.45@@-$123.45@@$12,345.68@@" +"@@$123.45@@-$567.89@@$12,345.68@@" @end smallexample We can notice several things here. First, the width for all formats is @@ -1073,7 +1073,7 @@ strfmon (buf, 100, "@@%=*11n@@%=*11n@@%=*11n@@", 123.45, -567.89, 12345.678); The output this time is: @smallexample -"@@ $123.45@@ -$123.45@@ $12,345.68@@" +"@@ $123.45@@ -$567.89@@ $12,345.68@@" @end smallexample Two things stand out. First, all fields have the same width (eleven @@ -1119,7 +1119,7 @@ This rather complex format string produces the following output: The most noticeable change is the use of the alternative style to represent negative numbers. In financial circles it is often done using -braces and this is what the @samp{(} flag selected. The fill character +parentheses and this is what the @samp{(} flag selected. The fill character is now @samp{0}. Please note that this @samp{0} character is not regarded as a numeric zero and therefore the first and second number are not printed using a thousands separator. Since we use in the format the diff --git a/sysdeps/generic/bits/select.h b/sysdeps/generic/bits/select.h index 1025532afe..4513135af9 100644 --- a/sysdeps/generic/bits/select.h +++ b/sysdeps/generic/bits/select.h @@ -28,7 +28,7 @@ unsigned int __i; \ __fd_set *__arr = (s); \ for (__i = 0; __i < sizeof (__fd_set) / sizeof (__fd_mask); ++__i) \ - __FDS_BITS (__arr)[__i] = '\0'; \ + __FDS_BITS (__arr)[__i] = 0; \ } while (0) #define __FD_SET(d, s) (__FDS_BITS (s)[__FDELT(d)] |= __FDMASK(d)) #define __FD_CLR(d, s) (__FDS_BITS (s)[__FDELT(d)] &= ~__FDMASK(d)) diff --git a/sysdeps/unix/sysv/linux/aio_sigqueue.c b/sysdeps/unix/sysv/linux/aio_sigqueue.c index 8d1d5cf321..0500b3fbfa 100644 --- a/sysdeps/unix/sysv/linux/aio_sigqueue.c +++ b/sysdeps/unix/sysv/linux/aio_sigqueue.c @@ -26,6 +26,7 @@ #include "aio_misc.h" +#ifdef __NR_rt_sigqueueinfo extern int __syscall_rt_sigqueueinfo (int, int, siginfo_t *); @@ -47,3 +48,6 @@ __aio_sigqueue (sig, val) return INLINE_SYSCALL (rt_sigqueueinfo, 3, info.si_pid, sig, &info); } +#else +# include +#endif diff --git a/sysdeps/unix/sysv/linux/i386/sigaction.c b/sysdeps/unix/sysv/linux/i386/sigaction.c index ab19246c9c..142eac6a75 100644 --- a/sysdeps/unix/sysv/linux/i386/sigaction.c +++ b/sysdeps/unix/sysv/linux/i386/sigaction.c @@ -47,6 +47,7 @@ __sigaction (int sig, const struct sigaction *act, struct sigaction *oact) struct old_kernel_sigaction k_newact, k_oldact; int result; +#ifdef __NR_rt_sigaction /* First try the RT signals. */ if (!__libc_missing_rt_sigs) { @@ -83,6 +84,7 @@ __sigaction (int sig, const struct sigaction *act, struct sigaction *oact) __set_errno (saved_errno); __libc_missing_rt_sigs = 1; } +#endif if (act) { diff --git a/sysdeps/unix/sysv/linux/sigpending.c b/sysdeps/unix/sysv/linux/sigpending.c index b3706263a6..1d7e0d6597 100644 --- a/sysdeps/unix/sysv/linux/sigpending.c +++ b/sysdeps/unix/sysv/linux/sigpending.c @@ -38,6 +38,7 @@ int sigpending (set) sigset_t *set; { +#ifdef __NR_rt_pending /* First try the RT signals. */ if (!__libc_missing_rt_sigs) { @@ -52,6 +53,7 @@ sigpending (set) __set_errno (saved_errno); __libc_missing_rt_sigs = 1; } +#endif return INLINE_SYSCALL (sigpending, 1, set); } diff --git a/sysdeps/unix/sysv/linux/sigprocmask.c b/sysdeps/unix/sysv/linux/sigprocmask.c index 62c5f772f6..2028ed5e11 100644 --- a/sysdeps/unix/sysv/linux/sigprocmask.c +++ b/sysdeps/unix/sysv/linux/sigprocmask.c @@ -39,6 +39,7 @@ __sigprocmask (how, set, oset) const sigset_t *set; sigset_t *oset; { +#ifdef __NR_rt_sigprocmask /* First try the RT signals. */ if (!__libc_missing_rt_sigs) { @@ -54,6 +55,7 @@ __sigprocmask (how, set, oset) __set_errno (saved_errno); __libc_missing_rt_sigs = 1; } +#endif return INLINE_SYSCALL (sigprocmask, 3, how, set, oset); } diff --git a/sysdeps/unix/sysv/linux/sigqueue.c b/sysdeps/unix/sysv/linux/sigqueue.c index fa31119cfd..c3e05e159f 100644 --- a/sysdeps/unix/sysv/linux/sigqueue.c +++ b/sysdeps/unix/sysv/linux/sigqueue.c @@ -25,7 +25,7 @@ extern int __syscall_rt_sigqueueinfo (int, int, siginfo_t *); - +#ifdef __NR_rt_sigqueueinfo /* Return any pending signal or wait for one for the given time. */ int __sigqueue (pid, sig, val) @@ -46,3 +46,6 @@ __sigqueue (pid, sig, val) return INLINE_SYSCALL (rt_sigqueueinfo, 3, pid, sig, &info); } weak_alias (__sigqueue, sigqueue) +#else +# include +#endif diff --git a/sysdeps/unix/sysv/linux/sigsuspend.c b/sysdeps/unix/sysv/linux/sigsuspend.c index b9aeffe9ff..5dd0a9e782 100644 --- a/sysdeps/unix/sysv/linux/sigsuspend.c +++ b/sysdeps/unix/sysv/linux/sigsuspend.c @@ -38,6 +38,7 @@ int __sigsuspend (set) const sigset_t *set; { +#ifdef __NR_rt_sigsuspend /* First try the RT signals. */ if (!__libc_missing_rt_sigs) { @@ -52,6 +53,7 @@ __sigsuspend (set) __set_errno (saved_errno); __libc_missing_rt_sigs = 1; } +#endif return INLINE_SYSCALL (sigsuspend, 3, 0, 0, set->__val[0]); } diff --git a/sysdeps/unix/sysv/linux/sigtimedwait.c b/sysdeps/unix/sysv/linux/sigtimedwait.c index 09c04cf81b..4bb7396a42 100644 --- a/sysdeps/unix/sysv/linux/sigtimedwait.c +++ b/sysdeps/unix/sysv/linux/sigtimedwait.c @@ -22,6 +22,7 @@ #include #include +#ifdef __NR_rt_sigtimedwait extern int __syscall_rt_sigtimedwait (const sigset_t *, siginfo_t *, const struct timespec *, size_t); @@ -38,3 +39,6 @@ __sigtimedwait (set, info, timeout) return INLINE_SYSCALL (rt_sigtimedwait, 4, set, info, timeout, _NSIG / 8); } weak_alias (__sigtimedwait, sigtimedwait) +#else +# include +#endif diff --git a/sysdeps/unix/sysv/linux/sigwaitinfo.c b/sysdeps/unix/sysv/linux/sigwaitinfo.c index 718d179fc1..ae51275711 100644 --- a/sysdeps/unix/sysv/linux/sigwaitinfo.c +++ b/sysdeps/unix/sysv/linux/sigwaitinfo.c @@ -24,6 +24,7 @@ #include #include +#ifdef __NR_rt_sigtimedwait extern int __syscall_rt_sigtimedwait (const sigset_t *, siginfo_t *, const struct timespec *, size_t); @@ -39,3 +40,6 @@ __sigwaitinfo (set, info) return INLINE_SYSCALL (rt_sigtimedwait, 4, set, info, NULL, _NSIG / 8); } weak_alias (__sigwaitinfo, sigwaitinfo) +#else +# include +#endif diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c b/sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c index e18ffa818d..20cde2da2c 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c @@ -41,6 +41,7 @@ __sigaction (int sig, __const struct sigaction *act, struct sigaction *oact) struct old_kernel_sigaction k_sigact, k_osigact; int ret; +#ifdef __NR_rt_sigaction /* First try the RT signals. */ if (!__libc_missing_rt_sigs) { @@ -81,6 +82,7 @@ __sigaction (int sig, __const struct sigaction *act, struct sigaction *oact) __set_errno (saved_errno); __libc_missing_rt_sigs = 1; } +#endif /* Magic to tell the kernel we are using "new-style" signals, in that the signal table is not kept in userspace. Not the same as the diff --git a/time/strptime.c b/time/strptime.c index 48761075e2..d126b14616 100644 --- a/time/strptime.c +++ b/time/strptime.c @@ -142,7 +142,7 @@ extern const struct locale_data _nl_C_LC_TIME; # define month_name (&_nl_C_LC_TIME.values[_NL_ITEM_INDEX (MON_1)].string) # define ab_month_name (&_nl_C_LC_TIME.values[_NL_ITEM_INDEX (ABMON_1)].string) # define HERE_D_T_FMT (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (D_T_FMT)].string) -# define HERE_D_FMT (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (D_T_FMT)].string) +# define HERE_D_FMT (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (D_FMT)].string) # define HERE_AM_STR (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (AM_STR)].string) # define HERE_PM_STR (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (PM_STR)].string) # define HERE_T_FMT_AMPM \ -- cgit v1.2.3