Subject: xsrc/29003: xsrc/29003: Bug in xterm (fwd)
To: None <xsrc-manager@netbsd.org, gnats-admin@netbsd.org,>
From: Matthias Scheler <tron@NetBSD.org>
List: netbsd-bugs
Date: 01/18/2005 22:35:01
The following reply was made to PR xsrc/29003; it has been noted by GNATS.

From: Matthias Scheler <tron@NetBSD.org>
To: Thomas Dickey <dickey@his.com>
Cc: NetBSD GNATS <gnats-bugs@netbsd.org>
Subject: xsrc/29003: Bug in xterm (fwd)
Date: Tue, 18 Jan 2005 22:33:49 +0000

 	Hello Thomas,
 
 any wise words about this bug? :-)
 
 ----- Forwarded message from bqt@update.uu.se -----
 
 From: bqt@update.uu.se
 To: xsrc-manager@netbsd.org, gnats-admin@netbsd.org, netbsd-bugs@netbsd.org
 Reply-To: gnats-bugs@netbsd.org
 Subject: xsrc/29003: Bug in xterm
 Cc: 
 Date: Tue, 18 Jan 2005 22:27:00 +0000 (UTC)
 
 >Number:         29003
 >Category:       xsrc
 >Synopsis:       xterm get's confused by ST sequence
 >Confidential:   no
 >Severity:       non-critical
 >Priority:       medium
 >Responsible:    xsrc-manager
 >State:          open
 >Class:          sw-bug
 >Submitter-Id:   net
 >Arrival-Date:   Tue Jan 18 22:27:00 +0000 2005
 >Originator:     Johnny Billquist
 >Release:        NetBSD 2.99.12
 >Organization:
 Johnny Billquist                  || "I'm on a bus
                                   ||  on a psychedelic trip
 email: bqt@update.uu.se           ||  Reading murder books
 pdp is alive!                     ||  tryin' to stay hip" - B. Idol
 >Environment:
 System: NetBSD Junk.BQTnet.SE 2.99.12 NetBSD 2.99.12 (Junk) #0: Tue Jan 4 18:43:18 CET 2005 root@Junk.BQTnet.SE:/usr/obj/sys/arch/i386/compile/Junk i386
 Architecture: i386
 Machine: i386
 >Description:
 The ST sequence is used to terminate some of the more complex escape
 sequences. If an ST is received while not parsing a sequence, xterm
 gobbles up a few characters of the input stream.
 The reason is that a state variable isn't reset from parsing the
 escape sequence if the sequence is ST, and we're not currently
 inside that more complex sequence.
 >How-To-Repeat:
 Just send the ST sequence, and watch the next character disappear.
 >Fix:
 Index: charproc.c
 ===================================================================
 RCS file: /cvsroot/xsrc/xfree/xc/programs/xterm/charproc.c,v
 retrieving revision 1.5
 diff -c -r1.5 charproc.c
 *** charproc.c	5 Mar 2004 16:33:12 -0000	1.5
 --- charproc.c	18 Jan 2005 22:21:51 -0000
 ***************
 *** 2164,2169 ****
 --- 2164,2170 ----
   	    break;
   
   	case CASE_ST:
 + 	    parsestate = groundtable;
   	    if (!string_used)
   		break;
   	    string_area[--string_used] = '\0';
 ***************
 *** 2184,2190 ****
   		/* ignored */
   		break;
   	    }
 - 	    parsestate = groundtable;
   	    break;
   
   	case CASE_SOS:
 --- 2185,2190 ----
 
 ----- End forwarded message -----
 
 	Kind regards
 
 -- 
 Matthias Scheler                                  http://scheler.de/~matthias/