diff options
-rw-r--r-- | ChangeLog | 15 | ||||
-rw-r--r-- | posix/fnmatch.c | 2 | ||||
-rw-r--r-- | posix/fnmatch_loop.c | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/fxstat.c | 13 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/lxstat.c | 13 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/xstat.c | 13 |
6 files changed, 45 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog index 7308622185..2af39fe53a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,20 @@ +2000-01-25 Andreas Schwab <schwab@suse.de> + + * posix/testfnm.c: Add new test case. Use FNM_PATHNAME instead of + FNM_FILE_NAME consistently. + 2000-01-25 Ulrich Drepper <drepper@cygnus.com> + * 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 <steve@xemacs.org>. + * string/strxfrm.c: Don't count in the terminating NUL byte/word. 2000-01-24 Paul Eggert <eggert@twinsun.com> diff --git a/posix/fnmatch.c b/posix/fnmatch.c index 85a50efbd8..18abf5da27 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 bfcdde6005..2928037cab 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 532341d284..2f48dc2c9b 100644 --- a/sysdeps/unix/sysv/linux/i386/fxstat.c +++ b/sysdeps/unix/sysv/linux/i386/fxstat.c @@ -28,6 +28,7 @@ #include <sysdep.h> #include <sys/syscall.h> +#include "kernel-features.h" #include <xstatconv.c> @@ -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 fa5b463362..f40bc2bc5f 100644 --- a/sysdeps/unix/sysv/linux/i386/lxstat.c +++ b/sysdeps/unix/sysv/linux/i386/lxstat.c @@ -28,6 +28,7 @@ #include <sysdep.h> #include <sys/syscall.h> +#include "kernel-features.h" #include <xstatconv.c> @@ -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 c879960a58..7dd83550de 100644 --- a/sysdeps/unix/sysv/linux/i386/xstat.c +++ b/sysdeps/unix/sysv/linux/i386/xstat.c @@ -28,6 +28,7 @@ #include <sysdep.h> #include <sys/syscall.h> +#include "kernel-features.h" #include <xstatconv.c> @@ -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 |