diff --git a/wst/trunk/base_service_intf.pas b/wst/trunk/base_service_intf.pas
index ed454d83e..e6f04fcf7 100644
--- a/wst/trunk/base_service_intf.pas
+++ b/wst/trunk/base_service_intf.pas
@@ -1199,8 +1199,15 @@ const
function IsStoredPropClass(AClass : TClass;PropInfo : PPropInfo) : TPropStoreType;
+{$IFDEF FPC}
+ {$IFDEF FPC_211}
var
wst_FormatSettings : TFormatSettings;
+ {$ENDIF}
+{$ELSE}
+var
+ wst_FormatSettings : TFormatSettings;
+{$ENDIF}
implementation
uses imp_utils;
@@ -4508,11 +4515,15 @@ end;
initialization
{$IFDEF FPC}
+ {$IFDEF FPC_211}
wst_FormatSettings := DefaultFormatSettings;
+ wst_FormatSettings.DecimalSeparator := '.';
+ {$ENDIF}
{$ELSE}
GetLocaleFormatSettings(GetThreadLocale(),wst_FormatSettings);
-{$ENDIF}
wst_FormatSettings.DecimalSeparator := '.';
+{$ENDIF}
+
TypeRegistryInstance := TTypeRegistry.Create();
SerializeOptionsRegistryInstance := TSerializeOptionsRegistry.Create();
diff --git a/wst/trunk/base_soap_formatter.pas b/wst/trunk/base_soap_formatter.pas
index 3c1cf1b2e..b1fa1b6c6 100644
--- a/wst/trunk/base_soap_formatter.pas
+++ b/wst/trunk/base_soap_formatter.pas
@@ -746,6 +746,7 @@ function TSOAPBaseFormatter.PutFloat(
Var
s, frmt : string;
prcsn : Integer;
+{$IFDEF FPC} {$IFNDEF FPC_211} i : Integer; {$ENDIF}{$ENDIF}
begin
Case GetTypeData(ATypeInfo)^.FloatType Of
ftSingle,
@@ -755,10 +756,18 @@ begin
ftExtended : prcsn := 15;
End;
frmt := '#.' + StringOfChar('#',prcsn) + 'E-0';
+{$IFDEF FPC}
+ {$IFDEF FPC_211}
s := FormatFloat(frmt,AData,wst_FormatSettings);
-// i := Pos(',',s);
- //If ( i > 0 ) Then
- //s[i] := '.';
+ {$ELSE}
+ s := FormatFloat(frmt,AData);
+ i := Pos(',',s);
+ If ( i > 0 ) Then
+ s[i] := '.';
+ {$ENDIF}
+{$ELSE}
+ s := FormatFloat(frmt,AData,wst_FormatSettings);
+{$ENDIF}
Result := InternalPutData(AName,ATypeInfo,s);
end;
@@ -849,7 +858,16 @@ procedure TSOAPBaseFormatter.GetFloat(
var AData : Extended
);
begin
- AData := StrToFloatDef(Trim(GetNodeValue(AName)),0,wst_FormatSettings);
+{$IFDEF FPC}
+ {$IFDEF FPC_211}
+ AData := StrToFloatDef(Trim(GetNodeValue(AName)),0,wst_FormatSettings);
+ {$ELSE}
+ AData := StrToFloatDef(Trim(GetNodeValue(AName)),0);
+ {$ENDIF}
+{$ELSE}
+ AData := StrToFloatDef(Trim(GetNodeValue(AName)),0,wst_FormatSettings);
+{$ENDIF}
+ //AData := StrToFloatDef(Trim(GetNodeValue(AName)),0,wst_FormatSettings);
end;
procedure TSOAPBaseFormatter.GetStr(
@@ -1656,7 +1674,15 @@ begin
end;
tkFloat :
begin
+{$IFDEF FPC}
+ {$IFDEF FPC_211}
floatDt := StrToFloatDef(Trim(dataBuffer),0,wst_FormatSettings);
+ {$ELSE}
+ floatDt := StrToFloatDef(Trim(dataBuffer),0);
+ {$ENDIF}
+{$ELSE}
+ floatDt := StrToFloatDef(Trim(dataBuffer),0,wst_FormatSettings);
+{$ENDIF}
case GetTypeData(ATypeInfo)^.FloatType of
ftSingle : Single(AData) := floatDt;
ftDouble : Double(AData) := floatDt;
diff --git a/wst/trunk/base_xmlrpc_formatter.pas b/wst/trunk/base_xmlrpc_formatter.pas
index 3d79959e4..594d15ad8 100644
--- a/wst/trunk/base_xmlrpc_formatter.pas
+++ b/wst/trunk/base_xmlrpc_formatter.pas
@@ -834,7 +834,16 @@ procedure TXmlRpcBaseFormatter.GetFloat(
var AData : Extended
);
begin
- AData := StrToFloatDef(Trim(GetNodeValue(AName)),0,wst_FormatSettings);
+{$IFDEF FPC}
+ {$IFDEF FPC_211}
+ AData := StrToFloatDef(Trim(GetNodeValue(AName)),0,wst_FormatSettings);
+ {$ELSE}
+ AData := StrToFloatDef(Trim(GetNodeValue(AName)),0);
+ {$ENDIF}
+{$ELSE}
+ AData := StrToFloatDef(Trim(GetNodeValue(AName)),0,wst_FormatSettings);
+{$ENDIF}
+ //AData := StrToFloatDef(Trim(GetNodeValue(AName)),0,wst_FormatSettings);
end;
procedure TXmlRpcBaseFormatter.GetStr(
@@ -1321,7 +1330,16 @@ begin
end;
tkFloat :
begin
+{$IFDEF FPC}
+ {$IFDEF FPC_211}
floatDt := StrToFloatDef(Trim(dataBuffer),0,wst_FormatSettings);
+ {$ELSE}
+ floatDt := StrToFloatDef(Trim(dataBuffer),0);
+ {$ENDIF}
+{$ELSE}
+ floatDt := StrToFloatDef(Trim(dataBuffer),0,wst_FormatSettings);
+{$ENDIF}
+ //floatDt := StrToFloatDef(Trim(dataBuffer),0,wst_FormatSettings);
case GetTypeData(ATypeInfo)^.FloatType of
ftSingle : Single(AData) := floatDt;
ftDouble : Double(AData) := floatDt;
diff --git a/wst/trunk/tests/test_suite/wst_test_suite.lpi b/wst/trunk/tests/test_suite/wst_test_suite.lpi
index 305289586..f7e58f8ec 100644
--- a/wst/trunk/tests/test_suite/wst_test_suite.lpi
+++ b/wst/trunk/tests/test_suite/wst_test_suite.lpi
@@ -7,7 +7,7 @@
-
+
@@ -74,8 +74,8 @@
-
-
+
+
@@ -88,8 +88,8 @@
-
-
+
+
@@ -190,7 +190,7 @@
-
+
@@ -281,7 +281,7 @@
-
+
@@ -319,9 +319,11 @@
-
-
-
+
+
+
+
+
@@ -443,7 +445,7 @@
-
+
@@ -465,7 +467,7 @@
-
+
@@ -473,9 +475,7 @@
-
-
@@ -504,9 +504,7 @@
-
-
@@ -521,28 +519,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+