diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 8dd039545..12076fd63 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -5,6 +5,8 @@ This release of fish contains a number of fixes for problems identified in fish Notable improvements and fixes ------------------------------ +- ``LS_COLORS`` is no longer set automatically by ``ls`` (:issue:`10080`). Users + that set ``.dircolors`` should manually import it using other means. Deprecations and removed features --------------------------------- diff --git a/share/functions/ls.fish b/share/functions/ls.fish index da05d9887..369dcb860 100644 --- a/share/functions/ls.fish +++ b/share/functions/ls.fish @@ -1,22 +1,3 @@ -function __fish_set_lscolors --description 'Set $LS_COLORS if possible' - if ! set -qx LS_COLORS && set -l cmd (command -s {g,}dircolors)[1] - set -l colorfile - for file in ~/.dir_colors ~/.dircolors /etc/DIR_COLORS - if test -f $file - set colorfile $file - break - end - end - # Here we rely on the legacy behavior of `dircolors -c` producing output - # suitable for csh in order to extract just the data we're interested in. - set -gx LS_COLORS ($cmd -c $colorfile | string split ' ')[3] - # The value should always be quoted but be conservative and check first. - if string match -qr '^([\'"]).*\1$' -- $LS_COLORS - set LS_COLORS (string match -r '^.(.*).$' $LS_COLORS)[2] - end - end -end - function ls --description "List contents of directory" # Make ls use colors and show indicators if we are on a system that supports that feature and writing to stdout. # @@ -34,10 +15,10 @@ function ls --description "List contents of directory" # Since that one's quite different, don't use it. if command -sq colorls and command colorls -GF >/dev/null 2>/dev/null - set -g __fish_ls_color_opt -GF + set -g __fish_ls_color_opt -G set -g __fish_ls_command colorls else - for opt in --color=auto -G --color -F + for opt in --color=auto -G --color if command ls $opt / >/dev/null 2>/dev/null set -g __fish_ls_color_opt $opt break @@ -46,9 +27,6 @@ function ls --description "List contents of directory" end end - # Set the colors to the default via `dircolors` if none is given. - __fish_set_lscolors - set -l opt isatty stdout and set -a opt -F