diff --git a/app/xterm/MANIFEST b/app/xterm/MANIFEST index ff79fa6b6..1009b4856 100644 --- a/app/xterm/MANIFEST +++ b/app/xterm/MANIFEST @@ -1,4 +1,4 @@ -MANIFEST for xterm-320, version xterm-320 +MANIFEST for xterm-322, version xterm-322 -------------------------------------------------------------------------------- MANIFEST this file 256colres.h resource-definitions for 256-color mode diff --git a/app/xterm/Makefile b/app/xterm/Makefile index 908890c1d..7fecea4d6 100644 --- a/app/xterm/Makefile +++ b/app/xterm/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.26 2014/08/13 21:02:16 matthieu Exp $ +# $OpenBSD: Makefile,v 1.27 2016/01/13 20:40:08 matthieu Exp $ .include SUBDIR= icons resize @@ -15,8 +15,8 @@ CPPFLAGS+= -I. -I${.CURDIR} -I${X11BASE}/include \ -DFUNCPROTO=15 -DNARROWPROTO -DXFREE86_FT2 -DUTMP \ -DDEF_ALLOW_FONT=False -DDEF_ALLOW_TCAP=False \ -DDEF_ALLOW_WINDOW=False -LDADD+= -L${X11BASE}/lib -lXaw -lXpm -lXt -lSM -lICE \ - -lXmu -lXft -lXrender -lX11 -lxcb -lXext -lXau -lXdmcp \ +LDADD+= -L${X11BASE}/lib -lXaw -lXpm -lXt -lSM -lICE -lXmu \ + -lXft -lXrender -lXinerama -lX11 -lxcb -lXext -lXau -lXdmcp \ -lfontconfig -lexpat -lfreetype -lutil -ltermcap -lz SRCS= TekPrsTbl.c Tekproc.c VTPrsTbl.c button.c cachedGCs.c \ diff --git a/app/xterm/button.c b/app/xterm/button.c index e40713617..c89da83b0 100644 --- a/app/xterm/button.c +++ b/app/xterm/button.c @@ -1,4 +1,4 @@ -/* $XTermId: button.c,v 1.494 2015/08/27 23:47:56 tom Exp $ */ +/* $XTermId: button.c,v 1.498 2015/12/31 11:26:38 tom Exp $ */ /* * Copyright 1999-2014,2015 by Thomas E. Dickey @@ -3829,6 +3829,8 @@ _ConvertSelectionHelper(Widget w, Atom *type, XtPointer *value, unsigned long *length, + Char *data, + unsigned long remaining, int *format, int (*conversion_function) (Display *, char **, int, @@ -3848,9 +3850,8 @@ _ConvertSelectionHelper(Widget w, Display *dpy = XtDisplay(w); XTextProperty textprop; int out_n = 0; - unsigned long remaining = screen->selection_length; char *result = 0; - char *the_data = (char *) screen->selection_data; + char *the_data = (char *) data; char *the_next; TRACE(("converting %ld:'%s'\n", @@ -3937,6 +3938,9 @@ SaveConvertedLength(XtPointer *target, unsigned long source) return result; } +#define keepClipboard(atom) ((screen->keepClipboard) && \ + (atom == XInternAtom(screen->display, "CLIPBOARD", False))) + static Boolean ConvertSelection(Widget w, Atom *selection, @@ -3950,6 +3954,9 @@ ConvertSelection(Widget w, TScreen *screen; Bool result = False; + Char *data; + unsigned long data_length; + XtermWidget xw; if ((xw = getXtermWidget(w)) == 0) @@ -3960,7 +3967,17 @@ ConvertSelection(Widget w, TRACE(("ConvertSelection %s\n", visibleSelectionTarget(dpy, *target))); - if (screen->selection_data == NULL) { + if (keepClipboard(*selection)) { + TRACE(("asked for clipboard\n")); + data = screen->clipboard_data; + data_length = screen->clipboard_size; + } else { + TRACE(("asked for selection\n")); + data = screen->selection_data; + data_length = screen->selection_length; + } + + if (data == NULL) { TRACE(("...FIXME: no selection_data\n")); return False; /* can this happen? */ } @@ -4009,28 +4026,32 @@ ConvertSelection(Widget w, else if (screen->wide_chars && *target == XA_STRING) { result = _ConvertSelectionHelper(w, - type, value, length, format, + type, value, length, data, + data_length, format, Xutf8TextListToTextProperty, XStringStyle); TRACE(("...Xutf8TextListToTextProperty:%d\n", result)); } else if (screen->wide_chars && *target == XA_UTF8_STRING(dpy)) { result = _ConvertSelectionHelper(w, - type, value, length, format, + type, value, length, data, + data_length, format, Xutf8TextListToTextProperty, XUTF8StringStyle); TRACE(("...Xutf8TextListToTextProperty:%d\n", result)); } else if (screen->wide_chars && *target == XA_TEXT(dpy)) { result = _ConvertSelectionHelper(w, - type, value, length, format, + type, value, length, data, + data_length, format, Xutf8TextListToTextProperty, XStdICCTextStyle); TRACE(("...Xutf8TextListToTextProperty:%d\n", result)); } else if (screen->wide_chars && *target == XA_COMPOUND_TEXT(dpy)) { result = _ConvertSelectionHelper(w, - type, value, length, format, + type, value, length, data, + data_length, format, Xutf8TextListToTextProperty, XCompoundTextStyle); TRACE(("...Xutf8TextListToTextProperty:%d\n", result)); @@ -4053,14 +4074,16 @@ ConvertSelection(Widget w, } else if (*target == XA_TEXT(dpy)) { /* not wide_chars */ result = _ConvertSelectionHelper(w, - type, value, length, format, + type, value, length, data, + data_length, format, XmbTextListToTextProperty, XStdICCTextStyle); TRACE(("...XmbTextListToTextProperty(StdICC):%d\n", result)); } else if (*target == XA_COMPOUND_TEXT(dpy)) { /* not wide_chars */ result = _ConvertSelectionHelper(w, - type, value, length, format, + type, value, length, data, + data_length, format, XmbTextListToTextProperty, XCompoundTextStyle); TRACE(("...XmbTextListToTextProperty(Compound):%d\n", result)); @@ -4069,7 +4092,8 @@ ConvertSelection(Widget w, else if (*target == XA_UTF8_STRING(dpy)) { /* not wide_chars */ result = _ConvertSelectionHelper(w, - type, value, length, format, + type, value, length, data, + data_length, format, XmbTextListToTextProperty, XUTF8StringStyle); TRACE(("...XmbTextListToTextProperty(UTF8):%d\n", result)); @@ -4203,6 +4227,16 @@ _OwnSelection(XtermWidget xw, (int) length, cutbuffer); } + } else if (keepClipboard(atoms[i])) { + Char *buf; + TRACE(("saving selection to clipboard buffer\n")); + if ((buf = (Char *) malloc((size_t) screen->selection_length)) == 0) + SysError(ERROR_BMALLOC2); + + XtFree((char *) screen->clipboard_data); + memcpy(buf, screen->selection_data, screen->selection_length); + screen->clipboard_data = buf; + screen->clipboard_size = screen->selection_length; } else if (screen->selection_length == 0) { XtDisownSelection((Widget) xw, atoms[i], screen->selection_time); } else if (!screen->replyToEmacs) { diff --git a/app/xterm/charproc.c b/app/xterm/charproc.c index c331a5f23..44ffff33d 100644 --- a/app/xterm/charproc.c +++ b/app/xterm/charproc.c @@ -1,4 +1,4 @@ -/* $XTermId: charproc.c,v 1.1413 2015/07/15 09:21:40 tom Exp $ */ +/* $XTermId: charproc.c,v 1.1414 2015/12/30 09:38:49 tom Exp $ */ /* * Copyright 1999-2014,2015 by Thomas E. Dickey @@ -279,6 +279,7 @@ static XtActionsRec actionsList[] = { { "set-bellIsUrgent", HandleBellIsUrgent }, { "set-cursesemul", HandleCursesEmul }, { "set-jumpscroll", HandleJumpscroll }, + { "set-keep-clipboard", HandleKeepClipboard }, { "set-keep-selection", HandleKeepSelection }, { "set-marginbell", HandleMarginBell }, { "set-old-function-keys", HandleOldFunctionKeys }, @@ -442,6 +443,7 @@ static XtResource xterm_resources[] = Bres(XtNi18nSelections, XtCI18nSelections, screen.i18nSelections, True), Bres(XtNfastScroll, XtCFastScroll, screen.fastscroll, False), Bres(XtNjumpScroll, XtCJumpScroll, screen.jumpscroll, True), + Bres(XtNkeepClipboard, XtCKeepClipboard, screen.keepClipboard, False), Bres(XtNkeepSelection, XtCKeepSelection, screen.keepSelection, True), Bres(XtNloginShell, XtCLoginShell, misc.login_shell, False), Bres(XtNmarginBell, XtCMarginBell, screen.marginbell, False), @@ -5603,6 +5605,10 @@ dpmodes(XtermWidget xw, BitFunc func) set_bool_mode(screen->poponbell); update_poponbell(); break; + case srm_KEEP_CLIPBOARD: + set_bool_mode(screen->keepClipboard); + update_keepClipboard(); + break; case srm_TITE_INHIBIT: if (!xw->misc.titeInhibit) { if (IsSM()) @@ -5873,6 +5879,9 @@ savemodes(XtermWidget xw) case srm_POP_ON_BELL: DoSM(DP_POP_ON_BELL, screen->poponbell); break; + case srm_KEEP_CLIPBOARD: + DoSM(DP_KEEP_CLIPBOARD, screen->keepClipboard); + break; #if OPT_TCAP_FKEYS case srm_TCAP_FKEYS: /* FALLTHRU */ @@ -6208,6 +6217,10 @@ restoremodes(XtermWidget xw) DoRM(DP_POP_ON_BELL, screen->poponbell); update_poponbell(); break; + case srm_KEEP_CLIPBOARD: + DoRM(DP_KEEP_CLIPBOARD, screen->keepClipboard); + update_keepClipboard(); + break; #if OPT_TCAP_FKEYS case srm_TCAP_FKEYS: /* FALLTHRU */ @@ -7955,6 +7968,7 @@ VTInitialize(Widget wrequest, init_Bres(screen.highlight_selection); init_Bres(screen.show_wrap_marks); init_Bres(screen.i18nSelections); + init_Bres(screen.keepClipboard); init_Bres(screen.keepSelection); init_Bres(screen.selectToClipboard); init_Bres(screen.trim_selection); diff --git a/app/xterm/ctlseqs.ms b/app/xterm/ctlseqs.ms index 89f3a8966..bd39e85f7 100644 --- a/app/xterm/ctlseqs.ms +++ b/app/xterm/ctlseqs.ms @@ -1,6 +1,6 @@ .\"#! troff -ms $1 -*- Nroff -*- .\" "Xterm Control Sequences" document -.\" $XTermId: ctlseqs.ms,v 1.324 2015/08/19 23:20:41 tom Exp $ +.\" $XTermId: ctlseqs.ms,v 1.326 2015/12/30 10:02:15 tom Exp $ .\" .\" .\" Copyright 1996-2014,2015 by Thomas E. Dickey @@ -69,8 +69,8 @@ .\" .ds XT XTerm .ds xt xterm -.ds LF Patch #318 -.ds RF 2015/08/19 +.ds LF Patch #321 +.ds RF 2015/12/30 .\" .if n .pl 9999v \" no page breaks in nroff .ND @@ -1001,6 +1001,8 @@ See the section \fBMouse Tracking\fP. This is the X11 xterm mouse protocol. (This enables the \fBbellIsUrgent\fP resource). \*(Ps = \*1\*0\*4\*3 \(-> Enable raising of the window when Control-G is received. (enables the \fBpopOnBell\fP resource). + \*(Ps = \*1\*0\*4\*4 \(-> Reuse the most recent data copied to CLIPBOARD. +(This enables the \fBkeepClipboard\fP resource). \*(Ps = \*1\*0\*4\*7 \(-> Use Alternate Screen Buffer. (This may be disabled by the \fBtiteInhibit\fP resource). \*(Ps = \*1\*0\*4\*8 \(-> Save cursor as in DECSC. (This may be @@ -1193,10 +1195,10 @@ ISO-8613-3 can be interpreted in more than one way; .RE .sP These ISO-8613-3 controls are supported: - \*(Ps = \*3\*8\*;\*2\*;\*(Pr\*;\*(Pg\*;\*(Pb \(-> Set foreground color to the closest match in \fIxterm\fP's palette for the given RGB \*(Pr/\*(Pg/\*(Pb. - \*(Ps = \*3\*8\*;\*5\*;\*(Ps \(-> Set foreground color to the second \*(Ps. - \*(Ps = \*4\*8\*;\*2\*;\*(Pr\*;\*(Pg\*;\*(Pb \(-> Set background color to the closest match in \fIxterm\fP's palette for the given RGB \*(Pr/\*(Pg/\*(Pb. - \*(Ps = \*4\*8\*;\*5\*;\*(Ps \(-> Set background color to the second \*(Ps. + \*(Pm = \*3\*8\*;\*2\*;\*(Pr\*;\*(Pg\*;\*(Pb \(-> Set foreground color to the closest match in \fIxterm\fP's palette for the given RGB \*(Pr/\*(Pg/\*(Pb. + \*(Pm = \*3\*8\*;\*5\*;\*(Ps \(-> Set foreground color to the second \*(Ps. + \*(Pm = \*4\*8\*;\*2\*;\*(Pr\*;\*(Pg\*;\*(Pb \(-> Set background color to the closest match in \fIxterm\fP's palette for the given RGB \*(Pr/\*(Pg/\*(Pb. + \*(Pm = \*4\*8\*;\*5\*;\*(Ps \(-> Set background color to the second \*(Ps. .sp . .IP \\*(Cs\\*>\\*(Ps\\*;\\*(Ps\\*s\\*m diff --git a/app/xterm/ctlseqs.txt b/app/xterm/ctlseqs.txt index 4a8858b06..c44891706 100644 --- a/app/xterm/ctlseqs.txt +++ b/app/xterm/ctlseqs.txt @@ -21,7 +21,7 @@ Thomas Dickey XFree86 Project (1996-2006) invisible-island.net (2006-2015) - updated for XTerm Patch #318 (2015/08/19) + updated for XTerm Patch #321 (2015/12/30) @@ -491,6 +491,8 @@ CSI ? Pm h resource). Ps = 1 0 4 3 -> Enable raising of the window when Control-G is received. (enables the popOnBell resource). + Ps = 1 0 4 4 -> Reuse the most recent data copied to CLIP- + BOARD. (This enables the keepClipboard resource). Ps = 1 0 4 7 -> Use Alternate Screen Buffer. (This may be disabled by the titeInhibit resource). Ps = 1 0 4 8 -> Save cursor as in DECSC. (This may be dis- @@ -678,12 +680,12 @@ CSI Pm m Character Attributes (SGR). colons (but after the first colon, colons must be used). These ISO-8613-3 controls are supported: - Ps = 3 8 ; 2 ; Pr; Pg; Pb -> Set foreground color to the + Pm = 3 8 ; 2 ; Pr; Pg; Pb -> Set foreground color to the closest match in xterm's palette for the given RGB Pr/Pg/Pb. - Ps = 3 8 ; 5 ; Ps -> Set foreground color to the second Ps. - Ps = 4 8 ; 2 ; Pr; Pg; Pb -> Set background color to the + Pm = 3 8 ; 5 ; Ps -> Set foreground color to the second Ps. + Pm = 4 8 ; 2 ; Pr; Pg; Pb -> Set background color to the closest match in xterm's palette for the given RGB Pr/Pg/Pb. - Ps = 4 8 ; 5 ; Ps -> Set background color to the second Ps. + Pm = 4 8 ; 5 ; Ps -> Set background color to the second Ps. CSI > Ps; Ps m Set or reset resource-values used by xterm to decide whether diff --git a/app/xterm/main.c b/app/xterm/main.c index 5fa530644..d2a5edf4b 100644 --- a/app/xterm/main.c +++ b/app/xterm/main.c @@ -1,7 +1,7 @@ -/* $XTermId: main.c,v 1.773 2015/08/26 23:39:36 tom Exp $ */ +/* $XTermId: main.c,v 1.777 2016/01/02 14:12:19 tom Exp $ */ /* - * Copyright 2002-2014,2015 by Thomas E. Dickey + * Copyright 2002-2015,2016 by Thomas E. Dickey * * All Rights Reserved * @@ -1947,6 +1947,23 @@ setEffectiveUser(uid_t user) #endif #endif /* HAVE_POSIX_SAVED_IDS */ +#if OPT_LUIT_PROG +static Boolean +complex_command(char **args) +{ + Boolean result = False; + if (x_countargv(args) == 1) { + char *check = xtermFindShell(args[0], False); + if (check == 0) { + result = True; + } else { + free(check); + } + } + return result; +} +#endif + int main(int argc, char *argv[]ENVP_ARG) { @@ -2448,10 +2465,15 @@ main(int argc, char *argv[]ENVP_ARG) } command_length_with_luit = x_countargv(command_to_exec_with_luit); if (count_exec) { + static char *fixup_shell[] = + {"sh", "-c", 0}; char *delimiter[2]; delimiter[0] = x_strdup("--"); delimiter[1] = 0; x_appendargv(command_to_exec_with_luit, delimiter); + if (complex_command(command_to_exec)) { + x_appendargv(command_to_exec_with_luit, fixup_shell); + } x_appendargv(command_to_exec_with_luit, command_to_exec); } TRACE_ARGV("luit command", command_to_exec_with_luit); @@ -2647,6 +2669,10 @@ get_pty(int *pty, char *from GCC_UNUSED) #if defined(USE_OPENPTY) result = openpty(pty, &opened_tty, ttydev, NULL, NULL); + if (opened_tty >= 0) { + close(opened_tty); + opened_tty = -1; + } #elif defined(HAVE_POSIX_OPENPT) && defined(HAVE_PTSNAME) && defined(HAVE_GRANTPT_PTY_ISATTY) if ((*pty = posix_openpt(O_RDWR)) >= 0) { char *name = ptsname(*pty); @@ -2802,12 +2828,6 @@ get_pty(int *pty, char *from) seteuid(save_ruid); TRACE_IDS; -#ifdef USE_OPENPTY - if (opened_tty >= 0) { - close(opened_tty); - opened_tty = -1; - } -#endif } else if (m_pty != -1) { *pty = m_pty; result = 0; @@ -2819,6 +2839,12 @@ get_pty(int *pty, char *from) ptydev != 0 ? ptydev : "?", result ? "FAIL" : "OK", pty != 0 ? *pty : -1)); +#ifdef USE_OPENPTY + if (opened_tty >= 0) { + close(opened_tty); + opened_tty = -1; + } +#endif return result; } #endif @@ -3241,7 +3267,8 @@ validShell(const char *pathname) if (validProgram(pathname) && stat(ok_shells, &sb) == 0 && (sb.st_mode & S_IFMT) == S_IFREG - && (sb.st_size != 0) + && ((size_t) sb.st_size > 0) + && ((size_t) sb.st_size < (((size_t) ~0) - 2)) && (blob = calloc((size_t) sb.st_size + 2, sizeof(char))) != 0) { if ((fp = fopen(ok_shells, "r")) != 0) { rc = fread(blob, sizeof(char), (size_t) sb.st_size, fp); diff --git a/app/xterm/menu.c b/app/xterm/menu.c index 75c291361..fab8a80af 100644 --- a/app/xterm/menu.c +++ b/app/xterm/menu.c @@ -1,4 +1,4 @@ -/* $XTermId: menu.c,v 1.331 2015/04/10 01:11:52 tom Exp $ */ +/* $XTermId: menu.c,v 1.332 2015/12/30 09:40:28 tom Exp $ */ /* * Copyright 1999-2014,2015 by Thomas E. Dickey @@ -157,6 +157,7 @@ static void do_delete_del PROTO_XT_CALLBACK_ARGS; static void do_hardreset PROTO_XT_CALLBACK_ARGS; static void do_interrupt PROTO_XT_CALLBACK_ARGS; static void do_jumpscroll PROTO_XT_CALLBACK_ARGS; +static void do_keepClipboard PROTO_XT_CALLBACK_ARGS; static void do_keepSelection PROTO_XT_CALLBACK_ARGS; static void do_kill PROTO_XT_CALLBACK_ARGS; static void do_old_fkeys PROTO_XT_CALLBACK_ARGS; @@ -1470,6 +1471,17 @@ do_scrollttyoutput(Widget gw GCC_UNUSED, update_scrollttyoutput(); } +static void +do_keepClipboard(Widget gw GCC_UNUSED, + XtPointer closure GCC_UNUSED, + XtPointer data GCC_UNUSED) +{ + TScreen *screen = TScreenOf(term); + + ToggleFlag(screen->keepClipboard); + update_keepClipboard(); +} + static void do_keepSelection(Widget gw GCC_UNUSED, XtPointer closure GCC_UNUSED, @@ -2421,6 +2433,15 @@ HandleJumpscroll(Widget w, HANDLE_VT_TOGGLE(jumpscroll); } +void +HandleKeepClipboard(Widget w, + XEvent *event GCC_UNUSED, + String *params, + Cardinal *param_count) +{ + HANDLE_VT_TOGGLE(keepClipboard); +} + void HandleKeepSelection(Widget w, XEvent *event GCC_UNUSED, diff --git a/app/xterm/menu.h b/app/xterm/menu.h index e2194154c..0a10a389d 100644 --- a/app/xterm/menu.h +++ b/app/xterm/menu.h @@ -1,7 +1,7 @@ -/* $XTermId: menu.h,v 1.135 2014/09/04 00:17:55 tom Exp $ */ +/* $XTermId: menu.h,v 1.136 2015/12/30 09:53:02 tom Exp $ */ /* - * Copyright 1999-2013,2014 by Thomas E. Dickey + * Copyright 1999-2014,2015 by Thomas E. Dickey * * All Rights Reserved * @@ -104,6 +104,7 @@ extern void HandleFullscreen PROTO_XT_ACTIONS_ARGS; extern void HandleHardReset PROTO_XT_ACTIONS_ARGS; extern void HandleHpFunctionKeys PROTO_XT_ACTIONS_ARGS; extern void HandleJumpscroll PROTO_XT_ACTIONS_ARGS; +extern void HandleKeepClipboard PROTO_XT_ACTIONS_ARGS; extern void HandleKeepSelection PROTO_XT_ACTIONS_ARGS; extern void HandleLogging PROTO_XT_ACTIONS_ARGS; extern void HandleMarginBell PROTO_XT_ACTIONS_ARGS; @@ -450,6 +451,7 @@ extern void update_visualbell(void); extern void update_bellIsUrgent(void); extern void update_poponbell(void); +#define update_keepClipboard() /* nothing */ #define update_marginbell() /* nothing */ #if OPT_LOAD_VTFONTS diff --git a/app/xterm/package/debian/changelog b/app/xterm/package/debian/changelog index f47483cbc..1d0ce2351 100644 --- a/app/xterm/package/debian/changelog +++ b/app/xterm/package/debian/changelog @@ -1,3 +1,15 @@ +xterm-dev (322) unstable; urgency=low + + * maintenance updates + + -- Thomas E. Dickey Sat, 02 Jan 2016 08:42:56 -0500 + +xterm-dev (321) unstable; urgency=low + + * maintenance updates + + -- Thomas E. Dickey Sun, 27 Sep 2015 19:17:50 -0400 + xterm-dev (320) unstable; urgency=low * maintenance updates diff --git a/app/xterm/package/debian/copyright b/app/xterm/package/debian/copyright index 0a69d3026..1280a8cd5 100644 --- a/app/xterm/package/debian/copyright +++ b/app/xterm/package/debian/copyright @@ -35,7 +35,7 @@ authorization. Files: * */* License: MIT-X11 -Copyright 1996-2014,2015 by Thomas E. Dickey +Copyright 1996-2015,2016 by Thomas E. Dickey (date ranges vary, depending on when the respective files were first changed significantly, and run through the most recent change date). diff --git a/app/xterm/package/freebsd/Makefile b/app/xterm/package/freebsd/Makefile index 5e8806fb8..55f002bea 100644 --- a/app/xterm/package/freebsd/Makefile +++ b/app/xterm/package/freebsd/Makefile @@ -5,7 +5,7 @@ # and "make makesum". PORTNAME= xterm -PORTVERSION= 320 +PORTVERSION= 322 CATEGORIES= x11 MASTER_SITES= ftp://invisible-island.net/xterm/ \ CRITICAL diff --git a/app/xterm/package/xterm.spec b/app/xterm/package/xterm.spec index bd2aff7f5..d2e5b700f 100644 --- a/app/xterm/package/xterm.spec +++ b/app/xterm/package/xterm.spec @@ -1,11 +1,11 @@ -# $XTermId: xterm.spec,v 1.85 2015/08/26 21:52:20 tom Exp $ +# $XTermId: xterm.spec,v 1.87 2016/01/02 13:42:56 tom Exp $ Summary: X terminal emulator (development version) %global my_middle xterm %global my_suffix -dev %global fullname %{my_middle}%{my_suffix} %global my_class XTermDev Name: %{fullname} -Version: 320 +Version: 322 Release: 1 License: X11 Group: User Interface/X diff --git a/app/xterm/ptyx.h b/app/xterm/ptyx.h index fa8159c90..151de47f3 100644 --- a/app/xterm/ptyx.h +++ b/app/xterm/ptyx.h @@ -1,4 +1,4 @@ -/* $XTermId: ptyx.h,v 1.823 2015/02/16 00:25:27 tom Exp $ */ +/* $XTermId: ptyx.h,v 1.825 2015/12/30 02:07:03 tom Exp $ */ /* * Copyright 1999-2014,2015 by Thomas E. Dickey @@ -1067,6 +1067,7 @@ typedef enum { ,srm_SELECT_TO_CLIPBOARD = 1041 ,srm_BELL_IS_URGENT = 1042 ,srm_POP_ON_BELL = 1043 + ,srm_KEEP_CLIPBOARD = 1044 ,srm_TITE_INHIBIT = 1048 #if OPT_TCAP_FKEYS ,srm_TCAP_FKEYS = 1050 @@ -1661,6 +1662,7 @@ typedef enum { DP_DECTCEM, DP_DELETE_IS_DEL, DP_EIGHT_BIT_META, + DP_KEEP_CLIPBOARD, DP_KEEP_SELECTION, DP_KEYBOARD_TYPE, DP_POP_ON_BELL, @@ -2320,11 +2322,14 @@ typedef struct { Boolean trim_selection; /* controls trimming of selection */ Boolean i18nSelections; Boolean brokenSelections; + Boolean keepClipboard; /* retain data sent to clipboard */ Boolean keepSelection; /* do not lose selection on output */ Boolean replyToEmacs; /* Send emacs escape code when done selecting or extending? */ Char *selection_data; /* the current selection */ int selection_size; /* size of allocated buffer */ unsigned long selection_length; /* number of significant bytes */ + Char *clipboard_data; /* the current clipboard */ + unsigned long clipboard_size; /* size of allocated buffer */ EventMode eventMode; Time selection_time; /* latest event timestamp */ Time lastButtonUpTime; diff --git a/app/xterm/version.h b/app/xterm/version.h index 66d8e9367..31f536b0c 100644 --- a/app/xterm/version.h +++ b/app/xterm/version.h @@ -1,7 +1,7 @@ -/* $XTermId: version.h,v 1.418 2015/08/28 08:40:40 tom Exp $ */ +/* $XTermId: version.h,v 1.422 2016/01/02 14:15:49 tom Exp $ */ /* - * Copyright 1998-2014,2015 by Thomas E. Dickey + * Copyright 1998-2015,2016 by Thomas E. Dickey * * All Rights Reserved * @@ -38,8 +38,8 @@ * version of X to which this version of xterm has been built. The resulting * number in parentheses is my patch number (Thomas E. Dickey). */ -#define XTERM_PATCH 320 -#define XTERM_DATE 2015-08-28 +#define XTERM_PATCH 322 +#define XTERM_DATE 2016-01-02 #ifndef __vendorversion__ #define __vendorversion__ "XTerm/OpenBSD" diff --git a/app/xterm/xterm.h b/app/xterm/xterm.h index 99af8c2d7..3eed2c640 100644 --- a/app/xterm/xterm.h +++ b/app/xterm/xterm.h @@ -1,4 +1,4 @@ -/* $XTermId: xterm.h,v 1.758 2015/08/19 00:26:56 tom Exp $ */ +/* $XTermId: xterm.h,v 1.759 2015/12/30 02:00:38 tom Exp $ */ /* * Copyright 1999-2014,2015 by Thomas E. Dickey @@ -474,6 +474,7 @@ extern char **environ; #define XtNinternalBorder "internalBorder" #define XtNitalicULMode "italicULMode" #define XtNjumpScroll "jumpScroll" +#define XtNkeepClipboard "keepClipboard" #define XtNkeepSelection "keepSelection" #define XtNkeyboardDialect "keyboardDialect" #define XtNlimitResize "limitResize" @@ -658,6 +659,7 @@ extern char **environ; #define XtCIconHint "IconHint" #define XtCInitialFont "InitialFont" #define XtCJumpScroll "JumpScroll" +#define XtCKeepClipboard "KeepClipboard" #define XtCKeepSelection "KeepSelection" #define XtCKeyboardDialect "KeyboardDialect" #define XtCLimitResize "LimitResize" diff --git a/app/xterm/xterm.log.html b/app/xterm/xterm.log.html index 01adfe562..2349539a7 100644 --- a/app/xterm/xterm.log.html +++ b/app/xterm/xterm.log.html @@ -2,7 +2,7 @@ ***************************************************************************** * this file is part of xterm * * * - * Copyright 1997-2014,2015 by Thomas E. Dickey * + * Copyright 1997-2015,2016 by Thomas E. Dickey * * * * All Rights Reserved * * * @@ -30,7 +30,7 @@ * sale, use or other dealings in this Software without prior written * * authorization. * ***************************************************************************** - $XTermId: xterm.log.html,v 1.1624 2015/08/28 08:40:19 tom Exp $ + $XTermId: xterm.log.html,v 1.1638 2016/01/02 14:26:50 tom Exp $ --> @@ -72,6 +72,10 @@ CHANGELOG).

