Update to xterm-275. Tested by jasper@.
This commit is contained in:
parent
32d3740477
commit
c516620bcf
@ -1,4 +1,4 @@
|
||||
-- $XTermId: INSTALL,v 1.125 2011/07/07 01:01:14 tom Exp $
|
||||
-- $XTermId: INSTALL,v 1.126 2011/08/30 09:51:01 tom Exp $
|
||||
-------------------------------------------------------------------------------
|
||||
-- Copyright 1997-2010,2011 by Thomas E. Dickey
|
||||
--
|
||||
@ -537,6 +537,23 @@ The options (in alphabetic order):
|
||||
at existing ".desktop" files for xterm and common terminal
|
||||
emulators, to use those.
|
||||
|
||||
--with-freetype-config configure script to use for FreeType
|
||||
|
||||
Use a specific option value to tell the configure script to try
|
||||
just one of the variations:
|
||||
|
||||
"pkg*", e.g., pkg-config or pkgconfig uses whatever pkg-config
|
||||
script was found.
|
||||
|
||||
otherwise, the parameter value is used as the name of the script
|
||||
to try, using --cflags and --libs options.
|
||||
|
||||
Use --without-freetype-config to enable the --with-freetype-cflags
|
||||
and --with-freetype-libs options.
|
||||
|
||||
The default value "auto" tells the configure script to try the
|
||||
pkg-config script first, then freetype-config and finally xft-config.
|
||||
|
||||
--with-freetype-cflags -D/-I options for compiling with FreeType library
|
||||
|
||||
Override options provided by xft-config or freetype-config.
|
||||
|
@ -1,4 +1,4 @@
|
||||
MANIFEST for xterm-273, version xterm-273
|
||||
MANIFEST for xterm-275, version xterm-275
|
||||
--------------------------------------------------------------------------------
|
||||
MANIFEST this file
|
||||
256colres.h resource-definitions for 256-color mode
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $XTermId: Tekproc.c,v 1.189 2011/07/10 22:19:32 tom Exp $ */
|
||||
/* $XTermId: Tekproc.c,v 1.190 2011/09/03 12:13:42 tom Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright 2001-2010,2011 by Thomas E. Dickey
|
||||
@ -826,7 +826,7 @@ Tinput(TekWidget tw)
|
||||
TCursorToggle(tw, TOGGLE);
|
||||
Ttoggled = False;
|
||||
}
|
||||
if (XtAppPending(app_con) & XtIMXEvent) {
|
||||
if (xtermAppPending() & XtIMXEvent) {
|
||||
#ifdef VMS
|
||||
Tselect_mask = X_mask;
|
||||
#else /* VMS */
|
||||
|
@ -1,8 +1,7 @@
|
||||
/* $XTermId: VTPrsTbl.c,v 1.59 2010/08/24 21:26:42 tom Exp $ */
|
||||
/* $XTermId: VTPrsTbl.c,v 1.60 2011/09/11 15:00:46 tom Exp $ */
|
||||
|
||||
/*
|
||||
*
|
||||
* Copyright 1999-2009,2010 by Thomas E. Dickey
|
||||
* Copyright 1999-2010,2011 by Thomas E. Dickey
|
||||
*
|
||||
* All Rights Reserved
|
||||
*
|
||||
@ -54,6 +53,7 @@
|
||||
*/
|
||||
|
||||
#include <VTparse.h>
|
||||
/* *INDENT-OFF* */
|
||||
|
||||
#if !OPT_BLINK_CURS
|
||||
#undef CASE_CSI_SPACE_STATE
|
||||
@ -8197,3 +8197,4 @@ CASE_IGNORE,
|
||||
CASE_IGNORE,
|
||||
};
|
||||
#endif /* OPT_VT52_MODE */
|
||||
/* *INDENT-ON* */
|
||||
|
@ -1,36 +1,34 @@
|
||||
/* $XTermId: cachedGCs.c,v 1.60 2011/02/09 10:11:44 tom Exp $ */
|
||||
/* $XTermId: cachedGCs.c,v 1.61 2011/09/11 14:59:38 tom Exp $ */
|
||||
|
||||
/************************************************************
|
||||
|
||||
Copyright 2007-2010,2011 by Thomas E. Dickey
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name(s) of the above copyright
|
||||
holders shall not be used in advertising or otherwise to promote the
|
||||
sale, use or other dealings in this Software without prior written
|
||||
authorization.
|
||||
|
||||
********************************************************/
|
||||
/*
|
||||
* Copyright 2007-2010,2011 by Thomas E. Dickey
|
||||
*
|
||||
* All Rights Reserved
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name(s) of the above copyright
|
||||
* holders shall not be used in advertising or otherwise to promote the
|
||||
* sale, use or other dealings in this Software without prior written
|
||||
* authorization.
|
||||
*/
|
||||
|
||||
#include <data.h>
|
||||
#include <xstrings.h>
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $XTermId: charproc.c,v 1.1127 2011/08/22 23:36:42 tom Exp $ */
|
||||
/* $XTermId: charproc.c,v 1.1132 2011/09/04 18:18:16 tom Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright 1999-2010,2011 by Thomas E. Dickey
|
||||
@ -435,6 +435,8 @@ static XtResource xterm_resources[] =
|
||||
Bres(XtNunderLine, XtCUnderLine, screen.underline, True),
|
||||
Bres(XtNvisualBell, XtCVisualBell, screen.visualbell, False),
|
||||
|
||||
Dres(XtNscaleHeight, XtCScaleHeight, screen.scale_height, "1.0"),
|
||||
|
||||
Ires(XtNbellSuppressTime, XtCBellSuppressTime, screen.bellSuppressTime, BELLSUPPRESSMSEC),
|
||||
Ires(XtNfontWarnings, XtCFontWarnings, misc.fontWarnings, fwResource),
|
||||
Ires(XtNinternalBorder, XtCBorderWidth, screen.border, DEFBORDER),
|
||||
@ -3468,6 +3470,7 @@ updateCursor(TScreen * screen)
|
||||
}
|
||||
}
|
||||
|
||||
#if OPT_BLINK_CURS || OPT_BLINK_TEXT
|
||||
static void
|
||||
reallyStopBlinking(TScreen * screen)
|
||||
{
|
||||
@ -3478,6 +3481,7 @@ reallyStopBlinking(TScreen * screen)
|
||||
xevents();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef VMS
|
||||
#define ptymask() (v_bufptr > v_bufstr ? pty_mask : 0)
|
||||
@ -3671,7 +3675,7 @@ in_put(XtermWidget xw)
|
||||
* The blocking is optional, because it tends to increase the load
|
||||
* on the host.
|
||||
*/
|
||||
if (XtAppPending(app_con)) {
|
||||
if (xtermAppPending()) {
|
||||
select_timeout.tv_usec = 0;
|
||||
time_select = 1;
|
||||
} else if (screen->awaitInput) {
|
||||
@ -3711,7 +3715,7 @@ in_put(XtermWidget xw)
|
||||
|
||||
/* if there are X events already in our queue, it
|
||||
counts as being readable */
|
||||
if (XtAppPending(app_con) ||
|
||||
if (xtermAppPending() ||
|
||||
FD_ISSET(ConnectionNumber(screen->display), &select_mask)) {
|
||||
xevents();
|
||||
if (VTbuffer->update != update) /* HandleInterpret */
|
||||
@ -5615,7 +5619,7 @@ RequestResize(XtermWidget xw, int rows, int cols, Bool text)
|
||||
#endif
|
||||
|
||||
XSync(screen->display, False); /* synchronize */
|
||||
if (XtAppPending(app_con))
|
||||
if (xtermAppPending())
|
||||
xevents();
|
||||
|
||||
TRACE(("...RequestResize done\n"));
|
||||
@ -6186,6 +6190,12 @@ VTInitialize(Widget wrequest,
|
||||
init_Bres(screen.scrollttyoutput);
|
||||
init_Bres(screen.scrollkey);
|
||||
|
||||
init_Dres(screen.scale_height);
|
||||
if (TScreenOf(wnew)->scale_height < 0.9)
|
||||
TScreenOf(wnew)->scale_height = (float) 0.9;
|
||||
if (TScreenOf(wnew)->scale_height > 1.5)
|
||||
TScreenOf(wnew)->scale_height = (float) 1.5;
|
||||
|
||||
init_Bres(misc.autoWrap);
|
||||
init_Bres(misc.login_shell);
|
||||
init_Bres(misc.reverseWrap);
|
||||
@ -6926,7 +6936,7 @@ VTDestroy(Widget w GCC_UNUSED)
|
||||
TRACE_FREE_LEAK(screen->term_id);
|
||||
TRACE_FREE_LEAK(screen->charClass);
|
||||
TRACE_FREE_LEAK(screen->answer_back);
|
||||
TRACE_FREE_LEAK(screen->printer_command);
|
||||
TRACE_FREE_LEAK(screen->printer_state.printer_command);
|
||||
TRACE_FREE_LEAK(screen->keyboard_dialect);
|
||||
TRACE_FREE_LEAK(screen->disallowedColorOps);
|
||||
TRACE_FREE_LEAK(screen->disallowedFontOps);
|
||||
@ -8430,7 +8440,7 @@ ReallyReset(XtermWidget xw, Bool full, Bool saved)
|
||||
&replyWidth, &replyHeight);
|
||||
repairSizeHints();
|
||||
XSync(screen->display, False); /* synchronize */
|
||||
if (XtAppPending(app_con))
|
||||
if (xtermAppPending())
|
||||
xevents();
|
||||
}
|
||||
|
||||
|
@ -1,36 +1,35 @@
|
||||
/* $XTermId: charsets.c,v 1.41 2009/01/25 23:39:12 tom Exp $ */
|
||||
/* $XTermId: charsets.c,v 1.42 2011/09/11 14:40:17 tom Exp $ */
|
||||
|
||||
/************************************************************
|
||||
|
||||
Copyright 1998-2008,2009 by Thomas E. Dickey
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name(s) of the above copyright
|
||||
holders shall not be used in advertising or otherwise to promote the
|
||||
sale, use or other dealings in this Software without prior written
|
||||
authorization.
|
||||
|
||||
********************************************************/
|
||||
/*
|
||||
* Copyright 1998-2009,2011 by Thomas E. Dickey
|
||||
*
|
||||
* All Rights Reserved
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name(s) of the above copyright
|
||||
* holders shall not be used in advertising or otherwise to promote the
|
||||
* sale, use or other dealings in this Software without prior written
|
||||
* authorization.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <xterm.h>
|
||||
#include <data.h>
|
||||
|
@ -1,4 +1,4 @@
|
||||
dnl $XTermId: configure.in,v 1.277 2011/08/19 09:13:07 tom Exp $
|
||||
dnl $XTermId: configure.in,v 1.279 2011/09/04 21:27:24 tom Exp $
|
||||
dnl
|
||||
dnl -----------------------------------------------------------------------------
|
||||
dnl this file is part of xterm
|
||||
@ -73,6 +73,7 @@ CF_SIGWINCH
|
||||
|
||||
### checks for header files
|
||||
AC_CHECK_HEADERS( \
|
||||
ncurses/curses.h \
|
||||
ncurses/term.h \
|
||||
stdlib.h \
|
||||
sys/ttydefaults.h \
|
||||
@ -100,6 +101,7 @@ AC_CHECK_FUNCS( \
|
||||
getlogin \
|
||||
memmove \
|
||||
putenv \
|
||||
unsetenv \
|
||||
sched_yield \
|
||||
strerror \
|
||||
strftime \
|
||||
|
@ -1,6 +1,6 @@
|
||||
.\"#! troff -ms $1 -*- Nroff -*-
|
||||
.\" "Xterm Control Sequences" document
|
||||
.\" $XTermId: ctlseqs.ms,v 1.242 2011/07/04 22:56:23 tom Exp $
|
||||
.\" $XTermId: ctlseqs.ms,v 1.244 2011/09/04 18:14:33 tom Exp $
|
||||
.\"
|
||||
.\"
|
||||
.\" Copyright 1996-2010,2011 by Thomas E. Dickey
|
||||
@ -443,9 +443,9 @@ Vertical Tab (Ctrl-K). This is treated the same as LF.
|
||||
.\"
|
||||
.St
|
||||
.Ss
|
||||
Controls beginning with ESC
|
||||
Controls beginning with \*(Es
|
||||
.LP
|
||||
This excludes controls where ESC is part of a 7-bit equivalent to 8-bit C1 controls, ordered by the final character(s).
|
||||
This excludes controls where \*(Es is part of a 7-bit equivalent to 8-bit C1 controls, ordered by the final character(s).
|
||||
.\"
|
||||
.IP \\*(Es\\*(Sp\\*F
|
||||
7-bit controls (S7C1T).
|
||||
@ -851,10 +851,10 @@ See the section \fBMouse Tracking\fP.
|
||||
(enables the \fBeightBitInput\fP resource).
|
||||
\*(Ps = \*1\*0\*3\*5 \(-> Enable special modifiers for Alt and NumLock keys.
|
||||
(This enables the \fBnumLock\fP resource).
|
||||
\*(Ps = \*1\*0\*3\*6 \(-> Send ESC when Meta modifies a key.
|
||||
\*(Ps = \*1\*0\*3\*6 \(-> Send \*(Es when Meta modifies a key.
|
||||
(This enables the \fBmetaSendsEscape\fP resource).
|
||||
\*(Ps = \*1\*0\*3\*7 \(-> Send DEL from the editing-keypad Delete key.
|
||||
\*(Ps = \*1\*0\*3\*9 \(-> Send ESC when Alt modifies a key.
|
||||
\*(Ps = \*1\*0\*3\*9 \(-> Send \*(Es when Alt modifies a key.
|
||||
(This enables the \fBaltSendsEscape\fP resource).
|
||||
\*(Ps = \*1\*0\*4\*0 \(-> Keep selection even if not highlighted.
|
||||
(This enables the \fBkeepSelection\fP resource).
|
||||
@ -944,10 +944,10 @@ See the section \fBMouse Tracking\fP.
|
||||
(This disables the \fBeightBitInput\fP resource).
|
||||
\*(Ps = \*1\*0\*3\*5 \(-> Disable special modifiers for Alt and NumLock keys.
|
||||
(This disables the \fBnumLock\fP resource).
|
||||
\*(Ps = \*1\*0\*3\*6 \(-> Don't send ESC when Meta modifies a key.
|
||||
\*(Ps = \*1\*0\*3\*6 \(-> Don't send \*(Es when Meta modifies a key.
|
||||
(This disables the \fBmetaSendsEscape\fP resource).
|
||||
\*(Ps = \*1\*0\*3\*7 \(-> Send VT220 Remove from the editing-keypad Delete key.
|
||||
\*(Ps = \*1\*0\*3\*9 \(-> Don't send ESC when Alt modifies a key.
|
||||
\*(Ps = \*1\*0\*3\*9 \(-> Don't send \*(Es when Alt modifies a key.
|
||||
(This disables the \fBaltSendsEscape\fP resource).
|
||||
\*(Ps = \*1\*0\*4\*0 \(-> Do not keep selection when not highlighted.
|
||||
(This disables the \fBkeepSelection\fP resource).
|
||||
@ -1285,7 +1285,7 @@ DECELR always cancels any prevous rectangle definition.
|
||||
.IP \\*(Cs\\*(Ps\\*s\\*x
|
||||
Request Terminal Parameters (DECREQTPARM).
|
||||
.br
|
||||
if \*(Ps is a "0" (default) or "1", and \fBxterm\fR is emulating VT100,
|
||||
if \*(Ps is a "0" (default) or "1", and \fIxterm\fR is emulating VT100,
|
||||
the control sequence elicits a response of the same form
|
||||
whose parameters describe the terminal:
|
||||
\*(Ps \(-> the given \*(Ps incremented by 2.
|
||||
@ -1415,7 +1415,7 @@ If a "?" is given rather than a name or RGB specification,
|
||||
xterm replies with a control sequence of the same form which can be used
|
||||
to set the corresponding color.
|
||||
Because more than one pair of color number and specification can
|
||||
be given in one control sequence, \fBxterm\fR can make more than one reply.
|
||||
be given in one control sequence, \fIxterm\fR can make more than one reply.
|
||||
.sP
|
||||
\*(Ps = \*5 ; \fIc ; spec\fP \(-> Change Special Color Number \fIc\fP to
|
||||
the color specified by \fIspec\fP.
|
||||
@ -1432,7 +1432,7 @@ to these codes in an \*(Os\*4 control:
|
||||
The 10 colors (below) which may be set or queried
|
||||
using \*1\*0 through \*1\*9 are
|
||||
denoted \fIdynamic colors\fR, since the corresponding control sequences
|
||||
were the first means for setting \fBxterm\fR's colors dynamically,
|
||||
were the first means for setting \fIxterm\fR's colors dynamically,
|
||||
i.e., after it was started.
|
||||
They are not the same as the ANSI colors.
|
||||
These controls may be disabled using the \fIallowColorOps\fP resource.
|
||||
@ -1445,7 +1445,7 @@ If a "?" is given rather than a name or RGB specification,
|
||||
xterm replies with a control sequence of the same form which can be used
|
||||
to set the corresponding dynamic color.
|
||||
Because more than one pair of color number and specification can
|
||||
be given in one control sequence, \fBxterm\fR can make more than one reply.
|
||||
be given in one control sequence, \fIxterm\fR can make more than one reply.
|
||||
.sP
|
||||
\*(Ps = \*1\*0 \(-> Change VT100 text foreground color to \*(Pt.
|
||||
\*(Ps = \*1\*1 \(-> Change VT100 text background color to \*(Pt.
|
||||
@ -1899,14 +1899,14 @@ Similarly, \fIxterm\fP can be compiled to support HP keyboards.
|
||||
See the xterm-hp terminfo entry for details.
|
||||
.Sh "The Alternate Screen Buffer"
|
||||
.LP
|
||||
\fBXterm\fP maintains two screen buffers.
|
||||
\fIXterm\fP maintains two screen buffers.
|
||||
The normal screen buffer allows you to scroll back to view saved lines
|
||||
of output up to the maximum set by the \fBsaveLines\fP resource.
|
||||
The alternate screen buffer is exactly as large as the display,
|
||||
contains no additional saved lines.
|
||||
When the alternate screen buffer is active,
|
||||
you cannot scroll back to view saved lines.
|
||||
\fBXterm\fP provides control sequences and menu entries
|
||||
\fIXterm\fP provides control sequences and menu entries
|
||||
for switching between the two.
|
||||
.lP
|
||||
Most full-screen applications use terminfo or termcap to obtain
|
||||
@ -1915,7 +1915,7 @@ i.e., \fIsmcup\fP and \fIrmcup\fP for terminfo,
|
||||
or the corresponding \fIti\fP and \fIte\fP for termcap.
|
||||
The \fBtiteInhibit\fP resource removes the \fIti\fP and \fIte\fP strings
|
||||
from the TERMCAP string which is set in the environment for some platforms.
|
||||
That is not done when \fBxterm\fP is built with terminfo libraries because
|
||||
That is not done when \fIxterm\fP is built with terminfo libraries because
|
||||
terminfo does not provide the whole text of the termcap data in one piece.
|
||||
It would not work for terminfo anyway, since terminfo data is not passed
|
||||
in environment variables;
|
||||
@ -1937,10 +1937,10 @@ pasted text is bracketed with control sequences
|
||||
so that the program can differentiate pasted text from typed-in text.
|
||||
When bracketed paste mode is set,
|
||||
the program will receive:
|
||||
ESC [ 200 ~,
|
||||
\*(Es [ 200 ~,
|
||||
.br
|
||||
followed by the pasted text, followed by
|
||||
ESC [ 201 ~.
|
||||
\*(Es [ 201 ~.
|
||||
.
|
||||
.Sh "Title Modes"
|
||||
.LP
|
||||
@ -2177,24 +2177,24 @@ Form Feed or New Page (Ctrl-L).
|
||||
.IP \\*(Cr
|
||||
Carriage Return (Ctrl-M).
|
||||
.IP \\*(Es\\*(Et
|
||||
Switch to VT100 Mode (ESC Ctrl-C).
|
||||
Switch to VT100 Mode (\*(Es Ctrl-C).
|
||||
.IP \\*(Es\\*(En
|
||||
Return Terminal Status (ESC Ctrl-E).
|
||||
Return Terminal Status (\*(Es Ctrl-E).
|
||||
.IP \\*(Es\\*(Ff
|
||||
PAGE (Clear Screen) (ESC Ctrl-L).
|
||||
PAGE (Clear Screen) (\*(Es Ctrl-L).
|
||||
.IP \\*(Es\\*(So
|
||||
Begin 4015 APL mode (ESC Ctrl-N). (This is ignored by \fIxterm\fP).
|
||||
Begin 4015 APL mode (\*(Es Ctrl-N). (This is ignored by \fIxterm\fP).
|
||||
.IP \\*(Es\\*(Si
|
||||
End 4015 APL mode (ESC Ctrl-O). (This is ignored by \fIxterm\fP).
|
||||
End 4015 APL mode (\*(Es Ctrl-O). (This is ignored by \fIxterm\fP).
|
||||
.IP \\*(Es\\*(Eb
|
||||
COPY (Save Tektronix Codes to file COPY\fIyyyy-mm-dd.hh:mm:ss\fP).
|
||||
\*(Eb (end transmission block) is the same as Ctrl-W.
|
||||
.IP \\*(Es\\*(Ca
|
||||
Bypass Condition (ESC Ctrl-X).
|
||||
Bypass Condition (\*(Es Ctrl-X).
|
||||
.IP \\*(Es\\*(Su
|
||||
GIN mode (ESC Ctrl-Z).
|
||||
GIN mode (\*(Es Ctrl-Z).
|
||||
.IP \\*(Es\\*(Fs
|
||||
Special Point Plot Mode (ESC Ctrl-\e).
|
||||
Special Point Plot Mode (\*(Es Ctrl-\e).
|
||||
.IP \\*(Es\\*8
|
||||
Select Large Character Set.
|
||||
.IP \\*(Es\\*9
|
||||
|
@ -9,7 +9,6 @@
|
||||
|
||||
Xterm Control Sequences
|
||||
|
||||
|
||||
Edward Moy
|
||||
University of California, Berkeley
|
||||
|
||||
@ -112,7 +111,7 @@ TAB Horizontal Tab (HT) (Ctrl-I).
|
||||
VT Vertical Tab (Ctrl-K). This is treated the same as LF.
|
||||
|
||||
Controls beginning with ESC
|
||||
This excludes controls where ESC is part of a 7-bit equivalent to 8-bit
|
||||
This excludes controls where ESC is part of a 7-bit equivalent to 8-bit
|
||||
C1 controls, ordered by the final character(s).
|
||||
ESC SP F 7-bit controls (S7C1T).
|
||||
ESC SP G 8-bit controls (S8C1T).
|
||||
@ -207,8 +206,8 @@ DCS + p Pt ST
|
||||
as by the Request Termcap/Terminfo String control.
|
||||
DCS + q Pt ST
|
||||
Request Termcap/Terminfo String (xterm, experimental). The
|
||||
string following the "q" is a list of names encoded in hexa-
|
||||
decimal (2 digits per character) separated by ; which corre-
|
||||
string following the "q" is a list of names encoded in hex-
|
||||
adecimal (2 digits per character) separated by ; which corre-
|
||||
spond to termcap or terminfo key names.
|
||||
Two special features are also recognized, which are not key
|
||||
names: Co for termcap colors (or colors for terminfo colors),
|
||||
@ -365,11 +364,11 @@ CSI ? Pm h
|
||||
(enables the eightBitInput resource).
|
||||
Ps = 1 0 3 5 -> Enable special modifiers for Alt and Num-
|
||||
Lock keys. (This enables the numLock resource).
|
||||
Ps = 1 0 3 6 -> Send ESC when Meta modifies a key. (This
|
||||
Ps = 1 0 3 6 -> Send ESC when Meta modifies a key. (This
|
||||
enables the metaSendsEscape resource).
|
||||
Ps = 1 0 3 7 -> Send DEL from the editing-keypad Delete
|
||||
key.
|
||||
Ps = 1 0 3 9 -> Send ESC when Alt modifies a key. (This
|
||||
Ps = 1 0 3 9 -> Send ESC when Alt modifies a key. (This
|
||||
enables the altSendsEscape resource).
|
||||
Ps = 1 0 4 0 -> Keep selection even if not highlighted.
|
||||
(This enables the keepSelection resource).
|
||||
@ -455,11 +454,11 @@ CSI ? Pm l
|
||||
the eightBitInput resource).
|
||||
Ps = 1 0 3 5 -> Disable special modifiers for Alt and Num-
|
||||
Lock keys. (This disables the numLock resource).
|
||||
Ps = 1 0 3 6 -> Don't send ESC when Meta modifies a key.
|
||||
Ps = 1 0 3 6 -> Don't send ESC when Meta modifies a key.
|
||||
(This disables the metaSendsEscape resource).
|
||||
Ps = 1 0 3 7 -> Send VT220 Remove from the editing-keypad
|
||||
Delete key.
|
||||
Ps = 1 0 3 9 -> Don't send ESC when Alt modifies a key.
|
||||
Ps = 1 0 3 9 -> Don't send ESC when Alt modifies a key.
|
||||
(This disables the altSendsEscape resource).
|
||||
Ps = 1 0 4 0 -> Do not keep selection when not highlighted.
|
||||
(This disables the keepSelection resource).
|
||||
@ -1300,9 +1299,9 @@ Bracketed Paste Mode
|
||||
When bracketed paste mode is set, pasted text is bracketed with control
|
||||
sequences so that the program can differentiate pasted text from typed-
|
||||
in text. When bracketed paste mode is set, the program will receive:
|
||||
ESC [ 200 ~,
|
||||
ESC [ 200 ~,
|
||||
followed by the pasted text, followed by
|
||||
ESC [ 201 ~.
|
||||
ESC [ 201 ~.
|
||||
|
||||
Title Modes
|
||||
The window- and icon-labels can be set or queried using control
|
||||
@ -1475,16 +1474,17 @@ LF Line Feed or New Line (Ctrl-J).
|
||||
VT Cursor up (Ctrl-K).
|
||||
FF Form Feed or New Page (Ctrl-L).
|
||||
CR Carriage Return (Ctrl-M).
|
||||
ESC ETX Switch to VT100 Mode (ESC Ctrl-C).
|
||||
ESC ENQ Return Terminal Status (ESC Ctrl-E).
|
||||
ESC FF PAGE (Clear Screen) (ESC Ctrl-L).
|
||||
ESC SO Begin 4015 APL mode (ESC Ctrl-N). (This is ignored by xterm).
|
||||
ESC SI End 4015 APL mode (ESC Ctrl-O). (This is ignored by xterm).
|
||||
ESC ETX Switch to VT100 Mode (ESC Ctrl-C).
|
||||
ESC ENQ Return Terminal Status (ESC Ctrl-E).
|
||||
ESC FF PAGE (Clear Screen) (ESC Ctrl-L).
|
||||
ESC SO Begin 4015 APL mode (ESC Ctrl-N). (This is ignored by
|
||||
xterm).
|
||||
ESC SI End 4015 APL mode (ESC Ctrl-O). (This is ignored by xterm).
|
||||
ESC ETB COPY (Save Tektronix Codes to file COPYyyyy-mm-dd.hh:mm:ss).
|
||||
ETB (end transmission block) is the same as Ctrl-W.
|
||||
ESC CAN Bypass Condition (ESC Ctrl-X).
|
||||
ESC SUB GIN mode (ESC Ctrl-Z).
|
||||
ESC FS Special Point Plot Mode (ESC Ctrl-\).
|
||||
ESC CAN Bypass Condition (ESC Ctrl-X).
|
||||
ESC SUB GIN mode (ESC Ctrl-Z).
|
||||
ESC FS Special Point Plot Mode (ESC Ctrl-\).
|
||||
ESC 8 Select Large Character Set.
|
||||
ESC 9 Select #2 Character Set.
|
||||
ESC : Select #3 Character Set.
|
||||
|
@ -1,36 +1,34 @@
|
||||
/* $XTermId: doublechr.c,v 1.75 2010/06/15 10:58:13 tom Exp $ */
|
||||
/* $XTermId: doublechr.c,v 1.76 2011/09/11 14:59:40 tom Exp $ */
|
||||
|
||||
/************************************************************
|
||||
|
||||
Copyright 1997-2009,2010 by Thomas E. Dickey
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name(s) of the above copyright
|
||||
holders shall not be used in advertising or otherwise to promote the
|
||||
sale, use or other dealings in this Software without prior written
|
||||
authorization.
|
||||
|
||||
********************************************************/
|
||||
/*
|
||||
* Copyright 1997-2010,2011 by Thomas E. Dickey
|
||||
*
|
||||
* All Rights Reserved
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name(s) of the above copyright
|
||||
* holders shall not be used in advertising or otherwise to promote the
|
||||
* sale, use or other dealings in this Software without prior written
|
||||
* authorization.
|
||||
*/
|
||||
|
||||
#include <xterm.h>
|
||||
#include <data.h>
|
||||
|
@ -1,36 +1,34 @@
|
||||
/* $XTermId: fontutils.c,v 1.361 2011/07/17 22:26:05 tom Exp $ */
|
||||
/* $XTermId: fontutils.c,v 1.368 2011/09/11 13:22:34 tom Exp $ */
|
||||
|
||||
/************************************************************
|
||||
|
||||
Copyright 1998-2009,2010 by Thomas E. Dickey
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name(s) of the above copyright
|
||||
holders shall not be used in advertising or otherwise to promote the
|
||||
sale, use or other dealings in this Software without prior written
|
||||
authorization.
|
||||
|
||||
********************************************************/
|
||||
/*
|
||||
* Copyright 1998-2010,2011 by Thomas E. Dickey
|
||||
*
|
||||
* All Rights Reserved
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name(s) of the above copyright
|
||||
* holders shall not be used in advertising or otherwise to promote the
|
||||
* sale, use or other dealings in this Software without prior written
|
||||
* authorization.
|
||||
*/
|
||||
|
||||
/*
|
||||
* A portion of this module (for FontNameProperties) was adapted from EMU 1.3;
|
||||
@ -53,6 +51,9 @@ authorization.
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#define SetFontWidth(screen,dst,src) (dst)->f_width = (src)
|
||||
#define SetFontHeight(screen,dst,src) (dst)->f_height = (int)((screen)->scale_height * (float) (src))
|
||||
|
||||
/* from X11/Xlibint.h - not all vendors install this file */
|
||||
#define CI_NONEXISTCHAR(cs) (((cs)->width == 0) && \
|
||||
(((cs)->rbearing|(cs)->lbearing| \
|
||||
@ -661,8 +662,8 @@ is_double_width_font_xft(Display * dpy, XftFont * font)
|
||||
{
|
||||
XGlyphInfo gi1, gi2;
|
||||
FcChar32 c1 = HALF_WIDTH_CHAR1, c2 = HALF_WIDTH_CHAR2;
|
||||
char *fwstr = FULL_WIDTH_TEST_STRING;
|
||||
char *hwstr = HALF_WIDTH_TEST_STRING;
|
||||
String fwstr = FULL_WIDTH_TEST_STRING;
|
||||
String hwstr = HALF_WIDTH_TEST_STRING;
|
||||
|
||||
/* Some Korean fonts don't have Chinese characters at all. */
|
||||
if (!XftCharExists(dpy, font, FULL_WIDTH_CHAR1)) {
|
||||
@ -677,8 +678,16 @@ is_double_width_font_xft(Display * dpy, XftFont * font)
|
||||
if (gi1.xOff != gi2.xOff) /* Not a fixed-width font */
|
||||
return False;
|
||||
|
||||
XftTextExtentsUtf8(dpy, font, (FcChar8 *) hwstr, (int) strlen(hwstr), &gi1);
|
||||
XftTextExtentsUtf8(dpy, font, (FcChar8 *) fwstr, (int) strlen(fwstr), &gi2);
|
||||
XftTextExtentsUtf8(dpy,
|
||||
font,
|
||||
(_Xconst FcChar8 *) hwstr,
|
||||
(int) strlen(hwstr),
|
||||
&gi1);
|
||||
XftTextExtentsUtf8(dpy,
|
||||
font,
|
||||
(_Xconst FcChar8 *) fwstr,
|
||||
(int) strlen(fwstr),
|
||||
&gi2);
|
||||
|
||||
/*
|
||||
* fontconfig and Xft prior to 2.2(?) set the width of half-width
|
||||
@ -1309,8 +1318,11 @@ sameSubResources(SubResourceRec * a, SubResourceRec * b)
|
||||
|
||||
if (!SAME_MEMBER(default_font.f_n)
|
||||
|| !SAME_MEMBER(default_font.f_b)
|
||||
#if OPT_WIDE_CHARS
|
||||
|| !SAME_MEMBER(default_font.f_w)
|
||||
|| !SAME_MEMBER(default_font.f_wb)) {
|
||||
|| !SAME_MEMBER(default_font.f_wb)
|
||||
#endif
|
||||
) {
|
||||
TRACE(("sameSubResources: default_font differs\n"));
|
||||
result = False;
|
||||
} else {
|
||||
@ -1560,12 +1572,13 @@ xtermSetCursorBox(TScreen * screen)
|
||||
|
||||
#define CACHE_XFT(dst,src) if (src != 0) {\
|
||||
checkXft(xw, &(dst[fontnum]), src);\
|
||||
TRACE(("Xft metrics %s[%d] = %d (%d,%d) advance %d, actual %d%s\n",\
|
||||
TRACE(("Xft metrics %s[%d] = %d (%d,%d)%s advance %d, actual %d%s\n",\
|
||||
#dst,\
|
||||
fontnum,\
|
||||
src->height,\
|
||||
src->ascent,\
|
||||
src->descent,\
|
||||
((src->ascent + src->descent) > src->height ? "*" : ""),\
|
||||
src->max_advance_width,\
|
||||
dst[fontnum].map.min_width,\
|
||||
dst[fontnum].map.mixed ? " mixed" : ""));\
|
||||
@ -1776,8 +1789,8 @@ setRenderFontsize(TScreen * screen, VTwin * win, XftFont * font, const char *tag
|
||||
width >>= 1;
|
||||
}
|
||||
if (tag == 0) {
|
||||
win->f_width = width;
|
||||
win->f_height = height;
|
||||
SetFontWidth(screen, win, width);
|
||||
SetFontHeight(screen, win, height);
|
||||
win->f_ascent = ascent;
|
||||
win->f_descent = descent;
|
||||
TRACE(("setRenderFontsize result %dx%d (%d+%d)\n",
|
||||
@ -1791,8 +1804,8 @@ setRenderFontsize(TScreen * screen, VTwin * win, XftFont * font, const char *tag
|
||||
win->f_width, win->f_height, win->f_ascent, win->f_descent,
|
||||
width, height, ascent, descent));
|
||||
|
||||
win->f_width = width;
|
||||
win->f_height = height;
|
||||
SetFontWidth(screen, win, width);
|
||||
SetFontHeight(screen, win, height);
|
||||
win->f_ascent = ascent;
|
||||
win->f_descent = descent;
|
||||
} else {
|
||||
@ -2101,8 +2114,8 @@ xtermComputeFontInfo(XtermWidget xw,
|
||||
|
||||
if (screen->force_packed) {
|
||||
XTermXftFonts *use = &(screen->renderFontNorm[fontnum]);
|
||||
win->f_height = use->font->ascent + use->font->descent;
|
||||
win->f_width = use->map.min_width;
|
||||
SetFontHeight(screen, win, use->font->ascent + use->font->descent);
|
||||
SetFontWidth(screen, win, use->map.min_width);
|
||||
TRACE(("...packed TrueType font %dx%d vs %d\n",
|
||||
win->f_height,
|
||||
win->f_width,
|
||||
@ -2119,11 +2132,11 @@ xtermComputeFontInfo(XtermWidget xw,
|
||||
#endif /* OPT_RENDERFONT */
|
||||
{
|
||||
if (is_double_width_font(font) && !(screen->fnt_prop)) {
|
||||
win->f_width = (font->min_bounds.width);
|
||||
SetFontWidth(screen, win, font->min_bounds.width);
|
||||
} else {
|
||||
win->f_width = (font->max_bounds.width);
|
||||
SetFontWidth(screen, win, font->max_bounds.width);
|
||||
}
|
||||
win->f_height = (font->ascent + font->descent);
|
||||
SetFontHeight(screen, win, font->ascent + font->descent);
|
||||
win->f_ascent = font->ascent;
|
||||
win->f_descent = font->descent;
|
||||
}
|
||||
@ -2794,7 +2807,7 @@ useFaceSizes(XtermWidget xw)
|
||||
/*
|
||||
* Workaround for breakage in font-packages - check if all of the
|
||||
* bitmap font sizes are the same, and if we're using TrueType
|
||||
* fonts.
|
||||
* fonts.
|
||||
*/
|
||||
if (broken_fonts) {
|
||||
float lo_value = (float) 9.0e9;
|
||||
|
@ -1,36 +1,34 @@
|
||||
/* $XTermId: fontutils.h,v 1.83 2011/04/24 20:47:51 tom Exp $ */
|
||||
/* $XTermId: fontutils.h,v 1.84 2011/09/11 14:59:37 tom Exp $ */
|
||||
|
||||
/************************************************************
|
||||
|
||||
Copyright 1998-2010,2011 by Thomas E. Dickey
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name(s) of the above copyright
|
||||
holders shall not be used in advertising or otherwise to promote the
|
||||
sale, use or other dealings in this Software without prior written
|
||||
authorization.
|
||||
|
||||
********************************************************/
|
||||
/*
|
||||
* Copyright 1998-2010,2011 by Thomas E. Dickey
|
||||
*
|
||||
* All Rights Reserved
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name(s) of the above copyright
|
||||
* holders shall not be used in advertising or otherwise to promote the
|
||||
* sale, use or other dealings in this Software without prior written
|
||||
* authorization.
|
||||
*/
|
||||
|
||||
#ifndef included_fontutils_h
|
||||
#define included_fontutils_h 1
|
||||
|
@ -1,36 +1,34 @@
|
||||
/* $XTermId: linedata.c,v 1.79 2011/01/21 00:07:35 tom Exp $ */
|
||||
/* $XTermId: linedata.c,v 1.80 2011/09/11 14:59:39 tom Exp $ */
|
||||
|
||||
/************************************************************
|
||||
|
||||
Copyright 2009-2010,2011 by Thomas E. Dickey
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name(s) of the above copyright
|
||||
holders shall not be used in advertising or otherwise to promote the
|
||||
sale, use or other dealings in this Software without prior written
|
||||
authorization.
|
||||
|
||||
********************************************************/
|
||||
/*
|
||||
* Copyright 2009-2010,2011 by Thomas E. Dickey
|
||||
*
|
||||
* All Rights Reserved
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name(s) of the above copyright
|
||||
* holders shall not be used in advertising or otherwise to promote the
|
||||
* sale, use or other dealings in this Software without prior written
|
||||
* authorization.
|
||||
*/
|
||||
|
||||
#include <xterm.h>
|
||||
#include <data.h> /* FIXME - needed for 'term' */
|
||||
|
236
app/xterm/main.c
236
app/xterm/main.c
@ -1,4 +1,76 @@
|
||||
/* $XTermId: main.c,v 1.656 2011/08/25 08:55:31 tom Exp $ */
|
||||
/* $XTermId: main.c,v 1.667 2011/09/11 21:02:37 tom Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright 2002-2010,2011 by Thomas E. Dickey
|
||||
*
|
||||
* All Rights Reserved
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name(s) of the above copyright
|
||||
* holders shall not be used in advertising or otherwise to promote the
|
||||
* sale, use or other dealings in this Software without prior written
|
||||
* authorization.
|
||||
*
|
||||
* Copyright 1987, 1988 The Open Group
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
* the above copyright notice appear in all copies and that both that
|
||||
* copyright notice and this permission notice appear in supporting
|
||||
* documentation.
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name of The Open Group shall not be
|
||||
* used in advertising or otherwise to promote the sale, use or other dealings
|
||||
* in this Software without prior written authorization from The Open Group.
|
||||
*
|
||||
* Copyright 1987, 1988 by Digital Equipment Corporation, Maynard.
|
||||
*
|
||||
* All Rights Reserved
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software and its
|
||||
* documentation for any purpose and without fee is hereby granted,
|
||||
* provided that the above copyright notice appear in all copies and that
|
||||
* both that copyright notice and this permission notice appear in
|
||||
* supporting documentation, and that the name of Digital not be used in
|
||||
* advertising or publicity pertaining to distribution of the software
|
||||
* without specific, written prior permission.
|
||||
*
|
||||
* DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
* ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
* DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
* ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* W A R N I N G
|
||||
@ -13,80 +85,6 @@
|
||||
* hold your breath, though....
|
||||
*/
|
||||
|
||||
/***********************************************************
|
||||
|
||||
Copyright 2002-2010,2011 by Thomas E. Dickey
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name(s) of the above copyright
|
||||
holders shall not be used in advertising or otherwise to promote the
|
||||
sale, use or other dealings in this Software without prior written
|
||||
authorization.
|
||||
|
||||
Copyright 1987, 1988 The Open Group
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that
|
||||
the above copyright notice appear in all copies and that both that
|
||||
copyright notice and this permission notice appear in supporting
|
||||
documentation.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of The Open Group shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from The Open Group.
|
||||
|
||||
Copyright 1987, 1988 by Digital Equipment Corporation, Maynard.
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be used in
|
||||
advertising or publicity pertaining to distribution of the software
|
||||
without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
******************************************************************/
|
||||
|
||||
/* main.c */
|
||||
|
||||
#define RES_OFFSET(field) XtOffsetOf(XTERM_RESOURCE, field)
|
||||
@ -1033,6 +1031,7 @@ static XrmOptionDescRec optionDescList[] = {
|
||||
{"+rvc", "*colorRVMode", XrmoptionNoArg, (XPointer) "on"},
|
||||
{"-sf", "*sunFunctionKeys", XrmoptionNoArg, (XPointer) "on"},
|
||||
{"+sf", "*sunFunctionKeys", XrmoptionNoArg, (XPointer) "off"},
|
||||
{"-sh", "*scaleHeight", XrmoptionSepArg, (XPointer) NULL},
|
||||
{"-si", "*scrollTtyOutput", XrmoptionNoArg, (XPointer) "off"},
|
||||
{"+si", "*scrollTtyOutput", XrmoptionNoArg, (XPointer) "on"},
|
||||
{"-sk", "*scrollKey", XrmoptionNoArg, (XPointer) "on"},
|
||||
@ -1420,7 +1419,6 @@ parseArg(int *num, char **argv, char **valuep)
|
||||
/* *INDENT-OFF* */
|
||||
#define DATA(option,kind) { option, NULL, kind, (XtPointer) NULL }
|
||||
static XrmOptionDescRec opTable[] = {
|
||||
DATA("+rv", XrmoptionNoArg),
|
||||
DATA("+synchronous", XrmoptionNoArg),
|
||||
DATA("-background", XrmoptionSepArg),
|
||||
DATA("-bd", XrmoptionSepArg),
|
||||
@ -1433,11 +1431,9 @@ parseArg(int *num, char **argv, char **valuep)
|
||||
DATA("-fn", XrmoptionSepArg),
|
||||
DATA("-font", XrmoptionSepArg),
|
||||
DATA("-foreground", XrmoptionSepArg),
|
||||
DATA("-geometry", XrmoptionSepArg),
|
||||
DATA("-iconic", XrmoptionNoArg),
|
||||
DATA("-name", XrmoptionSepArg),
|
||||
DATA("-reverse", XrmoptionNoArg),
|
||||
DATA("-rv", XrmoptionNoArg),
|
||||
DATA("-selectionTimeout", XrmoptionSepArg),
|
||||
DATA("-synchronous", XrmoptionNoArg),
|
||||
DATA("-title", XrmoptionSepArg),
|
||||
@ -1460,6 +1456,9 @@ parseArg(int *num, char **argv, char **valuep)
|
||||
int atbest = -1;
|
||||
int best = -1;
|
||||
int test;
|
||||
Boolean exact = False;
|
||||
int ambiguous1 = -1;
|
||||
int ambiguous2 = -1;
|
||||
|
||||
#define ITEM(n) ((Cardinal)(n) < XtNumber(optionDescList) \
|
||||
? &optionDescList[n] \
|
||||
@ -1485,10 +1484,12 @@ parseArg(int *num, char **argv, char **valuep)
|
||||
if ((test + 1) == (int) strlen(check->option)) {
|
||||
if (check->argKind == XrmoptionStickyArg) {
|
||||
if (strlen(argv[*num]) > strlen(check->option)) {
|
||||
exact = True;
|
||||
atbest = (int) inlist;
|
||||
break;
|
||||
}
|
||||
} else if ((test + 1) == (int) strlen(argv[*num])) {
|
||||
exact = True;
|
||||
atbest = (int) inlist;
|
||||
break;
|
||||
}
|
||||
@ -1513,10 +1514,8 @@ parseArg(int *num, char **argv, char **valuep)
|
||||
} else if (test == best) {
|
||||
if (atbest >= 0) {
|
||||
if (atbest > 0) {
|
||||
fprintf(stderr,
|
||||
"%s: ambiguous option \"%s\" vs \"%s\"\n",
|
||||
ProgramName, check->option,
|
||||
ITEM(atbest)->option);
|
||||
ambiguous1 = (int) inlist;
|
||||
ambiguous2 = (int) atbest;
|
||||
}
|
||||
atbest = -1;
|
||||
}
|
||||
@ -1526,6 +1525,13 @@ parseArg(int *num, char **argv, char **valuep)
|
||||
|
||||
*valuep = 0;
|
||||
if (atbest >= 0) {
|
||||
if (!exact && ambiguous1 >= 0 && ambiguous2 >= 0) {
|
||||
fprintf(stderr,
|
||||
"%s: ambiguous option \"%s\" vs \"%s\"\n",
|
||||
ProgramName,
|
||||
ITEM(ambiguous1)->option,
|
||||
ITEM(ambiguous2)->option);
|
||||
}
|
||||
result = ITEM(atbest);
|
||||
TRACE(("...result %s\n", result->option));
|
||||
/* expand abbreviations */
|
||||
@ -2406,7 +2412,7 @@ main(int argc, char *argv[]ENVP_ARG)
|
||||
char **split_filter = x_splitargs(term->misc.localefilter);
|
||||
unsigned count_split = x_countargv(split_filter);
|
||||
unsigned count_exec = x_countargv(command_to_exec);
|
||||
unsigned count_using = (term->misc.use_encoding ? 2 : 0);
|
||||
unsigned count_using = (unsigned) (term->misc.use_encoding ? 2 : 0);
|
||||
|
||||
command_to_exec_with_luit = TypeCallocN(char *,
|
||||
(count_split
|
||||
@ -2419,7 +2425,7 @@ main(int argc, char *argv[]ENVP_ARG)
|
||||
x_appendargv(command_to_exec_with_luit, split_filter);
|
||||
if (count_using) {
|
||||
char *encoding_opt[4];
|
||||
encoding_opt[0] = "-encoding";
|
||||
encoding_opt[0] = x_strdup("-encoding");
|
||||
encoding_opt[1] = term->misc.locale_str;
|
||||
encoding_opt[2] = 0;
|
||||
x_appendargv(command_to_exec_with_luit, encoding_opt);
|
||||
@ -2427,7 +2433,7 @@ main(int argc, char *argv[]ENVP_ARG)
|
||||
command_length_with_luit = x_countargv(command_to_exec_with_luit);
|
||||
if (count_exec) {
|
||||
char *delimiter[2];
|
||||
delimiter[0] = "--";
|
||||
delimiter[0] = x_strdup("--");
|
||||
delimiter[1] = 0;
|
||||
x_appendargv(command_to_exec_with_luit, delimiter);
|
||||
x_appendargv(command_to_exec_with_luit, command_to_exec);
|
||||
@ -3227,7 +3233,7 @@ spawnXTerm(XtermWidget xw)
|
||||
#ifdef TTYSIZE_STRUCT
|
||||
TTYSIZE_STRUCT ts;
|
||||
#endif
|
||||
struct passwd *pw = NULL;
|
||||
struct passwd pw;
|
||||
char *login_name = NULL;
|
||||
#ifndef USE_UTEMPTER
|
||||
#ifdef HAVE_UTMP
|
||||
@ -3294,7 +3300,7 @@ spawnXTerm(XtermWidget xw)
|
||||
ttyfd = -1;
|
||||
errno = ENXIO;
|
||||
}
|
||||
pw = NULL;
|
||||
memset(&pw, 0, sizeof(pw));
|
||||
#if OPT_PTY_HANDSHAKE
|
||||
got_handshake_size = False;
|
||||
#endif /* OPT_PTY_HANDSHAKE */
|
||||
@ -4153,40 +4159,9 @@ spawnXTerm(XtermWidget xw)
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_UTMP
|
||||
pw = getpwuid(screen->uid);
|
||||
login_name = NULL;
|
||||
if (pw && pw->pw_name) {
|
||||
#ifdef HAVE_GETLOGIN
|
||||
/*
|
||||
* If the value from getlogin() differs from the value we
|
||||
* get by looking in the password file, check if it does
|
||||
* correspond to the same uid. If so, allow that as an
|
||||
* alias for the uid.
|
||||
*
|
||||
* Of course getlogin() will fail if we're started from
|
||||
* a window-manager, since there's no controlling terminal
|
||||
* to fuss with. In that case, try to get something useful
|
||||
* from the user's $LOGNAME or $USER environment variables.
|
||||
*/
|
||||
if (((login_name = getlogin()) != NULL
|
||||
|| (login_name = x_getenv("LOGNAME")) != NULL
|
||||
|| (login_name = x_getenv("USER")) != NULL)
|
||||
&& strcmp(login_name, pw->pw_name)) {
|
||||
struct passwd *pw2 = getpwnam(login_name);
|
||||
if (pw2 != 0) {
|
||||
uid_t uid2 = pw2->pw_uid;
|
||||
pw = getpwuid(screen->uid);
|
||||
if ((uid_t) pw->pw_uid != uid2)
|
||||
login_name = NULL;
|
||||
} else {
|
||||
pw = getpwuid(screen->uid);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if (login_name == NULL)
|
||||
login_name = pw->pw_name;
|
||||
if (login_name != NULL)
|
||||
login_name = x_strdup(login_name);
|
||||
if (x_getpwuid(screen->uid, &pw)) {
|
||||
login_name = x_getlogin(screen->uid, &pw);
|
||||
}
|
||||
if (login_name != NULL) {
|
||||
xtermSetenv("LOGNAME", login_name); /* for POSIX */
|
||||
@ -4299,7 +4274,7 @@ spawnXTerm(XtermWidget xw)
|
||||
tslot = ttyslot();
|
||||
added_utmp_entry = False;
|
||||
{
|
||||
if (tslot > 0 && pw && !resource.utmpInhibit &&
|
||||
if (tslot > 0 && OkPasswd(&pw) && !resource.utmpInhibit &&
|
||||
(i = open(etc_utmp, O_WRONLY)) >= 0) {
|
||||
memset(&utmp, 0, sizeof(utmp));
|
||||
(void) strncpy(utmp.ut_line,
|
||||
@ -4403,8 +4378,8 @@ spawnXTerm(XtermWidget xw)
|
||||
IGNORE_RC(setgid(screen->gid));
|
||||
TRACE_IDS;
|
||||
#ifdef HAS_BSD_GROUPS
|
||||
if (geteuid() == 0 && pw) {
|
||||
if (initgroups(login_name, pw->pw_gid)) {
|
||||
if (geteuid() == 0 && OkPasswd(&pw)) {
|
||||
if (initgroups(login_name, pw.pw_gid)) {
|
||||
perror("initgroups failed");
|
||||
SysError(ERROR_INIGROUPS);
|
||||
}
|
||||
@ -4468,11 +4443,11 @@ spawnXTerm(XtermWidget xw)
|
||||
xtermSetenv("LINES", numbuf);
|
||||
}
|
||||
#ifdef HAVE_UTMP
|
||||
if (pw) { /* SVR4 doesn't provide these */
|
||||
if (OkPasswd(&pw)) { /* SVR4 doesn't provide these */
|
||||
if (!x_getenv("HOME"))
|
||||
xtermSetenv("HOME", pw->pw_dir);
|
||||
xtermSetenv("HOME", pw.pw_dir);
|
||||
if (!x_getenv("SHELL"))
|
||||
xtermSetenv("SHELL", pw->pw_shell);
|
||||
xtermSetenv("SHELL", pw.pw_shell);
|
||||
}
|
||||
#endif /* HAVE_UTMP */
|
||||
#ifdef OWN_TERMINFO_DIR
|
||||
@ -4540,11 +4515,10 @@ spawnXTerm(XtermWidget xw)
|
||||
* Incidentally, our setting of $SHELL tells luit to use that
|
||||
* program rather than choosing between $SHELL and "/bin/sh".
|
||||
*/
|
||||
unsetenv("SHELL");
|
||||
if ((ptr = explicit_shname) == NULL) {
|
||||
if ((ptr = x_getenv("SHELL")) == NULL) {
|
||||
if ((pw == NULL && (pw = getpwuid(screen->uid)) == NULL)
|
||||
|| *(ptr = pw->pw_shell) == 0) {
|
||||
if ((!OkPasswd(&pw) && !x_getpwuid(screen->uid, &pw))
|
||||
|| *(ptr = pw.pw_shell) == 0) {
|
||||
ptr = x_strdup("/bin/sh");
|
||||
} else if (ptr != 0) {
|
||||
xtermSetenv("SHELL", ptr);
|
||||
@ -4603,7 +4577,7 @@ spawnXTerm(XtermWidget xw)
|
||||
#endif /* !TERMIO_STRUCT */
|
||||
|
||||
#ifdef USE_LOGIN_DASH_P
|
||||
if (xw->misc.login_shell && pw && added_utmp_entry)
|
||||
if (xw->misc.login_shell && OkPasswd(&pw) && added_utmp_entry)
|
||||
execl(bin_login, "login", "-p", "-f", login_name, (void *) 0);
|
||||
#endif
|
||||
|
||||
@ -4916,7 +4890,7 @@ Exit(int n)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Close after releasing ownership to avoid race condition: other programs
|
||||
* Close after releasing ownership to avoid race condition: other programs
|
||||
* grabbing it, and *then* having us release ownership....
|
||||
*/
|
||||
close(screen->respond); /* close explicitly to avoid race with slave side */
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $XTermId: menu.c,v 1.295 2011/07/12 10:45:36 tom Exp $ */
|
||||
/* $XTermId: menu.c,v 1.297 2011/09/11 13:15:18 tom Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright 1999-2010,2011 by Thomas E. Dickey
|
||||
@ -540,9 +540,11 @@ unusedEntries(XtermWidget xw, MenuIndex num)
|
||||
memset(result, 0, sizeof(result));
|
||||
switch (num) {
|
||||
case mainMenu:
|
||||
#if OPT_MAXIMIZE
|
||||
if (resource.fullscreen > 1) {
|
||||
result[mainMenu_fullscreen] = True;
|
||||
}
|
||||
#endif
|
||||
#if OPT_NUM_LOCK
|
||||
if (!screen->alt_is_not_meta) {
|
||||
result[mainMenu_alt_esc] = True;
|
||||
@ -655,7 +657,7 @@ create_menu(Widget w, XtermWidget xw, MenuIndex num)
|
||||
for (n = 0; n < nentries; ++n) {
|
||||
if (!unused[n]) {
|
||||
cb[0].callback = (XtCallbackProc) entries[n].function;
|
||||
cb[0].closure = (caddr_t) entries[n].name;
|
||||
cb[0].closure = (XtPointer) entries[n].name;
|
||||
entries[n].widget = XtCreateManagedWidget(entries[n].name,
|
||||
(entries[n].function
|
||||
? smeBSBObjectClass
|
||||
@ -3564,6 +3566,7 @@ update_font_utf8_title(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if OPT_DEC_CHRSET || OPT_BOX_CHARS || OPT_DEC_SOFTFONT
|
||||
void
|
||||
update_menu_allowBoldFonts(void)
|
||||
{
|
||||
@ -3572,6 +3575,7 @@ update_menu_allowBoldFonts(void)
|
||||
fontMenu_allowBoldFonts,
|
||||
TScreenOf(term)->allowBoldFonts);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if OPT_ALLOW_XXX_OPS
|
||||
static void
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $XTermId: menu.h,v 1.125 2011/07/11 09:41:34 tom Exp $ */
|
||||
/* $XTermId: menu.h,v 1.126 2011/08/28 21:15:40 tom Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright 1999-2010,2011 by Thomas E. Dickey
|
||||
@ -435,8 +435,6 @@ extern void update_poponbell(void);
|
||||
|
||||
#define update_marginbell() /* nothing */
|
||||
|
||||
extern void update_menu_allowBoldFonts(void);
|
||||
|
||||
#if OPT_ALLOW_XXX_OPS
|
||||
extern void update_menu_allowColorOps(void);
|
||||
extern void update_menu_allowFontOps(void);
|
||||
@ -508,6 +506,12 @@ extern void set_tekhide_sensitivity(void);
|
||||
#define set_tekhide_sensitivity() /*nothing*/
|
||||
#endif
|
||||
|
||||
#if OPT_DEC_CHRSET || OPT_BOX_CHARS || OPT_DEC_SOFTFONT
|
||||
extern void update_menu_allowBoldFonts(void);
|
||||
#else
|
||||
#define update_menu_allowBoldFonts() /*nothing*/
|
||||
#endif
|
||||
|
||||
/*
|
||||
* macros for mapping font size to tekMenu placement
|
||||
*/
|
||||
|
295
app/xterm/misc.c
295
app/xterm/misc.c
@ -1,4 +1,4 @@
|
||||
/* $XTermId: misc.c,v 1.539 2011/08/23 01:03:18 tom Exp $ */
|
||||
/* $XTermId: misc.c,v 1.548 2011/09/11 20:18:45 tom Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright 1999-2010,2011 by Thomas E. Dickey
|
||||
@ -272,7 +272,7 @@ do_xevents(void)
|
||||
{
|
||||
TScreen *screen = TScreenOf(term);
|
||||
|
||||
if (XtAppPending(app_con)
|
||||
if (xtermAppPending()
|
||||
||
|
||||
#if defined(VMS) || defined(__VMS)
|
||||
screen->display->qlen > 0
|
||||
@ -359,6 +359,172 @@ xtermShowPointer(XtermWidget xw, Bool enable)
|
||||
}
|
||||
}
|
||||
|
||||
#if OPT_TRACE
|
||||
static void
|
||||
TraceExposeEvent(XEvent * arg)
|
||||
{
|
||||
XExposeEvent *event = (XExposeEvent *) arg;
|
||||
|
||||
TRACE(("pending Expose %ld %d: %d,%d %dx%d %#lx\n",
|
||||
event->serial,
|
||||
event->count,
|
||||
event->y,
|
||||
event->x,
|
||||
event->height,
|
||||
event->width,
|
||||
event->window));
|
||||
}
|
||||
|
||||
#else
|
||||
#define TraceExposeEvent(event) /* nothing */
|
||||
#endif
|
||||
|
||||
/* true if p contains q */
|
||||
#define ExposeContains(p,q) \
|
||||
((p)->y <= (q)->y \
|
||||
&& (p)->x <= (q)->x \
|
||||
&& ((p)->y + (p)->height) >= ((q)->y + (q)->height) \
|
||||
&& ((p)->x + (p)->width) >= ((q)->x + (q)->width))
|
||||
|
||||
static XtInputMask
|
||||
mergeExposeEvents(XEvent * target)
|
||||
{
|
||||
XEvent next_event;
|
||||
XExposeEvent *p, *q;
|
||||
|
||||
TRACE(("pending Expose...?\n"));
|
||||
TraceExposeEvent(target);
|
||||
XtAppNextEvent(app_con, target);
|
||||
p = (XExposeEvent *) target;
|
||||
|
||||
while (XtAppPending(app_con)
|
||||
&& XtAppPeekEvent(app_con, &next_event)
|
||||
&& next_event.type == Expose) {
|
||||
Boolean merge_this = False;
|
||||
|
||||
TraceExposeEvent(&next_event);
|
||||
q = (XExposeEvent *) (&next_event);
|
||||
XtAppNextEvent(app_con, &next_event);
|
||||
|
||||
/*
|
||||
* If either window is contained within the other, merge the events.
|
||||
* The traces show that there are also cases where a full repaint of
|
||||
* a window is broken into 3 or more rectangles, which do not arrive
|
||||
* in the same instant. We could merge those if xterm were modified
|
||||
* to skim several events ahead.
|
||||
*/
|
||||
if (p->window == q->window) {
|
||||
if (ExposeContains(p, q)) {
|
||||
TRACE(("pending Expose...merged forward\n"));
|
||||
merge_this = True;
|
||||
next_event = *target;
|
||||
} else if (ExposeContains(q, p)) {
|
||||
TRACE(("pending Expose...merged backward\n"));
|
||||
merge_this = True;
|
||||
}
|
||||
}
|
||||
if (!merge_this) {
|
||||
XtDispatchEvent(target);
|
||||
}
|
||||
*target = next_event;
|
||||
}
|
||||
XtDispatchEvent(target);
|
||||
return XtAppPending(app_con);
|
||||
}
|
||||
|
||||
#if OPT_TRACE
|
||||
static void
|
||||
TraceConfigureEvent(XEvent * arg)
|
||||
{
|
||||
XConfigureEvent *event = (XConfigureEvent *) arg;
|
||||
|
||||
TRACE(("pending Configure %ld %d,%d %dx%d %#lx\n",
|
||||
event->serial,
|
||||
event->y,
|
||||
event->x,
|
||||
event->height,
|
||||
event->width,
|
||||
event->window));
|
||||
}
|
||||
|
||||
#else
|
||||
#define TraceConfigureEvent(event) /* nothing */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* On entry, we have peeked at the event queue and see a configure-notify
|
||||
* event. Remove that from the queue so we can look further.
|
||||
*
|
||||
* Then, as long as there is a configure-notify event in the queue, remove
|
||||
* that. If the adjacent events are for different windows, process the older
|
||||
* event and update the event used for comparing windows. If they are for the
|
||||
* same window, only the newer event is of interest.
|
||||
*
|
||||
* Finally, process the (remaining) configure-notify event.
|
||||
*/
|
||||
static XtInputMask
|
||||
mergeConfigureEvents(XEvent * target)
|
||||
{
|
||||
XEvent next_event;
|
||||
XConfigureEvent *p, *q;
|
||||
|
||||
XtAppNextEvent(app_con, target);
|
||||
p = (XConfigureEvent *) target;
|
||||
|
||||
TRACE(("pending Configure...?%s\n", XtAppPending(app_con) ? "yes" : "no"));
|
||||
TraceConfigureEvent(target);
|
||||
|
||||
if (XtAppPending(app_con)
|
||||
&& XtAppPeekEvent(app_con, &next_event)
|
||||
&& next_event.type == ConfigureNotify) {
|
||||
Boolean merge_this = False;
|
||||
|
||||
TraceConfigureEvent(&next_event);
|
||||
XtAppNextEvent(app_con, &next_event);
|
||||
q = (XConfigureEvent *) (&next_event);
|
||||
|
||||
if (p->window == q->window) {
|
||||
TRACE(("pending Configure...merged\n"));
|
||||
merge_this = True;
|
||||
}
|
||||
if (!merge_this) {
|
||||
TRACE(("pending Configure...skipped\n"));
|
||||
XtDispatchEvent(target);
|
||||
}
|
||||
*target = next_event;
|
||||
}
|
||||
XtDispatchEvent(target);
|
||||
return XtAppPending(app_con);
|
||||
}
|
||||
|
||||
/*
|
||||
* Filter redundant Expose- and ConfigureNotify-events. This is limited to
|
||||
* adjacent events because there could be other event-loop processing. Absent
|
||||
* that limitation, it might be possible to scan ahead to find when the screen
|
||||
* would be completely updated, skipping unnecessary re-repainting before that
|
||||
* point.
|
||||
*
|
||||
* Note: all cases should allow doing XtAppNextEvent if result is true.
|
||||
*/
|
||||
XtInputMask
|
||||
xtermAppPending(void)
|
||||
{
|
||||
XtInputMask result = XtAppPending(app_con);
|
||||
XEvent this_event;
|
||||
|
||||
while (result && XtAppPeekEvent(app_con, &this_event)) {
|
||||
if (this_event.type == Expose) {
|
||||
result = mergeExposeEvents(&this_event);
|
||||
} else if (this_event.type == ConfigureNotify) {
|
||||
result = mergeConfigureEvents(&this_event);
|
||||
} else {
|
||||
TRACE(("pending %s\n", visibleEventType(this_event.type)));
|
||||
break;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
void
|
||||
xevents(void)
|
||||
{
|
||||
@ -378,7 +544,7 @@ xevents(void)
|
||||
* XEvent queue. Other sources i.e., the pty are handled elsewhere
|
||||
* with select().
|
||||
*/
|
||||
while ((input_mask = XtAppPending(app_con)) != 0) {
|
||||
while ((input_mask = xtermAppPending()) != 0) {
|
||||
if (input_mask & XtIMTimer)
|
||||
XtAppProcessEvent(app_con, (XtInputMask) XtIMTimer);
|
||||
#if OPT_SESSION_MGT
|
||||
@ -462,7 +628,7 @@ xevents(void)
|
||||
|
||||
XtDispatchEvent(&event);
|
||||
}
|
||||
} while (XtAppPending(app_con) & XtIMXEvent);
|
||||
} while (xtermAppPending() & XtIMXEvent);
|
||||
}
|
||||
|
||||
static Cursor
|
||||
@ -1623,9 +1789,6 @@ void
|
||||
StartLog(XtermWidget xw)
|
||||
{
|
||||
static char *log_default;
|
||||
#ifdef ALLOWLOGFILEEXEC
|
||||
char *cp;
|
||||
#endif /* ALLOWLOGFILEEXEC */
|
||||
TScreen *screen = TScreenOf(xw);
|
||||
|
||||
if (screen->logging || (screen->inhibit & I_LOG))
|
||||
@ -1685,7 +1848,7 @@ StartLog(XtermWidget xw)
|
||||
int pid;
|
||||
int p[2];
|
||||
static char *shell;
|
||||
struct passwd *pw;
|
||||
struct passwd pw;
|
||||
|
||||
if (pipe(p) < 0 || (pid = fork()) < 0)
|
||||
return;
|
||||
@ -1705,14 +1868,19 @@ StartLog(XtermWidget xw)
|
||||
close(ConnectionNumber(screen->display));
|
||||
close(screen->respond);
|
||||
|
||||
if ((((cp = x_getenv("SHELL")) == NULL)
|
||||
&& ((pw = getpwuid(screen->uid)) == NULL
|
||||
|| *(cp = pw->pw_shell) == 0))
|
||||
|| (shell = CastMallocN(char, strlen(cp))) == 0) {
|
||||
if ((shell = x_getenv("SHELL")) == NULL) {
|
||||
|
||||
if (x_getpwuid(screen->uid, &pw)) {
|
||||
x_getlogin(screen->uid, &pw);
|
||||
if (*(pw.pw_shell)) {
|
||||
shell = pw.pw_shell;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (shell == 0) {
|
||||
static char dummy[] = "/bin/sh";
|
||||
shell = dummy;
|
||||
} else {
|
||||
strcpy(shell, cp);
|
||||
}
|
||||
|
||||
signal(SIGHUP, SIG_DFL);
|
||||
@ -3290,8 +3458,10 @@ do_dcs(XtermWidget xw, Char * dcsbuf, size_t dcslen)
|
||||
int code = 0;
|
||||
if (screen->cursor_underline)
|
||||
code |= 2;
|
||||
#if OPT_BLINK_CURS
|
||||
if (screen->cursor_blink)
|
||||
code |= 1;
|
||||
#endif
|
||||
sprintf(reply, "%d%s", code + 1, cp);
|
||||
} else
|
||||
okay = False;
|
||||
@ -4204,12 +4374,31 @@ xtermFindShell(char *leaf, Bool warning)
|
||||
|
||||
#define ENV_HUNK(n) (unsigned) ((((n) + 1) | 31) + 1)
|
||||
|
||||
/*
|
||||
* If we do not have unsetenv(), make consistent updates for environ[].
|
||||
* This could happen on some older machines due to the uneven standardization
|
||||
* process for the two functions.
|
||||
*
|
||||
* That is, putenv() makes a copy of environ, and some implementations do not
|
||||
* update the environ pointer, so the fallback when unsetenv() is missing would
|
||||
* not work as intended. Likewise, the reverse could be true, i.e., unsetenv
|
||||
* could copy environ.
|
||||
*/
|
||||
#if defined(HAVE_PUTENV) && !defined(HAVE_UNSETENV)
|
||||
#undef HAVE_PUTENV
|
||||
#elif !defined(HAVE_PUTENV) && defined(HAVE_UNSETENV)
|
||||
#undef HAVE_UNSETENV
|
||||
#endif
|
||||
|
||||
/*
|
||||
* copy the environment before Setenv'ing.
|
||||
*/
|
||||
void
|
||||
xtermCopyEnv(char **oldenv)
|
||||
{
|
||||
#ifdef HAVE_PUTENV
|
||||
(void) oldenv;
|
||||
#else
|
||||
unsigned size;
|
||||
char **newenv;
|
||||
|
||||
@ -4220,8 +4409,32 @@ xtermCopyEnv(char **oldenv)
|
||||
newenv = TypeCallocN(char *, ENV_HUNK(size));
|
||||
memmove(newenv, oldenv, size * sizeof(char *));
|
||||
environ = newenv;
|
||||
#endif
|
||||
}
|
||||
|
||||
#if !defined(HAVE_PUTENV) || !defined(HAVE_UNSETENV)
|
||||
static int
|
||||
findEnv(const char *var, int *lengthp)
|
||||
{
|
||||
char *test;
|
||||
int envindex = 0;
|
||||
size_t len = strlen(var);
|
||||
int found = -1;
|
||||
|
||||
TRACE(("findEnv(%s=..)\n", var));
|
||||
|
||||
while ((test = environ[envindex]) != NULL) {
|
||||
if (strncmp(test, var, len) == 0 && test[len] == '=') {
|
||||
found = envindex;
|
||||
break;
|
||||
}
|
||||
envindex++;
|
||||
}
|
||||
*lengthp = envindex;
|
||||
return found;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* sets the value of var to be arg in the Unix 4.2 BSD environment env.
|
||||
* Var should end with '=' (bindings are of the form "var=value").
|
||||
@ -4233,21 +4446,20 @@ void
|
||||
xtermSetenv(const char *var, const char *value)
|
||||
{
|
||||
if (value != 0) {
|
||||
char *test;
|
||||
int envindex = 0;
|
||||
#ifdef HAVE_PUTENV
|
||||
char *both = malloc(2 + strlen(var) + strlen(value));
|
||||
TRACE(("xtermSetenv(%s=%s)\n", var, value));
|
||||
if (both) {
|
||||
sprintf(both, "%s=%s", var, value);
|
||||
putenv(both);
|
||||
}
|
||||
#else
|
||||
size_t len = strlen(var);
|
||||
int found = -1;
|
||||
int envindex;
|
||||
int found = findEnv(var, &envindex);
|
||||
|
||||
TRACE(("xtermSetenv(%s=%s)\n", var, value));
|
||||
|
||||
while ((test = environ[envindex]) != NULL) {
|
||||
if (strncmp(test, var, len) == 0 && test[len] == '=') {
|
||||
found = envindex;
|
||||
break;
|
||||
}
|
||||
envindex++;
|
||||
}
|
||||
|
||||
if (found < 0) {
|
||||
unsigned need = ENV_HUNK(envindex + 1);
|
||||
unsigned have = ENV_HUNK(envindex);
|
||||
@ -4275,9 +4487,29 @@ xtermSetenv(const char *var, const char *value)
|
||||
return;
|
||||
}
|
||||
sprintf(environ[found], "%s=%s", var, value);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
xtermUnsetenv(const char *var)
|
||||
{
|
||||
TRACE(("xtermUnsetenv(%s)\n", var));
|
||||
#ifdef HAVE_UNSETENV
|
||||
unsetenv(var);
|
||||
#else
|
||||
{
|
||||
int ignore;
|
||||
int item = findEnv(var, &ignore);
|
||||
if (item >= 0) {
|
||||
while ((environ[item] = environ[item + 1]) != 0) {
|
||||
++item;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/*ARGSUSED*/
|
||||
int
|
||||
xerror(Display * d, XErrorEvent * ev)
|
||||
@ -4644,10 +4876,10 @@ sortedOpts(OptionHelp * options, XrmOptionDescRec * descs, Cardinal numDescs)
|
||||
/*
|
||||
* Report the character-type locale that xterm was started in.
|
||||
*/
|
||||
char *
|
||||
String
|
||||
xtermEnvLocale(void)
|
||||
{
|
||||
static char *result;
|
||||
static String result;
|
||||
|
||||
if (result == 0) {
|
||||
if ((result = x_nonempty(setlocale(LC_CTYPE, 0))) == 0) {
|
||||
@ -4846,11 +5078,12 @@ xtermOpenApplication(XtAppContext * app_context_return,
|
||||
num_args);
|
||||
IceAddConnectionWatch(icewatch, NULL);
|
||||
#else
|
||||
result = XtAppInitialize(app_conp,
|
||||
result = XtAppInitialize(app_context_return,
|
||||
my_class,
|
||||
optionDescList,
|
||||
XtNumber(optionDescList),
|
||||
&argc, argv,
|
||||
options,
|
||||
num_options,
|
||||
argc_in_out,
|
||||
argv_in_out,
|
||||
fallback_resources,
|
||||
NULL, 0);
|
||||
#endif /* OPT_SESSION_MGT */
|
||||
|
@ -1,3 +1,15 @@
|
||||
xterm-dev (275) unstable; urgency=low
|
||||
|
||||
* Regressions in #272, #274.
|
||||
|
||||
-- Thomas E. Dickey <dickey@invisible-island.net> Sun, 11 Sep 2011 09:46:57 -0400
|
||||
|
||||
xterm-dev (274) unstable; urgency=low
|
||||
|
||||
* Various build-fixes.
|
||||
|
||||
-- Thomas E. Dickey <dickey@invisible-island.net> Sun, 28 Aug 2011 20:07:29 -0400
|
||||
|
||||
xterm-dev (273) unstable; urgency=low
|
||||
|
||||
* Build-fixes/regressions from #272.
|
||||
|
@ -1,7 +1,7 @@
|
||||
# $XTermId: xterm.spec,v 1.15 2011/08/25 09:42:35 tom Exp $
|
||||
# $XTermId: xterm.spec,v 1.17 2011/09/11 13:46:07 tom Exp $
|
||||
Summary: A text-based Web browser
|
||||
Name: xterm-dev
|
||||
Version: 273
|
||||
Version: 275
|
||||
Release: 1
|
||||
License: X11
|
||||
Group: Applications/Internet
|
||||
|
@ -1,36 +1,34 @@
|
||||
/* $XTermId: print.c,v 1.138 2011/07/14 23:49:10 tom Exp $ */
|
||||
/* $XTermId: print.c,v 1.139 2011/09/11 14:59:36 tom Exp $ */
|
||||
|
||||
/************************************************************
|
||||
|
||||
Copyright 1997-2010,2011 by Thomas E. Dickey
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name(s) of the above copyright
|
||||
holders shall not be used in advertising or otherwise to promote the
|
||||
sale, use or other dealings in this Software without prior written
|
||||
authorization.
|
||||
|
||||
********************************************************/
|
||||
/*
|
||||
* Copyright 1997-2010,2011 by Thomas E. Dickey
|
||||
*
|
||||
* All Rights Reserved
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name(s) of the above copyright
|
||||
* holders shall not be used in advertising or otherwise to promote the
|
||||
* sale, use or other dealings in this Software without prior written
|
||||
* authorization.
|
||||
*/
|
||||
|
||||
#include <xterm.h>
|
||||
#include <data.h>
|
||||
|
@ -1,36 +1,34 @@
|
||||
/* $XTermId: ptydata.c,v 1.100 2011/02/02 01:45:14 tom Exp $ */
|
||||
/* $XTermId: ptydata.c,v 1.101 2011/09/11 14:59:38 tom Exp $ */
|
||||
|
||||
/************************************************************
|
||||
|
||||
Copyright 1999-2010,2011 by Thomas E. Dickey
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name(s) of the above copyright
|
||||
holders shall not be used in advertising or otherwise to promote the
|
||||
sale, use or other dealings in this Software without prior written
|
||||
authorization.
|
||||
|
||||
********************************************************/
|
||||
/*
|
||||
* Copyright 1999-2010,2011 by Thomas E. Dickey
|
||||
*
|
||||
* All Rights Reserved
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name(s) of the above copyright
|
||||
* holders shall not be used in advertising or otherwise to promote the
|
||||
* sale, use or other dealings in this Software without prior written
|
||||
* authorization.
|
||||
*/
|
||||
|
||||
#include <data.h>
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $XTermId: ptyx.h,v 1.702 2011/08/23 01:02:53 tom Exp $ */
|
||||
/* $XTermId: ptyx.h,v 1.704 2011/08/30 22:39:45 tom Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright 1999-2010,2011 by Thomas E. Dickey
|
||||
@ -1748,6 +1748,7 @@ typedef struct {
|
||||
#endif
|
||||
Dimension fnt_wide;
|
||||
Dimension fnt_high;
|
||||
float scale_height; /* scaling for font-height */
|
||||
XTermFonts fnts[fMAX]; /* normal/bold/etc for terminal */
|
||||
Boolean free_bold_box; /* same_font_size's austerity */
|
||||
Boolean allowBoldFonts; /* do we use bold fonts at all? */
|
||||
@ -2001,7 +2002,7 @@ typedef struct {
|
||||
#define MenuFontName(n) menu_font_names[n][fNorm]
|
||||
long menu_font_sizes[NMENUFONTS];
|
||||
int menu_font_number;
|
||||
#if OPT_WIDE_CHARS
|
||||
#if OPT_LOAD_VTFONTS || OPT_WIDE_CHARS
|
||||
Boolean savedVTFonts;
|
||||
Boolean mergedVTFonts;
|
||||
SubResourceRec cacheVTFonts;
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* $XTermId: resize.c,v 1.114 2010/05/23 16:04:32 tom Exp $ */
|
||||
/* $XTermId: resize.c,v 1.118 2011/09/11 20:19:19 tom Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright 2003-2009,2010 by Thomas E. Dickey
|
||||
* Copyright 2003-2010,2011 by Thomas E. Dickey
|
||||
*
|
||||
* All Rights Reserved
|
||||
*
|
||||
@ -90,12 +90,6 @@
|
||||
int ignore_unused;
|
||||
#endif
|
||||
|
||||
#ifdef X_NOT_POSIX
|
||||
#if !defined(SYSV) && !defined(i386)
|
||||
extern struct passwd *getpwuid(); /* does ANYBODY need this? */
|
||||
#endif /* SYSV && i386 */
|
||||
#endif /* X_NOT_POSIX */
|
||||
|
||||
#ifdef __MVS__
|
||||
#define ESCAPE(string) "\047" string
|
||||
#else
|
||||
@ -117,13 +111,19 @@ static struct {
|
||||
int type;
|
||||
} shell_list[] = {
|
||||
{ "csh", SHELL_C }, /* vanilla cshell */
|
||||
{ "tcsh", SHELL_C },
|
||||
{ "jcsh", SHELL_C },
|
||||
{ "tcsh", SHELL_C },
|
||||
{ "sh", SHELL_BOURNE }, /* vanilla Bourne shell */
|
||||
{ "ksh", SHELL_BOURNE }, /* Korn shell (from AT&T toolchest) */
|
||||
{ "ksh-i", SHELL_BOURNE }, /* other name for latest Korn shell */
|
||||
{ "ash", SHELL_BOURNE },
|
||||
{ "bash", SHELL_BOURNE }, /* GNU Bourne again shell */
|
||||
{ "dash", SHELL_BOURNE },
|
||||
{ "jsh", SHELL_BOURNE },
|
||||
{ "ksh", SHELL_BOURNE }, /* Korn shell (from AT&T toolchest) */
|
||||
{ "ksh-i", SHELL_BOURNE }, /* another name for Korn shell */
|
||||
{ "ksh93", SHELL_BOURNE }, /* Korn shell */
|
||||
{ "mksh", SHELL_BOURNE },
|
||||
{ "pdksh", SHELL_BOURNE },
|
||||
{ "zsh", SHELL_BOURNE },
|
||||
{ NULL, SHELL_BOURNE } /* default (same as xterm's) */
|
||||
};
|
||||
/* *INDENT-ON* */
|
||||
@ -230,7 +230,6 @@ main(int argc, char **argv ENVP_ARG)
|
||||
char *ptr;
|
||||
int emu = VT100;
|
||||
char *shell;
|
||||
struct passwd *pw;
|
||||
int i;
|
||||
int rows, cols;
|
||||
#ifdef USE_ANY_SYSV_TERMIO
|
||||
@ -279,11 +278,19 @@ main(int argc, char **argv ENVP_ARG)
|
||||
/* Find out what kind of shell this user is running.
|
||||
* This is the same algorithm that xterm uses.
|
||||
*/
|
||||
if (((ptr = x_getenv("SHELL")) == NULL) &&
|
||||
(((pw = getpwuid(getuid())) == NULL) ||
|
||||
*(ptr = pw->pw_shell) == 0))
|
||||
/* this is the same default that xterm uses */
|
||||
ptr = x_strdup("/bin/sh");
|
||||
if ((ptr = x_getenv("SHELL")) == NULL) {
|
||||
uid_t uid = getuid();
|
||||
struct passwd pw;
|
||||
|
||||
if (x_getpwuid(uid, &pw)) {
|
||||
(void) x_getlogin(uid, &pw);
|
||||
}
|
||||
if (!OkPasswd(&pw)
|
||||
|| *(ptr = pw.pw_shell) == 0) {
|
||||
/* this is the same default that xterm uses */
|
||||
ptr = x_strdup("/bin/sh");
|
||||
}
|
||||
}
|
||||
|
||||
shell = x_basename(ptr);
|
||||
|
||||
|
@ -1,8 +1,7 @@
|
||||
.\" $XTermId: resize.man,v 1.19 2011/08/16 09:10:05 tom Exp $
|
||||
.\" $XTermId: resize.man,v 1.20 2011/09/11 19:28:54 tom Exp $
|
||||
.\"
|
||||
.\" updated by Thomas E. Dickey for XFree86, 1998-2006.
|
||||
.\"
|
||||
.\" $XFree86: xc/programs/xterm/resize.man,v 1.12 2006/02/13 01:14:59 dickey Exp $
|
||||
.\" Escape single quotes in literal strings from groff's Unicode transform.
|
||||
.ie \n(.g .ds AQ \(aq
|
||||
.el .ds AQ '
|
||||
@ -20,9 +19,11 @@ resize \- set environment and terminal settings to current xterm window size
|
||||
.I Resize
|
||||
prints a shell command for setting the appropriate environment variables
|
||||
to indicate the current size of \fIxterm\fP window from which the command
|
||||
is run. For this output to take effect, \fIresize\fP must either be evaluated
|
||||
is run.
|
||||
For this output to take effect, \fIresize\fP must either be evaluated
|
||||
as part of the command line (usually done with a shell alias or function) or
|
||||
else redirected to a file which can then be read in. From the C shell (usually
|
||||
else redirected to a file which can then be read in.
|
||||
From the C shell (usually
|
||||
known as \fI/bin/csh\fP), the following alias could be defined in the
|
||||
user's \fI.cshrc\fP:
|
||||
.sp
|
||||
@ -45,6 +46,15 @@ in with the \*(``.\*('' command:
|
||||
$ resize > /tmp/out
|
||||
$ .\0/tmp/out
|
||||
.fi
|
||||
.PP
|
||||
.I Resize
|
||||
determines the user's current shell by first checking if \fB$SHELL\fP
|
||||
is set, and using that.
|
||||
Otherwise it determines the user's shell by looking in the password file.
|
||||
Generally Bourne-shell variants (including \fIksh\fP)
|
||||
do not modify \fB$SHELL\fP,
|
||||
so it is possible for \fIresize\fP to be confused if one runs
|
||||
\fIresize\fP from a Bourne shell spawned from a C shell.
|
||||
.SH OPTIONS
|
||||
The following options may be used with \fIresize\fP:
|
||||
.TP 8
|
||||
@ -61,14 +71,15 @@ This option indicates that Sun console escape sequences will be used
|
||||
instead of the VT100-style \fIxterm\fP escape codes.
|
||||
If \fIrows\fP and
|
||||
\fIcolumns\fP are given, \fIresize\fP will ask the \fIxterm\fP to resize
|
||||
itself. However, the window manager may choose to disallow the change.
|
||||
.sp
|
||||
itself.
|
||||
However, the window manager may choose to disallow the change.
|
||||
.PP
|
||||
Note that the Sun console escape sequences are recognized
|
||||
by XFree86 \fIxterm\fP and
|
||||
by \fIdtterm\fP.
|
||||
The \fIresize\fP program may be installed as \fIsunsize\fP,
|
||||
which causes makes it assume the \fB\-s\fP option.
|
||||
.sp
|
||||
.PP
|
||||
The \fIrows\fP and
|
||||
\fIcolumns\fP arguments must appear last; though they are normally
|
||||
associated with the \fB\-s\fP option, they are parsed separately.
|
||||
|
@ -1,36 +1,34 @@
|
||||
/* $XTermId: scrollback.c,v 1.14 2010/04/28 21:47:09 tom Exp $ */
|
||||
/* $XTermId: scrollback.c,v 1.15 2011/09/11 14:59:40 tom Exp $ */
|
||||
|
||||
/************************************************************
|
||||
|
||||
Copyright 2009,2010 by Thomas E. Dickey
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name(s) of the above copyright
|
||||
holders shall not be used in advertising or otherwise to promote the
|
||||
sale, use or other dealings in this Software without prior written
|
||||
authorization.
|
||||
|
||||
********************************************************/
|
||||
/*
|
||||
* Copyright 2009-2010,2011 by Thomas E. Dickey
|
||||
*
|
||||
* All Rights Reserved
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name(s) of the above copyright
|
||||
* holders shall not be used in advertising or otherwise to promote the
|
||||
* sale, use or other dealings in this Software without prior written
|
||||
* authorization.
|
||||
*/
|
||||
|
||||
#include <xterm.h>
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $XTermId: scrollbar.c,v 1.181 2011/04/18 22:35:33 tom Exp $ */
|
||||
/* $XTermId: scrollbar.c,v 1.182 2011/09/03 12:13:42 tom Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright 2000-2010,2011 by Thomas E. Dickey
|
||||
@ -234,7 +234,7 @@ DoResizeScreen(XtermWidget xw)
|
||||
}
|
||||
#endif
|
||||
XSync(screen->display, False); /* synchronize */
|
||||
if (XtAppPending(app_con))
|
||||
if (xtermAppPending())
|
||||
xevents();
|
||||
|
||||
#ifndef NO_ACTIVE_ICON
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* $XTermId: tabs.c,v 1.38 2010/04/17 17:11:43 tom Exp $ */
|
||||
/* $XTermId: tabs.c,v 1.39 2011/09/11 15:00:38 tom Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright 2000-2009,2010 by Thomas E. Dickey
|
||||
* Copyright 2000-2010,2011 by Thomas E. Dickey
|
||||
*
|
||||
* All Rights Reserved
|
||||
*
|
||||
@ -29,6 +29,7 @@
|
||||
* sale, use or other dealings in this Software without prior written
|
||||
* authorization.
|
||||
*
|
||||
*
|
||||
* Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||
*
|
||||
* All Rights Reserved
|
||||
|
@ -1,36 +1,34 @@
|
||||
/* $XTermId: testxmc.c,v 1.47 2010/04/17 17:11:33 tom Exp $ */
|
||||
/* $XTermId: testxmc.c,v 1.48 2011/09/11 14:59:40 tom Exp $ */
|
||||
|
||||
/************************************************************
|
||||
|
||||
Copyright 1997-2009,2010 by Thomas E. Dickey
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name(s) of the above copyright
|
||||
holders shall not be used in advertising or otherwise to promote the
|
||||
sale, use or other dealings in this Software without prior written
|
||||
authorization.
|
||||
|
||||
********************************************************/
|
||||
/*
|
||||
* Copyright 1997-2010,2011 by Thomas E. Dickey
|
||||
*
|
||||
* All Rights Reserved
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name(s) of the above copyright
|
||||
* holders shall not be used in advertising or otherwise to promote the
|
||||
* sale, use or other dealings in this Software without prior written
|
||||
* authorization.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This module provides test support for curses applications that must work
|
||||
|
@ -1,10 +1,10 @@
|
||||
/* $XTermId: trace.c,v 1.129 2011/08/22 09:56:16 tom Exp $ */
|
||||
/* $XTermId: trace.c,v 1.131 2011/09/11 14:59:35 tom Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright 1997-2010,2011 by Thomas E. Dickey
|
||||
*
|
||||
*
|
||||
* All Rights Reserved
|
||||
*
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
@ -28,7 +28,6 @@
|
||||
* holders shall not be used in advertising or otherwise to promote the
|
||||
* sale, use or other dealings in this Software without prior written
|
||||
* authorization.
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -148,6 +147,17 @@ TraceIds(const char *fname, int lnum)
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TraceTime(const char *fname, int lnum)
|
||||
{
|
||||
time_t now;
|
||||
if (fname != 0) {
|
||||
Trace("datetime (%s@%d) ", fname, lnum);
|
||||
}
|
||||
now = time((time_t *) 0);
|
||||
Trace("-- %s", ctime(&now));
|
||||
}
|
||||
|
||||
static void
|
||||
formatAscii(char *dst, unsigned value)
|
||||
{
|
||||
|
@ -1,7 +1,6 @@
|
||||
/* $XTermId: trace.h,v 1.60 2011/08/21 23:44:01 tom Exp $ */
|
||||
/* $XTermId: trace.h,v 1.64 2011/09/11 14:56:42 tom Exp $ */
|
||||
|
||||
/*
|
||||
*
|
||||
* Copyright 1997-2010,2011 by Thomas E. Dickey
|
||||
*
|
||||
* All Rights Reserved
|
||||
@ -29,7 +28,6 @@
|
||||
* holders shall not be used in advertising or otherwise to promote the
|
||||
* sale, use or other dealings in this Software without prior written
|
||||
* authorization.
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -86,6 +84,10 @@ extern void TraceIds(const char * /* fname */, int /* lnum */);
|
||||
#undef TRACE_IDS
|
||||
#define TRACE_IDS TraceIds(__FILE__, __LINE__)
|
||||
|
||||
extern void TraceTime(const char * /* fname */, int /* lnum */);
|
||||
#undef TRACE_TIME
|
||||
#define TRACE_TIME TraceTime(__FILE__, __LINE__)
|
||||
|
||||
extern void TraceOptions(OptionHelp * /* options */, XrmOptionDescRec * /* resources */, Cardinal /* count */);
|
||||
#undef TRACE_OPTS
|
||||
#define TRACE_OPTS(opts,ress,lens) TraceOptions(opts,ress,lens)
|
||||
@ -132,6 +134,9 @@ extern XtGeometryResult TraceResizeRequest(const char * /* fn */, int /* ln */,
|
||||
#define init_Bres(name) \
|
||||
TRACE(("init " #name " = %s\n", \
|
||||
BtoS(wnew->name = request->name)))
|
||||
#define init_Dres(name) \
|
||||
TRACE(("init " #name " = %f\n", \
|
||||
wnew->name = request->name))
|
||||
#define init_Dres2(name,i) \
|
||||
TRACE(("init " #name "[%d] = %f\n", i, \
|
||||
wnew->name[i] = request->name[i]))
|
||||
@ -151,6 +156,7 @@ extern XtGeometryResult TraceResizeRequest(const char * /* fn */, int /* ln */,
|
||||
fill_Tres(wnew, request, offset)))
|
||||
#else
|
||||
#define init_Bres(name) wnew->name = request->name
|
||||
#define init_Dres(name) wnew->name = request->name
|
||||
#define init_Dres2(name,i) wnew->name[i] = request->name[i]
|
||||
#define init_Ires(name) wnew->name = request->name
|
||||
#define init_Sres(name) wnew->name = x_strtrim(request->name)
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $XTermId: util.c,v 1.545 2011/02/17 00:28:45 tom Exp $ */
|
||||
/* $XTermId: util.c,v 1.546 2011/08/31 00:10:07 tom Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright 1999-2010,2011 by Thomas E. Dickey
|
||||
@ -3163,6 +3163,9 @@ drawXtermText(XtermWidget xw,
|
||||
screen->cursor_state == OFF ? ' ' : '*',
|
||||
y, x, chrset, len,
|
||||
visibleIChars(text, len)));
|
||||
if (screen->scale_height != 1.0) {
|
||||
xtermFillCells(xw, flags, gc, x, y, (Cardinal) len);
|
||||
}
|
||||
y += FontAscent(screen);
|
||||
|
||||
#if OPT_WIDE_CHARS
|
||||
|
@ -1,12 +1,10 @@
|
||||
/* $XTermId: version.h,v 1.334 2011/09/11 14:59:33 tom Exp $ */
|
||||
|
||||
/*
|
||||
* $XTermId: version.h,v 1.331 2011/08/25 09:05:00 tom Exp $
|
||||
* ----------------------------------------------------------------------------
|
||||
* this file is part of xterm
|
||||
*
|
||||
* Copyright 1998-2010,2011 by Thomas E. Dickey
|
||||
*
|
||||
*
|
||||
* All Rights Reserved
|
||||
*
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
@ -14,10 +12,10 @@
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
@ -25,12 +23,11 @@
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
*
|
||||
* Except as contained in this notice, the name(s) of the above copyright
|
||||
* holders shall not be used in advertising or otherwise to promote the
|
||||
* sale, use or other dealings in this Software without prior written
|
||||
* authorization.
|
||||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -39,7 +36,7 @@
|
||||
* version of X to which this version of xterm has been built. The number in
|
||||
* parentheses is my patch number (Thomas E. Dickey).
|
||||
*/
|
||||
#define XTERM_PATCH 273
|
||||
#define XTERM_PATCH 275
|
||||
|
||||
#ifndef __vendorversion__
|
||||
#define __vendorversion__ "XTerm/OpenBSD"
|
||||
|
@ -1,36 +1,34 @@
|
||||
/* $XTermId: xstrings.c,v 1.40 2011/08/25 08:55:55 tom Exp $ */
|
||||
/* $XTermId: xstrings.c,v 1.47 2011/09/11 20:20:12 tom Exp $ */
|
||||
|
||||
/************************************************************
|
||||
|
||||
Copyright 2000-2010,2011 by Thomas E. Dickey
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name(s) of the above copyright
|
||||
holders shall not be used in advertising or otherwise to promote the
|
||||
sale, use or other dealings in this Software without prior written
|
||||
authorization.
|
||||
|
||||
********************************************************/
|
||||
/*
|
||||
* Copyright 2000-2010,2011 by Thomas E. Dickey
|
||||
*
|
||||
* All Rights Reserved
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name(s) of the above copyright
|
||||
* holders shall not be used in advertising or otherwise to promote the
|
||||
* sale, use or other dealings in this Software without prior written
|
||||
* authorization.
|
||||
*/
|
||||
|
||||
#include <xterm.h>
|
||||
|
||||
@ -41,6 +39,16 @@ authorization.
|
||||
|
||||
#include <xstrings.h>
|
||||
|
||||
static void
|
||||
alloc_pw(struct passwd *target, struct passwd *source)
|
||||
{
|
||||
*target = *source;
|
||||
/* we care only about these strings */
|
||||
target->pw_dir = x_strdup(source->pw_dir);
|
||||
target->pw_name = x_strdup(source->pw_name);
|
||||
target->pw_shell = x_strdup(source->pw_shell);
|
||||
}
|
||||
|
||||
void
|
||||
x_appendargv(char **target, char **source)
|
||||
{
|
||||
@ -136,9 +144,110 @@ x_getenv(const char *name)
|
||||
return x_strdup(x_nonempty(getenv(name)));
|
||||
}
|
||||
|
||||
/*
|
||||
* Call this with in_out pointing to data filled in by x_getpwnam() or by
|
||||
* x_getpwnam(). It finds the user's logon name, if possible. As a side
|
||||
* effect, it updates in_out to fill in possibly more-relevant data, i.e.,
|
||||
* in case there is more than one alias for the same uid.
|
||||
*/
|
||||
char *
|
||||
x_getlogin(uid_t uid, struct passwd *in_out)
|
||||
{
|
||||
char *login_name = NULL;
|
||||
|
||||
#ifdef HAVE_GETLOGIN
|
||||
login_name = getlogin();
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Of course getlogin() will fail if we're started from a window-manager,
|
||||
* since there's no controlling terminal to fuss with. In that case, try
|
||||
* to get something useful from the user's $LOGNAME or $USER environment
|
||||
* variables.
|
||||
*/
|
||||
if (login_name == NULL) {
|
||||
login_name = x_getenv("LOGNAME");
|
||||
if (login_name == NULL)
|
||||
login_name = x_getenv("USER");
|
||||
}
|
||||
|
||||
/*
|
||||
* If the logon-name differs from the value we get by looking in the
|
||||
* password file, check if it does correspond to the same uid. If so,
|
||||
* allow that as an alias for the uid.
|
||||
*/
|
||||
if (login_name != NULL
|
||||
&& strcmp(login_name, in_out->pw_name)) {
|
||||
struct passwd pw2;
|
||||
|
||||
if (x_getpwnam(login_name, &pw2)) {
|
||||
uid_t uid2 = pw2.pw_uid;
|
||||
struct passwd pw3;
|
||||
|
||||
if (!x_getpwuid(uid, &pw3)
|
||||
|| (uid_t) pw3.pw_uid != uid2) {
|
||||
login_name = NULL;
|
||||
} else {
|
||||
/* use the other passwd-data including shell */
|
||||
alloc_pw(in_out, &pw2);
|
||||
}
|
||||
} else {
|
||||
(void) x_getpwuid(uid, in_out);
|
||||
}
|
||||
}
|
||||
|
||||
if (login_name == NULL)
|
||||
login_name = in_out->pw_name;
|
||||
if (login_name != NULL)
|
||||
login_name = x_strdup(login_name);
|
||||
|
||||
return login_name;
|
||||
}
|
||||
|
||||
/*
|
||||
* Simpler than getpwnam_r, retrieves the passwd result by name and stores the
|
||||
* result via the given pointer. On failure, wipes the data to prevent use.
|
||||
*/
|
||||
Boolean
|
||||
x_getpwnam(const char *name, struct passwd * result)
|
||||
{
|
||||
struct passwd *ptr = getpwnam(name);
|
||||
Boolean code;
|
||||
|
||||
if (OkPasswd(ptr)) {
|
||||
code = True;
|
||||
alloc_pw(result, ptr);
|
||||
} else {
|
||||
code = False;
|
||||
memset(result, 0, sizeof(*result));
|
||||
}
|
||||
return code;
|
||||
}
|
||||
|
||||
/*
|
||||
* Simpler than getpwuid_r, retrieves the passwd result by uid and stores the
|
||||
* result via the given pointer. On failure, wipes the data to prevent use.
|
||||
*/
|
||||
Boolean
|
||||
x_getpwuid(uid_t uid, struct passwd * result)
|
||||
{
|
||||
struct passwd *ptr = getpwuid((uid_t) uid);
|
||||
Boolean code;
|
||||
|
||||
if (OkPasswd(ptr)) {
|
||||
code = True;
|
||||
alloc_pw(result, ptr);
|
||||
} else {
|
||||
code = False;
|
||||
memset(result, 0, sizeof(*result));
|
||||
}
|
||||
return code;
|
||||
}
|
||||
|
||||
/*
|
||||
* Decode a single hex "nibble", returning the nibble as 0-15, or -1 on error.
|
||||
*/ int
|
||||
*/
|
||||
int
|
||||
x_hex2int(int c)
|
||||
{
|
||||
if (c >= '0' && c <= '9')
|
||||
@ -204,7 +313,7 @@ x_splitargs(const char *command)
|
||||
for (n = count = 0, state = 0; command[n] != '\0'; ++n) {
|
||||
switch (state) {
|
||||
case 0:
|
||||
if (!isspace(command[n])) {
|
||||
if (!isspace(CharOf(command[n]))) {
|
||||
state = 1;
|
||||
if (pass)
|
||||
result[count] = blob + n;
|
||||
@ -214,7 +323,7 @@ x_splitargs(const char *command)
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (isspace(command[n])) {
|
||||
if (isspace(CharOf(command[n]))) {
|
||||
blob[n] = '\0';
|
||||
state = 0;
|
||||
}
|
||||
|
@ -1,43 +1,46 @@
|
||||
/* $XTermId: xstrings.h,v 1.21 2011/08/21 17:23:33 tom Exp $ */
|
||||
/* $XTermId: xstrings.h,v 1.25 2011/09/11 20:20:22 tom Exp $ */
|
||||
|
||||
/************************************************************
|
||||
|
||||
Copyright 2000-2009,2011 by Thomas E. Dickey
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name(s) of the above copyright
|
||||
holders shall not be used in advertising or otherwise to promote the
|
||||
sale, use or other dealings in this Software without prior written
|
||||
authorization.
|
||||
|
||||
********************************************************/
|
||||
/*
|
||||
* Copyright 2000-2009,2011 by Thomas E. Dickey
|
||||
*
|
||||
* All Rights Reserved
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name(s) of the above copyright
|
||||
* holders shall not be used in advertising or otherwise to promote the
|
||||
* sale, use or other dealings in this Software without prior written
|
||||
* authorization.
|
||||
*/
|
||||
|
||||
#ifndef included_xstrings_h
|
||||
#define included_xstrings_h 1
|
||||
/* *INDENT-OFF* */
|
||||
|
||||
#include <X11/Intrinsic.h>
|
||||
#include <pwd.h>
|
||||
|
||||
#define OkPasswd(p) ((p)->pw_name != 0 && (p)->pw_name[0] != 0)
|
||||
|
||||
extern Boolean x_getpwnam(const char * /* name */, struct passwd * /* result */);
|
||||
extern Boolean x_getpwuid(uid_t /* uid */, struct passwd * /* result */);
|
||||
extern String x_nonempty(String /* s */);
|
||||
extern String x_skip_blanks(String /* s */);
|
||||
extern String x_skip_nonblanks(String /* s */);
|
||||
@ -46,6 +49,7 @@ extern char *x_basename(char * /* name */);
|
||||
extern char *x_decode_hex(const char * /* source */, const char ** /* next */);
|
||||
extern char *x_encode_hex(const char * /* source */);
|
||||
extern char *x_getenv(const char * /* name */);
|
||||
extern char *x_getlogin(uid_t /* uid */, struct passwd * /* in_out */);
|
||||
extern char *x_strdup(const char * /* s */);
|
||||
extern char *x_strindex(char * /* s1 */, const char * /* s2 */);
|
||||
extern char *x_strtrim(const char * /* s */);
|
||||
|
@ -1,36 +1,34 @@
|
||||
/* $XTermId: xterm.h,v 1.656 2011/08/20 00:20:20 tom Exp $ */
|
||||
/* $XTermId: xterm.h,v 1.661 2011/09/11 14:59:22 tom Exp $ */
|
||||
|
||||
/************************************************************
|
||||
|
||||
Copyright 1999-2010,2011 by Thomas E. Dickey
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name(s) of the above copyright
|
||||
holders shall not be used in advertising or otherwise to promote the
|
||||
sale, use or other dealings in this Software without prior written
|
||||
authorization.
|
||||
|
||||
********************************************************/
|
||||
/*
|
||||
* Copyright 1999-2010,2011 by Thomas E. Dickey
|
||||
*
|
||||
* All Rights Reserved
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name(s) of the above copyright
|
||||
* holders shall not be used in advertising or otherwise to promote the
|
||||
* sale, use or other dealings in this Software without prior written
|
||||
* authorization.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Common/useful definitions for XTERM application.
|
||||
@ -482,6 +480,7 @@ extern char **environ;
|
||||
#define XtNreverseWrap "reverseWrap"
|
||||
#define XtNrightScrollBar "rightScrollBar"
|
||||
#define XtNsaveLines "saveLines"
|
||||
#define XtNscaleHeight "scaleHeight"
|
||||
#define XtNscrollBar "scrollBar"
|
||||
#define XtNscrollBarBorder "scrollBarBorder"
|
||||
#define XtNscrollKey "scrollKey"
|
||||
@ -646,6 +645,7 @@ extern char **environ;
|
||||
#define XtCReverseWrap "ReverseWrap"
|
||||
#define XtCRightScrollBar "RightScrollBar"
|
||||
#define XtCSaveLines "SaveLines"
|
||||
#define XtCScaleHeight "ScaleHeight"
|
||||
#define XtCScrollBar "ScrollBar"
|
||||
#define XtCScrollBarBorder "ScrollBarBorder"
|
||||
#define XtCScrollCond "ScrollCond"
|
||||
@ -955,13 +955,14 @@ extern void show_8bit_control (Bool /* value */);
|
||||
extern Bool AllocateTermColor(XtermWidget, ScrnColors *, int, const char *, Bool);
|
||||
extern Cursor make_colored_cursor (unsigned /* cursorindex */, unsigned long /* fg */, unsigned long /* bg */);
|
||||
extern OptionHelp * sortedOpts(OptionHelp *, XrmOptionDescRec *, Cardinal);
|
||||
extern String xtermEnvLocale (void);
|
||||
extern Widget xtermOpenApplication(XtAppContext * /* app_context_return */, String /* application_class */, XrmOptionDescRec */* options */, Cardinal /* num_options */, int * /* argc_in_out */, String */* argv_in_out */, String * /* fallback_resources */, WidgetClass /* widget_class */, ArgList /* args */, Cardinal /* num_args */);
|
||||
extern Window WMFrameWindow(XtermWidget /* termw */);
|
||||
extern XtInputMask xtermAppPending (void);
|
||||
extern XrmOptionDescRec * sortedOptDescs(XrmOptionDescRec *, Cardinal);
|
||||
extern XtermWidget getXtermWidget(Widget /* w */);
|
||||
extern char *udk_lookup (int /* keycode */, int * /* len */);
|
||||
extern char *xtermEnvEncoding (void);
|
||||
extern char *xtermEnvLocale (void);
|
||||
extern char *xtermFindShell(char * /* leaf */, Bool /* warning */);
|
||||
extern char *xtermVersion(void);
|
||||
extern const char *SysErrorMsg (int /* n */);
|
||||
@ -1015,6 +1016,7 @@ extern void xtermDisplayCursor (XtermWidget /* xw */);
|
||||
extern void xtermEmbedWindow(Window /* winToEmbedInfo */);
|
||||
extern void xtermSetenv (const char * /* var */, const char * /* value */);
|
||||
extern void xtermShowPointer (XtermWidget /* xw */, Bool /* enable */);
|
||||
extern void xtermUnsetenv (const char * /* var */);
|
||||
|
||||
#if OPT_DABBREV
|
||||
extern void HandleDabbrevExpand PROTO_XT_ACTIONS_ARGS;
|
||||
|
@ -31,7 +31,7 @@
|
||||
* sale, use or other dealings in this Software without prior written *
|
||||
* authorization. *
|
||||
*****************************************************************************
|
||||
$XTermId: xterm.log.html,v 1.1081 2011/08/25 09:29:41 tom Exp $
|
||||
$XTermId: xterm.log.html,v 1.1101 2011/09/12 00:50:25 tom Exp $
|
||||
-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
@ -41,7 +41,9 @@
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<HR>
|
||||
Copyright © 1997-2009,2010 by <A
|
||||
<a href=
|
||||
"http://invisible-island.net/">http://invisible-island.net/</a><a href="http://invisible-island.net/xterm/">xterm/</a><br>
|
||||
Copyright © 1997-2010,2011 by <A
|
||||
HREF="mailto:dickey@invisible-island.net">Thomas E. Dickey</A>
|
||||
<HR>
|
||||
<H1>Contents</H1>
|
||||
@ -56,6 +58,8 @@ Most of these are summarized in the XFree86 CHANGELOG
|
||||
is the latest version of this file.
|
||||
|
||||
<UL>
|
||||
<LI><A HREF="#xterm_275">Patch #275 - 2011/09/11</A>
|
||||
<LI><A HREF="#xterm_274">Patch #274 - 2011/09/05</A>
|
||||
<LI><A HREF="#xterm_273">Patch #273 - 2011/08/25</A>
|
||||
<LI><A HREF="#xterm_272">Patch #272 - 2011/08/24</A>
|
||||
<LI><A HREF="#xterm_271">Patch #271 - 2011/07/14</A>
|
||||
@ -332,6 +336,86 @@ is the latest version of this file.
|
||||
<LI><A HREF="#xterm_01">Patch #1 - 1996/1/6</A>
|
||||
</UL>
|
||||
|
||||
<H1><A NAME="xterm_275">Patch #275 - 2011/09/11</A></H1>
|
||||
<ul>
|
||||
<li>add <code>ash</code>, <code>zsh</code> to known shells for
|
||||
<code>resize</code>.
|
||||
|
||||
<li>modify <code>resize</code>
|
||||
to reuse the logic from <code>xterm</code>
|
||||
which determines the actual logon-user's shell
|
||||
if <code>$SHELL</code> is not set.
|
||||
|
||||
<li>revert the <code>unsetenv("SHELL")</code> added in
|
||||
<a href="#xterm_272">patch #272</a>.
|
||||
|
||||
<li>an <code>unsetenv("SHELL")</code> added in
|
||||
<a href="#xterm_272">patch #272</a> to help ensure that
|
||||
<code>luit</code> would get the user's shell consistently
|
||||
did not work as expected for cases where multiple
|
||||
names are in the password-file for a given uid.
|
||||
That was because changes in <a href="#xterm_157">patch #157</a>
|
||||
to handle this situation
|
||||
did not take into account that repeated calls to
|
||||
<code>getpwnam</code> and <code>getpwuid</code>
|
||||
return a pointer to the same static buffer.
|
||||
Fixed the older logic to work as intended,
|
||||
by ensuring that the passwd-data from each call is stored
|
||||
separately (report by Paul Keusemann).
|
||||
|
||||
<li>adjust ifdef's for <code>putenv</code> and <code>unsetenv</code>
|
||||
in case only one of those is provided on a given platform.
|
||||
|
||||
<li>correct comparison used in <code>ExposeContains</code> macro from
|
||||
<a href="#xterm_274">patch #274</a>
|
||||
changes, to handle window-dragging (patch by Todd Eigenschink).
|
||||
</ul>
|
||||
|
||||
<H1><A NAME="xterm_274">Patch #274 - 2011/09/05</A></H1>
|
||||
<ul>
|
||||
<li>portability fixes for cygwin: do not define <code>SVR4</code>,
|
||||
and work around nonstandard header location.
|
||||
|
||||
<li>ifdef'd use of <code>unsetenv</code>
|
||||
from <a href="#xterm_273">patch #273</a>
|
||||
changes to work with Solaris 9
|
||||
(report by Waldemar Rachwal).
|
||||
|
||||
<li>modify logic for <code>XtAppPending</code> to merge adjacent
|
||||
<code>Expose</code> and <code>ConfigureNotify</code> events
|
||||
which are redundant (report by Edward McGuire).
|
||||
|
||||
<li>fix an unneeded warning message when <code>-r</code> option
|
||||
is given.
|
||||
|
||||
<li>remove a few redundant entries from table used for helping
|
||||
abbreviation-checking of command-line options, makes
|
||||
<code>-geom</code> work again after
|
||||
<a href="#xterm_272">patch #272</a> changes
|
||||
as an abbreviation of
|
||||
<code>-geometry</code>.
|
||||
|
||||
<li>add <code>scaleHeight</code> resource and
|
||||
command-line option <code>-sh</code>
|
||||
as workaround for some font-configurations broken by
|
||||
changes in FreeType 2.4.6 (report by Miroslav Hodak).
|
||||
|
||||
<li>portability fixes for some configure macros:
|
||||
<code>CF_FUNC_TGETENT</code>,
|
||||
<code>CF_XOPEN_SOURCE</code>,
|
||||
<code>CF_X_ATHENA_LIBS</code>.
|
||||
|
||||
<li>add configure option <code>--with-freetype-config</code> to
|
||||
improve selection over the plethora of configuration options
|
||||
which freetype has so far provided.
|
||||
|
||||
<li>build-fix for configure <code>--enable-load-vt-fonts</code> when
|
||||
<code>--enable-widec</code> is not specified.
|
||||
|
||||
<li>build-fixes for suppressing various features, needed after changes
|
||||
in patches 270, 271 and 272 (report by Brian Lindholm)
|
||||
</ul>
|
||||
|
||||
<H1><A NAME="xterm_273">Patch #273 - 2011/08/25</A></H1>
|
||||
<ul>
|
||||
<li>build-fix for out-of-tree "make docs" rule.
|
||||
|
@ -1,5 +1,5 @@
|
||||
'\" t
|
||||
.\" $XTermId: xterm.man,v 1.507 2011/08/23 00:50:07 tom Exp $
|
||||
.\" $XTermId: xterm.man,v 1.510 2011/09/04 23:54:12 tom Exp $
|
||||
.\"
|
||||
.\" Copyright 1996-2010,2011 by Thomas E. Dickey
|
||||
.\"
|
||||
@ -881,6 +881,10 @@ for function keys.
|
||||
This option indicates that the standard escape codes should be generated for
|
||||
function keys.
|
||||
.TP 8
|
||||
.BI \-sh " number"
|
||||
scale line-height values by the given number.
|
||||
See the discussion of the \fBscaleHeight\fP resource.
|
||||
.TP 8
|
||||
.B \-si
|
||||
This option indicates that output to a window should not automatically
|
||||
reposition the screen to the bottom of the scrolling region.
|
||||
@ -1121,7 +1125,7 @@ Toolkit provides standard options that accomplish the same task.
|
||||
This option specifies the preferred size and position of the Tektronix window.
|
||||
It is shorthand for specifying the \*(``\fI*tekGeometry\fP\*('' resource.
|
||||
.TP 8
|
||||
.B \ #\fIgeom\fP
|
||||
.B "#\fIgeom\fP"
|
||||
This option specifies the preferred position of the icon window.
|
||||
It is shorthand for specifying the \*(``\fI*iconGeometry\fP\*('' resource.
|
||||
.TP 8
|
||||
@ -1404,8 +1408,13 @@ In practice
|
||||
this should never be a problem.
|
||||
The default is \*(``true\*(''.
|
||||
.TP 8
|
||||
.B "scaleHeight (\fPclass\fB ScaleHeight)"
|
||||
Scale line-height values by the resource value,
|
||||
which is limited to \*(``0.9\*'' to \*(``1.5\*''.
|
||||
The default value is \*(``1.0\*('',
|
||||
.TP 8
|
||||
.B "scoFunctionKeys (\fPclass\fB ScoFunctionKeys)"
|
||||
Specifies whether or not SCP Function Key escape codes should be generated for
|
||||
Specifies whether or not SCO Function Key escape codes should be generated for
|
||||
function keys instead of standard escape sequences.
|
||||
.IP
|
||||
See also the \fBkeyboardType\fP resource.
|
||||
@ -4854,6 +4863,7 @@ Hide Tek Window (tekhide)
|
||||
.
|
||||
.PP
|
||||
X environments differ in their security consciousness.
|
||||
.bP
|
||||
Most servers,
|
||||
run under \fIxdm\fP,
|
||||
are capable of using a \*(``magic cookie\*('' authorization
|
||||
@ -4864,6 +4874,7 @@ other users are also permitted to run clients on that same host,
|
||||
it is possible that someone can run an application which uses the
|
||||
basic services of the X protocol to snoop on your activities,
|
||||
potentially capturing a transcript of everything you type at the keyboard.
|
||||
.bP
|
||||
Any process which has access to your X display can manipulate it
|
||||
in ways that you might not anticipate,
|
||||
even redirecting your keyboard to itself
|
||||
@ -4873,13 +4884,19 @@ While the \fBallowSendEvents\fP provides some protection against
|
||||
rogue applications tampering with your programs,
|
||||
guarding against a snooper is harder.
|
||||
.
|
||||
.PP
|
||||
.bP
|
||||
The X input extension for instance allows an application to bypass
|
||||
all of the other (limited) authorization and security features,
|
||||
including the GrabKeyboard protocol.
|
||||
.
|
||||
.bP
|
||||
The possibility of an application spying on your keystrokes
|
||||
is of particular concern when you want to type in a password
|
||||
or other sensitive data.
|
||||
The best solution to this problem is to use a better
|
||||
authorization mechanism than is provided by X.
|
||||
Given all of these caveats,
|
||||
.PP
|
||||
Subject to all of these caveats,
|
||||
a simple mechanism exists for protecting keyboard input in \fIxterm\fP.
|
||||
.
|
||||
.PP
|
||||
@ -4891,7 +4908,9 @@ When an application prompts you for a password
|
||||
(or other sensitive data), you can enable \fBSecure Keyboard\fP using the
|
||||
menu, type in the data, and then disable \fBSecure Keyboard\fP using
|
||||
the menu again.
|
||||
.bP
|
||||
This ensures that you know which window is accepting your keystrokes.
|
||||
.bP
|
||||
It cannot ensure that there are no processes which have access to your
|
||||
X display that might be observing the keystrokes as well.
|
||||
.
|
||||
|
@ -1,36 +1,34 @@
|
||||
/* $XTermId: xtermcap.h,v 1.16 2010/01/06 21:20:40 tom Exp $ */
|
||||
/* $XTermId: xtermcap.h,v 1.18 2011/09/11 14:59:33 tom Exp $ */
|
||||
|
||||
/************************************************************
|
||||
|
||||
Copyright 2007-2009,2010 by Thomas E. Dickey
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name(s) of the above copyright
|
||||
holders shall not be used in advertising or otherwise to promote the
|
||||
sale, use or other dealings in this Software without prior written
|
||||
authorization.
|
||||
|
||||
********************************************************/
|
||||
/*
|
||||
* Copyright 2007-2010,2011 by Thomas E. Dickey
|
||||
*
|
||||
* All Rights Reserved
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name(s) of the above copyright
|
||||
* holders shall not be used in advertising or otherwise to promote the
|
||||
* sale, use or other dealings in this Software without prior written
|
||||
* authorization.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Common/useful definitions for XTERM termcap interface.
|
||||
@ -59,7 +57,11 @@ authorization.
|
||||
|
||||
#undef ERR /* workaround for glibc 2.1.3 */
|
||||
|
||||
#ifdef HAVE_NCURSES_CURSES_H
|
||||
#include <ncurses/curses.h>
|
||||
#else
|
||||
#include <curses.h>
|
||||
#endif
|
||||
|
||||
#ifndef NCURSES_VERSION
|
||||
#ifdef HAVE_TERMCAP_H
|
||||
|
@ -56,6 +56,7 @@ authorization.
|
||||
#define HAVE_LIB_XAW 1 /* CF_X_ATHENA */
|
||||
/* #undef HAVE_LIB_XAW3D */ /* CF_X_ATHENA(--with-Xaw3d) */
|
||||
/* #undef HAVE_LIB_XAWPLUS */ /* CF_X_ATHENA(--with-XawPlus) */
|
||||
/* #undef HAVE_NCURSES_CURSES_H /* AC_CHECK_HEADERS(ncurses/curses.h) */
|
||||
/* #undef HAVE_NCURSES_TERM_H */ /* AC_CHECK_HEADERS(ncurses/term.h) */
|
||||
#define HAVE_PATHS_H 1 /* CF_LASTLOG */
|
||||
/* #undef HAVE_PCREPOSIX_H */ /* CF_WITH_PCRE */
|
||||
@ -76,6 +77,7 @@ authorization.
|
||||
#define HAVE_TIGETSTR 1 /* AC_CHECK_FUNCS(tigetstr) */
|
||||
#define HAVE_UNISTD_H 1 /* AC_CHECK_HEADERS(unistd.h) */
|
||||
#define HAVE_USE_EXTENDED_NAMES 1 /* AC_CHECK_FUNCS(use_extended_names) */
|
||||
#define HAVE_UNSETENV /* AC_CHECK_FUNCS(unsetenv) */
|
||||
#define HAVE_UTMP 1 /* CF_UTMP */
|
||||
#define HAVE_UTMP_UT_HOST 1 /* CF_UTMP_UT_HOST */
|
||||
/* #undef HAVE_UTMP_UT_SESSION */ /* CF_UTMP_UT_SESSION */
|
||||
|
@ -1,36 +1,34 @@
|
||||
/* $XTermId: xtermcfg.hin,v 1.182 2010/11/11 01:14:49 tom Exp $ */
|
||||
/* $XTermId: xtermcfg.hin,v 1.185 2011/09/11 15:06:56 tom Exp $ */
|
||||
|
||||
/************************************************************
|
||||
|
||||
Copyright 1997-2009,2010 by Thomas E. Dickey
|
||||
|
||||
All Rights Reserved
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name(s) of the above copyright
|
||||
holders shall not be used in advertising or otherwise to promote the
|
||||
sale, use or other dealings in this Software without prior written
|
||||
authorization.
|
||||
|
||||
********************************************************/
|
||||
/*
|
||||
* Copyright 1997-2010,2011 by Thomas E. Dickey
|
||||
*
|
||||
* All Rights Reserved
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
* Except as contained in this notice, the name(s) of the above copyright
|
||||
* holders shall not be used in advertising or otherwise to promote the
|
||||
* sale, use or other dealings in this Software without prior written
|
||||
* authorization.
|
||||
*/
|
||||
|
||||
#ifndef included_xtermcfg_h
|
||||
#define included_xtermcfg_h 1
|
||||
@ -56,6 +54,7 @@ authorization.
|
||||
#undef HAVE_LIB_XAW /* CF_X_ATHENA */
|
||||
#undef HAVE_LIB_XAW3D /* CF_X_ATHENA(--with-Xaw3d) */
|
||||
#undef HAVE_LIB_XAWPLUS /* CF_X_ATHENA(--with-XawPlus) */
|
||||
#undef HAVE_NCURSES_CURSES_H /* AC_CHECK_HEADERS(ncurses/curses.h) */
|
||||
#undef HAVE_NCURSES_TERM_H /* AC_CHECK_HEADERS(ncurses/term.h) */
|
||||
#undef HAVE_PATHS_H /* CF_LASTLOG */
|
||||
#undef HAVE_PCREPOSIX_H /* CF_WITH_PCRE */
|
||||
@ -76,6 +75,7 @@ authorization.
|
||||
#undef HAVE_TIGETSTR /* AC_CHECK_FUNCS(tigetstr) */
|
||||
#undef HAVE_UNISTD_H /* AC_CHECK_HEADERS(unistd.h) */
|
||||
#undef HAVE_USE_EXTENDED_NAMES /* AC_CHECK_FUNCS(use_extended_names) */
|
||||
#undef HAVE_UNSETENV /* AC_CHECK_FUNCS(unsetenv) */
|
||||
#undef HAVE_UTMP /* CF_UTMP */
|
||||
#undef HAVE_UTMP_UT_HOST /* CF_UTMP_UT_HOST */
|
||||
#undef HAVE_UTMP_UT_SESSION /* CF_UTMP_UT_SESSION */
|
||||
|
@ -1,26 +1,27 @@
|
||||
/* $XTermId: xutf8.c,v 1.10 2011/07/04 13:51:08 tom Exp $ */
|
||||
/* $XTermId: xutf8.c,v 1.11 2011/09/11 14:59:37 tom Exp $ */
|
||||
|
||||
/*
|
||||
Copyright (c) 2001 by Juliusz Chroboczek
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
* Copyright (c) 2001 by Juliusz Chroboczek
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <xterm.h>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user