]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ShellPkg/Library/UefiShellDebug1CommandsLib/EditStatusBar.c
ShellPkg: Fix calls to SimpleTextOut->SetAttribute to not use reserved bits
[mirror_edk2.git] / ShellPkg / Library / UefiShellDebug1CommandsLib / EditStatusBar.c
index cf885c25491568bfafc802b63ca2ead3776c8023..fbf48b7e2b164cd0f93b40afe3359963fc5c6eae 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Implements statusbar interface functions.\r
 \r
-  Copyright (c) 2005 - 2011, Intel Corporation. All rights reserved. <BR>\r
+  Copyright (c) 2005 - 2014, Intel Corporation. All rights reserved. <BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
@@ -62,7 +62,7 @@ StatusBarCleanup (
 \r
 typedef struct {\r
   UINT32  Foreground : 4;\r
-  UINT32  Background : 4;\r
+  UINT32  Background : 3;\r
 } STATUS_BAR_COLOR_ATTRIBUTES;\r
 \r
 typedef union {\r
@@ -112,11 +112,11 @@ StatusBarRefresh (
   //\r
   Orig.Data             = gST->ConOut->Mode->Attribute;\r
   New.Data              = 0;\r
-  New.Colors.Foreground = Orig.Colors.Background;\r
-  New.Colors.Background = Orig.Colors.Foreground;\r
+  New.Colors.Foreground = Orig.Colors.Background & 0xF;\r
+  New.Colors.Background = Orig.Colors.Foreground & 0x7;\r
 \r
   gST->ConOut->EnableCursor (gST->ConOut, FALSE);\r
-  gST->ConOut->SetAttribute (gST->ConOut, New.Data);\r
+  gST->ConOut->SetAttribute (gST->ConOut, New.Data & 0x7F);\r
 \r
   //\r
   // clear status bar\r