From e80f7332e2d4522b44041f2add6d64e905f99589 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sat, 7 Feb 2004 16:01:02 +0000 Subject: [PATCH] Remove xstat function pointer member. The way it was used was not portable, since some systems (OSF V5.1, Solaris 2.5.1) provide static inline `stat' and `lstat' functions, thus making the tests of `xstat == lstat' in copy.c always fail. (struct cp_options) [xstat]: Remove member. (XSTAT): New macro. --- src/copy.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/copy.h b/src/copy.h index 10cdce9796..0979ee1af3 100644 --- a/src/copy.h +++ b/src/copy.h @@ -153,10 +153,6 @@ struct cp_options /* If nonzero, display the names of the files before copying them. */ int verbose; - /* A pointer to either lstat or stat, depending on - whether the copy should dereference symlinks. */ - int (*xstat) (); - /* If nonzero, stdin is a tty. */ int stdin_tty; @@ -178,6 +174,11 @@ struct cp_options int stat (); int lstat (); +# define XSTAT(X, Src_path, Src_sb) \ + ((X)->dereference == DEREF_NEVER \ + ? lstat (Src_path, Src_sb) \ + : stat (Src_path, Src_sb)) + /* Arrange to make lstat calls go through the wrapper function on systems with an lstat function that does not dereference symlinks that are specified with a trailing slash. */ -- 2.47.2