IDE: Fixed case insensitive "Find in files" search for a regular expression, bug #17532

git-svn-id: trunk@27591 -
This commit is contained in:
maxim 2010-10-06 20:12:11 +00:00
parent 94d6d41a49
commit db57ec410d

View File

@ -515,35 +515,27 @@ begin
OriginalFile:=TSourceLog.Create(TheText);
end;
// convert case
if sesoMatchCase in Flags then begin
CaseFile:=OriginalFile;
end else begin
CaseFile:=TSourceLog.Create(UpperCaseStr(OriginalFile.Source));
TempSearch:=UpperCaseStr(TempSearch);
end;
CaseFile:=nil;
if sesoRegExpr in Flags then begin
// Setup the regular expression search engine
RE:=TRegExpr.Create;
RE.ModifierI:=(sesoReplace in Flags) and (not (sesoMatchCase in Flags));
RE.ModifierI:=not (sesoMatchCase in Flags);
RE.ModifierM:=true;
RE.ModifierS:=sesoMultiLine in Flags;
if (sesoReplace in Flags) then begin
Src:=OriginalFile.Source;
if sesoWholeWord in Flags then
RE.Expression:= '\b'+SearchFor+'\b'
else
RE.Expression:= SearchFor;
end else begin
Src:=CaseFile.Source;
if sesoWholeWord in Flags then
RE.Expression:= '\b'+TempSearch+'\b'
else
RE.Expression:= TempSearch;
end;
Src:=OriginalFile.Source;
if sesoWholeWord in Flags then
RE.Expression:='\b'+SearchFor+'\b'
else
RE.Expression:=SearchFor;
end else begin
Src:=CaseFile.Source;
// convert case if necessary
if not (sesoMatchCase in Flags) then begin
CaseFile:=TSourceLog.Create(UpperCaseStr(OriginalFile.Source));
TempSearch:=UpperCaseStr(TempSearch);
Src:=CaseFile.Source;
end else
Src:=OriginalFile.Source;
end;
//debugln(['TheFileName=',TheFileName,' len=',OriginalFile.SourceLength,' Cnt=',OriginalFile.LineCount,' TempSearch=',TempSearch]);