version 1.151, 2018/01/18 14:28:11 |
version 1.152, 2018/02/20 10:43:46 |
|
|
char * |
char * |
format_expand(struct format_tree *ft, const char *fmt) |
format_expand(struct format_tree *ft, const char *fmt) |
{ |
{ |
char *buf, *out; |
char *buf, *out, *name; |
const char *ptr, *s, *saved = fmt; |
const char *ptr, *s, *saved = fmt; |
size_t off, len, n, outlen; |
size_t off, len, n, outlen; |
int ch, brackets; |
int ch, brackets; |
|
|
|
|
if (ft->flags & FORMAT_NOJOBS) |
if (ft->flags & FORMAT_NOJOBS) |
out = xstrdup(""); |
out = xstrdup(""); |
else |
else { |
out = format_job_get(ft, xstrndup(fmt, n)); |
name = xstrndup(fmt, n); |
|
out = format_job_get(ft, name); |
|
free(name); |
|
} |
outlen = strlen(out); |
outlen = strlen(out); |
|
|
while (len - off < outlen + 1) { |
while (len - off < outlen + 1) { |