Re: [PATCH 04/18] vshCommandStringParse: Allow retrieving partial result

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 01/11/2018 11:48 AM, Martin Kletzander wrote:
> On Tue, Jan 02, 2018 at 06:11:57PM +0100, Michal Privoznik wrote:
>> In the future, this function is going to be called from
>> vshReadlineParse() to provide parsed input for completer
>> callbacks. The idea is to allow the callbacks to provide more
>> specific data. For instance, for the following input:
>>
>>  virsh # domifaddr --domain fedora --interface <TAB><TAB>
>>
>> the --interface completer callback is going to be called. Now, it
>> is more user friendly if the completer offers only those
>> interfaces found in 'fedora' domain. But in order to do that it
>> needs to be able to retrieve partially parsed result.
>>
>> Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx>
>> ---
>> tools/virsh.c      |   4 +-
>> tools/virt-admin.c |   4 +-
>> tools/vsh.c        | 111
>> +++++++++++++++++++++++++++++++++++++----------------
>> tools/vsh.h        |   2 +-
>> 4 files changed, 82 insertions(+), 39 deletions(-)
>>
>> diff --git a/tools/vsh.c b/tools/vsh.c
>> index 2366b7b71..34eb592ef 100644
>> --- a/tools/vsh.c
>> +++ b/tools/vsh.c
>> @@ -1519,11 +1544,12 @@ vshCommandParse(vshControl *ctl,
>> vshCommandParser *parser)
>>                     last->next = arg;
>>                 last = arg;
>>
>> -                vshDebug(ctl, VSH_ERR_INFO, "%s: %s(%s): %s\n",
>> -                         cmd->name,
>> -                         opt->name,
>> -                         opt->type != VSH_OT_BOOL ? _("optdata") :
>> _("bool"),
>> -                         opt->type != VSH_OT_BOOL ? arg->data :
>> _("(none)"));
>> +                if (ctl)
> 
> Don't you mean (!partial) here?  This change looks weird otherwise.

Oh right.

> 
> After reading the following patches I see that you call this with ctl ==
> NULL
> (from readline).  That makes sense, but there are few more places where
> ctl is
> used even when partial != NULL and that needs to be handled correctly.

Like what? vshError() can handle if ctl is NULL, and subsequently
vshMalloc(), vshStrdup(), vshCmddefGetOption() and vshCommandCheckOpts()
can too.

Michal

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]
  Powered by Linux