]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ShellPkg: Fix using root of drive
authorJaben Carsey <Jaben.carsey@intel.com>
Fri, 11 Apr 2014 19:15:02 +0000 (19:15 +0000)
committerjcarsey <jcarsey@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 11 Apr 2014 19:15:02 +0000 (19:15 +0000)
This allows near complete use of drive roots “fs0:” and “fs0:\” as directories and arguments to commands.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <Jaben.carsey@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
Reviewed-by: Tapan Shah <tapandshah@hp.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15463 6f19259b-4bc3-4df7-8a09-765794883524

ShellPkg/Application/Shell/ShellProtocol.c
ShellPkg/Library/BasePathLib/BasePathLib.c

index 9cc4ca38c12524d26cfb0beae7ce91350c4af3ac..ec4559480d86c233307b8d510b0507307cf06f73 100644 (file)
@@ -1914,6 +1914,8 @@ CreateAndPopulateShellFileInfo(
     }\r
   }\r
 \r
+  TempString = PathCleanUpDirectories(TempString);\r
+\r
   ShellFileListItem->FullName = TempString;\r
   ShellFileListItem->Status   = Status;\r
   ShellFileListItem->Handle   = Handle;\r
@@ -2143,7 +2145,7 @@ ShellSearchHandle(
       //\r
       FileInfo = FileHandleGetInfo(FileHandle);\r
       NewShellNode = CreateAndPopulateShellFileInfo(\r
-        L":",\r
+        MapName,\r
         EFI_SUCCESS,\r
         L"\\",\r
         FileHandle,\r
index cc46c0fc33122baadfa58f4e20e8778d5aea3056..301bd3b279a17e749828c026f96c75e5bfe57085 100644 (file)
@@ -116,7 +116,15 @@ PathCleanUpDirectories(
     *(TempString + 1) = CHAR_NULL;\r
   }\r
 \r
-\r
+  while ((TempString = StrStr(Path, L"\\\\")) != NULL) {\r
+    *TempString = CHAR_NULL;\r
+    TempString  += 1;\r
+    TempSize = StrSize(TempString);\r
+    CopyMem(Path+StrLen(Path), TempString, TempSize);\r
+  }\r
+  if ((TempString = StrStr(Path, L"\\\\")) != NULL && *(TempString + 1) == CHAR_NULL) {\r
+    *(TempString) = CHAR_NULL;\r
+  }\r
 \r
   return (Path);\r
 }\r