Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
X=`cat ~/y` completion
- X-seq: zsh-users 21605
- From: Daniel Shahaf <d.s@xxxxxxxxxxxxxxxxxx>
- To: zsh-users@xxxxxxx
- Subject: X=`cat ~/y` completion
- Date: Fri, 03 Jun 2016 05:31:23 +0000
- List-help: <mailto:zsh-users-help@zsh.org>
- List-id: Zsh Users List <zsh-users.zsh.org>
- List-post: <mailto:zsh-users@zsh.org>
- Mailing-list: contact zsh-users-help@xxxxxxx; run by ezmlm
Consider the following two cases:
% X=`cat $HOME/t<TAB>
% X=`cat ~/t<TAB>
In 'zsh -f' + compinit, the former works but the latter doesn't.
I expect the latter to behave as the former does.
---
The last related discussion seems to be 35515/35539.
The `functions -t _main_complete` transcripts of the two cases first
diverge at _path_files:255, where «$HOME/t» takes the 'if' branch and
«~/» the 'else' path:
% nl -ba _path_files
253 # Now let's have a closer look at the string to complete.
254
255 if [[ "$pre" = [^][*?#^\|\<\>\\]#(\`[^\`]#\`|\$)*/* && "$compstate[quote]" != \' ]]; then
256
257 # If there is a parameter expansion in the word from the line, we try
258 # to complete the beast by expanding the prefix and completing anything
259 # after the first slash after the parameter expansion.
⋮
276 elif [[ "$pre[1]" = \~ && -z "$compstate[quote]" ]]; then
277
278 # It begins with `~', so remember anything before the first slash to be able
279 # to report it to the completion code. Also get an expanded version of it
⋮
322 else
323 # If the string does not start with a `~' we don't remove a prefix from the
324 # string.
⋮
353 fi
Messages sorted by:
Reverse Date,
Date,
Thread,
Author