SMOLNET PORTAL home about changes
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
Original URLgopher://bitreich.org/0/scm/ics2txt/commit/cf0323aa059bf5...
Content-Typetext/plain; charset=utf-8