From 9ed1b61f230b6bff621f235948baca7e47b01869 Mon Sep 17 00:00:00 2001 From: Boris Faure Date: Sun, 9 Dec 2018 18:45:21 +0100 Subject: [PATCH] termptyesc: handle DSR-DIR (Data Integrity Report) + test --- src/bin/termptyesc.c | 14 +++++++++++++- tests/dsr-dir.sh | 8 ++++++++ tests/tests.results | 1 + 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100755 tests/dsr-dir.sh diff --git a/src/bin/termptyesc.c b/src/bin/termptyesc.c index 23adab50..8cba1453 100644 --- a/src/bin/termptyesc.c +++ b/src/bin/termptyesc.c @@ -997,6 +997,18 @@ _handle_esc_csi_dsr(Termpty *ty, Eina_Unicode *b) termpty_write(ty, bf, len); } break; + case 75: + if (question_mark) + { + /* DSR-DIR (Data Integrity Report) */ + termpty_write(ty, "\033[?70n", strlen("\033[?70n")); + } + else + { + WRN("unhandled DSR (dec specific: %s) %d", + (question_mark)? "yes": "no", arg); + } + break; default: WRN("unhandled DSR (dec specific: %s) %d", (question_mark)? "yes": "no", arg); @@ -2470,7 +2482,7 @@ termpty_handle_seq(Termpty *ty, const Eina_Unicode *c, const Eina_Unicode *ce) Eina_Unicode last_char = 0; int len = 0; -/* +/* printf(" B: "); int j; for (j = 0; c + j < ce && j < 100; j++) diff --git a/tests/dsr-dir.sh b/tests/dsr-dir.sh new file mode 100755 index 00000000..25d7f90c --- /dev/null +++ b/tests/dsr-dir.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +# fill space with E +printf '\033#8' +#set color +printf '\033[46;31;3m' + +printf '\033[?75n' diff --git a/tests/tests.results b/tests/tests.results index 9bad3405..fd2a3e89 100644 --- a/tests/tests.results +++ b/tests/tests.results @@ -18,3 +18,4 @@ xterm-osc-0-title-icon.sh cb5080cc1dbc23b553b62fbdc8cbdf68 xterm-osc-1-icon.sh 9202db6e81ce810f007035770934fecb xterm-osc-2-title.sh 49a058f1813bdd64faab1cf1af3ebe09 dsr-cpr.sh 5a778fd856455475e695e5469e69d227 +dsr-dir.sh f7dde335d44f8691041d40c3efd24ffb