Re: [PATCH] wildmatch: properly fold case everywhere
From: Duy Nguyen <hidden>
Date: 2016-06-15 22:57:30
On Thu, May 30, 2013 at 3:45 PM, Anthony Ramine [off-list ref] wrote:
Case folding is not done correctly when matching against the [:upper:] character class and uppercased character ranges (e.g. A-Z). Specifically, an uppercase letter fails to match against any of them when case folding is requested because plain characters in the pattern and the whole string and preemptively lowercased to handle the base case fast. That optimization is kept and ISLOWER() is used in the [:upper:] case when case folding is requested, while matching against a character range is retried with toupper() if the character was lowercase, as the bounds of the range itself cannot be modified (in a case-insensitive context, [A-_] is not equivalent to [a-_]). Signed-off-by: Anthony Ramine <redacted>
Reviewed-by: Duy Nguyen <redacted> If you have time, you may want to send a similar patch to rsync, which contains original wildmatch implementation. It does not look much different from this one, except that (flags & WM_CASEFOLD) is replaced with force_lower_case. Thanks. -- Duy