diff options
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | stdio-common/vfscanf.c | 18 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/shmctl.c | 15 |
3 files changed, 18 insertions, 17 deletions
@@ -1,5 +1,7 @@ 2000-02-11 Ulrich Drepper <drepper@redhat.com> + * sysdeps/unix/sysv/linux/i386/shmctl.c: Fix handling of save_errno. + * locale/langinfo.h: Make CRNCYSTR a separate entry instead of an alias for CURRENCY_SYMBOL. * locale/programs/ld-monetary.c: Add support to write out CRNCYSTR diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c index 6b95352971..0412ca66eb 100644 --- a/stdio-common/vfscanf.c +++ b/stdio-common/vfscanf.c @@ -1202,7 +1202,7 @@ __vfscanf (FILE *s, const char *format, va_list argptr) int from_level; int to_level; #ifdef COMPILE_WPRINTF - const wchar_t *wcdigits; + const wchar_t *wcdigits[10]; #else const char *mbdigits[10]; #endif @@ -1221,19 +1221,19 @@ __vfscanf (FILE *s, const char *format, va_list argptr) and also perform the first round of comparisons. */ for (n = 0; n < 10; ++n) { - size_t dlen; - size_t dcnt; - /* Get the string for the digits with value N. */ #ifdef COMPILE_WPRINTF - wcdigits[n] = _NL_CURRENT (LC_CTYPE, - _NL_CTYPE_INDIGITS0_WC + n); - if (c == *wcdigit[n]) + wcdigits[n] = (const wchar_t *) + _NL_CURRENT (LC_CTYPE, _NL_CTYPE_INDIGITS0_WC + n); + if (c == *wcdigits[n]) break; /* Advance the pointer to the next string. */ ++wcdigits[n]; #else + size_t dlen; + size_t dcnt; + mbdigits[n] = _NL_CURRENT (LC_CTYPE, _NL_CTYPE_INDIGITS0_MB + n); dlen = strlen (mbdigits[n]); @@ -1253,8 +1253,8 @@ __vfscanf (FILE *s, const char *format, va_list argptr) /* Advance the pointer to the next string. */ mbdigits[n] += dlen + 1; - } #endif + } if (n == 10) { @@ -1265,7 +1265,7 @@ __vfscanf (FILE *s, const char *format, va_list argptr) for (n = 0; n < 10; ++n) { #ifdef COMPILE_WPRINTF - if (c == *wcdigit[n]) + if (c == *wcdigits[n]) break; /* Advance the pointer to the next string. */ diff --git a/sysdeps/unix/sysv/linux/i386/shmctl.c b/sysdeps/unix/sysv/linux/i386/shmctl.c index 2fffc16f1f..0b68d785fe 100644 --- a/sysdeps/unix/sysv/linux/i386/shmctl.c +++ b/sysdeps/unix/sysv/linux/i386/shmctl.c @@ -80,24 +80,23 @@ __new_shmctl (int shmid, int cmd, struct shmid_ds *buf) case SHM_STAT: case IPC_STAT: case IPC_SET: -#if __WORDSIZE != 32 +# if __WORDSIZE != 32 case IPC_INFO: -#endif +# endif break; default: return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0, buf); } { - int save_errno = result; struct __old_shmid_ds old; -#ifdef __NR_getuid32 +# ifdef __NR_getuid32 if (__libc_missing_32bit_uids <= 0) { if (__libc_missing_32bit_uids < 0) { - save_errno = errno; + int save_errno = errno; /* Test presence of new IPC by testing for getuid32 syscall. */ result = INLINE_SYSCALL (getuid32, 0); @@ -113,7 +112,7 @@ __new_shmctl (int shmid, int cmd, struct shmid_ds *buf) return result; } } -#endif +# endif if (cmd == IPC_SET) { @@ -146,7 +145,7 @@ __new_shmctl (int shmid, int cmd, struct shmid_ds *buf) buf->shm_cpid = old.shm_cpid; buf->shm_lpid = old.shm_lpid; } -#if __WORDSIZE != 32 +# if __WORDSIZE != 32 else if (result != -1 && cmd == IPC_INFO) { struct __old_shminfo *oldi = (struct __old_shminfo *)&old; @@ -159,7 +158,7 @@ __new_shmctl (int shmid, int cmd, struct shmid_ds *buf) i->shmseg = oldi->shmseg; i->shmall = oldi->shmall; } -#endif +# endif return result; } #endif |