From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1466 invoked from network); 24 Mar 2000 11:45:10 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 24 Mar 2000 11:45:10 -0000 Received: (qmail 29879 invoked by alias); 24 Mar 2000 11:44:56 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 10225 Received: (qmail 29866 invoked from network); 24 Mar 2000 11:44:55 -0000 Date: Fri, 24 Mar 2000 12:44:48 +0100 (MET) Message-Id: <200003241144.MAA25838@beta.informatik.hu-berlin.de> From: Sven Wischnowsky To: zsh-workers@sunsite.auc.dk In-reply-to: Tanaka Akira's message of 24 Mar 2000 19:59:07 +0900 Subject: Re: dot file completion 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/. > ./ ..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 ./.' 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@informatik.hu-berlin.de