summaryrefslogtreecommitdiff
path: root/sfeed_stats.c
diff options
context:
space:
mode:
authorHiltjo Posthuma <hiltjo@codemadness.org>2015-01-03 12:44:32 +0100
committerHiltjo Posthuma <hiltjo@codemadness.org>2015-01-03 12:57:27 +0100
commitfa045e31451f2c73d61d0d7a41b39a925b70f37e (patch)
treebb59cf05ff20ef36843b19dfb907c043291a5a6d /sfeed_stats.c
parent3d1007693d7a9108a93d33b6e173dbec0ea214ae (diff)
time fixes
Diffstat (limited to 'sfeed_stats.c')
-rw-r--r--sfeed_stats.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/sfeed_stats.c b/sfeed_stats.c
index 151a5fd..958f2ed 100644
--- a/sfeed_stats.c
+++ b/sfeed_stats.c
@@ -1,6 +1,5 @@
#include <ctype.h>
#include <err.h>
-#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -20,6 +19,7 @@ main(void)
struct feed *f, *fcur = NULL;
time_t parsedtime, comparetime, timenewest = 0;
size_t size = 0;
+ int r;
comparetime = time(NULL) - (3600 * 24); /* 1 day is old news */
@@ -28,11 +28,8 @@ main(void)
feeds = fcur;
while(parseline(&line, &size, fields, FieldLast, '\t', stdin) > 0) {
- errno = 0;
- parsedtime = (time_t)strtol(fields[FieldUnixTimestamp], NULL, 10);
- if(errno != 0)
- parsedtime = 0;
- isnew = (parsedtime >= comparetime) ? 1 : 0;
+ r = strtotime(fields[FieldUnixTimestamp], &parsedtime);
+ isnew = (r != -1 && parsedtime >= comparetime) ? 1 : 0;
/* first of feed section or new feed section. */
if(!totalfeeds || (fcur && strcmp(fcur->name, fields[FieldFeedName]))) {
if(!(f = calloc(1, sizeof(struct feed))))
@@ -44,12 +41,12 @@ main(void)
fcur = f;
feeds = fcur; /* first item. */
}
- if(parsedtime > timenewest) {
+ if(r != -1 && parsedtime > timenewest) {
timenewest = parsedtime;
strlcpy(timenewestformat, fields[FieldTimeFormatted],
sizeof(timenewestformat));
}
- if(parsedtime > fcur->timenewest) {
+ if(r != -1 && parsedtime > fcur->timenewest) {
fcur->timenewest = parsedtime;
strlcpy(fcur->timenewestformat, fields[FieldTimeFormatted],
sizeof(fcur->timenewestformat));