xterm 237. tested by krw@ oga@ and others.

This commit is contained in:
matthieu 2008-09-23 19:08:55 +00:00
parent f5db6743c6
commit 215beda67c
11 changed files with 248 additions and 120 deletions

View File

@ -1,4 +1,4 @@
MANIFEST for xterm-236, version xterm-236 MANIFEST for xterm-237, version xterm-237
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
MANIFEST this file MANIFEST this file
256colres.h resource-definitions for 256-color mode 256colres.h resource-definitions for 256-color mode

View File

@ -1,4 +1,4 @@
/* $XTermId: charproc.c,v 1.848 2008/07/27 19:00:21 tom Exp $ */ /* $XTermId: charproc.c,v 1.852 2008/09/14 21:27:54 tom Exp $ */
/* /*
@ -505,6 +505,7 @@ static XtResource resources[] =
#if OPT_BLINK_CURS #if OPT_BLINK_CURS
Bres(XtNcursorBlink, XtCCursorBlink, screen.cursor_blink, False), Bres(XtNcursorBlink, XtCCursorBlink, screen.cursor_blink, False),
#endif #endif
Bres(XtNcursorUnderline, XtCCursorUnderline, screen.cursor_underline, False),
#if OPT_BLINK_TEXT #if OPT_BLINK_TEXT
Bres(XtNshowBlinkAsBold, XtCCursorBlink, screen.blink_as_bold, DEFBLINKASBOLD), Bres(XtNshowBlinkAsBold, XtCCursorBlink, screen.blink_as_bold, DEFBLINKASBOLD),
@ -3635,21 +3636,12 @@ HandleStructNotify(Widget w GCC_UNUSED,
if (event->xconfigure.window == XtWindow(toplevel)) { if (event->xconfigure.window == XtWindow(toplevel)) {
int height, width; int height, width;
/* height = event->xconfigure.height;
* Some window managers modify the configuration during width = event->xconfigure.width;
* initialization. Skip notification events that we know are TRACE(("HandleStructNotify(ConfigureNotify) %d,%d %dx%d\n",
* obsolete because there is already another in the queue. event->xconfigure.y, event->xconfigure.x,
*/ event->xconfigure.height, event->xconfigure.width));
do {
height = event->xconfigure.height;
width = event->xconfigure.width;
TRACE(("HandleStructNotify(ConfigureNotify) %d,%d %dx%d\n",
event->xconfigure.y, event->xconfigure.x,
event->xconfigure.height, event->xconfigure.width));
} while (XCheckTypedWindowEvent(XtDisplay(xw),
event->xconfigure.window,
ConfigureNotify, event));
#if OPT_TOOLBAR #if OPT_TOOLBAR
/* /*
* The notification is for the top-level widget, but we care about * The notification is for the top-level widget, but we care about
@ -5119,9 +5111,9 @@ VTClassInit(void)
#define init_Bres(name) \ #define init_Bres(name) \
TRACE(("init " #name " = %s\n", \ TRACE(("init " #name " = %s\n", \
BtoS(wnew->name = request->name))) BtoS(wnew->name = request->name)))
#define init_Dres(name) \ #define init_Dres2(name,i) \
TRACE(("init " #name " = %f\n", \ TRACE(("init " #name "[%d] = %f\n", i, \
wnew->name = request->name)) wnew->name[i] = request->name[i]))
#define init_Ires(name) \ #define init_Ires(name) \
TRACE(("init " #name " = %d\n", \ TRACE(("init " #name " = %d\n", \
wnew->name = request->name)) wnew->name = request->name))
@ -5129,15 +5121,20 @@ VTClassInit(void)
TRACE(("init " #name " = \"%s\"\n", \ TRACE(("init " #name " = \"%s\"\n", \
(wnew->name = x_strtrim(request->name)) != NULL \ (wnew->name = x_strtrim(request->name)) != NULL \
? wnew->name : "<null>")) ? wnew->name : "<null>"))
#define init_Sres2(name,i) \
TRACE(("init " #name "[%d] = \"%s\"\n", i, \
(wnew->name(i) = x_strtrim(request->name(i))) != NULL \
? wnew->name(i) : "<null>"))
#define init_Tres(offset) \ #define init_Tres(offset) \
TRACE(("init screen.Tcolors[" #offset "] = %#lx\n", \ TRACE(("init screen.Tcolors[" #offset "] = %#lx\n", \
fill_Tres(wnew, request, offset))) fill_Tres(wnew, request, offset)))
#else #else
#define init_Bres(name) wnew->name = request->name #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_Ires(name) wnew->name = request->name
#define init_Sres(name) wnew->name = x_strtrim(request->name) #define init_Sres(name) wnew->name = x_strtrim(request->name)
#define init_Tres(offset) fill_Tres(wnew, request, offset) #define init_Sres2(name,i) wnew->name(i) = x_strtrim(request->name(i))
#define init_Tres(offset) fill_Tres(wnew, request, offset)
#endif #endif
#if OPT_COLOR_RES #if OPT_COLOR_RES
@ -5456,6 +5453,7 @@ VTInitialize(Widget wrequest,
init_Ires(screen.blink_off); init_Ires(screen.blink_off);
wnew->screen.cursor_blink_res = wnew->screen.cursor_blink; wnew->screen.cursor_blink_res = wnew->screen.cursor_blink;
#endif #endif
init_Bres(screen.cursor_underline);
#if OPT_BLINK_TEXT #if OPT_BLINK_TEXT
init_Ires(screen.blink_as_bold); init_Ires(screen.blink_as_bold);
#endif #endif
@ -5583,7 +5581,7 @@ VTInitialize(Widget wrequest,
init_Bres(misc.tiXtraScroll); init_Bres(misc.tiXtraScroll);
init_Bres(misc.dynamicColors); init_Bres(misc.dynamicColors);
for (i = fontMenu_font1; i <= fontMenu_lastBuiltin; i++) { for (i = fontMenu_font1; i <= fontMenu_lastBuiltin; i++) {
init_Sres(screen.MenuFontName(i)); init_Sres2(screen.MenuFontName, i);
} }
wnew->screen.MenuFontName(fontMenu_default) = wnew->misc.default_font.f_n; wnew->screen.MenuFontName(fontMenu_default) = wnew->misc.default_font.f_n;
wnew->screen.MenuFontName(fontMenu_fontescape) = NULL; wnew->screen.MenuFontName(fontMenu_fontescape) = NULL;
@ -5799,7 +5797,7 @@ VTInitialize(Widget wrequest,
#if OPT_RENDERFONT #if OPT_RENDERFONT
for (i = 0; i <= fontMenu_lastBuiltin; ++i) { for (i = 0; i <= fontMenu_lastBuiltin; ++i) {
init_Dres(misc.face_size[i]); init_Dres2(misc.face_size, i);
} }
init_Sres(misc.face_name); init_Sres(misc.face_name);
init_Sres(misc.face_wide_name); init_Sres(misc.face_wide_name);
@ -6064,12 +6062,12 @@ VTDestroy(Widget w GCC_UNUSED)
#ifndef NO_ACTIVE_ICON #ifndef NO_ACTIVE_ICON
releaseWindowGCs(xw, &(screen->iconVwin)); releaseWindowGCs(xw, &(screen->iconVwin));
#endif #endif
XtUninstallTranslations((Widget)xw); XtUninstallTranslations((Widget) xw);
XtUninstallTranslations(screen->scrollWidget); XtUninstallTranslations(screen->scrollWidget);
#if OPT_TOOLBAR #if OPT_TOOLBAR
XtUninstallTranslations((Widget)XtParent(xw)); XtUninstallTranslations((Widget) XtParent(xw));
#endif #endif
XtUninstallTranslations((Widget)SHELL_OF(xw)); XtUninstallTranslations((Widget) SHELL_OF(xw));
if (screen->hidden_cursor) if (screen->hidden_cursor)
XFreeCursor(screen->display, screen->hidden_cursor); XFreeCursor(screen->display, screen->hidden_cursor);
@ -6893,7 +6891,7 @@ ShowCursor(void)
* whether the window has focus, since in that case we want just an * whether the window has focus, since in that case we want just an
* outline for the cursor. * outline for the cursor.
*/ */
filled = (screen->select || screen->always_highlight); filled = (screen->select || screen->always_highlight) && !screen->cursor_underline;
#if OPT_HIGHLIGHT_COLOR #if OPT_HIGHLIGHT_COLOR
use_selbg = isNotForeground(xw, fg_pix, bg_pix, selbg_pix); use_selbg = isNotForeground(xw, fg_pix, bg_pix, selbg_pix);
use_selfg = isNotBackground(xw, fg_pix, bg_pix, selfg_pix); use_selfg = isNotBackground(xw, fg_pix, bg_pix, selfg_pix);
@ -7014,7 +7012,10 @@ ShowCursor(void)
outlineGC = currentGC; outlineGC = currentGC;
screen->box->x = x; screen->box->x = x;
screen->box->y = y; if (!screen->cursor_underline)
screen->box->y = y;
else
screen->box->y = y + FontHeight(screen) - 2;
XDrawLines(screen->display, VWindow(screen), outlineGC, XDrawLines(screen->display, VWindow(screen), outlineGC,
screen->box, NBOX, CoordModePrevious); screen->box, NBOX, CoordModePrevious);
} }

