[PATCH] zsh_completion: hide commands' stderr when parsing their output
Nikolaj Sjujskij
sterkrig at myopera.com
Wed Apr 17 07:49:55 UTC 2013
Den 2013-04-17 10:50:05 skrev Brendan Cully <brendan at kublai.com>:
> On Wednesday, 17 April 2013 at 10:41, Nikolaj Sjujskij wrote:
>> # HG changeset patch
>> # User Nikolaj Sjujskij <sterkrig at myopera.com>
>> # Date 1365878437 -14400
>> # Sat Apr 13 22:40:37 2013 +0400
>> # Node ID e86de327d1a634f454556a34170826b1cad58f11
>> # Parent 12acbea17625a1441503418f7f2f49aa3825cf2f
>> zsh_completion: hide commands' stderr when parsing their output
>>
>> If anything is wrong with hg command used, its stderr output should be
>> silenced
>> rather than mangle command line.
>>
>> Change merged back from zsh.git repo, which diverged a bit since when
>> in 2009
>> Brendan Cully got this file (as it was in 7f349588665f) included there.
>> Command
>> invocations added to our `zsh_completion` since 2009 updated as well.
>
> Thanks. I'm a little confused though, since _hg_cmd is defined thusly:
>
> _hg_cmd() {
> _call_program hg HGPLAIN=1 hg "$_hg_cmd_globals[@]" "$@" 2> /dev/null
> }
>
> Shouldn't that already be suppressing stderr?
Hah, true. And it seems to be suppressing stderr indeed (tried with `hg
qgoto` which uses _hg_qseries out of repo).
I kinda trusted zsh guys, to be honest :)
Thanks for quick review.
Matt and crew, please ignore this patch.
Brendan, while we're at it. Another questionable change made in zsh.git:
diff --git a/contrib/zsh_completion b/contrib/zsh_completion
--- a/contrib/zsh_completion
+++ b/contrib/zsh_completion
@@ -564,8 +564,8 @@
_hg_cmd_commit() {
_arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_subrepos_opts \
'(--addremove -A)'{-A,--addremove}'[mark new/missing files as
added/removed before committing]' \
- '(--message -m)'{-m+,--message}'[use <text> as commit message]:text:' \
- '(--logfile -l)'{-l+,--logfile}'[read commit message from <file>]:log
file:_files -g \*.txt' \
+ '(--message -m)'{-m+,--message}'[specify commit message]:text' \
+ '(--logfile -l)'{-l+,--logfile}'[read commit message from specified
file]:log file:_files' \
'(--date -d)'{-d+,--date}'[record datecode as commit date]:date code:' \
'(--user -u)'{-u+,--user}'[record user as commiter]:user:' \
'--amend[amend the parent of the working dir]' \
Apart from difference in descriptions (which I intend to keep closer to
help entries), there's two things:
* should we really complete --logfile with .txt-files only? Doesn't sound
like a big deal, but...
* does dropping last colon in ":text:" make any actual difference? As far
as I can deduce from `man zshcompsys`, both variants define empty
completing action, but ":text:" does this more explicitly (for my taste).
Do we need anything here? I'd say no, except maybe for "*.txt".
More information about the Mercurial-devel
mailing list