X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=ucw%2Fstrtonum.c;h=77858b19a375ff53e9b25118513e103d1edc0e49;hb=564be9c0adf9f5796b60f2727cecc9c7274f86ff;hp=1d6cd1cd29ae6476df62b3719a4943b8f0bcab9c;hpb=a1fdee4766b969fd0786e3286ce878a2a1142bbd;p=libucw.git diff --git a/ucw/strtonum.c b/ucw/strtonum.c index 1d6cd1cd..77858b19 100644 --- a/ucw/strtonum.c +++ b/ucw/strtonum.c @@ -7,12 +7,12 @@ * of the GNU Lesser General Public License. */ -#include "ucw/lib.h" -#include "ucw/string.h" -#include "ucw/chartype.h" -#include "ucw/strtonum.h" +#include +#include +#include +#include -static uns detect_base(const char **pp, const uns flags) +static uint detect_base(const char **pp, const uint flags) { if ((flags & STN_BASES0) && **pp == '0') { @@ -58,7 +58,7 @@ static uns detect_base(const char **pp, const uns flags) return 0; } -static const char *str_to_num_init(const char **pp, const uns flags, uns *sign, uns *base) +static const char *str_to_num_init(const char **pp, const uint flags, uint *sign, uint *base) { ASSERT(*pp); @@ -84,24 +84,33 @@ static const char *str_to_num_init(const char **pp, const uns flags, uns *sign, return err; } -static inline uns get_digit(const uns c) +static inline uint get_digit(const uint c) { if (c <= '9') return c - '0'; else { const int a = c & 0xDF; - unsigned d = a - 'A'; + uint d = a - 'A'; d &= 0xFF; d += 10; return d; } } -#define STN_TYPE uns -#define STN_SUFFIX uns -#include "ucw/strtonum-gen.h" +#define STN_TYPE uint +#define STN_SUFFIX uint +#include + +#define STN_TYPE u64 +#define STN_SUFFIX u64 +#include #define STN_TYPE uintmax_t #define STN_SUFFIX uintmax -#include "ucw/strtonum-gen.h" +#include + +// FIXME: For backwards compatibility, will be removed soon +#define STN_TYPE uns +#define STN_SUFFIX uns +#include