chiark / gitweb /
dot/profile: Fix `__mdw_addto' if variable is initially empty.
authorMark Wooding <mdw@distorted.org.uk>
Sat, 30 May 2020 12:09:01 +0000 (13:09 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Sat, 30 May 2020 12:21:33 +0000 (13:21 +0100)
Previously it would leave an empty path component, which programs tend
to interpret (unhelpfully) as the current directory.

dot/profile

index 72cc5d3100d947c8c26e8d5b8b6daa3bca9804c6..6730a25c7c1b388ef94092523de0311c00f34898 100644 (file)
@@ -27,7 +27,6 @@ __mdw_addto () {
     case "$new:" in *:$i:*) continue;; esac
     if ! [ -d $i ]; then continue; fi
     case "$val" in
-      "") val=$i change=t; continue ;;
       $i) continue ;;
       *:$i:*) val=${val%%:$i:*}:${val#*:$i:} ;;
       $i:*) val=${val#$i:} ;;
@@ -36,8 +35,8 @@ __mdw_addto () {
     new=$new:$i change=t
   done
   case $dir in
-    l) val=${new#:}:$val ;;
-    r) val=$val$new ;;
+    l) val=${new#:}${val:+:$val} ;;
+    r) val=${val:+$val:}${new#:} ;;
   esac
   case $change in t) eval $var=\$val ;; esac
 }