|
@@ -183,6 +183,11 @@ wd_add()
|
|
|
then
|
|
|
wd_remove $point > /dev/null
|
|
|
printf "%q:%s\n" "${point}" "${PWD/#$HOME/~}" >> $WD_CONFIG
|
|
|
+ if (whence sort >/dev/null); then
|
|
|
+ local config_tmp=$(mktemp "${TMPDIR:-/tmp}/wd.XXXXXXXXXX")
|
|
|
+ # use 'cat' below to ensure we respect $WD_CONFIG as a symlink
|
|
|
+ sort -o "${config_tmp}" $WD_CONFIG && cat "${config_tmp}" > $WD_CONFIG && rm "${config_tmp}"
|
|
|
+ fi
|
|
|
|
|
|
wd_export_static_named_directories
|
|
|
|
|
@@ -342,8 +347,8 @@ wd_clean() {
|
|
|
wd_export_static_named_directories() {
|
|
|
if [[ -z $WD_SKIP_EXPORT ]]
|
|
|
then
|
|
|
- grep '^[0-9a-zA-Z_-]\+:' "$WD_CONFIG" | sed -e "s,~,$HOME," -e 's/:/=/' | while read warpdir ; do
|
|
|
- hash -d "$warpdir"
|
|
|
+ command grep '^[0-9a-zA-Z_-]\+:' "$WD_CONFIG" | sed -e "s,~,$HOME," -e 's/:/=/' | while read warpdir ; do
|
|
|
+ hash -d "$warpdir"
|
|
|
done
|
|
|
fi
|
|
|
}
|
|
@@ -430,7 +435,10 @@ else
|
|
|
break
|
|
|
;;
|
|
|
"-r"|"--remove"|"rm")
|
|
|
- wd_remove $2
|
|
|
+ # Loop over all arguments after "rm", separated by whitespace
|
|
|
+ for pointname in "${@:2}" ; do
|
|
|
+ wd_remove $pointname
|
|
|
+ done
|
|
|
break
|
|
|
;;
|
|
|
"-l"|"list")
|