ifix year handling - ics2txt - convert icalendar .ics file to plain text Err bitreich.org 70
hgit clone git://bitreich.org/ics2txt git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/ics2txt URL:git://bitreich.org/ics2txt git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/ics2txt bitreich.org 70
1Log /scm/ics2txt/log.gph bitreich.org 70
1Files /scm/ics2txt/files.gph bitreich.org 70
1Refs /scm/ics2txt/refs.gph bitreich.org 70
1Tags /scm/ics2txt/tag bitreich.org 70
1README /scm/ics2txt/file/README.md.gph bitreich.org 70
i--- Err bitreich.org 70
1commit cf0323aa059bf54b2a88046d7e6e17efe16f9a2e /scm/ics2txt/commit/cf0323aa059bf54b2a88046d7e6e17efe16f9a2e.gph bitreich.org 70
1parent b422b3d0c401d13978ded1934e6ac743ee8a12d9 /scm/ics2txt/commit/b422b3d0c401d13978ded1934e6ac743ee8a12d9.gph bitreich.org 70
hAuthor: Josuah Demangeon <me@josuah.net> URL:mailto:me@josuah.net bitreich.org 70
iDate: Mon, 14 Jun 2021 00:41:39 +0200 Err bitreich.org 70
i Err bitreich.org 70
ifix year handling Err bitreich.org 70
i Err bitreich.org 70
iIt looks like it made a long time I did not use <time.h>. Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M ical.c | 14 ++++++++------ Err bitreich.org 70
i Err bitreich.org 70
i1 file changed, 8 insertions(+), 6 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/ical.c b/ical.c /scm/ics2txt/file/ical.c.gph bitreich.org 70
i@@ -50,13 +50,15 @@ ical_get_time(IcalParser *p, char *s, time_t *t) Err bitreich.org 70
i (p->current && p->current->tzid[0] != '\0') ? p->current->tzid : Err bitreich.org 70
i ""; Err bitreich.org 70
i Err bitreich.org 70
i+#define N(i, x) ((s[i] - '0') * x) Err bitreich.org 70
i+ Err bitreich.org 70
i /* date */ Err bitreich.org 70
i for (int i = 0; i < 8; i++) Err bitreich.org 70
i if (!isdigit(s[i])) Err bitreich.org 70
i return ical_error(p, "invalid date format"); Err bitreich.org 70
i- tm.tm_year = s[0] * 1000 + s[1] * 100 + s[2] * 10 + s[3]; Err bitreich.org 70
i- tm.tm_mon = s[4] * 10 + s[5] - 1; Err bitreich.org 70
i- tm.tm_mday = s[6] * 10 + s[7]; Err bitreich.org 70
i+ tm.tm_year = N(0,1000) + N(1,100) + N(2,10) + N(3,1) - 1900; Err bitreich.org 70
i+ tm.tm_mon = N(4,10) + N(5,1) - 1; Err bitreich.org 70
i+ tm.tm_mday = N(6,10) + N(7,1); Err bitreich.org 70
i s += 8; Err bitreich.org 70
i Err bitreich.org 70
i if (*s == 'T') { Err bitreich.org 70
i@@ -65,9 +67,9 @@ ical_get_time(IcalParser *p, char *s, time_t *t) Err bitreich.org 70
i for (int i = 0; i < 6; i++) Err bitreich.org 70
i if (!isdigit(s[i])) Err bitreich.org 70
i return ical_error(p, "invalid time format"); Err bitreich.org 70
i- tm.tm_hour = s[0] * 10 + s[1]; Err bitreich.org 70
i- tm.tm_min = s[2] * 10 + s[3]; Err bitreich.org 70
i- tm.tm_sec = s[4] * 10 + s[5]; Err bitreich.org 70
i+ tm.tm_hour = N(0,10) + N(1,1); Err bitreich.org 70
i+ tm.tm_min = N(2,10) + N(3,1); Err bitreich.org 70
i+ tm.tm_sec = N(4,10) + N(5,1); Err bitreich.org 70
i if (s[6] == 'Z') Err bitreich.org 70
i tzid = "UTC"; Err bitreich.org 70
i } Err bitreich.org 70
.
Response:
text/plain