Author: mjansen
Date: Sun Jul 30 13:37:35 2017
New Revision: 75457

URL: http://svn.reactos.org/svn/reactos?rev=75457&view=rev
Log:
[SDK][XML2SDB] Simplify include / exclude node specification.

Modified:
    trunk/reactos/media/sdb/sysmain.xml
    trunk/reactos/sdk/tools/xml2sdb/main.cpp
    trunk/reactos/sdk/tools/xml2sdb/xml2sdb.cpp
    trunk/reactos/sdk/tools/xml2sdb/xml2sdb.h

Modified: trunk/reactos/media/sdb/sysmain.xml
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/media/sdb/sysmain.xml?rev=75457&r1=75456&r2=75457&view=diff
==============================================================================
--- trunk/reactos/media/sdb/sysmain.xml [iso-8859-1] (original)
+++ trunk/reactos/media/sdb/sysmain.xml [iso-8859-1] Sun Jul 30 13:37:35 2017
@@ -8,57 +8,147 @@
             <!-- Version lie shims -->
 
             <SHIM NAME="Win95VersionLie">
+                <INCLUDE MODULE="shell32.dll" />
+                <EXCLUDE MODULE="kernel32.dll" />
+                <EXCLUDE MODULE="msvcrt.dll" />
+                <EXCLUDE MODULE="ole32.dll" />
+                <EXCLUDE MODULE="oleaut32.dll" />
                 <DLLFILE>aclayers.dll</DLLFILE>
             </SHIM>
             <SHIM NAME="Win98VersionLie">
+                <INCLUDE MODULE="shell32.dll" />
+                <EXCLUDE MODULE="kernel32.dll" />
+                <EXCLUDE MODULE="msvcrt.dll" />
+                <EXCLUDE MODULE="ole32.dll" />
+                <EXCLUDE MODULE="oleaut32.dll" />
                 <DLLFILE>aclayers.dll</DLLFILE>
             </SHIM>
             <SHIM NAME="WinNT4SP5VersionLie">
+                <INCLUDE MODULE="shell32.dll" />
+                <EXCLUDE MODULE="kernel32.dll" />
+                <EXCLUDE MODULE="msvcrt.dll" />
+                <EXCLUDE MODULE="ole32.dll" />
+                <EXCLUDE MODULE="oleaut32.dll" />
                 <DLLFILE>aclayers.dll</DLLFILE>
             </SHIM>
             <SHIM NAME="Win2000VersionLie">
+                <INCLUDE MODULE="shell32.dll" />
+                <EXCLUDE MODULE="kernel32.dll" />
+                <EXCLUDE MODULE="msvcrt.dll" />
+                <EXCLUDE MODULE="ole32.dll" />
+                <EXCLUDE MODULE="oleaut32.dll" />
                 <DLLFILE>aclayers.dll</DLLFILE>
             </SHIM>
             <SHIM NAME="Win2000SP1VersionLie">
+                <INCLUDE MODULE="shell32.dll" />
+                <EXCLUDE MODULE="kernel32.dll" />
+                <EXCLUDE MODULE="msvcrt.dll" />
+                <EXCLUDE MODULE="ole32.dll" />
+                <EXCLUDE MODULE="oleaut32.dll" />
                 <DLLFILE>aclayers.dll</DLLFILE>
             </SHIM>
             <SHIM NAME="Win2000SP2VersionLie">
+                <INCLUDE MODULE="shell32.dll" />
+                <EXCLUDE MODULE="kernel32.dll" />
+                <EXCLUDE MODULE="msvcrt.dll" />
+                <EXCLUDE MODULE="ole32.dll" />
+                <EXCLUDE MODULE="oleaut32.dll" />
                 <DLLFILE>aclayers.dll</DLLFILE>
             </SHIM>
             <SHIM NAME="Win2000SP3VersionLie">
