diff options
Diffstat (limited to 'src/scrotty.c')
-rw-r--r-- | src/scrotty.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/scrotty.c b/src/scrotty.c index 286a30d..c7e98ee 100644 --- a/src/scrotty.c +++ b/src/scrotty.c @@ -320,7 +320,8 @@ static int evaluate(char* restrict buf, size_t n, const char* restrict pattern, char* fmt; time_t t; struct tm tm; - + + /* Expand '$' and '\'. */ while ((c = *pattern++)) { if (dollar) @@ -358,12 +359,15 @@ static int evaluate(char* restrict buf, size_t n, const char* restrict pattern, } buf[i] = '\0'; + /* Check whether there are any '%' to expand. */ if (strchr(buf, '%') == NULL) return 0; + /* Copy the buffer so we can reuse the buffer and use its old content for the format. */ fmt = alloca((strlen(buf) + 1) * sizeof(char)); memcpy(fmt, buf, (strlen(buf) + 1) * sizeof(char)); + /* Expand '%'. */ t = time(NULL); localtime_r(&t, &tm); if (strftime(buf, n, fmt, &tm) == 0) |