xterm-15.patch.txt

XFree86 3.1.2E - xterm patch #15 - 1996/5/29 - T.Dickey
 
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).
 
--------------------------------------------------------------------------------
 charproc.c |   13 +++++++!!!!!!
 ptyx.h     |    1 +
 xterm.man  |    5 +++++
 3 files changed, 13 insertions, 6 modifications
--------------------------------------------------------------------------------
Index: charproc.c
*** /build/x11r6/XFree86-3.1.2E/xc/programs/xterm/charproc.c    Mon May  6 14:30:48 1996
--- /build/x11r6/XFree86-current/xc/programs/xterm/charproc.c   Wed May 29 06:16:45 1996
***************
*** 194,199 ****
--- 194,200 ----
  #define XtNtiteInhibit "titeInhibit"
  #define XtNvisualBell "visualBell"
  #define XtNallowSendEvents "allowSendEvents"
+ #define XtNawaitInput "awaitInput"
  #define XtNcolor0 "color0"
  #define XtNcolor1 "color1"
  #define XtNcolor2 "color2"
***************
*** 258,263 ****
--- 259,265 ----
  #define XtCTiteInhibit "TiteInhibit"
  #define XtCVisualBell "VisualBell"
  #define XtCAllowSendEvents "AllowSendEvents"
+ #define XtCAwaitInput "AwaitInput"
  #define XtCColorMode "ColorMode"
  #define XtCDynamicColors "DynamicColors"
  #define XtCUnderLine "UnderLine"
***************
*** 549,554 ****
--- 551,559 ----
  {XtNallowSendEvents, XtCAllowSendEvents, XtRBoolean, sizeof(Boolean),
        XtOffsetOf(XtermWidgetRec, screen.allowSendEvents),
        XtRBoolean, (XtPointer) &defaultFALSE},
+ {XtNawaitInput, XtCAwaitInput, XtRBoolean, sizeof(Boolean),
+       XtOffsetOf(XtermWidgetRec, screen.awaitInput),
+       XtRBoolean, (XtPointer) &defaultFALSE},
  {"font1", "Font1", XtRString, sizeof(String),
        XtOffsetOf(XtermWidgetRec, screen.menu_font_names[fontMenu_font1]),
        XtRString, (XtPointer) NULL},
***************
*** 1683,1695 ****
         * a quick peek, i.e. timeout from the select() immediately.  If
         * there's nothing pending, let select() block a little while, but
         * for a shorter interval than the arrow-style scrollbar timeout.
         */
        if (XtAppPending(app_con))
!       select_timeout.tv_usec = 0;
        else
                select_timeout.tv_usec = 50000;
        i = select(max_plus1, &select_mask, &write_mask, NULL,
!                  &select_timeout);
        if (i < 0) {
            if (errno != EINTR)
                SysError(ERROR_SELECT);
--- 1688,1704 ----
         * a quick peek, i.e. timeout from the select() immediately.  If
         * there's nothing pending, let select() block a little while, but
         * for a shorter interval than the arrow-style scrollbar timeout.
+        * The blocking is optional, because it tends to increase the load
+        * on the host.
         */
        if (XtAppPending(app_con))
!               select_timeout.tv_usec = 0;
        else
                select_timeout.tv_usec = 50000;
        i = select(max_plus1, &select_mask, &write_mask, NULL,
!                       (select_timeout.tv_usec == 0) || screen->awaitInput
!                       ? &select_timeout
!                       : NULL);
        if (i < 0) {
            if (errno != EINTR)
                SysError(ERROR_SELECT);
Index: ptyx.h
*** /build/x11r6/XFree86-3.1.2E/xc/programs/xterm/ptyx.h        Mon Mar 11 13:48:46 1996
--- /build/x11r6/XFree86-current/xc/programs/xterm/ptyx.h       Wed May 29 06:05:39 1996
***************
*** 346,351 ****
--- 346,352 ----
        int             select;         /* xterm selected               */
        Boolean         visualbell;     /* visual bell mode             */
        Boolean         allowSendEvents;/* SendEvent mode               */
+       Boolean         awaitInput;     /* select-timeout mode          */
        Boolean         grabbedKbd;     /* keyboard is grabbed          */
  #ifdef ALLOWLOGGING
        int             logging;        /* logging mode                 */
Index: xterm.man
*** /build/x11r6/XFree86-3.1.2E/xc/programs/xterm/xterm.man     Mon Mar 11 13:48:46 1996
--- /build/x11r6/XFree86-current/xc/programs/xterm/xterm.man    Wed May 29 06:11:31 1996
***************
*** 596,601 ****
--- 596,606 ----
  Specifies whether or not auto-wraparound should be enabled.  The
  default is ``true.''
  .TP 8
+ .B "awaitInput (\fPclass\fB AwaitInput)"
+ Specifies whether or not the xterm uses a 50 millisecond timeout to
+ await input (i.e., to support the Xaw3d arrow scrollbar).
+ The default is ``false.''
+ .TP 8
  .B "bellSuppressTime (\fPclass\fB BellSuppressTime)"
  Number of milliseconds after a bell command is sent during which additional
  bells will be suppressed.  Default is 200.  If set non-zero,