View File

@ -1,4 +1,4 @@
/* $XTermId: fontutils.c,v 1.272 2008/04/17 23:23:37 tom Exp $ */ /* $XTermId: fontutils.c,v 1.275 2008/09/14 22:21:14 tom Exp $ */
/************************************************************ /************************************************************
@ -1335,12 +1335,16 @@ xtermSetCursorBox(TScreen * screen)
{ {
static XPoint VTbox[NBOX]; static XPoint VTbox[NBOX];
XPoint *vp; XPoint *vp;
int fw = FontWidth(screen) - 1;
int fh = FontHeight(screen) - 1;
int hh = screen->cursor_underline ? 1 : fh;
vp = &VTbox[1]; vp = &VTbox[1];
(vp++)->x = FontWidth(screen) - 1; (vp++)->x = fw;
(vp++)->y = FontHeight(screen) - 1; (vp++)->y = hh;
(vp++)->x = -(FontWidth(screen) - 1); (vp++)->x = -fw;
vp->y = -(FontHeight(screen) - 1); vp->y = -hh;
screen->box = VTbox; screen->box = VTbox;
} }
@ -1668,6 +1672,7 @@ xtermComputeFontInfo(XtermWidget xw,
#endif /* OPT_RENDERWIDE */ #endif /* OPT_RENDERWIDE */
} }
if (norm == 0) { if (norm == 0) {
TRACE(("...no TrueType font found for number %d, disable menu entry\n", fontnum));
xw->misc.render_font = False; xw->misc.render_font = False;
update_font_renderfont(); update_font_renderfont();
/* now we will fall through into the bitmap fonts */ /* now we will fall through into the bitmap fonts */
@ -2325,6 +2330,27 @@ lookupFontSizes(XtermWidget xw)
} }
} }
#if OPT_RENDERFONT
#define NMENU_RENDERFONTS (NMENUFONTS - 2) /* no selection or escape */
static Boolean
useFaceSizes(XtermWidget xw)
{
Boolean result = False;
int n;
if (UsingRenderFont(xw)) {
result = True;
for (n = 0; n < NMENU_RENDERFONTS; ++n) {
if (xw->misc.face_size[n] <= 0.0) {
result = False;
break;
}
}
}
return result;
}
#endif
/* /*
* Find the index of a larger/smaller font (according to the sign of 'relative' * Find the index of a larger/smaller font (according to the sign of 'relative'
* and its magnitude), starting from the 'old' index. * and its magnitude), starting from the 'old' index.
@ -2335,34 +2361,65 @@ lookupRelativeFontSize(XtermWidget xw, int old, int relative)
TScreen *screen = TScreenOf(xw); TScreen *screen = TScreenOf(xw);
int n, m = -1; int n, m = -1;
TRACE(("lookupRelativeFontSize(old=%d, relative=%d)\n", old, relative));
if (!IsIcon(screen)) { if (!IsIcon(screen)) {
lookupFontSizes(xw); #if OPT_RENDERFONT
if (relative != 0) { if (useFaceSizes(xw)) {
for (n = 0; n < NMENUFONTS; ++n) { TRACE(("...using FaceSize\n"));
if (screen->menu_font_sizes[n] > 0 && if (relative != 0) {
screen->menu_font_sizes[n] != screen->menu_font_sizes[old]) { for (n = 0; n < NMENU_RENDERFONTS; ++n) {
int cmp_0 = ((screen->menu_font_sizes[n] > if (xw->misc.face_size[n] > 0 &&
screen->menu_font_sizes[old]) xw->misc.face_size[n] != xw->misc.face_size[old]) {
? relative int cmp_0 = ((xw->misc.face_size[n] >
: -relative); xw->misc.face_size[old])
int cmp_m = ((m < 0) ? relative
? 1 : -relative);
: ((screen->menu_font_sizes[n] < int cmp_m = ((m < 0)
screen->menu_font_sizes[m]) ? 1
? relative : ((xw->misc.face_size[n] <
: -relative)); xw->misc.face_size[m])
if (cmp_0 > 0 && cmp_m > 0) { ? relative
m = n; : -relative));
if (cmp_0 > 0 && cmp_m > 0) {
m = n;
}
} }
} }
} }
if (m >= 0) { } else
if (relative > 1) #endif
m = lookupRelativeFontSize(xw, m, relative - 1); {
else if (relative < -1) TRACE(("...using bitmap areas\n"));
m = lookupRelativeFontSize(xw, m, relative + 1); lookupFontSizes(xw);
if (relative != 0) {
for (n = 0; n < NMENUFONTS; ++n) {
if (screen->menu_font_sizes[n] > 0 &&
screen->menu_font_sizes[n] !=
screen->menu_font_sizes[old]) {
int cmp_0 = ((screen->menu_font_sizes[n] >
screen->menu_font_sizes[old])
? relative
: -relative);
int cmp_m = ((m < 0)
? 1
: ((screen->menu_font_sizes[n] <
screen->menu_font_sizes[m])
? relative
: -relative));
if (cmp_0 > 0 && cmp_m > 0) {
m = n;
}
}
}
} }
} }
TRACE(("...new index %d\n", m));
if (m >= 0) {
if (relative > 1)
m = lookupRelativeFontSize(xw, m, relative - 1);
else if (relative < -1)
m = lookupRelativeFontSize(xw, m, relative + 1);
}
} }
return m; return m;
} }

View File

@ -1,4 +1,4 @@
/* $XTermId: input.c,v 1.299 2008/04/20 20:27:18 tom Exp $ */ /* $XTermId: input.c,v 1.300 2008/09/14 16:37:25 Ted.Phelps Exp $ */
/* /*
* Copyright 1999-2007,2008 by Thomas E. Dickey * Copyright 1999-2007,2008 by Thomas E. Dickey
@ -1262,6 +1262,7 @@ Input(XtermWidget xw,
evt_state &= ~xw->misc.alt_mods; evt_state &= ~xw->misc.alt_mods;
if (screen->alt_sends_esc) { if (screen->alt_sends_esc) {
TRACE(("...input-char is modified by ALT\n")); TRACE(("...input-char is modified by ALT\n"));
eightbit = False;
prefix = ANSI_ESC; prefix = ANSI_ESC;
} else if (!eightbit) { } else if (!eightbit) {
TRACE(("...input-char is shifted by ALT\n")); TRACE(("...input-char is shifted by ALT\n"));

View File

@ -1,4 +1,4 @@
/* $XTermId: main.c,v 1.587 2008/05/26 18:25:54 Marius.Tolzmann Exp $ */ /* $XTermId: main.c,v 1.588 2008/09/14 15:20:31 Paul.Lampert Exp $ */
/* /*
* W A R N I N G * W A R N I N G
@ -1041,6 +1041,8 @@ static XrmOptionDescRec optionDescList[] = {
{"-lcc", "*localeFilter",XrmoptionSepArg, (caddr_t) NULL}, {"-lcc", "*localeFilter",XrmoptionSepArg, (caddr_t) NULL},
{"-en", "*locale", XrmoptionSepArg, (caddr_t) NULL}, {"-en", "*locale", XrmoptionSepArg, (caddr_t) NULL},
#endif #endif
{"-uc", "*cursorUnderLine", XrmoptionNoArg, (caddr_t) "on"},
{"+uc", "*cursorUnderLine", XrmoptionNoArg, (caddr_t) "off"},
{"-ulc", "*colorULMode", XrmoptionNoArg, (caddr_t) "off"}, {"-ulc", "*colorULMode", XrmoptionNoArg, (caddr_t) "off"},
{"+ulc", "*colorULMode", XrmoptionNoArg, (caddr_t) "on"}, {"+ulc", "*colorULMode", XrmoptionNoArg, (caddr_t) "on"},
{"-ulit", "*italicULMode", XrmoptionNoArg, (caddr_t) "off"}, {"-ulit", "*italicULMode", XrmoptionNoArg, (caddr_t) "off"},
@ -1211,6 +1213,7 @@ static OptionHelp xtermOptions[] = {
{ "-/+lc", "turn on/off locale mode using luit" }, { "-/+lc", "turn on/off locale mode using luit" },
{ "-lcc path", "filename of locale converter (" DEFLOCALEFILTER ")" }, { "-lcc path", "filename of locale converter (" DEFLOCALEFILTER ")" },
#endif #endif
{ "-/+uc", "turn on/off underline cursor" },
{ "-/+ulc", "turn off/on display of underline as color" }, { "-/+ulc", "turn off/on display of underline as color" },
{ "-/+ulit", "turn off/on display of underline as italics" }, { "-/+ulit", "turn off/on display of underline as italics" },
#ifdef HAVE_UTMP #ifdef HAVE_UTMP

View File

@ -1,4 +1,4 @@
/* $XTermId: os2main.c,v 1.255 2007/11/30 01:25:03 tom Exp $ */ /* $XTermId: os2main.c,v 1.256 2008/09/14 19:37:07 tom Exp $ */
/* removed all foreign stuff to get the code more clear (hv) /* removed all foreign stuff to get the code more clear (hv)
* and did some rewrite for the obscure OS/2 environment * and did some rewrite for the obscure OS/2 environment
@ -198,13 +198,13 @@ static struct termio d_tio;
* POSIX termios has termios.c_cc, which is similar to SVR4. * POSIX termios has termios.c_cc, which is similar to SVR4.
*/ */
#define TTYMODE(name) { name, sizeof(name)-1, 0, 0 } #define TTYMODE(name) { name, sizeof(name)-1, 0, 0 }
static int override_tty_modes = 0; static Boolean override_tty_modes = False;
/* *INDENT-OFF* */ /* *INDENT-OFF* */
static struct _xttymodes { static struct _xttymodes {
char *name; char *name;
size_t len; size_t len;
int set; int set;
Char value; int value;
} ttymodelist[] = { } ttymodelist[] = {
TTYMODE("intr"), /* tchars.t_intrc ; VINTR */ TTYMODE("intr"), /* tchars.t_intrc ; VINTR */
#define XTTYMODE_intr 0 #define XTTYMODE_intr 0
@ -301,7 +301,8 @@ static XtResource application_resources[] =
#endif #endif
#if OPT_PTY_HANDSHAKE #if OPT_PTY_HANDSHAKE
Bres("waitForMap", "WaitForMap", wait_for_map, False), Bres("waitForMap", "WaitForMap", wait_for_map, False),
Bres("ptyHandshake", "PtyHandshake", ptyHandshake, DEF_PTY_HANDSHAKE), Bres("ptyHandshake", "PtyHandshake", ptyHandshake, True),
Bres("ptySttySize", "PtySttySize", ptySttySize, DEF_PTY_STTY_SIZE),
#endif #endif
#if OPT_SAME_NAME #if OPT_SAME_NAME
Bres("sameName", "SameName", sameName, True), Bres("sameName", "SameName", sameName, True),
@ -465,6 +466,8 @@ static XrmOptionDescRec optionDescList[] = {
{"-lcc", "*localeFilter",XrmoptionSepArg, (caddr_t) NULL}, {"-lcc", "*localeFilter",XrmoptionSepArg, (caddr_t) NULL},
{"-en", "*locale", XrmoptionSepArg, (caddr_t) NULL}, {"-en", "*locale", XrmoptionSepArg, (caddr_t) NULL},
#endif #endif
{"-uc", "*cursorUnderLine", XrmoptionNoArg, (caddr_t) "on"},
{"+uc", "*cursorUnderLine", XrmoptionNoArg, (caddr_t) "off"},
{"-ulc", "*colorULMode", XrmoptionNoArg, (caddr_t) "off"}, {"-ulc", "*colorULMode", XrmoptionNoArg, (caddr_t) "off"},
{"+ulc", "*colorULMode", XrmoptionNoArg, (caddr_t) "on"}, {"+ulc", "*colorULMode", XrmoptionNoArg, (caddr_t) "on"},
{"-ulit", "*italicULMode", XrmoptionNoArg, (caddr_t) "off"}, {"-ulit", "*italicULMode", XrmoptionNoArg, (caddr_t) "off"},
@ -635,6 +638,7 @@ static OptionHelp xtermOptions[] = {
{ "-/+lc", "turn on/off locale mode using luit" }, { "-/+lc", "turn on/off locale mode using luit" },
{ "-lcc path", "filename of locale converter (" DEFLOCALEFILTER ")" }, { "-lcc path", "filename of locale converter (" DEFLOCALEFILTER ")" },
#endif #endif
{ "-/+uc", "turn on/off underline cursor" },
{ "-/+ulc", "turn off/on display of underline as color" }, { "-/+ulc", "turn off/on display of underline as color" },
{ "-/+ut", "turn on/off utmp inhibit (not supported)" }, { "-/+ut", "turn on/off utmp inhibit (not supported)" },
{ "-/+ulit", "turn off/on display of underline as italics" }, { "-/+ulit", "turn off/on display of underline as italics" },
@ -668,21 +672,32 @@ static OptionHelp xtermOptions[] = {
{ NULL, NULL }}; { NULL, NULL }};
/* *INDENT-ON* */ /* *INDENT-ON* */
/*debug FILE *confd;*/ #ifdef DBG_CONSOLE
/*static void opencons() FILE *confd;
{
if ((confd=fopen("/dev/console$","w")) < 0) {
fputs("!!! Cannot open console device.\n",
stderr);
exit(1);
}
}
static void closecons(void) static void
closecons(void)
{ {
if (confs != 0) {
fclose(confd); fclose(confd);
confd = 0;
}
} }
*/ static void
opencons(void)
{
closecons();
if ((confd = fopen("/dev/console$", "w")) < 0) {
fputs("!!! Cannot open console device.\n",
stderr);
exit(1);
}
}
#else
#define opencons() /* nothing */
#define closecons() /* nothing */
#endif
static char *message[] = static char *message[] =
{ {
"Fonts should be fixed width and, if both normal and bold are specified, should", "Fonts should be fixed width and, if both normal and bold are specified, should",
@ -957,7 +972,7 @@ main(int argc, char **argv ENVP_ARG)
setlocale(LC_ALL, NULL); setlocale(LC_ALL, NULL);
#endif #endif
/*debug opencons();*/ opencons();
ttydev = TypeMallocN(char, PTMS_BUFSZ); ttydev = TypeMallocN(char, PTMS_BUFSZ);
ptydev = TypeMallocN(char, PTMS_BUFSZ); ptydev = TypeMallocN(char, PTMS_BUFSZ);
@ -1023,7 +1038,7 @@ main(int argc, char **argv ENVP_ARG)
fprintf(stderr, "%s: bad tty modes \"%s\"\n", fprintf(stderr, "%s: bad tty modes \"%s\"\n",
ProgramName, resource.tty_modes); ProgramName, resource.tty_modes);
} else if (n > 0) { } else if (n > 0) {
override_tty_modes = 1; override_tty_modes = True;
} }
} }
#if OPT_ZICONBEEP #if OPT_ZICONBEEP
@ -1701,8 +1716,7 @@ spawnXTerm(XtermWidget xw)
case 0: /* child */ case 0: /* child */
whoami = THE_CHILD; whoami = THE_CHILD;
/*debug fclose(confd); opencons();
opencons();*/
/* we don't need the socket, or the pty master anymore */ /* we don't need the socket, or the pty master anymore */
close(ConnectionNumber(screen->display)); close(ConnectionNumber(screen->display));
close(screen->respond); close(screen->respond);
@ -1758,7 +1772,7 @@ opencons();*/
int on = 1; int on = 1;
if (ioctl(ttyfd, TIOCCONS, (char *) &on) == -1) if (ioctl(ttyfd, TIOCCONS, (char *) &on) == -1)
fprintf(stderr, "%s: cannot open console: %s\n", fprintf(stderr, "%s: cannot open console: %s\n",
xterm_name, strerror(errno)); ProgramName, strerror(errno));
} }
} }
@ -1847,9 +1861,9 @@ opencons();*/
execvp(*command_to_exec_with_luit, command_to_exec_with_luit); execvp(*command_to_exec_with_luit, command_to_exec_with_luit);
/* print error message on screen */ /* print error message on screen */
fprintf(stderr, "%s: Can't execvp %s: %s\n", fprintf(stderr, "%s: Can't execvp %s: %s\n",
xterm_name, *command_to_exec_with_luit, strerror(errno)); ProgramName, *command_to_exec_with_luit, strerror(errno));
fprintf(stderr, "%s: cannot support your locale.\n", fprintf(stderr, "%s: cannot support your locale.\n",
xterm_name); ProgramName);
} }
#endif #endif
if (command_to_exec) { if (command_to_exec) {
@ -1860,7 +1874,7 @@ opencons();*/
/* print error message on screen */ /* print error message on screen */
fprintf(stderr, "%s: Can't execvp %s\n", fprintf(stderr, "%s: Can't execvp %s\n",
xterm_name, *command_to_exec); ProgramName, *command_to_exec);
} }
/* use a layered mechanism to find a shell */ /* use a layered mechanism to find a shell */
@ -1891,13 +1905,13 @@ opencons();*/
/* print error message on screen */ /* print error message on screen */
fprintf(stderr, "%s: Can't execvp %s\n", fprintf(stderr, "%s: Can't execvp %s\n",
xterm_name, *command_to_exec); ProgramName, *command_to_exec);
} else { } else {
execlpe(ptr, shname, 0, gblenvp); execlpe(ptr, shname, 0, gblenvp);
/* Exec failed. */ /* Exec failed. */
fprintf(stderr, "%s: Could not exec %s!\n", fprintf(stderr, "%s: Could not exec %s!\n",
xterm_name, ptr); ProgramName, ptr);
} }
sleep(5); sleep(5);

