]> Sergey Matveev's repositories - st.git/blobdiff - st.c
Add support for DSR response "OK" escape sequence
[st.git] / st.c
diff --git a/st.c b/st.c
index 34c27adf3f755bd60cc6b45f1c34af8bb48c98bb..49357cc9d11b1ad6bd8a954ee626f3a5d309877b 100644 (file)
--- a/st.c
+++ b/st.c
@@ -1769,11 +1769,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);
+                                      term.c.y+1, term.c.x+1);
                        ttywrite(buf, len, 0);
+                       break;
+               default:
+                       goto unknown;
                }
                break;
        case 'r': /* DECSTBM -- Set Scrolling Region */