diff options
Diffstat (limited to 'src/libstddjb/uint64_fmtlist_generic.c')
| -rw-r--r-- | src/libstddjb/uint64_fmtlist_generic.c | 16 |
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 ; +} |
