@@ -3044,7 +3044,8 @@ procedure TBOS_AllSubClasses.Evaluate(const Params: TBoldOclSymbolParameters);
3044
3044
3045
3045
function EscapeRegEx (const ASource: string): string;
3046
3046
begin
3047
- result := TPerlRegEx.EscapeRegExChars(ASource);
3047
+ result := StringReplace(ASource, ' %' , ' ' , [rfReplaceAll]);
3048
+ result := TPerlRegEx.EscapeRegExChars(result);
3048
3049
end ;
3049
3050
3050
3051
procedure TBOS_SQLLike.Evaluate (const Params: TBoldOclSymbolParameters);
@@ -3053,7 +3054,10 @@ procedure TBOS_SQLLike.Evaluate(const Params: TBoldOclSymbolParameters);
3053
3054
begin
3054
3055
s := XString(Params.values[1 ]);
3055
3056
s := EscapeRegEx(s);
3056
- Help.MakeNewBoolean(Params.Result, TRegEx.IsMatch(XString(Params.values[0 ]), s));
3057
+ if s = ' ' then
3058
+ Help.MakeNewBoolean(Params.Result, false)
3059
+ else
3060
+ Help.MakeNewBoolean(Params.Result, TRegEx.IsMatch(XString(Params.values[0 ]), s));
3057
3061
end ;
3058
3062
3059
3063
procedure TBOS_SQLLikeCaseInSensitive.Evaluate (const Params: TBoldOclSymbolParameters);
@@ -3062,7 +3066,10 @@ procedure TBOS_SQLLikeCaseInSensitive.Evaluate(const Params: TBoldOclSymbolParam
3062
3066
begin
3063
3067
s := XString(Params.values[1 ]);
3064
3068
s := EscapeRegEx(s);
3065
- Help.MakeNewBoolean(Params.Result, TRegEx.IsMatch(XString(Params.values[0 ]), s, [roIgnoreCase]));
3069
+ if s = ' ' then
3070
+ Help.MakeNewBoolean(Params.Result, false)
3071
+ else
3072
+ Help.MakeNewBoolean(Params.Result, TRegEx.IsMatch(XString(Params.values[0 ]), s, [roIgnoreCase]));
3066
3073
end ;
3067
3074
3068
3075
procedure TBOS_RegExpMatch.Evaluate (const Params: TBoldOclSymbolParameters);
0 commit comments