aboutsummaryrefslogtreecommitdiffstats
path: root/src/parser.l
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2014-04-21 23:36:13 -0400
committerJesse Luehrs <doy@tozt.net>2014-04-21 23:36:13 -0400
commit6fe9bd55c38ce53bfaeb9a01c921bcfa46ee7705 (patch)
tree8a43f8be68721b624ff9a699a10405f5871b3063 /src/parser.l
parent9ba56b83d12a6890a2b1039de9fed0d91f082b59 (diff)
downloadrunes-6fe9bd55c38ce53bfaeb9a01c921bcfa46ee7705.tar.gz
runes-6fe9bd55c38ce53bfaeb9a01c921bcfa46ee7705.zip
handle DL
Diffstat (limited to 'src/parser.l')
-rw-r--r--src/parser.l12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/parser.l b/src/parser.l
index dbafb9d..75ba352 100644
--- a/src/parser.l
+++ b/src/parser.l
@@ -58,6 +58,7 @@ CUP {CSI}{CSIPARAM2}H
ED {CSI}{CSIPARAM1}J
EL {CSI}{CSIPARAM1}K
IL {CSI}{CSIPARAM1}L
+DL {CSI}{CSIPARAM1}M
DCH {CSI}{CSIPARAM1}P
SM {CSI}{SMPARAMS}h
RM {CSI}{SMPARAMS}l
@@ -101,6 +102,7 @@ static void runes_parser_handle_cup(RunesTerm *t, char *buf, size_t len);
static void runes_parser_handle_ed(RunesTerm *t, char *buf, size_t len);
static void runes_parser_handle_el(RunesTerm *t, char *buf, size_t len);
static void runes_parser_handle_il(RunesTerm *t, char *buf, size_t len);
+static void runes_parser_handle_dl(RunesTerm *t, char *buf, size_t len);
static void runes_parser_handle_dch(RunesTerm *t, char *buf, size_t len);
static void runes_parser_handle_sm(RunesTerm *t, char *buf, size_t len);
static void runes_parser_handle_rm(RunesTerm *t, char *buf, size_t len);
@@ -142,6 +144,7 @@ static void runes_parser_handle_text(RunesTerm *t, char *text, size_t len);
{ED} runes_parser_handle_ed(yyextra, yytext, yyleng); return -1;
{EL} runes_parser_handle_el(yyextra, yytext, yyleng); return -1;
{IL} runes_parser_handle_il(yyextra, yytext, yyleng); return -1;
+{DL} runes_parser_handle_dl(yyextra, yytext, yyleng); return -1;
{DCH} runes_parser_handle_dch(yyextra, yytext, yyleng); return -1;
{SM} runes_parser_handle_sm(yyextra, yytext, yyleng); return -1;
{RM} runes_parser_handle_rm(yyextra, yytext, yyleng); return -1;
@@ -465,6 +468,15 @@ static void runes_parser_handle_il(RunesTerm *t, char *buf, size_t len)
runes_display_scroll_up(t, params[0]);
}
+static void runes_parser_handle_dl(RunesTerm *t, char *buf, size_t len)
+{
+ int params[RUNES_PARSER_CSI_MAX_PARAMS] = { 1 }, nparams;
+
+ runes_parser_extract_csi_params(buf + 2, len - 3, params, &nparams);
+ runes_display_delete_lines(t, params[0]);
+ runes_display_move_to(t, t->row, 0);
+}
+
static void runes_parser_handle_dch(RunesTerm *t, char *buf, size_t len)
{
int params[RUNES_PARSER_CSI_MAX_PARAMS] = { 1 }, nparams;