zsh-workers
 help / color / mirror / code / Atom feed
From: Tanaka Akira <akr@jaist.ac.jp>
To: zsh-workers@sunsite.auc.dk
Subject: Re: PATCH: completion
Date: 23 Aug 1999 19:54:11 +0900	[thread overview]
Message-ID: <rsqu2pqvkbw.fsf@crane.jaist.ac.jp> (raw)
In-Reply-To: Sven Wischnowsky's message of "Mon, 23 Aug 1999 11:32:16 +0200 (MET DST)"

In article <199908230932.LAA02718@beta.informatik.hu-berlin.de>,
  Sven Wischnowsky <wischnow@informatik.hu-berlin.de> writes:

> I don't agree here -- do you know of any command that accepts a `--'
> option which gets its argument in the next word? If so, I think that
> command shouldn't do that.

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.

> (I think you mean completion functions, the term `completer' refers to 
> those top-level thingies like `_complete'.)

Wow.  Yes.

> No, it shouldn't -- there is one string resulting from the expansion,
> even it is the empty string.

I see.

> What exactly doesn't work with single-letter option because of this?
> (I'm a bit too lazy to search ;-) I guess that this can be avoided by
> adding a ${...:#} somewhere.

Z(2):akr@is27e1u11% Src/zsh -f
is27e1u11% bindkey -e; fpath=($PWD/Completion/*(/)); autoload -U compinit; compinit -D; compdef _tst tst
is27e1u11% compconf group_matches=yes
is27e1u11% compconf message_format='%d'
is27e1u11% compconf description_format='%d'
is27e1u11% _tst () { _arguments -s '-a' '-b' }
is27e1u11% set -x
is27e1u11% tst -a<TAB>
...
+_arguments:370> unset opts[-a] dopts[] odopts[]
...
+_arguments:385> compadd -J option -X option -Q -y ( -b   ) - -ab -a -a
...
option
-b   

It should complete "b" immediately.

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]]}]".

Z(2):akr@is27e1u11% Src/zsh -f
is27e1u11% typeset -A opts
is27e1u11% opts[-a]=
is27e1u11% opts[-b]=
is27e1u11% print -lr - "A${(@)^opts[(I)xx]}B"
AB
is27e1u11% print -lr - "A${${(@)^opts[(I)xx]}:#}B"
AB
is27e1u11% print -lr - "A${(@)${(@)^opts[(I)xx]}:#}B" 
AB
is27e1u11% 

Hm.
-- 
Tanaka Akira


  reply	other threads:[~1999-08-23 10:54 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-08-23  9:32 Sven Wischnowsky
1999-08-23 10:54 ` Tanaka Akira [this message]
  -- strict thread matches above, loose matches on Subject: below --
2000-02-21  9:50 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 12:00 Sven Wischnowsky
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=rsqu2pqvkbw.fsf@crane.jaist.ac.jp \
    --to=akr@jaist.ac.jp \
    --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).