
于 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@cn.fujitsu.com> Reported-by: Li Yang<liyang.fnst@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~