X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=ucw%2Fstrtonum.c;h=4e1be9b520cab27144a9866a1a08093ffe709a2a;hb=1e3d72a761a651aab13951b2f1bb861a35d8a5d4;hp=1d6cd1cd29ae6476df62b3719a4943b8f0bcab9c;hpb=a1fdee4766b969fd0786e3286ce878a2a1142bbd;p=libucw.git diff --git a/ucw/strtonum.c b/ucw/strtonum.c index 1d6cd1cd..4e1be9b5 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,37 @@ 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 u32 +#define STN_SUFFIX u32 +#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 backward compatibility, will be removed soon +#define STN_TYPE uns +#define STN_SUFFIX uns +#include