diff options
author | Jesse Luehrs <doy@tozt.net> | 2014-04-21 01:43:10 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2014-04-21 01:43:10 -0400 |
commit | 415a4daefcb8d03e543789db7dbcd30b47771142 (patch) | |
tree | 731804336f37fc62c8b0beedfab22f8fe760a500 /src/parser.l | |
parent | 0ad7c8111010a06984ecba3e58fa506ca0c2304e (diff) | |
download | runes-415a4daefcb8d03e543789db7dbcd30b47771142.tar.gz runes-415a4daefcb8d03e543789db7dbcd30b47771142.zip |
implement RIS (for reset)
Diffstat (limited to 'src/parser.l')
-rw-r--r-- | src/parser.l | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/parser.l b/src/parser.l index d1bfb10..7ad27dc 100644 --- a/src/parser.l +++ b/src/parser.l @@ -38,6 +38,7 @@ DECKPNM {ESC}> CSI {ESC}\[ OSC {ESC}\] RI {ESC}M +RIS {ESC}c VB {ESC}g DECSC {ESC}7 DECRC {ESC}8 @@ -84,6 +85,7 @@ static void runes_parser_handle_cr(RunesTerm *t); static void runes_parser_handle_deckpam(RunesTerm *t); static void runes_parser_handle_deckpnm(RunesTerm *t); static void runes_parser_handle_ri(RunesTerm *t); +static void runes_parser_handle_ris(RunesTerm *t); static void runes_parser_handle_vb(RunesTerm *t); static void runes_parser_handle_decsc(RunesTerm *t); static void runes_parser_handle_decrc(RunesTerm *t); @@ -127,6 +129,7 @@ static void runes_parser_handle_text(RunesTerm *t, char *text, size_t len); {DECKPAM} runes_parser_handle_deckpam(yyextra); return -1; {DECKPNM} runes_parser_handle_deckpnm(yyextra); return -1; {RI} runes_parser_handle_ri(yyextra); return -1; +{RIS} runes_parser_handle_ris(yyextra); return -1; {VB} runes_parser_handle_vb(yyextra); return -1; {DECSC} runes_parser_handle_decsc(yyextra); return -1; {DECRC} runes_parser_handle_decrc(yyextra); return -1; @@ -287,6 +290,21 @@ static void runes_parser_handle_ri(RunesTerm *t) runes_display_move_to(t, t->row - 1, t->col); } +static void runes_parser_handle_ris(RunesTerm *t) +{ + runes_display_use_normal_buffer(t); + runes_display_set_scroll_region(t, 1, t->rows, 1, t->cols); + runes_display_clear_screen(t); + runes_display_save_cursor(t); + runes_display_reset_text_attributes(t); + runes_display_show_cursor(t); + + t->application_keypad = 0; + t->application_cursor = 0; + t->mouse_reporting_press = 0; + t->mouse_reporting_press_release = 0; +} + static void runes_parser_handle_vb(RunesTerm *t) { runes_window_backend_request_visual_bell(t); |