diff --git a/src/XmlMDataStd/XmlMDataStd_RealArrayDriver.cxx b/src/XmlMDataStd/XmlMDataStd_RealArrayDriver.cxx index 04fc0c949d..ddc296ad5d 100644 --- a/src/XmlMDataStd/XmlMDataStd_RealArrayDriver.cxx +++ b/src/XmlMDataStd/XmlMDataStd_RealArrayDriver.cxx @@ -128,8 +128,12 @@ Standard_Boolean XmlMDataStd_RealArrayDriver::Paste " for RealArray attribute as \"") + aValueStr + "\""; myMessageDriver->Send (aMessageString, Message_Warning); + // skip the first space, if exists + while (*aValueStr != 0 && IsSpace (*aValueStr)) + ++aValueStr; // skip to the next space separator - while (*aValueStr != 0 && ! IsSpace (*aValueStr)) ++aValueStr; + while (*aValueStr != 0 && ! IsSpace (*aValueStr)) + ++aValueStr; } aRealArray->SetValue(ind, aValue); } diff --git a/src/XmlMDataStd/XmlMDataStd_RealListDriver.cxx b/src/XmlMDataStd/XmlMDataStd_RealListDriver.cxx index 844f92692f..b0eb2a1f6b 100644 --- a/src/XmlMDataStd/XmlMDataStd_RealListDriver.cxx +++ b/src/XmlMDataStd/XmlMDataStd_RealListDriver.cxx @@ -126,8 +126,12 @@ Standard_Boolean XmlMDataStd_RealListDriver::Paste(const XmlObjMgt_Persistent& " for RealList attribute as \"") + aValueStr + "\""; myMessageDriver->Send(aMessageString, Message_Warning); + // skip the first space, if exists + while (*aValueStr != 0 && IsSpace (*aValueStr)) + ++aValueStr; // skip to the next space separator - while (*aValueStr != 0 && ! IsSpace (*aValueStr)) ++aValueStr; + while (*aValueStr != 0 && !IsSpace (*aValueStr)) + ++aValueStr; } aRealList->Append(aValue); } diff --git a/tests/bugs/caf/bug29452 b/tests/bugs/caf/bug29452 index fc4d6a51a4..df575e5139 100644 --- a/tests/bugs/caf/bug29452 +++ b/tests/bugs/caf/bug29452 @@ -18,6 +18,7 @@ set res [Open $file D] set real [GetReal D 0:1] set rlst [GetRealList D 0:1] set rarr [GetRealArray D 0:1] +set rarr2 [GetRealArray D 0:2] # Check for read values checkreal "Real value" [lindex $rlst 0] 1.1 0 1e-15 @@ -25,6 +26,9 @@ checkreal "Real value" [lindex $rlst 2] 3.3 0 1e-15 checkreal "Real value" [lindex $rarr 0] 0.111 0 1e-15 checkreal "Real value" [lindex $rarr 3] 123. 0 1e-15 checkreal "Real value" [lindex $rarr 4] 3.14e12 0 1e-15 +checkreal "Real value" [lindex $rarr2 0] 2 0 1e-15 +checkreal "Real value" [lindex $rarr2 1] 2.1219957909652723e-314 0 1e-15 +checkreal "Real value" [lindex $rarr2 2] 5 0 1e-15 foreach inf [list $real [lindex $rlst 3]] { if { [string compare "$inf" "inf"] && [string compare "$inf" "infinity"] &&