0022898: IGES import fails in german environment
[occt.git] / src / OSD / OSD.cxx
index 13782d4..26de136 100755 (executable)
@@ -1,3 +1,21 @@
+// Copyright (c) 1998-1999 Matra Datavision
+// Copyright (c) 1999-2012 OPEN CASCADE SAS
+//
+// The content of this file is subject to the Open CASCADE Technology Public
+// License Version 6.5 (the "License"). You may not use the content of this file
+// except in compliance with the License. Please obtain a copy of the License
+// at http://www.opencascade.org and read it completely before using this file.
+//
+// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
+// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
+//
+// The Original Code and all software distributed under the License is
+// distributed on an "AS IS" basis, without warranty of any kind, and the
+// Initial Developer hereby disclaims all such warranties, including without
+// limitation, any warranties of merchantability, fitness for a particular
+// purpose or non-infringement. Please see the License for the specific terms
+// and conditions governing the rights and limitations under the License.
+
 
 #include <OSD.ixx>
 
 # define finite isfinite
 #endif
 
-static Standard_Integer DecimalPoint = 0 ;
-
-static void GetDecimalPoint() {
-  float F1 = (float ) 1.1 ;
-  char str[5] ;
-
-  sprintf(str,"%.1f",F1) ;
-                             //  printf("%s\n",str) ;
-  DecimalPoint = str[1] ;
-}
-
 // Convert Real to CString in format e with 16 significant digits.
 // The decimal point character is always a period.
 // The conversion is independant from current locale database
@@ -30,20 +37,9 @@ Standard_Boolean OSD::RealToCString(const Standard_Real aReal,
 {
   char *p, *q ;
   
-  // Get the local decimal point character 
-
-  if (!DecimalPoint)
-    GetDecimalPoint() ;
-
-  // Substitute it
-
-//  if (sprintf(aString,"%.15le",aReal)  <= 0)
-  if (sprintf(aString,"%.17e",aReal)  <= 0) //BUC60808
+  if (Sprintf(aString,"%.17e",aReal)  <= 0) //BUC60808
     return Standard_False ;
 
-  if ((p = strchr(aString,DecimalPoint)))
-    *p = '.' ;
-
   // Suppress "e+00" and unsignificant 0's 
 
   if ((p = strchr(aString,'e'))) {
@@ -65,25 +61,8 @@ Standard_Boolean OSD::RealToCString(const Standard_Real aReal,
 Standard_Boolean OSD::CStringToReal(const Standard_CString aString,
                                    Standard_Real& aReal)
 {
-  const char *p;
   char *endptr ;
-
-  // Get the local decimal point character 
-
-  if (!DecimalPoint)
-    GetDecimalPoint() ;
-
-  const char *str = aString;
-  char buff[1024];  
-  //if((p = strchr(aString,'.')))
-  if(DecimalPoint != '.' && (p = strchr(aString,'.'))&& ((p-aString) < 1000) )
-  {
-    strncpy(buff, aString, 1000);
-    buff[p-aString] = DecimalPoint ;
-    str = buff;
-  }
-  aReal = strtod(str,&endptr) ;
+  aReal = Strtod(aString, &endptr);
   if (*endptr)
     return Standard_False ;
   return Standard_True;
@@ -97,7 +76,7 @@ Standard_Boolean OSD::CStringToReal(const Standard_CString aString,
 #ifdef WNT
 # include <Windows.h>
 #if !defined(__CYGWIN32__) && !defined(__MINGW32__)
-# include <Mapiwin.h>
+//# include <Mapiwin.h>
 #endif
 # define _DEXPLEN                   11
 # define _IEEE                       1