pomodoro

A simple pomodoro timer
git clone git://nocebo.space/pomodoro
Log | Files | Refs | LICENSE

commit f943ff35b6e259dddf567eef83458e8a95a132b2
parent e9a9be8ec677b48739ed5f0a99cba29531ec11e6
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date:   Sat,  9 Dec 2017 14:22:52 +0100

record: don't call external date process

also print in the same format to stderr.

Diffstat:
pomodoro.c | 27++++++++++++++-------------
1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/pomodoro.c b/pomodoro.c @@ -210,18 +210,19 @@ evpredicate(void) void record(FILE *f) { - const char *cmd = "date"; - char *timestamp = malloc(128); - FILE *o; - - o = popen(cmd, "re"); - if (fgets(timestamp, 128, o) != NULL) { - fprintf(stderr, "%s", timestamp); - fprintf(f, "%s\n", timestamp); - } - - free(timestamp); - pclose(o); - return; + char timestamp[64]; + struct tm *tm; + time_t now; + + if ((now = time(NULL)) == (time_t)-1) + err(1, "time"); + if (!(tm = localtime(&now))) + err(1, "localtime"); + if (!strftime(timestamp, sizeof(timestamp), "%a %b %e %H:%M:%S %Z %Y", + tm)) + err(1, "strftime"); + + fprintf(stderr, "%s\n", timestamp); + fprintf(f, "%s\n", timestamp); }