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).
+
+
+
+ - fix regression due to incorrect fix for compiler warning
+ when allocating storage for
/etc/shells
(reports
+ by Ashish Shukla, Debian #809646).
+
+
+
+
+
+ - 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
+
+
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