itutil.[ch]: add strlcpy for platforms that do not have it - vote - simple cgi voting system for web and gopher Err mx1.adamsgaard.dk 70 hgit clone git://src.adamsgaard.dk/vote URL:git://src.adamsgaard.dk/vote mx1.adamsgaard.dk 70 1Log /src/vote/log.gph mx1.adamsgaard.dk 70 1Files /src/vote/files.gph mx1.adamsgaard.dk 70 1Refs /src/vote/refs.gph mx1.adamsgaard.dk 70 1README /src/vote/file/README.gph mx1.adamsgaard.dk 70 1LICENSE /src/vote/file/LICENSE.gph mx1.adamsgaard.dk 70 i--- Err mx1.adamsgaard.dk 70 1commit 5190a3453c2755d07cb5e6afeb9689d27275d4da /src/vote/commit/5190a3453c2755d07cb5e6afeb9689d27275d4da.gph mx1.adamsgaard.dk 70 1parent a6ae3f0db3f76e55a4ecc84bf09ee62e629881e3 /src/vote/commit/a6ae3f0db3f76e55a4ecc84bf09ee62e629881e3.gph mx1.adamsgaard.dk 70 hAuthor: Anders Damsgaard URL:mailto:anders@adamsgaard.dk mx1.adamsgaard.dk 70 iDate: Sun, 27 Sep 2020 08:59:58 +0200 Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 iutil.[ch]: add strlcpy for platforms that do not have it Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 iDiffstat: Err mx1.adamsgaard.dk 70 i M util.c | 24 ++++++++++++++++++++++++ Err mx1.adamsgaard.dk 70 i M util.h | 1 + Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i2 files changed, 25 insertions(+), 0 deletions(-) Err mx1.adamsgaard.dk 70 i--- Err mx1.adamsgaard.dk 70 1diff --git a/util.c b/util.c /src/vote/file/util.c.gph mx1.adamsgaard.dk 70 it@@ -228,3 +228,27 @@ escapechars(char *s) Err mx1.adamsgaard.dk 70 i } Err mx1.adamsgaard.dk 70 i } Err mx1.adamsgaard.dk 70 i } Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i+#ifdef NEED_STRLCPY /* OpenBSD implementation */ Err mx1.adamsgaard.dk 70 i+size_t Err mx1.adamsgaard.dk 70 i+strlcpy(char *dst, const char *src, size_t dsize) { Err mx1.adamsgaard.dk 70 i+ const char *osrc = src; Err mx1.adamsgaard.dk 70 i+ size_t nleft = dsize; Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i+ if (nleft != 0) { Err mx1.adamsgaard.dk 70 i+ while (--nleft != 0) { Err mx1.adamsgaard.dk 70 i+ if ((*dst++= *src++) == '\0') Err mx1.adamsgaard.dk 70 i+ break; Err mx1.adamsgaard.dk 70 i+ } Err mx1.adamsgaard.dk 70 i+ } Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i+ if (nleft == 0) { Err mx1.adamsgaard.dk 70 i+ if (dsize != 0) Err mx1.adamsgaard.dk 70 i+ *dst = '\0'; Err mx1.adamsgaard.dk 70 i+ while (*src++) Err mx1.adamsgaard.dk 70 i+ ; Err mx1.adamsgaard.dk 70 i+ } Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i+ return(src - osrc - 1); Err mx1.adamsgaard.dk 70 i+} Err mx1.adamsgaard.dk 70 i+#endif /* NEED_STRLCPY */ Err mx1.adamsgaard.dk 70 1diff --git a/util.h b/util.h /src/vote/file/util.h.gph mx1.adamsgaard.dk 70 it@@ -17,3 +17,4 @@ int uriencode(const char *s, char *buf, size_t bufsiz); Err mx1.adamsgaard.dk 70 i int utf8pad(char *buf, size_t bufsiz, const char *s, size_t len, int pad); Err mx1.adamsgaard.dk 70 i void xmlencode(const char *s); Err mx1.adamsgaard.dk 70 i void escapechars(char *s); Err mx1.adamsgaard.dk 70 i+size_t strlcpy(char *dst, const char *src, size_t dsize); Err mx1.adamsgaard.dk 70 .