Ctrl-L clears the KDL screen.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25233 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -595,6 +595,14 @@ blue_screen_enter(bool debugOutput)
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
blue_screen_clear_screen(void)
|
||||
{
|
||||
sModule->clear(sScreen.attr);
|
||||
move_cursor(0, 0);
|
||||
}
|
||||
|
||||
|
||||
char
|
||||
blue_screen_getchar(void)
|
||||
{
|
||||
|
||||
@@ -16,6 +16,7 @@ extern "C" {
|
||||
status_t blue_screen_init(void);
|
||||
status_t blue_screen_enter(bool debugOutput);
|
||||
|
||||
void blue_screen_clear_screen(void);
|
||||
char blue_screen_getchar(void);
|
||||
void blue_screen_putchar(char c);
|
||||
void blue_screen_puts(const char *text);
|
||||
|
||||
@@ -376,6 +376,28 @@ read_line(char *buffer, int32 maxLength,
|
||||
length = position;
|
||||
}
|
||||
break;
|
||||
case 0x1f & 'L': // CTRL-L -- clear screen
|
||||
if (sBlueScreenOutput) {
|
||||
// All the following needs to be transparent for the
|
||||
// serial debug output. I.e. after clearing the screen
|
||||
// we have to get the on-screen line into the visual state
|
||||
// it should have.
|
||||
|
||||
// clear screen
|
||||
blue_screen_clear_screen();
|
||||
|
||||
// reprint line
|
||||
buffer[length] = '\0';
|
||||
blue_screen_puts(kKDLPrompt);
|
||||
blue_screen_puts(buffer);
|
||||
|
||||
// reposition cursor
|
||||
if (position < length) {
|
||||
for (int i = length; i > position; i--)
|
||||
blue_screen_puts("\x1b[1D");
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 27: // escape sequence
|
||||
c = readChar();
|
||||
if (c != '[') {
|
||||
|
||||
Reference in New Issue
Block a user