This should solve it
--- src/command.C.orig 2012-04-12 19:24:44.669230581 -0400
+++ src/command.C 2012-04-12 19:43:08.592004444 -0400
@@ -3581,7 +3581,10 @@
if (mode == 's')
{
- SavedModes |= (priv_modes & bit);
+ if(priv_modes & bit)
+ SavedModes |= bit;
+ else
+ SavedModes &= ~bit;
return -1;
}
else
Sent: Thu Apr 12 2012 19:13:27 GMT-0400 (EDT)
From: Patrick Hemmer <[email protected]>
To: [email protected]
Subject: BUG: DEC private mode saving does not save low state after
saving high state
Whenever you use the escape code "ESC [ ? Pm s" to save a high state,
if you later change the state to low and save it again, then restore
it, the high state is restored, not the low state.
Duplicate:
echo -e '\e[?9h' # enable high state for mouse reporting
echo -e '\e[?9s' # save state
echo -e '\e[?9l' # disable mouse reporting
echo -e '\e[?9s' # save state
echo -e '\e[?9r' # restore state
(click somewhere and watch escape codes get sent to the terminal)
The bug is on line 3584 of command.C . Its saving by doing an |=
operation. Since the previously saved state is high, when you 'or' it
with a low bit, the high bit remains.
_______________________________________________
rxvt-unicode mailing list
[email protected]
http://lists.schmorp.de/cgi-bin/mailman/listinfo/rxvt-unicode
_______________________________________________
rxvt-unicode mailing list
[email protected]
http://lists.schmorp.de/cgi-bin/mailman/listinfo/rxvt-unicode