commit b232db436b7b9343c336ef941c47cf8b107d1f7e
parent 21ba6ab0544e688c3ef78cdefbadfa76ed729190
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Sun, 24 Dec 2017 12:58:44 +0100
format programs: ignore fields with an invalid time
this makes sure tail -f with multiple files ignores the ==> file <== lines too.
Diffstat:
5 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/sfeed_frames.c b/sfeed_frames.c
@@ -145,7 +145,8 @@ printfeed(FILE *fpitems, FILE *fpin, struct feed *f)
break;
parsedtime = 0;
- strtotime(fields[FieldUnixTimestamp], &parsedtime);
+ if (strtotime(fields[FieldUnixTimestamp], &parsedtime))
+ continue;
if (!(tm = localtime(&parsedtime)))
err(1, "localtime");
diff --git a/sfeed_gph.c b/sfeed_gph.c
@@ -95,7 +95,8 @@ printfeed(FILE *fp, const char *feedname)
break;
parsedtime = 0;
- strtotime(fields[FieldUnixTimestamp], &parsedtime);
+ if (strtotime(fields[FieldUnixTimestamp], &parsedtime))
+ continue;
if (!(tm = localtime(&parsedtime)))
err(1, "localtime");
diff --git a/sfeed_html.c b/sfeed_html.c
@@ -39,7 +39,8 @@ printfeed(FILE *fp, struct feed *f)
break;
parsedtime = 0;
- strtotime(fields[FieldUnixTimestamp], &parsedtime);
+ if (strtotime(fields[FieldUnixTimestamp], &parsedtime))
+ continue;
if (!(tm = localtime(&parsedtime)))
err(1, "localtime");
diff --git a/sfeed_mbox.c b/sfeed_mbox.c
@@ -125,7 +125,8 @@ printfeed(FILE *fp, const char *feedname)
if (!parseline(line, fields))
break;
parsedtime = 0;
- strtotime(fields[FieldUnixTimestamp], &parsedtime);
+ if (strtotime(fields[FieldUnixTimestamp], &parsedtime))
+ continue;
/* can't convert: default to formatted time for time_t 0. */
if (!gmtime_r(&parsedtime, &tm) ||
!strftime(timebuf, sizeof(timebuf),
diff --git a/sfeed_plain.c b/sfeed_plain.c
@@ -27,7 +27,8 @@ printfeed(FILE *fp, const char *feedname)
break;
parsedtime = 0;
- strtotime(fields[FieldUnixTimestamp], &parsedtime);
+ if (strtotime(fields[FieldUnixTimestamp], &parsedtime))
+ continue;
if (!(tm = localtime(&parsedtime)))
err(1, "localtime");