diff options
| author | Christian Kolset <christian.kolset@gmail.com> | 2026-04-11 20:56:44 -0600 |
|---|---|---|
| committer | Christian Kolset <christian.kolset@gmail.com> | 2026-04-11 20:56:44 -0600 |
| commit | 0142f4efac1d5e5d4c620f8c3404d41c4880a6d0 (patch) | |
| tree | af650aa33805f0c309dc4c8ad3e178bf000fd1b1 /st.c | |
| parent | 8da17f89ad37570a769023ad30da4b777b25beba (diff) | |
| parent | 48b8ee6e181643800fe83353ec554f503020a8fa (diff) | |
Fix "Did not detect DSR response".
Diffstat (limited to 'st.c')
| -rw-r--r-- | st.c | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -1852,11 +1852,18 @@ csihandle(void) case 'm': /* SGR -- Terminal attribute (color) */ tsetattr(csiescseq.arg, csiescseq.narg); break; - case 'n': /* DSR – Device Status Report (cursor position) */ - if (csiescseq.arg[0] == 6) { + case 'n': /* DSR -- Device Status Report */ + switch (csiescseq.arg[0]) { + case 5: /* Status Report "OK" `0n` */ + ttywrite("\033[0n", sizeof("\033[0n") - 1, 0); + break; + case 6: /* Report Cursor Position (CPR) "<row>;<column>R" */ len = snprintf(buf, sizeof(buf), "\033[%i;%iR", term.c.y+1, term.c.x+1); ttywrite(buf, len, 0); + break; + default: + goto unknown; } break; case 'r': /* DECSTBM -- Set Scrolling Region */ |
