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
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to