From 1838158ef19d489e554b3460059fba47d26ba145 Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Thu, 16 Mar 2023 19:54:46 +0100 Subject: blaze822_priv.h: use proper lc/uc Mail headers may contain characters where the simple definition breaks, which results in wrong formatting on output. Fixes #235. --- blaze822_priv.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'blaze822_priv.h') diff --git a/blaze822_priv.h b/blaze822_priv.h index a84c963..e5f4a09 100644 --- a/blaze822_priv.h +++ b/blaze822_priv.h @@ -12,9 +12,9 @@ struct message { #define isfws(c) (((unsigned char)(c) == ' ' || (unsigned char)(c) == '\t' || (unsigned char)(c) == '\n' || (unsigned char)(c) == '\r')) -// ASCII lowercase/uppercase without alpha check (wrong for "@[\]^_") -#define lc(c) ((c) | 0x20) -#define uc(c) ((c) & 0xdf) +// 7bit-ASCII only lowercase/uppercase +#define lc(c) (((unsigned)(c)-'A') < 26 ? ((c) | 0x20) : (c)) +#define uc(c) (((unsigned)(c)-'a') < 26 ? ((c) & 0xdf) : (c)) // dirent type that can be a mail/dir (following symlinks) #if defined(DT_REG) && defined(DT_LNK) && defined(DT_UNKNOWN) -- cgit 1.4.1