diff --git a/Source/uPSCompiler.pas b/Source/uPSCompiler.pas index 59d3835..42b3fda 100644 --- a/Source/uPSCompiler.pas +++ b/Source/uPSCompiler.pas @@ -3088,6 +3088,7 @@ begin ((p1.BaseType = btChar) and (p2.BaseType = btChar)) or ((p1.BaseType = btSet) and (p2.BaseType = btSet)) or {$IFNDEF PS_NOWIDESTRING} + ((p1.BaseType = btChar) and (p2.BaseType = btWideChar)) or ((p1.BaseType = btWideChar) and (p2.BaseType = btChar)) or ((p1.BaseType = btWideChar) and (p2.BaseType = btWideChar)) or ((p1.BaseType = btWidestring) and (p2.BaseType = btChar)) or diff --git a/Source/uPSRuntime.pas b/Source/uPSRuntime.pas index cfba38d..a44eb27 100644 --- a/Source/uPSRuntime.pas +++ b/Source/uPSRuntime.pas @@ -8738,7 +8738,7 @@ begin 7: // StrGet begin temp := NewTPSVariantIFC(Stack[Stack.Count -2], True); - if (temp.Dta = nil) or (temp.aType.BaseType <> btString) then + if (temp.Dta = nil) or not (temp.aType.BaseType in [btString, btUnicodeString]) then begin Result := False; exit; @@ -8755,7 +8755,7 @@ begin 8: // StrSet begin temp := NewTPSVariantIFC(Stack[Stack.Count -3], True); - if (temp.Dta = nil) or (temp.aType.BaseType <> btString) then + if (temp.Dta = nil) or not (temp.aType.BaseType in [btString, btUnicodeString]) then begin Result := False; exit;