diff --git a/cmd/command.c b/cmd/command.c index 6ed5ec1..0409510 100644 --- a/cmd/command.c +++ b/cmd/command.c @@ -894,15 +894,17 @@ static int execute_command(struct b_command *cmd, struct b_arglist *args) return -1; } - if (cmd->b_flags & B_COMMAND_SHOW_HELP_BY_DEFAULT - && b_arglist_get_count(args, B_COMMAND_INVALID_ID, B_COMMAND_INVALID_ID) - == 0) { + size_t nr_items = b_arglist_get_count( + args, B_COMMAND_INVALID_ID, B_COMMAND_INVALID_ID); + size_t nr_help = b_arglist_get_count( + args, B_COMMAND_OPTION_HELP, B_COMMAND_INVALID_ID); + + if ((cmd->b_flags & B_COMMAND_SHOW_HELP_BY_DEFAULT) && nr_items == 0) { print_help(cmd); return 0; } - if (b_arglist_get_count(args, B_COMMAND_OPTION_HELP, B_COMMAND_INVALID_ID) - > 0) { + if (nr_help > 0) { print_help(cmd); return 0; }