#
 # GNU ls with colors available.
 if ls --color >/dev/null 2>&1; then
-    ls_env=
-    ls_color='--color'
-    ls_options=
+    ls_args='command ls --color'
 # Normal (BSD) ls with colors available.
 elif ls -G >/dev/null 2>&1; then
-    ls_env='CLICOLOR_FORCE=1'
-    ls_color='-G'
-    # Don't display hidden files by default when running as root. I use `la`
-    # for that.
-    ls_options='-I'
+    # Don't display hidden files by default when running as root (-I), I use
+    # `la` for that.
+    ls_args='CLICOLOR_FORCE=1 command ls -G -I'
 # Simple ls with no colors.
 else
-    ls_env=
-    ls_color=
-    ls_options=
+    ls_args='command ls'
 fi
 
 # Also check if `column -t` is available.
 fi
 
 generate shell/aliases .in simple_cpp \
-    LS_ENV LS_COLOR LS_OPTIONS COLUMN -- \
-    "$ls_env" "$ls_color" "$ls_options" "$column"
+    LS_ARGS COLUMN -- \
+    "$ls_args" "$column"
 
 # If `tig` is not available use my simple replacement.
 if ! installed tig; then
 
 # See `setup.sh` for details. LS_* are replaced with the appropriate values
 # when this file is generated.
 ls() {
-    LS_ENV command ls LS_COLOR LS_OPTIONS -C -F "$@" 2>&1 | less
+    LS_ARGS -C -F "$@" 2>&1 | less
 }
 
 unalias ll lt la lal lat 2>/dev/null