MINOR: standard: make indent_msg() support empty messages

indent_msg() is called with dynamically generated messages, so these
may be empty (NULL) when an empty list is being dumped. Support this
and return a NULL too.
This commit is contained in:
Willy Tarreau 2012-10-10 08:56:47 +02:00
parent 21faa91be6
commit 70eec3832f

View File

@ -1840,7 +1840,8 @@ char *memprintf(char **out, const char *format, ...)
/* Used to add <level> spaces before each line of <out>, unless there is only one line.
* The input argument is automatically freed and reassigned. The result will have to be
* freed by the caller.
* freed by the caller. It also supports being passed a NULL which results in the same
* output.
* Example of use :
* parse(cmd, &err); (callee: memprintf(&err, ...))
* fprintf(stderr, "Parser said: %s\n", indent_error(&err));
@ -1854,6 +1855,9 @@ char *indent_msg(char **out, int level)
int lastlf = 0;
int len;
if (!out || !*out)
return NULL;
in = *out - 1;
while ((in = strchr(in + 1, '\n')) != NULL) {
lastlf = in - *out;