Revision: 15884
          http://sourceforge.net/p/edk2/code/15884
Author:   jcarsey
Date:     2014-08-22 17:00:49 +0000 (Fri, 22 Aug 2014)
Log Message:
-----------
ShellPkg: Fixes and updates for the 'devices' command
- Update 'devices -sfo' format to match UEFI Shell 2.1 spec
- Update help output for easier viewing
- Update 'devices' output format for better alignment when there are many 
device handles:
     T   D
     Y C I
     P F A
CTRL E G G #P #D #C  Device Name
==== = = = == == === =========================================================

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

Modified Paths:
--------------
    trunk/edk2/ShellPkg/Library/UefiShellDriver1CommandsLib/Devices.c
    
trunk/edk2/ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.uni

Modified: trunk/edk2/ShellPkg/Library/UefiShellDriver1CommandsLib/Devices.c
===================================================================
--- trunk/edk2/ShellPkg/Library/UefiShellDriver1CommandsLib/Devices.c   
2014-08-22 16:08:47 UTC (rev 15883)
+++ trunk/edk2/ShellPkg/Library/UefiShellDriver1CommandsLib/Devices.c   
2014-08-22 17:00:49 UTC (rev 15884)
@@ -1,6 +1,7 @@
 /** @file
   Main file for devices shell Driver1 function.
 
+  (C) Copyright 2012-2014, Hewlett-Packard Development Company, L.P.
   Copyright (c) 2010 - 2014, 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
@@ -114,6 +115,7 @@
 }
 
 STATIC CONST SHELL_PARAM_ITEM ParamList[] = {
+  {L"-sfo", TypeFlag},
   {L"-l", TypeValue},
   {NULL, TypeMax}
   };
@@ -146,9 +148,11 @@
   UINTN               Children;
   CHAR16              *Name;
   CONST CHAR16        *Lang;
+  BOOLEAN             SfoFlag;
 
   ShellStatus         = SHELL_SUCCESS;
   Language            = NULL;
+  SfoFlag             = FALSE;
 
   //
   // initialize the shell lib (we must be in non-auto-init...)
@@ -203,10 +207,13 @@
 
       //
       // Print Header
-      // only in non SFO mode.
+
       //
-      if (!ShellCommandLineGetFlag(Package, L"-sfo")){
-        ShellPrintHiiEx(-1, -1, Language, STRING_TOKEN 
(STR_DEVICES_HEADER_LINES), gShellDriver1HiiHandle);
+      if (ShellCommandLineGetFlag (Package, L"-sfo")) {
+        ShellPrintHiiEx (-1, -1, Language, STRING_TOKEN (STR_GEN_SFO_HEADER), 
gShellDriver1HiiHandle, L"devices");
+        SfoFlag = TRUE;
+      } else {
+        ShellPrintHiiEx (-1, -1, Language, STRING_TOKEN 
(STR_DEVICES_HEADER_LINES), gShellDriver1HiiHandle);
       }
 
       //
@@ -225,37 +232,20 @@
         Name = NULL;
         Status = GetDeviceHandleInfo(*HandleListWalker, &Type, &Cfg, &Diag, 
&Parents, &Devices, &Children, &Name, Language);
         if (Name != NULL && (Parents != 0 || Devices != 0 || Children != 0)) {
-          if (!ShellCommandLineGetFlag(Package, L"-sfo")){
-            ShellPrintHiiEx(
-              -1,
-              -1,
-              Language,
-              STRING_TOKEN(STR_DEVICES_ITEM_LINE),
-              gShellDriver1HiiHandle,
-              ConvertHandleToHandleIndex(*HandleListWalker),
-              Type,
-              Cfg?L'X':L'-',
-              Diag?L'X':L'-',
-              Parents,
-              Devices,
-              Children,
-              Name != NULL ? Name : L"<UNKNOWN>");
-          } else {
-            ShellPrintHiiEx(
-              -1,
-              -1,
-              Language,
-              STRING_TOKEN(STR_DEVICES_ITEM_LINE_SFO),
-              gShellDriver1HiiHandle,
-              ConvertHandleToHandleIndex(*HandleListWalker),
-              Type,
-              Cfg?L'Y':L'N',
-              Diag?L'Y':L'N',
-              Parents,
-              Devices,
-              Children,
-              Name != NULL ? Name : L"<UNKNOWN>");
-          }
+          ShellPrintHiiEx (
+            -1,
+            -1,
+            Language,
+            SfoFlag?STRING_TOKEN (STR_DEVICES_ITEM_LINE_SFO):STRING_TOKEN 
(STR_DEVICES_ITEM_LINE),
+            gShellDriver1HiiHandle,
+            ConvertHandleToHandleIndex (*HandleListWalker),
+            Type,
+            Cfg?(SfoFlag?L'Y':L'X'):(SfoFlag?L'N':L'-'),
+            Diag?(SfoFlag?L'Y':L'X'):(SfoFlag?L'N':L'-'),
+            Parents,
+            Devices,
+            Children,
+            Name!=NULL?Name:L"<UNKNOWN>");
         }
         if (Name != NULL) {
           FreePool(Name);

Modified: 
trunk/edk2/ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.uni
===================================================================
--- 
trunk/edk2/ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.uni
     2014-08-22 16:08:47 UTC (rev 15883)
+++ 
trunk/edk2/ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.uni
     2014-08-22 17:00:49 UTC (rev 15884)
@@ -156,12 +156,22 @@
  ---+++++    --+  This was sent by the SourceForge.net collaborative 
development platform, the world's largest Open Source development site.


------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to