Module Name:    xsrc
Committed By:   mrg
Date:           Tue Apr 27 01:58:19 UTC 2021

Modified Files:
        xsrc/external/mit/xterm/dist: fontutils.c linedata.c misc.c ptyx.h
            resize.c xterm.h xterm.man
        xsrc/external/mit/xterm/include: xtermcfg.h

Log Message:
merge xterm 367.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 xsrc/external/mit/xterm/dist/fontutils.c
cvs rdiff -u -r1.6 -r1.7 xsrc/external/mit/xterm/dist/linedata.c
cvs rdiff -u -r1.17 -r1.18 xsrc/external/mit/xterm/dist/misc.c \
    xsrc/external/mit/xterm/dist/xterm.man
cvs rdiff -u -r1.15 -r1.16 xsrc/external/mit/xterm/dist/ptyx.h
cvs rdiff -u -r1.2 -r1.3 xsrc/external/mit/xterm/dist/resize.c
cvs rdiff -u -r1.3 -r1.4 xsrc/external/mit/xterm/dist/xterm.h
cvs rdiff -u -r1.15 -r1.16 xsrc/external/mit/xterm/include/xtermcfg.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: xsrc/external/mit/xterm/dist/fontutils.c
diff -u xsrc/external/mit/xterm/dist/fontutils.c:1.8 xsrc/external/mit/xterm/dist/fontutils.c:1.9
--- xsrc/external/mit/xterm/dist/fontutils.c:1.8	Thu Feb 11 12:24:39 2021
+++ xsrc/external/mit/xterm/dist/fontutils.c	Tue Apr 27 01:58:18 2021
@@ -1,4 +1,4 @@
-/* $XTermId: fontutils.c,v 1.701 2021/02/02 00:40:30 tom Exp $ */
+/* $XTermId: fontutils.c,v 1.703 2021/03/02 00:25:24 tom Exp $ */
 
 /*
  * Copyright 1998-2020,2021 by Thomas E. Dickey
@@ -1020,6 +1020,20 @@ noUsableXft(XtermWidget xw, const char *
 }
 #endif
 
+XFontStruct *
+xtermLoadQueryFont(XtermWidget xw, const char *name)
+{
+    XFontStruct *result = NULL;
+    size_t have = strlen(name);
+    if (have == 0 || have > MAX_U_STRING) {
+	;			/* just ignore it */
+    } else {
+	TScreen *screen = TScreenOf(xw);
+	result = XLoadQueryFont(screen->display, name);
+    }
+    return result;
+}
+
 /*
  * Open the given font and verify that it is non-empty.  Return a null on
  * failure.
@@ -1031,12 +1045,11 @@ xtermOpenFont(XtermWidget xw,
 	      Bool force)
 {
     Bool code = False;
-    TScreen *screen = TScreenOf(xw);
 
     TRACE(("xtermOpenFont %d:%d '%s'\n",
 	   result->warn, xw->misc.fontWarnings, NonNull(name)));
     if (!IsEmpty(name)) {
-	if ((result->fs = XLoadQueryFont(screen->display, name)) != 0) {
+	if ((result->fs = xtermLoadQueryFont(xw, name)) != 0) {
 	    code = True;
 	    if (EmptyFont(result->fs)) {
 		xtermCloseFont(xw, result);
@@ -5105,7 +5118,7 @@ save2FontList(XtermWidget xw,
 		    next[count++] = value;
 		    next[count] = 0;
 		    *list = next;
-		    TRACE(("... saved %s %s %lu:%s\n",
+		    TRACE(("... saved \"%s\" \"%s\" %lu:\"%s\"\n",
 			   whichFontList(xw, target),
 			   whichFontList2(xw, *list),
 			   (unsigned long) count,
@@ -5163,7 +5176,8 @@ allocFontList(XtermWidget xw,
 	int pass;
 	char **list = 0;
 
-	TRACE(("allocFontList %s %s '%s'\n", whichFontEnum(which), name, blob));
+	TRACE(("allocFontList %s name=\"%s\" source=\"%s\"\n",
+	       whichFontEnum(which), name, blob));
 
 	for (pass = 0; pass < 2; ++pass) {
 	    unsigned count = 0;

Index: xsrc/external/mit/xterm/dist/linedata.c
diff -u xsrc/external/mit/xterm/dist/linedata.c:1.6 xsrc/external/mit/xterm/dist/linedata.c:1.7
--- xsrc/external/mit/xterm/dist/linedata.c:1.6	Thu Feb 11 12:24:39 2021
+++ xsrc/external/mit/xterm/dist/linedata.c	Tue Apr 27 01:58:18 2021
@@ -1,7 +1,7 @@
-/* $XTermId: linedata.c,v 1.97 2019/06/30 19:10:53 tom Exp $ */
+/* $XTermId: linedata.c,v 1.99 2021/03/08 00:24:12 tom Exp $ */
 
 /*
- * Copyright 2009-2018,2019 by Thomas E. Dickey
+ * Copyright 2009-2019,2021 by Thomas E. Dickey
  *
  *                         All Rights Reserved
  *
@@ -251,7 +251,7 @@ saveCellData(TScreen *screen,
 			      && (limits == NULL
 				  || (column + 1) >= limits->right)));
 	    if (blank) {
-		item->charData = (Char) ' ';
+		item->charData = (CharData) ' ';
 	    }
 	    item->combSize = blank ? 0 : ld->combSize;
 	    for_each_combData(off, item) {

Index: xsrc/external/mit/xterm/dist/misc.c
diff -u xsrc/external/mit/xterm/dist/misc.c:1.17 xsrc/external/mit/xterm/dist/misc.c:1.18
--- xsrc/external/mit/xterm/dist/misc.c:1.17	Thu Feb 11 12:24:39 2021
+++ xsrc/external/mit/xterm/dist/misc.c	Tue Apr 27 01:58:18 2021
@@ -1,4 +1,4 @@
-/* $XTermId: misc.c,v 1.968 2021/02/10 00:50:59 tom Exp $ */
+/* $XTermId: misc.c,v 1.979 2021/03/24 00:27:48 tom Exp $ */
 
 /*
  * Copyright 1999-2020,2021 by Thomas E. Dickey
@@ -67,7 +67,6 @@
 
 #include <X11/keysym.h>
 #include <X11/Xatom.h>
-#include <X11/cursorfont.h>
 
 #include <X11/Xmu/Error.h>
 #include <X11/Xmu/SysUtil.h>
@@ -220,7 +219,7 @@ unselectwindow(XtermWidget xw, int flag)
 
     if (screen->hide_pointer && screen->pointer_mode < pFocused) {
 	screen->hide_pointer = False;
-	xtermDisplayCursor(xw);
+	xtermDisplayPointer(xw);
     }
 
     screen->select &= ~flag;
@@ -314,16 +313,16 @@ do_xevents(XtermWidget xw)
 }
 
 void
-xtermDisplayCursor(XtermWidget xw)
+xtermDisplayPointer(XtermWidget xw)
 {
     TScreen *screen = TScreenOf(xw);
 
     if (screen->Vshow) {
 	if (screen->hide_pointer) {
-	    TRACE(("Display hidden_cursor\n"));
+	    TRACE(("Display text pointer (hidden)\n"));
 	    XDefineCursor(screen->display, VWindow(screen), screen->hidden_cursor);
 	} else {
-	    TRACE(("Display pointer_cursor\n"));
+	    TRACE(("Display text pointer (visible)\n"));
 	    recolor_cursor(screen,
 			   screen->pointer_cursor,
 			   T_COLOR(screen, MOUSE_FG),
@@ -366,7 +365,7 @@ xtermShowPointer(XtermWidget xw, Bool en
     if (enable) {
 	if (screen->hide_pointer) {
 	    screen->hide_pointer = False;
-	    xtermDisplayCursor(xw);
+	    xtermDisplayPointer(xw);
 	    switch (screen->send_mouse_pos) {
 	    case ANY_EVENT_MOUSE:
 		break;
@@ -384,7 +383,7 @@ xtermShowPointer(XtermWidget xw, Bool en
 	} else {
 	    tried = 0;
 	    screen->hide_pointer = True;
-	    xtermDisplayCursor(xw);
+	    xtermDisplayPointer(xw);
 	    MotionOn(screen, xw);
 	}
     }
@@ -717,9 +716,9 @@ make_hidden_cursor(XtermWidget xw)
      * server insists on drawing _something_.
      */
     TRACE(("Ask for nil2 font\n"));
