if (i > 63)
return -1; /* too many options */
- if (opt->type == VSH_OT_BOOL) {
+
+ switch (opt->type) {
+ case VSH_OT_STRING:
+ case VSH_OT_BOOL:
if (opt->flags & VSH_OFLAG_REQ)
- return -1; /* bool options can't be mandatory */
- continue;
- }
- if (opt->type == VSH_OT_ALIAS) {
+ return -1; /* nor bool nor string options can't be mandatory */
+ break;
+
+ case VSH_OT_ALIAS: {
size_t j;
char *name = (char *)opt->help; /* cast away const */
char *p;
}
if (!cmd->opts[j].name)
return -1; /* alias option must map to a later option name */
- continue;
}
- 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. */
+ break;
+
+ case VSH_OT_INT:
+ break;
+ }
}
return 0;
}
: _("--%s <number>"), opt->name);
break;
case VSH_OT_STRING:
- /* OT_STRING should never be VSH_OFLAG_REQ */
- if (opt->flags & VSH_OFLAG_REQ) {
- vshError(ctl,
- _("internal error: bad options in command: '%s'"),
- def->name);
- return false;
- }
snprintf(buf, sizeof(buf), _("--%s <string>"), opt->name);
break;
case VSH_OT_DATA:
- /* OT_DATA should always be VSH_OFLAG_REQ */
- if (!(opt->flags & VSH_OFLAG_REQ)) {
- vshError(ctl,
- _("internal error: bad options in command: '%s'"),
- def->name);
- return false;
- }
snprintf(buf, sizeof(buf), _("[--%s] <string>"),
opt->name);
break;