aboutsummaryrefslogtreecommitdiff
path: root/winsup/cygwin/fhandler_console.cc
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2006-11-23 10:08:04 +0000
committerCorinna Vinschen <corinna@vinschen.de>2006-11-23 10:08:04 +0000
commitbf4071fad04c9ea670aa8344b6bd20e4763a0082 (patch)
treec6fc03a69cd3836060ab5ed739d10ad002480636 /winsup/cygwin/fhandler_console.cc
parent9e3f289f51a287863beed8688d1632a269c40db5 (diff)
downloadnewlib-bf4071fad04c9ea670aa8344b6bd20e4763a0082.zip
newlib-bf4071fad04c9ea670aa8344b6bd20e4763a0082.tar.gz
newlib-bf4071fad04c9ea670aa8344b6bd20e4763a0082.tar.bz2
* fhandler_console.cc (set_color): Avoid (again) inappropriate
intensity interchanging that used to render reverse output unreadable when (non-reversed) text is bright. See http://sourceware.org/bugzilla/show_bug.cgi?id=514
Diffstat (limited to 'winsup/cygwin/fhandler_console.cc')
-rw-r--r--winsup/cygwin/fhandler_console.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/winsup/cygwin/fhandler_console.cc b/winsup/cygwin/fhandler_console.cc
index 82ede58..6f1e739 100644
--- a/winsup/cygwin/fhandler_console.cc
+++ b/winsup/cygwin/fhandler_console.cc
@@ -948,6 +948,8 @@ dev_console::set_color (HANDLE h)
(save_fg & FOREGROUND_BLUE ? BACKGROUND_BLUE : 0) |
(save_fg & FOREGROUND_INTENSITY ? BACKGROUND_INTENSITY : 0);
}
+
+ /* apply attributes */
if (underline)
win_fg = underline_color;
/* emulate blink with bright background */
@@ -956,7 +958,12 @@ dev_console::set_color (HANDLE h)
if (intensity == INTENSITY_INVISIBLE)
win_fg = win_bg;
else if (intensity == INTENSITY_BOLD)
- win_fg |= FOREGROUND_INTENSITY;
+ /* apply foreground intensity only in non-reverse mode! */
+ if (reverse)
+ win_bg |= BACKGROUND_INTENSITY;
+ else
+ win_fg |= FOREGROUND_INTENSITY;
+
current_win32_attr = win_fg | win_bg;
if (h)
SetConsoleTextAttribute (h, current_win32_attr);