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

In the tla completion function: "${(@P)var_cmd-*:FILE:_files}"



I was just browsing through the new completion function for tla
in zsh 4.2.1, and I was wondering about the expression shown in
the subject:

  "${(@P)var_cmd-*:FILE:_files}"

>From what I've read in the manual, I'd guess that the @ flag is
a harmless bug that has no effect since $var_cmd is not an array,
and that the P flag makes the expression expand to the expansion of
the variable name contained in $var_cmd, if $var_cmd is defined;
if $var_cmd is not defined, I'd expect the expansion to give the
string after the '-':

  *:FILE:_files

I tried it out in an interactive session, but the '-' expansion
doesn't work.

  ##
  ## This works:
  ##
  % myvar=hello
  % foo=myvar
  % echo "${(@P)foo-bar}"
  hello

  ##
  ## This does not:
  ##
  % unset foo
  % echo "${(@P)foo-bar}"
  zsh: bad substitution

Is this a bug in the completion file that has gone unnoticed
because var_cmd has always been defined?

-- 
 Haakon



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