ls --color no longer outputs unnecessary escape sequences
authorEd Avis <ed@membled.com>
Tue, 12 Feb 2008 11:22:35 +0000 (12:22 +0100)
committerJim Meyering <meyering@redhat.com>
Sun, 17 Feb 2008 10:16:08 +0000 (11:16 +0100)
commit483297d5ddaea930d61da1da9c3f052cbd3c3810
tree62a52587507c3d1b17ef8348d6698fec10f681d2
parent7dc26da47c9e01dc89fef9837219cdca1e9bbce6
ls --color no longer outputs unnecessary escape sequences

In --color mode, plain files do not get any color, not even white.
When no highlighting is required, ls outputs no escape sequence at all.
* src/ls.c (print_with_color):
(used_color): New global.
(indicator_no) [C_RESET]: New enum value.
(indicator_name) ["rs"]: Corresponding new string.
(color_indicator): Make the 'normal' and 'file' markers be NULL.
Use "rs" (C_RESET) to reset to ordinary colors.
(process_signals): Restore default colors only if necessary.
(main): Don't call prep_non_filename_text here.
(print_name_with_quoting): Call it here, instead.
(prep_non_filename_text): Use C_RESET, not C_NORM.
(print_color_indicator): Return bool, not void.
Print nothing, when possible.
(put_indicator): Call prep_non_filename_text the first time.
* tests/misc/ls-misc: Test for above.
* tests/ls/color-dtype-dir: Adapt: no escapes around regular file name.
* TODO: Remove item.
* NEWS: Mention this.
NEWS
TODO
src/ls.c
tests/ls/color-dtype-dir
tests/misc/ls-misc