dot/shell-rc: Unify the policy on colouring.
authorMark Wooding <mdw@distorted.org.uk>
Sun, 12 May 2024 23:38:23 +0000 (00:38 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Sun, 12 May 2024 23:38:23 +0000 (00:38 +0100)
Also, inhibit colouring in Emacs shells.

dot/shell-rc

index 772625b..d3a45da 100644 (file)
@@ -241,17 +241,23 @@ alias abcl="rlwrap abcl --noinform"
 ###--------------------------------------------------------------------------
 ### Colour output.
 
+mdw_colour_p () {
+  if ! [ -t 1 ]; then return 1; fi
+  case $TERM in dumb) return 1 ;; esac
+  return 0
+}
+
 ## Arrange for `ls' output to be in colour.
 unalias ls 2>/dev/null || :
 ls () {
-  if [ -t 1 ]; then command ls $LS_OPTIONS ${LS_COLORS+--color=auto} "$@"
+  if mdw_colour_p; then command ls $LS_OPTIONS ${LS_COLORS+--color=auto} "$@"
   else command ls "$@"; fi
 }
 
 ## Arrange for `grep' output to be in colour.
 greplike () {
   local grep=$1; shift
-  if [ -t 1 ]; then
+  if mdw_colour_p; then
     command $grep ${GREP_COLORS+--color=always} "$@" | mdw-pager
   else
     command $grep "$@"
@@ -265,7 +271,7 @@ alias zgrep="greplike zgrep"
 ## Arrange for `diff' output to be in colour.
 difflike () {
   local diff=$1; shift
-  if [ -t 1 ]; then
+  if mdw_colour_p; then
     command $diff \
            ${DIFF_COLORS+--color=always} \
            ${DIFF_COLORS+--palette="$DIFF_COLORS"} \