Seems Star has provided a patch.

From: Sergey Isakov [mailto:[email protected]]
Sent: Wednesday, January 14, 2015 16:32
To: [email protected]
Subject: Re: [edk2] [PATCH] StdLib, AppPkg: Update for new Library locations

Sorry,
and what about commit 16606 where PathLib was added into UefiShellLib?

On 14.01.2015, at 0:33, Mcdaniel, Daryl wrote:


Lee and Jaben, could you please review the attached patches.  Thank you.

StdLib: Move libraries from ShellPkg into MdeModulePkg and MdePkg.

The following libraries are being migrated out of ShellPkg in order to make
their functionality more widely available.
  * PathLib:        Incorporate into MdePkg/Library/BaseLib
  * FileHandleLib:  MdePkg/Library/UefiFileHandleLib
  * BaseSortLib:    MdeModulePkg/Library/BaseSortLib
  * UefiSortLib:    MdeModulePkg/Library/UefiSortLib

AppPkg.dsc:
StdLib.dsc:
StdLib.inc:
  Delete PathLib LibraryClass description.
  Update FileHandleLib LibraryClass description to reflect its new location.
  Update SortLib LibraryClass description to reflect its new location.

StdLib.inf:
  Delete PathLib from LibraryClasses.

realpath.c:
  Delete include of PathLib.h.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Daryl McDaniel 
<[email protected]<mailto:[email protected]>>

Thank you,
Daryl McDaniel

<StdLib.patch>------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet_______________________________________________
edk2-devel mailing list
[email protected]<mailto:[email protected]>
https://lists.sourceforge.net/lists/listinfo/edk2-devel

--- Begin Message ---
Daryl, Jaben; Could you please review the attached patch?

It is a regression caused by EDK2 R16606.

ShellPkg: Remove the reference to PathLib from UefiShellLib.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Zeng, Star <[email protected]>

Thanks,
Star
-----Original Message-----
From: [email protected] [mailto:[email protected]]
Sent: Wednesday, January 14, 2015 6:17 AM
To: [email protected]
Subject: edk2[16606] ShellPkg: allow creating of files to create required 
directory path

Revision: 16606
          http://sourceforge.net/p/edk2/code/16606
Author:   jcarsey
Date:     2015-01-13 22:16:41 +0000 (Tue, 13 Jan 2015)
Log Message:
-----------
ShellPkg: allow creating of files to create required directory path

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: jaben carsey <[email protected]>
Reviewed-by: Tapan Shah <[email protected]>
Reviewed-by: Joe Peterson <[email protected]>

Modified Paths:
--------------
    trunk/edk2/ShellPkg/Library/UefiShellLib/UefiShellLib.c
    trunk/edk2/ShellPkg/Library/UefiShellLib/UefiShellLib.inf

Modified: trunk/edk2/ShellPkg/Library/UefiShellLib/UefiShellLib.c
===================================================================
--- trunk/edk2/ShellPkg/Library/UefiShellLib/UefiShellLib.c     2015-01-13 
18:58:00 UTC (rev 16605)
+++ trunk/edk2/ShellPkg/Library/UefiShellLib/UefiShellLib.c     2015-01-13 
22:16:41 UTC (rev 16606)
@@ -1,7 +1,7 @@
 /** @file
   Provides interface to shell functionality for shell commands and 
applications.

-  Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2006 - 2015, Intel Corporation. All rights
+ reserved.<BR>
   This program and the accompanying materials
   are licensed and made available under the terms and conditions of the BSD 
License
   which accompanies this distribution.  The full text of the license may be 
found at @@ -15,6 +15,7 @@  #include "UefiShellLib.h"
 #include <ShellBase.h>
 #include <Library/SortLib.h>
+#include <Library/PathLib.h>

 #define FIND_XXXXX_FILE_BUFFER_SIZE (SIZE_OF_EFI_FILE_INFO + MAX_FILE_NAME_LEN)

@@ -671,6 +672,7 @@
   EFI_DEVICE_PATH_PROTOCOL      *FilePath;
   EFI_STATUS                    Status;
   EFI_FILE_INFO                 *FileInfo;
+  CHAR16                        *FileNameCopy;

   //
   // ASSERT if FileName is NULL
@@ -682,11 +684,32 @@
   }

   if (gEfiShellProtocol != NULL) {
-    if ((OpenMode & EFI_FILE_MODE_CREATE) == EFI_FILE_MODE_CREATE && 
(Attributes & EFI_FILE_DIRECTORY) == EFI_FILE_DIRECTORY) {
-      return ShellCreateDirectory(FileName, FileHandle);
+    if ((OpenMode & EFI_FILE_MODE_CREATE) == EFI_FILE_MODE_CREATE) {
+
+      //
+      // Create only a directory
+      //
+      if ((Attributes & EFI_FILE_DIRECTORY) == EFI_FILE_DIRECTORY) {
+        return ShellCreateDirectory(FileName, FileHandle);
+      }
+
+      //
+      // Create the directory to create the file in
+      //
+      FileNameCopy = AllocateCopyPool (StrSize (FileName), FileName);
+      if (FileName == NULL) {
+        return (EFI_OUT_OF_RESOURCES);
+      }
+      PathCleanUpDirectories (FileNameCopy);
+      if (PathRemoveLastItem (FileNameCopy)) {
+        ShellCreateDirectory (FileNameCopy, FileHandle);
+        ShellCloseFile (FileHandle);
+      }
+      SHELL_FREE_NON_NULL (FileNameCopy);
     }
+
     //
-    // Use UEFI Shell 2.0 method
+    // Use UEFI Shell 2.0 method to create the file
     //
     Status = gEfiShellProtocol->OpenFileByName(FileName,
                                                FileHandle,

Modified: trunk/edk2/ShellPkg/Library/UefiShellLib/UefiShellLib.inf
===================================================================
--- trunk/edk2/ShellPkg/Library/UefiShellLib/UefiShellLib.inf   2015-01-13 
18:58:00 UTC (rev 16605)
+++ trunk/edk2/ShellPkg/Library/UefiShellLib/UefiShellLib.inf   2015-01-13 
22:16:41 UTC (rev 16606)
@@ -1,7 +1,7 @@
 ##  @file
 # Provides interface to shell functionality for shell commands and 
applications.
 #
-# Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved. <BR>
+# Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.
+<BR>
 #
 #  This program and the accompanying materials  #  are licensed and made 
available under the terms and conditions of the BSD License @@ -48,6 +48,7 @@
   UefiLib
   HiiLib
   SortLib
+  PathLib

 [Protocols]
   gEfiSimpleFileSystemProtocolGuid              # ALWAYS_CONSUMED


------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Attachment: ShellLib.patch
Description: ShellLib.patch

------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

--- End Message ---
------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to