summaryrefslogtreecommitdiff
path: root/lib/dirspersist.zsh
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dirspersist.zsh')
-rw-r--r--lib/dirspersist.zsh5
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"