diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-04-12 13:38:57 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-04-12 13:38:57 +0200 |
commit | 88c1ee84d64d4f2cc25a95a6ccd573f8dc16b073 (patch) | |
tree | d92fea2620c16408b5db6541263e96f8233d21a7 /src/libvterm | |
parent | 3b922f11380c7dbf94ee45bc09d688b772d9707f (diff) | |
download | vim-git-88c1ee84d64d4f2cc25a95a6ccd573f8dc16b073.tar.gz |
patch 8.2.0550: some changes in the libvterm upstream codev8.2.0550
Problem: Some changes in the libvterm upstream code.
Solution: Include some changes.
Diffstat (limited to 'src/libvterm')
-rw-r--r-- | src/libvterm/t/harness.c | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/src/libvterm/t/harness.c b/src/libvterm/t/harness.c index 417b91e68..5fa4cfbca 100644 --- a/src/libvterm/t/harness.c +++ b/src/libvterm/t/harness.c @@ -65,6 +65,21 @@ static VTermScreen *screen; static VTermEncodingInstance encoding; +static void term_output(const char *s, size_t len, void *user) +{ + size_t i; + + printf("output "); + for(i = 0; i < len; i++) + printf("%x%s", (unsigned char)s[i], i < len-1 ? "," : "\n"); +} + +static void printhex(const char *s, size_t len) +{ + while(len--) + printf("%02x", (s++)[0]); +} + static int parser_text(const char bytes[], size_t len, void *user UNUSED) { size_t i; @@ -90,8 +105,6 @@ static int parser_control(unsigned char control, void *user UNUSED) static int parser_escape(const char bytes[], size_t len, void *user UNUSED) { - size_t i; - if(bytes[0] >= 0x20 && bytes[0] < 0x30) { if(len < 2) return -1; @@ -102,8 +115,7 @@ static int parser_escape(const char bytes[], size_t len, void *user UNUSED) } printf("escape "); - for(i = 0; i < len; i++) - printf("%02x", bytes[i]); + printhex(bytes, len); printf("\n"); return len; @@ -142,11 +154,9 @@ static int parser_csi(const char *leader, const long args[], int argcount, const static int parser_osc(const char *command, size_t cmdlen, void *user UNUSED) { - size_t i; printf("osc "); - for(i = 0; i < cmdlen; i++) - printf("%02x", command[i]); + printhex(command, cmdlen); printf("\n"); return 1; @@ -154,11 +164,9 @@ static int parser_osc(const char *command, size_t cmdlen, void *user UNUSED) static int parser_dcs(const char *command, size_t cmdlen, void *user UNUSED) { - size_t i; printf("dcs "); - for(i = 0; i < cmdlen; i++) - printf("%02x", command[i]); + printhex(command, cmdlen); printf("\n"); return 1; @@ -928,13 +936,10 @@ int main(int argc UNUSED, char **argv UNUSED) outlen = vterm_output_get_buffer_current(vt); if(outlen > 0) { - size_t i; char outbuff[1024]; vterm_output_read(vt, outbuff, outlen); - printf("output "); - for(i = 0; i < outlen; i++) - printf("%x%s", (unsigned char)outbuff[i], i < outlen-1 ? "," : "\n"); + term_output(outbuff, outlen, NULL); } printf(err ? "?\n" : "DONE\n"); |