View File

@ -1,4 +1,4 @@
/* $XTermId: ptyx.h,v 1.517 2008/07/27 19:38:00 tom Exp $ */ /* $XTermId: ptyx.h,v 1.518 2008/09/14 15:16:20 Paul.Lampert Exp $ */
/* /*
* Copyright 1999-2007,2008 by Thomas E. Dickey * Copyright 1999-2007,2008 by Thomas E. Dickey
@ -1463,6 +1463,7 @@ typedef struct {
int cursor_state; /* ON, OFF, or BLINKED_OFF */ int cursor_state; /* ON, OFF, or BLINKED_OFF */
int cursor_busy; /* do not redraw... */ int cursor_busy; /* do not redraw... */
Boolean cursor_underline; /* true if cursor is in underline mode */
#if OPT_BLINK_CURS #if OPT_BLINK_CURS
Boolean cursor_blink; /* cursor blink enable */ Boolean cursor_blink; /* cursor blink enable */
Boolean cursor_blink_res; /* initial cursor blink value */ Boolean cursor_blink_res; /* initial cursor blink value */

View File

@ -1,4 +1,4 @@
/* $XTermId: version.h,v 1.292 2008/05/26 19:18:04 tom Exp $ */ /* $XTermId: version.h,v 1.293 2008/09/14 13:45:26 tom Exp $ */
/* /*
* These definitions are used to build the string that's printed in response to * These definitions are used to build the string that's printed in response to
@ -6,7 +6,7 @@
* version of X to which this version of xterm has been built. The number in * version of X to which this version of xterm has been built. The number in
* parentheses is my patch number (Thomas E. Dickey). * parentheses is my patch number (Thomas E. Dickey).
*/ */
#define XTERM_PATCH 236 #define XTERM_PATCH 237
#ifndef __vendorversion__ #ifndef __vendorversion__
#define __vendorversion__ "XTerm/OpenBSD" #define __vendorversion__ "XTerm/OpenBSD"

