iuse maps everywhere relevant - 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 775c76c450eed349600344550bbb6c140bdf1811 /scm/ics2txt/commit/775c76c450eed349600344550bbb6c140bdf1811.gph bitreich.org 70 1parent d4d55c6876bf51dd555a0dbfae0316343d44997e /scm/ics2txt/commit/d4d55c6876bf51dd555a0dbfae0316343d44997e.gph bitreich.org 70 hAuthor: Josuah Demangeon URL:mailto:me@josuah.net bitreich.org 70 iDate: Sun, 28 Jun 2020 18:53:48 +0200 Err bitreich.org 70 i Err bitreich.org 70 iuse maps everywhere relevant Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M src/ical.c | 22 +++++++++++++++------- Err bitreich.org 70 i M src/ical.h | 2 +- Err bitreich.org 70 i Err bitreich.org 70 i2 files changed, 16 insertions(+), 8 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/src/ical.c b/src/ical.c /scm/ics2txt/file/src/ical.c.gph bitreich.org 70 i@@ -130,19 +130,25 @@ err: Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i static void Err bitreich.org 70 i-ical_free_vnode_value(void *v) Err bitreich.org 70 i+ical_free_value_void(void *v) Err bitreich.org 70 i { Err bitreich.org 70 i ical_free_value(v); Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i+static void Err bitreich.org 70 i+ical_free_vnode_void(void *v) Err bitreich.org 70 i+{ Err bitreich.org 70 i+ ical_free_vnode(v); Err bitreich.org 70 i+} Err bitreich.org 70 i+ Err bitreich.org 70 i void Err bitreich.org 70 i ical_free_vnode(struct ical_vnode *node) Err bitreich.org 70 i { Err bitreich.org 70 i if (node == NULL) Err bitreich.org 70 i return; Err bitreich.org 70 i debug("free vnode %p %s", node, node->name); Err bitreich.org 70 i- map_free(&node->values, ical_free_vnode_value); Err bitreich.org 70 i- ical_free_vnode(node->child); Err bitreich.org 70 i+ map_free(&node->values, ical_free_value_void); Err bitreich.org 70 i+ map_free(&node->child, ical_free_vnode_void); Err bitreich.org 70 i ical_free_vnode(node->next); Err bitreich.org 70 i free(node); Err bitreich.org 70 i } Err bitreich.org 70 i@@ -190,12 +196,14 @@ ical_begin_vnode(struct ical_vcalendar *vcal, char const *name) Err bitreich.org 70 i goto err; Err bitreich.org 70 i if (vcal->root == NULL) { Err bitreich.org 70 i vcal->root = new; Err bitreich.org 70 i- vcal->current = new; Err bitreich.org 70 i } else { Err bitreich.org 70 i- new->next = vcal->current->child; Err bitreich.org 70 i- vcal->current->child = new; Err bitreich.org 70 i- vcal->current = new; Err bitreich.org 70 i+ new->next = map_get(&vcal->current->child, new->name); Err bitreich.org 70 i+ if (map_set(&vcal->current->child, new->name, new) < 0) { Err bitreich.org 70 i+ e = -ICAL_ERR_SYSTEM; Err bitreich.org 70 i+ goto err; Err bitreich.org 70 i+ } Err bitreich.org 70 i } Err bitreich.org 70 i+ vcal->current = new; Err bitreich.org 70 i return 0; Err bitreich.org 70 i err: Err bitreich.org 70 i ical_free_vnode(new); Err bitreich.org 70 1diff --git a/src/ical.h b/src/ical.h /scm/ics2txt/file/src/ical.h.gph bitreich.org 70 i@@ -34,7 +34,7 @@ struct ical_vnode { Err bitreich.org 70 i char name[32]; Err bitreich.org 70 i time_t beg, end; Err bitreich.org 70 i struct map values; /*(struct ical_value *)*/ Err bitreich.org 70 i- struct ical_vnode *child; Err bitreich.org 70 i+ struct map child; /*(struct ical_vnode *)*/ Err bitreich.org 70 i struct ical_vnode *next; Err bitreich.org 70 i }; Err bitreich.org 70 i Err bitreich.org 70 .