SMOLNET PORTAL home about changes
iutil: ship a clean-room version of strtonum for convenience - 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 94173d57d064a613633e0cdd0b1a6da35d28fee8	/scm/ics2txt/commit/94173d57d064a613633e0cdd0b1a6da35d28fee8.gph	bitreich.org	70
1parent 599d47ef952d535e775263772cfbbbe9a2704971	/scm/ics2txt/commit/599d47ef952d535e775263772cfbbbe9a2704971.gph	bitreich.org	70
hAuthor: Josuah Demangeon <me@josuah.net>	URL:mailto:me@josuah.net	bitreich.org	70
iDate:   Thu, 24 Jun 2021 23:48:52 +0200	Err	bitreich.org	70
i	Err	bitreich.org	70
iutil: ship a clean-room version of strtonum for convenience	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M Makefile                            |       2 +-	Err	bitreich.org	70
i  D strtonum.c                          |      65 -------------------------------	Err	bitreich.org	70
i  M util.c                              |      37 +++++++++++++++++++++++++------	Err	bitreich.org	70
i  M util.h                              |       8 +-------	Err	bitreich.org	70
i	Err	bitreich.org	70
i4 files changed, 32 insertions(+), 80 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/Makefile b/Makefile	/scm/ics2txt/file/Makefile.gph	bitreich.org	70
i@@ -7,7 +7,7 @@ CFLAGS = $D $W -g	Err	bitreich.org	70
i PREFIX = /usr/local	Err	bitreich.org	70
i MANPREFIX = ${PREFIX}/man	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-SRC = ical.c base64.c util.c strtonum.c	Err	bitreich.org	70
i+SRC = ical.c base64.c util.c	Err	bitreich.org	70
i HDR = ical.h base64.h util.h	Err	bitreich.org	70
i OBJ = ${SRC:.c=.o}	Err	bitreich.org	70
i AWK = tsv2ics.awk	Err	bitreich.org	70
1diff --git a/strtonum.c b/strtonum.c	/scm/ics2txt/file/strtonum.c.gph	bitreich.org	70
i@@ -1,65 +0,0 @@	Err	bitreich.org	70
i-/*        $OpenBSD: strtonum.c,v 1.8 2015/09/13 08:31:48 guenther Exp $        */	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-/*	Err	bitreich.org	70
i- * Copyright (c) 2004 Ted Unangst and Todd Miller	Err	bitreich.org	70
i- * All rights reserved.	Err	bitreich.org	70
i- *	Err	bitreich.org	70
i- * Permission to use, copy, modify, and distribute this software for any	Err	bitreich.org	70
i- * purpose with or without fee is hereby granted, provided that the above	Err	bitreich.org	70
i- * copyright notice and this permission notice appear in all copies.	Err	bitreich.org	70
i- *	Err	bitreich.org	70
i- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES	Err	bitreich.org	70
i- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF	Err	bitreich.org	70
i- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR	Err	bitreich.org	70
i- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES	Err	bitreich.org	70
i- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN	Err	bitreich.org	70
i- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF	Err	bitreich.org	70
i- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.	Err	bitreich.org	70
i- */	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-#include <errno.h>	Err	bitreich.org	70
i-#include <limits.h>	Err	bitreich.org	70
i-#include <stdlib.h>	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-#define        INVALID                1	Err	bitreich.org	70
i-#define        TOOSMALL        2	Err	bitreich.org	70
i-#define        TOOLARGE        3	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-long long	Err	bitreich.org	70
i-strtonum(const char *numstr, long long minval, long long maxval,	Err	bitreich.org	70
i-    const char **errstrp)	Err	bitreich.org	70
i-{	Err	bitreich.org	70
i-        long long ll = 0;	Err	bitreich.org	70
i-        int error = 0;	Err	bitreich.org	70
i-        char *ep;	Err	bitreich.org	70
i-        struct errval {	Err	bitreich.org	70
i-                const char *errstr;	Err	bitreich.org	70
i-                int err;	Err	bitreich.org	70
i-        } ev[4] = {	Err	bitreich.org	70
i-                { NULL,                0 },	Err	bitreich.org	70
i-                { "invalid",        EINVAL },	Err	bitreich.org	70
i-                { "too small",        ERANGE },	Err	bitreich.org	70
i-                { "too large",        ERANGE },	Err	bitreich.org	70
i-        };	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        ev[0].err = errno;	Err	bitreich.org	70
i-        errno = 0;	Err	bitreich.org	70
i-        if (minval > maxval) {	Err	bitreich.org	70
i-                error = INVALID;	Err	bitreich.org	70
i-        } else {	Err	bitreich.org	70
i-                ll = strtoll(numstr, &ep, 10);	Err	bitreich.org	70
i-                if (numstr == ep || *ep != '\0')	Err	bitreich.org	70
i-                        error = INVALID;	Err	bitreich.org	70
i-                else if ((ll == LLONG_MIN && errno == ERANGE) || ll < minval)	Err	bitreich.org	70
i-                        error = TOOSMALL;	Err	bitreich.org	70
i-                else if ((ll == LLONG_MAX && errno == ERANGE) || ll > maxval)	Err	bitreich.org	70
i-                        error = TOOLARGE;	Err	bitreich.org	70
i-        }	Err	bitreich.org	70
i-        if (errstrp != NULL)	Err	bitreich.org	70
i-                *errstrp = ev[error].errstr;	Err	bitreich.org	70
i-        errno = ev[error].err;	Err	bitreich.org	70
i-        if (error)	Err	bitreich.org	70
i-                ll = 0;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        return (ll);	Err	bitreich.org	70
i-}	Err	bitreich.org	70
1diff --git a/util.c b/util.c	/scm/ics2txt/file/util.c.gph	bitreich.org	70
i@@ -2,6 +2,7 @@	Err	bitreich.org	70
i #include <assert.h>	Err	bitreich.org	70
i #include <errno.h>	Err	bitreich.org	70
i #include <stdint.h>	Err	bitreich.org	70
i+#include <limits.h>	Err	bitreich.org	70
i #include <stdlib.h>	Err	bitreich.org	70
i #include <string.h>	Err	bitreich.org	70
i #include <stdio.h>	Err	bitreich.org	70
i@@ -9,8 +10,6 @@	Err	bitreich.org	70
i 	Err	bitreich.org	70
i char *arg0;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-/** logging **/	Err	bitreich.org	70
i-	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i _log(char const *fmt, va_list va)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i@@ -54,8 +53,6 @@ debug(char const *fmt, ...)	Err	bitreich.org	70
i         _log(fmt, va);	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-/** strings **/	Err	bitreich.org	70
i-	Err	bitreich.org	70
i size_t	Err	bitreich.org	70
i strlcpy(char *d, char const *s, size_t sz)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i@@ -137,7 +134,35 @@ strsplit(char *s, char **array, size_t len, char const *sep)	Err	bitreich.org	70
i         return i;	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-/** memory **/	Err	bitreich.org	70
i+long long	Err	bitreich.org	70
i+strtonum(char const *s, long long min, long long max, char const **errstr)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        long long ll = 0;	Err	bitreich.org	70
i+        char *end;	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        assert(min < max);	Err	bitreich.org	70
i+        errno = 0;	Err	bitreich.org	70
i+        ll = strtoll(s, &end, 10);	Err	bitreich.org	70
i+        if ((errno == ERANGE && ll == LLONG_MIN) || ll < min) {	Err	bitreich.org	70
i+                if (errstr != NULL)	Err	bitreich.org	70
i+                        *errstr = "too small";	Err	bitreich.org	70
i+                return 0;	Err	bitreich.org	70
i+        }	Err	bitreich.org	70
i+        if ((errno == ERANGE && ll == LLONG_MAX) || ll > max) {	Err	bitreich.org	70
i+                if (errstr != NULL)	Err	bitreich.org	70
i+                        *errstr = "too large";	Err	bitreich.org	70
i+                return 0;	Err	bitreich.org	70
i+        }	Err	bitreich.org	70
i+        if (errno == EINVAL || *end != '\0') {	Err	bitreich.org	70
i+                if (errstr != NULL)	Err	bitreich.org	70
i+                        *errstr = "invalid";	Err	bitreich.org	70
i+                return 0;	Err	bitreich.org	70
i+        }	Err	bitreich.org	70
i+        assert(errno == 0);	Err	bitreich.org	70
i+        if (errstr != NULL)	Err	bitreich.org	70
i+                *errstr = NULL;	Err	bitreich.org	70
i+        return ll;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i 	Err	bitreich.org	70
i void *	Err	bitreich.org	70
i reallocarray(void *mem, size_t n, size_t sz)	Err	bitreich.org	70
i@@ -147,8 +172,6 @@ reallocarray(void *mem, size_t n, size_t sz)	Err	bitreich.org	70
i         return realloc(mem, n * sz);	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-/** time **/	Err	bitreich.org	70
i-	Err	bitreich.org	70
i time_t	Err	bitreich.org	70
i tztime(struct tm *tm, char const *tz)	Err	bitreich.org	70
i {	Err	bitreich.org	70
1diff --git a/util.h b/util.h	/scm/ics2txt/file/util.h.gph	bitreich.org	70
i@@ -8,13 +8,11 @@	Err	bitreich.org	70
i 	Err	bitreich.org	70
i #define LEN(x) (sizeof (x) / sizeof *(x))	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-/** logging **/	Err	bitreich.org	70
i extern char *arg0;	Err	bitreich.org	70
i+	Err	bitreich.org	70
i void         err(int, char const *fmt, ...);	Err	bitreich.org	70
i void         warn(char const *fmt, ...);	Err	bitreich.org	70
i void         debug(char const *fmt, ...);	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-/** strings **/	Err	bitreich.org	70
i size_t         strlcpy(char *, char const *, size_t);	Err	bitreich.org	70
i char        *strsep(char **, char const *);	Err	bitreich.org	70
i void         strchomp(char *);	Err	bitreich.org	70
i@@ -22,11 +20,7 @@ char        *strappend(char **, char const *);	Err	bitreich.org	70
i size_t         strlcat(char *, char const *, size_t);	Err	bitreich.org	70
i long long strtonum(const char *, long long, long long, const char **);	Err	bitreich.org	70
i size_t         strsplit(char *, char **, size_t, char const *);	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-/** memory **/	Err	bitreich.org	70
i void        *reallocarray(void *, size_t, size_t);	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-/** time **/	Err	bitreich.org	70
i time_t         tztime(struct tm *, char const *);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i #endif	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/ics2txt/commit/94173d57d064a6...
Content-Typetext/plain; charset=utf-8