From: Jim Meyering Date: Sun, 19 Dec 1999 10:23:26 +0000 (+0000) Subject: [! LSTAT_FOLLOWS_SLASHED_SYMLINK]: Use lstat wrapper. X-Git-Tag: FILEUTILS-4_0l~8 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3d58863d57a3eaf288309f85155a1968d0718aa2;p=platform%2Fupstream%2Fcoreutils.git [! LSTAT_FOLLOWS_SLASHED_SYMLINK]: Use lstat wrapper. [Notice the new test in m4/lstat-slash.m4. ] (main): Back out change from 1999-02-19 that made ls remove trailing slashes from command line arguments to accommodate early versions of Linux. Now, `ls symlink-to-dir/' acts like `ls symlink-to-dir/.' thus following the symbolic link, as POSIX says it should. Suggestion from Bruno Haible and Andreas Schwab. --- diff --git a/src/ls.c b/src/ls.c index f179fae..692b448 100644 --- a/src/ls.c +++ b/src/ls.c @@ -143,6 +143,15 @@ # define S_ISDOOR(Mode) 0 #endif +/* 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. */ +#if ! LSTAT_FOLLOWS_SLASHED_SYMLINK +int rpl_lstat PARAMS((const char *, struct stat *)); +# undef lstat +# define lstat(Name, Stat_buf) rpl_lstat(Name, Stat_buf) +#endif + enum filetype { symbolic_link, @@ -202,7 +211,6 @@ time_t time (); char *getgroup (); char *getuser (); -void strip_trailing_slashes (); static size_t quote_name PARAMS ((FILE *out, const char *name, struct quoting_options const *options)); @@ -796,7 +804,6 @@ main (int argc, char **argv) dir_defaulted = 0; for (; i < argc; i++) { - strip_trailing_slashes (argv[i]); gobble_file (argv[i], 1, ""); }