summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAli H. Fardan <raiz@firemail.cc>2016-08-28 16:39:04 +0300
committerAli H. Fardan <raiz@firemail.cc>2016-08-28 16:39:04 +0300
commit1d257999ed6049dce4d1305c4dc3304ea9910ca7 (patch)
treeb27fb22c35ef3b761f614d7d08d0cae1f919f1f4
parent25eb9ff35e76312b09ff5613c9a3cc1275938680 (diff)
removed heap dependency in datetime() and simplified the function
-rw-r--r--slstatus.c23
1 files changed, 5 insertions, 18 deletions
diff --git a/slstatus.c b/slstatus.c
index 4dbe650..628c0f4 100644
--- a/slstatus.c
+++ b/slstatus.c
@@ -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 *