diff options
Diffstat (limited to 'src/libstddjb/fmtscan_num.c')
-rw-r--r-- | src/libstddjb/fmtscan_num.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/libstddjb/fmtscan_num.c b/src/libstddjb/fmtscan_num.c new file mode 100644 index 0000000..094eb2a --- /dev/null +++ b/src/libstddjb/fmtscan_num.c @@ -0,0 +1,16 @@ +/* ISC license. */ + +#include <skalibs/fmtscan.h> + +unsigned char fmtscan_num (register unsigned char c, unsigned char n) +{ + return + ((c < '0') || (n > 36)) ? n : + (n <= 10) ? (c - '0' <= n) ? c - '0' : n : + (c - '0' <= 9) ? c - '0' : + (c < 'A') ? n : + (c - 'A' < n - 10) ? c - 'A' + 10 : + (c < 'a') ? n : + (c - 'a' < n - 10) ? c - 'a' + 10 : + n ; +} |