-    if ((fn = XLoadQueryFont(dpy, "nil2")) == 0) {
+    if ((fn = xtermLoadQueryFont(xw, "nil2")) == 0) {
 	TRACE(("...Ask for fixed font\n"));
-	fn = XLoadQueryFont(dpy, DEFFONT);
+	fn = xtermLoadQueryFont(xw, DEFFONT);
     }
 
     if (fn != None) {
@@ -739,10 +738,10 @@ make_hidden_cursor(XtermWidget xw)
  * default theme.  Testing seems to show that we only have to provide this
  * until the window is initialized.
  */
+#ifdef HAVE_LIB_XCURSOR
 void
 init_colored_cursor(Display *dpy)
 {
-#ifdef HAVE_LIB_XCURSOR
     static const char theme[] = "index.theme";
     static const char pattern[] = "xtermXXXXXX";
     char *env = getenv("XCURSOR_THEME");
@@ -753,7 +752,11 @@ init_colored_cursor(Display *dpy)
      */
     if (IsEmpty(env)) {
 	env = XGetDefault(dpy, "Xcursor", "theme");
+	TRACE(("XGetDefault Xcursor theme \"%s\"\n", NonNull(env)));
+    } else {
+	TRACE(("getenv(XCURSOR_THEME) \"%s\"\n", NonNull(env)));
     }
+
     /*
      * If neither found, provide our own default theme.
      */
@@ -762,6 +765,8 @@ init_colored_cursor(Display *dpy)
 	char *filename;
 	size_t needed;
 
+	TRACE(("init_colored_cursor will make an empty Xcursor theme\n"));
+
 	if ((tmp_dir = getenv("TMPDIR")) == 0) {
 	    tmp_dir = P_tmpdir;
 	}
@@ -790,21 +795,25 @@ init_colored_cursor(Display *dpy)
 
 		strcat(leaf, "/");
 		strcat(leaf, theme);
+
 		if ((fp = fopen(xterm_cursor_theme, "w")) != 0) {
 		    fprintf(fp, "[Icon Theme]\n");
 		    fclose(fp);
 		    *leaf = '\0';
 		    xtermSetenv("XCURSOR_PATH", xterm_cursor_theme);
 		    *leaf = '/';
+
+		    TRACE(("...initialized xterm_cursor_theme \"%s\"\n",
+			   xterm_cursor_theme));
+		    atexit(cleanup_colored_cursor);
+		} else {
+		    FreeAndNull(xterm_cursor_theme);
 		}
-		atexit(cleanup_colored_cursor);
 	    }
 	}
     }
-#else
-    (void) dpy;
-#endif /* HAVE_LIB_XCURSOR */
 }
+#endif /* HAVE_LIB_XCURSOR */
 
 /*
  * Once done, discard the file and directory holding it.
@@ -821,9 +830,8 @@ cleanup_colored_cursor(void)
 	    && (sb.st_mode & S_IFMT) == S_IFDIR) {
 	    unlink(xterm_cursor_theme);
 	    rmdir(my_path);
-	    free(xterm_cursor_theme);
-	    xterm_cursor_theme = 0;
 	}
+	FreeAndNull(xterm_cursor_theme);
     }
 #endif /* HAVE_LIB_XCURSOR */
 }