+                <INCLUDE MODULE="shell32.dll" />
+                <EXCLUDE MODULE="kernel32.dll" />
+                <EXCLUDE MODULE="msvcrt.dll" />
+                <EXCLUDE MODULE="ole32.dll" />
+                <EXCLUDE MODULE="oleaut32.dll" />
                 <DLLFILE>aclayers.dll</DLLFILE>
             </SHIM>
             <SHIM NAME="WinXPVersionLie">
+                <INCLUDE MODULE="shell32.dll" />
+                <EXCLUDE MODULE="kernel32.dll" />
+                <EXCLUDE MODULE="msvcrt.dll" />
+                <EXCLUDE MODULE="ole32.dll" />
+                <EXCLUDE MODULE="oleaut32.dll" />
                 <DLLFILE>aclayers.dll</DLLFILE>
             </SHIM>
             <SHIM NAME="WinXPSP1VersionLie">
+                <INCLUDE MODULE="shell32.dll" />
+                <EXCLUDE MODULE="kernel32.dll" />
+                <EXCLUDE MODULE="msvcrt.dll" />
+                <EXCLUDE MODULE="ole32.dll" />
+                <EXCLUDE MODULE="oleaut32.dll" />
                 <DLLFILE>aclayers.dll</DLLFILE>
             </SHIM>
             <SHIM NAME="WinXPSP2VersionLie">
+                <INCLUDE MODULE="shell32.dll" />
+                <EXCLUDE MODULE="kernel32.dll" />
+                <EXCLUDE MODULE="msvcrt.dll" />
+                <EXCLUDE MODULE="ole32.dll" />
+                <EXCLUDE MODULE="oleaut32.dll" />
                 <DLLFILE>aclayers.dll</DLLFILE>
             </SHIM>
             <SHIM NAME="WinXPSP3VersionLie">
+                <INCLUDE MODULE="shell32.dll" />
+                <EXCLUDE MODULE="kernel32.dll" />
+                <EXCLUDE MODULE="msvcrt.dll" />
+                <EXCLUDE MODULE="ole32.dll" />
+                <EXCLUDE MODULE="oleaut32.dll" />
                 <DLLFILE>aclayers.dll</DLLFILE>
             </SHIM>
             <SHIM NAME="Win2k3RTMVersionLie">
+                <INCLUDE MODULE="shell32.dll" />
+                <EXCLUDE MODULE="kernel32.dll" />
+                <EXCLUDE MODULE="msvcrt.dll" />
+                <EXCLUDE MODULE="ole32.dll" />
+                <EXCLUDE MODULE="oleaut32.dll" />
                 <DLLFILE>aclayers.dll</DLLFILE>
             </SHIM>
             <SHIM NAME="Win2k3SP1VersionLie">
+                <INCLUDE MODULE="shell32.dll" />
+                <EXCLUDE MODULE="kernel32.dll" />
+                <EXCLUDE MODULE="msvcrt.dll" />
+                <EXCLUDE MODULE="ole32.dll" />
+                <EXCLUDE MODULE="oleaut32.dll" />
                 <DLLFILE>aclayers.dll</DLLFILE>
             </SHIM>
             <SHIM NAME="Win2k3SP2VersionLie">
+                <INCLUDE MODULE="shell32.dll" />
+                <EXCLUDE MODULE="kernel32.dll" />
+                <EXCLUDE MODULE="msvcrt.dll" />
+                <EXCLUDE MODULE="ole32.dll" />
+                <EXCLUDE MODULE="oleaut32.dll" />
                 <DLLFILE>aclayers.dll</DLLFILE>
             </SHIM>
             <SHIM NAME="VistaRTMVersionLie">
+                <INCLUDE MODULE="shell32.dll" />
+                <EXCLUDE MODULE="kernel32.dll" />
+                <EXCLUDE MODULE="msvcrt.dll" />
+                <EXCLUDE MODULE="ole32.dll" />
+                <EXCLUDE MODULE="oleaut32.dll" />
                 <DLLFILE>aclayers.dll</DLLFILE>
             </SHIM>
             <SHIM NAME="VistaSP1VersionLie">
