于 2013年05月23日 06:19, Eric Blake 写道:
On 05/21/2013 09:15 PM, Zhang Xiaohe wrote:
> Don't print 'OPTION' if there's no options. Just behaves as
DESCRIPTION
> does.
> This mostly affects 'interface' command group.
>
> Signed-off-by: Zhang Xiaohe<zhangxh(a)cn.fujitsu.com>
> Reported-by: Li Yang<liyang.fnst(a)cn.fujitsu.com>
> ---
> tools/virsh.c | 4 +++-
> 1 files changed, 3 insertions(+), 1 deletions(-)
For some reason, the patch didn't apply for me with 'git am', so I had
to do it by hand; in the process, I simplified slightly.
>
> diff --git a/tools/virsh.c b/tools/virsh.c
> index ecb7bd4..7c60800 100644
> --- a/tools/virsh.c
> +++ b/tools/virsh.c
> @@ -1270,7 +1270,9 @@ vshCmddefHelp(vshControl *ctl, const char *cmdname)
>
> if (def->opts) {
> const vshCmdOptDef *opt;
> - fputs(_("\n OPTIONS\n"), stdout);
> + /* Print the option only if there are options */
> + if (def->opts->name)
> + fputs(_("\n OPTIONS\n"), stdout);
Hmm, I wonder why we even bother to create 1-element arrays with a NULL
terminator instead of passing NULL when registering option-less
functions, on commands like 'iface-commit'. But your idea is fine. ACK
and here's what I pushed, after tweaking the subject line to be shorter:
diff --git a/tools/virsh.c b/tools/virsh.c
index ecb7bd4..6f0c1ef 100644
--- a/tools/virsh.c
+++ b/tools/virsh.c
@@ -1268,7 +1268,7 @@ vshCmddefHelp(vshControl *ctl, const char *cmdname)
fprintf(stdout, " %s\n", _(desc));
}
- if (def->opts) {
+ if (def->opts&& def->opts->name) {
const vshCmdOptDef *opt;
fputs(_("\n OPTIONS\n"), stdout);
for (opt = def->opts; opt->name; opt++) {
Thanks, this looks
more pretty~