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