From 0002184015c559d7dacb6cbbcd08a0b0b34eb985 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 19 Jan 2026 16:01:57 +0100 Subject: [PATCH] imap: simplify imap_is_bchar() with strchr() Closes #20358 --- lib/imap.c | 35 ++--------------------------------- 1 file changed, 2 insertions(+), 33 deletions(-) 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)); } /***********************************************************************