On 11/05/11 16:52, Jim Meyering wrote:
> diff --git a/src/ls.c b/src/ls.c
> index 4262923..54876ce 100644
> --- a/src/ls.c
> +++ b/src/ls.c
> @@ -2740,7 +2740,10 @@ gobble_file (char const *name, enum filetype type, 
> ino_t inode,
>        /* When coloring a directory (we may know the type from
>           direct.d_type), we have to stat it in order to indicate
>           sticky and/or other-writable attributes.  */
> -      || (type == directory && print_with_color)
> +      || (type == directory && print_with_color
> +          && (is_colored (C_OTHER_WRITABLE)
> +              || is_colored (C_STICKY)
> +              || is_colored (C_STICKY_OTHER_WRITABLE)))
>        /* When dereferencing symlinks, the inode and type must come from
>           stat, but readdir provides the inode and type of lstat.  */
>        || ((print_inode || format_needs_type)

Looks good.

Cool, my `l`¹ script will no longer stat dirs now,
as it disables these colors in preference to highlighting
the pertinent bit of the permissions string.

cheers,
Pádraig.

¹ http://www.pixelbeat.org/scripts/l

Reply via email to