mirror of https://github.com/acidanthera/audk.git
Fix OutputString() in the console driver does not auto-scroll when you fill up the screen like the graphics driver does.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8811 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
59d2a62262
commit
51797e6dd5
|
@ -82,6 +82,7 @@ CHAR16 mSetModeString[] = { ESC, '[', '=', '3', 'h', 0 };
|
||||||
CHAR16 mSetAttributeString[] = { ESC, '[', '0', 'm', ESC, '[', '4', '0', 'm', ESC, '[', '4', '0', 'm', 0 };
|
CHAR16 mSetAttributeString[] = { ESC, '[', '0', 'm', ESC, '[', '4', '0', 'm', ESC, '[', '4', '0', 'm', 0 };
|
||||||
CHAR16 mClearScreenString[] = { ESC, '[', '2', 'J', 0 };
|
CHAR16 mClearScreenString[] = { ESC, '[', '2', 'J', 0 };
|
||||||
CHAR16 mSetCursorPositionString[] = { ESC, '[', '0', '0', ';', '0', '0', 'H', 0 };
|
CHAR16 mSetCursorPositionString[] = { ESC, '[', '0', '0', ';', '0', '0', 'H', 0 };
|
||||||
|
CHAR16 mCrLfString[] = { CHAR_CARRIAGE_RETURN, CHAR_LINEFEED, CHAR_NULL };
|
||||||
|
|
||||||
//
|
//
|
||||||
// Body of the ConOut functions
|
// Body of the ConOut functions
|
||||||
|
@ -309,6 +310,15 @@ TerminalConOutOutputString (
|
||||||
Mode->CursorColumn = 0;
|
Mode->CursorColumn = 0;
|
||||||
if (Mode->CursorRow < (INT32) (MaxRow - 1)) {
|
if (Mode->CursorRow < (INT32) (MaxRow - 1)) {
|
||||||
Mode->CursorRow++;
|
Mode->CursorRow++;
|
||||||
|
} else {
|
||||||
|
//
|
||||||
|
// Cursor has reached at MaxRow and MaxColumn,
|
||||||
|
// output carriage return and line feed to scroll screen
|
||||||
|
// when string is not control string.
|
||||||
|
//
|
||||||
|
if (!TerminalDevice->OutputEscChar) {
|
||||||
|
This->OutputString (This, mCrLfString);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue