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

Bug? multicomp no longer works for paths starting with tilde (~)



The multicomp function seems to assume that
   newtop=${~origtop}
will expand to the user's home directory, but that doesn't happen.  Later,
   reply=(${~reply})
also doesn't expand the home directory, and hence finds no matches.

This seems to apply to both 3.0.5 and 3.1.4.  Am I just misunderstanding
what's supposed to be happening?  I reverted back to the baseline 3.1.4
version of multicomp, and it still won't complete anything starting with
a tilde.

The following seems to work better, but messes up if there are wildcards
following the tilde.  Suggestions?

Index: multicomp
===================================================================
*** multicomp	1998/08/19 18:00:16	1.2
--- multicomp	1998/08/19 19:04:22
***************
*** 3,9 ****
  # e.g. s/z/s -> src/zsh-2.4/src
  #
  # Usage: e.g.
! # compctl -D -f + -U -K multicomp
  #
  # Note that exactly matched directories are not expanded, e.g.
  # s/zsh-2.4/s<TAB> will not expand to src/zsh-2.4old/src.
--- 3,9 ----
  # e.g. s/z/s -> src/zsh-2.4/src
  #
  # Usage: e.g.
! # compctl -D -f + -U -Q -K multicomp
  #
  # Note that exactly matched directories are not expanded, e.g.
  # s/zsh-2.4/s<TAB> will not expand to src/zsh-2.4old/src.
***************
*** 32,38 ****
  if [[ "$pref" = \~* ]]; then
    # If the string started with ~, save the head and what it will become.
    origtop="${pref%%/*}"
!   newtop=${~origtop}
    # Save the expansion as the bit matched already
    sofar=($newtop)
    pref="${pref#$origtop}"
--- 32,38 ----
  if [[ "$pref" = \~* ]]; then
    # If the string started with ~, save the head and what it will become.
    origtop="${pref%%/*}"
!   eval newtop=${~origtop}
    # Save the expansion as the bit matched already
    sofar=($newtop)
    pref="${pref#$origtop}"

-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com



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