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

View File

@ -48,6 +48,7 @@ struct screen_info {
bool reverse_attr;
int32 in_command_rows;
bool paging;
bool boot_debug_output;
bool ignore_output;
// state machine
@ -112,7 +113,8 @@ next_line(void)
scroll_up();
#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
const char *text = "Press key to continue, Q to quit";
int32 length = strlen(text);
@ -124,7 +126,7 @@ next_line(void)
for (int32 i = 0; i < length; i++) {
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();
@ -168,7 +170,6 @@ erase_line(erase_line_mode mode)
sModule->fill_glyph(sScreen.x, sScreen.y, sScreen.columns
- sScreen.x, 1, ' ', sScreen.attr);
break;
// default:
}
}
@ -208,7 +209,7 @@ set_vt100_attributes(int32 *args, int32 argCount)
for (int32 i = 0; i < argCount; i++) {
switch (args[i]) {
case 0: // reset
sScreen.attr = 0x0f;
sScreen.attr = sScreen.boot_debug_output ? 0xf0 : 0x0f;
sScreen.bright_attr = true;
sScreen.reverse_attr = false;
break;
@ -569,6 +570,9 @@ blue_screen_enter(bool debugOutput)
{
sScreen.attr = debugOutput ? 0xf0 : 0x0f;
// 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.state = CONSOLE_STATE_NORMAL;
@ -595,7 +599,8 @@ blue_screen_getchar(void)
void
blue_screen_putchar(char c)
{
if (sScreen.ignore_output && in_command_invocation())
if (sScreen.ignore_output
&& (in_command_invocation() || sScreen.boot_debug_output))
return;
sScreen.ignore_output = false;
@ -610,7 +615,8 @@ blue_screen_putchar(char c)
void
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;
sScreen.ignore_output = false;