sfeed

Simple RSS and Atom feed parser
git clone https://git.sinitax.com/codemadness/sfeed
Log | Files | Refs | README | LICENSE | Upstream | sfeed.txt

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:
Msfeed_frames.c | 3++-
Msfeed_gph.c | 3++-
Msfeed_html.c | 3++-
Msfeed_mbox.c | 3++-
Msfeed_plain.c | 3++-
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");