bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] Add support for ANSI.SYS SCP/RCP escape codes


From: James Clarke
Subject: [PATCH] Add support for ANSI.SYS SCP/RCP escape codes
Date: Sat, 12 Sep 2015 00:42:05 +0100

This adds support for CSI s and u, which are equivalent to ESC 7 and 8,
saving/restoring the cursor position.

* console/display.c (handle_esc_bracket): Added support for CSI s and u.
---
 console/display.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/console/display.c b/console/display.c
index eb420fd..98c70f5 100644
--- a/console/display.c
+++ b/console/display.c
@@ -1210,6 +1210,18 @@ handle_esc_bracket (display_t display, char op)
       user->cursor.col -= (parse->params[0] ?: 1);
       limit_cursor (display);
       break;
+    case 's':          /* ANSI.SYS: Save cursor and attributes.  */
+      /* Save cursor position: <scp>.  */
+      display->cursor.saved_x = user->cursor.col;
+      display->cursor.saved_y = user->cursor.row;
+      break;
+    case 'u':          /* ANSI.SYS: Restore cursor and attributes.  */
+      /* Restore cursor position: <rcp>.  */
+      user->cursor.col = display->cursor.saved_x;
+      user->cursor.row = display->cursor.saved_y;
+      /* In case the screen was larger before:  */
+      limit_cursor (display);
+      break;
     case 'l':
       /* Reset mode.  */
       for (i = 0; i < parse->nparams; i++)
-- 
2.5.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]