aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstddjb/uint64_fmtlist_generic.c
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2019-07-19 12:34:44 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2019-07-19 12:34:44 +0000
commit34f0e76ca0135b2b302e2b079482a4038149b079 (patch)
tree7a91cd9bb866d06b9273212cf5136ccb158e2e29 /src/libstddjb/uint64_fmtlist_generic.c
parentfd7dc9d1d7311b05e92464de1fc4eab6f2407b51 (diff)
downloadskalibs-34f0e76ca0135b2b302e2b079482a4038149b079.tar.gz
bits-fmtscan refactor, part two
Diffstat (limited to 'src/libstddjb/uint64_fmtlist_generic.c')
-rw-r--r--src/libstddjb/uint64_fmtlist_generic.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/libstddjb/uint64_fmtlist_generic.c b/src/libstddjb/uint64_fmtlist_generic.c
new file mode 100644
index 0000000..6ea2762
--- /dev/null
+++ b/src/libstddjb/uint64_fmtlist_generic.c
@@ -0,0 +1,16 @@
+/* ISC license. */
+
+#include <skalibs/uint64.h>
+
+size_t uint64_fmtlist_generic (char *s, void const *tab, size_t n, uint8_t base, uint64_t (*get)(void const *, size_t))
+{
+ size_t i = 0, len = 0 ;
+ for (; i < n ; i++)
+ {
+ size_t w = uint64_fmt_generic(s, (*get)(tab, i), base) ;
+ len += w ;
+ if (s) s += w ;
+ if (i < n-1) { len++ ; if (s) *s++ = ',' ; }
+ }
+ return len ;
+}