X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=ucw%2Fstrtonum.c;h=e8fa486445e0868175c24bd3ef34e8f91412e93a;hb=b8667492cf36a609939ee35ac42900ff0b0cc80f;hp=db4ab5952fab6deb4ceb4dd799f16090b1279bde;hpb=fa7aa6d9457616ce28f97c83eaa616d0ff276870;p=libucw.git diff --git a/ucw/strtonum.c b/ucw/strtonum.c index db4ab595..e8fa4864 100644 --- a/ucw/strtonum.c +++ b/ucw/strtonum.c @@ -12,7 +12,7 @@ #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 +#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 + +// FIXME: For backwards compatibility, will be removed soon +#define STN_TYPE uns +#define STN_SUFFIX uns +#include