Browse Source

Escape some metachars that trip up .zdirstore script

Matt Cable 15 years ago
parent
commit
181a2ed537
1 changed files with 1 additions and 2 deletions
  1. 1 2
      lib/dirspersist.zsh

+ 1 - 2
lib/dirspersist.zsh

@@ -5,8 +5,7 @@
 # Run dirpersiststore in ~/.zlogout
 
 dirpersiststore () {
-# FIXME: need to escape all shell metacharacters, not just spaces!
-    dirs -p | sed 's/ /\\ /g;s/&/\\&/;s/^/pushd -q /;1!G;h;$!d;' > ~/.zdirstore
+    dirs -p | tail -r | perl -ne 'chomp;s/([& ])/\\$1/g ;print "if [ -d $_ ]; then pushd -q $_; fi\n"' > ~/.zdirstore
 }
 
 dirpersistrestore () {