From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14140 invoked from network); 27 Jul 1999 10:07:33 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 27 Jul 1999 10:07:33 -0000 Received: (qmail 5537 invoked by alias); 27 Jul 1999 10:07:24 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 7292 Received: (qmail 5528 invoked from network); 27 Jul 1999 10:07:23 -0000 To: zsh-workers@sunsite.auc.dk Subject: Re: PATCH: Re: CVS completer (Re: PATCH: Re: Completion/User functions again) References: <199907211127.NAA02895@beta.informatik.hu-berlin.de> <990721155446.ZM6856@candle.brasslantern.com> <990727074804.ZM25420@candle.brasslantern.com> MIME-Version: 1.0 (generated by AKEMI 1.13.2 - =?ISO-2022-JP?B?Ig==?= =?ISO-2022-JP?B?GyRCQTA0Y0s8GyhCIg==?=) Content-Type: text/plain; charset=US-ASCII From: Tanaka Akira Date: 27 Jul 1999 19:07:10 +0900 In-Reply-To: "Bart Schaefer"'s message of "Tue, 27 Jul 1999 07:48:04 +0000" Message-ID: User-Agent: Chao-gnus/6.12.5 AKEMI/1.13.2 (=?ISO-2022-JP?B?GyRCQTAbKEI=?= =?ISO-2022-JP?B?GyRCNGNLPBsoQg==?=) FLAM-DOODLE/1.12.6 (=?ISO-2022-JP?B?GyRCM3cbKEI=?= 10R4.0/5.0) Emacs/20.4 (sparc-sun-solaris2.6) MULE/4.0 (HANANOEN) In article <990727074804.ZM25420@candle.brasslantern.com>, "Bart Schaefer" writes: > zsh% cvs add > F#bar F#baz > zsh% cvs add > zsh% cvs add F\# > (BEEP) > zsh% cvs add F\# > (BEEP) > zsh% cvs add F\# > zsh% cvs add F# > F#bar F#baz > zsh% cvs add F# > zsh% cvs add F\# I tried to fix this problem by using compgen -g instead of compadd for _cvsaddp, _cvstargets and _cvstargets_modified. Although _cvsremovep has same problem too, this fix is not applicable because compgen -g does not generate nonexisting filenames. Any ideas? --- Completion/User/_cvs Tue Jul 27 18:16:28 1999 +++ /home/fs114/akr/arch/sunos5/usr/local/share/zsh/functions/_cvs Tue Jul 27 19:01:03 1999 @@ -182,22 +182,14 @@ } _cvsprefix () { - local f - qpref=$PREFIX - if [[ $qpref != */ ]]; then - if [[ $qpref = */* ]]; then - qpref=$qpref:h - else - qpref= - fi - fi - pref=$~qpref - if [[ ! -d "$pref" ]]; then + #if [[ -prefix */ ]]; then + if [[ x"$PREFIX" == x*/* ]]; then + qpref="${PREFIX%/*}/" + pref=$~qpref + else qpref= - pref= + pref=./ fi - [[ -n "$pref" && "$pref" != */ ]] && qpref=$qpref/ pref=$pref/ - [[ -z "$pref" ]] && pref=./ } _cvsdirentries () { @@ -248,56 +240,54 @@ } _cvsdirs () { - local qpref pref entries - _cvsprefix if [[ -d ${pref}CVS ]]; then _cvsdirentries - compadd -fP "$qpref" -W "$pref" - $entries + compadd -fW "$pref" - $entries else - _files + _files -W "$pref" fi } _cvstargets () { local qpref pref entries - _cvsprefix + _cvsprefix; compset -P '*/' if [[ -d ${pref}CVS ]]; then _cvsentries - compadd -fP "$qpref" -W "$pref" - $entries + compgen -W "$pref" -g "(${(j:|:)entries})" else - _files + _files -W "$pref" fi } _cvstargets_modified () { local qpref pref entries - _cvsprefix + _cvsprefix; compset -P '*/' if [[ -d ${pref}CVS ]]; then _cvsentries_modified - compadd -fP "$qpref" -W "$pref" - $entries + compgen -W "$pref" -g "(${(j:|:)entries})" else - _files + _files -W "$pref" fi } _cvsremovep () { local qpref pref entries - _cvsprefix + _cvsprefix; compset -P '*/' if [[ -d ${pref}CVS ]]; then _cvsentries setopt localoptions unset local omit omit=( ${pref}*(D:t) ) - eval 'compadd -fP "$qpref" -W "$pref" - ${entries:#('${(j:|:)omit}')}' || + eval 'compadd -fW "$pref" - ${entries:#('${(j:|:)omit}')}' || _cvsdirs else - _files + _files -W "$pref" fi } _cvsaddp () { local qpref pref entries - _cvsprefix + _cvsprefix; compset -P '*/' if [[ -d ${pref}CVS ]]; then _cvsentries setopt localoptions unset @@ -306,10 +296,10 @@ omit=( CVS $entries ${=cvsignore} ) [[ -r ~/.cvsignore ]] && omit=( $omit $(<~/.cvsignore) ) [[ -r ${pref}.cvsignore ]] && omit=( $omit $(<${pref}.cvsignore) ) - compgen -P "$qpref" -W "$pref" -g "*~*/(${(j:|:)omit})" || + compgen -W "$pref" -g "*~*/(${(j:|:)omit})" || _cvsdirs else - _files + _files -W "$pref" fi } -- Tanaka Akira