[commit] r1902 - in trunk/GME: Common ObjectInspector Parser

GMESRC Repository Notifications gme-commit at list.isis.vanderbilt.edu
Wed Apr 18 13:31:45 CDT 2012


Author: ksmyth
Date: Wed Apr 18 13:31:45 2012
New Revision: 1902

Log:
Fix GME-391. Also support infinities and NaN

Modified:
   trunk/GME/Common/Common.vcxproj
   trunk/GME/Common/Common.vcxproj.filters
   trunk/GME/ObjectInspector/ItemData.cpp
   trunk/GME/Parser/MgaDumper.cpp
   trunk/GME/Parser/MgaParser.cpp
   trunk/GME/Parser/Parser.vcxproj
   trunk/GME/Parser/Parser.vcxproj.filters

Modified: trunk/GME/Common/Common.vcxproj
==============================================================================
--- trunk/GME/Common/Common.vcxproj	Tue Apr 17 16:37:38 2012	(r1901)
+++ trunk/GME/Common/Common.vcxproj	Wed Apr 18 13:31:45 2012	(r1902)
@@ -136,6 +136,7 @@
     <ClInclude Include="CommonComponent.h" />
     <ClInclude Include="CommonError.h" />
     <ClInclude Include="CommonImport.h" />
+    <ClInclude Include="CommonMath.h" />
     <ClInclude Include="CommonMfc.h" />
     <ClInclude Include="CommonMgaTrukk.h" />
     <ClInclude Include="CommonSmart.h" />

Modified: trunk/GME/Common/Common.vcxproj.filters
==============================================================================
--- trunk/GME/Common/Common.vcxproj.filters	Tue Apr 17 16:37:38 2012	(r1901)
+++ trunk/GME/Common/Common.vcxproj.filters	Wed Apr 18 13:31:45 2012	(r1902)
@@ -61,5 +61,8 @@
     <ClInclude Include="CommonImport.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="CommonMath.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
   </ItemGroup>
 </Project>
\ No newline at end of file

Modified: trunk/GME/ObjectInspector/ItemData.cpp
==============================================================================
--- trunk/GME/ObjectInspector/ItemData.cpp	Tue Apr 17 16:37:38 2012	(r1901)
+++ trunk/GME/ObjectInspector/ItemData.cpp	Wed Apr 18 13:31:45 2012	(r1902)
@@ -3,6 +3,7 @@
 //////////////////////////////////////////////////////////////////////
 
 #include "stdafx.h"
+#include "CommonMath.h"
 #include "objectinspector.h"
 #include "ItemData.h"
 #include "MgaUtil.h"
@@ -191,12 +192,21 @@
 				if(stringVal.GetSize()==1)				
 				{
 					TCHAR* endptr;
-					double d = _tcstod(stringVal[0], &endptr);
-					if(*endptr == _T('\0'))
+					double d;
+					if (ParseSpecialDouble(stringVal[0], d))
 					{
-						doubleVal=d;
-						retVal=true;
-					}				
+						doubleVal = d;
+						retVal = true;
+					}
+					else
+					{
+						d = _tcstod(stringVal[0], &endptr);
+						if (*endptr == _T('\0'))
+						{
+							doubleVal = d;
+							retVal = true;
+						}
+					}
 				}
 				else
 				{

Modified: trunk/GME/Parser/MgaDumper.cpp
==============================================================================
--- trunk/GME/Parser/MgaDumper.cpp	Tue Apr 17 16:37:38 2012	(r1901)
+++ trunk/GME/Parser/MgaDumper.cpp	Wed Apr 18 13:31:45 2012	(r1902)
@@ -982,7 +982,7 @@
 		{
 			double d;
 			COMTHROW( attribute->get_FloatValue(&d) );
-			Format(data, _T("%g"), d);
+			Format(data, _T("%.17g"), d);
 			break;
 		}
 

Modified: trunk/GME/Parser/MgaParser.cpp
==============================================================================
--- trunk/GME/Parser/MgaParser.cpp	Tue Apr 17 16:37:38 2012	(r1901)
+++ trunk/GME/Parser/MgaParser.cpp	Wed Apr 18 13:31:45 2012	(r1902)
@@ -1,5 +1,6 @@
 
 #include "stdafx.h"
+#include "CommonMath.h"
 #include "Parser.h"
 #include "MgaParser.h"
 #include <xercesc/util/PlatformUtils.hpp>
@@ -946,8 +947,19 @@
 			break;
 
 		case ATTVAL_DOUBLE:
-			v = GetCurrData().c_str();
-			COMTHROW( v.ChangeType(VT_R8) );
+			{
+			const wchar_t* val = GetCurrData().c_str();
+			double special;
+			if (ParseSpecialDouble(val, special))
+			{
+				v = special;
+			}
+			else
+			{
+				v = val;
+				COMTHROW( v.ChangeType(VT_R8) );
+			}
+			}
 			break;
 
 		case ATTVAL_BOOLEAN:

Modified: trunk/GME/Parser/Parser.vcxproj
==============================================================================
--- trunk/GME/Parser/Parser.vcxproj	Tue Apr 17 16:37:38 2012	(r1901)
+++ trunk/GME/Parser/Parser.vcxproj	Wed Apr 18 13:31:45 2012	(r1902)
@@ -260,6 +260,12 @@
     <ClCompile Include="..\Common\CommonError.cpp" />
     <ClCompile Include="..\Common\CommonSmart.cpp" />
     <ClCompile Include="..\Common\CommonStl.cpp" />
+    <ClCompile Include="..\Common\dtoa.c">
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
+    </ClCompile>
     <ClCompile Include="GenParser.cpp" />
     <ClCompile Include="GUIDCreate.cpp" />
     <ClCompile Include="Helper.cpp" />

Modified: trunk/GME/Parser/Parser.vcxproj.filters
==============================================================================
--- trunk/GME/Parser/Parser.vcxproj.filters	Tue Apr 17 16:37:38 2012	(r1901)
+++ trunk/GME/Parser/Parser.vcxproj.filters	Wed Apr 18 13:31:45 2012	(r1902)
@@ -60,6 +60,9 @@
     <ClCompile Include="Transcoder.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
+    <ClCompile Include="..\Common\dtoa.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <None Include="Parser.def">


More information about the gme-commit mailing list