*** empty log message ***
authorroot <root>
Wed, 5 Nov 2008 16:17:23 +0000 (16:17 +0000)
committerroot <root>
Wed, 5 Nov 2008 16:17:23 +0000 (16:17 +0000)
Changes
src/command.C

diff --git a/Changes b/Changes
index 9be099d..ecf787d 100644 (file)
--- a/Changes
+++ b/Changes
@@ -61,6 +61,7 @@ TODO: cursor restore/rendition restore on rmcup
         - new perl extension "overlay-osc", for status displays and the like.
         - fix some minor cursor drawing issues with overlays by allowing
           overlays to modify screen flags (to disable the cursor themselves).
+        - work around programs not restoring rstyle before rmcup.
 
 9.05 Sun Jun 15 20:09:20 CEST 2008
        - new option --cd/chdir to set the starting working directory.
index 32a391f..070d54c 100644 (file)
@@ -3662,7 +3662,6 @@ rxvt_term::process_terminal_mode (int mode, int priv UNUSED, unsigned int nargs,
             break;
 #endif
           case 1048:           /* alternative cursor save */
-          case 1049:
             if (option (Opt_secondaryScreen))
               if (mode == 0)
                 scr_cursor (RESTORE);
@@ -3748,16 +3747,21 @@ rxvt_term::process_terminal_mode (int mode, int priv UNUSED, unsigned int nargs,
               break;
             case 1047:         /* secondary screen w/ clearing last */
               if (option (Opt_secondaryScreen))
-                if (current_screen != PRIMARY)
+                if (!state)
                   scr_erase_screen (2);
 
               scr_change_screen (state);
               break;
             case 1049:         /* secondary screen w/ clearing first */
+              if (state)
+                scr_cursor (SAVE);
+
               scr_change_screen (state);
-              if (option (Opt_secondaryScreen))
-                if (current_screen != PRIMARY)
-                  scr_erase_screen (2);
+
+              if (state)
+                scr_erase_screen (2);
+              else
+                scr_cursor (RESTORE);
               break;
             default:
               break;