SMOLNET PORTAL home about changes
ifirst mockup of conversion - 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 65778fa74c2e72ca67a8dc4f6c1f0021f8ce2de4	/scm/ics2txt/commit/65778fa74c2e72ca67a8dc4f6c1f0021f8ce2de4.gph	bitreich.org	70
1parent 54ba66bb7b1b7eed7e3aaf60ef00c9ccc9cc65d6	/scm/ics2txt/commit/54ba66bb7b1b7eed7e3aaf60ef00c9ccc9cc65d6.gph	bitreich.org	70
hAuthor: Josuah Demangeon <me@josuah.net>	URL:mailto:me@josuah.net	bitreich.org	70
iDate:   Thu, 17 Jun 2021 08:33:25 +0200	Err	bitreich.org	70
i	Err	bitreich.org	70
ifirst mockup of conversion	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M ical.c                              |      16 +++++++++++-----	Err	bitreich.org	70
i  M ics2tsv.c                           |      16 ++++++++--------	Err	bitreich.org	70
i	Err	bitreich.org	70
i2 files changed, 19 insertions(+), 13 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@@ -154,16 +154,21 @@ hook_block_begin(IcalParser *p, char *name)	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i static int	Err	bitreich.org	70
i-hook_block_end(IcalParser *p, char *name)	Err	bitreich.org	70
i+hook_block_end_before(IcalParser *p, char *name)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i         if (p->current == p->stack)	Err	bitreich.org	70
i                 return ical_err(p, "more END: than BEGIN:");	Err	bitreich.org	70
i         if (strcasecmp(p->current->name, name) != 0)	Err	bitreich.org	70
i                 return ical_err(p, "mismatching BEGIN: and END:");	Err	bitreich.org	70
i-        p->current--;	Err	bitreich.org	70
i-        if (p->current < p->stack)	Err	bitreich.org	70
i+        if (p->current <= p->stack)	Err	bitreich.org	70
i                 return ical_err(p, "more END: than BEGIN:");	Err	bitreich.org	70
i+        return 0;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+static int	Err	bitreich.org	70
i+hook_block_end_after(IcalParser *p, char *name)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        p->current--;	Err	bitreich.org	70
i         if (ical_block_name[p->blocktype] != NULL &&	Err	bitreich.org	70
i             strcasecmp(ical_block_name[p->blocktype], name) == 0)	Err	bitreich.org	70
i                 p->blocktype = ICAL_BLOCK_OTHER;	Err	bitreich.org	70
i@@ -264,8 +269,9 @@ ical_parse_contentline(IcalParser *p, char *s)	Err	bitreich.org	70
i                     (err = CALL(p, fn_block_begin, s)) != 0)	Err	bitreich.org	70
i                         return err;	Err	bitreich.org	70
i         } else if (strcasecmp(name, "END") == 0) {	Err	bitreich.org	70
i-                if ((err = hook_block_end(p, s)) != 0 ||	Err	bitreich.org	70
i-                    (err = CALL(p, fn_block_end, s)) != 0)	Err	bitreich.org	70
i+                if ((err = hook_block_end_before(p, s)) != 0 ||	Err	bitreich.org	70
i+                    (err = CALL(p, fn_block_end, s)) != 0 ||	Err	bitreich.org	70
i+                    (err = hook_block_end_after(p, s)) != 0)	Err	bitreich.org	70
i                         return err;	Err	bitreich.org	70
i         } else {	Err	bitreich.org	70
i                 if ((err = hook_field_value(p, name, s)) != 0 ||	Err	bitreich.org	70
1diff --git a/ics2tsv.c b/ics2tsv.c	/scm/ics2txt/file/ics2tsv.c.gph	bitreich.org	70
i@@ -22,28 +22,29 @@ Block block;	Err	bitreich.org	70
i static int	Err	bitreich.org	70
i fn_field_name(IcalParser *p, char *name)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        printf("name %s\n", name);	Err	bitreich.org	70
i         return 0;	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i static int	Err	bitreich.org	70
i fn_block_begin(IcalParser *p, char *name)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        debug("begin %s\n", name);	Err	bitreich.org	70
i+        memset(&block, 0, sizeof block);	Err	bitreich.org	70
i         return 0;	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i static int	Err	bitreich.org	70
i fn_block_end(IcalParser *p, char *name)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        debug("end %s\n", name);	Err	bitreich.org	70
i+        if (p->blocktype == ICAL_BLOCK_OTHER)	Err	bitreich.org	70
i+                return 0;	Err	bitreich.org	70
i+        printf("%s\t%lld\t%lld", p->current->name, block.beg, block.end);	Err	bitreich.org	70
i+        printf("\n");	Err	bitreich.org	70
i         return 0;	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i static int	Err	bitreich.org	70
i fn_param_value(IcalParser *p, char *name, char *value)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        printf("param %s=%s\n", name, value);	Err	bitreich.org	70
i         return 0;	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i@@ -84,16 +85,15 @@ main(int argc, char **argv)	Err	bitreich.org	70
i         p.fn_field_value = fn_field_value;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         if (*argv == NULL) {	Err	bitreich.org	70
i+                debug("converting *stdin*");	Err	bitreich.org	70
i                 if (ical_parse(&p, stdin) < 0)	Err	bitreich.org	70
i-                        err("parsing stdin:%d: %s", p.linenum, p.errmsg);	Err	bitreich.org	70
i+                        err("parsing *stdin*:%d: %s", p.linenum, p.errmsg);	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i-	Err	bitreich.org	70
i         for (; *argv != NULL; argv++, argc--) {	Err	bitreich.org	70
i                 FILE *fp;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i                 debug("converting \"%s\"", *argv);	Err	bitreich.org	70
i                 if ((fp = fopen(*argv, "r")) == NULL)	Err	bitreich.org	70
i-                        err("opening %s", *argv);	Err	bitreich.org	70
i+                        err("opening %s: %s", *argv, strerror(errno));	Err	bitreich.org	70
i                 if (ical_parse(&p, fp) < 0)	Err	bitreich.org	70
i                         err("parsing %s:%d: %s", *argv, p.linenum, p.errmsg);	Err	bitreich.org	70
i                 fclose(fp);	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/ics2txt/commit/65778fa74c2e72...
Content-Typetext/plain; charset=utf-8