diff options
Diffstat (limited to 'lib/dirspersist.zsh')
-rw-r--r-- | lib/dirspersist.zsh | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/dirspersist.zsh b/lib/dirspersist.zsh index 8364a879c..973107c52 100644 --- a/lib/dirspersist.zsh +++ b/lib/dirspersist.zsh @@ -5,7 +5,8 @@ # Run dirpersiststore in ~/.zlogout dirpersiststore () { - dirs -p | sed 's/ /\\ /g;s/^/pushd -q /;1!G;h;$!d;' > ~/.zdirstore +# FIXME: need to escape all shell metacharacters, not just spaces! + dirs -p | sed 's/ /\\ /g;s/&/\\&/;s/^/pushd -q /;1!G;h;$!d;' > ~/.zdirstore } dirpersistrestore () { @@ -19,4 +20,4 @@ setopt autopushd pushdminus pushdsilent pushdtohome pushdignoredups dirpersistrestore # Make popd changes permanent without having to wait for logout -alias popd="popd;dirpersiststore"
\ No newline at end of file +alias popd="popd;dirpersiststore" |