Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: dot file completion
- X-seq: zsh-workers 10225
- From: Sven Wischnowsky <wischnow@xxxxxxxxxxxxxxxxxxxxxxx>
- To: zsh-workers@xxxxxxxxxxxxxx
- Subject: Re: dot file completion
- Date: Fri, 24 Mar 2000 12:44:48 +0100 (MET)
- In-reply-to: Tanaka Akira's message of 24 Mar 2000 19:59:07 +0900
- Mailing-list: contact zsh-workers-help@xxxxxxxxxxxxxx; run by ezmlm
Tanaka Akira wrote:
> Z(2):akr@is27e1u11% Src/zsh -f
> is27e1u11% bindkey -e; autoload -U compinit; compinit -D; compdef _tst tst
> is27e1u11% mkdir z
> is27e1u11% touch z/.abc
> is27e1u11% _tst () { _files -g .abc }
> is27e1u11% tst z/.<TAB>
> ./ ..abc .abc
>
> `..abc' shouldn't be completed.
>
> And `./' too?
Mostly a problem with getting the patterns -- there was a empty string
in the $pats array. And then we shouldn't prepend a dot to patterns
already starting with one.
Note: with Tanaka's example doing `tst ./.<TAB>' when there is no file
`.abc' in the current directory will complete to `./.abc' nonetheless.
In some cases this may be interesting to have, but I guess in most
cases not, right? If anyone now answers `yes', I'll change it...
Bye
Sven
diff -ru ../z.old/Completion/Core/_path_files Completion/Core/_path_files
--- ../z.old/Completion/Core/_path_files Fri Mar 24 12:23:16 2000
+++ Completion/Core/_path_files Fri Mar 24 12:36:57 2000
@@ -30,6 +30,7 @@
else
pats=( "${(@)=${(@M)tmp1:#-g*}#-g}" )
fi
+pats=( "${(@)pats:# #}" )
if (( $#prepaths )); then
tmp1="${prepaths[2]}"
@@ -269,7 +270,7 @@
fi
else
if [[ ! -o globdots && "$PREFIX" = .* ]]; then
- tmp1=( ${^tmp1}${skipped}${^~pats} ${^tmp1}${skipped}.${^~pats} )
+ tmp1=( ${^tmp1}${skipped}${^~pats} ${^tmp1}${skipped}.${^~pats:#.*} )
else
tmp1=( ${^tmp1}${skipped}${^~pats} )
fi
--
Sven Wischnowsky wischnow@xxxxxxxxxxxxxxxxxxxxxxx
Messages sorted by:
Reverse Date,
Date,
Thread,
Author