cmd->client->input_lock == cmd);
str = t_str_new(256);
- imap_args_to_str(str, *args_r);
+ imap_write_args(str, *args_r);
cmd->args = p_strdup(cmd->pool, str_c(str));
cmd->client->input_lock = NULL;
}
}
-void imap_args_to_str(string_t *dest, const struct imap_arg *args)
+void imap_write_args(string_t *dest, const struct imap_arg *args)
{
const ARRAY_TYPE(imap_arg_list) *list;
bool first = TRUE;
case IMAP_ARG_LIST:
str_append_c(dest, '(');
list = IMAP_ARG_LIST(args);
- imap_args_to_str(dest, array_idx(list, 0));
+ imap_write_args(dest, array_idx(list, 0));
str_append_c(dest, ')');
break;
case IMAP_ARG_LITERAL_SIZE:
}
}
}
+
+const char *imap_args_to_str(const struct imap_arg *args)
+{
+ string_t *str;
+
+ str = t_str_new(128);
+ imap_write_args(str, args);
+ return str_c(str);
+}
/* Write sequence range as IMAP sequence-set */
void imap_write_seq_range(string_t *dest, const ARRAY_TYPE(seq_range) *array);
/* Write IMAP args to given string. The string is mainly useful for humans. */
-void imap_args_to_str(string_t *dest, const struct imap_arg *args);
+void imap_write_args(string_t *dest, const struct imap_arg *args);
+/* Like imap_write_args(), but return the string allocated from data stack. */
+const char *imap_args_to_str(const struct imap_arg *args);
#endif