
On 11/21/2017 10:25 AM, Erik Skultety wrote:
On Thu, Nov 16, 2017 at 02:49:27PM +0100, Michal Privoznik wrote:
There are couple of limitations when it comes to option types and flags for the options. For instance, VSH_OT_STRING cannot have VSH_OFLAG_REQ set (commit c7543a728). For some reason this is checked in vshCmddefHelp() but not in vshCmddefCheckInternals().
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> ---
[...]
- if (opt->type == VSH_OT_ARGV && cmd->opts[i + 1].name) - return -1; /* argv option must be listed last */ + break; + case VSH_OT_ARGV: + if (cmd->opts[i + 1].name) + return -1; /* argv option must be listed last */ + break; + + case VSH_OT_DATA: + if (!(opt->flags & VSH_OFLAG_REQ)) + return -1; /* OT_DATA should always be required. */
This got me thinking a bit, since we're going to do the checking here, is there a need for performing the same check within vshCmddefHelp too? My reasoning is that virsh-self-test is part of the test suite run at make check. Not a deal breaker though, just thinking out loud.
Yeah, it probably doesn't. But frankly, I don't know why we have any check at vshCmdDefHelp in the first place. Maybe it used to be a test case? Like we ran all the commands with --help? Anyway, it doesn't make sense now so I'll remove it.
+ break; + + case VSH_OT_INT: + /* nada */
please don't...
¿Por qué no? Michal