+                <INCLUDE MODULE="shell32.dll" />
+                <EXCLUDE MODULE="kernel32.dll" />
+                <EXCLUDE MODULE="msvcrt.dll" />
+                <EXCLUDE MODULE="ole32.dll" />
+                <EXCLUDE MODULE="oleaut32.dll" />
                 <DLLFILE>aclayers.dll</DLLFILE>
             </SHIM>
             <SHIM NAME="VistaSP2VersionLie">
+                <INCLUDE MODULE="shell32.dll" />
+                <EXCLUDE MODULE="kernel32.dll" />
+                <EXCLUDE MODULE="msvcrt.dll" />
+                <EXCLUDE MODULE="ole32.dll" />
+                <EXCLUDE MODULE="oleaut32.dll" />
                 <DLLFILE>aclayers.dll</DLLFILE>
             </SHIM>
             <SHIM NAME="Win7RTMVersionLie">
+                <INCLUDE MODULE="shell32.dll" />
+                <EXCLUDE MODULE="kernel32.dll" />
+                <EXCLUDE MODULE="msvcrt.dll" />
+                <EXCLUDE MODULE="ole32.dll" />
+                <EXCLUDE MODULE="oleaut32.dll" />
                 <DLLFILE>aclayers.dll</DLLFILE>
             </SHIM>
 

Modified: trunk/reactos/sdk/tools/xml2sdb/main.cpp
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/tools/xml2sdb/main.cpp?rev=75457&r1=75456&r2=75457&view=diff
==============================================================================
--- trunk/reactos/sdk/tools/xml2sdb/main.cpp    [iso-8859-1] (original)
+++ trunk/reactos/sdk/tools/xml2sdb/main.cpp    [iso-8859-1] Sun Jul 30 
13:37:35 2017
@@ -1,9 +1,9 @@
 /*
- * COPYRIGHT:   See COPYING in the top level directory
- * PROJECT:     ReactOS xml to sdb converter
- * FILE:        sdk/tools/xml2sdb/main.cpp
- * PURPOSE:     Implement platform agnostic read / write / allocation 
functions, parse commandline
- * PROGRAMMERS: Mark Jansen
+ * COPYRIGHT:       See COPYING in the top level directory
+ * PROJECT:         ReactOS xml to sdb converter
+ * FILE:            sdk/tools/xml2sdb/main.cpp
+ * PURPOSE:         Implement platform agnostic read / write / allocation 
functions, parse commandline
+ * PROGRAMMERS:     Mark Jansen (mark.jan...@reactos.org)
  *
  */
 
@@ -201,7 +201,6 @@
     g_ShimDebugLevel = strtoul(value.c_str(), NULL, 10);
 }
 
