From: Jim Meyering Date: Sat, 7 Feb 2004 16:01:02 +0000 (+0000) Subject: Remove xstat function pointer member. The way it was used was not X-Git-Tag: v5.1.3~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e80f7332e2d4522b44041f2add6d64e905f99589;p=thirdparty%2Fcoreutils.git 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. --- 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. */