Update to xterm 322. Tested by shadchin@ and jsg@. Thanks.

This commit is contained in:
matthieu 2016-01-13 20:40:08 +00:00
parent 8d4acd4c62
commit 17886faaf7
19 changed files with 237 additions and 56 deletions

View File

@ -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

View File

@ -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 <bsd.xconf.mk>
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 \

View File

@ -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) {

View File

@ -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);

View File

@ -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

View File

@ -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

View File

@ -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);

View File

@ -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,

View File

@ -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

View File

@ -1,3 +1,15 @@
xterm-dev (322) unstable; urgency=low
* maintenance updates
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 02 Jan 2016 08:42:56 -0500
xterm-dev (321) unstable; urgency=low
* maintenance updates
-- Thomas E. Dickey <dickey@invisible-island.net> Sun, 27 Sep 2015 19:17:50 -0400
xterm-dev (320) unstable; urgency=low
* maintenance updates

View File

@ -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).

View File

@ -5,7 +5,7 @@
# and "make makesum".
PORTNAME= xterm
PORTVERSION= 320
PORTVERSION= 322
CATEGORIES= x11
MASTER_SITES= ftp://invisible-island.net/xterm/ \
CRITICAL

View File

@ -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

View File

@ -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;

View File

@ -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"

View File

@ -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"

View File

@ -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 $
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
@ -72,6 +72,10 @@
CHANGELOG</a>).</p>
<ul>
<li><a href="#xterm_322">Patch #322 - 2016/01/02</a></li>
<li><a href="#xterm_321">Patch #321 - 2015/12/31</a></li>
<li><a href="#xterm_320">Patch #320 - 2015/08/28</a></li>
<li><a href="#xterm_319">Patch #319 - 2015/08/19</a></li>
@ -925,6 +929,49 @@
<li><a href="#xterm_01">Patch #1 - 1996/1/6</a></li>
</ul>
<h1><a name="xterm_322" id="xterm_322">Patch #322 -
2016/01/02</a></h1>
<ul>
<li>fix regression due to incorrect fix for compiler warning
when allocating storage for <code>/etc/shells</code> (reports
by Ashish Shukla, Debian #809646).</li>
</ul>
<h1><a name="xterm_321" id="xterm_321">Patch #321 -
2015/12/31</a></h1>
<ul>
<li>add resource <code>keepClipboard</code>, escape sequence
and action <code>keep-clipboard</code>.</li>
<li>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).</li>
<li>improve a special case where the <code>-e</code> option was
used to pass a single-quoted command via <code>luit</code>, by
wrapping it in a &ldquo;sh -c&rdquo; (report by Keith
Hedger).</li>
<li>minor fix for type-cleanliness when allocating storage for
<code>/etc/shells</code> (Tobias Stoeckmann).</li>
<li>fix a typo in manual page (Dan Church).</li>
<li>fix minor file-descriptor leak; after calling
<code>openpty</code>, the slave's file descriptor is not needed
(report by Juha Nurmela).</li>
<li>editorial change to ctlseqs.ms (report by David
Gomboc).</li>
<li>minor updates for autoconf macros.</li>
<li>update config.guess, config.sub</li>
</ul>
<h1><a name="xterm_320" id="xterm_320">Patch #320 -
2015/08/28</a></h1>

View File

@ -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.

View File

@ -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