imap: simplify imap_is_bchar() with strchr()

Closes #20358
This commit is contained in:
Daniel Stenberg 2026-01-19 16:01:57 +01:00
parent b8ba798d18
commit 0002184015
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2

View File

@ -1677,40 +1677,9 @@ static void imap_easy_reset(struct IMAP *imap)
*/
static bool imap_is_bchar(char ch)
{
/* Performing the alnum check with this macro is faster because of ASCII
/* Performing the alnum check first with macro is faster because of ASCII
arithmetic */
if(ISALNUM(ch))
return TRUE;
switch(ch) {
/* bchar */
case ':':
case '@':
case '/':
/* bchar -> achar */
case '&':
case '=':
/* bchar -> achar -> uchar -> unreserved (without alphanumeric) */
case '-':
case '.':
case '_':
case '~':
/* bchar -> achar -> uchar -> sub-delims-sh */
case '!':
case '$':
case '\'':
case '(':
case ')':
case '*':
case '+':
case ',':
/* bchar -> achar -> uchar -> pct-encoded */
case '%': /* HEXDIG chars are already included above */
return TRUE;
default:
return FALSE;
}
return ch && (ISALNUM(ch) || strchr(":@/&=-._~!$\'()*+,%", ch));
}
/***********************************************************************