# --- Add elements to a path string ---
__mdw_addto () {
- local var=$1 val dir=$2 new=""
+ local var=$1 val dir=$2 new="" change=nil
eval "val=\$$var"
shift 2
for i in "$@"; do
[ -d $i ] || continue
case "X$val" in
X)
- val=$i
+ val=$i change=t
continue
;;
X$i)
val=${val%:$i}
;;
esac
- new=$new:$i
+ new=$new:$i change=t
done
case $dir in
l) val=${new#:}:$val;;
r) val=$val$new;;
esac
- export $var=$val
+ case $change in t) export $var=$val ;; esac
}
# --- Set the path variable ---