summaryrefslogtreecommitdiff
path: root/src/libstddjb/fmtscan-internal.h
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/fmtscan-internal.h
parentfd7dc9d1d7311b05e92464de1fc4eab6f2407b51 (diff)
downloadskalibs-34f0e76ca0135b2b302e2b079482a4038149b079.tar.xz
bits-fmtscan refactor, part two
Diffstat (limited to 'src/libstddjb/fmtscan-internal.h')
-rw-r--r--src/libstddjb/fmtscan-internal.h17
1 files changed, 5 insertions, 12 deletions
diff --git a/src/libstddjb/fmtscan-internal.h b/src/libstddjb/fmtscan-internal.h
index 61b3e6a..f6c3391 100644
--- a/src/libstddjb/fmtscan-internal.h
+++ b/src/libstddjb/fmtscan-internal.h
@@ -11,9 +11,6 @@
#include <skalibs/uint64.h>
#include <skalibs/fmtscan.h>
-extern size_t uint64_scan_base_max (char const *, uint64_t *, uint8_t, uint64_t) ;
-extern size_t int64_scan_base_max (char const *, int64_t *, uint8_t, uint64_t) ;
-
#define SCANB0(bits) \
size_t uint##bits##0_scan_base (char const *s, uint##bits##_t *u, uint8_t base) \
{ \
@@ -65,17 +62,13 @@ size_t int##bits##_scanlist (int##bits##_t *tab, size_t max, char const *s, size
} \
#define FMTL(bits) \
+static uint64_t get (void const *tab, size_t i) \
+{ \
+ return ((uint##bits##_t const *)tab)[i] ; \
+} \
size_t uint##bits##_fmtlist (char *s, uint##bits##_t const *tab, size_t n) \
{ \
- size_t i = 0, len = 0 ; \
- for (; i < n ; i++) \
- { \
- size_t w = uint##bits##_fmt(s, tab[i]) ; \
- len += w ; \
- if (s) s += w ; \
- if (i < n-1) { len++ ; if (s) *s++ = ',' ; } \
- } \
- return len ; \
+ return uint64_fmtlist_generic(s, tab, n, 10, &get) ; \
} \
#define FMTSL(bits) \