x11/luit: fix ^V bug

Christian Weisgerber naddy at FreeBSD.org
Wed Jan 13 21:35:09 UTC 2016


luit(1) fails to make its tty fully transparent and accidentally
leaves lnext (^V) processing enabled.

One way to discover this: Start xterm with an ISO8859-2 locale,
which will automatically start luit.  Start an Emacs-style editor,
try to page down with ^V.  Notice that you need to enter ^V^V.

I think the luit author assumed that switching off ICANON would
disable this kind of input processing, as it does on Linux, but on
BSD, LNEXT is explicitly outside ICANON and only governed by IEXTEN.

I would like to commit this straightforward fix.  Any objections?

(I've also talked to Matthieu Herrb of X.org who will get this
upstream.)

Index: Makefile
===================================================================
--- Makefile	(revision 406068)
+++ Makefile	(working copy)
@@ -2,6 +2,7 @@
 
 PORTNAME=	luit
 PORTVERSION=	1.1.1
+PORTREVISION=	1
 CATEGORIES=	x11
 
 MAINTAINER=	x11 at FreeBSD.org
Index: files/patch-sys.c
===================================================================
--- files/patch-sys.c	(revision 0)
+++ files/patch-sys.c	(working copy)
@@ -0,0 +1,11 @@
+--- sys.c.orig	2012-03-23 04:23:07 UTC
++++ sys.c
+@@ -256,7 +256,7 @@ setRawTermios(void)
+     rc = tcgetattr(0, &tio);
+     if (rc < 0)
+ 	return rc;
+-    tio.c_lflag &= (unsigned) ~(ECHO | ICANON | ISIG);
++    tio.c_lflag &= (unsigned) ~(ECHO | ICANON | IEXTEN | ISIG);
+     tio.c_iflag &= (unsigned) ~(ICRNL | IXOFF | IXON | ISTRIP);
+ #ifdef ONLCR
+     tio.c_oflag &= (unsigned) ~ONLCR;

Property changes on: files/patch-sys.c
___________________________________________________________________
Added: fbsd:nokeywords
## -0,0 +1 ##
+yes
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
-- 
Christian "naddy" Weisgerber                          naddy at mips.inka.de


More information about the freebsd-x11 mailing list