Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

PATCH: zsh_directory_name_generic fix



Documented behaviour: if you refer to ~[x:y:z] and the function over
zsh_directory_name_generic doesn't handle the "x" component you don't
get an error, it simply returns 1 and lets another function handle it,
whereas if it does handle the "x" but doesn't handle one of the later
components it considers itself committed and reports an error.

Owing to a typo, the current actual behaviour is you always get an error
message.  Discovered this when I put a second mapper behind my git
mapper.  The hook handler doesn't distinguish the two cases, in fact, so
the message is the only difference.

This behaviour could be made configurable but currently it looks like
an unnecessary complexity.

Another cosmetic typo fixed, too.

pws

diff --git a/Functions/Chpwd/zsh_directory_name_generic b/Functions/Chpwd/zsh_directory_name_generic
index 9430c95..aa4bf9b 100644
--- a/Functions/Chpwd/zsh_directory_name_generic
+++ b/Functions/Chpwd/zsh_directory_name_generic
@@ -16,7 +16,7 @@ zmodload -i zsh/parameter
 zstyle -s ":zdn:${funcstack[2]}:" mapping _zdn_topvar || _zdn_topvar=zdn_top
 
 if (( ! ${(P)#_zdn_topvar} )); then
-  print -r -- "$0: $_zdn_topver is not set" >&2
+  print -r -- "$0: $_zdn_topvar is not set" >&2
   return 1
 fi
 
@@ -43,7 +43,7 @@ if [[ $1 = n ]]; then
 
     if [[ -z $_zdn_cpt ]]; then
       # If top level component, just try another expansion
-      if [[ $_zdn_var != $_zdn_top ]]; then
+      if [[ $_zdn_var != $_zdn_topvar ]]; then
 	# Committed to this expansion, so report failure.
 	print -r -- "$0: no expansion for directory name \`$_zdn_name'" >&2
       fi



Messages sorted by: Reverse Date, Date, Thread, Author