removed heap dependency in datetime() and simplified the function
Ali H. Fardan raiz@firemail.cc
Sun, 28 Aug 2016 16:39:04 +0300
1 files changed,
5 insertions(+),
18 deletions(-)
jump to
M
slstatus.c
→
slstatus.c
@@ -163,27 +163,14 @@
static char * datetime(const char *timeformat) { - time_t tm; - size_t bufsize = 64; - char *buf = malloc(bufsize); - if (buf == NULL) { - fprintf(stderr, "Failed to get date/time.\n"); - return smprintf(UNKNOWN_STR); - } + time_t t; + char timestr[80]; - time(&tm); - setlocale(LC_TIME, ""); - if (!strftime(buf, bufsize, timeformat, localtime(&tm))) { - setlocale(LC_TIME, "C"); - free(buf); - fprintf(stderr, "Strftime failed.\n"); + t = time(NULL); + if (strftime(timestr, sizeof(timestr), timeformat, localtime(&t)) == 0) return smprintf(UNKNOWN_STR); - } - setlocale(LC_TIME, "C"); - char *ret = smprintf("%s", buf); - free(buf); - return ret; + return smprintf("%s", timestr); } static char *