[XML2SDB] Add support for TAG_LINK_DATE and TAG_LINKER_VERSION.
authorMark Jansen <mark.jansen@reactos.org>
Sat, 24 Feb 2018 17:42:42 +0000 (18:42 +0100)
committerMark Jansen <mark.jansen@reactos.org>
Sun, 22 Apr 2018 16:51:53 +0000 (18:51 +0200)
sdk/tools/xml2sdb/xml2sdb.cpp
sdk/tools/xml2sdb/xml2sdb.h

index 3478e05..bba0335 100644 (file)
@@ -503,12 +503,12 @@ bool MatchingFile::fromXml(XMLHandle dbNode)
     ProductVersion = ReadStringNode(dbNode, "PRODUCT_VERSION");
     FileVersion = ReadStringNode(dbNode, "FILE_VERSION");
     BinFileVersion = ReadStringNode(dbNode, "BIN_FILE_VERSION");
-    LinkDate = ReadStringNode(dbNode, "LINK_DATE");
+    LinkDate = ReadDWordNode(dbNode, "LINK_DATE");
     VerLanguage = ReadStringNode(dbNode, "VER_LANGUAGE");
     FileDescription = ReadStringNode(dbNode, "FILE_DESCRIPTION");
     OriginalFilename = ReadStringNode(dbNode, "ORIGINAL_FILENAME");
     UptoBinFileVersion = ReadStringNode(dbNode, "UPTO_BIN_FILE_VERSION");
-    LinkerVersion = ReadStringNode(dbNode, "LINKER_VERSION");
+    LinkerVersion = ReadDWordNode(dbNode, "LINKER_VERSION");
     return true;
 }
 
@@ -526,17 +526,14 @@ bool MatchingFile::toSdb(PDB pdb, Database& db)
     db.WriteString(pdb, TAG_FILE_VERSION, FileVersion);
     if (!BinFileVersion.empty())
         SHIM_ERR("TAG_BIN_FILE_VERSION Unimplemented\n"); //db.WriteQWord(pdb, TAG_BIN_FILE_VERSION, BinFileVersion);
-    if (!LinkDate.empty())
-        SHIM_ERR("TAG_LINK_DATE Unimplemented\n"); //db.WriteDWord(pdb, TAG_LINK_DATE, LinkDate);
+    db.WriteDWord(pdb, TAG_LINK_DATE, LinkDate);
     if (!VerLanguage.empty())
         SHIM_ERR("TAG_VER_LANGUAGE Unimplemented\n"); //db.WriteDWord(pdb, TAG_VER_LANGUAGE, VerLanguage);
     db.WriteString(pdb, TAG_FILE_DESCRIPTION, FileDescription);
     db.WriteString(pdb, TAG_ORIGINAL_FILENAME, OriginalFilename);
     if (!UptoBinFileVersion.empty())
         SHIM_ERR("TAG_UPTO_BIN_FILE_VERSION Unimplemented\n"); //db.WriteQWord(pdb, TAG_UPTO_BIN_FILE_VERSION, UptoBinFileVersion);
-    if (!LinkerVersion.empty())
-        SHIM_ERR("TAG_LINKER_VERSION Unimplemented\n"); //db.WriteDWord(pdb, TAG_LINKER_VERSION, LinkerVersion);
-
+    db.WriteDWord(pdb, TAG_LINKER_VERSION, LinkerVersion);
 
     return !!db.EndWriteListTag(pdb, tagid);
 }
index df9e391..9958bc5 100644 (file)
@@ -123,7 +123,7 @@ struct Layer
 
 struct MatchingFile
 {
-    MatchingFile() : Size(0), Checksum(0) {;}
+    MatchingFile() : Size(0), Checksum(0), LinkDate(0), LinkerVersion(0) {;}
 
     bool fromXml(XMLHandle dbNode);
     bool toSdb(PDB pdb, Database& db);
@@ -137,12 +137,12 @@ struct MatchingFile
     std::string ProductVersion;
     std::string FileVersion;
     std::string BinFileVersion;
-    std::string LinkDate;
+    DWORD LinkDate;
     std::string VerLanguage;
     std::string FileDescription;
     std::string OriginalFilename;
     std::string UptoBinFileVersion;
-    std::string LinkerVersion;
+    DWORD LinkerVersion;
 };
 
 struct Exe