xterm-112.patch.txt

# ------------------------------------------------------------------------------
#  INSTALL                |    6 +++
#  Makefile.in            |    7 +++-
#  VTPrsTbl.c             |    2 -
#  button.c               |    2 -
#  charproc.c             |   26 +++++-----------
#  configure              |   70 +++++++++++++++++++++++--------------------
#  configure.in           |    9 ++++-
#  ctlseqs.ms             |    8 +---
#  main.c                 |    2 +
#  misc.c                 |   44 ++++++++++++++++-----------
#  ptyx.h                 |   14 +++-----
#  util.c                 |    2 -
#  version.h              |    4 +-
#  xterm-112/256colres.pl |   47 +++++++++++++++++++++++++++++
#  xterm-112/README.os390 |   71 +++++++++++++++++++++++++++++++++++++++++++
#  xterm.log.html         |   76 ++++++++++++++++++++++++++++++++++++++---------
#  xterm.man              |   40 +++++++++++++++++++++---
#  17 files changed, 324 insertions, 106 deletions
# ------------------------------------------------------------------------------
Index: 256colres.pl
--- /dev/null   Sun Jul 17 19:46:18 1994
+++ xterm-112/256colres.pl      Sat Jul 17 19:20:10 1999
@@ -0,0 +1,47 @@
+#!/usr/bin/perl
+# Author: Thomas Dickey <dickey@clark.net>
+# $XFree86: xc/programs/xterm/vttests/256colors2.pl,v 1.1 1999/07/11 08:49:54 dawes Exp $
+
+# Construct a header file defining default resources for the 256-color model
+# of xterm.  This is modeled after the 256colors2.pl script.
+
+# use the resources for colors 0-15 - usually more-or-less a
+# reproduction of the standard ANSI colors, but possibly more
+# pleasing shades
+
+print <<EOF;
+/*
+ * This header file was generated by $0
+ */
+EOF
+
+$line1="{\"color%d\", XtCForeground, XtRPixel, sizeof(Pixel),\n";
+$line2="\tXtOffsetOf(XtermWidgetRec, screen.Acolors[%d]),\n";
+$line3="\tXtRString, DFT_COLOR(\"rgb:%2.2x/%2.2x/%2.2x\")},\n";
+
+# colors 16-231 are a 6x6x6 color cube
+for ($red = 0; $red < 6; $red++) {
+    for ($green = 0; $green < 6; $green++) {
+       for ($blue = 0; $blue < 6; $blue++) {
+           $code = 16 + ($red * 36) + ($green * 6) + $blue;
+           printf($line1, $code);
+           printf($line2, $code);
+           printf($line3,
+                  int ($red * 42.5),
+                  int ($green * 42.5),
+                  int ($blue * 42.5));
+       }
+    }
+}
+
+# colors 232-255 are a grayscale ramp, intentionally leaving out
+# black and white
+$code=232;
+for ($gray = 0; $gray < 24; $gray++) {
+    $level = ($gray * 10) + 8;
+    $code = 232 + $gray;
+    printf($line1, $code);
+    printf($line2, $code);
+    printf($line3,
+          $level, $level, $level);
+}
Index: INSTALL
--- xterm-111+/INSTALL  Sun Jun 13 17:55:49 1999
+++ xterm-112/INSTALL   Sat Jul 17 18:14:23 1999
@@ -113,7 +113,7 @@
        known only to imake.  The configure script implements only a
        portion of the tests needed to supplant imake.
 
-  --disable-initial-erase disable initial-erase setup
+  --disable-initial-erase disable setup for stty erase
 
        Do not compile-in code which aligns the stty erase and the backarrow
        key.  When compiled-in, xterm will optionally use the pty's sense
@@ -181,6 +181,10 @@
 
        Do not compile-in code that modifies the icon's title and sounds a
        beep when they receive output.
+
+  --enable-256-color      enable 256-color support
+
+       Compile-in code that interprets SGR 38 and 48 for 256-colors. 
 
   --enable-hp-fkeys       enable support for HP-style function keys
 
Index: Makefile.in
--- xterm-111+/Makefile.in      Sun Jun 27 18:23:43 1999
+++ xterm-112/Makefile.in       Sat Jul 17 19:31:05 1999
@@ -96,6 +96,11 @@
 resize : $(OBJS2)
        @ECHO_LD@$(LINK) $(LDFLAGS) -o $@ $(OBJS2) $(X_LIBS) $(X_EXTRA_LIBS) $(LIBS)
 
+256colres.h : $(srcdir)/256colres.pl
+       $(srcdir)/256colres.pl > 256colres.h
+
+charproc.o : @CHARPROC_DEPS@
+
 install-full \
 install :: $(INSTALL_DIRS) xterm resize
        $(INSTALL_PROGRAM) -s -m @XTERM_MODE@ xterm  $(BINDIR)/xterm
@@ -137,7 +142,7 @@
        -$(RM) $(PROGRAMS)
 
 distclean: clean
-       -$(RM) Makefile config.status config.cache config.log xtermcfg.h
+       -$(RM) Makefile config.status config.cache config.log xtermcfg.h 256colres.h
 
 realclean: distclean
        -$(RM) tags TAGS
