void doveadm_mail_try_help_name(const char *cmd_name)
{
+ const struct doveadm_cmd_ver2 *cmd2;
const struct doveadm_mail_cmd *cmd;
+ cmd2 = doveadm_cmd_find_ver2(cmd_name);
+ if (cmd2 != NULL)
+ help_ver2(cmd2);
+
cmd = doveadm_mail_cmd_find(cmd_name);
if (cmd != NULL)
doveadm_mail_help(cmd);
static void ATTR_NORETURN
usage_to(FILE *out, const char *prefix)
{
+ const struct doveadm_cmd_ver2 *cmd2;
const struct doveadm_cmd *cmd;
string_t *str = t_str_new(1024);
array_foreach(&doveadm_cmds, cmd)
str_printfa(str, "%s\t%s\n", cmd->name, cmd->short_usage);
+ array_foreach(&doveadm_cmds_ver2, cmd2)
+ str_printfa(str, "%s\t%s\n", cmd2->name, cmd2->usage);
doveadm_mail_usage(str);
doveadm_usage_compress_lines(out, str_c(str), prefix);
static bool doveadm_has_subcommands(const char *cmd_name)
{
+ const struct doveadm_cmd_ver2 *cmd2;
const struct doveadm_cmd *cmd;
unsigned int len = strlen(cmd_name);
cmd->name[len] == ' ')
return TRUE;
}
+ array_foreach(&doveadm_cmds_ver2, cmd2) {
+ if (strncmp(cmd2->name, cmd_name, len) == 0 &&
+ cmd2->name[len] == ' ')
+ return TRUE;
+ }
return doveadm_mail_has_subcommands(cmd_name);
}