From da16094410217c4ae8c967a3f490d02e3b180697 Mon Sep 17 00:00:00 2001 From: Will Brown Date: Sun, 24 Nov 2024 12:45:30 -0500 Subject: [PATCH] Fix time parsing behavior --- feed_info.c | 2 +- main.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/feed_info.c b/feed_info.c index 45fb927..dc3c73a 100644 --- a/feed_info.c +++ b/feed_info.c @@ -40,7 +40,7 @@ time_t pubDate_to_time_t(char *s) { if(!strptime(s, "%a, %d %b %Y %T %Z", &tm)) return 0; // invalid time } - return mktime(&tm); + return timegm(&tm); } // check if the feed currently exists. the result is in the exists pointer. diff --git a/main.c b/main.c index 54fad37..1ab20dd 100644 --- a/main.c +++ b/main.c @@ -5,6 +5,7 @@ #include #include #include +#include #include #include @@ -133,8 +134,8 @@ static void timer_retrieve_feeds(struct discord *client, struct discord_timer *t mrss_error_t mrss_err = mrss_parse_buffer(feed_buffer->buf, feed_buffer->bufsize, &mrss_feed); if (!mrss_err) { // get publication date of entries and send any new ones - mrss_item_t *item = mrss_feed->item; time_t last_pubDate_time = pubDate_to_time_t(feed_buffer->info.last_pubDate); + mrss_item_t *item = mrss_feed->item; bool update_pubDate = false; while (item && pubDate_to_time_t(item->pubDate) > last_pubDate_time) { update_pubDate = true; @@ -365,6 +366,8 @@ static void on_interaction(struct discord *client, const struct discord_interact int main(void) { int exit_code = 0; + // set locale for time + setlocale(LC_ALL, "C"); srand(time(NULL)); struct discord *client = discord_config_init("config.json"); zblock_config_load(client);