removed heap dependency in datetime() and simplified the function

This commit is contained in:
Ali H. Fardan 2016-08-28 16:39:04 +03:00
parent 25eb9ff35e
commit 1d257999ed
1 changed files with 5 additions and 18 deletions

View File

@ -163,27 +163,14 @@ cpu_perc(void)
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 *