+

Patch #322 - + 2016/01/02

+ +
    +
  • fix regression due to incorrect fix for compiler warning + when allocating storage for /etc/shells (reports + by Ashish Shukla, Debian #809646).
  • +
+ +

Patch #321 - + 2015/12/31

+ +
    +
  • add resource keepClipboard, escape sequence + and action keep-clipboard.
  • + +
  • add optional feature to capture text copied to clipboard at + the time of copying rather than at the time the clipboard + contents are requested for pasting (patch by Milan + Mehner).
  • + +
  • improve a special case where the -e option was + used to pass a single-quoted command via luit, by + wrapping it in a “sh -c” (report by Keith + Hedger).
  • + +
  • minor fix for type-cleanliness when allocating storage for + /etc/shells (Tobias Stoeckmann).
  • + +
  • fix a typo in manual page (Dan Church).
  • + +
  • fix minor file-descriptor leak; after calling + openpty, the slave's file descriptor is not needed + (report by Juha Nurmela).
  • + +
  • editorial change to ctlseqs.ms (report by David + Gomboc).
  • + +
  • minor updates for autoconf macros.
  • + +
  • update config.guess, config.sub
  • +
+

Patch #320 - 2015/08/28

diff --git a/app/xterm/xterm.man b/app/xterm/xterm.man index 14f7a46a9..1c31bb3bd 100644 --- a/app/xterm/xterm.man +++ b/app/xterm/xterm.man @@ -1,5 +1,5 @@ '\" t -.\" $XTermId: xterm.man,v 1.617 2015/08/28 08:48:38 tom Exp $ +.\" $XTermId: xterm.man,v 1.619 2015/12/31 12:41:07 tom Exp $ .\" .\" Copyright 1996-2014,2015 by Thomas E. Dickey .\" @@ -423,7 +423,7 @@ set the amount of time text cursor is off when blinking via the .TP 8 .BI \-bcn " milliseconds" set the amount of time text cursor is on when blinking via the -\fIcursorOffTime\fP resource. +\fIcursorOnTime\fP resource. .TP 8 .B "\-bdc" Set the \fIvt100\fP resource \fBcolorBDMode\fR to \*(``false\*('', @@ -3223,6 +3223,12 @@ This corresponds to the VT102 DECSCLM private mode. The default is \*(``true\*(''. See \fBfastScroll\fP for a variation. .TP 8 +.B "keepClipboard (\fPclass\fB KeepClipboard)" +Specifies whether \fI\*n\fR will reuse the selection data which it +copied to the keyboard rather than asking the clipboard for its +current contents when told to provide the selection. +The default is \*(``false\*(''. +.TP 8 .B "keepSelection (\fPclass\fB KeepSelection)" Specifies whether \fI\*n\fR will keep the selection even after the selected area was touched by some output to the terminal. @@ -6178,6 +6184,9 @@ This action sets, unsets or toggles the \fIforcePackedFont\fR's resource 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-keep-clipboard(\fIon/off/toggle\fP)" +This action sets, unsets or toggles the \fBkeepClipboard\fP resource. +.TP 8 .B "set-keep-selection(\fIon/off/toggle\fP)" This action sets, unsets or toggles the \fBkeepSelection\fP resource. It is also invoked by the \fBkeepSelection\fP entry in \fIvtMenu\fP. diff --git a/app/xterm/xtermcfg.h b/app/xterm/xtermcfg.h index 9def6e968..9aa10b18e 100644 --- a/app/xterm/xtermcfg.h +++ b/app/xterm/xtermcfg.h @@ -1,7 +1,7 @@ -/* $XTermId: xtermcfg.hin,v 1.205 2014/05/08 08:05:07 tom Exp $ */ +/* $XTermId: xtermcfg.hin,v 1.209 2015/08/10 23:40:17 tom Exp $ */ /* - * Copyright 1997-2013,2014 by Thomas E. Dickey + * Copyright 1997-2014,2015 by Thomas E. Dickey * * All Rights Reserved * @@ -44,6 +44,7 @@ /* #undef DEF_ALT_SENDS_ESC */ /* CF_ARG_ENABLE(alt-sends-esc) */ /* #undef DEF_BACKARO_BS */ /* CF_ARG_DISABLE(backarrow-key) */ #define DEF_BACKARO_ERASE 1 /* CF_ARG_ENABLE(backarrow-is-erase) */ +/* #undef DEF_INITIAL_ERASE /* CF_ARG_DISABLE(initial-erase) */ /* #undef DEF_META_SENDS_ESC */ /* CF_ARG_ENABLE(meta-sends-esc) */ /* #undef DFT_COLORMODE */ /* AC_ARG_WITH(default-color-mode) */ #define DFT_DECID "100" /* AC_ARG_WITH(default-terminal-id) */ @@ -101,6 +102,7 @@ #define HAVE_WCSWIDTH 1 /* AC_CHECK_FUNCS(wcswidth) */ #define HAVE_WCWIDTH 1 /* AC_CHECK_FUNCS(wcwidth) */ #define HAVE_X11_DECKEYSYM_H 1 /* AC_CHECK_HEADERS(X11/DECkeysym.h) */ +#define HAVE_X11_EXTENSIONS_XINERAMA_H /* AC_CHECK_HEADERS(X11/extensions/Xinerama.h) */ #define HAVE_X11_EXTENSIONS_XKB_H /* AC_CHECK_HEADERS(X11/extensions/XKB.h) */ #define HAVE_X11_SUNKEYSYM_H 1 /* AC_CHECK_HEADERS(X11/Sunkeysym.h) */ #define HAVE_X11_XF86KEYSYM_H 1 /* AC_CHECK_HEADERS(X11/XF86keysym.h) */ @@ -122,6 +124,7 @@ /* #undef OPT_BOX_CHARS */ /* CF_ARG_DISABLE(boxchars) */ #define OPT_BROKEN_OSC 0 /* CF_ARG_ENABLE(broken-osc) */ #define OPT_BROKEN_ST 0 /* CF_ARG_DISABLE(broken-st) */ +/* #undef OPT_BUILTIN_XPMS */ /* CF_ARG_ENABLE(builtin-xpms) */ /* #undef OPT_C1_PRINT */ /* CF_ARG_DISABLE(c1-print) */ /* #undef OPT_COLOR_CLASS */ /* CF_ARG_DISABLE(color-class) */ /* #undef OPT_DABBREV */ /* CF_ARG_ENABLE(dabbrev) */ @@ -210,6 +213,7 @@ #ifndef __cplusplus /* #undef GCC_PRINTF */ /* #undef GCC_PRINTFLIKE */ +/* #undef GCC_NORETURN */ /* #undef GCC_UNUSED */ #endif