FlashMap can not work correctly in unix GCC because the windows path char "\" exist...
authorklu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524>
Sun, 30 Jul 2006 08:09:57 +0000 (08:09 +0000)
committerklu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524>
Sun, 30 Jul 2006 08:09:57 +0000 (08:09 +0000)
I fix it by adding a NormalizePath function.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1152 6f19259b-4bc3-4df7-8a09-765794883524

Tools/Source/TianoTools/FlashMap/FlashMap.c

index 8e82375..191e899 100644 (file)
@@ -87,6 +87,11 @@ Usage (
   VOID\r
   );\r
 \r
+char* \r
+NormalizePath (\r
+  char* OldPathName\r
+  );\r
+\r
 int\r
 main (\r
   int   argc,\r
@@ -249,8 +254,8 @@ Returns:
     // Open the file, determine the size, then read it in and write\r
     // it back out.\r
     //\r
-    if ((InFptr = fopen (FileNames->Str, "rb")) == NULL) {\r
-      Error (NULL, 0, 0, FileNames->Str, "failed to open input file for reading");\r
+    if ((InFptr = fopen (NormalizePath(FileNames->Str), "rb")) == NULL) {\r
+      Error (NULL, 0, 0, NormalizePath(FileNames->Str), "failed to open input file for reading");\r
       goto Done;\r
     }\r
     fseek (InFptr, 0, SEEK_END);\r
@@ -739,3 +744,24 @@ Returns:
     fprintf (stdout, "%s\n", Msg[i]);\r
   }\r
 }\r
+\r
+char* \r
+NormalizePath (\r
+  char* OldPathName\r
+  )\r
+{\r
+  char* Visitor;\r
+  \r
+  if (OldPathName == NULL) {\r
+    return NULL;\r
+  }\r
+  \r
+  Visitor = OldPathName;\r
+  while (*Visitor != '\0') {\r
+    if (*Visitor == '\\') {\r
+      *Visitor = '/';\r
+    }\r
+  }\r
+  \r
+  return Visitor;\r
+}
\ No newline at end of file