34#ifdef MHD_FAVOR_SMALL_CODE
35#ifdef _MHD_static_inline
36#undef _MHD_static_inline
41#define _MHD_static_inline static
61_MHD_static_inline
bool
64 return (c >=
'a') && (c <=
'z');
77_MHD_static_inline
bool
80 return (c >=
'A') && (c <=
'Z');
91_MHD_static_inline
bool
107_MHD_static_inline
bool
110 return (c >=
'0') && (c <=
'9');
121_MHD_static_inline
bool
125 ( (c >=
'A') && (c <=
'F') ) ||
126 ( (c >=
'a') && (c <=
'f') );
136_MHD_static_inline
bool
155_MHD_static_inline
char
172_MHD_static_inline
char
182#if defined(MHD_FAVOR_SMALL_CODE)
189_MHD_static_inline
int
193 return (
unsigned char) (c -
'0');
208_MHD_static_inline
int
212 return (
unsigned char) (c -
'0');
213 if ( (c >=
'A') && (c <=
'F') )
214 return (
unsigned char) (c -
'A' + 10);
215 if ( (c >=
'a') && (c <=
'f') )
216 return (
unsigned char) (c -
'a' + 10);
232#define isasciilower(c) (((char) (c)) >= 'a' && ((char) (c)) <= 'z')
242#define isasciiupper(c) (((char) (c)) >= 'A' && ((char) (c)) <= 'Z')
252#define isasciialpha(c) (isasciilower (c) || isasciiupper (c))
262#define isasciidigit(c) (((char) (c)) >= '0' && ((char) (c)) <= '9')
272#define isasciixdigit(c) (isasciidigit ((c)) || \
273 (((char) (c)) >= 'A' && ((char) (c)) <= 'F') || \
274 (((char) (c)) >= 'a' && ((char) (c)) <= 'f') )
284#define isasciialnum(c) (isasciialpha (c) || isasciidigit (c))
296#define toasciilower(c) ((isasciiupper (c)) ? (((char) (c)) - 'A' + 'a') : \
309#define toasciiupper(c) ((isasciilower (c)) ? (((char) (c)) - 'a' + 'A') : \
319#define todigitvalue(c) (isasciidigit (c) ? (int) (((char) (c)) - '0') : \
328#define toxdigitvalue(c) (isasciidigit (c) ? (int) (((char) (c)) - '0') : \
329 ( (((char) (c)) >= 'A' && ((char) (c)) <= 'F') ? \
330 (int) (((unsigned char) (c)) - 'A' + 10) : \
331 ( (((char) (c)) >= 'a' && ((char) (c)) <= 'f') ? \
332 (int) (((unsigned char) (c)) - 'a' + 10) : \
337#ifndef MHD_FAVOR_SMALL_CODE
351 const char c1 = *str1;
352 const char c2 = *str2;
379 const char *
const str2,
384 for (i = 0; i < maxlen; ++i)
386 const char c1 = str1[i];
387 const char c2 = str2[i];
413 const char *
const token,
423 while (
' ' == *str ||
'\t' == *str ||
',' == *str)
430 const char sc = *(str++);
431 const char tc = token[i++];
442 while (
' ' == *str ||
'\t' == *str)
445 if ((0 == *str) || (
',' == *str) )
452 while (0 != *str &&
',' != *str)
459#ifndef MHD_FAVOR_SMALL_CODE
476 const char *
const start = str;
485 const int digit = (
unsigned char) (*str) -
'0';
522 if (! str || ! maxlen || ! out_val || !
isasciidigit (str[0]))
529 const int digit = (
unsigned char) str[i] -
'0';
539 }
while ( (i < maxlen) &&
561 const char *
const start = str;
565 if (! str || ! out_val)
612 if (! str || ! out_val)
649 const char *
const start = str;
652 if (! str || ! out_val)
699 if (! str || ! out_val)
742MHD_str_to_uvalue_n_ (
const char *str,
752 const uint64_t max_v_div_b = max_val / base;
753 const uint64_t max_v_mod_b = max_val % base;
755 int (*
const dfunc)(char) = (base == 16) ?
758 if (! str || ! out_val ||
759 ((base != 16) && (base != 10)) )
764 while (maxlen > i && 0 <= (digit = dfunc (str[i])))
766 if ( ((max_v_div_b) < res) ||
767 (( (max_v_div_b) == res) && ( (max_v_mod_b) < (uint64_t) digit) ) )
778 *(uint64_t *) out_val = res;
779 else if (4 == val_size)
780 *(uint32_t *) out_val = (uint32_t) res;
int MHD_str_equal_caseless_(const char *str1, const char *str2)
size_t MHD_strx_to_uint32_(const char *str, uint32_t *out_val)
size_t MHD_str_to_uint64_n_(const char *str, size_t maxlen, uint64_t *out_val)
size_t MHD_strx_to_uint64_n_(const char *str, size_t maxlen, uint64_t *out_val)
int MHD_str_equal_caseless_n_(const char *const str1, const char *const str2, size_t maxlen)
size_t MHD_str_to_uint64_(const char *str, uint64_t *out_val)
bool MHD_str_has_token_caseless_(const char *str, const char *const token, size_t token_len)
size_t MHD_strx_to_uint64_(const char *str, uint64_t *out_val)
size_t MHD_strx_to_uint32_n_(const char *str, size_t maxlen, uint32_t *out_val)
limits values definitions
Header for string manipulating helpers.