Browse Source

* Fix unicodertl compilation

Michaël Van Canneyt 1 year ago
parent
commit
3c1d50ab72
1 changed files with 5 additions and 3 deletions
  1. 5 3
      packages/vcl-compat/src/system.ansistrings.pp

+ 5 - 3
packages/vcl-compat/src/system.ansistrings.pp

@@ -468,7 +468,7 @@ end;
 function AnsiStartsStr(const ASubText, AText: AnsiString): Boolean;
 function AnsiStartsStr(const ASubText, AText: AnsiString): Boolean;
 begin
 begin
   if (Length(AText) >= Length(ASubText)) and (ASubText <> '') then
   if (Length(AText) >= Length(ASubText)) and (ASubText <> '') then
-    Result := StrLComp(PChar(ASubText), PAnsiChar(AText), Length(ASubText)) = 0
+    Result := StrLComp(PAnsiChar(ASubText), PAnsiChar(AText), Length(ASubText)) = 0
   else
   else
     Result := (AsubText='');
     Result := (AsubText='');
 end;
 end;
@@ -859,7 +859,7 @@ function FloatToTextFmt(Buf: PAnsiChar; const Value; ValueType: TFloatValue;
   Format: PAnsiChar; const AFormatSettings: TFormatSettings): Integer;
   Format: PAnsiChar; const AFormatSettings: TFormatSettings): Integer;
 Var
 Var
   E : Extended;
   E : Extended;
-
+  SBuf,Fmt : String;
 begin
 begin
   Case ValueType of
   Case ValueType of
     fvComp : E:=PComp(@Value)^;
     fvComp : E:=PComp(@Value)^;
@@ -869,7 +869,9 @@ begin
     fvSingle : E:=PSingle(@Value)^;
     fvSingle : E:=PSingle(@Value)^;
     fvCurrency : E:=PCurrency(@Value)^;
     fvCurrency : E:=PCurrency(@Value)^;
   end;
   end;
-  Result:={$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.FloatToTextFmt(Buf,E,Format,aFormatSettings);
+  SBuf:=StrPas(Buf);
+  Fmt:=StrPas(Format);
+  Result:={$IFDEF FPC_DOTTEDUNITS}System.{$ENDIF}SysUtils.FloatToTextFmt(PChar(SBuf),E,PChar(Fmt),aFormatSettings);
 end;
 end;
 
 
 function FloatToTextFmt(Buf: PAnsiChar; const Value; ValueType: TFloatValue;
 function FloatToTextFmt(Buf: PAnsiChar; const Value; ValueType: TFloatValue;