SMOLNET PORTAL home about changes
itsv2agenda: add line wrapping - 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 d1604d44d1926ce38a94073ad8d55b2c8a99d172	/scm/ics2txt/commit/d1604d44d1926ce38a94073ad8d55b2c8a99d172.gph	bitreich.org	70
1parent 3b9f2bbdc0b786d3732555f8e7a001f40eaa59c6	/scm/ics2txt/commit/3b9f2bbdc0b786d3732555f8e7a001f40eaa59c6.gph	bitreich.org	70
hAuthor: Josuah Demangeon <me@josuah.net>	URL:mailto:me@josuah.net	bitreich.org	70
iDate:   Fri, 25 Jun 2021 20:18:33 +0200	Err	bitreich.org	70
i	Err	bitreich.org	70
itsv2agenda: add line wrapping	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M tsv2agenda.c                        |      50 ++++++++++++++++++++++++-------	Err	bitreich.org	70
i	Err	bitreich.org	70
i1 file changed, 39 insertions(+), 11 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/tsv2agenda.c b/tsv2agenda.c	/scm/ics2txt/file/tsv2agenda.c.gph	bitreich.org	70
i@@ -106,20 +106,48 @@ print_header(AgendaCtx *ctx, struct tm *beg, struct tm *end, size_t *num)	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i-print_row(AgendaCtx *ctx, char *line, struct tm *beg, struct tm *end, size_t *num)	Err	bitreich.org	70
i+unescape(char const *s, char *d)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i+        for (; *s != '\0'; s++) {	Err	bitreich.org	70
i+                if (*s == '\\') {	Err	bitreich.org	70
i+                        s++;	Err	bitreich.org	70
i+                        *d++ = (*s == 'n') ? '\n' : (*s == 't') ? ' ' : *s;	Err	bitreich.org	70
i+                } else {	Err	bitreich.org	70
i+                        if (*s == '\\')	Err	bitreich.org	70
i+                                debug("s='%c'", *s);	Err	bitreich.org	70
i+                        *d++ = *s;	Err	bitreich.org	70
i+                }	Err	bitreich.org	70
i+        }	Err	bitreich.org	70
i+        *d = '\0';	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+static void	Err	bitreich.org	70
i+print_row(AgendaCtx *ctx, char *s, struct tm *beg, struct tm *end, size_t *num)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        unescape(s, s);	Err	bitreich.org	70
i+	Err	bitreich.org	70
i         print_header(ctx, beg, end, num);	Err	bitreich.org	70
i-        for (char *cp = line; *cp != '\0'; cp++) {	Err	bitreich.org	70
i-                if (*cp == '\\') {	Err	bitreich.org	70
i-                        switch (*++cp) {	Err	bitreich.org	70
i-                        case 'n':	Err	bitreich.org	70
i-                                fputc('\n', stdout);	Err	bitreich.org	70
i-                                print_header(ctx, beg, end, num);	Err	bitreich.org	70
i-                                fputs(": ", stdout);	Err	bitreich.org	70
i-                                continue;	Err	bitreich.org	70
i-                        }	Err	bitreich.org	70
i+        for (size_t i, n = 0; *s != '\0'; s++) {	Err	bitreich.org	70
i+                switch (*s) {	Err	bitreich.org	70
i+                case '\n':	Err	bitreich.org	70
i+newline:	Err	bitreich.org	70
i+                        fputc('\n', stdout);	Err	bitreich.org	70
i+                        print_header(ctx, beg, end, num);	Err	bitreich.org	70
i+                        fputs(": ", stdout);	Err	bitreich.org	70
i+                        n = 0;	Err	bitreich.org	70
i+                        break;	Err	bitreich.org	70
i+                case ' ':	Err	bitreich.org	70
i+                case '\t':	Err	bitreich.org	70
i+                        i = strcspn(s + 1, " \t\n");	Err	bitreich.org	70
i+                        if (n + i > 70)	Err	bitreich.org	70
i+                                goto newline;	Err	bitreich.org	70
i+                        fputc(' ', stdout);	Err	bitreich.org	70
i+                        n++;	Err	bitreich.org	70
i+                        break;	Err	bitreich.org	70
i+                default:	Err	bitreich.org	70
i+                        fputc(*s, stdout);	Err	bitreich.org	70
i+                        n++;	Err	bitreich.org	70
i                 }	Err	bitreich.org	70
i-                fputc(*cp, stdout);	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i         fputc('\n', stdout);	Err	bitreich.org	70
i }	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/ics2txt/commit/d1604d44d1926c...
Content-Typetext/plain; charset=utf-8