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

X=`cat ~/y` completion



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