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]>
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
