From 1827fc4c9819187f1084fecd92f3071e3482defa Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 26 Jan 2000 03:22:20 +0000 Subject: [PATCH] Update. 2000-01-25 Andreas Schwab * posix/testfnm.c: Add new test case. Use FNM_PATHNAME instead of FNM_FILE_NAME consistently. * posix/fnmatch.c: Define STRCOLL appropriately for the loop definition. * posix/fnmatch_loop.c: Undefine STRCOLL. * sysdeps/unix/sysv/linux/i386/fxstat.c: Correct code to handle kernels with stat64 support. * sysdeps/unix/sysv/linux/i386/lxstat.c: Likewise * sysdeps/unix/sysv/linux/i386/xstat.c: Likewise. Patch by SL Baur . --- ChangeLog | 15 +++++++++++++++ posix/fnmatch.c | 2 ++ posix/fnmatch_loop.c | 1 + sysdeps/unix/sysv/linux/i386/fxstat.c | 13 +++++++++---- sysdeps/unix/sysv/linux/i386/lxstat.c | 13 +++++++++---- sysdeps/unix/sysv/linux/i386/xstat.c | 13 +++++++++---- 6 files changed, 45 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7308622..2af39fe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,20 @@ +2000-01-25 Andreas Schwab + + * posix/testfnm.c: Add new test case. Use FNM_PATHNAME instead of + FNM_FILE_NAME consistently. + 2000-01-25 Ulrich Drepper + * posix/fnmatch.c: Define STRCOLL appropriately for the loop + definition. + * posix/fnmatch_loop.c: Undefine STRCOLL. + + * sysdeps/unix/sysv/linux/i386/fxstat.c: Correct code to handle + kernels with stat64 support. + * sysdeps/unix/sysv/linux/i386/lxstat.c: Likewise + * sysdeps/unix/sysv/linux/i386/xstat.c: Likewise. + Patch by SL Baur . + * string/strxfrm.c: Don't count in the terminating NUL byte/word. 2000-01-24 Paul Eggert diff --git a/posix/fnmatch.c b/posix/fnmatch.c index 85a50ef..18abf5d 100644 --- a/posix/fnmatch.c +++ b/posix/fnmatch.c @@ -191,6 +191,7 @@ __wcschrnul (s, c) # endif # define STRCHR(S, C) strchr (S, C) # define STRCHRNUL(S, C) __strchrnul (S, C) +# define STRCOLL(S1, S2) strcoll (S1, S2) # include "fnmatch_loop.c" @@ -208,6 +209,7 @@ __wcschrnul (s, c) # define BTOWC(C) (C) # define STRCHR(S, C) wcschr (S, C) # define STRCHRNUL(S, C) __wcschrnul (S, C) +# define STRCOLL(S1, S2) wcscoll (S1, S2) # undef IS_CHAR_CLASS # ifdef _LIBC diff --git a/posix/fnmatch_loop.c b/posix/fnmatch_loop.c index bfcdde6..2928037 100644 --- a/posix/fnmatch_loop.c +++ b/posix/fnmatch_loop.c @@ -346,5 +346,6 @@ FCT (pattern, string, no_leading_period, flags) #undef FCT #undef STRCHR #undef STRCHRNUL +#undef STRCOLL #undef L #undef BTOWC diff --git a/sysdeps/unix/sysv/linux/i386/fxstat.c b/sysdeps/unix/sysv/linux/i386/fxstat.c index 532341d..2f48dc2 100644 --- a/sysdeps/unix/sysv/linux/i386/fxstat.c +++ b/sysdeps/unix/sysv/linux/i386/fxstat.c @@ -28,6 +28,7 @@ #include #include +#include "kernel-features.h" #include @@ -53,10 +54,14 @@ __fxstat (int vers, int fd, struct stat *buf) return INLINE_SYSCALL (fstat, 2, fd, (struct kernel_stat *) buf); } #if __ASSUME_STAT64_SYSCALL > 0 - result = INLINE_SYSCALL (fstat64, 2, fd, &buf64); - if (result == 0) - result = xstat32_conv (vers, &buf64, buf); - return result; + { + struct stat64 buf64; + + result = INLINE_SYSCALL (fstat64, 2, fd, &buf64); + if (result == 0) + result = xstat32_conv (vers, &buf64, buf); + return result; + } #else # if defined __NR_stat64 diff --git a/sysdeps/unix/sysv/linux/i386/lxstat.c b/sysdeps/unix/sysv/linux/i386/lxstat.c index fa5b463..f40bc2b 100644 --- a/sysdeps/unix/sysv/linux/i386/lxstat.c +++ b/sysdeps/unix/sysv/linux/i386/lxstat.c @@ -28,6 +28,7 @@ #include #include +#include "kernel-features.h" #include @@ -55,10 +56,14 @@ __lxstat (int vers, const char *name, struct stat *buf) } #if __ASSUME_STAT64_SYSCALL > 0 - result = INLINE_SYSCALL (lstat64, 2, name, &buf64); - if (result == 0) - result = xstat32_conv (vers, &buf64, buf); - return result; + { + struct stat64 buf64; + + result = INLINE_SYSCALL (lstat64, 2, name, &buf64); + if (result == 0) + result = xstat32_conv (vers, &buf64, buf); + return result; + } #else # if defined __NR_stat64 diff --git a/sysdeps/unix/sysv/linux/i386/xstat.c b/sysdeps/unix/sysv/linux/i386/xstat.c index c879960..7dd8355 100644 --- a/sysdeps/unix/sysv/linux/i386/xstat.c +++ b/sysdeps/unix/sysv/linux/i386/xstat.c @@ -28,6 +28,7 @@ #include #include +#include "kernel-features.h" #include @@ -54,10 +55,14 @@ __xstat (int vers, const char *name, struct stat *buf) return INLINE_SYSCALL (stat, 2, name, (struct kernel_stat *) buf); } #if __ASSUME_STAT64_SYSCALL > 0 - result = INLINE_SYSCALL (stat64, 2, name, &buf64); - if (result == 0) - result = xstat32_conv (vers, &buf64, buf); - return result; + { + struct stat64 buf64; + + result = INLINE_SYSCALL (stat64, 2, name, &buf64); + if (result == 0) + result = xstat32_conv (vers, &buf64, buf); + return result; + } #else # if defined __NR_stat64 /* To support 32 bit UIDs, we have to use stat64. The normal stat call only returns -- 2.7.4