[libvirt] [PATCH 01/12] virsh.c: Switch to C99 initialization of vshCmdOptDef

Michal Privoznik mprivozn at redhat.com
Mon Jan 14 16:51:17 UTC 2013


On 14.01.2013 17:33, Doug Goldstein wrote:
> On Mon, Jan 14, 2013 at 9:59 AM, Michal Privoznik <mprivozn at redhat.com> wrote:
>> ---
>>  tools/virsh.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
>>  1 file changed, 51 insertions(+), 11 deletions(-)
>>
>> diff --git a/tools/virsh.c b/tools/virsh.c
>> index 283194a..a764b3e 100644
>> --- a/tools/virsh.c
>> +++ b/tools/virsh.c
>> @@ -447,8 +447,16 @@ static const vshCmdInfo info_help[] = {
>>  };
>>
>>  static const vshCmdOptDef opts_help[] = {
>> -    {"command", VSH_OT_DATA, 0, N_("Prints global help, command specific help, or help for a group of related commands")},
>> -    {NULL, 0, 0, NULL}
>> +    {.name = "command",
>> +     .type = VSH_OT_DATA,
>> +     .flags = 0,
>> +     .help = N_("Prints global help, command specific help, or help for a group of related commands")
>> +    },
>> +    {.name = NULL,
>> +     .type = 0,
>> +     .flags = 0,
>> +     .help = NULL
>> +    }
>>  };
>>
>>  static bool
>> @@ -698,8 +706,16 @@ static const vshCmdInfo info_cd[] = {
>>  };
>>
>>  static const vshCmdOptDef opts_cd[] = {
>> -    {"dir", VSH_OT_DATA, 0, N_("directory to switch to (default: home or else root)")},
>> -    {NULL, 0, 0, NULL}
>> +    {.name = "dir",
>> +     .type = VSH_OT_DATA,
>> +     .flags = 0,
>> +     .help = N_("directory to switch to (default: home or else root)")
>> +    },
>> +    {.name = NULL,
>> +     .type = 0,
>> +     .flags = 0,
>> +     .help = NULL
>> +    }
>>  };
>>
>>  static bool
>> @@ -770,11 +786,31 @@ static const vshCmdInfo info_echo[] = {
>>  };
>>
>>  static const vshCmdOptDef opts_echo[] = {
>> -    {"shell", VSH_OT_BOOL, 0, N_("escape for shell use")},
>> -    {"xml", VSH_OT_BOOL, 0, N_("escape for XML use")},
>> -    {"str", VSH_OT_ALIAS, 0, "string"},
>> -    {"string", VSH_OT_ARGV, 0, N_("arguments to echo")},
>> -    {NULL, 0, 0, NULL}
>> +    {.name = "shell",
>> +     .type = VSH_OT_BOOL,
>> +     .flags = 0,
>> +     .help = N_("escape for shell use")
>> +    },
>> +    {.name = "xml",
>> +     .type = VSH_OT_BOOL,
>> +     .flags = 0,
>> +     .help = N_("escape for XML use")
>> +    },
>> +    {.name = "str",
>> +     .type = VSH_OT_ALIAS,
>> +     .flags = 0,
>> +     .help = "string"
>> +    },
>> +    {.name = "string",
>> +     .type = VSH_OT_ARGV,
>> +     .flags = 0,
>> +     .help = N_("arguments to echo")
>> +    },
>> +    {.name = NULL,
>> +     .type = 0,
>> +     .flags = 0,
>> +     .help = NULL
>> +    }
>>  };
>>
>>  /* Exists mainly for debugging virsh, but also handy for adding back
>> @@ -923,8 +959,12 @@ vshCmddefOptParse(const vshCmdDef *cmd, uint32_t *opts_need_arg,
>>      return 0;
>>  }
>>
>> -static vshCmdOptDef helpopt = {"help", VSH_OT_BOOL, 0,
>> -                               N_("print help for this function")};
>> +static vshCmdOptDef helpopt = {
>> +    .name = "help",
>> +    .type = VSH_OT_BOOL,
>> +    .flags = 0,
>> +    .help = N_("print help for this function")
>> +};
>>  static const vshCmdOptDef *
>>  vshCmddefGetOption(vshControl *ctl, const vshCmdDef *cmd, const char *name,
>>                     uint32_t *opts_seen, int *opt_index)
>> --
>> 1.8.0.2
>>
>> --
>> libvir-list mailing list
>> libvir-list at redhat.com
>> https://www.redhat.com/mailman/listinfo/libvir-list
> 
> ACK with a caveat. How would you feel about a macro called
> VSH_CMD_OPT_END that is defined to:
> 
>    {.name = NULL,
>      .type = 0,
>      .flags = 0,
>      .help = NULL
>     }
> 
> Just a thought to cutdown on the number of changes necessary if/when
> the members of the struct change.
> 

Oh, I forgot to update this patch. If you take look into next patches,
you'll see I am using bare

  {.name = NULL}

which has the same effect as your macro. I'll update this patch accordingly.

Michal




More information about the libvir-list mailing list