Olivier

All but 0006 look good.  I believe that 0006 violates the shell specification. 
I do not believe that the nesting is optional.  I would support changing the 
spec to eliminate the red highlight and then we can leave launching a nested 
shell as an implementation choice.  I agree that this behavior costs a lot of 
memory/overhead.

For 0001,0002,0003,0004, and 0005:
Reviewed-by: Jaben Carsey <jaben.car...@intel.com>


This is the description for the "execute" API from the spec (highlight mine):

This function creates a nested instance of the shell and executes the specified 
command (CommandLine) with the specified environment (Environment). Upon 
return, the status code returned by the specified command is placed in 
StatusCode.
If Environment is NULL, then the current environment is used and all changes 
made by the commands executed will be reflected in the current environment. If 
the Environment is non-NULL, then the changes made will be discarded.
The CommandLine is executed from the current working directory on the current 
device.


From: Olivier Martin [mailto:olivier.mar...@arm.com]
Sent: Wednesday, February 05, 2014 7:27 AM
To: Carsey, Jaben
Cc: edk2-devel@lists.sourceforge.net; Brendan Jackman
Subject: RE: [edk2] [PATCH] Various fixes for the EFI Shell
Importance: High

Dear EFI Shell maintainer,

Please find the following patch set. The 3 first patches are the same as the 
patches we sent you last week - including the fixes for the comments you made.

0001-ShellPkg-Shell.c-Error-out-when-ProcessCommandLine-f.patch
                This patch fixes EFI Shell command line parsing.
                For instance, it did not support this command line: `shell.efi 
cp -r foo bar` because '-r' is not a supported argument.

0002-ShellPkg-Shell.c-Manually-parse-parameters.patch
                This patch fixes EFI Shell command line parsing.
                For instance, it did not support this command line: `shell.efi 
cp -r foo bar` because '-r' is not a supported argument.

0003-ShellPkg-ShellProtocol.c-Make-Argv-0-the-full-file-p.patch
ShellPkg/ShellProtocol.c: Make Argv[0] the full file path of the command
Required by the EFI Shell spec

0004-ShellPkg-Shell-Fixed-Memory-leak-in-UefiMain.patch
                Fixed Memory leak in UefiMain()

0005-ShelProtocol.c-InternalShellExecuteDevicePath-avoid-.patch
                InternalShellExecuteDevicePath: avoid  memory leaks

0006-ShellPkg-ShellProtocol.c-Execute-Don-t-load-a-new-im.patch
                When the Environment argument to Execute is NULL, we shouldn't 
create a child
instance of the shell. It's slow and uses masses of memory. Also it may break
the claim that changes to the shell environment instigated by the Execute()d
command are persistent.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Brendan Jackman 
<brendan.jack...@arm.com<mailto:brendan.jack...@arm.com>>
Reviewed-by: Olivier Martin 
<olivier.mar...@arm.com<mailto:olivier.mar...@arm.com>>

Regards,
Olivier

From: Olivier Martin [mailto:olivier.mar...@arm.com]
Sent: 24 January 2014 19:07
To: 'Carsey, Jaben'
Cc: Brendan Jackman; 
edk2-devel@lists.sourceforge.net<mailto:edk2-devel@lists.sourceforge.net>
Subject: [edk2] [PATCH] Various fixes for the EFI Shell

Dear EFI Shell maintainer,

Please find the following fixes for the EFI Shell.

Here is an overview of what the following patchset does. Some commit messages 
contain a more detailed description of what they achieve.

0001-ShellPkg-Shell.c-Error-out-when-ProcessCommandLine-f.patch
                ShellPkg/Shell.c: Error out when ProcessCommandLine fails

0002-ShellPkg-Shell.c-Manually-parse-parameters.patch
                This patch fixes EFI Shell command line parsing.
                For instance, it did not support this command line: `shell.efi 
cp -r foo bar` because '-r' is not a supported argument.

0003-ShellPkg-Shell-Fix-reporting-of-exit-status-in-Shell.patch
                ShellPkg/Shell: Fix reporting of exit status in 
ShellProtocol.Execute
                The Shell did not report if a command was failing.

0004-ShellPkg-ShellProtocol.c-Don-t-overwrite-Status-in-I.patch
                ShellPkg/ShellProtocol.c: Don't overwrite Status in 
InternalShellExecuteDevicePath

0005-ShellLib-UefiShellLib.c-Fix-doc-comment-for-ShellOpe.patch  
AArch64Mmu.c.patch
                ShellLib/UefiShellLib.c: Fix doc comment for 
ShellOpenFileMetaArg

0006-ShellPkg-UefiShellLib.c-Execute-Return-a-Command-sta.patch
                ShellPkg/UefiShellLib.c: Execute: Return a Command status even 
in the old shell

0007-ShellPkg-ShellProtocol.c-Make-Argv-0-the-full-file-p.patch
ShellPkg/ShellProtocol.c: Make Argv[0] the full file path of the command
Required by the EFI Shell spec

0008-ShellPkg-ShellProtocol.c-Don-t-put-consective-s-in-f.patch
ShellPkg/ShellProtocol.c: Don't put consective "\"s in file paths
The UEFI and UEFI Shell specs do not allow consecutive path separators.

Thanks,
Olivier
------------------------------------------------------------------------------
Android apps run on BlackBerry 10
Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
Now with support for Jelly Bean, Bluetooth, Mapview and more.
Get your Android app in front of a whole new audience.  Start now.
http://pubads.g.doubleclick.net/gampad/clk?id=124407151&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to