removed heap dependency in datetime() and simplified the function
authorAli H. Fardan <raiz@firemail.cc>
Sun, 28 Aug 2016 13:39:04 +0000 (16:39 +0300)
committerAli H. Fardan <raiz@firemail.cc>
Sun, 28 Aug 2016 13:39:04 +0000 (16:39 +0300)
slstatus.c

index 4dbe650b20a05e445ecfe9af47935452c71835ca..628c0f414569ccdbcd581211ff092a40c9eafed7 100644 (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 *