summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
cd61c3b)
That way the dispatcher calls know how they got called.
-
- if (!name)
- found = !!(verbs[i].flags & VERB_DEFAULT);
- else
found = streq(name, verbs[i].verb);
found = streq(name, verbs[i].verb);
+ else
+ found = !!(verbs[i].flags & VERB_DEFAULT);
if (found) {
verb = &verbs[i];
if (found) {
verb = &verbs[i];
+ assert(verb);
+
+ if (!name)
+ left = 1;
+
if (verb->min_args != VERB_ANY &&
(unsigned) left < verb->min_args) {
log_error("Too few arguments.");
if (verb->min_args != VERB_ANY &&
(unsigned) left < verb->min_args) {
log_error("Too few arguments.");
- return verb->dispatch(left, argv + optind, userdata);
+ if (name)
+ return verb->dispatch(left, argv + optind, userdata);
+ else {
+ char* fake[2] = {
+ (char*) verb->verb,
+ NULL
+ };
+
+ return verb->dispatch(1, fake, userdata);
+ }