34 #ifdef MHD_FAVOR_SMALL_CODE 41 #define _MHD_inline static 62 return (c >=
'a') && (c <=
'z');
75 return (c >=
'A') && (c <=
'Z');
101 return (c >=
'0') && (c <=
'9');
111 _MHD_inline _MHD_bool
115 ( (c >=
'A') && (c <=
'F') ) ||
116 ( (c >=
'a') && (c <=
'f') );
126 _MHD_inline _MHD_bool
175 return (
unsigned char)(c -
'0');
191 return (
unsigned char)(c -
'0');
192 if ( (c >=
'A') && (c <=
'F') )
193 return (
unsigned char)(c -
'A' + 10);
194 if ( (c >=
'a') && (c <=
'f') )
195 return (
unsigned char)(c -
'a' + 10);
209 #define isasciilower(c) (((char)(c)) >= 'a' && ((char)(c)) <= 'z') 219 #define isasciiupper(c) (((char)(c)) >= 'A' && ((char)(c)) <= 'Z') 229 #define isasciialpha(c) (isasciilower(c) || isasciiupper(c)) 239 #define isasciidigit(c) (((char)(c)) >= '0' && ((char)(c)) <= '9') 249 #define isasciixdigit(c) (isasciidigit((c)) || \ 250 (((char)(c)) >= 'A' && ((char)(c)) <= 'F') || \ 251 (((char)(c)) >= 'a' && ((char)(c)) <= 'f') ) 261 #define isasciialnum(c) (isasciialpha(c) || isasciidigit(c)) 273 #define toasciilower(c) ((isasciiupper(c)) ? (((char)(c)) - 'A' + 'a') : ((char)(c))) 285 #define toasciiupper(c) ((isasciilower(c)) ? (((char)(c)) - 'a' + 'A') : ((char)(c))) 294 #define todigitvalue(c) (isasciidigit(c) ? (int)(((char)(c)) - '0') : (int)(-1)) 302 #define toxdigitvalue(c) ( isasciidigit(c) ? (int)(((char)(c)) - '0') : \ 303 ( (((char)(c)) >= 'A' && ((char)(c)) <= 'F') ? \ 304 (int)(((unsigned char)(c)) - 'A' + 10) : \ 305 ( (((char)(c)) >= 'a' && ((char)(c)) <= 'f') ? \ 306 (int)(((unsigned char)(c)) - 'a' + 10) : (int)(-1) ))) 310 #ifndef MHD_FAVOR_SMALL_CODE 324 const char c1 = *str1;
325 const char c2 = *str2;
350 const char *
const str2,
355 for (i = 0; i < maxlen; ++i)
357 const char c1 = str1[i];
358 const char c2 = str2[i];
368 #ifndef MHD_FAVOR_SMALL_CODE 385 const char *
const start = str;
394 const int digit = (
unsigned char)(*str) -
'0';
431 if (!str || !maxlen || !out_val || !
isasciidigit (str[0]))
438 const int digit = (
unsigned char)str[i] -
'0';
448 }
while ( (i < maxlen) &&
470 const char *
const start = str;
474 if (!str || !out_val)
483 ((
size_t)digit <= (
SIZE_MAX % 16)) ) )
521 if (!str || !out_val)
526 while ( (i < maxlen) &&
531 ((
size_t)digit > (
SIZE_MAX % 16)) ) )
559 const char *
const start = str;
563 if (!str || !out_val)
609 if (!str || !out_val)
645 const char *
const start = str;
648 if (!str || !out_val)
694 if (!str || !out_val)
735 MHD_str_to_uvalue_n_ (
const char *str,
745 const uint64_t max_v_div_b = max_val / base;
746 const uint64_t max_v_mod_b = max_val % base;
748 int (*
const dfunc)(char) = (base == 16) ?
751 if ( !str || !out_val ||
752 (base != 16 && base != 10) )
757 while (maxlen > i && 0 <= (digit = dfunc (str[i])))
759 if ( ((max_v_div_b) < res) ||
760 ((max_v_div_b) == res && (max_v_mod_b) < (uint64_t)digit) )
771 *(uint64_t*)out_val = res;
772 else if (4 == val_size)
773 *(uint32_t*)out_val = (uint32_t)res;
size_t MHD_strx_to_uint64_(const char *str, uint64_t *out_val)
int MHD_str_equal_caseless_n_(const char *const str1, const char *const str2, size_t maxlen)
size_t MHD_strx_to_sizet_n_(const char *str, size_t maxlen, size_t *out_val)
size_t MHD_strx_to_uint32_n_(const char *str, size_t maxlen, uint32_t *out_val)
size_t MHD_strx_to_uint32_(const char *str, uint32_t *out_val)
limits values definitions
Header for string manipulating helpers.
int MHD_str_equal_caseless_(const char *str1, const char *str2)
size_t MHD_strx_to_sizet_(const char *str, size_t *out_val)
size_t MHD_strx_to_uint64_n_(const char *str, size_t maxlen, uint64_t *out_val)
size_t MHD_str_to_uint64_n_(const char *str, size_t maxlen, uint64_t *out_val)
size_t MHD_str_to_uint64_(const char *str, uint64_t *out_val)