On Thu, May 30, 2013 at 3:45 PM, Anthony Ramine <n.ox...@gmail.com> 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
> 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 <n.ox...@gmail.com>
Reviewed-by: Duy Nguyen <pclo...@gmail.com>
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.
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html