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:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user