SMOLNET PORTAL home about changes
itsv2agenda: show everything by default - 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 44e416da284ed08d3ed7b47f2d70a333433930f4	/scm/ics2txt/commit/44e416da284ed08d3ed7b47f2d70a333433930f4.gph	bitreich.org	70
1parent d1604d44d1926ce38a94073ad8d55b2c8a99d172	/scm/ics2txt/commit/d1604d44d1926ce38a94073ad8d55b2c8a99d172.gph	bitreich.org	70
hAuthor: Josuah Demangeon <me@josuah.net>	URL:mailto:me@josuah.net	bitreich.org	70
iDate:   Fri, 25 Jun 2021 22:46:59 +0200	Err	bitreich.org	70
i	Err	bitreich.org	70
itsv2agenda: show everything by default	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M tsv2agenda.1                        |       2 +-	Err	bitreich.org	70
i  M tsv2agenda.c                        |      46 ++++++++++++++++----------------	Err	bitreich.org	70
i	Err	bitreich.org	70
i2 files changed, 24 insertions(+), 24 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/tsv2agenda.1 b/tsv2agenda.1	/scm/ics2txt/file/tsv2agenda.1.gph	bitreich.org	70
i@@ -31,7 +31,7 @@ the output (if not empty).	Err	bitreich.org	70
i .It Fl f Ar fromdate	Err	bitreich.org	70
i Show only events starting from	Err	bitreich.org	70
i .Ar fromdate .	Err	bitreich.org	70
i-By default the current time: showing all future events.	Err	bitreich.org	70
i+By default show everything from the beggining.	Err	bitreich.org	70
i .	Err	bitreich.org	70
i .It Fl t Ar todate	Err	bitreich.org	70
i Show only events up to	Err	bitreich.org	70
1diff --git a/tsv2agenda.c b/tsv2agenda.c	/scm/ics2txt/file/tsv2agenda.c.gph	bitreich.org	70
i@@ -185,26 +185,26 @@ print(AgendaCtx *ctx, char **fields)	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i-tsv_to_agenda(AgendaCtx *ctx, FILE *fp)	Err	bitreich.org	70
i+tsv2agenda(FILE *fp)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        char *ln1 = NULL, *ln2 = NULL;	Err	bitreich.org	70
i+        AgendaCtx ctx = {0};	Err	bitreich.org	70
i+        char *line = NULL;	Err	bitreich.org	70
i         size_t sz1 = 0, sz2 = 0;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        if (ctx->linenum == 0) {	Err	bitreich.org	70
i+        if (ctx.linenum == 0) {	Err	bitreich.org	70
i                 char *fields[FIELD_MAX];	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-                ctx->linenum++;	Err	bitreich.org	70
i-                getline(&ln1, &sz1, fp);	Err	bitreich.org	70
i+                ctx.linenum++;	Err	bitreich.org	70
i+                getline(&line, &sz1, fp);	Err	bitreich.org	70
i                 if (ferror(fp))	Err	bitreich.org	70
i                         err(1, "reading stdin: %s", strerror(errno));	Err	bitreich.org	70
i                 if (feof(fp))	Err	bitreich.org	70
i                         err(1, "empty input");	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-                strchomp(ln1);	Err	bitreich.org	70
i-                ctx->fieldnum = strsplit(ln1, fields, FIELD_MAX, "\t");	Err	bitreich.org	70
i-                if (ctx->fieldnum == FIELD_MAX)	Err	bitreich.org	70
i+                strchomp(line);	Err	bitreich.org	70
i+                ctx.fieldnum = strsplit(line, fields, FIELD_MAX, "\t");	Err	bitreich.org	70
i+                if (ctx.fieldnum == FIELD_MAX)	Err	bitreich.org	70
i                         err(1, "line 1: too many fields");	Err	bitreich.org	70
i-                if (ctx->fieldnum < FIELD_OTHER)	Err	bitreich.org	70
i+                if (ctx.fieldnum < FIELD_OTHER)	Err	bitreich.org	70
i                         err(1, "line 1: not enough input columns");	Err	bitreich.org	70
i                 if (strcasecmp(fields[0], "TYPE") != 0)	Err	bitreich.org	70
i                         err(1, "line 1: 1st column is not \"TYPE\"");	Err	bitreich.org	70
i@@ -214,29 +214,33 @@ tsv_to_agenda(AgendaCtx *ctx, FILE *fp)	Err	bitreich.org	70
i                         err(1, "line 1: 3rd column is not \"END\"");	Err	bitreich.org	70
i                 if (strcasecmp(fields[3], "RECUR") != 0)	Err	bitreich.org	70
i                         err(1, "line 1: 4th column is not \"RECUR\"");	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+                free(line);	Err	bitreich.org	70
i+                line = NULL;	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         for (;;) {	Err	bitreich.org	70
i                 char *fields[FIELD_MAX];	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-                ctx->linenum++;	Err	bitreich.org	70
i-                getline(&ln2, &sz2, fp);	Err	bitreich.org	70
i+                ctx.linenum++;	Err	bitreich.org	70
i+                getline(&line, &sz2, fp);	Err	bitreich.org	70
i                 if (ferror(fp))	Err	bitreich.org	70
i                         err(1, "reading stdin: %s", strerror(errno));	Err	bitreich.org	70
i                 if (feof(fp))	Err	bitreich.org	70
i                         break;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-                strchomp(ln2);	Err	bitreich.org	70
i-                if (strsplit(ln2, fields, FIELD_MAX, "\t") != ctx->fieldnum)	Err	bitreich.org	70
i+                strchomp(line);	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+                if (strsplit(line, fields, FIELD_MAX, "\t") != ctx.fieldnum)	Err	bitreich.org	70
i                         err(1, "line %zd: bad number of columns",	Err	bitreich.org	70
i-                            ctx->linenum, strerror(errno));	Err	bitreich.org	70
i+                            ctx.linenum, strerror(errno));	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-                print(ctx, fields);	Err	bitreich.org	70
i+                print(&ctx, fields);	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i         fputc('\n', stdout);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        free(ln1);	Err	bitreich.org	70
i-        free(ln2);	Err	bitreich.org	70
i+        free(line);	Err	bitreich.org	70
i+        line = NULL;	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i@@ -249,12 +253,8 @@ usage(void)	Err	bitreich.org	70
i int	Err	bitreich.org	70
i main(int argc, char **argv)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        AgendaCtx ctx = {0};	Err	bitreich.org	70
i         char c;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        if ((flag_from = time(NULL)) == (time_t)-1)	Err	bitreich.org	70
i-                err(1, "time: %s", strerror(errno));	Err	bitreich.org	70
i-	Err	bitreich.org	70
i         if (pledge("stdio", "") < 0)	Err	bitreich.org	70
i                 err(1, "pledge: %s", strerror(errno));	Err	bitreich.org	70
i 	Err	bitreich.org	70
i@@ -280,6 +280,6 @@ main(int argc, char **argv)	Err	bitreich.org	70
i         argc -= optind;	Err	bitreich.org	70
i         argv += optind;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        tsv_to_agenda(&ctx, stdin);	Err	bitreich.org	70
i+        tsv2agenda(stdin);	Err	bitreich.org	70
i         return 0;	Err	bitreich.org	70
i }	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/ics2txt/commit/44e416da284ed0...
Content-Typetext/plain; charset=utf-8