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
next prev parent 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).