Commit d34dc45d authored by Kevin Wolf's avatar Kevin Wolf Committed by Anthony Liguori
Browse files

readline: Handle xterm escape sequences for Home/End keys



This fixes the Home/End keys in the monitor using the GTK frontend.

Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
Message-id: 1368526554-15866-1-git-send-email-kwolf@redhat.com
Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
parent 7791dba3
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@
#define IS_NORM 0
#define IS_ESC  1
#define IS_CSI  2
#define IS_SS3  3

#undef printf
#define printf do_not_use_printf
@@ -397,6 +398,9 @@ void readline_handle_byte(ReadLineState *rs, int ch)
        if (ch == '[') {
            rs->esc_state = IS_CSI;
            rs->esc_param = 0;
        } else if (ch == 'O') {
            rs->esc_state = IS_SS3;
            rs->esc_param = 0;
        } else {
            rs->esc_state = IS_NORM;
        }
@@ -439,6 +443,17 @@ void readline_handle_byte(ReadLineState *rs, int ch)
        rs->esc_state = IS_NORM;
    the_end:
        break;
    case IS_SS3:
        switch(ch) {
        case 'F':
            readline_eol(rs);
            break;
        case 'H':
            readline_bol(rs);
            break;
        }
        rs->esc_state = IS_NORM;
        break;
    }
    readline_update(rs);
}