version 1.14, 2014/09/01 21:50:18 |
version 1.15, 2015/11/27 15:06:43 |
|
|
free(cmdlist); |
free(cmdlist); |
} |
} |
|
|
size_t |
char * |
cmd_list_print(struct cmd_list *cmdlist, char *buf, size_t len) |
cmd_list_print(struct cmd_list *cmdlist) |
{ |
{ |
struct cmd *cmd; |
struct cmd *cmd; |
size_t off, used; |
char *buf, *this; |
|
size_t len; |
|
|
off = 0; |
len = 1; |
|
buf = xcalloc(1, len); |
|
|
TAILQ_FOREACH(cmd, &cmdlist->list, qentry) { |
TAILQ_FOREACH(cmd, &cmdlist->list, qentry) { |
if (off >= len) |
this = cmd_print(cmd); |
break; |
|
off += cmd_print(cmd, buf + off, len - off); |
len += strlen(this) + 3; |
if (off >= len) |
buf = xrealloc(buf, len); |
break; |
|
if (TAILQ_NEXT(cmd, qentry) != NULL) { |
strlcat(buf, this, len); |
used = xsnprintf(buf + off, len - off, " ; "); |
if (TAILQ_NEXT(cmd, qentry) != NULL) |
if (used > len - off) |
strlcat(buf, " ; ", len); |
used = len - off; |
|
off += used; |
free(this); |
} |
|
} |
} |
return (off); |
|
|
return (buf); |
} |
} |