From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13717 invoked from network); 27 Jul 1999 08:58:17 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 27 Jul 1999 08:58:17 -0000 Received: (qmail 22010 invoked by alias); 27 Jul 1999 08:58:09 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 7290 Received: (qmail 22003 invoked from network); 27 Jul 1999 08:58:08 -0000 To: zsh-workers@sunsite.auc.dk Subject: Re: CVS completer (Re: PATCH: Re: Completion/User functions again) References: <9907270815.AA06647@ibmth.df.unipi.it> 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 17:58:06 +0900 In-Reply-To: Peter Stephenson's message of "Tue, 27 Jul 1999 10:15:47 +0200" 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 <9907270815.AA06647@ibmth.df.unipi.it>, Peter Stephenson writes: > Tanaka Akira wrote: > > I think _cvs* are only for cvs, there is no necessity to make these > > autoloadable except _cvs. > > Urk. This has really set the cat among the pigeons. Instead of my last > message, perhaps someone could send me the current complete set of cvs > completions, with Bart's fixes. I'm sorry for my many separated patches. This includes another modification by me addition to Bart's fix. Now _cvs completes ordinary files if the directory is not maintained by CVS. ------------------------------------------------------------ #compdef cvs _cvs () { setopt localoptions extendedglob typeset -A commands commands=(add "ad new" admin "adm rcs" annotate ann checkout "co get" commit "ci com" diff "di dif" edit "" editors "" export "exp ex" history "hi his" import "im imp" init "" log "lo rlog" login "logon lgn" logout "" rdiff patch release "re rel" remove "rm delete" status "st stat" rtag "rt rfreeze" tag "ta freeze" unedit "" update "up upd" watch "" watchers "") local com="${words[(i)(${(j:|:)${(kv)=commands}})]}" local showlist='compstate[list]=list; compstate[force_list]=yes' local showhint="$showlist ; compstate[insert]=''" local complete_D="compadd today yesterday week\\ ago month\\ ago" local complete_k="compadd kv kvl k o b v" local complete_r="_cvsrevisions" local complete_m="compadd -UX 'Enter log message' -n ''; $showhint" if (( com < CURRENT )); then case "$words[$com]" in add|ad|new) # "+k:m:" _complete_opts k: "$complete_k" m: "$complete_m" || _cvsaddp ;; admin|adm|rcs) # "+ib::c:a:A:e:l::u::LUn:N:m:o:s:t::IqxV:k:" _complete_opts i '' b:: '' c: '' a: '' A: '' e: '' l:: '' u:: '' L '' \ U '' n: '' N: '' m: "$complete_m" o: '' s: '' t:: '' I '' q '' x '' \ V: '' k: "$complete_k" || _cvstargets ;; annotate|ann) # "+lr:D:fR" _complete_opts l '' r: '' D: '' f '' R '' || _cvstargets ;; checkout|co|get) # "+ANnk:d:flRpQqcsr:D:j:P" _complete_opts A '' N '' n '' k: "$complete_k" d: '' f '' l '' R ''\ p '' Q '' q '' c '' s '' r: "$complete_r" D: "$complete_D" j: '' \ P '' || _cvsrepositories ;; commit|ci|com) # "+nlRm:fF:r:" _complete_opts n '' l '' R '' m: "$complete_m" f '' F: '' \ r: "$complete_r" || _cvstargets_modified ;; diff|di|dif) # "+abcdefhilnpstuw0123456789BHNRC:D:F:I:L:U:V:W:k:r:" _complete_opts a '' b '' c '' d '' e '' f '' h '' i '' l '' n '' p '' \ s '' t '' u '' w '' 0 '' 1 '' 2 '' 3 '' 4 '' 5 '' 6 '' 7 '' 8 '' \ 9 '' B '' H '' N '' R '' C: '' D: "$complete_D" F: '' I: '' L: '' \ U: '' V: '' W: '' k: "$complete_k" r: "$complete_r" || _cvstargets_modified || _cvstargets ;; edit) # "+lRa:" _complete_opts l '' R '' a: '' || _cvstargets ;; editors) # "+lR" _complete_opts l '' R '' || _cvstargets ;; export|exp|ex) # "+ANnk:d:flRpQqcsr:D:j:P" _complete_opts A '' N '' n '' k: "$complete_k" d: '' f '' l '' R '' \ p '' Q '' q '' c '' s '' r: "$complete_r" D: "$complete_D" j: '' \ P '' || _cvsrepositories ;; history|hi|his) # "+Tacelow?D:b:f:m:n:p:r:t:u:x:X:z:" _complete_opts T '' a '' c '' e '' l '' o '' w '' \? '' \ D: "$complete_D" b: '' f: '' m: "$complete_m" n: '' p: '' r: '' \ t: '' u: '' x: '' X: '' z: '' || _cvstargets ;; import|im|imp) # "+Qqdb:m:I:k:W:" _complete_opts Q '' q '' d '' b: '' m: "$complete_m" I: '' \ k: "$complete_k" W: '' || case $[CURRENT-com] in 1) _cvsrepositories;; 2) compadd -UX "Enter vendor tag name" -n '' && eval "$showhint";; 3) compadd -UX "Enter release tag name" -n '' && eval "$showhint";; *) compadd -UX "No futher arguments used" -n '' && eval "$showhint";; esac ;; init) break ;; login|logon|lgn|logout) _complete_opts || _files ;; rdiff|patch|pa) # "+V:k:cuftsQqlRD:r:" _complete_opts V: '' k: "$complete_k" c '' u '' f '' t '' s '' Q '' \ q '' l '' R '' D: "$complete_D" r: "$complete_r" || _cvstargets ;; release|re|rel) # "+Qdq" _complete_opts Q '' d '' q '' || _files -/ ;; remove|rm|delete) # "+flR" _complete_opts f '' l '' R '' || _cvsremovep ;; status|st|stat) # "+vlR" _complete_opts v '' l '' R '' || _cvstargets ;; tag|ta|freeze) # "+FQqlRcdr:D:bf" _complete_opts F '' Q '' q '' l '' R '' c '' d '' r: "$complete_r" \ D: "$complete_D" b '' f '' || _cvstargets ;; unedit) # "+lR" _complete_opts l '' R '' || _cvstargets ;; update|up|upd) # "+ApPflRQqduk:r:D:j:I:W:" _complete_opts A '' p '' P '' f '' l '' R '' Q '' q '' d '' u '' \ k: "$complete_k" r: "$complete_r" D: "$complete_D" j: '' I: '' \ W: '' || _cvstargets ;; watch) if (( CURRENT == com + 1 )); then compadd on off add remove else case "$words[com+1]" in on|off) # "+lR" _complete_opts l '' R '' || _cvstargets ;; add|remove) # "+lRa:" _complete_opts l '' R '' a: '' || _cvstargets ;; esac fi ;; watchers) # "+lR" _complete_opts l '' R '' || _cvstargets ;; *) _files;; esac return fi case ${+cvs_roots} in 0) cvs_roots=() if [[ -f ~/.cvspass ]]; then cvs_roots=( $(cut -d ' ' -f 1 ~/.cvspass) ) fi ;; esac _complete_opts \ H '' Q '' q '' r '' w '' l '' n '' t '' v '' f '' a '' \ b: "compadd /usr/local/bin" \ T: "compadd $TMPPREFIX:h $TMPDIR /tmp" \ e: "compadd vi" \ d: "compadd $cvs_roots || _files -/" \ z: "compadd 9'" \ s: "_cvs_user_variable" \ || compadd ${(k)commands} || compadd ${(kv)=commands} } _cvsrevisions () { compadd - ${${${(M)${(f)"$(cvs -q status -vl .)"}:# *}##[ ]##}%%[ ]*} } _cvsrepositories () { local root=$CVSROOT [[ -f CVS/Root ]] && root=$(