wildmatch: fix case-insensitive matching
dowild() does case insensitive matching by lower-casing the text. That means lower case letters in patterns imply case-insensitive matching, but upper case means exact matching. We do not want that subtlety. Lower case pattern too so iwildmatch() always does what we expect it to do. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
9b4edc0a49
commit
164bf83af6
@ -71,6 +71,8 @@ static int dowild(const uchar *p, const uchar *text, int force_lower_case)
|
|||||||
return ABORT_ALL;
|
return ABORT_ALL;
|
||||||
if (force_lower_case && ISUPPER(t_ch))
|
if (force_lower_case && ISUPPER(t_ch))
|
||||||
t_ch = tolower(t_ch);
|
t_ch = tolower(t_ch);
|
||||||
|
if (force_lower_case && ISUPPER(p_ch))
|
||||||
|
p_ch = tolower(p_ch);
|
||||||
switch (p_ch) {
|
switch (p_ch) {
|
||||||
case '\\':
|
case '\\':
|
||||||
/* Literal match with following character. Note that the test
|
/* Literal match with following character. Note that the test
|
||||||
|
Reference in New Issue
Block a user