Bug#510030: xterm: DECRQSS and comments
* Julien Cristau:
> I'm considering the below diff for lenny, please review and tell me
> whether this is ok for testing-security.
If I read the patch correctly, you change the compiled-in defaults.
This is fine, but is somewhat different from allowWindowOps approach
in etch (which shipped a configuration file). etch -> lenny updates
should work as well and result in a conservative configuration choice.
For reference, I've attached the patch I plan to apply to the etch4
version, to reintroduce font shifting support for those who need it.
If you think we need to backport more changes in #238, I'm open to
that, too.
Index: git/ptyx.h
===================================================================
--- git.orig/ptyx.h 2009-01-02 21:35:07.000000000 +0100
+++ git/ptyx.h 2009-01-02 21:35:23.000000000 +0100
@@ -1345,8 +1345,10 @@
Boolean bellOnReset; /* bellOnReset */
Boolean visualbell; /* visual bell mode */
Boolean poponbell; /* pop on bell mode */
+ Boolean allowFontOps; /* FontOps mode */
Boolean allowSendEvents;/* SendEvent mode */
Boolean allowWindowOps; /* WindowOps mode */
+ Boolean allowFontOps0; /* initial FontOps mode */
Boolean allowSendEvent0;/* initial SendEvent mode */
Boolean allowWindowOp0; /* initial WindowOps mode */
Boolean awaitInput; /* select-timeout mode */
Index: git/charproc.c
===================================================================
--- git.orig/charproc.c 2009-01-02 21:35:07.000000000 +0100
+++ git/charproc.c 2009-01-02 21:35:23.000000000 +0100
@@ -394,6 +394,7 @@
static XtResource resources[] =
{
+ Bres(XtNallowFontOps, XtCAllowFontOps, screen.allowFontOps0, False),
Bres(XtNallowSendEvents, XtCAllowSendEvents, screen.allowSendEvent0, False),
Bres(XtNallowWindowOps, XtCAllowWindowOps, screen.allowWindowOp0, True),
Bres(XtNalwaysHighlight, XtCAlwaysHighlight, screen.always_highlight, False),
@@ -5524,10 +5525,12 @@
init_Bres(screen.meta_sends_esc);
init_Bres(screen.allowSendEvent0);
+ init_Bres(screen.allowFontOps0);
init_Bres(screen.allowWindowOp0);
/* make a copy so that editres cannot change the resource after startup */
wnew->screen.allowSendEvents = wnew->screen.allowSendEvent0;
+ wnew->screen.allowFontOps = wnew->screen.allowFontOps0;
wnew->screen.allowWindowOps = wnew->screen.allowWindowOp0;
#ifndef NO_ACTIVE_ICON
Index: git/xterm.h
===================================================================
--- git.orig/xterm.h 2009-01-02 21:35:07.000000000 +0100
+++ git/xterm.h 2009-01-02 21:35:23.000000000 +0100
@@ -325,6 +325,7 @@
/***====================================================================***/
#define XtNallowC1Printable "allowC1Printable"
+#define XtNallowFontOps "allowFontOps"
#define XtNallowSendEvents "allowSendEvents"
#define XtNallowWindowOps "allowWindowOps"
#define XtNalwaysHighlight "alwaysHighlight"
@@ -463,6 +464,7 @@
#define XtNxmcMoveSGR "xmcMoveSGR"
#define XtCAllowC1Printable "AllowC1Printable"
+#define XtCAllowFontOps "AllowFontOps"
#define XtCAllowSendEvents "AllowSendEvents"
#define XtCAllowWindowOps "AllowWindowOps"
#define XtCAlwaysHighlight "AlwaysHighlight"
Index: git/xterm.man
===================================================================
--- git.orig/xterm.man 2009-01-02 21:35:23.000000000 +0100
+++ git/xterm.man 2009-01-02 21:35:23.000000000 +0100
@@ -1349,6 +1349,10 @@
Although this corresponds to no particular standard,
some users insist it is a VT100.
The default is ``false.''
+.TP
+.B "allowFontOps (\fPclass\fB AllowFontOps)"
+Specifies whether control sequences that set/query the font should be allowed.
+The default is ``false.''
.TP 8
.B "allowSendEvents (\fPclass\fB AllowSendEvents)"
Specifies whether or not synthetic key and button events (generated using
Index: git/misc.c
===================================================================
--- git.orig/misc.c 2009-01-02 21:37:05.000000000 +0100
+++ git/misc.c 2009-01-02 21:37:15.000000000 +0100
@@ -1847,7 +1847,9 @@
case 50:
#if OPT_SHIFT_FONTS
- if (buf != 0 && !strcmp(buf, "?")) {
+ if (!screen->allowFontOps && xw->misc.shift_fonts) {
+ ; /* disabled via resource or control-sequence */
+ } else if (buf != 0 && !strcmp(buf, "?")) {
int num = screen->menu_font_number;
unparseputc1(xw, OSC);
Reply to: