xterm-23.patch.txt

XFree86 3.1.2Ec - xterm patch #23 - T.Dickey
 
This removes the blinking cursor I added last week (for performance reasons). 
Time-permitting, I'll revisit this after 3.2 is released (there _will_ be more
work after XFree86 3.2, I assume).
 
To do:
        + fix the unneeded allocation I observed when colorMode is disabled
 
        + implement ech and ech1
 
--------------------------------------------------------------------------------
 charproc.c |   28 +++++++++++++++++++++++-----
 ptyx.h     |    3 +++
 xterm.man  |   10 +++++-----
 3 files changed, 31 insertions, 10 deletions
--------------------------------------------------------------------------------
Index: charproc.c
--- xterm-22+/charproc.c        Sat Jul 27 15:57:12 1996
+++ xterm-23/charproc.c Wed Jul 31 06:50:59 1996
@@ -121,12 +121,9 @@
 static int finput PROTO((void));
 static int in_put PROTO((void));
 static int set_character_class PROTO((char *s));
-static void BlinkCursor PROTO(( XtPointer closure, XtIntervalId* id));
 static void DoSetSelectedFont PROTO_XT_SEL_CB_ARGS;
 static void FromAlternate PROTO((TScreen *screen));
 static void RequestResize PROTO((XtermWidget termw, int rows, int cols, int text));
-static void StartBlinking PROTO((TScreen *screen));
-static void StopBlinking PROTO((TScreen *screen));
 static void SwitchBufs PROTO((TScreen *screen));
 static void ToAlternate PROTO((TScreen *screen));
 static void VTGraphicsOrNoExpose PROTO((XEvent *event));
@@ -147,6 +144,15 @@
 static void update_font_info PROTO((TScreen *screen, Bool doresize));
 static void window_ops PROTO((XtermWidget termw));
 
+#if OPT_BLINK_CURS
+static void BlinkCursor PROTO(( XtPointer closure, XtIntervalId* id));
+static void StartBlinking PROTO((TScreen *screen));
+static void StopBlinking PROTO((TScreen *screen));
+#else
+#define StartBlinking(screen) /* nothing */
+#define StopBlinking(screen) /* nothing */
+#endif
+
 #define        DEFAULT         -1
 #define        TEXT_BUF_SIZE   256
 #define TRACKTIMESEC   4L
@@ -313,10 +319,13 @@
 static int     defaultScrollLines = SCROLLLINES;
 static  int    defaultNMarginBell = N_MARGINBELL;
 static  int    defaultMultiClickTime = MULTICLICKTIME;
-static  int    defaultBlinkTime = 0;
 static  int    defaultBellSuppressTime = BELLSUPPRESSMSEC;
 static char *  _Font_Selected_ = "yes";  /* string is arbitrary */
 
+#if OPT_BLINK_CURS
+static  int    defaultBlinkTime = 0;
+#endif
+
 /*
  * Warning, the following must be kept under 1024 bytes or else some 
  * compilers (particularly AT&T 6386 SVR3.2) will barf).  Workaround is to
@@ -447,9 +456,11 @@
 {XtNcursorColor, XtCForeground, XtRPixel, sizeof(Pixel),
        XtOffsetOf(XtermWidgetRec, screen.cursorcolor),
        XtRString, "XtDefaultForeground"},
+#if OPT_BLINK_CURS
 {XtNcursorBlinkTime, XtCCursorBlinkTime, XtRInt, sizeof(int),
        XtOffsetOf(XtermWidgetRec, screen.cursor_blink),
         XtRInt, (XtPointer) &defaultBlinkTime},
+#endif
 {XtNeightBitInput, XtCEightBitInput, XtRBoolean, sizeof(Boolean),
        XtOffsetOf(XtermWidgetRec, screen.input_eight_bits), 
        XtRBoolean, (XtPointer) &defaultTRUE},
@@ -1745,9 +1756,12 @@
         * on the host.
         */
        if (XtAppPending(app_con)
+#if OPT_BLINK_CURS
         || (screen->cursor_blink > 0
          && (screen->select || screen->always_highlight))
-        || screen->cursor_state == BLINKED_OFF)
+        || screen->cursor_state == BLINKED_OFF
+#endif
+        )
                select_timeout.tv_usec = 0;
        else
                select_timeout.tv_usec = 50000;
@@ -2834,7 +2848,9 @@
    new->screen.hp_ll_bc = request->screen.hp_ll_bc;
    new->screen.foreground = request->screen.foreground;
    new->screen.cursorcolor = request->screen.cursorcolor;
+#if OPT_BLINK_CURS
    new->screen.cursor_blink = request->screen.cursor_blink;
+#endif
    new->screen.border = request->screen.border;
    new->screen.jumpscroll = request->screen.jumpscroll;
 #ifdef ALLOWLOGGING
@@ -3457,6 +3473,7 @@
        resetXtermGC(screen, flags, in_selection);
 }
 
+#if OPT_BLINK_CURS
 static void
 StartBlinking(screen)
        TScreen *screen;
@@ -3511,6 +3528,7 @@
        StartBlinking(screen);
        xevents();
 }
+#endif /* OPT_BLINK_CURS */
 
 void
 VTReset(full)
Index: ptyx.h
--- xterm-22+/ptyx.h    Sat Jul 27 11:17:14 1996
+++ xterm-23/ptyx.h     Wed Jul 31 06:54:32 1996
@@ -276,6 +276,7 @@
 /***====================================================================***/
 
 #define OPT_ISO_COLORS  1 /* true if xterm is configured with ISO colors */
+#define OPT_BLINK_CURS  0 /* FIXME: do this later (96/7/31) */
 
 /***====================================================================***/
 
@@ -397,8 +398,10 @@
        XPoint          *box;           /* draw unselected cursor       */
 
        int             cursor_state;   /* ON, OFF, or BLINKED_OFF      */
+#if OPT_BLINK_CURS
        int             cursor_blink;   /* blink-rate (0=off) msecs     */
        XtIntervalId    cursor_timer;   /* timer-id for cursor-proc     */
+#endif
        int             cursor_set;     /* requested state              */
        int             cursor_col;     /* previous cursor column       */
        int             cursor_row;     /* previous cursor row          */
Index: xterm.man
--- xterm-22+/xterm.man Sat Jul 27 16:17:57 1996
+++ xterm-23/xterm.man  Wed Jul 31 06:42:36 1996
@@ -719,11 +719,11 @@
 class name instead of the instance name is an easy way to have everything
 that would normally appear in the text color change color.  The default
 is ``black.''
-.TP 8
-.B "cursorBlinkTime (\fPclass\fB CursorBlinkTime)"
-Specifies the cursor blink cycle-time
-(i.e., the time to turn the cursor on and off).
-The default is 0, which disables blinking.
+.\" .TP 8
+.\" .B "cursorBlinkTime (\fPclass\fB CursorBlinkTime)"
+.\" Specifies the cursor blink cycle-time
+.\" (i.e., the time to turn the cursor on and off).
+.\" The default is 0, which disables blinking.
 .TP 8
 .B "cursorColor (\fPclass\fB Foreground)"
 Specifies the color to use for the text cursor.  The default is ``black.''