]> git.sur5r.net Git - tio/blobdiff - src/misc.c
Update upstream source from tag 'upstream/2.0'
[tio] / src / misc.c
index c519c4610bf68b408dd9319c644b7b43708167c1..1983950d1bff29d35abfd684bd60ecd62219ed39 100644 (file)
 #include "config.h"
 #include <stdio.h>
 #include <stdlib.h>
+#include <unistd.h>
 #include <string.h>
 #include <time.h>
-#include <sys/time.h>
 #include <errno.h>
 #include "error.h"
 #include "print.h"
 #include "options.h"
 
-#define TIME_STRING_SIZE_MAX 24
-
-char *current_time(void)
-{
-    static char time_string[TIME_STRING_SIZE_MAX];
-    static struct timeval tv, tv_now, tv_start, tv_previous;
-    static bool first = true;
-    struct tm *tm;
-    size_t len;
-
-    // Get current time value
-    gettimeofday(&tv_now, NULL);
-
-    if (first)
-    {
-        tv_start = tv_now;
-        first = false;
-    }
-
-    // Add formatted timestap
-    switch (option.timestamp)
-    {
-        case TIMESTAMP_NONE:
-        case TIMESTAMP_24HOUR:
-            // "hh:mm:ss.sss" (24 hour format)
-            tv = tv_now;
-            tm = localtime(&tv.tv_sec);
-            len = strftime(time_string, sizeof(time_string), "%H:%M:%S", tm);
-            break;
-        case TIMESTAMP_24HOUR_START:
-            // "hh:mm:ss.sss" (24 hour format relative to start time)
-            timersub(&tv_now, &tv_start, &tv);
-            tm = gmtime(&tv.tv_sec);
-            len = strftime(time_string, sizeof(time_string), "%H:%M:%S", tm);
-            break;
-        case TIMESTAMP_24HOUR_DELTA:
-            // "hh:mm:ss.sss" (24 hour format relative to previous time stamp)
-            timersub(&tv_now, &tv_previous, &tv);
-            tm = gmtime(&tv.tv_sec);
-            len = strftime(time_string, sizeof(time_string), "%H:%M:%S", tm);
-            break;
-        case TIMESTAMP_ISO8601:
-            // "YYYY-MM-DDThh:mm:ss.sss" (ISO-8601)
-            tv = tv_now;
-            tm = localtime(&tv.tv_sec);
-            len = strftime(time_string, sizeof(time_string), "%Y-%m-%dT%H:%M:%S", tm);
-            break;
-        default:
-            return NULL;
-    }
-
-    // Append milliseconds to all timestamps
-    if (len)
-    {
-        len = snprintf(time_string + len, TIME_STRING_SIZE_MAX - len, ".%03ld", (long)tv.tv_usec / 1000);
-    }
-
-    // Save previous time value for next run
-    tv_previous = tv_now;
-
-    return (len < TIME_STRING_SIZE_MAX) ? time_string : NULL;
-}
-
 void delay(long ms)
 {
     struct timespec ts;