Index: README.os390
--- /dev/null   Sun Jul 17 19:46:18 1994
+++ xterm-112/README.os390      Sat Jul 17 20:15:49 1999
@@ -0,0 +1,71 @@
+Below are install instructions for os/390 2.5 & below and 
+for os/390 2.6 & above.  The basic reasons for exporting 
+the LIBS and CFLAGS variables is to get the configure 
+script to run properly under os/390.  configure, when 
+checking for X, attempts to compile a program something like 
+ 
+   int main() { 
+   XtMalloc() 
+   ; return 0; } 
+ 
+using 'cc -o conftest conftest.c -lXt'.  However this results 
+in a number of linkedit messages such as: 
+ 
+   IEW2456E 9207 SYMBOL xcatd UNRESOLVED.  MEMBER COULD NOT BE INCLUDED FROM THE 
+            DESIGNATED CALL LIBRARY. NAME SPACE = 3 
+   IEW2456E 9207 SYMBOL XrmQGetResource UNRESOLVED.  MEMBER COULD NOT BE INCLUDED 
+            FROM THE DESIGNATED CALL LIBRARY. 
+   IEW2456E 9207 SYMBOL XrmGetDatabase UNRESOLVED.  MEMBER COULD NOT BE INCLUDED 
+            FROM THE DESIGNATED CALL LIBRARY. 
+ 
+The only way I can get this program to compile and link is to 
+use 'cc -o conftest conftest.c -lXt -lX11 -lSM -lICE'. 
+With os/390 2.6 and above, IBM has provided X functions in dlls; 
+this is the reason for the separate install steps.  In fact, 
+trying to use the X archive files (eg -lX11) when linking xterm 
+results in an abend0C1 in low storage when X tries to call the 
+initialize function (at least on my system).  This has something 
+to do with the calling X routine thinking it has a function pointer 
+descriptor (c++) when it actually has just a function pointer (c). 
+Unfortunately, I have been unable to recreate the problem in a 
+simple testcase, so I haven't reported it to IBM.  Anyway, for os/390 
+2.6 and above, configure will build a Makefile with the following line: 
+ 
+   LIBS  = -lXaw -lXext -lXmu -lXt  -lSM -lICE -lX11 /usr/lib/Xaw.x /usr/lib/SM.x /usr/lib/ICE.x /usr/lib/X11.x -lcurses 
+ 
+The '-lXaw -lXext -lXmu -lXt  -lSM -lICE -lX11' should be manually removed; 
+this isn't strictly necessary, but will reduce the size of the executable 
+by about 4M. 
+ 
+Good Luck!! 
+Greg Smith 
+rys@trex.rtpnc.epa.gov 
+ 
+ 
+ 
+Install instructions for os/390 2.5 and *below*: 
+------------------------------------------------ 
+   gunzip xterm.tar.gz 
+   pax -o from=ISO8859-1,to=IBM-1047 -rf xterm.tar 
+   cd xterm 
+   export LIBS='-lXt  -lX11 -lSM -lICE' 
+   export CFLAGS='-D_ALL_SOURCE' 
+   ./configure --host=i370-ibm-mvs 
+   make 
+   export DISPLAY=my.xserver.name:0 
+   ./xterm 
+ 
+ 
+Install instructions for os/390 2.6 and *above*: 
+------------------------------------------------ 
+   gunzip xterm.tar.gz 
+   pax -o from=ISO8859-1,to=IBM-1047 -rf xterm.tar 
+   cd xterm 
+   export LIBS='/usr/lib/Xaw.x /usr/lib/SM.x /usr/lib/ICE.x /usr/lib/X11.x' 
+   export CFLAGS='-O2 -W c,dll -D_ALL_SOURCE' 
+   ./configure --host=i370-ibm-mvs 
+   [optional: edit the Makefile and remove '-lXaw -lXext -lXmu -lXt  -lSM -lICE -lX11' 
+              from the LIBS assignment] 
+   make 
+   export DISPLAY=my.xserver.name:0 
+   ./xterm 
Index: VTPrsTbl.c
--- xterm-111+/VTPrsTbl.c       Sun Apr 11 16:38:14 1999
+++ xterm-112/VTPrsTbl.c        Mon Jul 12 06:50:55 1999
@@ -524,7 +524,7 @@
 /*     \               ]               ^               _       */
 CASE_GROUND_STATE,
 CASE_GROUND_STATE,
-CASE_SD,
+CASE_GROUND_STATE,
 CASE_GROUND_STATE,
 /*     `               a               b               c       */
 CASE_HPA,
