Date: Sun, 7 Aug 2005 17:15:50 +0200 (CEST) From: Marcin Cieslak <saper@system.pl> To: FreeBSD-gnats-submit@FreeBSD.org Cc: lioux@FreeBSD.org Subject: ports/84647: [PATCH] x11/rxvt, x11/rxvt-devel: fix ERASE2 support Message-ID: <200508071515.j77FFolG045530@cable-140-42.iesy.tv> Resent-Message-ID: <200508071550.j77FoBnH042878@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 84647 >Category: ports >Synopsis: [PATCH] x11/rxvt, x11/rxvt-devel: fix ERASE2 support >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Aug 07 15:50:11 GMT 2005 >Closed-Date: >Last-Modified: >Originator: Marcin Cieslak >Release: FreeBSD 5.4-PRERELEASE i386 >Organization: >Environment: System: FreeBSD saperski.saper.info 5.4-PRERELEASE FreeBSD 5.4-PRERELEASE #0: Mon Mar 14 18:50:08 CET 2005 saper@saperski.saper.info:/usr/obj/usr/src/sys/VAIO i386 rxvt 2.6.4 or 2.7.0 fluxbox 0.9.13 ithgtvnc 1.2.9 >Description: Under some strange conditions - running rxvt 2.6.4 or rxvt 2.7.10 with the fluxbox windowmanager under Xvnc, some strange character is set as ERASE2 control character. Sometimes it's ^@ but usually I get H (plain shift-H). stty -a shows: erase2 = H It is quite annoying I must admit :-) >How-To-Repeat: >Fix: In get_ttymode function struct ttymode_t* tio is not initialized correctly, random character is taken as ERASE2. The patch is trivial: for x11/rxvt (rxvt 2.6.4) [Replace existing files/patch-ad] --- src/command.c.orig Fri Nov 2 01:18:57 2001 +++ src/command.c Sun Aug 7 16:03:37 2005 @@ -322,7 +322,7 @@ ttydev = tty_name; # define PTYCHAR1 "pqrstuvwxyz" -# define PTYCHAR2 "0123456789abcdef" +# define PTYCHAR2 "0123456789abcdefghijklmnopqrstuv" for (c1 = PTYCHAR1; *c1; c1++) { ptydev[len] = ttydev[len] = *c1; for (c2 = PTYCHAR2; *c2; c2++) { @@ -519,6 +519,9 @@ # ifdef VEOL2 FOO(VEOL2, "VEOL2"); # endif +# ifdef VERASE2 + FOO(VERASE2, "VERASE2"); +# endif # ifdef VSWTC FOO(VSWTC, "VSWTC"); # endif @@ -596,6 +599,9 @@ # ifdef VSWTCH tio->c_cc[VSWTCH] = VDISABLE; # endif +# ifdef VERASE2 + tio->c_cc[VERASE2] = CERASE2; +# endif # if VMIN != VEOF tio->c_cc[VMIN] = 1; # endif @@ -2376,7 +2382,7 @@ unsigned char buf[256]; va_start(arg_ptr, fmt); - vsprintf(buf, fmt, arg_ptr); + vsnprintf(buf, sizeof(buf), fmt, arg_ptr); va_end(arg_ptr); tt_write(buf, strlen(buf)); } for x11/rxvt-devel (rxvt 2.7.10) [ new file files/patchs-src::init.c] --- src/init.c.orig Sun Aug 7 16:12:32 2005 +++ src/init.c Sun Aug 7 16:13:19 2005 @@ -1531,6 +1531,9 @@ # ifdef VEOL2 tio->c_cc[VEOL2] = VDISABLE; # endif +# ifdef VERASE2 + tio->c_cc[VERASE2] = CERASE2; +# endif # ifdef VSWTC tio->c_cc[VSWTC] = VDISABLE; # endif @@ -1650,6 +1653,9 @@ FOO(VEOL, "VEOL"); # ifdef VEOL2 FOO(VEOL2, "VEOL2"); +# endif +# ifdef VERASE2 + FOO(VERASE2, "VERASE2"); # endif # ifdef VSWTC FOO(VSWTC, "VSWTC"); >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200508071515.j77FFolG045530>