Enabled paging for the boot debug output as well.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23570 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2008-01-16 22:09:02 +00:00
parent 1af247a60d
commit 33965e022a
+12 -6
View File
@@ -48,6 +48,7 @@ struct screen_info {
bool reverse_attr; bool reverse_attr;
int32 in_command_rows; int32 in_command_rows;
bool paging; bool paging;
bool boot_debug_output;
bool ignore_output; bool ignore_output;
// state machine // state machine
@@ -112,7 +113,8 @@ next_line(void)
scroll_up(); scroll_up();
#else #else
if (sScreen.paging && sScreen.in_command_rows > 1) { if (sScreen.paging
&& (sScreen.in_command_rows > 1 || sScreen.boot_debug_output)) {
// We're in the debugger, and a command is being executed // We're in the debugger, and a command is being executed
const char *text = "Press key to continue, Q to quit"; const char *text = "Press key to continue, Q to quit";
int32 length = strlen(text); int32 length = strlen(text);
@@ -124,7 +126,7 @@ next_line(void)
for (int32 i = 0; i < length; i++) { for (int32 i = 0; i < length; i++) {
sModule->put_glyph(sScreen.columns - length + i, sScreen.y, sModule->put_glyph(sScreen.columns - length + i, sScreen.y,
text[i], 0xf0); text[i], sScreen.boot_debug_output ? 0x6f : 0xf0);
} }
char c = blue_screen_getchar(); char c = blue_screen_getchar();
@@ -168,7 +170,6 @@ erase_line(erase_line_mode mode)
sModule->fill_glyph(sScreen.x, sScreen.y, sScreen.columns sModule->fill_glyph(sScreen.x, sScreen.y, sScreen.columns
- sScreen.x, 1, ' ', sScreen.attr); - sScreen.x, 1, ' ', sScreen.attr);
break; break;
// default:
} }
} }
@@ -208,7 +209,7 @@ set_vt100_attributes(int32 *args, int32 argCount)
for (int32 i = 0; i < argCount; i++) { for (int32 i = 0; i < argCount; i++) {
switch (args[i]) { switch (args[i]) {
case 0: // reset case 0: // reset
sScreen.attr = 0x0f; sScreen.attr = sScreen.boot_debug_output ? 0xf0 : 0x0f;
sScreen.bright_attr = true; sScreen.bright_attr = true;
sScreen.reverse_attr = false; sScreen.reverse_attr = false;
break; break;
@@ -569,6 +570,9 @@ blue_screen_enter(bool debugOutput)
{ {
sScreen.attr = debugOutput ? 0xf0 : 0x0f; sScreen.attr = debugOutput ? 0xf0 : 0x0f;
// black on white for KDL, white on black for debug output // black on white for KDL, white on black for debug output
sScreen.boot_debug_output = debugOutput;
sScreen.ignore_output = false;
sScreen.x = sScreen.y = 0; sScreen.x = sScreen.y = 0;
sScreen.state = CONSOLE_STATE_NORMAL; sScreen.state = CONSOLE_STATE_NORMAL;
@@ -595,7 +599,8 @@ blue_screen_getchar(void)
void void
blue_screen_putchar(char c) blue_screen_putchar(char c)
{ {
if (sScreen.ignore_output && in_command_invocation()) if (sScreen.ignore_output
&& (in_command_invocation() || sScreen.boot_debug_output))
return; return;
sScreen.ignore_output = false; sScreen.ignore_output = false;
@@ -610,7 +615,8 @@ blue_screen_putchar(char c)
void void
blue_screen_puts(const char *text) blue_screen_puts(const char *text)
{ {
if (sScreen.ignore_output && in_command_invocation()) if (sScreen.ignore_output
&& (in_command_invocation() || sScreen.boot_debug_output))
return; return;
sScreen.ignore_output = false; sScreen.ignore_output = false;