From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8920 invoked from network); 30 May 2000 07:47:11 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 30 May 2000 07:47:11 -0000 Received: (qmail 6898 invoked by alias); 30 May 2000 07:46:43 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 11647 Received: (qmail 6891 invoked from network); 30 May 2000 07:46:43 -0000 Date: Tue, 30 May 2000 09:46:40 +0200 (MET DST) Message-Id: <200005300746.JAA19777@beta.informatik.hu-berlin.de> From: Sven Wischnowsky To: zsh-workers@sunsite.auc.dk In-reply-to: "Bart Schaefer"'s message of Tue, 30 May 2000 05:54:16 +0000 Subject: PATCH: _arguments (was: Re: PATCH: Updated _rpm, but a bug with _arguments and: make check failure with latest CVS) Bart Schaefer wrote: > On May 30, 3:19am, Bart Schaefer wrote: > } Subject: PATCH: Updated _rpm, but a bug with _arguments > } > } As of the current CVS sources (_arguments revision 1.25) completion for rpm > } doesn't work any longer: > } > } zagzig[24] rpm --rc > } Completing no arguments > } (beep) > > It's actually much worse than this; option completion is entirely broken > when there's anything in the current word other than the leading hyphens. > The culprits seem to be the following two hunks of 11624; for example, if > I delete the `&& !line[2]' then completion after two hyphens and an alpha- > numeric starts working again, but one hyphen and an alphanum still fails. Yep, they should only be used when we have multiple sets. Sorry. The patch also moves the rpm-query-comments because they made _rpm fail for me. Vin Shelton wrote: > I'm getting the following error from 'make check': > > /usr/local/src/zsh-2000-05-29/Test/52zregexparse.ztst: all tests successful. > *** /tmp/zsh.ztst.out.12028 Mon May 29 14:55:41 2000 > --- /tmp/zsh.ztst.tout.12028 Mon May 29 14:55:41 2000 > *************** > *** 1,2 **** > ! line: {tst -}{} > ! MESSAGE:{arg} > --- 1 ---- > ! line: {tst -x }{} > Test /usr/local/src/zsh-2000-05-29/Test/53completion.ztst failed: output differs from expected as shown above for: > comptesteval 'compdef _tst tst; _tst () { _arguments "-x" ":arg:" }' > comptest $'tst -\t' > Was testing: _arguments > /usr/local/src/zsh-2000-05-29/Test/53completion.ztst: test failed. This had to do with _arguments, too. And with _message. Or something. Since _message doesn't add a dummy match anymore, the message isn't shown. For now I've just changed the test, but I've put it onto my list and will fix it after 3.1.7, together with the other things I mentioned in 11565. Bye Sven Index: Completion/Base/_arguments =================================================================== RCS file: /cvsroot/zsh/zsh/Completion/Base/_arguments,v retrieving revision 1.25 diff -u -r1.25 _arguments --- Completion/Base/_arguments 2000/05/29 09:15:14 1.25 +++ Completion/Base/_arguments 2000/05/30 07:44:50 @@ -319,6 +319,7 @@ compadd -QqS= - "${PREFIX}${SUFFIX}" else tmp1=( "$next[@]" "$direct[@]" "$odirect[@]" "$equal[@]" ) + [[ "$PREFIX" != --* ]] && tmp1=( "${(@)tmp1:#--*}" ) tmp3=( "${(M@)tmp1:#[-+]?[^:]*}" ) tmp1=( "${(M@)tmp1:#[-+]?(|:*)}" ) tmp2=( "${PREFIX}${(@M)^${(@)${(@)tmp1%%:*}#[-+]}:#?}" ) Index: Completion/Linux/_rpm =================================================================== RCS file: /cvsroot/zsh/zsh/Completion/Linux/_rpm,v retrieving revision 1.10 diff -u -r1.10 _rpm --- Completion/Linux/_rpm 2000/05/30 03:54:36 1.10 +++ Completion/Linux/_rpm 2000/05/30 07:44:50 @@ -117,6 +117,8 @@ case "$lstate" in query) + # --dump requires on of -{l,c,d} + # --triggers requires --script _arguments -s \ -q "${commonopts[@]}" "${packageopts[@]}" "${pathopts[@]}" \ '--queryformat:RPM query format:->tags' \ @@ -126,11 +128,11 @@ '-s[show file states]' \ '-d[documentation files only]' \ '-c[configuration files only]' \ - '--dump[show all information]' # Requires one of -{l,c,d} ... \ + '--dump[show all information]' \ --provides \ -{R,-requires}'[list dependencies]' \ '--scripts[show (un)install scripts]' \ - '--triggers[show trigger scripts]' # Requires --scripts ... \ + '--triggers[show trigger scripts]' \ '*:RPM package:->package_or_file' && ret=0 ;; setattrs) @@ -195,14 +197,14 @@ ;; target) _wanted target expl 'Target platforms' \ - compadd $(_call target rpm --showrc |grep 'compatible archs'|sed 's/.*: //') && ret=0 + compadd $(_call target rpm --showrc 2> /dev/null |grep 'compatible archs'|sed 's/.*: //') && ret=0 ;; package_or_file) state=package_file ;& package) _wanted packages expl 'RPM package' \ - compadd -M 'r:|-=* r:|=*' - $(_call packages rpm -qa) && ret=0 + compadd -M 'r:|-=* r:|=*' - $(_call packages rpm -qa 2> /dev/null) && ret=0 ;; spec_file) _wanted specfiles expl 'spec file' \ @@ -224,7 +226,7 @@ if compset -P '*%*\{'; then _wanted tags expl 'RPM tag' \ compadd -M 'm:{a-z}={A-Z}' -S '\}' - \ - "${(@)${(@f)$(_call tags rpm --querytags)}#RPMTAG_}" && ret=0 + "${(@)${(@f)$(_call tags rpm --querytags 2> /dev/null)}#RPMTAG_}" && ret=0 else _message 'RPM format' fi Index: Src/Zle/computil.c =================================================================== RCS file: /cvsroot/zsh/zsh/Src/Zle/computil.c,v retrieving revision 1.24 diff -u -r1.24 computil.c --- Src/Zle/computil.c 2000/05/29 08:00:47 1.24 +++ Src/Zle/computil.c 2000/05/30 07:44:51 @@ -1437,7 +1437,7 @@ state.def->type == CAA_RARGS)) { state.inrest = 0; state.opt = (cur == state.nargbeg + 1 && - (!*line || + (!multi || !*line || ((*line == '-' || *line == '+') && (!line[1] || (*line == '-' && line[1] == '-' && !line[2]))))); @@ -1516,7 +1516,7 @@ } } else { ca_laststate.def = adef; - ca_laststate.opt = (!arglast || !*line || + ca_laststate.opt = (!arglast || !multi || !*line || ((*line == '-' || *line == '+') && (!line[1] || (*line == '-' && line[1] == '-' && !line[2])))); Index: Test/53completion.ztst =================================================================== RCS file: /cvsroot/zsh/zsh/Test/53completion.ztst,v retrieving revision 1.4 diff -u -r1.4 53completion.ztst --- Test/53completion.ztst 2000/05/17 12:31:32 1.4 +++ Test/53completion.ztst 2000/05/30 07:44:51 @@ -129,8 +129,7 @@ comptesteval 'compdef _tst tst; _tst () { _arguments "-x" ":arg:" }' comptest $'tst -\t' 0:_arguments ->line: {tst -}{} ->MESSAGE:{arg} +>line: {tst -x }{} comptesteval 'compdef _tst tst; _tst () { _arguments "-x:arg:" }' comptest $'tst -x\t' -- Sven Wischnowsky wischnow@informatik.hu-berlin.de