XFree86 3.9Ad, 3.3.1d - xterm patch #66 - 1998/2/16 - T.Dickey <dickey@clark.net>
This fixes the problem reported with failure to build the resize program (BSDI,
OSF/1) due to not having <termcap.h>, by changing the ifdef to one that would
be set only if the file exists (not currently specified, except by the
standalone configure script). We do not really need to include <termcap.h> to
build, but only for a clean compile, since it may declare the tgetent()
prototype.
I also updated the man-page for resize, since I had recently noticed that
it can be used to resize xterm using the "Sun" control sequences option.
--------------------------------------------------------------------------------
Imakefile | 4
resize.c | 8
resize.man | 18
version.h | 2
xterm-66/xterm.log.html | 1558 ++++++++++++++++++++++++++++++++++++++++++++++
xtermcfg.hin | 4
6 files changed, 1577 insertions, 17 deletions
--------------------------------------------------------------------------------
Index: Imakefile
--- xterm-65+/Imakefile Sun Oct 26 16:05:57 1997
+++ xterm-66/Imakefile Mon Feb 16 17:06:38 1998
@@ -57,10 +57,6 @@
FEATURE_DEFINES = -DDEBUG -DALLOWLOGGING
#endif
-#if defined(NetBSDArchitecture) || defined(OpenBSDArchitecture) || (defined(FreeBSDArchitecture) && (OSMajorVersion < 2)) || (defined(SunArchitecture) && !defined(SVR4Architecture)) || defined(i386Sco325Architecture)
- TERMCAPDEFINES = -DNO_TERMCAP_H
-#endif
-
OSMAJORVERSION = OSMajorVersion
OSMINORVERSION = OSMinorVersion
Index: resize.c
--- xterm-65+/resize.c Mon Dec 29 12:22:34 1997
+++ xterm-66/resize.c Mon Feb 16 17:31:40 1998
@@ -87,7 +87,6 @@
#define USE_SYSV_UTMP
#else
#define USE_TERMCAP
-#define NO_TERMCAP_H
#endif
#else /* else not SYSV */
#define USE_TERMCAP
@@ -166,9 +165,10 @@
#define EMULATIONS 2
#define SUN 1
-#define TIMEOUT 10
#define VT100 0
+#define TIMEOUT 10
+
#define SHELL_UNKNOWN 0
#define SHELL_C 1
#define SHELL_BOURNE 2
@@ -251,7 +251,7 @@
#ifdef USE_TERMCAP
static char *strindex PROTO((char *s1, char *s2));
-#if !defined(NO_TERMCAP_H)
+#if HAVE_TERMCAP_H
#include <termcap.h>
#if defined(NCURSES_VERSION)
/* The tgetent emulation function in SVr4-style curses implementations
@@ -263,7 +263,7 @@
#endif
#else
#include <curses.h>
-#endif /* ! NO_TERMCAP_H */
+#endif /* HAVE_TERMCAP_H */
#endif
/*
Index: resize.man
--- xterm-65+/resize.man Sun Nov 16 13:09:00 1997
+++ xterm-66/resize.man Mon Feb 16 18:06:50 1998
@@ -1,4 +1,6 @@
.\" $TOG: resize.man /main/13 1997/11/04 20:58:24 kaleb $
+.\" $XFree86$
+.\" updated by Thomas Dickey <dickey@clark.net> for XFree86, Februrary 1998.
.TH RESIZE 1 "Release 6.4" "X Version 11"
.SH NAME
resize \- set TERMCAP and terminal settings to current xterm window size
@@ -47,9 +49,20 @@
.TP 8
.B \-s \fR[\fIrows columns\fP]
This option indicates that Sun console escape sequences will be used
-instead of the special \fIxterm\fP escape code. If \fIrows\fP and
+instead of the VT100-style \fIxterm\fP escape codes.
+If \fIrows\fP and
\fIcolumns\fP are given, \fIresize\fP will ask the \fIxterm\fP to resize
itself. However, the window manager may choose to disallow the change.
+.sp
+Note that the Sun console escape sequences are recognized
+by XFree86 \fIxterm\fP and
+by \fIdtterm\fP.
+The \fIresize\fP program may be installed as \fIsunsize\fP,
+which causes makes it assume the \fB\-s\fP option.
+.sp
+The \fIrows\fP and
+\fIcolumns\fP arguments must appear last; though they are normally
+associated with the \fB\-s\fP option, they are parsed separately.
.SH FILES
.TP 15
/etc/termcap
@@ -67,6 +80,3 @@
See
.IR X (1)
for a complete copyright notice.
-.SH BUGS
-The \fB\-u\fP or \fB\-c\fP must appear to the left of \fB\-s\fP if both are
-specified.
Index: version.h
--- xterm-65+/version.h Sat Feb 7 08:42:36 1998
+++ xterm-66/version.h Mon Feb 16 17:12:28 1998
@@ -6,4 +6,4 @@
* version of xterm has been built. The number in parentheses is my patch
* number (T.Dickey).
*/
-#define XTERM_VERSION "XFree86 3.9Ad(64)"
+#define XTERM_VERSION "XFree86 3.9Ad(66)"
Index: xterm.log.html
--- /dev/null Sun Jul 17 19:46:18 1994
+++ xterm-66/xterm.log.html Mon Feb 16 18:53:41 1998
@@ -0,0 +1,1558 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<!--
+ *****************************************************************************
+ * Copyright 1997,1998 by Thomas E. Dickey (dickey@clark.net) *
+ * All Rights Reserved. *
+ * *
+ * Permission to use, copy, modify, and distribute this software and its *
+ * documentation for any purpose and without fee is hereby granted, provided *
+ * that the above copyright notice appear in all copies and that both that *
+ * copyright notice and this permission notice appear in supporting *
+ * documentation, and that the name of the above listed copyright holder(s) *
+ * not be used in advertising or publicity pertaining to distribution of the *
+ * software without specific, written prior permission. *
+ * *
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD *
+ * TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND *
+ * FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE *
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES *
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN *
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF *
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *
+ *****************************************************************************
+ $XFree86$
+ -->
+<HTML>
+<HEAD>
+<TITLE>XTERM - Change Log</TITLE>
+<LINK REV=MADE HREF="mailto:dickey@clark.net">
+</HEAD>
+<BODY>
+<HR>
+Copyright 1997,1998 by Thomas E. Dickey
+<HR>
+<H1>Contents</H1>
+This file contains a list of the changes that I have made for XFree86 xterm,
+from the notes that I add when submitting a patch.
+<P>
+You should note that other changes have been made as well, by other people,
+to fix bugs and correct ifdef's for portability. All of these are summarized
+in the XFree86 CHANGELOG (found in the unbundled tree,
+xc/programs/Xserver/hw/xfree86).
+
+<UL>
+<LI><A HREF="#xterm_66">Patch #66 - 1998/2/16 - XFree86 3.9Ad and 3.3.1d</A>
+<LI><A HREF="#xterm_65">Patch #65 - 1998/2/14 - XFree86 3.9Ad and 3.3.1c</A>
+<LI><A HREF="#xterm_64">Patch #64 - 1998/2/8 - XFree86 3.9Ad</A>
+<LI><A HREF="#xterm_63">Patch #63 - 1998/2/5 - XFree86 3.9Ad</A>
+<LI><A HREF="#xterm_62">Patch #62 - 1998/1/23 - XFree86 3.9Ac</A>
+<LI><A HREF="#xterm_61">Patch #61 - 1998/1/17 - XFree86 3.9Ac</A>
+<LI><A HREF="#xterm_60">Patch #60 - 1998/1/10 - XFree86 3.9Ab</A>
+<LI><A HREF="#xterm_59">Patch #59 - 1998/1/5 - XFree86 3.9Ab</A>
+<LI><A HREF="#xterm_58">Patch #58 - 1998/1/3 - XFree86 3.9Ab</A>
+<LI><A HREF="#xterm_57">Patch #57 - 1997/12/26 - XFree86 3.9Aa</A>
+<LI><A HREF="#xterm_56">Patch #56 - 1997/11/28 - XFree86 3.9x</A>
+<LI><A HREF="#xterm_55">Patch #55 - 1997/11/25 - XFree86 3.9x</A>
+<LI><A HREF="#xterm_54">Patch #54 - 1997/10/17 - XFree86 3.9s</A>
+<LI><A HREF="#xterm_53">Patch #53 - 1997/10/12 - XFree86 3.9r</A>
+<LI><A HREF="#xterm_52">Patch #52 - 1997/9/29 - XFree86 3.9q</A>
+<LI><A HREF="#xterm_51">Patch #51 - 1997/9/15 - XFree86 3.9p</A>
+<LI><A HREF="#xterm_50">Patch #50 - 1997/8/22 - XFree86 3.9m</A>
+<LI><A HREF="#xterm_49">Patch #49 - 1997/8/10 - XFree86 3.9k</A>
+<LI><A HREF="#xterm_48">Patch #48 - 1997/7/26 - XFree86 3.9j</A>
+<LI><A HREF="#xterm_47">Patch #47 - 1997/7/13 - XFree86 3.9i</A>
+<LI><A HREF="#xterm_46">Patch #46 - 1997/7/4 - XFree86 3.9h</A>
+<LI><A HREF="#xterm_45">Patch #45 - 1997/7/2 - XFree86 3.9h</A>
+<LI><A HREF="#xterm_44">Patch #44 - 1997/6/22 - XFree86 3.9g</A>
+<LI><A HREF="#xterm_43">Patch #43 - 1997/6/10 - XFree86 3.9d</A>
+<LI><A HREF="#xterm_42">Patch #42 - 1997/6/8 - XFree86 3.2Xl</A>
+<LI><A HREF="#xterm_41">Patch #41 - 1997/5/28 - XFree86 3.2Xl</A>
+<LI><A HREF="#xterm_40">Patch #40 - 1997/5/26 - XFree86 3.2Xl</A>
+<LI><A HREF="#xterm_39">Patch #39 - 1997/5/24 - XFree86 3.2Xl</A>
+<LI><A HREF="#xterm_38">Patch #38 - 1997/5/22 - XFree86 3.2Xh</A>
+<LI><A HREF="#xterm_37">Patch #37 - 1997/5/7 - XFree86 3.9a</A>
+<LI><A HREF="#xterm_36">Patch #36 - 1997/1/16 - XFree86 3.2r</A>
+<LI><A HREF="#xterm_35">Patch #35 - 1997/1/7 - XFree86 3.2o</A>
+<LI><A HREF="#xterm_34">Patch #34 - 1997/1/5 - XFree86 3.2o</A>
+<LI><A HREF="#xterm_33">Patch #33 - 1996/11/24 - XFree86 3.2</A>
+<LI><A HREF="#xterm_32">Patch #32 - 1996/11/21 - XFree86 3.2</A>
+<LI><A HREF="#xterm_31">Patch #31 - 1996/11/16 - XFree86 3.2</A>
+<LI><A HREF="#xterm_30">Patch #30 - 1996/11/16 - XFree86 3.2</A>
+<LI><A HREF="#xterm_29">Patch #29 - 1996/9/15 - XFree86 3.1.2Gb</A>
+<LI><A HREF="#xterm_28">Patch #28 - 1996/8/31 - XFree86 3.1.2F</A>
+<LI><A HREF="#xterm_27">Patch #27 - 1996/8/21 - XFree86 3.1.2Ek</A>
+<LI><A HREF="#xterm_26">Patch #26 - 1996/8/20 - XFree86 3.1.2Ei</A>
+<LI><A HREF="#xterm_25">Patch #25 - 1996/8/18 - XFree86 3.1.2Ei</A>
+<LI><A HREF="#xterm_24">Patch #24 - 1996/8/11 - XFree86 3.1.2Ee</A>
+<LI><A HREF="#xterm_23">Patch #23 - 1996/7/31 - XFree86 3.1.2Ec</A>
+<LI><A HREF="#xterm_22">Patch #22 - 1996/7/26 - XFree86 3.1.2Ec</A>
+<LI><A HREF="#xterm_21">Patch #21 - 1996/7/24 - XFree86 3.1.2Ec</A>
+<LI><A HREF="#xterm_20">Patch #20 - 1996/7/24 - XFree86 3.1.2Ec</A>
+<LI><A HREF="#xterm_19">Patch #19 - 1996/7/21 - XFree86 3.1.2Ec</A>
+<LI><A HREF="#xterm_18">Patch #18 - 1996/7/18 - XFree86 3.1.2Ec</A>
+<LI><A HREF="#xterm_17">Patch #17 - 1996/7/2 - XFree86 3.1.2Eb</A>
+<LI><A HREF="#xterm_16">Patch #16 - 1996/6/25 - XFree86 3.1.2Ea</A>
+<LI><A HREF="#xterm_15">Patch #15 - 1996/5/29 - XFree86 3.1.2E</A>
+<LI><A HREF="#xterm_14">Patch #14 - 1996/5/12 - XFree86 3.1.2Dj</A>
+<LI><A HREF="#xterm_13">Patch #13 - 1996/4/23 - XFree86 3.1.2Df</A>
+<LI><A HREF="#xterm_12">Patch #12 - 1996/3/16 - XFree86 3.1.2Dc</A>
+<LI><A HREF="#xterm_11">Patch #11 - 1996/3/5 - XFree86 3.1.2Db</A>
+<LI><A HREF="#xterm_10">Patch #10 - 1996/2/14 - XFree86 3.1.2Cd</A>
+<LI><A HREF="#xterm_09">Patch #9 - 1996/2/10 - XFree86 3.1.2Cb</A>
+<LI><A HREF="#xterm_08">Patch #8 - 1996/2/9 - XFree86 3.1.2Cb</A>
+<LI><A HREF="#xterm_07">Patch #7 - 1996/1/28 - XFree86 3.1.2n</A>
+<LI><A HREF="#xterm_06">Patch #6 - 1996/1/8</A>
+<LI><A HREF="#xterm_05">Patch #5 - 1996/1/7</A>
+<LI><A HREF="#xterm_04">Patch #4 - 1996/1/7</A>
+<LI><A HREF="#xterm_03">Patch #3 - 1996/1/7</A>
+<LI><A HREF="#xterm_02">Patch #2 - 1996/1/7</A>
+<LI><A HREF="#xterm_01">Patch #1 - 1996/1/6</A>
+</UL>
+
+<H1><A NAME="xterm_66">Patch #66 - 1998/2/16 - XFree86 3.9Ad and 3.3.1d</A></H1>
+
+This fixes the problem reported with failure to build the <EM>resize</EM>
+program (BSDI, OSF/1) due to not having <termcap.h>, by changing the
+ifdef to one that would be set only if the file exists (not currently
+specified, except by the standalone configure script). We do not really need
+to include <termcap.h> to build, but only for a clean compile, since it
+may declare the tgetent() prototype.
+
+I also updated the man-page for <EM>resize</EM>, since I had recently noticed
+that it can be used to resize <EM>xterm</EM> using the "Sun" control sequences
+option.
+
+<H1><A NAME="xterm_65">Patch #65 - 1998/2/14 - XFree86 3.9Ad and 3.3.1c</A></H1>
+
+This is a small patch to xterm's 8-bit terminal description. I noticed
+while testing ncurses that I had specified the wrong (VT100-style) codes
+for the F1-F4. Xterm only uses VT220-style function keys in 8-bit mode.
+
+<H1><A NAME="xterm_64">Patch #64 - 1998/2/8 - XFree86 3.9Ad</A></H1>
+
+This fixes the following problems with xterm:
+<UL>
+ <LI>save/restore the ANSI foreground and background colors with the other
+ visible attributes in the save-cursor and restore-cursor operations.
+ This works around a problem with vim, which apparently assumed that
+ switching between the normal and alternate screens resets the colors
+ (reported by Jim Battle <jb@chromatic.com>).
+<P>
+ It would be nice to implement save/restore cursor as a stack (and
+ solve this type of problem completely), but that would lead to
+ incompatibility with applications which assume they are running with a
+ VT100 or VT220.
+
+ <LI>corrects behavior of a restore-cursor operation which does not
+ follow a save-cursor (it is supposed to set the character sets
+ to a known initial state).
+
+ <LI>extends the sunKeyboard resource (and menu toggle) to modify the
+ home, end and delete keys on a Sun or PC editing keypad, making them
+ generate codes compatible with DEC VT220's Find, Select and Remove
+ keys.
+
+ <LI>corrects a length in checking command-line options, which caused the
+ "-help" message to not work when X was not running.
+
+ <LI>adds some detail to the man-page (requested by Jason Bacon
+ <acadix@execpc.com>)
+
+ <LI>modify the standalone configure script to ignore the broken nsl and
+ socket libraries on IRIX 6.2 (the ones on 5.2 also are broken, so
+ this change just widens the check for the system version number).
+</UL>
+
+<H1><A NAME="xterm_63">Patch #63 - 1998/2/5 - XFree86 3.9Ad</A></H1>
+
+This is another patch from Bjorn Helgaas <helgaas@rsn.hp.com>, which I've
+reviewed (and learned some). Following are his notes:
+<P>
+I poked around some more and finally got xterm-62 to build and run
+cleanly on HP-UX 10.20. Here are the patches. They look sort of
+ugly, so here's a little explanation:
+<UL>
+ <LI>aclocal.m4: Removed side effects from the AC_CACHE_VAL
+ commands in CF_FUNC_TGETENT. Previously, LIBS was set inside
+ AC_CACHE_VAL, which worked fine the first time configure was
+ run, but failed if there were cached values.
+
+ <LI>aclocal.m4: Added temporary setting of LIBS before
+ AC_TRY_LINK in CF_FUNC_TGETENT. Previously, the last value set
+ by the AC_TRY_RUN loop was used, so only -lcurses was checked.
+
+ <LI>configure.in: Added temporary setting of CPPFLAGS before
+ AC_CHECK_HEADERS for X11 files. Previously <X11/DECkeysym.h>
+ and <X11/Xpoll.h> were found only if they were in the compiler's
+ default include directories, even if `--x-includes=DIR' had been
+ used or AC_PATH_XTRA had found them elsewhere.
+</UL>
+The problem on HP-UX was that we were linking with -lcurses rather than
+-ltermcap due to the second bullet above, and apparently something in
+HP-UX curses is broken. This seems very strange, because the only thing
+used is tgetent, which should affect any tty/pty configuration, but I
+lost interest in tracking down the exact problem.
+
+<H1><A NAME="xterm_62">Patch #62 - 1998/1/23 - XFree86 3.9Ac</A></H1>
+
+This is a patch mostly by Bjorn Helgaas <helgaas@dhc.net> (I added the
+os2main.c change, and a little of the documentation). From Bjorn's
+description:
+<UL>
+ <LI>If you use the "-hc <color>" option or set the "highlightColor"
+ resource, text is highlighted by changing only the background color,
+ rather than using reverse video. I find this easier to read,
+ especially when selecting multi-colored text, and it is similar to
+ the way netscape shows selections.
+
+ <LI>Most of the code changes are under "#if OPT_HIGHLIGHT_COLOR". The
+ principal exception is in screen.c, where I added a couple calls to
+ resetXtermGC(). This seems like it could be a bug even without
+ the color highlighting changes (though I don't pretend to understand
+ all the logic).
+</UL>
+
+<H1><A NAME="xterm_61">Patch #61 - 1998/1/17 - XFree86 3.9Ac</A></H1>
+
+This patch modifies the reset behavior of xterm slightly:
+<UL>
+ <LI>change the terminfo entry so that rs1 (one of the strings used by
+ the 'reset' program) does a hard reset rather than switching
+ character sets. This is more in accord with other terminal
+ descriptions.
+
+ <LI>modifies the treatment of hard reset by the xterm program to
+ reset the saved lines.
+
+ <LI>corrects hard reset by also resetting user-defined keys (DECUDK).
+</UL>
+
+<H1><A NAME="xterm_60">Patch #60 - 1998/1/10 - XFree86 3.9Ab</A></H1>
+
+This fixes some minor bugs and adds new functionality:
+<UL>
+ <LI>add support for blinking text.
+<UL>
+ <LI>This does not actually cause the
+ text to flash, but text with the blink attribute can be displayed
+ in color, using new resources colorBL and colorBLMode.
+
+ <LI>If colors are not used, the blinking text will be displayed as
+ before (just like bold). The main purpose of this is to make
+ applications work properly when they assume the emulator supports
+ blinking text.
+
+ <LI>I did this by moving the per-cell LINEWRAPPED flag to a per-line
+ flag, to make room for the new BLINK flag. There were no per-line
+ flags, so this changes a lot of logic.
+</UL>
+
+ <LI>corrected missing save-cursor logic in the handling of SGR 1048
+ (the new control sequence I added in patch #54, 1997/10/17).
+ Reported by Darren Hiebert.
+
+ <LI>flush the output of the transparent printing after each line
+ Reported by Tomas Vanhala <vanhala@ling.helsinki.fi>.
+
+ <LI>correct the modes that are affected by save/restore cursor by adding
+ WRAPAROUND and PROTECTED.
+
+ <LI>corrected placement of one of the XSync calls that I added in patch
+ #51, 1997/9/15, which had the side-effect of writing on the window
+ border when the xterm was resizing from 132 to 80 columns.
+
+ <LI>work around an incompatibility of the XKB definition used in xterm
+ versus that symbol from IRIX 6.2's imake definitions (by adjusting
+ the standalone configure script).
+</UL>
+
+<H1><A NAME="xterm_59">Patch #59 - 1998/1/5 - XFree86 3.9Ab</A></H1>
+
+My last patch has an off-by-one error in the comparison for argc. Douglas
+Kosovic <douglask@dstc.edu.au> showed me where (he got a core dump).
+Also, I think this explains Clint Olsen's problem, but the symptoms were more
+subtle (EINVAL for a system call if the -display option is omitted).
+
+<H1><A NAME="xterm_58">Patch #58 - 1998/1/3 - XFree86 3.9Ab</A></H1>
+
+This patch does the following:
+<UL>
+ <LI>implement logic to permit xterm to work with proportional fonts.
+<UL>
+ <LI>Thomas Wolff
+ <Thomas.Wolff@sietec.de>
+ requested this (but it isn't exactly what he's asking
+ for - that's a more involved task).
+
+ <LI>I chose to do this by rendering the characters on a fixed pitch,
+ because it would not be useful for existing applications to display
+ varying numbers of characters on each line.
+
+ <LI>Except that this forces the display to be wider, it works reasonably
+ well. A couple of special cases (reverse + colorBD, for example)
+ do not display with proper colors, since the inter-character gaps
+ are painted with the background.
+</UL>
+
+ <LI>added a version number to the program (several people have requested
+ this).
+
+ <LI>make the -version and -help options interpreted before the program
+ attempts to open the display.
+
+ <LI>minor reorganization of the man-page (ordered the options, resources
+ and translations alphabetically - and eliminated some duplication).
+
+ <LI>corrected a misspelled filename in Makefile.in, and added a lint
+ rule.
+
+ <LI>updated the configure script to correct behavior when it cannot
+ find imake, as well as to fix the IRIX+gcc build (conflict with
+ /usr/include).
+
+ <LI>regenerated the configure script with a newer patch to autoconf
+ that fixes a problem with environment space vs the configure --help
+ message.
+</UL>
+<H1><A NAME="xterm_57">Patch #57 - 1997/12/26 - XFree86 3.9Aa</A></H1>
+
+This patch is mostly concerned with the standalone configure script; a few
+minor corrections are added:
+<UL>
+ <LI>add configure option --disable-tek4014, to allow xterm to be built
+ without the tek4014 emulation.
+
+ <LI>add configure option --with-terminal-type, to allow xterm to be
+ compiled with default $TERM value other than "xterm" (e.g.,
+ "xterm-16color") -- requested by Stephen Marley <stephen@memex.com>.
+
+ <LI>fix a typo in the configure --help message -- reported by Darren
+ Hiebert <darren@hmi.com>.
+
+ <LI>review diffs between main.c and os2main.c, to make them more alike.
+ (applies some minor bugfixes to OS/2's version).
+
+ <LI>add missing quotes in memmove/bcopy configure test
+</UL>
+
+
+<H1><A NAME="xterm_56">Patch #56 - 1997/11/28 - XFree86 3.9x</A></H1>
+
+This patch is based on analysis by Arfst Ludwig <arfst@luxor.IN-Berlin.DE>,
+who reported:
+<dl>
+<P>
+ Setting the following resources xterm (all current versions) receives a
+ segmentation fault on <Btn2Up> after scrolling:
+<PRE>
+ *XTerm*VT100*translations: #override \
+ ~Shift~Ctrl<Btn2Up>: insert-selection(PRIMARY, CUT_BUFFER0)\n\
+ Shift~Ctrl<Btn2Up>: insert-selection(CLIPBOARD, CUT_BUFFER1)\n\
+ ~Shift<BtnUp>: select-end(PRIMARY, CUT_BUFFER0)\n\
+ Shift<BtnUp>: select-end(CLIPBOARD, CUT_BUFFER1)
+</PRE>
+ (The above resources intention is to be able to paste the latest
+ selection even if the xterm was cleared.)
+<P>
+ And here is how it works (and a fix!): The widget given to the action
+ handler as first argument is not guaranteed to be a XtermWidget (it can
+ be the ScrollbarWidget). Instead of accessing the widget's member
+ directly XtDisplay gives the required pointer in a safe way.
+</dl>
+I noticed that this was not the only instance (by reading the code, and testing
+with his example), and extended the solution to check the widget-class to
+ensure that it is indeed xterm's widget class before attempting to use it in
+the context of translations.
+
+<H1><A NAME="xterm_55">Patch #55 - 1997/11/25 - XFree86 3.9x</A></H1>
+
+This fixes the segmentation violation noted by Rogier Wolff about a month
+ago. He'd set xterm to 400 (rows) by 150 columns, which broke because there
+were limited buffers (200 rows) used for juggling data when adding or deleting
+lines and for switching between alternate and normal screens. I replaced this
+by an allocated buffer.
+<P>
+The bug is simple to test if you set titeInhibit false.
+
+<H1><A NAME="xterm_54">Patch #54 - 1997/10/17 - XFree86 3.9s</A></H1>
+
+This patch does the following:
+<UL>
+ <LI>correct a minor placement problem with the right scrollbar.
+
+ <LI>implement a new set of control sequences for switching between the
+ normal and alternate VT100 screens. These work around the older
+ sequences limitation that required modification of the runtime
+ $TERMCAP to cooperate with the titeInhibit resource (that can't work
+ with terminfo). I do this by moving all of the functionality of the
+ rmcur terminfo capability into the control sequences.
+
+ <LI>implement the alternate-screen menu entry
+</UL>
+
+<H1><A NAME="xterm_53">Patch #53 - 1997/10/12 - XFree86 3.9r</A></H1>
+
+This patch adds a fix and implements a new feature (as well as some minor
+typos):
+<UL>
+ <LI>JCHANDRA@Inf.COM (JCHANDRA) noted that there was still a problem
+ with the wait call with the logging option. It hung when the logfile
+ was opened as a command-line option. I fixed this by moving the
+ StartLogging() call down past the place where I'd reset the setuid
+ mode. So the logfile is opened as the real user, without having
+ to fork.
+
+ <LI>Michael Rohleder <michael.rohleder@stadt-frankfurt.de> sent
+ me a patch which implements right-scrollbars for xterm. I used that
+ as a starting point, renamed the command-line options and reduced
+ the number of ifdef's.
+</UL>
+
+<H1><A NAME="xterm_52">Patch #52 - 1997/9/29 - XFree86 3.9q</A></H1>
+
+This patch addresses bugs and requests reported by
+<UL>
+ <LI>Bob Maynard <rmaynard@montana.com>,
+ <LI>Clint Olsen <olsenc@ichips.intel.com>,
+ <LI>JCHANDRA@Inf.COM (JCHANDRA),
+ <LI>Michael Schroeder <Michael.Schroeder@informatik.uni-erlangen.de>,
+ <LI>Pablo Ariel Kohan <pablo@memco.co.il>
+</UL>
+
+Some of the changes are interrelated (it was an unusually busy week).
+<UL>
+
+ <LI>change the default resource value for colorMode to true, matching
+ the Xterm.ad file.
+
+ <LI>correct behavior of 'ech' control, making the default and 0
+ parameters erase one character rather than to the end of line
+ (reported by Michael Schroeder).
+
+ <LI>add resource boldColors, command-line options +pc and -pc and
+ configure-script option to specify behavior of xterm's mapping bold
+ colors 0 through 7 to colors 8 through 15.
+ (request by Pablo Ariel Kohan).
+
+ <LI>add resource colorAttrMode to specify whether colorULMode and
+ colorBDMode can override the ANSI colors
+ (from a problem report by Clint Olsen).
+
+ <LI>correct a conflict between colorULMode/colorBDMode versus ANSI
+ colors, where exposure events would occasionally pick up the
+ former (e.g., colorBD) rather than ANSI colors. Testing the
+ colorAttrMode made this apparent, though it has been in the
+ code since 3.2A (patch #35 in Jan 1997).
+
+ <LI>correct two problems with the optional logging support. On Linux
+ at least, the waitpid call in creat_as hangs when the logging is
+ toggled from the popup menu. Also, the mktemp template has the wrong
+ number of X's (since X11R5!). Fixed the waitpid problem by
+ exploiting the fact that the setuid behavior is reset before the
+ popup menus are available.
+ (reported by Jayachandran C.).
+
+ <LI>add configure script options for building with the Xaw3d and neXtaw
+ libraries.
+
+ <LI>correct CF_IMAKE_CFLAGS standalone configure script macro, so that it
+ will pick up $(ALLDEFINES) rather than $(STD_DEFINES). This is
+ needed to make scrollbars work on Linux, since that uses narrow
+ prototypes.
+ (reported by Bob Maynard).
+
+ <LI>various minor updates to configure-script macros.
+</UL>
+
+<H1><A NAME="xterm_51">Patch #51 - 1997/9/15 - XFree86 3.9p</A></H1>
+
+Most of this patch is related to the standalone configure script, though
+there are fixes/enhancements as well:
+<UL>
+ <LI>add a new resource sunKeyboard, with associated command-line
+ option and menu-toggle that allows using a normal Sun or PC
+ keyboard to generated the complete DEC-style function keys
+ and keypad.
+
+ <LI>correct a reversed foreground/background test in the control
+ sequence that replies with the current SGR settings.
+
+ <LI>correct, by invoking XSync, a display problem that caused the
+ program to not properly update newly exposed areas when a font
+ change or 80/132 resize request was not completely accepted.
+
+ <LI>restructured autoconf macros (I made a library of all of the
+ macros across the complicated configure scripts I'm working on).
+
+ <LI>use the autoconf config.guess and config.sub scripts to better
+ identify the host-os.
+
+ <LI>improve the configure script that uses 'imake' as a fallback for
+ definitions.
+
+ <LI>correct several instances of unsigned/signed mixed expressions.
+</UL>
+
+I've tested the configure script on Linux, SunOS 4.1.3, Solaris 2.5.1,
+IRIX 5.2 and 6.2, AIX 3.2.5 and CLIX 3.1 (all but the last run properly
+as well).
+
+<H1><A NAME="xterm_50">Patch #50 - 1997/8/22 - XFree86 3.9m</A></H1>
+
+This is a collection of small fixes, and a couple of minor enhancements:
+<UL>
+ <LI>plug a security hole in the implementation of Media Copy (print)
+ by invoking setuid just before the main loop.
+
+ <LI>add an ifdef'd include for <sys/termio.h> for HP-UX, which allows
+ the program to process SIGWINCH events (this is a bug in X11R6.3)
+
+ <LI>add state-table entries for VT52 emulation to enter/exit keypad
+ application mode.
+
+ <LI>disable the popup-menu entry for 8-bit controls when the terminal-id
+ is less than 200 (e.g., VT52 or VT100).
+
+ <LI>ensure that the popup-menu entry for 8-bit controls is updated when
+ the application enables/disables this mode, including the response
+ to a full-reset.
+
+ <LI>implement VT300 DECBKM feature: set interpretation of the backarrow
+ key to either backspace or delete. The initial setting is via
+ resource; it can also be modified in the main popup menu.
+
+ <LI>implement VTxxx KAM (ISO AM), which allows a keyboard to be locked
+ (i.e., the terminal discards input).
+
+ <LI>implement VTxxx SRM, which is used to control local echoing of
+ input on the terminal.
+
+ <LI>add terminfo and termcap entries for xterm-8bit, a variation of
+ the xterm description that uses 8-bit control characters.
+
+ <LI>add fallback definitions for Imakefile to allow it to work on some
+ X11R5 systems that have no SpecialCObjectRule or ProgramTargetName
+ macros.
+
+ <LI>add .c.o and .c.i rules to standalone Makefile.in
+
+ <LI>correct order of -lXmu and -lXext in standalone configure script.
+
+ <LI>add configure script options to allow selective disabling of
+ active-icon, input-method and i18n code (mainly for users with X11R5
+ or an incomplete X11R6 configuration).
+
+ <LI>change menu-indices from #define's to enum values, thereby making
+ it work better with the ifdef's for logging and active-icon (the
+ X11R6.3 active-icon code is incorrectly ifdef'd; this corrects an
+ error introduced by incorporating that code).
+
+ <LI>correct minor compile errors in the configuration where active-icon
+ is not used.
+
+ <LI>add configure option to suppress echoing of long compiler commands
+
+ <LI>correct spelling of decTerminalID in configure script help message
+
+ <LI>use gcc __attribute__((unused)) to quiet warnings about unused
+ parameters when compiling with -W (to make it simpler to find the
+ real problems).
+</UL>
+
+<H1><A NAME="xterm_49">Patch #49 - 1997/8/10 - XFree86 3.9k</A></H1>
+
+This patch implements the VT100/VT220 Media Copy (i.e., print-screen) control
+sequences.
+
+<H1><A NAME="xterm_48">Patch #48 - 1997/7/26 - XFree86 3.9j</A></H1>
+
+This patch does the following (all but the first affect only the standalone
+configure script):
+<UL>
+ <LI>minor correction to positioning of underlines for small (e.g., 5x8)
+ font size.
+ <P>
+ The existing behavior allowed underlines to be drawn outside the
+ character-cell, so they weren't cleared properly under some
+ circumstances.
+
+ <LI>adds more special-case tokens to the standalone configure script's
+ imake-option filter (e.g., "&&", since a "make -n main.o" on my IRIX
+ system uses that shell construct).
+
+ <LI>adds a '--enable-logging' option for the standalone configure script.
+
+ <LI>adds check and ifdef's for the standalone configure script to allow
+ for building on platforms with X11R6, which lacks Xpoll.h (introduced
+ in X11R6.1).
+</UL>
+
+<H1><A NAME="xterm_47">Patch #47 - 1997/7/13 - XFree86 3.9i</A></H1>
+
+This patch does the following
+<UL>
+ <LI>corrects an indexing error in the doublesize character logic
+ (button.c) that caused core dump (this was reported by J. Wunsch).
+ <LI>corrects the logic of ShowCursor when it is painting in a doublesize
+ cell (charproc.c).
+ <LI>corrects, according to vttest, the behavior when switching to
+ doublesize characters and back again (doublechr.c).
+ <LI>adds cbt (back_tab) to the terminfo description (this was something
+ that I'd overlooked as applicable to curses optimization last
+ summer).
+ <LI>corrects, for the standalone xmc test, the logic for disabling xmc.
+</UL>
+
+<H1><A NAME="xterm_46">Patch #46 - 1997/7/4 - XFree86 3.9h</A></H1>
+
+This is a patch to provide test-support for some work I'm doing on ncurses. It
+does not modify the normal configuration of xterm; the code is compiled if the
+standalone configure option "--enable-xmc-glitch" is specified.
+
+<H1><A NAME="xterm_45">Patch #45 - 1997/7/2 - XFree86 3.9h</A></H1>
+
+This fixes the problem reported with xterm's cursor color versus the background
+(the second chunk in this patch) and also removes some duplicate initialization
+of the cursor GC's. If the cursor color at startup is the same as the
+background, then xterm will use the reverse GC, ignoring the setting of the
+colorMode resource.
+
+<H1><A NAME="xterm_44">Patch #44 - 1997/6/22 - XFree86 3.9g</A></H1>
+
+This implements the first part of the VT100 doublesize characters for xterm,
+as well as fixing a handful of bugs:
+<UL>
+ <LI>the doublesize character support uses the normal font (using scaled
+ fonts will be another patch) with blanks to simulate doublesize
+ characters. This patch does most of the global changes that'll be
+ required. I've hidden most of the details in macros and ifdefs so
+ it's easy to configure out (part of the patch is a configure option
+ for that purpose).
+
+ <LI>corrected limits in DeleteChar() function -- it's always ignored the
+ size of the left border and scrollbar. I noticed this when working
+ on the doublesize characters since the glitch was doubled in size
+ (i.e., it wrapped some garbage around the right margin).
+
+ <LI>corrected 'memmove()' logic, for standalone builds (it referenced a
+ malloc wrapper from my development library).
+
+ <LI>add a check for HideCursor() to prevent repeated screen updates
+ (which can cause a spurious cursor glitch to appear, e.g., during
+ scrolling). I noticed this with the 3.2A version (but only a few
+ weeks ago, when I started working on this patch).
+</UL>
+
+<H1><A NAME="xterm_43">Patch #43 - 1997/6/10 - XFree86 3.9d</A></H1>
+
+Here's a fix for two problems:
+<UL>
+ <LI>modify handling of tgetent results in xterm and resize programs to
+ make them tolerant of missing termcap file, or unknown terminal name.
+ In this scheme, an explicit "-tn" option will succeed, overriding
+ the fallback list.
+
+ <LI>a nit in the configure script (log extra information to help diagnose
+ which case of the test-compile of tgetent was used).
+</UL>
+
+<H1><A NAME="xterm_42">Patch #42 - 1997/6/8 - XFree86 3.2Xl</A></H1>
+
+Bram Moolenaar reported that the cursor color changed unexpectedly while
+scrolling. The cause was that it used the same GC's as the logic that draws
+the ANSI colors. The bug only appears if the cursorColor resource isn't set,
+and has been present since the initial implementation early last year. (The
+same bug also appears in rxvt ;-). Here's a fix.
+
+<H1><A NAME="xterm_41">Patch #41 - 1997/5/28 - XFree86 3.2Xl</A></H1>
+
+Some nits found by Darren Hiebert (missing part of install-rule, incorrect
+assignment for --enable-color-mode option).
+
+<H1><A NAME="xterm_40">Patch #40 - 1997/5/26 - XFree86 3.2Xl</A></H1>
+
+Patch for the configure script's logic for obtaining imake predefined
+symbols.
+
+<H1><A NAME="xterm_39">Patch #39 - 1997/5/24 - XFree86 3.2Xl</A></H1>
+
+This patch does the following:
+<UL>
+ <LI>integrate the 16-color change for 'xterm'
+
+ <LI>minor fixes/clarification of tgetent in terminfo vs termcap to
+ 'resize'
+</UL>
+
+(both changes also modify the configure script)
+
+<H1><A NAME="xterm_38">Patch #38 - 1997/5/22 - XFree86 3.2Xh</A></H1>
+
+This implements a simple configuration script with autoconf (to which I'll
+add more options later). It does the following:
+<UL>
+ <LI>configures xterm to build with X11R5 (at least on SunOS 4.1, Solaris
+ 2.4, possibly IRIX - sorry network was down today, but I did test
+ an earlier version yesterday).
+
+ <LI>enables/disables the configuration ifdefs for ANSI color and VT52
+ emulation.
+</UL>
+It does not make tests for the things that imake does (that's another project),
+instead it uses a hybrid of the autoconf tests for libraries and adds imake's
+compiler options (which are necessary in some cases to get main.c to compile).
+
+<H1><A NAME="xterm_37">Patch #37 - 1997/5/7 - XFree86 3.9a</A></H1>
+
+This corrects a minor, but annoying error in the vt220 emulation: the DECUDK
+is only supposed to be interpreted for _shifted_ function keys.
+
+<H1><A NAME="xterm_36">Patch #36 - 1997/1/16 - XFree86 3.2r</A></H1>
+
+This corrects something that I overlooked in patch #27 (21-aug-1996), which is
+that when trimming the region to be repainted for the highlightSelection
+resource of xterm, I still have to paint the background past the highlighted
+region. This only happens when I first do a selection in a window that's
+partly off-screen, then move the window on-screen.
+
+<H1><A NAME="xterm_35">Patch #35 - 1997/1/7 - XFree86 3.2o</A></H1>
+
+This patch does the following:
+<UL>
+ <LI>combines the coding for foreground and background colors into a
+ single byte, reducing the memory required to store saved-lines in
+ color. (I'll take back that byte in a following patch to use to
+ ensure the character-set, so there's no long-term decrease in memory
+ use).
+
+ <LI>modifies the PF1-PF4 coding in termcap/terminfo. Because xterm is
+ still by default emulating vt100, the function key codes are
+ vt100-compatible (I overlooked this in patch #31).
+
+ I also reformatted the whole terminfo file into a single-column,
+ for consistency.
+
+ <LI>adds an interim xterm-vt220 description to accommodate the old and new
+ styles of function-keys (though probably it'd be better to drop the
+ old-style altogether).
+</UL>
+
+<H1><A NAME="xterm_34">Patch #34 - 1997/1/5 - XFree86 3.2o</A></H1>
+
+This patch does the following:
+<UL>
+ <LI>implement DECSTR (soft terminal reset). The biggest diff is due to
+ adding another state table (note that there's only one useful state
+ here, but it's only 256 bytes rather than 1k as it would have been
+ before I reduced the size of state entries).
+
+ <LI>some minor tidying up (e.g., signed/unsigned use bitcpy, MODE_DECCKM,
+ resetColor, resetCharsets). More is done in patch #35.
+</UL>
+
+I got the description of DECSTR from a vt420 user's manual. I'll do some
+testing with vttest to ensure that there's nothing else to do than what was
+documented.
+
+<H1><A NAME="xterm_33">Patch #33 - 1996/11/24 - XFree86 3.2</A></H1>
+
+This adds to the reset-fix by Matthieu Herrb <Mathieu.Herrb@mipnet.fr> a
+small change to make xterm able to output 8-bit characters in VT100 mode.
+
+Applications that run on real VT100's don't do that anyway, and this feature
+should be removed sometime after finishing off the VT220 emulation (VT220's can
+do 8-bit characters). That would be a good time to change the default
+terminal-id to 220.
+
+<H1><A NAME="xterm_32">Patch #32 - 1996/11/21 - XFree86 3.2</A></H1>
+
+This implements the REP (repeat) control for xterm. That isn't part of the DEC
+VTxxx series, but is defined in ISO 6429. (Note that the base xterm terminal
+description is <EM>not</EM> changed -- I added a variant, "xterm-rep").
+
+<H1><A NAME="xterm_31">Patch #31 - 1996/11/16 - XFree86 3.2</A></H1>
+
+This implements vt52 emulation in xterm (ifdef'd so it can be removed).
+I've been using it for testing for the past month or so.
+
+<H1><A NAME="xterm_30">Patch #30 - 1996/11/16 - XFree86 3.2</A></H1>
+
+From bug-report by <auroux@clipper.ens.fr> (Denis Auroux), missing reset to
+ground state. I checked through the rest of <EM>that</EM> table and found another,
+in the unimplemented MC (screen print).
+
+<H1><A NAME="xterm_29">Patch #29 - 1996/9/15 - XFree86 3.1.2Gb</A></H1>
+
+This patch does the following:
+<UL>
+ <LI>corrects the restoration of color for bold/underline color mode
+
+ <LI>adds a resource 'decTerminalID' to control the reporting level of
+ xterm (e.g., VT100, VT220).
+
+ <LI>uses the new resource to implement/correct the DA1, DA2 and
+ DECRPTUI reports.
+
+ <LI>change valid-response code in DECRQSS from 0 to 1 (the manual says 0,
+ but the VT420 terminal I've been testing on says 1).
+</UL>
+
+All of these changes are based on vttest 2.6
+<P>
+(Most of the volume in the patch is to add 2 more state tables for parsing
+the 2nd/3rd device-attribute controls).
+
+<H1><A NAME="xterm_28">Patch #28 - 1996/8/31 - XFree86 3.1.2F</A></H1>
+
+This patch corrects the following reported by Roland Rosenfeld
+<roland@spinnaker.rhein.de>:
+<UL>
+ <LI>handle SGR 22, 24 and 25 in combination with colorUL and colorBD
+ resources. Also noted & fixed reset of colored underline/bold
+ with SGR 0.
+
+ <LI>a typo in the termcap (missing '['), from 3.1.2Dj (my error)
+</UL>
+
+Roland also complained that he couldn't use box characters with
+<PRE>
+ -adobe-courier-bold-r-normal--12-120-75-75-m-70-iso8859-1
+</PRE>
+but that's a known xterm limitation (the box characters must be part of the
+font, in the first 32 locations).
+
+<H1><A NAME="xterm_27">Patch #27 - 1996/8/21 - XFree86 3.1.2Ek</A></H1>
+
+This patch fixes one of my long-term gripes: xterm's selection doesn't clearly
+show what's being selected (as per David's request, it's controlled by a
+resource, which defaults to the older behavior).
+
+<H1><A NAME="xterm_26">Patch #26 - 1996/8/20 - XFree86 3.1.2Ei</A></H1>
+
+Here's a patch to fix a problem with xterm's cut/paste and another to modify
+the appearance of the highlighting while selecting. (The changes are
+independent, so you can see if the change to screen.c is desirable).
+
+<H1><A NAME="xterm_25">Patch #25 - 1996/8/18 - XFree86 3.1.2Ei</A></H1>
+
+Here's a correction for two minor bugs that I picked up in testing, plus
+some lint (from Solaris 2.5) where NULL was used incorrectly:
+<UL>
+ <LI>make the second alternate font the same as the first (that's what
+ vt420 and dtterm do)
+
+ <LI>corrected DECSCL report when DECSCL hasn't been set (i.e., don't
+ return a '60').
+</UL>
+
+<H1><A NAME="xterm_24">Patch #24 - 1996/8/11 - XFree86 3.1.2Ee</A></H1>
+
+This patch does several things. In effect, xterm can (I think) do a reasonably
+good job of emulating vt220 and vt320 terminals (as well as it was doing
+vt100, at any rate ;-).
+<P>
+It does NOT do:
+<UL>
+ <LI>soft fonts
+
+ <LI>rigel or sixel graphics
+</UL>
+<P>
+Anyway, I:
+<UL>
+
+ <LI>added ECH, CPL, CNL, SU, SD, CBT, CHT controls
+
+ <LI>added popup-menu for switching between DEC and Sun function keys.
+ (corrected alignment err wrt logging entry at that point).
+
+ <LI>make xterm recognize both 8-bit and 7-bit controls (including
+ popup menu for switching modes).
+
+ <LI>add user-definable function keys (aka DECUDK)
+
+ <LI>support concealed text
+
+ <LI>support protected text (both ISO compatible and DEC compatible -
+ that's not the same thing, btw), with SPA, EPA, DECSCA, DECSED,
+ DECSEL controls.
+
+ <LI>implement DECSCL.
+</UL>
+<P>
+I'll be continuing to test this patch for a while, but don't expect to add any
+new functionality (it passes all of the current tests I've built in vttest, but
+I need to make more tests)..
+
+<H1><A NAME="xterm_23">Patch #23 - 1996/7/31 - XFree86 3.1.2Ec</A></H1>
+
+This removes the blinking cursor I added last week (for performance reasons).
+Time-permitting, I'll revisit this after 3.2 is released (there <EM>will</EM> be more
+work after XFree86 3.2, I assume).
+
+<H1><A NAME="xterm_22">Patch #22 - 1996/7/26 - XFree86 3.1.2Ec</A></H1>
+
+I looked more closely at my "double-negative" and realized that I had been
+confused by the default color scheme (black on white) in combination with
+reverse video. However, I did see that the original_fg and original_bg data
+weren't really used - so I removed that logic.
+<P>
+Also:
+<UL>
+ <LI>during initialization, check if ANSI colors are set with non fg/bg
+ values, disable color mode if not. This makes xterm tolerant of
+ applications that allocate the whole color map.
+
+ <LI>implemented blinking cursor (default is <EM>off</EM>)
+</UL>
+
+<H1><A NAME="xterm_21">Patch #21 - 1996/7/24 - XFree86 3.1.2Ec</A></H1>
+
+This patch does the following:
+<UL>
+ <LI>fixes some minor typography in the control-sequences documentation
+ (it didn't occur to me til I'd sent the last patch that I could use
+ ghostview for previewing the troff output ;-)
+
+ <LI>adjusts the shell's background color in ReverseVideo so that flicker
+ in resizing is reduced
+
+ <LI>adds an ifdef OPT_ISO_COLORS to allow configuring xterm without
+ the ISO color support (saves a lot of memory)
+
+ <LI>used that ifdef to isolate/modify logic so that if the user doesn't
+ have the colorMode enabled, then ISO color support is disabled (saving
+ memory).
+ <P>
+ (If anyone needs numbers, I had savedLines set to 2000, and found
+ a reduction from ~700k to ~400k of allocated memory, according to
+ Purify).
+</UL>
+
+<H1><A NAME="xterm_20">Patch #20 - 1996/7/24 - XFree86 3.1.2Ec</A></H1>
+
+This documents the changes in control sequences for window operations that
+I added in my previous patch. I'm testing another patch that allows the
+user to use less memory if colors aren't needed.
+
+<H1><A NAME="xterm_19">Patch #19 - 1996/7/21 - XFree86 3.1.2Ec</A></H1>
+
+This patch does the following:
+<UL>
+ <LI>fixes the core dump that I reported on IRIX 5.2 (in main.c)
+ <P>
+ (it's worth noting that this bug exists in X11R6.1, so I'd like
+ to assume that someone's already submitted a fix to X Consortium...)
+
+ <LI>change the interpretation of zero rows or columns in a resize-window
+ request to use the root window's size (looking more carefully at
+ dtterm, that seems to be what it does).
+
+ <LI>change some memmove calls to memcpy for slightly better performance.
+ (also, a couple of memset calls to bzero - Quantify says bzero runs
+ 20% faster, I assume because there's one less argument).
+
+ <LI>interpret character sets 1 and 2 (so that vttest gives a reasonable
+ result) Both rxvt and dtterm do something equivalent.
+
+ <LI>fix a minor memory leak in the logic that retrieves the window or
+ icon names (Purify found this for me while I ran vttest).
+</UL>
+
+<H1><A NAME="xterm_18">Patch #18 - 1996/7/18 - XFree86 3.1.2Ec</A></H1>
+
+This implements the following:
+<UL>
+ <LI>escape sequences that act like the CDE dtterm's window operations
+ (though I have implemented the default width and height -- I've seen
+ a rather buggy dtterm running that seems to treat width=0 or height=0
+ literally -- maybe that's a feature, not a bug?)
+
+ <LI>minor tweak to the screen-repainting when resizing (I still cannot
+ entirely get rid of flicker).
+
+ <LI>still more fixes to terminfo & termcap (I corrected my error for
+ the hpa code and added some other stuff by comparing to ncurses'
+ description and rxvt's).
+
+ <LI>a tweak to the patch by Michael Rohleder for the color translation
+
+ <LI>re-order attribute codes to allow later implementation of protected
+ fields (dtterm supposedly does this; it's probably more useful than
+ blinking or invisible text -- that uses up all of the available bits
+ without changing the attribute scheme radically).
+</UL>
+
+<H1><A NAME="xterm_17">Patch #17 - 1996/7/2 - XFree86 3.1.2Eb</A></H1>
+
+This patch implements for xterm several minor features from ISO 6429 which are
+useful for terminfo applications. The HPA and VPA control sequences allow
+cursor movement along a row or column, cutting down a little on the characters
+transmitted. The other codes allow resetting specific graphic rendition
+attributes without modifying the other attributes.
+
+(now if someone just had time to implement blinking cursors...)
+
+<H1><A NAME="xterm_16">Patch #16 - 1996/6/25 - XFree86 3.1.2Ea</A></H1>
+
+Adam Tla/lka <atlka@pg.gda.pl> told me a couple of weeks ago that I'd missed
+some of the background coloring in xterm. I investigated, and found that while
+I'd picked up on the clear-to-bottom and clear-to-end-of-line operations, I'd
+overlooked the insert/delete lines. Just so I wouldn't overlook any more of
+these, I updated a copy of vttest to test ISO colors and bce (background color
+erase). This patch introduces a new function, ClearCurBackground, whose calls
+replace the direct XClearArea calls that I'd overlooked.
+
+(There's also a few compiler warnings fixed, etc ;-)
+
+<H1><A NAME="xterm_15">Patch #15 - 1996/5/29 - XFree86 3.1.2E</A></H1>
+
+This fixes the problem reported by David Dawes, by making the 50msec select
+timeout for the Xaw3d arrow scrollbar a resource. (I made it a boolean for a
+variety of reasons -- to make it a number, you'd need an additional resource,
+to avoid breaking the logic).
+
+<H1><A NAME="xterm_14">Patch #14 - 1996/5/12 - XFree86 3.1.2Dj</A></H1>
+
+This patch brings the termcap and terminfo descriptions for xterm up to date.
+I made the following changes:
+<UL>
+ <LI>reformatted the terminfo description in a single-column (this is ok
+ for terminfo, and will simplify future patches -- can't do that for
+ termcap, since it would impact buffer requirements on some systems).
+
+ <LI>omitted obsolete features in termcap to save a little space (bs, pt)
+
+ <LI>added color capabilities to termcap (ut, Co, NC, op, AB, AF)
+
+ <LI>corrected some capabilities (vi, ve)
+
+ <LI>added 'st' (set tab)
+
+ <LI>reduced function keys in termcap for 'xterm' to 12 because color
+ capabilities makes that description larger than 1023 characters.
+
+ <LI>created new termcap name 'xtermm' (monochrome) to match the terminfo
+ list, and make that description have 20 function keys.
+
+ <LI>added corresponding color capabilities to terminfo (bce, colors,
+ pairs, op, ncv, setab, setaf)
+
+ <LI>corrected corresponding capabilities in terminfo (civis, cnorm,
+ rmcup, smcup)
+
+ <LI>added capabilities (el1, hts)
+
+ <LI>in both, corrected home/end keys to match the code correction made
+ by Thomas Mueller in 3.1.2Bk
+
+ => (I'm still considering modifying the code & description to match
+ the rxvt program).
+</UL>
+
+<H1><A NAME="xterm_13">Patch #13 - 1996/4/23 - XFree86 3.1.2Df</A></H1>
+
+This corrects my earlier changes for colors - the inner border of the xterm was
+getting painted with the wrong color, since I'd moved the call to set the
+background into the logic that tracks SGR information.
+
+<H1><A NAME="xterm_12">Patch #12 - 1996/3/16 - XFree86 3.1.2Dc</A></H1>
+
+This corrects a memory leak in xterm that happens whenever one switches fonts.
+
+<H1><A NAME="xterm_11">Patch #11 - 1996/3/5 - XFree86 3.1.2Db</A></H1>
+
+This patch corrects the behavior of the ANSI colors in xterm when reverse
+video is used, as well as some other lesser sins:
+<UL>
+ <LI>button.c
+<UL>
+ <LI>(compiler warnings: shadowing of 'time', redundant cast)
+</UL>
+
+ <LI>charproc.c
+<UL>
+ <LI>renamed screen.colors[] array to screen.Acolors[] to more
+ easily distinguish the non-ANSI colors from the ANSI colors.
+
+ <LI>moved logic of SGR_Save() into VTInitialize, getting rid of
+ local private variables original_fg and original_bg.
+
+ <LI>moved some logic into getXtermForeground and getXtermBackground
+ from SGR_Foreground, SGR_Background, etc.
+
+ <LI>corrected misleading 'row' to 'col' in case for CUF, CUB
+ sequences.
+</UL>
+
+ <LI>ctlseqs.ms
+ <LI>xterm.man
+<UL>
+ <LI>(correct a misconception which I'd added that the color0
+ through color6 resource values apply to non-ANSI colors)
+</UL>
+
+ <LI>ptyx.h
+<UL>
+ <LI>added original_fg, original_bg to TScreen structure.
+</UL>
+
+ <LI>scrollbar.c
+<UL>
+ <LI>(compiler warnings: redundant cast)
+</UL>
+
+ <LI>util.c
+<UL>
+ <LI>new functions getXtermForeground and getXtermBackground replace
+ the macros GET_FG and GET_BG, with the added functionality of
+ checking for the reverse-video status of xterm.
+
+ <LI>in ReverseVideo, swap the SGR foreground and background colors
+ also.
+</UL>
+</UL>
+
+<H1><A NAME="xterm_10">Patch #10 - 1996/2/14 - XFree86 3.1.2Cd</A></H1>
+
+I observed an occasional glitch in the xterm's color behavior; a clear to end
+of line would get a color that had been used in a program that supposedly reset
+colors. I traced this down to the way xterm was modifying colors of GC's on
+the fly; it didn't restore the original color of the GC, even though it would
+later be used in functions (such as ClearRight) that assumed (my error) that
+the GC would have the current foreground or background color.
+<P>
+I fixed this by resetting the GC's colors with a new function 'resetXtermGC()',
+and direct calls on SGR_Foreground/SGR_Background, as appropriate and using a
+new function 'updatedXtermGC()' to encapsulate the logic that modifies the GC's
+color. (I also removed some commented-out code that was trying to do this --
+the problem was a little more obscure).
+
+<H1><A NAME="xterm_09">Patch #9 - 1996/2/10 - XFree86 3.1.2Cb</A></H1>
+
+This patch fixes the remaining problems that I had making xterm run with x11r5,
+as well as a couple of other bugs. It follows my patch from yesterday, that
+added ifdef's for some of the input-method resources.
+<UL>
+ <LI>corrected ifdef's that suppress the input-method code (doesn't
+ exist in my x11r5, and xterm works adequately without it).
+
+ <LI>corrected fallback definition for 'Select()' macro (oops: I'd
+ copied the wrong text...)
+
+ <LI>moved the declarations for the fd_set variables to data.[ch]
+
+ <LI>corrected an ifdef in resize.c (sunos 4.x doesn't have termcap.h)
+
+ <LI>corrected (in main.c) some unused/orphaned variables.
+</UL>
+
+<H1><A NAME="xterm_08">Patch #8 - 1996/2/9 - XFree86 3.1.2Cb</A></H1>
+
+This is mostly a documentation patch for xterm. It describes the color control
+sequences in more detail, and documents some other features of xterm that
+aren't described elsewhere.
+<P>
+I've also added a couple of ifdef's to fix (part of) the problem that I'm
+working on (making the program work properly on x11r5, where I'm doing memory
+testing -- I have a "good" version from mid-January, but my resync version
+doesn't work properly on x11r5). I'm not done with <EM>that</EM> yet.
+
+<H1><A NAME="xterm_07">Patch #7 - 1996/1/28 - XFree86 3.1.2n</A></H1>
+
+I did a (clean) build of 3.1.2n on Linux 1.2.13 (ELF). I've got an S3 card.
+<P>
+This fixes the following in the 3.1.2n xterm:
+<UL>
+ <LI>initialize cur_foreground, cur_background in charproc.c (Purify
+ told me they weren't initialized).
+
+ <LI>add interpretation of codes 39, 49, to reset background and
+ foreground to default value (I'm told that ISO 6429 does this; but I
+ don't have a written reference -- yet -- can anyone help here?).
+ Anyway, rxvt does it, and it'll solve my remaining color management
+ problems.
+
+ <LI>shadowing of 'time' in menu.c
+
+ <LI>'Cardinal' vs 'int' in scrollbar.c
+
+ <LI>several changes to permit compile with X11R5 (the system that I've
+ got Purify on won't be upgraded to X11R6 for a long time).
+</UL>
+<P>
+I built this version (with a minor nit that I'll patch soon) on SunOS 4.1.3 so
+that I can test it some more with Purify.
+<P>
+<EM>btw</EM>:
+the changes made in Xpoll.h won't work on some older systems, because
+ fd_set isn't a defined type (I've got one machine at least that this
+ applies to).
+
+<H1><A NAME="xterm_06">Patch #6 - 1996/1/8</A></H1>
+
+This patch does all of the SGR foreground/background fixes (i.e., clearing the
+screen after an SGR color is set causes that color to be used in the foreground
+and/or background). If the FG_COLOR and/or BG_COLOR flags aren't set, then the
+xterm foreground and background default to the window's values. This usage is
+consistent with various types of hardware (especially the IBM PC), and is also
+used in rxvt.
+<UL>
+ <LI>charproc.c:
+<UL>
+ <LI>add/use new macros GET_FG, GET_BG - n/c.
+
+ <LI>add/use new functions SGR_Foreground() and SGR_Background()
+ to set corresponding colors in GC's, and to retain sense of
+ "original" colors.
+
+ <P>
+ => This makes redundant some of the corresponding logic
+ in HideCursor to set the foreground and background,
+ but I left it in since it <EM>may</EM> be fixing an unrelated
+ requirement.
+
+ <LI>set GC's in LoadNewFont() according to whether the SGR fg/bg
+ colors are active.
+
+ <P>
+ => This fixes some glitches in the accompanying resize,
+ that leaves parts of the window in the original
+ background color.
+</UL>
+
+ <LI>screen.c:
+<UL>
+ <LI>modified ClearBufRows() to use the SGR fg/bg colors if
+ they're set.
+
+ <LI>added function ScrnClearLines(), used this to replace
+ portions of ScrnInsertLine() and ScrnDeleteLine().
+ The new function uses the SGR fg/bg colors if they're
+ set.
+
+ <P>
+ => Otherwise, selection after an index or reverse index will
+ paint the wrong colors.
+
+ <LI>modified ScrnDeleteChar() and ScrnInsertChar()
+ to use SGR fg/bg colors.
+</UL>
+
+ <LI>util.c:
+<UL>
+ <LI>modified ClearRight() so that if either of the SGR fg/bg
+ colors is set, we don't bzero the attributes and color
+ arrays, but instead fill them with the appropriate codes.
+
+ <LI>modified ClearLeft to use SGR fg/bg colors.
+</UL>
+</UL>
+
+<H1><A NAME="xterm_05">Patch #5 - 1996/1/7</A></H1>
+
+This patch modifies the object code, by replacing indexing expressions with
+temporary variables with the full indexing expression. At first glance, this
+seems inefficient (it did to me ;-), until remembering comments made in the
+compilers newsgroups that trying to "help" the compiler doesn't really work
+that well. A good optimizing compiler can do a better job than the programmer
+can. (There's a moral in the use of 'register' variables also, but I won't fix
+those...).
+<P>
+Anyway, the revised code generates a smaller object...
+<UL>
+<LI>charproc.c:
+<UL>
+<LI>recode index expressions in ShowCursor() and HideCursor()
+ using SCRN_BUF_xxxxS macros - changes object.
+
+<LI>replace constant '4' by MAX_PTRS - n/c.
+</UL>
+
+<LI>ptyx.h:
+<UL>
+<LI>defined the SCRN_BUF_xxxxS macros in terms of BUF_xxxxS
+ macros, to pick up references to ScrnBuf data directly, and
+ added MAX_PTRS symbol to pick up those '4' constants strewn
+ about the code - n/c.
+</UL>
+
+<LI>screen.c:
+<UL>
+<LI>recode index expressions in ScreenWrite() using
+ SCRN_BUF_xxxxS macros - changes object.
+
+<LI>replace constant '4' by MAX_PTRS - n/c.
+
+<LI>use macros BUF_CHARS, BUF_ATTRS - n/c.
+
+<LI>cast calloc to 'Char *' to fix compiler warning on IRIX - n/c
+</UL>
+
+<LI>scrollbar.c:
+<UL>
+<LI>replace constant '4' by MAX_PTRS - n/c.
+
+<LI>cast calloc to 'Char *' to fix compiler warning on IRIX - n/c
+</UL>
+</UL>
+
+<H1><A NAME="xterm_04">Patch #4 - 1996/1/7</A></H1>
+When setting up for this phase, I saw that you'd corrected the bug that I found
+in ClearLeft. I decided to make this series of patches anyway, since
+readability never hurt (and there's the potential for finding another bug while
+reviewing this set).
+<UL>
+<LI>button.c:
+<UL>
+<LI>use SCRN_BUF_xxxxS macros - n/c
+</UL>
+<LI>charproc.c:
+<UL>
+<LI>use SCRN_BUF_xxxxS macros - n/c
+</UL>
+<LI>ptyx.h:
+<UL>
+<LI>added four macros: SCRN_BUF_CHARS, SCRN_BUF_ATTRS,
+ SCRN_BUF_FORES, SCRN_BUF_BACKS to represent the four
+ arrays that are derived from screen->buf.
+</UL>
+<LI>screen.c:
+<UL>
+<LI>use SCRN_BUF_xxxxS macros - n/c
+</UL>
+<LI>util.c:
+<UL>
+<LI>use SCRN_BUF_xxxxS macros - n/c
+</UL>
+</UL>
+<H1><A NAME="xterm_03">Patch #3 - 1996/1/7</A></H1>
+
+This is my third (and final cleanup) patch for xterm. It gets rid of the
+unused stuff, and converts several functions to static (thereby reducing their
+scope).
+<P>
+At this point, the only compile warnings I've got (on Linux) are those about
+the select arguments (int vs fd_set type), and a missing declaration for
+waitpid. Those both are hard to get right without autoconfigure.
+<P>
+The next patches will address the functional changes...
+<UL>
+<LI>Tekproc.c:
+<UL>
+<LI>changed several functions to 'static' that aren't used
+outside this module -- changes object
+</UL>
+<LI>charproc.c:
+<UL>
+<LI>changed several functions to 'static' that aren't used
+outside this module -- changes object
+<LI>deleted unused function unparsefputs -- changes object.
+</UL>
+<LI>main.c:
+<UL>
+<LI>changed several functions to 'static' that aren't used
+outside this module -- changes object
+<LI>ifdef'd out unused function 'consolepr()' -- changes object
+<LI>removed unused variable 'dummy_tio' -- changes object
+<LI>moved variable 'discipline' to quiet unused-warning -- changes object
+</UL>
+<LI>main.h:
+<UL>
+<LI>deleted unused definition of DEFBORDERWIDTH - n/c
+</UL>
+<LI>misc.c:
+<UL>
+<LI>changed several functions to 'static' that aren't used
+outside this module -- changes object
+<LI>provide dummy return statements for xerror and xioerror to
+quiet compiler warnings -- changes object
+</UL>
+<LI>ptyx.h:
+<UL>
+<LI>change sbuf_address and abuf_address to 'Char *' - n/c
+</UL>
+<LI>resize.c:
+<UL>
+<LI>changed several functions to 'static' that aren't used outside this module
+-- changes object
+</UL>
+<LI>screen.c:
+<UL>
+<LI>remove unnecessary 'Char **' casts - n/c
+</UL>
+<LI>util.c:
+<UL>
+<LI>changed several functions to 'static' that aren't used outside this module
+-- changes object
+</UL>
+</UL>
+<H1><A NAME="xterm_02">Patch #2 - 1996/1/7</A></H1>
+This is my second patch to xterm. It corrects most of the gcc warnings (except
+for some that are due to X header files ;-). I compared objects to keep track
+of the changes that don't affect the object code (n/c) versus those that do.
+<P>
+At this point, I'm compiling (fairly) clean with gcc options
+<PRE>
+ -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wnested-externs
+</PRE>
+(I also compiled with -Wshadow, but while that found some things that I wanted
+to find, there's far too many warnings from the X headers to be usable in this
+context).
+<P>
+The changes:
+<UL>
+<LI>Tekproc.c:
+<UL>
+<LI>parenthesized expression to avoid gcc warning -- n/c.
+
+<LI>corrected nested-extern declaration for Bool
+ waiting_for_initial_map; ourTopLevelShellArgs, and
+ number_ourTopLevelShellArgs - n/c
+
+</UL>
+<LI>charproc.c:
+<UL>
+<LI>corrected potentially-unintialized variables 'scstype', 'xim',
+ and 'input_style' -- changes object.
+
+<LI>adjusted logic of VTparse so that gcc won't warn about setjmp
+ clobbering parsestate -- changes object.
+
+<LI>corrected initialization of 'scstype', which could have been
+ clobbered by setjmp/longjmp - changes object.
+
+<LI>corrected nested-extern declaration of 'term', 'ProgramName'
+ - n/c
+</UL>
+
+<LI>cursor.c:
+<UL>
+<LI>corrected nested-extern declaration of 'term' -- n/c
+
+<LI>renamed 'term' parameters to avoid gcc -Wshadow warning - n/c
+</UL>
+
+<LI>input.c:
+<UL>
+<LI>change interface of StringInput to assume size_t (i.e.,
+ unsigned) nbytes -- changes object.
+
+<LI>change interface of funcvalue, and sunfuncvalue to use
+ 'KeySym' type instead of 'int' - changes object.
+</UL>
+
+<LI>main.c:
+<UL>
+<LI>moved definitions of SIGNAL_T, SIGNAL_RETURN to proto.h - n/c
+
+<LI>corrected missing params of 'do_hangup()' -- changes object
+ (note: the missing params were not used).
+
+<LI>corrected missing param of 'Error()' -- changes object
+
+<LI>corrected nested-extern 'environ' - n/c
+
+<LI>adjusted assignments to 'tty_got_hung' and 'no_dev_tty' so
+ that gcc can see they won't be clobbered by the longjmp -
+ changes object.
+
+<LI>use Size_t type - n/c.
+</UL>
+
+<LI>menu.c:
+<UL>
+<LI>removed redundant prototype for 'do_hangup()' -- n/c.
+
+<LI>renamed 'time' parameters to avoid gcc -Wshadow warning - n/c
+</UL>
+
+<LI>menu.h:
+<UL>
+<LI>renamed 'time' parameters to avoid gcc -Wshadow warning - n/c
+</UL>
+
+<LI>misc.c:
+<UL>
+<LI>corrected definition of 'HandleFocusChange()' -- changes
+ object
+
+<LI>cast parameters in call to 'TekExpose()' -- n/c
+
+<LI>corrected nested-extern declarations of 'term', 'toplevel',
+ ProgramName, and 'environ' -- n/c.
+
+<LI>use Size_t type - n/c.
+</UL>
+
+<LI>proto.h:
+<UL>
+<LI>moved definition of SIGNAL_T (and SIGNAL_RETURN) here from
+ main.c, resize.c to allow use of this symbol in prototypes
+ (mostly in xterm.h).
+
+<LI>added definition 'Size_t' to use as corrected type for
+ strncpy, malloc sizes - n/c.
+</UL>
+
+<LI>resize.c:
+<UL>
+<LI>moved SIGNAL_T definition to proto.h -- n/c.
+
+<LI>use Size_t type - n/c.
+</UL>
+
+<LI>screen.c:
+<UL>
+<LI>use Size_t type - n/c.
+</UL>
+
+<LI>tabs.c:
+<UL>
+<LI>corrected nested-extern declaration of 'term' -- n/c
+</UL>
+
+<LI>util.c:
+<UL>
+<LI>corrected/supplied parameters to 'TekExpose()' -- changes
+ object (note: 'TekExpose()' doesn't use its parameters).
+
+<LI>corrected nested-extern declaration of
+ 'waiting_for_initial_map' -- n/c.
+
+<LI>renamed 'term' parameters to avoid gcc -Wshadow warning - n/c
+</UL>
+
+<LI>xterm.h:
+<UL>
+<LI>prototype 'do_hangup()', 'HandleFocusChange()',
+ 'TekExpose()', 'Error()', 'Exit()' - forces changes in
+ various places.
+
+<LI>adjusted prototypes that pass 'Boolean' arguments to use
+ 'int' (this is the "correct" ANSI approach to extended
+ compiles; it's worth mentioning that gcc doesn't meet the
+ ANSI spec here). I used gcc -Wconversion to find these, but
+ there's a lot of unrelated warnings that are due to setting
+ NARROWPROTO in the config - n/c.
+
+<LI>renamed 'term' parameters to avoid gcc -Wshadow warning - n/c
+</UL>
+</UL>
+<H1><A NAME="xterm_01">Patch #1 - 1996/1/6</A></H1>
+This is my first cleanup patch for xterm. It addresses all of the gcc warnings
+for -Wall, -Wmissing-prototypes and -Wstrict-prototypes that I can change
+without modifying the object code. (I'm compiling this with gcc 2.7.0 for an
+aout target, which makes it simple to compare objects. When I do ELF-only,
+I've got a tool that compares that sort of thing as well).
+<P>
+Briefly, this patch adds (and uses) two header files in the xterm directory:
+<PRE>
+ proto.h
+ xterm.h
+</PRE>
+I expect this to be the biggest patch by far. However (barring a misplaced
+prototype), it shouldn't break anything, since the intent of the patch is to
+provide missing declarations.
+</BODY>
+</HTML>
Index: xtermcfg.hin
--- xterm-65+/xtermcfg.hin Sun Jan 25 09:19:53 1998
+++ xterm-66/xtermcfg.hin Mon Feb 16 17:06:33 1998
@@ -76,10 +76,6 @@
extern char *my_strerror();
#endif
-#if !HAVE_TERMCAP_H && !defined(NO_TERMCAP_H)
-#define NO_TERMCAP_H
-#endif
-
#if !HAVE_X11_XPOLL_H
#define NO_XPOLL_H /* X11R6.1 & up use Xpoll.h for select() definitions */
#endif