zsh-workers
 help / color / mirror / code / Atom feed
From: Sven Wischnowsky <wischnow@informatik.hu-berlin.de>
To: zsh-workers@sunsite.auc.dk
Subject: Re: PATCH: completion
Date: Mon, 23 Aug 1999 14:00:45 +0200 (MET DST)	[thread overview]
Message-ID: <199908231200.OAA03141@beta.informatik.hu-berlin.de> (raw)
In-Reply-To: Tanaka Akira's message of 23 Aug 1999 19:54:11 +0900


Tanaka Akira wrote:

> GNU getopt_long supports the style.
> 
> getopt_long(3):
> 
>        The getopt_long() function works like getopt() except that
>        it  also  accepts long options, started out by two dashes.
>        Long option names may be abbreviated if  the  abbreviation
>        is unique or is an exact match for some defined option.  A
>        long option may take a parameter, of the form  --arg=param
>        or --arg param.
> 
> So, many GNU commands accept that.

Urgh. Sorry, didn't know about that. Hrmpf, do we have to make
`_long_options' accept these? Should we join `_arguments' and
`_long_options'? Hm.

> This is because "-a" in compadd arguments. It is the result of
> expansion of "dopts[${(@)^dopts[(I)${ws[1][1]}[$uns]]}]" and
> "odopts[${(@)^odopts[(I)${ws[1][1]}[$uns]]}]".

Ah, sorry, I didn't test it with `[(I)...]'. So I think this is a real 
bug, to be fixed in C. I'd like to hear Bart about this, though,
because there was explicit code to turn empty array-subscripts into
non-arrays. Maybe the effect this had on associations subscripted with 
`[(I)...]' and `[(R)...]' was pure oversight, though.

Bye
 Sven

diff -u os/params.c Src/params.c
--- os/params.c	Fri Aug 20 15:18:08 1999
+++ Src/params.c	Mon Aug 23 13:56:27 1999
@@ -940,7 +940,9 @@
 			v->isarr |= SCANPM_MATCHVAL;
 		    if (down)
 			v->isarr |= SCANPM_MATCHMANY;
-		    if ((ta = getvaluearr(v)) && *ta) {
+		    if ((ta = getvaluearr(v)) &&
+			(*ta || ((v->isarr & SCANPM_MATCHMANY) &&
+				 (v->isarr & (SCANPM_MATCHKEY | SCANPM_MATCHVAL))))) {
 			*inv = v->inv;
 			*w = v->b;
 			return 1;
@@ -1117,7 +1119,9 @@
 	    }
 	    if (*s == ']' || *s == Outbrack) {
 		s++;
-		if (v->isarr && a == b)
+		if (v->isarr && a == b && 
+		    (!(v->isarr & SCANPM_MATCHMANY) ||
+		     !(v->isarr & (SCANPM_MATCHKEY | SCANPM_MATCHVAL))))
 		    v->isarr = 0;
 		v->a = a;
 		v->b = b;

--
Sven Wischnowsky                         wischnow@informatik.hu-berlin.de


             reply	other threads:[~1999-08-23 12:01 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-08-23 12:00 Sven Wischnowsky [this message]
1999-08-25 15:14 ` Empty [(I)...] subscripting of assoc arrays (was Re: PATCH: completion) Bart Schaefer
  -- strict thread matches above, loose matches on Subject: below --
2000-02-21  9:50 PATCH: completion Sven Wischnowsky
1999-10-28  8:12 Sven Wischnowsky
1999-10-28  6:58 Sven Wischnowsky
1999-10-27  8:42 Sven Wischnowsky
1999-10-27 16:39 ` Bart Schaefer
1999-10-27  7:14 Sven Wischnowsky
1999-10-27 21:26 ` Tanaka Akira
1999-10-26 13:17 Sven Wischnowsky
1999-10-26 13:01 Oliver Kiddle
1999-10-26 13:35 ` Zefram
1999-10-26 11:03 Sven Wischnowsky
1999-10-26 17:17 ` Bart Schaefer
1999-10-26 17:22 ` Tanaka Akira
1999-10-26 17:32   ` Tanaka Akira
1999-08-30  9:30 Sven Wischnowsky
1999-08-27  7:03 Sven Wischnowsky
1999-08-27  8:29 ` Tanaka Akira
1999-08-28  6:01   ` Tanaka Akira
1999-08-26 13:52 Sven Wischnowsky
1999-08-26 12:20 Sven Wischnowsky
1999-08-26 13:17 ` Tanaka Akira
1999-08-26 17:56 ` Tanaka Akira
1999-08-25 12:57 Sven Wischnowsky
1999-08-25 12:54 Sven Wischnowsky
1999-08-25  8:24 Sven Wischnowsky
1999-08-26 10:54 ` Tanaka Akira
1999-08-24 10:43 Sven Wischnowsky
1999-08-25  1:56 ` Tanaka Akira
1999-08-24  9:12 Sven Wischnowsky
1999-08-24 10:04 ` Tanaka Akira
1999-08-23 13:46 Sven Wischnowsky
1999-08-23 16:16 ` Tanaka Akira
1999-08-24 15:56 ` Tanaka Akira
1999-08-23  9:32 Sven Wischnowsky
1999-08-23 10:54 ` Tanaka Akira
1999-08-20 12:59 Sven Wischnowsky
1999-08-20 23:22 ` Tanaka Akira
1999-08-21  8:39   ` Tanaka Akira
1999-08-21 17:47     ` Tanaka Akira
1999-08-20  7:42 Sven Wischnowsky
1999-08-19 13:59 Sven Wischnowsky
1999-08-19 10:44 Sven Wischnowsky
1999-08-19 14:38 ` Tanaka Akira
1999-08-24 13:46 ` Peter Stephenson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=199908231200.OAA03141@beta.informatik.hu-berlin.de \
    --to=wischnow@informatik.hu-berlin.de \
    --cc=zsh-workers@sunsite.auc.dk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).