On 08/26/2013 06:36 AM, Tomas Meszaros wrote: > vshRebootShutdownModeCompleter returns available shutdown mode > names. This can be used for --mode auto completion for commands > such as reboot or shutdown. > > for example: > > virsh> reboot --mode <TAB> > acpi agent initctl signal > virsh> reboot --mode i<TAB> > virsh> reboot --mode initctl > --- > v3 > * removed useless if > * used virStringFreeList() instead of iteration > * moved all .completer = vshRebootShutdownModeCompleter initializations > into this patch
Once again, seems reasonable, but can be shortened:
> +char **
> +vshRebootShutdownModeCompleter(unsigned int unused_flags ATTRIBUTE_UNUSED)
> +{
> + const char *modes[] = {"acpi", "agent", "initctl", "signal"};
> + const unsigned int modes_size = ARRAY_CARDINALITY(modes);
> + char **names = NULL;
> + size_t i;
> +
> + names = vshMalloc(NULL, sizeof(char *) * (modes_size + 1));
> +
> + for (i = 0; i < modes_size; i++) {
> + if (VIR_STRDUP(names[i], modes[i]) < 0)
> + goto cleanup;
> + }
> +
> + names[i] = NULL;
> + return names;
> +
> +cleanup:
> + virStringFreeList(names);
> + return NULL;
All this boils down to an open-coded version of
return virStringSplit("acpi agent initctl signal", " ", 0);
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list [email protected] https://www.redhat.com/mailman/listinfo/libvir-list
