svn commit: r284162 - head/bin/ls
Jilles Tjoelker
jilles at stack.nl
Fri Jun 19 21:54:28 UTC 2015
On Mon, Jun 08, 2015 at 07:13:05PM +0000, Xin LI wrote:
> Author: delphij
> Date: Mon Jun 8 19:13:04 2015
> New Revision: 284162
> URL: https://svnweb.freebsd.org/changeset/base/284162
> Log:
> It has been long time that when doing 'ls -G /path/to/a/symlink', instead of
> using the color of symbolic link, the color is determined by the link target.
> This behavior was quite confusing.
> Looking at the file history, it looks like that r203665 intends to fix this
> but the issue was never actually fixed.
> Fix this by not setting FTS_COMFOLLOW when color is requested like what was
> done in r203665.
> MFC after: 2 weeks
> Modified:
> head/bin/ls/ls.c
> Modified: head/bin/ls/ls.c
> ==============================================================================
> --- head/bin/ls/ls.c Mon Jun 8 18:59:14 2015 (r284161)
> +++ head/bin/ls/ls.c Mon Jun 8 19:13:04 2015 (r284162)
> @@ -413,9 +413,14 @@ main(int argc, char *argv[])
>
> /*
> * If not -F, -P, -d or -l options, follow any symbolic links listed on
> - * the command line.
> + * the command line, unless in color mode in which case we need to
> + * distinguish file type for a symbolic link itself and its target.
> */
> - if (!f_nofollow && !f_longform && !f_listdir && (!f_type || f_slash))
> + if (!f_nofollow && !f_longform && !f_listdir && (!f_type || f_slash)
> +#ifdef COLORLS
> + && !f_color
> +#endif
> + )
> fts_options |= FTS_COMFOLLOW;
>
> /*
Hmm. This makes -G or CLICOLOR env behave like -F in that symlinks are
no longer followed by default. This at least needs a change in the man
page to document it, and I'm not sure whether -G should actually modify
ls's action beyond adding colour.
For example, in stable/10 doing ls /sys, ls -p /sys and ls -G /sys show
a directory listing of the kernel source, while ls -F /sys shows just
the symlink.
What r203665 fixed was colour, inode number, etc. when -P was given and
-F/-d/-l were not.
I'll admit that this -F/-d/-l thing is bizarre but it has grown that way
historically and I've found ls implementations that deviate from this
annoying (e.g. on some embedded systems).
--
Jilles Tjoelker
More information about the svn-src-head
mailing list