@@ -843,7 +851,8 @@ make_colored_cursor(unsigned c_index,		/
 
 	/* adapted from XCreateFontCursor(), which hardcodes the font name */
 	TRACE(("loading cursor from alternate cursor font\n"));
-	if ((myFont.fs = XLoadQueryFont(dpy, screen->cursor_font_name)) != 0) {
+	myFont.fs = xtermLoadQueryFont(term, screen->cursor_font_name);
+	if (myFont.fs != NULL) {
 	    if (!xtermMissingChar(c_index, &myFont)
 		&& !xtermMissingChar(c_index + 1, &myFont)) {
 #define DATA(c) { 0UL, c, c, c, 0, 0 }
@@ -881,6 +890,148 @@ make_colored_cursor(unsigned c_index,		/
     return c;
 }
 
+/* adapted from <X11/cursorfont.h> */
+static int
+LookupCursorShape(const char *name)
+{
+#define DATA(name) { XC_##name, #name }
+    static struct {
+	int code;
+	const char name[25];
+    } table[] = {
+	DATA(X_cursor),
+	    DATA(arrow),
+	    DATA(based_arrow_down),
+	    DATA(based_arrow_up),
+	    DATA(boat),
+	    DATA(bogosity),
+	    DATA(bottom_left_corner),
+	    DATA(bottom_right_corner),
+	    DATA(bottom_side),
+	    DATA(bottom_tee),
+	    DATA(box_spiral),
+	    DATA(center_ptr),
+	    DATA(circle),
+	    DATA(clock),
+	    DATA(coffee_mug),
+	    DATA(cross),
+	    DATA(cross_reverse),
+	    DATA(crosshair),
+	    DATA(diamond_cross),
+	    DATA(dot),
+	    DATA(dotbox),
+	    DATA(double_arrow),
+	    DATA(draft_large),
+	    DATA(draft_small),
+	    DATA(draped_box),
+	    DATA(exchange),
+	    DATA(fleur),
+	    DATA(gobbler),
+	    DATA(gumby),
+	    DATA(hand1),
+	    DATA(hand2),
+	    DATA(heart),
+	    DATA(icon),
+	    DATA(iron_cross),
+	    DATA(left_ptr),
+	    DATA(left_side),
+	    DATA(left_tee),
+	    DATA(leftbutton),
+	    DATA(ll_angle),
+	    DATA(lr_angle),
+	    DATA(man),
+	    DATA(middlebutton),
+	    DATA(mouse),
+	    DATA(pencil),
+	    DATA(pirate),
+	    DATA(plus),
+	    DATA(question_arrow),
+	    DATA(right_ptr),
+	    DATA(right_side),
+	    DATA(right_tee),
+	    DATA(rightbutton),
+	    DATA(rtl_logo),
+	    DATA(sailboat),
+	    DATA(sb_down_arrow),
+	    DATA(sb_h_double_arrow),
+	    DATA(sb_left_arrow),
+	    DATA(sb_right_arrow),
+	    DATA(sb_up_arrow),
+	    DATA(sb_v_double_arrow),
+	    DATA(shuttle),
+	    DATA(sizing),
+	    DATA(spider),
+	    DATA(spraycan),
+	    DATA(star),
+	    DATA(target),
+	    DATA(tcross),
+	    DATA(top_left_arrow),
+	    DATA(top_left_corner),
+	    DATA(top_right_corner),
+	    DATA(top_side),
+	    DATA(top_tee),
+	    DATA(trek),
+	    DATA(ul_angle),
+	    DATA(umbrella),
+	    DATA(ur_angle),
+	    DATA(watch),
+	    DATA(xterm),
+    };
+#undef DATA
+    Cardinal j;
+    int result = -1;
+    if (!IsEmpty(name)) {
+	for (j = 0; j < XtNumber(table); ++j) {
+	    if (!strcmp(name, table[j].name)) {
+		result = table[j].code;
+		break;
+	    }
+	}
+    }
+    return result;
+}
+
+void
+xtermSetupPointer(XtermWidget xw, const char *theShape)
+{
+    TScreen *screen = TScreenOf(xw);
+    unsigned shape = XC_xterm;
+    int other = LookupCursorShape(theShape);
+    unsigned which;
+
+    if (other >= 0 && other < XC_num_glyphs)
+	shape = (unsigned) other;
+
+    TRACE(("looked up shape index %d from shape name \"%s\"\n", other,
+	   NonNull(theShape)));
+
+    which = (unsigned) (shape / 2);
+    if (xw->work.pointer_cursors[which] == None) {
+	TRACE(("creating text pointer cursor from shape %d\n", shape));
+	xw->work.pointer_cursors[which] =
+	    make_colored_cursor(shape,
+				T_COLOR(screen, MOUSE_FG),
+				T_COLOR(screen, MOUSE_BG));
+    } else {
+	TRACE(("updating text pointer cursor for shape %d\n", shape));
+	recolor_cursor(screen,
+		       screen->pointer_cursor,
+		       T_COLOR(screen, MOUSE_FG),
+		       T_COLOR(screen, MOUSE_BG));
+    }
+    if (screen->pointer_cursor != xw->work.pointer_cursors[which]) {
+	screen->pointer_cursor = xw->work.pointer_cursors[which];
+	TRACE(("defining text pointer cursor with shape %d\n", shape));
+	XDefineCursor(screen->display, VShellWindow(xw), screen->pointer_cursor);
+	if (XtIsRealized((Widget) xw)) {
+	    /* briefly override pointerMode after changing the pointer */
+	    if (screen->pointer_mode != pNever)
+		screen->hide_pointer = True;
+	    xtermShowPointer(xw, True);
+	}
+    }
+}
+
 /* ARGSUSED */
 void
 HandleKeyPressed(Widget w GCC_UNUSED,
@@ -3092,8 +3243,13 @@ xtermAllocColor(XtermWidget xw, XColor *
     Boolean result = False;
     TScreen *screen = TScreenOf(xw);
     Colormap cmap = xw->core.colormap;
+    size_t have = strlen(spec);
 
-    if (XParseColor(screen->display, cmap, spec, def)) {
+    if (have == 0 || have > MAX_U_STRING) {
+	if (resource.reportColors) {
+	    printf("color  (ignored, length %lu)\n", have);
+	}
+    } else if (XParseColor(screen->display, cmap, spec, def)) {
 	XColor save_def = *def;
 	if (resource.reportColors) {
 	    printf("color  %04x/%04x/%04x = \"%s\"\n",
@@ -4177,6 +4333,10 @@ do_osc(XtermWidget xw, Char *oscbuf, siz
 	}
 	break;
 
+    case 22:
+	xtermSetupPointer(xw, buf);
+	break;
+
     case 30:
     case 31:
 	/* reserved for Konsole (Stephan Binner <stephan.bin...@gmx.de>) */
@@ -6921,8 +7081,6 @@ xtermOpenApplication(XtAppContext * app_
 			     fallback_resources,
 			     NULL, 0);
 #endif /* OPT_SESSION_MGT */
-    init_colored_cursor(XtDisplay(result));
-
     XtSetErrorHandler(NULL);
 
     return result;
Index: xsrc/external/mit/xterm/dist/xterm.man
diff -u xsrc/external/mit/xterm/dist/xterm.man:1.17 xsrc/external/mit/xterm/dist/xterm.man:1.18
--- xsrc/external/mit/xterm/dist/xterm.man:1.17	Thu Feb 11 12:24:39 2021
+++ xsrc/external/mit/xterm/dist/xterm.man	Tue Apr 27 01:58:18 2021
@@ -1,5 +1,5 @@
 '\" t
-.\" $XTermId: xterm.man,v 1.839 2021/02/02 00:24:46 tom Exp $
+.\" $XTermId: xterm.man,v 1.844 2021/03/26 23:11:13 tom Exp $
 .\"
 .\" Copyright 1996-2020,2021 by Thomas E. Dickey
 .\"
@@ -1627,6 +1627,34 @@ The default is
 \*(``40\*(''
 and is limited to the range 1 through 100.
 .TP 8
+.B "cursorTheme\fP (class\fB CursorTheme\fP)"
+The Xcursor(__miscmansuffix__) library provides a way to 
+The X11 library uses this library to extend the font- and glyph-cursor
+calls used by applications such as \fI\*n\fP  to substitute external
+files for the built-in \*(``core\*('' cursors provided by X.
+.IP
+\fI\*N\fP uses the \fBpointerShape\fP resource to select the X cursor shape.
+Most of the available sets of cursor themes provide an incomplete set
+of \*(``core\*('' cursors (while possibly adding other cursors).
+Because of this limitation, \fI\*n\fP disables the feature by default.
+.IP
+The cursor theme feature can be useful because X cursors are not scalable
+and on a high-resolution display, the cursors are hard to find.
+Some of the cursor themes include
+larger cursors to work around this limitation:
+.RS
+.bP
+The default core cursors are 8x8 pixels;
+.bP
+Some cursor themes include cursors up to the X server limit of 64x64 pixels.
+.RE
+.IP
+At startup, \fI\*n\fP sets the \fBXCURSOR_THEME\fP environment variable
+to enable or disable the cursor theme feature.
+The default value is \*(``none\*(''.
+Other values (including \*(``default\*('') are passed to the Xcursor
+library to select a cursor theme.
+.TP 8
 .B "fullscreen\fP (class\fB Fullscreen\fP)"
 Specifies whether or not \fI\*n\fP should ask the window manager to
 use a fullscreen layout on startup.
@@ -4449,6 +4477,94 @@ always.
 .B "pointerShape\fP (class\fB Cursor\fP)"
 Specifies the name of the shape of the pointer.
 The default is \*(``xterm\*(''.
+.IP
+Other shapes can be selected.
+Here is a list of the \*(``core\*('' (i.e., \fIstandard\fP) names
+extracted from <X11/cursorfont.h>:
+.RS 5
+.IP
+X_cursor,
+arrow,
+based_arrow_down,
+based_arrow_up,
+boat,
+bogosity,
+bottom_left_corner,
+bottom_right_corner,
+bottom_side,
+bottom_tee,
+box_spiral,
+center_ptr,
+circle,
+clock,
+coffee_mug,
+cross,
+cross_reverse,
+crosshair,
+diamond_cross,
+dot,
+dotbox,
+double_arrow,
+draft_large,
+draft_small,
+draped_box,
+exchange,
+fleur,
+gobbler,
+gumby,
+hand1,
+hand2,
+heart,
+icon,
+iron_cross,
+left_ptr,
+left_side,
+left_tee,
+leftbutton,
+ll_angle,
+lr_angle,
+man,
+middlebutton,
+mouse,
+pencil,
+pirate,
+plus,
+question_arrow,
+right_ptr,
+right_side,
+right_tee,
+rightbutton,
+rtl_logo,
+sailboat,
+sb_down_arrow,
+sb_h_double_arrow,
+sb_left_arrow,
+sb_right_arrow,
+sb_up_arrow,
+sb_v_double_arrow,
+shuttle,
+sizing,
+spider,
+spraycan,
+star,
+target,
+tcross,
+top_left_arrow,
+top_left_corner,
+top_right_corner,
+top_side,
+top_tee,
+trek,
+ul_angle,
+umbrella,
+ur_angle,
+watch,
+xterm
+.RE
+.IP
+If you are using a \fIcursor theme\fP,
+expect it to provide about a third of those names,
+while adding others.
 .TP 8
 .B "popOnBell\fP (class\fB PopOnBell\fP)"
 Specifies whether the window would be raised when Control-G is received.
@@ -4697,6 +4813,20 @@ then start by using the TrueType font ra
 .RE
 .RE
 .TP 8
+.B "resizeByPixel\fP (class\fB ResizeByPixel\fP)"
+Set this \*(``true\*(''
+to disable hints to the window manager that request resizing
+by character rather than pixels.
+.IP
+Most window managers provide visual feedback showing the size of a
+window as you resize it, using these hints.
+When you maximize \fI\*n\fP, it disables those hints to allow
+the window manager to make better use of fractional rows or columns.
+Setting this resource disables the hints all the time.
+.IP
+The default is
+\*(``false\*(''.
+.TP 8
 .B "resizeGravity\fP (class\fB ResizeGravity\fP)"
 Affects the behavior when the window is resized to be taller or shorter.
 \fBNorthWest\fP
@@ -6872,70 +7002,70 @@ UTF-8 mode, only the first 256 entries o
 The default table starts as follows \-
 .NS
 static int charClass[256] = {
-/\(** NUL  SOH  STX  ETX  EOT  ENQ  ACK  BEL */
+/* NUL  SOH  STX  ETX  EOT  ENQ  ACK  BEL */
     32,   1,   1,   1,   1,   1,   1,   1,
-/\(**  BS   HT   NL   VT   NP   CR   SO   SI */
+/*  BS   HT   NL   VT   NP   CR   SO   SI */
      1,  32,   1,   1,   1,   1,   1,   1,
-/\(** DLE  DC1  DC2  DC3  DC4  NAK  SYN  ETB */
+/* DLE  DC1  DC2  DC3  DC4  NAK  SYN  ETB */
      1,   1,   1,   1,   1,   1,   1,   1,
-/\(** CAN   EM  SUB  ESC   FS   GS   RS   US */
+/* CAN   EM  SUB  ESC   FS   GS   RS   US */
      1,   1,   1,   1,   1,   1,   1,   1,
-/\(**  SP    !    "    #    $    %    &    \*(AQ */
+/*  SP    !    "    #    $    %    &    \*(AQ */
 .\"   " <- for emacs autocolor to work well :-)
     32,  33,  34,  35,  36,  37,  38,  39,
-/\(**   (    )    *    +    ,    \-    .    / */
+/*   (    )    *    +    ,    \-    .    / */
     40,  41,  42,  43,  44,  45,  46,  47,
-/\(**   0    1    2    3    4    5    6    7 */
+/*   0    1    2    3    4    5    6    7 */
     48,  48,  48,  48,  48,  48,  48,  48,
-/\(**   8    9    :    ;    <    =    >    ? */
+/*   8    9    :    ;    <    =    >    ? */
     48,  48,  58,  59,  60,  61,  62,  63,
-/\(**   @    A    B    C    D    E    F    G */
+/*   @    A    B    C    D    E    F    G */
     64,  48,  48,  48,  48,  48,  48,  48,
-/\(**   H    I    J    K    L    M    N    O */
+/*   H    I    J    K    L    M    N    O */
     48,  48,  48,  48,  48,  48,  48,  48,
-/\(**   P    Q    R    S    T    U    V    W */
+/*   P    Q    R    S    T    U    V    W */
     48,  48,  48,  48,  48,  48,  48,  48,
-/\(**   X    Y    Z    [    \\    ]    ^    _ */
+/*   X    Y    Z    [    \\    ]    ^    _ */
     48,  48,  48,  91,  92,  93,  94,  48,
-/\(**   `    a    b    c    d    e    f    g */
+/*   `    a    b    c    d    e    f    g */
     96,  48,  48,  48,  48,  48,  48,  48,
-/\(**   h    i    j    k    l    m    n    o */
+/*   h    i    j    k    l    m    n    o */
     48,  48,  48,  48,  48,  48,  48,  48,
-/\(**   p    q    r    s    t    u    v    w */
+/*   p    q    r    s    t    u    v    w */
     48,  48,  48,  48,  48,  48,  48,  48,
-/\(**   x    y    z    {    |    }    ~  DEL */
+/*   x    y    z    {    |    }    ~  DEL */
     48,  48,  48, 123, 124, 125, 126,   1,
-/\(** x80  x81  x82  x83  IND  NEL  SSA  ESA */
+/* x80  x81  x82  x83  IND  NEL  SSA  ESA */
      1,   1,   1,   1,   1,   1,   1,   1,
-/\(** HTS  HTJ  VTS  PLD  PLU   RI  SS2  SS3 */
+/* HTS  HTJ  VTS  PLD  PLU   RI  SS2  SS3 */
      1,   1,   1,   1,   1,   1,   1,   1,
-/\(** DCS  PU1  PU2  STS  CCH   MW  SPA  EPA */
+/* DCS  PU1  PU2  STS  CCH   MW  SPA  EPA */
      1,   1,   1,   1,   1,   1,   1,   1,
-/\(** x98  x99  x9A  CSI   ST  OSC   PM  APC */
+/* x98  x99  x9A  CSI   ST  OSC   PM  APC */
      1,   1,   1,   1,   1,   1,   1,   1,
-/\(**   \-    i   c/    L   ox   Y\-    |   So */
+/*   \-    i   c/    L   ox   Y\-    |   So */
    160, 161, 162, 163, 164, 165, 166, 167,
-/\(**  ..   c0   ip   <<    _        R0    \- */
+/*  ..   c0   ip   <<    _        R0    \- */
    168, 169, 170, 171, 172, 173, 174, 175,
-/\(**   o   +\-    2    3    \*(AQ    u   q|    . */
+/*   o   +\-    2    3    \*(AQ    u   q|    . */
    176, 177, 178, 179, 180, 181, 182, 183,
-/\(**   ,    1    2   >>  1/4  1/2  3/4    ? */
+/*   ,    1    2   >>  1/4  1/2  3/4    ? */
    184, 185, 186, 187, 188, 189, 190, 191,
-/\(**  A`   A\*(AQ   A^   A~   A:   Ao   AE   C, */
+/*  A`   A\*(AQ   A^   A~   A:   Ao   AE   C, */
     48,  48,  48,  48,  48,  48,  48,  48,
-/\(**  E`   E\*(AQ   E^   E:   I`   I\*(AQ   I^   I: */
+/*  E`   E\*(AQ   E^   E:   I`   I\*(AQ   I^   I: */
     48,  48,  48,  48,  48,  48,  48,  48,
-/\(**  D\-   N~   O`   O\*(AQ   O^   O~   O:    X */
+/*  D\-   N~   O`   O\*(AQ   O^   O~   O:    X */
     48,  48,  48,  48,  48,  48,  48, 215,
-/\(**  O/   U`   U\*(AQ   U^   U:   Y\*(AQ    P    B */
+/*  O/   U`   U\*(AQ   U^   U:   Y\*(AQ    P    B */
     48,  48,  48,  48,  48,  48,  48,  48,
-/\(**  a`   a\*(AQ   a^   a~   a:   ao   ae   c, */
+/*  a`   a\*(AQ   a^   a~   a:   ao   ae   c, */
     48,  48,  48,  48,  48,  48,  48,  48,
-/\(**  e`   e\*(AQ   e^   e:   i`   i\*(AQ   i^   i: */
+/*  e`   e\*(AQ   e^   e:   i`   i\*(AQ   i^   i: */
     48,  48,  48,  48,  48,  48,  48,  48,
-/\(**   d   n~   o`   o\*(AQ   o^   o~   o:   \-: */
+/*   d   n~   o`   o\*(AQ   o^   o~   o:   \-: */
     48,  48,  48,  48,  48,  48,  48, 247,
-/\(**  o/   u`   u\*(AQ   u^   u:   y\*(AQ    P   y: */
+/*  o/   u`   u\*(AQ   u^   u:   y\*(AQ    P   y: */
     48,  48,  48,  48,  48,  48,  48,  48};
 .NE
 .IP
@@ -7130,15 +7260,15 @@ the data as in the \fBon2Clicks\fP resou
 .B "fullscreen(\fIon/off/toggle\fP)"
 This action sets, unsets or toggles the \fBfullscreen\fP resource.
 .TP 8
-.B "iconify()"
-Iconifies the window.
-.TP 8
 .B "hard\-reset()"
 This action resets the scrolling region, tabs, window size, and cursor keys
 and clears the screen.
 It is also invoked from the \fBhardreset\fP
 entry in \fIvtMenu\fP.
 .TP 8
+.B "iconify()"
+Iconifies the window.
+.TP 8
 .B "ignore()"
 This action ignores the event but checks for special pointer position
 escape sequences.
@@ -7371,11 +7501,6 @@ mouse reporting is enabled.
 This action is similar to \fBscroll\-back\fP except that it scrolls
 in the other direction.
 .TP 8
-.B "secure()"
-This action toggles the \fISecure Keyboard\fP mode
-(see \fBSECURITY\fP), and is invoked from the \fBsecurekbd\fP
-entry in \fImainMenu\fP.
-.TP 8
 .B "scroll\-lock(\fIon/off/toggle\fP)"
 This action sets, unsets or toggles internal state which tells
 \fI\*n\fP whether Scroll Lock is active,
@@ -7394,6 +7519,11 @@ Scroll to the beginning of the saved lin
 Scroll to the end of the saved lines, i.e., to the currently active page.
 .RE
 .TP 8
+.B "secure()"
+This action toggles the \fISecure Keyboard\fP mode
+(see \fBSECURITY\fP), and is invoked from the \fBsecurekbd\fP
+entry in \fImainMenu\fP.
+.TP 8
 .B "select\-cursor\-end(\fIdestname\fP [, \&...\&])"
 This action is similar to \fBselect\-end\fP except that it should be used
 with \fBselect\-cursor\-start\fP.
@@ -7481,26 +7611,18 @@ It is also invoked from the \fBbackarrow
 This action sets, unsets or toggles the \fBbellIsUrgent\fP resource.
 It is also invoked by the \fBbellIsUrgent\fP entry in \fIvtMenu\fP.
 .TP 8
-.B "set\-cursorblink(\fIon/off/toggle\fP)"
-This action sets, unsets or toggles the \fBcursorBlink\fP resource.
-It is also invoked from the \fBcursorblink\fP entry in \fIvtMenu\fP.
-.TP 8
 .B "set\-cursesemul(\fIon/off/toggle\fP)"
 This action sets, unsets or toggles the \fBcurses\fP resource.
 It is also invoked from the \fBcursesemul\fP entry in \fIvtMenu\fP.
 .TP 8
+.B "set\-cursorblink(\fIon/off/toggle\fP)"
+This action sets, unsets or toggles the \fBcursorBlink\fP resource.
+It is also invoked from the \fBcursorblink\fP entry in \fIvtMenu\fP.
+.TP 8
 .B "set\-font\-doublesize(\fIon/off/toggle\fP)"
 This action sets, unsets or toggles the \fBfontDoublesize\fP resource.
 It is also invoked by the \fBfont\-doublesize\fP entry in \fIfontMenu\fP.
 .TP 8
-.B "set\-hp\-function\-keys(\fIon/off/toggle\fP)"
-This action sets, unsets or toggles the \fBhpFunctionKeys\fP resource.
-It is also invoked by the \fBhpFunctionKeys\fP entry in \fImainMenu\fP.
-.TP 8
-.B "set\-jumpscroll(\fIon/off/toggle\fP)"
-This action sets, unsets or toggles the \fBjumpscroll\fP resource.
-It is also invoked by the \fBjumpscroll\fP entry in \fIvtMenu\fP.
-.TP 8
 .B "set\-font\-linedrawing(\fIon/off/toggle\fP)"
 This action sets, unsets or toggles the \fI\*n\fR's state regarding whether
 the current font has line-drawing characters and whether it should draw them
@@ -7518,6 +7640,14 @@ This action sets, unsets or toggles the 
 which controls use of the font's minimum or maximum glyph width.
 It is also invoked by the \fBfont\-packed\fP entry in \fIfontMenu\fP.
 .TP 8
+.B "set\-hp\-function\-keys(\fIon/off/toggle\fP)"
+This action sets, unsets or toggles the \fBhpFunctionKeys\fP resource.
+It is also invoked by the \fBhpFunctionKeys\fP entry in \fImainMenu\fP.
+.TP 8
+.B "set\-jumpscroll(\fIon/off/toggle\fP)"
+This action sets, unsets or toggles the \fBjumpscroll\fP resource.
+It is also invoked by the \fBjumpscroll\fP entry in \fIvtMenu\fP.
+.TP 8
 .B "set\-keep\-clipboard(\fIon/off/toggle\fP)"
 This action sets, unsets or toggles the \fBkeepClipboard\fP resource.
 .TP 8
@@ -7528,16 +7658,16 @@ It is also invoked by the \fBkeepSelecti
 .B "set\-logging(\fIon/off/toggle\fP)"
 This action sets, unsets or toggles the state of the logging option.
 .TP 8
-.B "set\-old\-function\-keys(\fIon/off/toggle\fP)"
-This action sets, unsets or toggles the state of legacy function keys.
-It is also invoked by the \fBoldFunctionKeys\fP entry in \fImainMenu\fP.
-.TP 8
 .B "set\-marginbell(\fIon/off/toggle\fP)"
 This action sets, unsets or toggles the \fBmarginBell\fP resource.
 .TP 8
 .B "set\-num\-lock(\fIon/off/toggle\fP)"
 This action toggles the state of the \fBnumLock\fP resource.
 .TP 8
+.B "set\-old\-function\-keys(\fIon/off/toggle\fP)"
+This action sets, unsets or toggles the state of legacy function keys.
+It is also invoked by the \fBoldFunctionKeys\fP entry in \fImainMenu\fP.
+.TP 8
 .B "set\-pop\-on\-bell(\fIon/off/toggle\fP)"
 This action sets, unsets or toggles the \fBpopOnBell\fP resource.
 It is also invoked by the \fBpoponbell\fP entry in \fIvtMenu\fP.
@@ -7557,6 +7687,10 @@ It is also invoked by the \fBreversevide
 This action sets, unsets or toggles the \fBreverseWrap\fP resource.
 It is also invoked by the \fBreversewrap\fP entry in \fIvtMenu\fP.
 .TP 8
+.B "set\-sco\-function\-keys(\fIon/off/toggle\fP)"
+This action sets, unsets or toggles the \fBscoFunctionKeys\fP resource.
+It is also invoked by the \fBscoFunctionKeys\fP entry in \fImainMenu\fP.
+.TP 8
 .B "set\-scroll\-on\-key(\fIon/off/toggle\fP)"
 This action sets, unsets or toggles the \fBscrollKey\fP resource.
 It is also invoked from the \fBscrollkey\fP entry in \fIvtMenu\fP.
@@ -7569,10 +7703,6 @@ It is also invoked from the \fBscrolltty
 This action sets, unsets or toggles the \fBscrollbar\fP resource.
 It is also invoked by the \fBscrollbar\fP entry in \fIvtMenu\fP.
 .TP 8
-.B "set\-sco\-function\-keys(\fIon/off/toggle\fP)"
-This action sets, unsets or toggles the \fBscoFunctionKeys\fP resource.
-It is also invoked by the \fBscoFunctionKeys\fP entry in \fImainMenu\fP.
-.TP 8
 .B "set\-select(\fIon/off/toggle\fP)"
 This action sets, unsets or toggles the \fBselectToClipboard\fP resource.
 It is also invoked by the \fBselectToClipboard\fP entry in \fIvtMenu\fP.
@@ -7697,14 +7827,14 @@ Otherwise, use the \fB$PATH\fP variable 
 If parameters are given in the action,
 pass them to the new \fI\*n\fP process.
 .TP 8
-.B "start\-extend()"
-This action is similar to \fBselect\-start\fP except that the
-selection is extended to the current pointer location.
-.TP 8
 .B "start\-cursor\-extend()"
 This action is similar to \fBselect\-extend\fP except that the
 selection is extended to the current text cursor position.
 .TP 8
+.B "start\-extend()"
+This action is similar to \fBselect\-start\fP except that the
+selection is extended to the current pointer location.
+.TP 8
 .B "string(\fIstring\fP)"
 This action inserts the specified text string as if it had been typed.
 Quotation is necessary if the string contains whitespace or
@@ -8652,6 +8782,7 @@ resize(__mansuffix__),
 luit(__mansuffix__),
 u\*n(__mansuffix__),
 X(__miscmansuffix__),
+Xcursor(__miscmansuffix__),
 pty(4),
 tty(4)
 .ad

Index: xsrc/external/mit/xterm/dist/ptyx.h
diff -u xsrc/external/mit/xterm/dist/ptyx.h:1.15 xsrc/external/mit/xterm/dist/ptyx.h:1.16
--- xsrc/external/mit/xterm/dist/ptyx.h:1.15	Thu Feb 11 12:24:39 2021
+++ xsrc/external/mit/xterm/dist/ptyx.h	Tue Apr 27 01:58:18 2021
@@ -1,7 +1,7 @@
-/* $XTermId: ptyx.h,v 1.1026 2020/12/25 15:15:37 tom Exp $ */
+/* $XTermId: ptyx.h,v 1.1030 2021/03/21 22:11:10 tom Exp $ */
 
 /*
- * Copyright 1999-2019,2020 by Thomas E. Dickey
+ * Copyright 1999-2020,2021 by Thomas E. Dickey
  *
  *                         All Rights Reserved
  *
@@ -67,6 +67,8 @@
 #include <X11/Shell.h>		/* for XtNdieCallback, etc. */
 #include <X11/StringDefs.h>	/* for standard resource names */
 #include <X11/Xmu/Misc.h>	/* For Max() and Min(). */
+#include <X11/cursorfont.h>
+
 
 #undef bcopy
 #undef bzero
@@ -407,6 +409,12 @@ typedef struct {
 #define DFT_KBD_DIALECT "B"		/* default USASCII */
 #endif
 
+#define MAX_I_PARAM	65535		/* parameters */
+#define MAX_I_DELAY	32767		/* time-delay in ReGIS */
+#define MAX_U_COLOR	65535u		/* colors */
+#define MAX_U_COORD	32767u		/* coordinates */
+#define MAX_U_STRING	65535u		/* string-length */
+
 /* constants used for utf8 mode */
 #define UCS_REPL	0xfffd
 #define UCS_LIMIT	0x80000000U	/* both limit and flag for non-UCS */
@@ -2518,7 +2526,7 @@ typedef struct {
 	int		pointer_mode0;	/* ...initial value             */
 	Boolean 	hide_pointer;	/* true to use "hidden_cursor"  */
 	String		pointer_shape;	/* name of shape in cursor font */
-	Cursor		pointer_cursor;	/* pointer cursor in window	*/
+	Cursor		pointer_cursor;	/* current pointer cursor	*/
 	Cursor		hidden_cursor;	/* hidden cursor in window	*/
 
 	String	answer_back;		/* response to ENQ		*/
@@ -3112,6 +3120,7 @@ typedef struct _Misc {
     Boolean login_shell;
     Boolean re_verse;
     Boolean re_verse0;		/* initial value of "-rv" */
+    Boolean resizeByPixel;
     XtGravity resizeGravity;
     Boolean reverseWrap;
     Boolean autoWrap;
@@ -3177,6 +3186,8 @@ typedef struct _Work {
 	char *str;
 	int len;
     } user_keys[MAX_UDK];
+#define MAX_POINTER (XC_num_glyphs/2)
+    Cursor pointer_cursors[MAX_POINTER]; /* saved cursors	*/
 #ifndef NO_ACTIVE_ICON
     int active_icon;		/* use application icon window  */
     char *wm_name;

Index: xsrc/external/mit/xterm/dist/resize.c
diff -u xsrc/external/mit/xterm/dist/resize.c:1.2 xsrc/external/mit/xterm/dist/resize.c:1.3
--- xsrc/external/mit/xterm/dist/resize.c:1.2	Sat Feb 27 15:37:38 2021
+++ xsrc/external/mit/xterm/dist/resize.c	Tue Apr 27 01:58:18 2021
@@ -1,7 +1,7 @@
-/* $XTermId: resize.c,v 1.144 2020/06/03 00:26:23 tom Exp $ */
+/* $XTermId: resize.c,v 1.145 2021/03/21 20:03:17 tom Exp $ */
 
 /*
- * Copyright 2003-2018,2020 by Thomas E. Dickey
+ * Copyright 2003-2020,2021 by Thomas E. Dickey
  *
  *                         All Rights Reserved
  *
@@ -107,7 +107,6 @@ int ignore_unused;
 #define	SHELL_UNKNOWN	0
 #define	SHELL_C		1
 #define	SHELL_BOURNE	2
-
 /* *INDENT-OFF* */
 static struct {
     const char *name;
@@ -186,10 +185,10 @@ static const char *wsize[EMULATIONS] =
 };
 #endif /* USE_STRUCT_WINSIZE */
 
-static void failed(const char *) GCC_NORETURN;
-static void onintr(int) GCC_NORETURN;
-static void resize_timeout(int) GCC_NORETURN;
-static void Usage(void) GCC_NORETURN;
+static GCC_NORETURN void failed(const char *);
+static GCC_NORETURN void onintr(int);
+static GCC_NORETURN void resize_timeout(int);
+static GCC_NORETURN void Usage(void);
 
 static void
 failed(const char *s)

Index: xsrc/external/mit/xterm/dist/xterm.h
diff -u xsrc/external/mit/xterm/dist/xterm.h:1.3 xsrc/external/mit/xterm/dist/xterm.h:1.4
--- xsrc/external/mit/xterm/dist/xterm.h:1.3	Thu Feb 11 12:24:39 2021
+++ xsrc/external/mit/xterm/dist/xterm.h	Tue Apr 27 01:58:18 2021
@@ -1,7 +1,7 @@
-/* $XTermId: xterm.h,v 1.884 2020/12/23 00:21:44 tom Exp $ */
+/* $XTermId: xterm.h,v 1.890 2021/03/21 22:44:36 tom Exp $ */
 
 /*
- * Copyright 1999-2019,2020 by Thomas E. Dickey
+ * Copyright 1999-2020,2021 by Thomas E. Dickey
  *
  *                         All Rights Reserved
  *
@@ -271,6 +271,12 @@ extern int errno;
 
 #include <X11/Xlocale.h>
 
+#ifdef HAVE_STDNORETURN_H
+#include <stdnoreturn.h>
+#undef GCC_NORETURN
+#define GCC_NORETURN STDC_NORETURN
+#endif
+
 /*
  * FIXME:  Toggling logging from xterm hangs under Linux 2.0.29 with libc5 if
  * we use 'waitpid()', while 'wait()' seems to work properly.
@@ -588,6 +594,7 @@ extern char **environ;
 #define XtNregisDefaultFont	"regisDefaultFont"
 #define XtNregisScreenSize	"regisScreenSize"
 #define XtNrenderFont		"renderFont"
+#define XtNresizeByPixel	"resizeByPixel"
 #define XtNresizeGravity	"resizeGravity"
 #define XtNretryInputMethod	"retryInputMethod"
 #define XtNreverseWrap		"reverseWrap"
@@ -787,6 +794,7 @@ extern char **environ;
 #define XtCRegisDefaultFont	"RegisDefaultFont"
 #define XtCRegisScreenSize	"RegisScreenSize"
 #define XtCRenderFont		"RenderFont"
+#define XtCResizeByPixel	"ResizeByPixel"
 #define XtCResizeGravity	"ResizeGravity"
 #define XtCRetryInputMethod	"RetryInputMethod"
 #define XtCReverseWrap		"ReverseWrap"
@@ -992,7 +1000,7 @@ extern void ShowCursor (XtermWidget /* x
 extern void SwitchBufPtrs (TScreen * /* screen */, int /* toBuf */);
 extern void ToggleAlternate (XtermWidget /* xw */);
 extern void VTInitTranslations (void);
-extern void VTReset (XtermWidget /* xw */, int /* full */, int /* saved */) GCC_NORETURN;
+extern GCC_NORETURN void VTReset (XtermWidget /* xw */, int /* full */, int /* saved */);
 extern void VTRun (XtermWidget /* xw */);
 extern void dotext (XtermWidget /* xw */, DECNRCM_codes /* charset */, IChar * /* buf */, Cardinal  /* len */);
 extern void getKeymapResources(Widget /* w */, const char * /*mapName */, const char * /* mapClass */, const char * /* type */, void * /* result */, size_t /* size */);
@@ -1120,7 +1128,7 @@ extern void first_map_occurred (void);
 #define first_map_occurred() /* nothing */
 #endif
 
-extern void Exit (int /* n */) GCC_NORETURN;
+extern GCC_NORETURN void Exit (int /* n */);
 
 #ifndef SIG_ATOMIC_T
 #define SIG_ATOMIC_T int
@@ -1178,7 +1186,7 @@ extern void ChangeGroup(XtermWidget /* x
 extern void ChangeIconName (XtermWidget /* xw */, char * /* name */);
 extern void ChangeTitle (XtermWidget /* xw */, char * /* name */);
 extern void ChangeXprop (char * /* name */);
-extern void Cleanup (int /* code */) GCC_NORETURN;
+extern GCC_NORETURN void Cleanup (int /* code */);
 extern void HandleBellPropertyChange   PROTO_XT_EV_HANDLER_ARGS;
 extern void HandleEightBitKeyPressed   PROTO_XT_ACTIONS_ARGS;
 extern void HandleEnterWindow          PROTO_XT_EV_HANDLER_ARGS;
@@ -1192,7 +1200,7 @@ extern void NormalExit (void);
 extern void Panic (const char * /* s */, int /* a */);
 extern void Redraw (void);
 extern void ReverseOldColors (XtermWidget /* xw */);
-extern void SysError (int /* i */) GCC_NORETURN;
+extern GCC_NORETURN void SysError (int /* i */);
 extern void VisualBell (void);
 extern void cleanup_colored_cursor (void);
 extern void do_ansi_rqm (XtermWidget /* xw */, int /* nparam */, int * /* params */);
@@ -1205,7 +1213,7 @@ extern void end_vt_mode (void);
 extern void free_string(String value);
 extern void hide_tek_window (void);
 extern void hide_vt_window (void);
-extern void ice_error (IceConn /* iceConn */) GCC_NORETURN;
+extern GCC_NORETURN void ice_error (IceConn /* iceConn */);
 extern void init_colored_cursor (Display * /* dpy */);
 extern void reset_decudk (XtermWidget /* xw */);
 extern void set_tek_visibility (Bool /* on */);
@@ -1213,16 +1221,17 @@ extern void set_vt_visibility (Bool /* o
 extern void switch_modes (Bool /* tovt */);
 extern void timestamp_filename(char * /* dst */, const char * /* src */);
 extern void xevents (XtermWidget /* xw */);
-extern void xt_error (String /* message */) GCC_NORETURN;
+extern GCC_NORETURN void xt_error (String /* message */);
 extern void xtermBell(XtermWidget /* xw */, int /* which */, int /* percent */);
 extern void xtermCopyEnv (char ** /* oldenv */);
-extern void xtermDisplayCursor (XtermWidget /* xw */);
+extern void xtermDisplayPointer (XtermWidget /* xw */);
 extern void xtermDeiconify (XtermWidget /* xw */);
 extern void xtermEmbedWindow (Window /* winToEmbedInfo */);
 extern void xtermIconify (XtermWidget /* xw */);
 extern void xtermLoadIcon (XtermWidget /* xw */, const char * /* icon_hint */);
 extern void xtermPerror (const char * /*fmt*/,...) GCC_PRINTFLIKE(1,2);
 extern void xtermSetenv (const char * /* var */, const char * /* value */);
+extern void xtermSetupPointer (XtermWidget /* xw */, const char * /* theShape */);
 extern void xtermSetWinSize (XtermWidget /* xw */);
 extern void xtermShowPointer (XtermWidget /* xw */, Bool /* enable */);
 extern void xtermUnsetenv (const char * /* var */);

Index: xsrc/external/mit/xterm/include/xtermcfg.h
diff -u xsrc/external/mit/xterm/include/xtermcfg.h:1.15 xsrc/external/mit/xterm/include/xtermcfg.h:1.16
--- xsrc/external/mit/xterm/include/xtermcfg.h:1.15	Wed Feb 17 03:03:27 2021
+++ xsrc/external/mit/xterm/include/xtermcfg.h	Tue Apr 27 01:58:18 2021
@@ -98,6 +98,7 @@
 #define HAVE_SETPGID 1		/* AC_CHECK_FUNCS(setpgid) */
 #define HAVE_STDINT_H 1		/* AC_PROG_CC_STDC */
 #define HAVE_STDLIB_H 1		/* AC_CHECK_HEADERS(stdlib.h) */
+#define HAVE_STDNORETURN_H 1		/* CF_C11_NORETURN */
 #define HAVE_STRFTIME 1		/* AC_CHECK_FUNCS(strftime) */
 /* #undef HAVE_SYS_TIME_H */		/* AC_HEADER_TIME */
 #define HAVE_SYS_TTYDEFAULTS_H 1	/* AC_CHECK_HEADERS(sys/ttydefaults.h) */
@@ -190,7 +191,7 @@
 /* #undef OPT_TOOLBAR */		/* CF_ARG_ENABLE(toolbar) */
 /* #undef OPT_VT52_MODE */		/* CF_ARG_DISABLE(vt52) */
 /* #undef OPT_WIDER_ICHAR */		/* CF_ARG_ENABLE(16bit-chars) */
-/* #undef OPT_WIDE_ATTRS */		/* CF_ARG_DISABLE(wide-attrs) */
+#define OPT_WIDE_ATTRS 1		/* CF_ARG_DISABLE(wide-attrs) */
 #define OPT_WIDE_CHARS 1		/* CF_ARG_DISABLE(wide-chars) */
 /* #undef OPT_XMC_GLITCH */		/* CF_ARG_ENABLE(xmc-glitch) */
 /* #undef OPT_ZICONBEEP */		/* CF_ARG_DISABLE(ziconbeep) */
@@ -199,6 +200,7 @@
 /* #undef PROCFS_ROOT */		/* CF_ARG_ENABLE(exec-xterm) */
 #define SCROLLBAR_RIGHT 1		/* CF_ARG_ENABLE(rightbar) */
 #define SIG_ATOMIC_T volatile sig_atomic_t		/* CF_SIG_ATOMIC_T */
+#define STDC_NORETURN 1			/* CF_C11_NORETURN */
 /* #undef SVR4 */			/* CF_SVR4, imake */
 /* #undef SYSV */			/* CF_SYSV, imake */
 #define TIME_WITH_SYS_TIME 1	/* AC_HEADER_TIME */
@@ -239,7 +241,7 @@
  */
 #ifndef __cplusplus
 #define GCC_PRINTF	1
-#define GCC_PRINTFLIKE(fmt,var)	__attribute__((format(printf,fmt,var)))
+#define GCC_PRINTFLIKE(fmt,var)	__attribute__((__format__(__printf__,fmt,var)))
 #define GCC_NORETURN	__attribute__((__noreturn__))
 #define GCC_UNUSED	__attribute__((__unused__))
 #endif

Reply via email to