Erik,

Can you verify this please?

p.s. sorry about the size of this patch.  They are a single logical unit and 
are not easily separable.

---------------------------------------------------------------------------
ShellPkg: Refactor the RunCommand API

This almost completely splits the RunCommand API into sub-routines.

 - the ProcessCommandLineToFinal API handles replacing the a found alias and 
any found environment variables.  This will redirect "-?" to "help", if 
necessary.  Upon return, the command line is complete and finalized.  It may 
still have redirection in it, and those will get chopped off later (but no 
further modifications occur).
 - the SetupAndRunCommandOrFile API handles updating and then later restoring 
StdIn, StdOut, and StdErr (and removing their information from the command 
line).  It will call into RunCommandOrFile.
 - the RunCommandOrFile API divides the logic to RunInternalCommand, 
RunScriptFile, or running an .EFI file directly.
 - the RunInternalCommand API handles updating and then restoring Argc and 
Argv.  It will run the internal command in between.
 - the SetLastError API handles updating of the environment variable "lasterror"
 - the DoHelpUpdateArgcArgv was changed to DoHelpUpdate and now works on the 
raw command line and not the argc/argv.  This allows the processing to be moved 
earlier.

Note this change has the following positive side effects (this eliminates 
unnecessary step):
 - Argc/Argv are only updated for internal commands (as they are library based)
 - no Argv/Argc/StdIn/StdOut/StdErr processing is done for file system changes.
 - The ProcessCommandLineToFinal API exists and it's critical to the ability to 
correctly pre-process split ("|") command lines ahead of time to verify their 
correctness.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <[email protected]>

Attachment: Shell.c.patch
Description: Shell.c.patch

------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to