View File

@ -1,4 +1,4 @@
/* $XTermId: xterm.h,v 1.502 2008/05/26 19:23:05 tom Exp $ */ /* $XTermId: xterm.h,v 1.503 2008/09/14 15:18:39 Paul.Lampert Exp $ */
/************************************************************ /************************************************************
@ -377,6 +377,7 @@ extern char **environ;
#define XtNcursorColor "cursorColor" #define XtNcursorColor "cursorColor"
#define XtNcursorOffTime "cursorOffTime" #define XtNcursorOffTime "cursorOffTime"
#define XtNcursorOnTime "cursorOnTime" #define XtNcursorOnTime "cursorOnTime"
#define XtNcursorUnderline "cursorUnderLine"
#define XtNcutNewline "cutNewline" #define XtNcutNewline "cutNewline"
#define XtNcutToBeginningOfLine "cutToBeginningOfLine" #define XtNcutToBeginningOfLine "cutToBeginningOfLine"
#define XtNdecTerminalID "decTerminalID" #define XtNdecTerminalID "decTerminalID"
@ -526,6 +527,7 @@ extern char **environ;
#define XtCCursorBlink "CursorBlink" #define XtCCursorBlink "CursorBlink"
#define XtCCursorOffTime "CursorOffTime" #define XtCCursorOffTime "CursorOffTime"
#define XtCCursorOnTime "CursorOnTime" #define XtCCursorOnTime "CursorOnTime"
#define XtCCursorUnderline "CursorUnderLine"
#define XtCCutNewline "CutNewline" #define XtCCutNewline "CutNewline"
#define XtCCutToBeginningOfLine "CutToBeginningOfLine" #define XtCCutToBeginningOfLine "CutToBeginningOfLine"
#define XtCDecTerminalID "DecTerminalID" #define XtCDecTerminalID "DecTerminalID"

View File

@ -20,7 +20,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF *
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *
***************************************************************************** *****************************************************************************
$XTermId: xterm.log.html,v 1.685 2008/07/27 23:10:10 tom Exp $ $XTermId: xterm.log.html,v 1.690 2008/09/14 23:43:15 tom Exp $
--> -->
<HTML> <HTML>
<HEAD> <HEAD>
@ -45,6 +45,7 @@ Most of these are summarized in the XFree86 CHANGELOG
is the latest version of this file. is the latest version of this file.
<UL> <UL>
<LI><A HREF="#xterm_237">Patch #237 - 2008/09/14</A>
<LI><A HREF="#xterm_236">Patch #236 - 2008/07/27</A> <LI><A HREF="#xterm_236">Patch #236 - 2008/07/27</A>
<LI><A HREF="#xterm_235">Patch #235 - 2008/04/20</A> <LI><A HREF="#xterm_235">Patch #235 - 2008/04/20</A>
<LI><A HREF="#xterm_234">Patch #234 - 2008/03/02</A> <LI><A HREF="#xterm_234">Patch #234 - 2008/03/02</A>
@ -284,6 +285,31 @@ is the latest version of this file.
<LI><A HREF="#xterm_01">Patch #1 - 1996/1/6</A> <LI><A HREF="#xterm_01">Patch #1 - 1996/1/6</A>
</UL> </UL>
<H1><A NAME="xterm_237">Patch #237 - 2008/09/14</A></H1>
<ul>
<li>improve usability of TrueType fonts by making the font-size
switching for shifted keypad plus/minus use the
<code>faceSize</code> resources to determine the order of fonts
(when TrueType fonts are used) rather than the bitmap fonts, since
their sizes may not be in the same order (report by H Merijn
Brand)
<li>remove an optimization of <code>ConfigureNotify</code> events
from <a href="#xterm_236">patch #236</a>
which seems to interfere with passing <code>SIGWINCH</code> to
applications (GenToo #233836).
<li>modify handling of <code>altSendsEscape</code> to reset the
<code>eightBitInput</code> mode, like <code>metaSendsEscape</code>
(patch by Ted Phelps).
<li>add feature to show the text-cursor as an underline rather than a
box, plus command-line options <code>-uc</code> and
<code>+uc</code> and resource <code>cursorUnderLine</code> to
control the feature (patch by Paul Lampert).
<li>update config.guess, config.sub
</ul>
<H1><A NAME="xterm_236">Patch #236 - 2008/07/27</A></H1> <H1><A NAME="xterm_236">Patch #236 - 2008/07/27</A></H1>
<ul> <ul>
<li>correct memory reallocation when handling a paste of UTF-8 text <li>correct memory reallocation when handling a paste of UTF-8 text

View File

@ -1,5 +1,5 @@
'\" t '\" t
.\" $XTermId: xterm.man,v 1.408 2008/04/20 21:16:40 tom Exp $ .\" $XTermId: xterm.man,v 1.411 2008/09/14 23:06:19 tom Exp $
.\" .\"
.\" Copyright 1996-2007,2008 by Thomas E. Dickey .\" Copyright 1996-2007,2008 by Thomas E. Dickey
.\" .\"
@ -527,13 +527,13 @@ It sets the \fBhpFunctionKeys\fP resource to ``false''.
.TP 8 .TP 8
.BI -hm .BI -hm
Tells \fIxterm\fP to use Tells \fIxterm\fP to use
\fBhighlightTextColor\fP and \fBhighlightColor\fP \fBhighlightTextColor\fP and \fBhighlightColor\fP
to override the reversed foreground/background colors in a selection. to override the reversed foreground/background colors in a selection.
It sets the \fBhighlightColorMode\fP resource to ``true''. It sets the \fBhighlightColorMode\fP resource to ``true''.
.TP 8 .TP 8
.BI +hm .BI +hm
Tells \fIxterm\fP not to use Tells \fIxterm\fP not to use
\fBhighlightTextColor\fP and \fBhighlightColor\fP \fBhighlightTextColor\fP and \fBhighlightColor\fP
to override the reversed foreground/background colors in a selection. to override the reversed foreground/background colors in a selection.
It sets the \fBhighlightColorMode\fP resource to ``false''. It sets the \fBhighlightColorMode\fP resource to ``false''.
.TP 8 .TP 8
@ -949,6 +949,12 @@ when your operating system does not support locale.
.B +u8 .B +u8
This option resets the \fButf8\fP resource. This option resets the \fButf8\fP resource.
.TP 8 .TP 8
.B "-uc"
This option makes the cursor underlined instead of a box.
.TP 8
.B "+uc"
This option makes the cursor a box instead of underlined.
.TP 8
.B "-ulc" .B "-ulc"
This option disables the display of characters with underline attribute as This option disables the display of characters with underline attribute as
color rather than with underlining. color rather than with underlining.
@ -1861,6 +1867,10 @@ at the end of the line.
If ``true'', the Newline is selected. If ``true'', the Newline is selected.
The default is ``true.'' The default is ``true.''
.TP 8 .TP 8
.B "cursorUnderLine (\fPclass\fB CursorUnderLine)"
Specifies whether to make the cursor underlined or a box.
The default is ``false.''
.TP 8
.B "cutToBeginningOfLine (\fPclass\fB CutToBeginningOfLine)" .B "cutToBeginningOfLine (\fPclass\fB CutToBeginningOfLine)"
If ``false'', triple clicking to select a line selects only from the If ``false'', triple clicking to select a line selects only from the
current word forward. current word forward.
@ -1951,13 +1961,22 @@ Specify the pointsize for fonts selected from the FreeType
library if support for that library was compiled into \fIxterm\fR. library if support for that library was compiled into \fIxterm\fR.
The default is ``14.'' The default is ``14.''
On the \fBVT\ Fonts\fP menu, this corresponds to the \fIDefault\fP entry. On the \fBVT\ Fonts\fP menu, this corresponds to the \fIDefault\fP entry.
.IP
You can specify the pointsize for TrueType fonts selected with the other You can specify the pointsize for TrueType fonts selected with the other
size-related menu entries such as Medium, Huge, etc., by using one of size-related menu entries such as Medium, Huge, etc., by using one of
the following resource values. the following resource values.
If you do not specify a value, If you do not specify a value,
they default to ``0.0'', they default to ``0.0'',
which causes \fIxterm\fP to use the ratio of font sizes from the bitmap which causes \fIxterm\fP to use the ratio of font sizes
from the corresponding bitmap
font resources to obtain a TrueType pointsize. font resources to obtain a TrueType pointsize.
.IP
If all of the \fBfaceSize\fP resources are set, then \fIxterm\fP
will use this information to determine the next smaller/larger
TrueType font for the
\fIlarger-vt-font()\fP and
\fIsmaller-vt-font()\fP actions.
If any are not set, \fIxterm\fP will use only the areas of the bitmap fonts.
.TP 8 .TP 8
.B "faceSize1 (\fPclass\fB FaceSize1)" .B "faceSize1 (\fPclass\fB FaceSize1)"
Specifies the pointsize of the first alternative font. Specifies the pointsize of the first alternative font.
@ -2087,7 +2106,7 @@ The default is ``XtDefaultForeground.''
.TP 8 .TP 8
.B "highlightColorMode (\fPclass\fB HighlightColorMode)" .B "highlightColorMode (\fPclass\fB HighlightColorMode)"
Specifies whether \fIxterm\fP should use Specifies whether \fIxterm\fP should use
\fBhighlightTextColor\fP and \fBhighlightColor\fP \fBhighlightTextColor\fP and \fBhighlightColor\fP
to override the reversed foreground/background colors in a selection. to override the reversed foreground/background colors in a selection.
The default is unspecified: The default is unspecified:
at startup, \fIxterm\fP checks if those resources are set to something at startup, \fIxterm\fP checks if those resources are set to something
@ -2116,35 +2135,35 @@ l l l l l
_ _ _ _ _ _ _ _ _ _
l l l l l. l l l l l.
\fIHCM\fR \fIHR\fR \fIHBG\fR \fIHFG\fR \fIHighlight\fP \fIHCM\fR \fIHR\fR \fIHBG\fR \fIHFG\fR \fIHighlight\fP
false false default default bg/fg\"0 false false default default bg/fg
false false default set bg/fg\"1 false false default set bg/fg
false false set default fg/HBG\"2 false false set default fg/HBG
false false set set fg/HBG\"3 false false set set fg/HBG
= =
false true default default bg/fg\"4 false true default default bg/fg
false true default set bg/fg\"5 false true default set bg/fg
false true set default fg/HBG\"6 false true set default fg/HBG
false true set set fg/HBG\"7 false true set set fg/HBG
= =
true false default default bg/fg\"8 true false default default bg/fg
true false default set HFG/fg\"9 true false default set HFG/fg
true false set default bg/HBG\"10 true false set default bg/HBG
true false set set HFG/HBG\"11 true false set set HFG/HBG
= =
true true default default fg/fg (useless)\"12 true true default default fg/fg (useless)
true true default set HFG/fg\"13 true true default set HFG/fg
true true set default fg/HBG\"14 true true set default fg/HBG
true true set set HFG/HBG\"15 true true set set HFG/HBG
= =
default false default default bg/fg\"16 default false default default bg/fg
default false default set bg/fg\"17 default false default set bg/fg
default false set default fg/HBG\"18 default false set default fg/HBG
default false set set HFG/HBG\"19 default false set set HFG/HBG
= =
default true default default bg/fg\"20 default true default default bg/fg
default true default set bg/fg\"21 default true default set bg/fg
default true set default fg/HBG\"22 default true set default fg/HBG
default true set set HFG/HBG\"23 default true set set HFG/HBG
= =
.TE .TE
.TP 8 .TP 8
@ -2311,6 +2330,10 @@ Specifies the file name for the encoding converter from/to locale
encodings and UTF-8 which is used with the \fB-lc\fR option or \fBlocale\fR resource. encodings and UTF-8 which is used with the \fB-lc\fR option or \fBlocale\fR resource.
The help message shown by ``xterm -help'' lists the default value, The help message shown by ``xterm -help'' lists the default value,
which depends on your system configuration. which depends on your system configuration.
.IP
If the encoding converter requires command-line parameters,
you should put those within a shell script to execute the converter,
and set this resource to point to the shell script.
.TP 8 .TP 8
.B "loginShell (\fPclass\fB LoginShell)" .B "loginShell (\fPclass\fB LoginShell)"
Specifies whether or not the shell to be run in the window should be started Specifies whether or not the shell to be run in the window should be started
@ -2606,7 +2629,7 @@ page function.
The default is ``false.'' The default is ``false.''
.TP 8 .TP 8
.B "quietGrab (\fPclass\fB QuietGrab)" .B "quietGrab (\fPclass\fB QuietGrab)"
Controls whether the cursor is repainted Controls whether the cursor is repainted
when \fINotifyGrab\fP and \fINotifyUngrab\fP when \fINotifyGrab\fP and \fINotifyUngrab\fP
event types are received during change of focus. event types are received during change of focus.
The default is ``false.'' The default is ``false.''