Skip to content

Commit

Permalink
#8 % char is now removed for SQLLike as TRegEx
Browse files Browse the repository at this point in the history
works different than original BoldRegularExpression unit.
Sync codechanges from Attracs
  • Loading branch information
Roland Bengtsson committed May 12, 2021
1 parent 7f615b6 commit c96df5c
Showing 1 changed file with 10 additions and 3 deletions.
13 changes: 10 additions & 3 deletions Source/ObjectSpace/Ocl/BoldOclSymbolImplementations.pas
Original file line number Diff line number Diff line change
Expand Up @@ -3044,7 +3044,8 @@ procedure TBOS_AllSubClasses.Evaluate(const Params: TBoldOclSymbolParameters);

function EscapeRegEx(const ASource: string): string;
begin
result := TPerlRegEx.EscapeRegExChars(ASource);
result := StringReplace(ASource, '%', '', [rfReplaceAll]);
result := TPerlRegEx.EscapeRegExChars(result);
end;

procedure TBOS_SQLLike.Evaluate(const Params: TBoldOclSymbolParameters);
Expand All @@ -3053,7 +3054,10 @@ procedure TBOS_SQLLike.Evaluate(const Params: TBoldOclSymbolParameters);
begin
s := XString(Params.values[1]);
s := EscapeRegEx(s);
Help.MakeNewBoolean(Params.Result, TRegEx.IsMatch(XString(Params.values[0]), s));
if s = '' then
Help.MakeNewBoolean(Params.Result, false)
else
Help.MakeNewBoolean(Params.Result, TRegEx.IsMatch(XString(Params.values[0]), s));
end;

procedure TBOS_SQLLikeCaseInSensitive.Evaluate(const Params: TBoldOclSymbolParameters);
Expand All @@ -3062,7 +3066,10 @@ procedure TBOS_SQLLikeCaseInSensitive.Evaluate(const Params: TBoldOclSymbolParam
begin
s := XString(Params.values[1]);
s := EscapeRegEx(s);
Help.MakeNewBoolean(Params.Result, TRegEx.IsMatch(XString(Params.values[0]), s, [roIgnoreCase]));
if s = '' then
Help.MakeNewBoolean(Params.Result, false)
else
Help.MakeNewBoolean(Params.Result, TRegEx.IsMatch(XString(Params.values[0]), s, [roIgnoreCase]));
end;

procedure TBOS_RegExpMatch.Evaluate(const Params: TBoldOclSymbolParameters);
Expand Down

0 comments on commit c96df5c

Please sign in to comment.