From 1661532486d742462f834d2e57f1ad827d6e8916 Mon Sep 17 00:00:00 2001 From: Leo Tenenbaum Date: Wed, 28 Aug 2019 13:59:24 -0400 Subject: cleaned up code; fixed some function stuff --- util/str.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 util/str.c (limited to 'util') diff --git a/util/str.c b/util/str.c new file mode 100644 index 0000000..b05cc63 --- /dev/null +++ b/util/str.c @@ -0,0 +1,18 @@ +/* +A better alternative to strncpy. dest is guaranteed to be a null-terminated string +after this function is run. +Returns the number of characters copied to dest, not including the null character. +destsz must be greater than 0. +*/ +size_t str_copy(char *dest, size_t destsz, const char *src) { + assert(destsz); + for (size_t i = 0; i < destsz-1; i++) { + if (!*src) { + *dest = 0; + return i; + } + *dest++ = *src++; + } + dest[destsz] = 0; + return destsz-1; +} -- cgit v1.2.3