version 1.106, 2016/04/29 14:05:24 |
version 1.107, 2016/05/23 20:39:26 |
|
|
char * |
char * |
format_expand_time(struct format_tree *ft, const char *fmt, time_t t) |
format_expand_time(struct format_tree *ft, const char *fmt, time_t t) |
{ |
{ |
char *tmp, *expanded; |
|
size_t tmplen; |
|
struct tm *tm; |
struct tm *tm; |
|
char s[2048]; |
|
|
if (fmt == NULL || *fmt == '\0') |
if (fmt == NULL || *fmt == '\0') |
return (xstrdup("")); |
return (xstrdup("")); |
|
|
tm = localtime(&t); |
tm = localtime(&t); |
|
|
tmp = NULL; |
if (strftime(s, sizeof s, fmt, tm) == 0) |
tmplen = strlen(fmt); |
return (xstrdup("")); |
|
|
do { |
return (format_expand(ft, s)); |
tmp = xreallocarray(tmp, 2, tmplen); |
|
tmplen *= 2; |
|
} while (strftime(tmp, tmplen, fmt, tm) == 0); |
|
|
|
expanded = format_expand(ft, tmp); |
|
free(tmp); |
|
|
|
return (expanded); |
|
} |
} |
|
|
/* Expand keys in a template. */ |
/* Expand keys in a template. */ |