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

Re: globcomplete desctroys file completion



On Feb 25,  5:30pm, Bart Schaefer wrote:
}
} Take a look at this:
} 
} schaefer<506> print T*/t*/t<TAB>
} schaefer<506> print Tmp/texlive/texmf-local/
} Completing default
} texlive/      texlive/      texlive/      texlive2008/
} texlive/      texlive/      texlive2008/  texlive2008/
} texlive/      texlive/      texlive2008/  texlive2008/
} texlive/      texlive/      texlive2008/  texlive2008/
} 
} (menu-select highlight is on the first "texlive/").  If I left-arrow

(That should have said "right-arrow")

} through the menu, I get e.g.
} 
} schaefer<506> print Tmp/texlive/texmf-config/
} 
} schaefer<506> print Tmp/texlive/texmf-var/
} 
} schaefer<506> print Tmp/texlive2008/texmf-dist/
} 
} This leads me to believe that really the second -s should have been
} a -S (a suffix, not a hidden suffix) and the first -s in tmp4 was in
} fact correct.

No, that's not right either.  At this point the following is the only
thing I've tried that gets me the same behavior (including proper cursor
placement) both with and without globcomplete set.  This bothers me,
because I don't understand why globcomplete sends us through this branch
of the code in the first place.  I mean, I follow the conditional logic
in _path_files that gets it here, but I don't know why the conditionals
are written the way they are.

--- ../current/Completion/Unix/Type/_path_files	2009-02-25 17:03:56.000000000 -0800
+++ Completion/Unix/Type/_path_files	2009-02-25 20:03:30.000000000 -0800
@@ -670,9 +670,9 @@
 	         "$pfxsfx[@]" $Mopts )
 	  if [[ -z "$listsfx" ]]; then
             for i in "$tmp1[@]"; do
-	      tmpdisp=("${i%%/*}")
+	      tmpdisp=("$i")
 	      _list_files tmpdisp "$prepath$realpath$testpath"
-	      compadd "$tmp4[@]" -s "/${i#*/}${Uopt:+$ISUFFIX}" $listopts - "$tmpdisp"
+	      compadd "$tmp4[@]" -s "${Uopt:+$ISUFFIX}" $listopts - "$tmpdisp"
 	    done
           else
             [[ -n "$compstate[pattern_match]" ]] && SUFFIX="${SUFFIX:s./.*/}*"



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