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 MANIFEST this file
256colres.h resource-definitions for 256-color mode 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> .include <bsd.xconf.mk>
SUBDIR= icons resize SUBDIR= icons resize
@ -15,8 +15,8 @@ CPPFLAGS+= -I. -I${.CURDIR} -I${X11BASE}/include \
-DFUNCPROTO=15 -DNARROWPROTO -DXFREE86_FT2 -DUTMP \ -DFUNCPROTO=15 -DNARROWPROTO -DXFREE86_FT2 -DUTMP \
-DDEF_ALLOW_FONT=False -DDEF_ALLOW_TCAP=False \ -DDEF_ALLOW_FONT=False -DDEF_ALLOW_TCAP=False \
-DDEF_ALLOW_WINDOW=False -DDEF_ALLOW_WINDOW=False
LDADD+= -L${X11BASE}/lib -lXaw -lXpm -lXt -lSM -lICE \ LDADD+= -L${X11BASE}/lib -lXaw -lXpm -lXt -lSM -lICE -lXmu \
-lXmu -lXft -lXrender -lX11 -lxcb -lXext -lXau -lXdmcp \ -lXft -lXrender -lXinerama -lX11 -lxcb -lXext -lXau -lXdmcp \
-lfontconfig -lexpat -lfreetype -lutil -ltermcap -lz -lfontconfig -lexpat -lfreetype -lutil -ltermcap -lz
SRCS= TekPrsTbl.c Tekproc.c VTPrsTbl.c button.c cachedGCs.c \ 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 * Copyright 1999-2014,2015 by Thomas E. Dickey
@ -3829,6 +3829,8 @@ _ConvertSelectionHelper(Widget w,
Atom *type, Atom *type,
XtPointer *value, XtPointer *value,
unsigned long *length, unsigned long *length,
Char *data,
unsigned long remaining,
int *format, int *format,
int (*conversion_function) (Display *, int (*conversion_function) (Display *,
char **, int, char **, int,
@ -3848,9 +3850,8 @@ _ConvertSelectionHelper(Widget w,
Display *dpy = XtDisplay(w); Display *dpy = XtDisplay(w);
XTextProperty textprop; XTextProperty textprop;
int out_n = 0; int out_n = 0;
unsigned long remaining = screen->selection_length;
char *result = 0; char *result = 0;
char *the_data = (char *) screen->selection_data; char *the_data = (char *) data;
char *the_next; char *the_next;
TRACE(("converting %ld:'%s'\n", TRACE(("converting %ld:'%s'\n",
@ -3937,6 +3938,9 @@ SaveConvertedLength(XtPointer *target, unsigned long source)
return result; return result;
} }
#define keepClipboard(atom) ((screen->keepClipboard) && \
(atom == XInternAtom(screen->display, "CLIPBOARD", False)))
static Boolean static Boolean
ConvertSelection(Widget w, ConvertSelection(Widget w,
Atom *selection, Atom *selection,
@ -3950,6 +3954,9 @@ ConvertSelection(Widget w,
TScreen *screen; TScreen *screen;
Bool result = False; Bool result = False;
Char *data;
unsigned long data_length;
XtermWidget xw; XtermWidget xw;
if ((xw = getXtermWidget(w)) == 0) if ((xw = getXtermWidget(w)) == 0)
@ -3960,7 +3967,17 @@ ConvertSelection(Widget w,
TRACE(("ConvertSelection %s\n", TRACE(("ConvertSelection %s\n",
visibleSelectionTarget(dpy, *target))); 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")); TRACE(("...FIXME: no selection_data\n"));
return False; /* can this happen? */ return False; /* can this happen? */
} }
@ -4009,28 +4026,32 @@ ConvertSelection(Widget w,
else if (screen->wide_chars && *target == XA_STRING) { else if (screen->wide_chars && *target == XA_STRING) {
result = result =
_ConvertSelectionHelper(w, _ConvertSelectionHelper(w,
type, value, length, format, type, value, length, data,
data_length, format,
Xutf8TextListToTextProperty, Xutf8TextListToTextProperty,
XStringStyle); XStringStyle);
TRACE(("...Xutf8TextListToTextProperty:%d\n", result)); TRACE(("...Xutf8TextListToTextProperty:%d\n", result));
} else if (screen->wide_chars && *target == XA_UTF8_STRING(dpy)) { } else if (screen->wide_chars && *target == XA_UTF8_STRING(dpy)) {
result = result =
_ConvertSelectionHelper(w, _ConvertSelectionHelper(w,
type, value, length, format, type, value, length, data,
data_length, format,
Xutf8TextListToTextProperty, Xutf8TextListToTextProperty,
XUTF8StringStyle); XUTF8StringStyle);
TRACE(("...Xutf8TextListToTextProperty:%d\n", result)); TRACE(("...Xutf8TextListToTextProperty:%d\n", result));
} else if (screen->wide_chars && *target == XA_TEXT(dpy)) { } else if (screen->wide_chars && *target == XA_TEXT(dpy)) {
result = result =
_ConvertSelectionHelper(w, _ConvertSelectionHelper(w,
type, value, length, format, type, value, length, data,
data_length, format,
Xutf8TextListToTextProperty, Xutf8TextListToTextProperty,
XStdICCTextStyle); XStdICCTextStyle);
TRACE(("...Xutf8TextListToTextProperty:%d\n", result)); TRACE(("...Xutf8TextListToTextProperty:%d\n", result));
} else if (screen->wide_chars && *target == XA_COMPOUND_TEXT(dpy)) { } else if (screen->wide_chars && *target == XA_COMPOUND_TEXT(dpy)) {
result = result =
_ConvertSelectionHelper(w, _ConvertSelectionHelper(w,
type, value, length, format, type, value, length, data,
data_length, format,
Xutf8TextListToTextProperty, Xutf8TextListToTextProperty,
XCompoundTextStyle); XCompoundTextStyle);
TRACE(("...Xutf8TextListToTextProperty:%d\n", result)); TRACE(("...Xutf8TextListToTextProperty:%d\n", result));
@ -4053,14 +4074,16 @@ ConvertSelection(Widget w,
} else if (*target == XA_TEXT(dpy)) { /* not wide_chars */ } else if (*target == XA_TEXT(dpy)) { /* not wide_chars */
result = result =
_ConvertSelectionHelper(w, _ConvertSelectionHelper(w,
type, value, length, format, type, value, length, data,
data_length, format,
XmbTextListToTextProperty, XmbTextListToTextProperty,
XStdICCTextStyle); XStdICCTextStyle);
TRACE(("...XmbTextListToTextProperty(StdICC):%d\n", result)); TRACE(("...XmbTextListToTextProperty(StdICC):%d\n", result));
} else if (*target == XA_COMPOUND_TEXT(dpy)) { /* not wide_chars */ } else if (*target == XA_COMPOUND_TEXT(dpy)) { /* not wide_chars */
result = result =
_ConvertSelectionHelper(w, _ConvertSelectionHelper(w,
type, value, length, format, type, value, length, data,
data_length, format,
XmbTextListToTextProperty, XmbTextListToTextProperty,
XCompoundTextStyle); XCompoundTextStyle);
TRACE(("...XmbTextListToTextProperty(Compound):%d\n", result)); TRACE(("...XmbTextListToTextProperty(Compound):%d\n", result));
@ -4069,7 +4092,8 @@ ConvertSelection(Widget w,
else if (*target == XA_UTF8_STRING(dpy)) { /* not wide_chars */ else if (*target == XA_UTF8_STRING(dpy)) { /* not wide_chars */
result = result =
_ConvertSelectionHelper(w, _ConvertSelectionHelper(w,
type, value, length, format, type, value, length, data,
data_length, format,
XmbTextListToTextProperty, XmbTextListToTextProperty,
XUTF8StringStyle); XUTF8StringStyle);
TRACE(("...XmbTextListToTextProperty(UTF8):%d\n", result)); TRACE(("...XmbTextListToTextProperty(UTF8):%d\n", result));
@ -4203,6 +4227,16 @@ _OwnSelection(XtermWidget xw,
(int) length, (int) length,
cutbuffer); 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) { } else if (screen->selection_length == 0) {
XtDisownSelection((Widget) xw, atoms[i], screen->selection_time); XtDisownSelection((Widget) xw, atoms[i], screen->selection_time);
} else if (!screen->replyToEmacs) { } 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 * Copyright 1999-2014,2015 by Thomas E. Dickey
@ -279,6 +279,7 @@ static XtActionsRec actionsList[] = {
{ "set-bellIsUrgent", HandleBellIsUrgent }, { "set-bellIsUrgent", HandleBellIsUrgent },
{ "set-cursesemul", HandleCursesEmul }, { "set-cursesemul", HandleCursesEmul },
{ "set-jumpscroll", HandleJumpscroll }, { "set-jumpscroll", HandleJumpscroll },
{ "set-keep-clipboard", HandleKeepClipboard },
{ "set-keep-selection", HandleKeepSelection }, { "set-keep-selection", HandleKeepSelection },
{ "set-marginbell", HandleMarginBell }, { "set-marginbell", HandleMarginBell },
{ "set-old-function-keys", HandleOldFunctionKeys }, { "set-old-function-keys", HandleOldFunctionKeys },
@ -442,6 +443,7 @@ static XtResource xterm_resources[] =
Bres(XtNi18nSelections, XtCI18nSelections, screen.i18nSelections, True), Bres(XtNi18nSelections, XtCI18nSelections, screen.i18nSelections, True),
Bres(XtNfastScroll, XtCFastScroll, screen.fastscroll, False), Bres(XtNfastScroll, XtCFastScroll, screen.fastscroll, False),
Bres(XtNjumpScroll, XtCJumpScroll, screen.jumpscroll, True), Bres(XtNjumpScroll, XtCJumpScroll, screen.jumpscroll, True),
Bres(XtNkeepClipboard, XtCKeepClipboard, screen.keepClipboard, False),
Bres(XtNkeepSelection, XtCKeepSelection, screen.keepSelection, True), Bres(XtNkeepSelection, XtCKeepSelection, screen.keepSelection, True),
Bres(XtNloginShell, XtCLoginShell, misc.login_shell, False), Bres(XtNloginShell, XtCLoginShell, misc.login_shell, False),
Bres(XtNmarginBell, XtCMarginBell, screen.marginbell, False), Bres(XtNmarginBell, XtCMarginBell, screen.marginbell, False),
@ -5603,6 +5605,10 @@ dpmodes(XtermWidget xw, BitFunc func)
set_bool_mode(screen->poponbell); set_bool_mode(screen->poponbell);
update_poponbell(); update_poponbell();
break; break;
case srm_KEEP_CLIPBOARD:
set_bool_mode(screen->keepClipboard);
update_keepClipboard();
break;
case srm_TITE_INHIBIT: case srm_TITE_INHIBIT:
if (!xw->misc.titeInhibit) { if (!xw->misc.titeInhibit) {
if (IsSM()) if (IsSM())
@ -5873,6 +5879,9 @@ savemodes(XtermWidget xw)
case srm_POP_ON_BELL: case srm_POP_ON_BELL:
DoSM(DP_POP_ON_BELL, screen->poponbell); DoSM(DP_POP_ON_BELL, screen->poponbell);
break; break;
case srm_KEEP_CLIPBOARD:
DoSM(DP_KEEP_CLIPBOARD, screen->keepClipboard);
break;
#if OPT_TCAP_FKEYS #if OPT_TCAP_FKEYS
case srm_TCAP_FKEYS: case srm_TCAP_FKEYS:
/* FALLTHRU */ /* FALLTHRU */
@ -6208,6 +6217,10 @@ restoremodes(XtermWidget xw)
DoRM(DP_POP_ON_BELL, screen->poponbell); DoRM(DP_POP_ON_BELL, screen->poponbell);
update_poponbell(); update_poponbell();
break; break;
case srm_KEEP_CLIPBOARD:
DoRM(DP_KEEP_CLIPBOARD, screen->keepClipboard);
update_keepClipboard();
break;
#if OPT_TCAP_FKEYS #if OPT_TCAP_FKEYS
case srm_TCAP_FKEYS: case srm_TCAP_FKEYS:
/* FALLTHRU */ /* FALLTHRU */
@ -7955,6 +7968,7 @@ VTInitialize(Widget wrequest,
init_Bres(screen.highlight_selection); init_Bres(screen.highlight_selection);
init_Bres(screen.show_wrap_marks); init_Bres(screen.show_wrap_marks);
init_Bres(screen.i18nSelections); init_Bres(screen.i18nSelections);
init_Bres(screen.keepClipboard);
init_Bres(screen.keepSelection); init_Bres(screen.keepSelection);
init_Bres(screen.selectToClipboard); init_Bres(screen.selectToClipboard);
init_Bres(screen.trim_selection); init_Bres(screen.trim_selection);

View File

@ -1,6 +1,6 @@
.\"#! troff -ms $1 -*- Nroff -*- .\"#! troff -ms $1 -*- Nroff -*-
.\" "Xterm Control Sequences" document .\" "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 .\" Copyright 1996-2014,2015 by Thomas E. Dickey
@ -69,8 +69,8 @@
.\" .\"
.ds XT XTerm .ds XT XTerm
.ds xt xterm .ds xt xterm
.ds LF Patch #318 .ds LF Patch #321
.ds RF 2015/08/19 .ds RF 2015/12/30
.\" .\"
.if n .pl 9999v \" no page breaks in nroff .if n .pl 9999v \" no page breaks in nroff
.ND .ND
@ -1001,6 +1001,8 @@ See the section \fBMouse Tracking\fP. This is the X11 xterm mouse protocol.
(This enables the \fBbellIsUrgent\fP resource). (This enables the \fBbellIsUrgent\fP resource).
\*(Ps = \*1\*0\*4\*3 \(-> Enable raising of the window when Control-G is received. \*(Ps = \*1\*0\*4\*3 \(-> Enable raising of the window when Control-G is received.
(enables the \fBpopOnBell\fP resource). (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 \*(Ps = \*1\*0\*4\*7 \(-> Use Alternate Screen Buffer. (This may be
disabled by the \fBtiteInhibit\fP resource). disabled by the \fBtiteInhibit\fP resource).
\*(Ps = \*1\*0\*4\*8 \(-> Save cursor as in DECSC. (This may be \*(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 .RE
.sP .sP
These ISO-8613-3 controls are supported: 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. \*(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.
\*(Ps = \*3\*8\*;\*5\*;\*(Ps \(-> Set foreground color to the second \*(Ps. \*(Pm = \*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. \*(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.
\*(Ps = \*4\*8\*;\*5\*;\*(Ps \(-> Set background color to the second \*(Ps. \*(Pm = \*4\*8\*;\*5\*;\*(Ps \(-> Set background color to the second \*(Ps.
.sp .sp
. .
.IP \\*(Cs\\*>\\*(Ps\\*;\\*(Ps\\*s\\*m .IP \\*(Cs\\*>\\*(Ps\\*;\\*(Ps\\*s\\*m

View File

@ -21,7 +21,7 @@
Thomas Dickey Thomas Dickey
XFree86 Project (1996-2006) XFree86 Project (1996-2006)
invisible-island.net (2006-2015) 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). resource).
Ps = 1 0 4 3 -> Enable raising of the window when Control-G Ps = 1 0 4 3 -> Enable raising of the window when Control-G
is received. (enables the popOnBell resource). 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 Ps = 1 0 4 7 -> Use Alternate Screen Buffer. (This may be
disabled by the titeInhibit resource). disabled by the titeInhibit resource).
Ps = 1 0 4 8 -> Save cursor as in DECSC. (This may be dis- 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). colons (but after the first colon, colons must be used).
These ISO-8613-3 controls are supported: 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. 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. Pm = 3 8 ; 5 ; Ps -> Set foreground color to the second Ps.
Ps = 4 8 ; 2 ; Pr; Pg; Pb -> Set background color to the 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. 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 CSI > Ps; Ps m
Set or reset resource-values used by xterm to decide whether 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 * All Rights Reserved
* *
@ -1947,6 +1947,23 @@ setEffectiveUser(uid_t user)
#endif #endif
#endif /* HAVE_POSIX_SAVED_IDS */ #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 int
main(int argc, char *argv[]ENVP_ARG) 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); command_length_with_luit = x_countargv(command_to_exec_with_luit);
if (count_exec) { if (count_exec) {
static char *fixup_shell[] =
{"sh", "-c", 0};
char *delimiter[2]; char *delimiter[2];
delimiter[0] = x_strdup("--"); delimiter[0] = x_strdup("--");
delimiter[1] = 0; delimiter[1] = 0;
x_appendargv(command_to_exec_with_luit, delimiter); 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); x_appendargv(command_to_exec_with_luit, command_to_exec);
} }
TRACE_ARGV("luit command", command_to_exec_with_luit); 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) #if defined(USE_OPENPTY)
result = openpty(pty, &opened_tty, ttydev, NULL, NULL); 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) #elif defined(HAVE_POSIX_OPENPT) && defined(HAVE_PTSNAME) && defined(HAVE_GRANTPT_PTY_ISATTY)
if ((*pty = posix_openpt(O_RDWR)) >= 0) { if ((*pty = posix_openpt(O_RDWR)) >= 0) {
char *name = ptsname(*pty); char *name = ptsname(*pty);
@ -2802,12 +2828,6 @@ get_pty(int *pty, char *from)
seteuid(save_ruid); seteuid(save_ruid);
TRACE_IDS; TRACE_IDS;
#ifdef USE_OPENPTY
if (opened_tty >= 0) {
close(opened_tty);
opened_tty = -1;
}
#endif
} else if (m_pty != -1) { } else if (m_pty != -1) {
*pty = m_pty; *pty = m_pty;
result = 0; result = 0;
@ -2819,6 +2839,12 @@ get_pty(int *pty, char *from)
ptydev != 0 ? ptydev : "?", ptydev != 0 ? ptydev : "?",
result ? "FAIL" : "OK", result ? "FAIL" : "OK",
pty != 0 ? *pty : -1)); pty != 0 ? *pty : -1));
#ifdef USE_OPENPTY
if (opened_tty >= 0) {
close(opened_tty);
opened_tty = -1;
}
#endif
return result; return result;
} }
#endif #endif
@ -3241,7 +3267,8 @@ validShell(const char *pathname)
if (validProgram(pathname) if (validProgram(pathname)
&& stat(ok_shells, &sb) == 0 && stat(ok_shells, &sb) == 0
&& (sb.st_mode & S_IFMT) == S_IFREG && (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) { && (blob = calloc((size_t) sb.st_size + 2, sizeof(char))) != 0) {
if ((fp = fopen(ok_shells, "r")) != 0) { if ((fp = fopen(ok_shells, "r")) != 0) {
rc = fread(blob, sizeof(char), (size_t) sb.st_size, fp); 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 * 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_hardreset PROTO_XT_CALLBACK_ARGS;
static void do_interrupt PROTO_XT_CALLBACK_ARGS; static void do_interrupt PROTO_XT_CALLBACK_ARGS;
static void do_jumpscroll 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_keepSelection PROTO_XT_CALLBACK_ARGS;
static void do_kill PROTO_XT_CALLBACK_ARGS; static void do_kill PROTO_XT_CALLBACK_ARGS;
static void do_old_fkeys 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(); 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 static void
do_keepSelection(Widget gw GCC_UNUSED, do_keepSelection(Widget gw GCC_UNUSED,
XtPointer closure GCC_UNUSED, XtPointer closure GCC_UNUSED,
@ -2421,6 +2433,15 @@ HandleJumpscroll(Widget w,
HANDLE_VT_TOGGLE(jumpscroll); HANDLE_VT_TOGGLE(jumpscroll);
} }
void
HandleKeepClipboard(Widget w,
XEvent *event GCC_UNUSED,
String *params,
Cardinal *param_count)
{
HANDLE_VT_TOGGLE(keepClipboard);
}
void void
HandleKeepSelection(Widget w, HandleKeepSelection(Widget w,
XEvent *event GCC_UNUSED, 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 * All Rights Reserved
* *
@ -104,6 +104,7 @@ extern void HandleFullscreen PROTO_XT_ACTIONS_ARGS;
extern void HandleHardReset PROTO_XT_ACTIONS_ARGS; extern void HandleHardReset PROTO_XT_ACTIONS_ARGS;
extern void HandleHpFunctionKeys PROTO_XT_ACTIONS_ARGS; extern void HandleHpFunctionKeys PROTO_XT_ACTIONS_ARGS;
extern void HandleJumpscroll 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 HandleKeepSelection PROTO_XT_ACTIONS_ARGS;
extern void HandleLogging PROTO_XT_ACTIONS_ARGS; extern void HandleLogging PROTO_XT_ACTIONS_ARGS;
extern void HandleMarginBell 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_bellIsUrgent(void);
extern void update_poponbell(void); extern void update_poponbell(void);
#define update_keepClipboard() /* nothing */
#define update_marginbell() /* nothing */ #define update_marginbell() /* nothing */
#if OPT_LOAD_VTFONTS #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 xterm-dev (320) unstable; urgency=low
* maintenance updates * maintenance updates

View File

@ -35,7 +35,7 @@ authorization.
Files: * */* Files: * */*
License: MIT-X11 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 (date ranges vary, depending on when the respective files were first changed
significantly, and run through the most recent change date). significantly, and run through the most recent change date).

View File

@ -5,7 +5,7 @@
# and "make makesum". # and "make makesum".
PORTNAME= xterm PORTNAME= xterm
PORTVERSION= 320 PORTVERSION= 322
CATEGORIES= x11 CATEGORIES= x11
MASTER_SITES= ftp://invisible-island.net/xterm/ \ MASTER_SITES= ftp://invisible-island.net/xterm/ \
CRITICAL 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) Summary: X terminal emulator (development version)
%global my_middle xterm %global my_middle xterm
%global my_suffix -dev %global my_suffix -dev
%global fullname %{my_middle}%{my_suffix} %global fullname %{my_middle}%{my_suffix}
%global my_class XTermDev %global my_class XTermDev
Name: %{fullname} Name: %{fullname}
Version: 320 Version: 322
Release: 1 Release: 1
License: X11 License: X11
Group: User Interface/X 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 * Copyright 1999-2014,2015 by Thomas E. Dickey
@ -1067,6 +1067,7 @@ typedef enum {
,srm_SELECT_TO_CLIPBOARD = 1041 ,srm_SELECT_TO_CLIPBOARD = 1041
,srm_BELL_IS_URGENT = 1042 ,srm_BELL_IS_URGENT = 1042
,srm_POP_ON_BELL = 1043 ,srm_POP_ON_BELL = 1043
,srm_KEEP_CLIPBOARD = 1044
,srm_TITE_INHIBIT = 1048 ,srm_TITE_INHIBIT = 1048
#if OPT_TCAP_FKEYS #if OPT_TCAP_FKEYS
,srm_TCAP_FKEYS = 1050 ,srm_TCAP_FKEYS = 1050
@ -1661,6 +1662,7 @@ typedef enum {
DP_DECTCEM, DP_DECTCEM,
DP_DELETE_IS_DEL, DP_DELETE_IS_DEL,
DP_EIGHT_BIT_META, DP_EIGHT_BIT_META,
DP_KEEP_CLIPBOARD,
DP_KEEP_SELECTION, DP_KEEP_SELECTION,
DP_KEYBOARD_TYPE, DP_KEYBOARD_TYPE,
DP_POP_ON_BELL, DP_POP_ON_BELL,
@ -2320,11 +2322,14 @@ typedef struct {
Boolean trim_selection; /* controls trimming of selection */ Boolean trim_selection; /* controls trimming of selection */
Boolean i18nSelections; Boolean i18nSelections;
Boolean brokenSelections; Boolean brokenSelections;
Boolean keepClipboard; /* retain data sent to clipboard */
Boolean keepSelection; /* do not lose selection on output */ Boolean keepSelection; /* do not lose selection on output */
Boolean replyToEmacs; /* Send emacs escape code when done selecting or extending? */ Boolean replyToEmacs; /* Send emacs escape code when done selecting or extending? */
Char *selection_data; /* the current selection */ Char *selection_data; /* the current selection */
int selection_size; /* size of allocated buffer */ int selection_size; /* size of allocated buffer */
unsigned long selection_length; /* number of significant bytes */ unsigned long selection_length; /* number of significant bytes */
Char *clipboard_data; /* the current clipboard */
unsigned long clipboard_size; /* size of allocated buffer */
EventMode eventMode; EventMode eventMode;
Time selection_time; /* latest event timestamp */ Time selection_time; /* latest event timestamp */
Time lastButtonUpTime; 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 * All Rights Reserved
* *
@ -38,8 +38,8 @@
* version of X to which this version of xterm has been built. The resulting * version of X to which this version of xterm has been built. The resulting
* number in parentheses is my patch number (Thomas E. Dickey). * number in parentheses is my patch number (Thomas E. Dickey).
*/ */
#define XTERM_PATCH 320 #define XTERM_PATCH 322
#define XTERM_DATE 2015-08-28 #define XTERM_DATE 2016-01-02
#ifndef __vendorversion__ #ifndef __vendorversion__
#define __vendorversion__ "XTerm/OpenBSD" #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 * Copyright 1999-2014,2015 by Thomas E. Dickey
@ -474,6 +474,7 @@ extern char **environ;
#define XtNinternalBorder "internalBorder" #define XtNinternalBorder "internalBorder"
#define XtNitalicULMode "italicULMode" #define XtNitalicULMode "italicULMode"
#define XtNjumpScroll "jumpScroll" #define XtNjumpScroll "jumpScroll"
#define XtNkeepClipboard "keepClipboard"
#define XtNkeepSelection "keepSelection" #define XtNkeepSelection "keepSelection"
#define XtNkeyboardDialect "keyboardDialect" #define XtNkeyboardDialect "keyboardDialect"
#define XtNlimitResize "limitResize" #define XtNlimitResize "limitResize"
@ -658,6 +659,7 @@ extern char **environ;
#define XtCIconHint "IconHint" #define XtCIconHint "IconHint"
#define XtCInitialFont "InitialFont" #define XtCInitialFont "InitialFont"
#define XtCJumpScroll "JumpScroll" #define XtCJumpScroll "JumpScroll"
#define XtCKeepClipboard "KeepClipboard"
#define XtCKeepSelection "KeepSelection" #define XtCKeepSelection "KeepSelection"
#define XtCKeyboardDialect "KeyboardDialect" #define XtCKeyboardDialect "KeyboardDialect"
#define XtCLimitResize "LimitResize" #define XtCLimitResize "LimitResize"

View File

@ -2,7 +2,7 @@
***************************************************************************** *****************************************************************************
* this file is part of xterm * * 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 * * All Rights Reserved *
* * * *
@ -30,7 +30,7 @@
* sale, use or other dealings in this Software without prior written * * sale, use or other dealings in this Software without prior written *
* authorization. * * 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"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
@ -72,6 +72,10 @@
CHANGELOG</a>).</p> CHANGELOG</a>).</p>
<ul> <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_320">Patch #320 - 2015/08/28</a></li>
<li><a href="#xterm_319">Patch #319 - 2015/08/19</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> <li><a href="#xterm_01">Patch #1 - 1996/1/6</a></li>
</ul> </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 - <h1><a name="xterm_320" id="xterm_320">Patch #320 -
2015/08/28</a></h1> 2015/08/28</a></h1>

View File

@ -1,5 +1,5 @@
'\" t '\" 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 .\" 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 .TP 8
.BI \-bcn " milliseconds" .BI \-bcn " milliseconds"
set the amount of time text cursor is on when blinking via the set the amount of time text cursor is on when blinking via the
\fIcursorOffTime\fP resource. \fIcursorOnTime\fP resource.
.TP 8 .TP 8
.B "\-bdc" .B "\-bdc"
Set the \fIvt100\fP resource \fBcolorBDMode\fR to \*(``false\*('', 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\*(''. The default is \*(``true\*(''.
See \fBfastScroll\fP for a variation. See \fBfastScroll\fP for a variation.
.TP 8 .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)" .B "keepSelection (\fPclass\fB KeepSelection)"
Specifies whether \fI\*n\fR will keep the selection even after the Specifies whether \fI\*n\fR will keep the selection even after the
selected area was touched by some output to the terminal. 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. 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. It is also invoked by the \fBfont-packed\fP entry in \fIfontMenu\fP.
.TP 8 .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)" .B "set-keep-selection(\fIon/off/toggle\fP)"
This action sets, unsets or toggles the \fBkeepSelection\fP resource. This action sets, unsets or toggles the \fBkeepSelection\fP resource.
It is also invoked by the \fBkeepSelection\fP entry in \fIvtMenu\fP. 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 * All Rights Reserved
* *
@ -44,6 +44,7 @@
/* #undef DEF_ALT_SENDS_ESC */ /* CF_ARG_ENABLE(alt-sends-esc) */ /* #undef DEF_ALT_SENDS_ESC */ /* CF_ARG_ENABLE(alt-sends-esc) */
/* #undef DEF_BACKARO_BS */ /* CF_ARG_DISABLE(backarrow-key) */ /* #undef DEF_BACKARO_BS */ /* CF_ARG_DISABLE(backarrow-key) */
#define DEF_BACKARO_ERASE 1 /* CF_ARG_ENABLE(backarrow-is-erase) */ #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 DEF_META_SENDS_ESC */ /* CF_ARG_ENABLE(meta-sends-esc) */
/* #undef DFT_COLORMODE */ /* AC_ARG_WITH(default-color-mode) */ /* #undef DFT_COLORMODE */ /* AC_ARG_WITH(default-color-mode) */
#define DFT_DECID "100" /* AC_ARG_WITH(default-terminal-id) */ #define DFT_DECID "100" /* AC_ARG_WITH(default-terminal-id) */
@ -101,6 +102,7 @@
#define HAVE_WCSWIDTH 1 /* AC_CHECK_FUNCS(wcswidth) */ #define HAVE_WCSWIDTH 1 /* AC_CHECK_FUNCS(wcswidth) */
#define HAVE_WCWIDTH 1 /* AC_CHECK_FUNCS(wcwidth) */ #define HAVE_WCWIDTH 1 /* AC_CHECK_FUNCS(wcwidth) */
#define HAVE_X11_DECKEYSYM_H 1 /* AC_CHECK_HEADERS(X11/DECkeysym.h) */ #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_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_SUNKEYSYM_H 1 /* AC_CHECK_HEADERS(X11/Sunkeysym.h) */
#define HAVE_X11_XF86KEYSYM_H 1 /* AC_CHECK_HEADERS(X11/XF86keysym.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) */ /* #undef OPT_BOX_CHARS */ /* CF_ARG_DISABLE(boxchars) */
#define OPT_BROKEN_OSC 0 /* CF_ARG_ENABLE(broken-osc) */ #define OPT_BROKEN_OSC 0 /* CF_ARG_ENABLE(broken-osc) */
#define OPT_BROKEN_ST 0 /* CF_ARG_DISABLE(broken-st) */ #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_C1_PRINT */ /* CF_ARG_DISABLE(c1-print) */
/* #undef OPT_COLOR_CLASS */ /* CF_ARG_DISABLE(color-class) */ /* #undef OPT_COLOR_CLASS */ /* CF_ARG_DISABLE(color-class) */
/* #undef OPT_DABBREV */ /* CF_ARG_ENABLE(dabbrev) */ /* #undef OPT_DABBREV */ /* CF_ARG_ENABLE(dabbrev) */
@ -210,6 +213,7 @@
#ifndef __cplusplus #ifndef __cplusplus
/* #undef GCC_PRINTF */ /* #undef GCC_PRINTF */
/* #undef GCC_PRINTFLIKE */ /* #undef GCC_PRINTFLIKE */
/* #undef GCC_NORETURN */
/* #undef GCC_UNUSED */ /* #undef GCC_UNUSED */
#endif #endif