summaryrefslogtreecommitdiff
path: root/ShellPkg/Library/UefiShellDebug1CommandsLib/EditStatusBar.c
diff options
context:
space:
mode:
authorJaben Carsey <Jaben.carsey@intel.com>2014-07-25 18:46:23 +0000
committerjcarsey <jcarsey@6f19259b-4bc3-4df7-8a09-765794883524>2014-07-25 18:46:23 +0000
commit17e59b3346b7486fabbc57a13ef5b8c98d25a5a5 (patch)
treeaa137730c2bf3847cc344db7240a231b6df6cd63 /ShellPkg/Library/UefiShellDebug1CommandsLib/EditStatusBar.c
parent6cb9566f264e2fa2dcde695317945114e1b011c7 (diff)
downloadedk2-platforms-17e59b3346b7486fabbc57a13ef5b8c98d25a5a5.tar.xz
ShellPkg: Fix calls to SimpleTextOut->SetAttribute to not use reserved bits
As the shell inverts foreground and background it needs to be sure that it properly masks off the reserved bits and this is important since the foreground and background are not the same numbers of bits. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jaben Carsey <Jaben.carsey@intel.com> Reviewed-by: Tapan Shah <tapandshah@hp.com> Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15681 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'ShellPkg/Library/UefiShellDebug1CommandsLib/EditStatusBar.c')
-rw-r--r--ShellPkg/Library/UefiShellDebug1CommandsLib/EditStatusBar.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/EditStatusBar.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/EditStatusBar.c
index cf885c2549..fbf48b7e2b 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/EditStatusBar.c
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/EditStatusBar.c
@@ -1,7 +1,7 @@
/** @file
Implements statusbar interface functions.
- Copyright (c) 2005 - 2011, Intel Corporation. All rights reserved. <BR>
+ Copyright (c) 2005 - 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
which accompanies this distribution. The full text of the license may be found at
@@ -62,7 +62,7 @@ StatusBarCleanup (
typedef struct {
UINT32 Foreground : 4;
- UINT32 Background : 4;
+ UINT32 Background : 3;
} STATUS_BAR_COLOR_ATTRIBUTES;
typedef union {
@@ -112,11 +112,11 @@ StatusBarRefresh (
//
Orig.Data = gST->ConOut->Mode->Attribute;
New.Data = 0;
- New.Colors.Foreground = Orig.Colors.Background;
- New.Colors.Background = Orig.Colors.Foreground;
+ New.Colors.Foreground = Orig.Colors.Background & 0xF;
+ New.Colors.Background = Orig.Colors.Foreground & 0x7;
gST->ConOut->EnableCursor (gST->ConOut, FALSE);
- gST->ConOut->SetAttribute (gST->ConOut, New.Data);
+ gST->ConOut->SetAttribute (gST->ConOut, New.Data & 0x7F);
//
// clear status bar