Browse Source

Merge pull request #642 from neolithos/master

Changed SearchStrategies
pull/651/merge
Daniel Grunwald 10 years ago
parent
commit
9b81ca198a
  1. 27
      ILSpy/SearchStrategies.cs

27
ILSpy/SearchStrategies.cs

@ -37,8 +37,31 @@ namespace ICSharpCode.ILSpy @@ -37,8 +37,31 @@ namespace ICSharpCode.ILSpy
for (int i = 0; i < searchTerm.Length; ++i) {
// How to handle overlapping matches?
if (text.IndexOf(searchTerm[i], StringComparison.OrdinalIgnoreCase) < 0)
return false;
var term = searchTerm[i];
switch (term[0])
{
case '+': // must contain
term = term.Substring(1);
goto default;
case '-': // should not contain
if (term.Length > 1 && text.IndexOf(term.Substring(1), StringComparison.OrdinalIgnoreCase) >= 0)
return false;
break;
case '=': // exact match
{
var equalCompareLength = text.IndexOf('`');
if (equalCompareLength == -1)
equalCompareLength = text.Length;
if (term.Length > 1 && String.Compare(term, 1, text, 0, Math.Max(term.Length, equalCompareLength), StringComparison.OrdinalIgnoreCase) != 0)
return false;
}
break;
default:
if (text.IndexOf(term, StringComparison.OrdinalIgnoreCase) < 0)
return false;
break;
}
}
return true;
}

Loading…
Cancel
Save