Index: button.c
--- xterm-111+/button.c Mon Jul 12 13:43:45 1999
+++ xterm-112/button.c  Sat Jul 17 20:25:53 1999
@@ -1847,7 +1847,7 @@
 #endif
     *eol = !ScrnTstWrapped(screen, row);
     for (i = scol; i < ecol; i++) {
-       c = XTERM_CELL(row, i);
+       c = E2A(XTERM_CELL(row, i));
        if (c == 0) {
            c = E2A(' ');
        } else if (c < E2A(' ')) {
Index: charproc.c
--- xterm-111+/charproc.c       Mon Jul 12 13:43:45 1999
+++ xterm-112/charproc.c        Sat Jul 17 20:05:46 1999
@@ -845,8 +845,9 @@
 {XtNcolor15, XtCForeground, XtRPixel, sizeof(Pixel),
        XtOffsetOf(XtermWidgetRec, screen.Acolors[COLOR_15]),
        XtRString, DFT_COLOR("white")},
-/* colors 16-256? should be settable, but surely there's a better way
-   than reproducing this template another 240 times */
+#if OPT_256_COLORS
+#include "256colres.h"
+#endif
 {XtNcolorBD, XtCForeground, XtRPixel, sizeof(Pixel),
        XtOffsetOf(XtermWidgetRec, screen.Acolors[COLOR_BD]),
        XtRString, DFT_COLOR("XtDefaultForeground")},
@@ -1600,7 +1601,7 @@
                                        param[2]-1, param[1]-1,
                                        param[3]-1, param[4]-2);
                        } else {
-                               /* SD as per DEC vt400 documentation */
+                               /* SD */
                                if((count = param[0]) < 1)
                                        count = 1;
                                RevScroll(screen, count);
@@ -1789,14 +1790,14 @@
                                           like, but it should properly eat all
                                           the parameters for unsupported modes
                                        */
-                                       if_OPT_256_COLORS(screen,{
+                                       if_OPT_ISO_COLORS(screen,{
                                                row++;
                                                if (row < nparam) {
                                                        switch(param[row]) {
                                                         case 5:
                                                                row++;
                                                                if (row < nparam &&
-                                                                   param[row] < 256) {
+                                                                   param[row] < NUM_ANSI_COLORS) {
                                                                        term->sgr_foreground = param[row];
                                                                        setExtendedFG();
                                                                }
@@ -1826,14 +1827,14 @@
                                        })
                                        break;
                                 case 48:
-                                       if_OPT_256_COLORS(screen,{
+                                       if_OPT_ISO_COLORS(screen,{
                                                row++;
                                                if (row < nparam) {
                                                        switch(param[row]) {
                                                         case 5:
                                                                row++;
                                                                if (row < nparam &&
-                                                                   param[row] < 256) {
+                                                                   param[row] < NUM_ANSI_COLORS) {
                                                                        SGR_Background(param[row]);
                                                                }
                                                                break;
@@ -2146,7 +2147,7 @@
                                do_dcs(string_area, string_used);
                                break;
                        case OSC:
-                               do_osc(string_area, string_used, c);
+                               do_osc(string_area, string_used, ST);
                                break;
                        case PM:
                                /* ignored */
@@ -2198,15 +2199,6 @@
                        if((count = param[0]) < 1)
                                count = 1;
                        Scroll(screen, count);
-                       parsestate = groundtable;
-                       break;
-
-                case CASE_SD:
-                       /* SD as per ISO 6429 */
-                       if((count = param[0]) < 1)
-                               count = 1;
-                       RevScroll(screen, count);
-                       do_xevents();
                        parsestate = groundtable;
                        break;
 
Index: configure
--- xterm-111+/configure        Mon Jul 12 13:43:45 1999
+++ xterm-112/configure Sat Jul 17 19:32:22 1999
@@ -193,7 +193,7 @@
   --disable-active-icon   disable X11R6.3 active-icon feature
   --disable-ansi-color    disable ANSI color
   --disable-16-color      disable 16-color support
-  --disable-256-color     enable 256-color support
+  --enable-256-color      enable 256-color support
   --disable-blink-cursor  disable support for blinking cursor
   --disable-bold-color    disable PC-style mapping of bold colors
 EOF
@@ -4343,15 +4343,19 @@
 fi
 
        echo "$ac_t""$enable_256_color" 1>&6
-       test $enable_256_color = yes && cat >> confdefs.h <<\EOF
+       if test $enable_256_color = yes ; then
+               CHARPROC_DEPS="$CHARPROC_DEPS 256colres.h"
+               EXTRAHDRS="$EXTRAHDRS 256colres.h"
+               cat >> confdefs.h <<\EOF
 #define OPT_256_COLORS 1
 EOF
 
+       fi
 
 fi
 
 echo $ac_n "checking if you want blinking cursor""... $ac_c" 1>&6
-echo "configure:4355: checking if you want blinking cursor" >&5
+echo "configure:4359: checking if you want blinking cursor" >&5
 
 # Check whether --enable-blink-cursor or --disable-blink-cursor was given.
 if test "${enable_blink_cursor+set}" = set; then
@@ -4377,7 +4381,7 @@
 if test $enable_ansi_color = yes ; then
 
        echo $ac_n "checking if you want bold colors mapped like IBM PC""... $ac_c" 1>&6
-echo "configure:4381: checking if you want bold colors mapped like IBM PC" >&5
+echo "configure:4385: checking if you want bold colors mapped like IBM PC" >&5
        
 # Check whether --enable-bold-color or --disable-bold-color was given.
 if test "${enable_bold_color+set}" = set; then
@@ -4401,7 +4405,7 @@
 
 
        echo $ac_n "checking if you want color-mode enabled by default""... $ac_c" 1>&6
-echo "configure:4405: checking if you want color-mode enabled by default" >&5
+echo "configure:4409: checking if you want color-mode enabled by default" >&5
        
 # Check whether --enable-color-mode or --disable-color-mode was given.
 if test "${enable_color_mode+set}" = set; then
@@ -4427,7 +4431,7 @@
 fi
 
 echo $ac_n "checking if you want support for color highlighting""... $ac_c" 1>&6
-echo "configure:4431: checking if you want support for color highlighting" >&5
+echo "configure:4435: checking if you want support for color highlighting" >&5
 
 # Check whether --enable-highlighting or --disable-highlighting was given.
 if test "${enable_highlighting+set}" = set; then
@@ -4451,7 +4455,7 @@
 
 
 echo $ac_n "checking if you want support for doublesize characters""... $ac_c" 1>&6
-echo "configure:4455: checking if you want support for doublesize characters" >&5
+echo "configure:4459: checking if you want support for doublesize characters" >&5
 
 # Check whether --enable-doublechars or --disable-doublechars was given.
 if test "${enable_doublechars+set}" = set; then
@@ -4475,7 +4479,7 @@
 
 
 echo $ac_n "checking if you want fallback-support for box characters""... $ac_c" 1>&6
-echo "configure:4479: checking if you want fallback-support for box characters" >&5
+echo "configure:4483: checking if you want fallback-support for box characters" >&5
 
 # Check whether --enable-boxchars or --disable-boxchars was given.
 if test "${enable_boxchars+set}" = set; then
@@ -4499,7 +4503,7 @@
 
 
 echo $ac_n "checking if you want support for HP-style function keys""... $ac_c" 1>&6
-echo "configure:4503: checking if you want support for HP-style function keys" >&5
+echo "configure:4507: checking if you want support for HP-style function keys" >&5
 
 # Check whether --enable-hp-fkeys or --disable-hp-fkeys was given.
 if test "${enable_hp_fkeys+set}" = set; then
@@ -4525,7 +4529,7 @@
 fi
 
 echo $ac_n "checking if you want support for internationalization""... $ac_c" 1>&6
-echo "configure:4529: checking if you want support for internationalization" >&5
+echo "configure:4533: checking if you want support for internationalization" >&5
 
 # Check whether --enable-i18n or --disable-i18n was given.
 if test "${enable_i18n+set}" = set; then
@@ -4551,7 +4555,7 @@
 fi
 
 echo $ac_n "checking if you want support for initial-erase setup""... $ac_c" 1>&6
-echo "configure:4555: checking if you want support for initial-erase setup" >&5
+echo "configure:4559: checking if you want support for initial-erase setup" >&5
 
 # Check whether --enable-initial-erase or --disable-initial-erase was given.
 if test "${enable_initial_erase+set}" = set; then
@@ -4577,7 +4581,7 @@
 fi
 
 echo $ac_n "checking if you want support for input-method""... $ac_c" 1>&6
-echo "configure:4581: checking if you want support for input-method" >&5
+echo "configure:4585: checking if you want support for input-method" >&5
 
 # Check whether --enable-input-method or --disable-input-method was given.
 if test "${enable_input_method+set}" = set; then
@@ -4603,7 +4607,7 @@
 fi
 
 echo $ac_n "checking if you want support for logging""... $ac_c" 1>&6
-echo "configure:4607: checking if you want support for logging" >&5
+echo "configure:4611: checking if you want support for logging" >&5
 
 # Check whether --enable-logging or --disable-logging was given.
 if test "${enable_logging+set}" = set; then
@@ -4627,7 +4631,7 @@
 EOF
 
        echo $ac_n "checking if you want to allow logging via a pipe""... $ac_c" 1>&6
-echo "configure:4631: checking if you want to allow logging via a pipe" >&5
+echo "configure:4635: checking if you want to allow logging via a pipe" >&5
        
 # Check whether --enable-logfile-exec or --disable-logfile-exec was given.
 if test "${enable_logfile_exec+set}" = set; then
@@ -4654,7 +4658,7 @@
 fi
 
 echo $ac_n "checking if you want support for iconify/maximize translations""... $ac_c" 1>&6
-echo "configure:4658: checking if you want support for iconify/maximize translations" >&5
+echo "configure:4662: checking if you want support for iconify/maximize translations" >&5
 
 # Check whether --enable-maximize or --disable-maximize was given.
 if test "${enable_maximize+set}" = set; then
@@ -4678,7 +4682,7 @@
 
 
 echo $ac_n "checking if you want NumLock to override keyboard tables""... $ac_c" 1>&6
-echo "configure:4682: checking if you want NumLock to override keyboard tables" >&5
+echo "configure:4686: checking if you want NumLock to override keyboard tables" >&5
 
 # Check whether --enable-num-lock or --disable-num-lock was given.
 if test "${enable_num_lock+set}" = set; then
@@ -4702,7 +4706,7 @@
 
 
 echo $ac_n "checking if you want support for right-scrollbar""... $ac_c" 1>&6
-echo "configure:4706: checking if you want support for right-scrollbar" >&5
+echo "configure:4710: checking if you want support for right-scrollbar" >&5
 
 # Check whether --enable-rightbar or --disable-rightbar was given.
 if test "${enable_rightbar+set}" = set; then
@@ -4728,7 +4732,7 @@
 fi
 
 echo $ac_n "checking if you want check for redundant name-change""... $ac_c" 1>&6
-echo "configure:4732: checking if you want check for redundant name-change" >&5
+echo "configure:4736: checking if you want check for redundant name-change" >&5
 
 # Check whether --enable-samename or --disable-samename was given.
 if test "${enable_samename+set}" = set; then
@@ -4752,7 +4756,7 @@
 
 
 echo $ac_n "checking if you want support for tek4014""... $ac_c" 1>&6
-echo "configure:4756: checking if you want support for tek4014" >&5
+echo "configure:4760: checking if you want support for tek4014" >&5
 
 # Check whether --enable-tek4014 or --disable-tek4014 was given.
 if test "${enable_tek4014+set}" = set; then
@@ -4782,7 +4786,7 @@
 fi
 
 echo $ac_n "checking if you want VT52 emulation""... $ac_c" 1>&6
-echo "configure:4786: checking if you want VT52 emulation" >&5
+echo "configure:4790: checking if you want VT52 emulation" >&5
 
 # Check whether --enable-vt52 or --disable-vt52 was given.
 if test "${enable_vt52+set}" = set; then
@@ -4806,7 +4810,7 @@
 
 
 echo $ac_n "checking if you want wide-character support""... $ac_c" 1>&6
-echo "configure:4810: checking if you want wide-character support" >&5
+echo "configure:4814: checking if you want wide-character support" >&5
 
 # Check whether --enable-wide-chars or --disable-wide-chars was given.
 if test "${enable_wide_chars+set}" = set; then
@@ -4835,7 +4839,7 @@
 fi
 
 echo $ac_n "checking if you want -ziconbeep option""... $ac_c" 1>&6
-echo "configure:4839: checking if you want -ziconbeep option" >&5
+echo "configure:4843: checking if you want -ziconbeep option" >&5
 
 # Check whether --enable-ziconbeep or --disable-ziconbeep was given.
 if test "${enable_ziconbeep+set}" = set; then
@@ -4860,7 +4864,7 @@
 
 # development/testing aids
 echo $ac_n "checking if you want debugging traces""... $ac_c" 1>&6
-echo "configure:4864: checking if you want debugging traces" >&5
+echo "configure:4868: checking if you want debugging traces" >&5
 
 # Check whether --enable-trace or --disable-trace was given.
 if test "${enable_trace+set}" = set; then
@@ -4889,7 +4893,7 @@
 
 
 echo $ac_n "checking if you want to see long compiling messages""... $ac_c" 1>&6
-echo "configure:4893: checking if you want to see long compiling messages" >&5
+echo "configure:4897: checking if you want to see long compiling messages" >&5
 
 # Check whether --enable-echo or --disable-echo was given.
 if test "${enable_echo+set}" = set; then
@@ -4929,7 +4933,7 @@
 
 
 echo $ac_n "checking if you want magic cookie emulation""... $ac_c" 1>&6
-echo "configure:4933: checking if you want magic cookie emulation" >&5
+echo "configure:4937: checking if you want magic cookie emulation" >&5
 
 # Check whether --enable-xmc-glitch or --disable-xmc-glitch was given.
 if test "${enable_xmc_glitch+set}" = set; then
@@ -4958,7 +4962,7 @@
 
 if test -n "$GCC" ; then
 echo $ac_n "checking if you want to turn on gcc warnings""... $ac_c" 1>&6
-echo "configure:4962: checking if you want to turn on gcc warnings" >&5
+echo "configure:4966: checking if you want to turn on gcc warnings" >&5
 
 # Check whether --enable-warnings or --disable-warnings was given.
 if test "${enable_warnings+set}" = set; then
@@ -4998,9 +5002,9 @@
 if test -n "$GCC"
 then
        echo "checking for gcc __attribute__ directives" 1>&6
-echo "configure:5002: checking for gcc __attribute__ directives" >&5
+echo "configure:5006: checking for gcc __attribute__ directives" >&5
        cat > conftest.$ac_ext <<EOF
-#line 5004 "configure"
+#line 5008 "configure"
 #include "confdefs.h"
 #include "conftest.h"
 #include "conftest.i"
@@ -5038,7 +5042,7 @@
 EOF
                        ;;
                esac
-               if { (eval echo configure:5042: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+               if { (eval echo configure:5046: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
                        test -n "$verbose" && echo "$ac_t""... $cf_attribute" 1>&6
                        cat conftest.h >>confdefs.h
 #              else
@@ -5055,11 +5059,11 @@
 if test -n "$GCC"
 then
                cat > conftest.$ac_ext <<EOF
-#line 5059 "configure"
+#line 5063 "configure"
 int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
 EOF
                echo "checking for gcc warning options" 1>&6
-echo "configure:5063: checking for gcc warning options" >&5
+echo "configure:5067: checking for gcc warning options" >&5
        cf_save_CFLAGS="$CFLAGS"
        EXTRA_CFLAGS="-W -Wall"
        cf_warn_CONST=""
@@ -5077,7 +5081,7 @@
                Wstrict-prototypes $cf_warn_CONST
        do
                CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
-               if { (eval echo configure:5081: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+               if { (eval echo configure:5085: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
                        test -n "$verbose" && echo "$ac_t""... -$cf_opt" 1>&6
                        EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
                        test "$cf_opt" = Wcast-qual && EXTRA_CFLAGS="$EXTRA_CFLAGS -DXTSTRINGDEFINES"
@@ -5096,6 +5100,7 @@
 
 
 
+
 ###    remove from IMAKE_CFLAGS the optional features we define in xtermcfg.h
 for cf_def in \
        SCROLLBAR_RIGHT \
@@ -5264,6 +5269,7 @@
 s%@SHOW_CC@%$SHOW_CC%g
 s%@ECHO_CC@%$ECHO_CC%g
 s%@EXTRA_CFLAGS@%$EXTRA_CFLAGS%g
+s%@CHARPROC_DEPS@%$CHARPROC_DEPS%g
 s%@EXTRAHDRS@%$EXTRAHDRS%g
 s%@EXTRASRCS@%$EXTRASRCS%g
 s%@EXTRAOBJS@%$EXTRAOBJS%g
Index: configure.in
--- xterm-111+/configure.in     Mon Jul 12 13:43:45 1999
+++ xterm-112/configure.in      Sat Jul 17 19:32:14 1999
@@ -200,11 +200,15 @@
 
        AC_MSG_CHECKING(if you want 256 colors)
        CF_ARG_ENABLE(256-color,
-               [  --disable-256-color     enable 256-color support],
+               [  --enable-256-color      enable 256-color support],
                [enable_256_color=yes],
                [enable_256_color=no])
        AC_MSG_RESULT($enable_256_color)
-       test $enable_256_color = yes && AC_DEFINE(OPT_256_COLORS,1)
+       if test $enable_256_color = yes ; then
+               CHARPROC_DEPS="$CHARPROC_DEPS 256colres.h"
+               EXTRAHDRS="$EXTRAHDRS 256colres.h"
+               AC_DEFINE(OPT_256_COLORS,1)
+       fi
 
 fi
 
@@ -438,6 +442,7 @@
 fi
 
 AC_SUBST(EXTRA_CFLAGS)
+AC_SUBST(CHARPROC_DEPS)
 AC_SUBST(EXTRAHDRS)
 AC_SUBST(EXTRASRCS)
 AC_SUBST(EXTRAOBJS)
Index: ctlseqs.ms
--- xterm-111+/ctlseqs.ms       Mon Jul 12 13:43:45 1999
+++ xterm-112/ctlseqs.ms        Sat Jul 17 20:11:23 1999
@@ -608,7 +608,7 @@
 Scroll up \*(Ps lines (default = 1) (SU)
 .
 .IP \\*(Cs\\*(Ps\\*s\\*T
-Scroll down \*(Ps lines (default = 1) (SD, according to DEC)
+Scroll down \*(Ps lines (default = 1) (SD)
 .
 .IP \\*(Cs\\*(Ps\\*s\\*;\\*(Ps\\*s\\*;\\*(Ps\\*s\\*;\\*(Ps\\*s\\*;\\*(Ps\\*s\\*T
 Initiate hilite mouse tracking.
@@ -621,9 +621,6 @@
 .IP \\*(Cs\\*(Ps\\*s\\*Z
 Cursor Backward Tabulation \*(Ps tab stops (default = 1) (CBT)
 .
-.IP \\*(Cs\\*(Ps\\*s\\*^
-Scroll down \*(Ps lines (default = 1) (SD, according to ISO)
-.
 .IP \\*(Cs\\*(Pm\\*s\\*`
 Character Position Absolute  [column] (default = [row,1]) (HPA)
 .
@@ -959,7 +956,8 @@
   \*(Ps = \*2 \(-> Change Window Title to \*(Pt
   \*(Ps = \*3 \(-> Set X property on top-level window. \*(Pt should be in the form
 "\fIprop=value\fP", or just "\fIprop\fP" to delete the property
-  \*(Ps = \*4 ; \fIc ; name\fP \(-> Change Color #\fIc\fP to \fIcname\fP
+  \*(Ps = \*4 ; \fIc ; name\fP \(-> Change Color #\fIc\fP to \fIcname\fP.  Any
+number of \fIc name\fP pairs may be given.
   \*(Ps = \*1\*0 \(-> Change color names starting with text foreground to \*(Pt
 (a list of one or more color names or RGB specifications, separated by
 semicolon, up to eight, as per \fIXParseColor\fP).
Index: main.c
--- xterm-111+/main.c   Mon Jul 12 13:43:45 1999
+++ xterm-112/main.c    Sat Jul 17 20:29:42 1999
@@ -1982,6 +1982,8 @@
            return 1;
        }
        strcpy(ttydev, ptsname(*pty));
+#elif defined(__MVS__)
+       return pty_search(pty);
 #else
        if ((*pty = open ("/dev/ptmx", O_RDWR)) < 0) {
            return 1;
Index: misc.c
--- xterm-111+/misc.c   Mon Jul 12 13:43:45 1999
+++ xterm-112/misc.c    Sat Jul 17 20:12:24 1999
@@ -949,7 +949,8 @@
        register int i;
 
        cp = CURRENT_EMU_VAL(screen, Tbuffer->ptr, VTbuffer.ptr);
-       if((i = cp - screen->logstart) > 0) {
+       if (screen->logstart != 0
+        && (i = cp - screen->logstart) > 0) {
 #if OPT_WIDE_CHARS
                Char temp[80];
                IChar code;
@@ -989,7 +990,8 @@
        TRACE(("ReportAnsiColorRequest %d\n", colornum))
        color.pixel = pTerm->screen.Acolors[colornum];
        XQueryColor(term->screen.display, cmap, &color);
-       sprintf(buffer, "rgb:%04x/%04x/%04x",
+       sprintf(buffer, "4;%d;rgb:%04x/%04x/%04x",
+                colornum,
                color.red,
                color.green,
                color.blue);
@@ -1026,28 +1028,36 @@
 {
     char *name;
     int color;
+    int r = False;
 
     TRACE(("ChangeAnsiColorRequest string='%s'\n", buf))
 
-    name = strchr(buf, ';');
-    if (name == NULL)
-       return(FALSE);
-    *name = '\0';
-    name++;
-    color = atoi(buf);
-    if (color < 0 || color > 255)
-       return(FALSE);
-    if (!strcmp(name, "?"))
-       ReportAnsiColorRequest(pTerm, color, final);
-    else {
-       if (!AllocateAnsiColor(pTerm, color, name))
-           return(FALSE);
-       ChangeAnsiColors(pTerm);
+    while (buf && *buf) {
+       name = strchr(buf, ';');
+       if (name == NULL)
+           break;
+       *name = '\0';
+       name++;
+       color = atoi(buf);
+       if (color < 0 || color >= NUM_ANSI_COLORS)
+           break;
+       buf = strchr(name, ';');
+       if (buf) {
+           *buf = '\0';
+           buf++;
+       }
+       if (!strcmp(name, "?"))
+           ReportAnsiColorRequest(pTerm, color, final);
+       else if (!AllocateAnsiColor(pTerm, color, name))
+           break;
        /* FIXME:  free old color somehow?  We aren't for the other color
         * change style (dynamic colors).
         */
+       r = True;
     }
-    return(TRUE);
+    if (r)
+       ChangeAnsiColors(pTerm);
+    return(r);
 }
 #endif /* OPT_ISO_COLORS */
 
Index: ptyx.h
--- xterm-111+/ptyx.h   Mon Jul 12 13:43:45 1999
+++ xterm-112/ptyx.h    Sat Jul 17 18:08:09 1999
@@ -494,16 +494,14 @@
 #define COLOR_14       14
 #define COLOR_15       15
 #if OPT_256_COLORS
-#define COLOR_BD        256
-#define COLOR_UL        257
-#define COLOR_BL        258
-#define MAXCOLORS       259
+#define NUM_ANSI_COLORS 256
 #else /* ! OPT_256_COLORS */
-#define COLOR_BD       16      /* BOLD */
-#define COLOR_UL       17      /* UNDERLINE */
-#define COLOR_BL       18      /* BLINK */
-#define MAXCOLORS       19
+#define NUM_ANSI_COLORS 16
 #endif /* OPT_256_COLORS */
+#define COLOR_BD       (NUM_ANSI_COLORS)       /* BOLD */
+#define COLOR_UL       (NUM_ANSI_COLORS+1)     /* UNDERLINE */
+#define COLOR_BL       (NUM_ANSI_COLORS+2)     /* BLINK */
+#define MAXCOLORS      (NUM_ANSI_COLORS+3)
 #ifndef DFT_COLORMODE
 #define DFT_COLORMODE TRUE     /* default colorMode resource */
 #endif
Index: util.c
--- xterm-111+/util.c   Mon Jul 12 13:43:45 1999
+++ xterm-112/util.c    Sat Jul 17 20:26:01 1999
@@ -1858,7 +1858,7 @@
     if_OPT_WIDE_CHARS(screen,{
        ch |= (SCRN_BUF_WIDEC(screen, row)[col] << 8);
     })
-    return E2A(ch);
+    return ch;
 }
 
 /*
Index: version.h
--- xterm-111+/version.h        Mon Jul 12 13:43:45 1999
+++ xterm-112/version.h Sat Jul 17 21:23:10 1999
@@ -6,5 +6,5 @@
  * XFree86 to which this version of xterm has been built.  The number in
  * parentheses is my patch number (T.Dickey).
  */
-#define XTERM_PATCH   111
-#define XFREE86_VERSION "XFree86 3.9Pw"
+#define XTERM_PATCH   112
+#define XFREE86_VERSION "XFree86 3.9Px"
Index: xterm.log.html
--- xterm-111+/xterm.log.html   Mon Jul 12 13:43:45 1999
+++ xterm-112/xterm.log.html    Sat Jul 17 20:31:09 1999
@@ -41,6 +41,7 @@
 xc/programs/Xserver/hw/xfree86).
 
 <UL>
+<LI><A HREF="#xterm_112">Patch #112 - 1999/7/17 - XFree86 3.9Pw</A>
 <LI><A HREF="#xterm_111">Patch #111 - 1999/7/10 - XFree86 3.9Pw</A>
 <LI><A HREF="#xterm_110">Patch #110 - 1999/6/29 - XFree86 3.9Pu</A>
 <LI><A HREF="#xterm_109">Patch #109 - 1999/6/23 - XFree86 3.9Pt</A>
@@ -155,6 +156,55 @@
 <LI><A HREF="#xterm_01">Patch #1 - 1996/1/6</A>
 </UL>
 
+<H1><A NAME="xterm_112">Patch #112 - 1999/7/17 - XFree86 3.9Pw</A></H1>
+<ul>
+       <li>add null-pointer check to FlushLog(), fixes a core dump when both
+         -l and -lf options are used when xterm is configured with wide-character
+         support.
+
+       <li>remove "ISO" case for SD, which was due to a typographical error in
+         ECMA-48 (reported by Paul Williams &lt;paul@celigne.co.uk&gt; for
+         vttest).
+
+       <li>add "FILES" section to manpage.
+
+       <li>generate header file to initialize default resources for colors
+         16-255.
+
+       <li>patches by Greg Smith for os390:
+       <ul>
+         <li>add README.os390
+
+         <li>use the pty_search() function to find an available pty/tty pair.
+
+         <li>move E2A() call out of getXtermCell() to SaveText() function
+             so it will be available in all configurations.
+       </ul>
+
+       <li>patches by Todd Larason:
+       <ul>
+         <li>enable SGR 48 5 in ISO color mode, not just 256 color mode
+
+         <li>change configure's --disable-256-color option to
+           --enable-256-color, to match its effect
+
+         <li>fix OSC 4 xx ?  (report ansi color) to report a string which can
+           actually be used to set the color back
+
+         <li>fix OSC 4 xx yy (change ansi color) to not allow setting colors >
+           15 in 16 color mode
+
+         <li>simplify the COLOR_ settings a bit in ptyx.h, along with setting
+           NUM_ANSI_COLORS needed for #1 and #4 above
+
+         <li>correct string-terminator code passed for reference to OSC
+           responses; when in 7-bit mode, only the final byte of ST was seen.
+
+         <li>Allow multiple color #;name pairs in OSC 4,
+           and document changes to match. 
+       </ul>
+</ul>
+
 <H1><A NAME="xterm_111">Patch #111 - 1999/7/10 - XFree86 3.9Pw</A></H1>
 <ul>
        <li>add control sequences for specifying the RGB value of the ANSI
@@ -274,28 +324,28 @@
        <blockquote>
        The first change is simple - I added ESC[3J to erase the stored lines
        above the screen.  That's what the changes to util.c and ctlseqs.ms
-       are. 
-       <p> 
+       are.
+       <p>
        The second change is to get the blinking cursor working.  I took out
        the cursorBlinkTime resource, and put in cursorBlink (Boolean),
        cursorOnTime (time cursor is on in msecs) and cursorOffTime, and added
-       a cursorblink item to the vtMenu to enable/disable it. 
+       a cursorblink item to the vtMenu to enable/disable it.
        </blockquote>
 
        <li>Integrated a patch from Juliusz Chroboczek &lt;jec@dcs.ed.ac.uk&gt;.
          From his description:
        <blockquote>
-       With this patch, selection conversion works properly: 
-<pre> 
+       With this patch, selection conversion works properly:
+<pre>
        ISO 8859-1 xterm -&gt; ISO 8859-1 xterm (transferred as STRING);
        ISO 8859-1 xterm -&gt; UTF-8 xterm (transferred as STRING);
        UTF-8 xterm -&gt; ISO 8859-1 xterm (transferred as STRING);
        UTF-8 xterm -&gt; UTF-8 xterm (transferred as UTF-8).
-</pre> 
-       It will not work properly if one xterm is in, say, ISO 8859-2. 
-       Actually, for this case xterm breaks the ICCCM routinely (sending ISO 
-       8859-2 data as STRING), so I wouldn't worry too much about it.  I have 
-       not changed the behaviour in eight-bit mode in any way. 
+</pre>
+       It will not work properly if one xterm is in, say, ISO 8859-2.
+       Actually, for this case xterm breaks the ICCCM routinely (sending ISO
+       8859-2 data as STRING), so I wouldn't worry too much about it.  I have
+       not changed the behaviour in eight-bit mode in any way.
        </blockquote>
 </ul>
 
@@ -318,7 +368,7 @@
        <li>implement new resource <em>trimSelection</em>, which allows xterm
          to trim trailing blanks from selected lines.  This does not affect
          the highlighting. (reported by several people using <em>mutt</em>,
-         including 
+         including
          Hans Morten Kind &lt;edphk@uib.no&gt;,
          Jeremy &lt;jeremy@exit109.com&gt;
          and (Michael Fuller &lt;msf@mds.rmit.edu.au&gt;).
@@ -333,7 +383,7 @@
 
 <H1><A NAME="xterm_104">Patch #104 - 1999/5/30 - XFree86 3.9Pn</A></H1>
 This is a resync patch against XFree86 3.9Pn, reflecting changes which were
-submitted by Branden Robinson, who worked with 
+submitted by Branden Robinson, who worked with
 Wichert Akkerman &lt;wichert@cs.leidenuniv.nl&gt;
 to set up ifdef's to handle GNU libc 2.1,
 and use getpt() which lets xterm avoid having to know the actual PTY name.
@@ -355,7 +405,7 @@
          the patch description:
        <blockquote>
        <ul>
-       <li>No longer links xterm against libutil on a glibc2.1 system. 
+       <li>No longer links xterm against libutil on a glibc2.1 system.
          libutil is a compatibility library and should only be used when
          necessary.  Rather than having get_pty() use openpty() from this
          compatibility library, use the real UNIX98 pty support in get_pty()
Index: xterm.man
--- xterm-111+/xterm.man        Mon Jul 12 13:43:45 1999
+++ xterm-112/xterm.man Sat Jul 17 18:08:33 1999
@@ -262,7 +262,7 @@
 .B "\+bdc"
 Set the \fIvt100\fP resource \fBcolorBDMode\fR to TRUE,
 enabling the display of characters with bold attribute as color
-rather than bold 
+rather than bold
 .TP 8
 .B "\-cb"
 Set the \fIvt100\fP resource \fBcutToBeginningOfLine\fP to FALSE.
@@ -559,11 +559,11 @@
 .TP 8
 .B \-ut
 This option indicates that \fIxterm\fP shouldn't write a record into the
-the system log file \fI/etc/utmp\fP.
+the system \fIutmp\fP log file.
 .TP 8
 .B \+ut
-This option indicates that \fIxterm\fP should write a record into the system
-log file \fI/etc/utmp\fP.
+This option indicates that \fIxterm\fP should write a record into
+the system \fIutmp\fP log file.
 .TP 8
 .B \-vb
 This option indicates that a visual bell is preferred over an audible one.
@@ -797,7 +797,8 @@
 .TP 8
 .B "utmpInhibit (\fPclass\fB UtmpInhibit)"
 Specifies whether or not \fIxterm\fP should try to record the user's terminal
-in \fI/etc/utmp\fP.
+in
+the system \fIutmp\fP log file.
 .TP 8
 .B "waitForMap (\fPclass\fB WaitForMap)"
 Specifies whether or not \fIxterm\fP should wait for the initial window map
@@ -987,6 +988,15 @@
 is also enabled.  The defaults are, respectively, black, red, green,
 yellow, blue, magenta, cyan, and white.
 .TP 8
+.B "color16 (\fPclass\fB Foreground)"
+.TP 8
+through
+.TP 8
+.B "color255 \fPclass\fB Foreground)"
+These specify the colors for the 256-color extension.  The defaults for
+are for colors 16 through 231 to make a 6x6x6 color cube, and colors
+232 through 255 to make a grayscale ramp.
+.TP 8
 .B "colorBD (\fPclass\fB Foreground)"
 This specifies the color to use to display bold characters if
 the ``colorBDMode'' resource is enabled.
@@ -2372,6 +2382,26 @@
 of the
 .I xterm
 window.
+.SH FILES
+The actual pathnames given may differ on your system.
+.TP 5
+\fI/etc/utmp\fP
+the system logfile, which records user logins.
+.TP 5
+\fI/etc/wtmp\fP
+the system logfile, which records user logins and logouts.
+.TP 5
+\fI/usr/lib/X11/app-defaults/XTerm\fP
+the \fIxterm\fP default application resources.
+.TP 5
+\fI/usr/lib/X11/app-defaults/XTerm-color\fP
+the \fIxterm\fP color application resources.
+If your display supports color, use this
+.in +10
+*customization: -color
+.in -10
+in your .Xdefaults file to
+automatically turn on color in \fIxterm\fP and similar applications.
 .SH "SEE ALSO"
 resize(1), X(1), pty(4), tty(4)
 .br