-// -i R:\src\apphelp\reactos\media\sdb\sysmain.xml 
-oR:\build\apphelp\devenv_msvc\media\sdb\ros2.sdb
 int main(int argc, char * argv[])
 {
     std::string input, output;

Modified: trunk/reactos/sdk/tools/xml2sdb/xml2sdb.cpp
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/tools/xml2sdb/xml2sdb.cpp?rev=75457&r1=75456&r2=75457&view=diff
==============================================================================
--- trunk/reactos/sdk/tools/xml2sdb/xml2sdb.cpp [iso-8859-1] (original)
+++ trunk/reactos/sdk/tools/xml2sdb/xml2sdb.cpp [iso-8859-1] Sun Jul 30 
13:37:35 2017
@@ -1,9 +1,9 @@
 /*
- * COPYRIGHT:   See COPYING in the top level directory
- * PROJECT:     ReactOS xml to sdb converter
- * FILE:        sdk/tools/xml2sdb/xml2sdb.cpp
- * PURPOSE:     Conversion functions from xml -> db
- * PROGRAMMERS: Mark Jansen
+ * COPYRIGHT:       See COPYING in the top level directory
+ * PROJECT:         ReactOS xml to sdb converter
+ * FILE:            sdk/tools/xml2sdb/xml2sdb.cpp
+ * PURPOSE:         Conversion functions from xml -> db
+ * PROGRAMMERS:     Mark Jansen (mark.jan...@reactos.org)
  *
  */
 
@@ -16,7 +16,7 @@
 using tinyxml2::XMLText;
 
 static const GUID GUID_NULL = { 0 };
-static const char szCompilerVersion[] = "1.5.0.0";
+static const char szCompilerVersion[] = "1.6.0.0";
 
 #if !defined(C_ASSERT)
 #define C_ASSERT(expr) extern char (*c_assert(void)) [(expr) ? 1 : -1]
@@ -241,19 +241,10 @@
 bool InExclude::fromXml(XMLHandle dbNode)
 {
     Module = ReadStringNode(dbNode, "MODULE");
+    // Special module names: '$' and '*'
     if (!Module.empty())
     {
-        Include = dbNode.FirstChildElement("INCLUDE").ToNode() != NULL;
-        if (!Include)
-        {
-            tinyxml2::XMLElement* elem = dbNode.ToElement();
-            if (elem)
-            {
-                Include |= (elem->Attribute("INCLUDE") != NULL);
-            }
-        }
-        // $ = ??
-        // *
+        Include = ToNodeName(dbNode) == "INCLUDE";
         return true;
     }
     return false;
@@ -303,7 +294,8 @@
 {
     Name = ReadStringNode(dbNode, "NAME");
     CommandLine = ReadStringNode(dbNode, "COMMAND_LINE");
-    ReadGeneric(dbNode, InExcludes, "INEXCLUDE");
+    ReadGeneric(dbNode, InExcludes, "INCLUDE");
+    ReadGeneric(dbNode, InExcludes, "EXCLUDE");
     return !Name.empty();
 }
 
@@ -331,7 +323,8 @@
     ReadGuidNode(dbNode, "FIX_ID", FixID);
     // GENERAL ?
     // DESCRIPTION_RC_ID
-    ReadGeneric(dbNode, InExcludes, "INEXCLUDE");
+    ReadGeneric(dbNode, InExcludes, "INCLUDE");
+    ReadGeneric(dbNode, InExcludes, "EXCLUDE");
     return !Name.empty() && !DllFile.empty();
 }
 
@@ -527,6 +520,12 @@
         {
             SHIM_ERR("Unhanled FLAG type\n");
         }
+        else if (NodeName == "INCLUDE" || NodeName == "EXCLUDE")
+        {
+            InExclude inex;
+            if (inex.fromXml(libChild))
+                Library.InExcludes.push_back(inex);
+        }
         libChild = libChild.NextSibling();
     }
 
@@ -560,6 +559,8 @@
     }
     WriteBinary(pdb, TAG_DATABASE_ID, ID);
     TAGID tidLibrary = BeginWriteListTag(pdb, TAG_LIBRARY);
+    if (!WriteGeneric(pdb, Library.InExcludes, *this))
+        return false;
     if (!WriteGeneric(pdb, Library.Shims, *this))
         return false;
     EndWriteListTag(pdb, tidLibrary);

Modified: trunk/reactos/sdk/tools/xml2sdb/xml2sdb.h
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/tools/xml2sdb/xml2sdb.h?rev=75457&r1=75456&r2=75457&view=diff
==============================================================================
--- trunk/reactos/sdk/tools/xml2sdb/xml2sdb.h   [iso-8859-1] (original)
+++ trunk/reactos/sdk/tools/xml2sdb/xml2sdb.h   [iso-8859-1] Sun Jul 30 
13:37:35 2017
@@ -112,6 +112,7 @@
 
 struct Library
 {
+    std::list<InExclude> InExcludes;
     std::list<Shim> Shims;
 };
 


Reply via email to