diff --git a/src/modules/launcher/Wox.Infrastructure/StringMatcher.cs b/src/modules/launcher/Wox.Infrastructure/StringMatcher.cs index 8679f18bb2..098d66766d 100644 --- a/src/modules/launcher/Wox.Infrastructure/StringMatcher.cs +++ b/src/modules/launcher/Wox.Infrastructure/StringMatcher.cs @@ -96,7 +96,19 @@ namespace Wox.Infrastructure spaceIndices.Add(compareStringIndex); } - if (fullStringToCompareWithoutCase[compareStringIndex] != currentQuerySubstring[currentQuerySubstringCharacterIndex]) + bool compareResult; + if (opt.IgnoreCase) + { + var fullStringToCompare = fullStringToCompareWithoutCase[compareStringIndex].ToString(); + var querySubstring = currentQuerySubstring[currentQuerySubstringCharacterIndex].ToString(); + compareResult = string.Compare(fullStringToCompare, querySubstring, CultureInfo.CurrentCulture, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace) != 0; + } + else + { + compareResult = fullStringToCompareWithoutCase[compareStringIndex] != currentQuerySubstring[currentQuerySubstringCharacterIndex]; + } + + if (compareResult) { matchFoundInPreviousLoop = false; continue;