On 07/19/2013 07:44 PM, Wenchao Xia wrote: > The old code in help_cmd() use global 'info_cmds' and treat it as a
s/use/uses/; s/treat/treats/ > special case. Actually 'info_cmds' is an sub command group of 'mon_cmds', s/an sub/a sub/ > in order to avoid direct use of it, help_cmd() need to change its work s/need/needs/ > mechanism to support sub command and not treat it as a special case > any more. > > To support sub command, help_cmd() will first parse the input and then call > help_cmd_dump(), which works as an reentrant function. When it mets sub s/an/a/; s/mets/meets a/ > command, it simply re-enter the function again. Since help dumping need to s/re-enter/enters/; s/need/needs/ > know whole input to printf full help message include prefix, for example, > "help info block" need to printf prefix "info", so help_cmd_dump() takes all > args from input and extra parameter arg_index to identify the progress. > Another function help_cmd_dump_one() is introduced to printf the prefix > and command's help message. > > Now help support sub command, so later if another sub command group is s/support/supports/ > added in any depth, help will automatically work for it. Still "help info > block" will show error since command parser reject additional parameter, > which can be improved later. "log" is still treated as a special case. > > Signed-off-by: Wenchao Xia <xiaw...@linux.vnet.ibm.com> > --- > monitor.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++--------- > 1 files changed, 53 insertions(+), 10 deletions(-) > Reviewed-by: Eric Blake <ebl...@redhat.com> -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature