Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: PATCH: Re: sudo completion problem



Andrej Borsenkow wrote:
>The weird is, that *long* options (at least in this case) are
>interpreted everywhere:

Actually it's all options, it's the evil GNU getopt's default behaviour
(it can be turned off by putting a "+" at the start of the option string).

$ ls --version
ls (GNU fileutils) 4.0l
Written by Richard Stallman and David MacKenzie.

Copyright (C) 1999 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ ls . -l
total 5
drwx------   17 zefram   fysh         1024 Mar 30 15:13 etc
drwxr-xr-x    5 zefram   fysh         1024 Mar  8 14:07 pub
drwxr-xr-x    6 zefram   fysh         1024 Apr  3 18:58 public_html
drwx------    3 zefram   fysh         1024 May  6 09:10 tmp
drwx------   11 zefram   fysh         1024 Mar  8 14:10 usr

If we can determine that a particular command is processing options in
this way, it would be nice to complet options accordingly.  However,
by default options should only be completed before the first non-option
argument.  In either case, options should never be completed after a "--".

I envision _arguments first of all deciding whether the command allows
options everywhere or not.  This should be under the control of the
caller, via options to _arguments; possible values are "everywhere",
"only before first argument", "autodetect GNU getopt" (if possible).
_arguments must also check for a "--" argument, and not do option
completion (regardless of option style) if the cursor is after the "--".
All of this then lets it decide whether to complete options or not;
non-option arguments are always a possibility, though we might want to
be clever about handling arguments that start with "-".

-zefram



Messages sorted by: Reverse Date, Date, Thread, Author