[Libguestfs] [PATCH] fish: show synopsis if command syntax is wrong
Hu Tao
hutao at cn.fujitsu.com
Mon Dec 1 02:25:51 UTC 2014
On Fri, Nov 28, 2014 at 03:00:39PM +0100, Pino Toscano wrote:
> On Friday 28 November 2014 17:55:51 Hu Tao wrote:
> > This patch lets guestfish show command synopsis if the syntax of command issued
> > by user is wrong, rather than telling user that the number of parameters is wrong.
>
> The idea seems sound to me.
>
> Shouldn't that be done also for fish commands? If so, just make
> "synopsis" a function taking args and optargs, and use it in both
> places.
fish commands do not have args and optargs in their definitions in file
actions.ml. Also, fish commands' synopsises are printed out by inline
codes, see run_alloc() for an example.
Surely we can reconstruct fish commands' definitions to take advantage
of the auto-generation of synopsis done in this patch, but that can be
another patch. I'll add this to my todo list.
>
> > @@ -694,10 +679,16 @@ Guestfish will prompt for these separately."
> > pr "run_action (const char *cmd, size_t argc, char *argv[])\n";
> > pr "{\n";
> > pr " const struct command_table *ct;\n";
> > + pr " int ret = -1;\n";
> > pr "\n";
> > pr " ct = lookup_fish_command (cmd, strlen (cmd));\n";
> > - pr " if (ct)\n";
> > - pr " return ct->entry->run (cmd, argc, argv);\n";
> > + pr " if (ct) {\n";
> > + pr " ret = ct->entry->run (cmd, argc, argv);\n";
> > + pr " if (ret == -2) {\n";
> > + pr " fprintf (stderr, _(\"usage: %%s\\n\"), ct->entry->synopsis);\n";
> > + pr " fprintf (stderr, _(\"type 'help %%s' for more help on %%s\\n\"), cmd, cmd);\n";
> > + pr " }\n";
> > + pr " }\n";
>
> There is an issue here: in the true branch of "if (ct)", there is no
> more return, and thus builds fails when enabling -Werror
> (--enable-werror for configure):
>
> cmds.c: In function 'run_action':
> cmds.c:23233:1: error: control reaches end of non-void function [-Werror=return-type]
> }
> ^
>
> Also, the return code -2 must be turned as -1.
Thanks, both fixed.
Regards,
Hu
>
> --
> Pino Toscano
>
> _______________________________________________
> Libguestfs mailing list
> Libguestfs at redhat.com
> https://www.redhat.com/mailman/listinfo/libguestfs
More information about the Libguestfs
mailing list