From: Daniel Stenberg Date: Mon, 19 Jan 2026 15:01:57 +0000 (+0100) Subject: imap: simplify imap_is_bchar() with strchr() X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0002184015c559d7dacb6cbbcd08a0b0b34eb985;p=thirdparty%2Fcurl.git imap: simplify imap_is_bchar() with strchr() Closes #20358 --- diff --git a/lib/imap.c b/lib/imap.c index 7eb6880740..3a73521ac6 100644 --- a/lib/imap.c +++ b/lib/imap.c @@ -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)); } /***********************************************************************