MANIFEST | 2 Tekproc.c | 5 aclocal.m4 | 6 button.c | 25 charclass.c | 108 +-- charproc.c | 328 ++------- config.guess | 22 config.sub | 17 configure | 1192 +++++++++++++++++----------------- configure.in | 15 cursor.c | 9 data.c | 6 data.h | 19 debian/changelog | 13 debian/patches/901_xterm_manpage.diff | 6 input.c | 242 +++++- main.c | 191 +++-- main.h | 38 + menu.c | 7 misc.c | 161 ++-- os2main.c | 18 ptyx.h | 25 resize.c | 20 screen.c | 254 ++++--- trace.c | 136 +++ util.c | 548 +++++++++++---- version.h | 6 vttests/256colors2.pl | 33 vttests/88colors2.pl | 35 xterm.h | 61 + xterm.log.html | 80 ++ xterm.man | 26 xtermcfg.hin | 4 33 files changed, 2223 insertions(+), 1435 deletions(-)
New commits: commit 47a29718c71a6d95e4250fb11eab931502547100 Author: Julien Cristau <[EMAIL PROTECTED]> Date: Mon Jul 23 03:44:16 2007 +0200 New upstream release. Refresh 901_xterm_manpage.diff diff --git a/debian/changelog b/debian/changelog index 034f366..a500d59 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,14 @@ +xterm (228-1) unstable; urgency=low + + * New upstream release + + fix missing assignment for UTF-8 parsing in widget initialization + (closes: #403360). + + correct index expression used to set line-wrapping flag, making + selection from scrollback work consistently (closes: #430121). + * Refresh 901_xterm_manpage.diff. + + -- Julien Cristau <[EMAIL PROTECTED]> Mon, 23 Jul 2007 03:43:32 +0200 + xterm (226-1) unstable; urgency=low [ Branden Robinson ] diff --git a/debian/patches/901_xterm_manpage.diff b/debian/patches/901_xterm_manpage.diff index d113188..d0bcf76 100644 --- a/debian/patches/901_xterm_manpage.diff +++ b/debian/patches/901_xterm_manpage.diff @@ -7,9 +7,9 @@ This patch by Branden Robinson and David MartÃnez. Index: xterm.man =================================================================== ---- xterm.man.orig 2007-06-17 22:24:51.000000000 +0100 -+++ xterm.man 2007-06-17 22:25:02.000000000 +0100 -@@ -4596,10 +4596,10 @@ +--- xterm.man.orig 2007-07-23 03:03:23.000000000 +0200 ++++ xterm.man 2007-07-23 03:03:58.000000000 +0200 +@@ -4620,10 +4620,10 @@ .SH FILES The actual pathnames given may differ on your system. .TP 5 commit dbf47d2b550d25dbf7bb9b0960c162073b2c96d0 Author: Julien Cristau <[EMAIL PROTECTED]> Date: Mon Jul 23 02:48:18 2007 +0200 Import xterm 228. diff --git a/MANIFEST b/MANIFEST index b02176e..cc11697 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1,4 +1,4 @@ -MANIFEST for xterm-227, version xterm-227 +MANIFEST for xterm-228, version xterm-228 -------------------------------------------------------------------------------- MANIFEST this file 256colres.h resource-definitions for 256-color mode diff --git a/Tekproc.c b/Tekproc.c index 8d2a97b..d7dd80e 100644 --- a/Tekproc.c +++ b/Tekproc.c @@ -1,4 +1,4 @@ -/* $XTermId: Tekproc.c,v 1.156 2007/05/28 19:08:33 tom Exp $ */ +/* $XTermId: Tekproc.c,v 1.157 2007/07/10 19:53:11 tom Exp $ */ /* * Warning, there be crufty dragons here. @@ -946,8 +946,7 @@ TekExpose(Widget w, rcnt = tekRefreshList->count; Tparsestate = curstate = Talptable; TRACE(("TekExpose resets data to replay %d bytes\n", rcnt)); - if (resource.wait_for_map) - first_map_occurred(); + first_map_occurred(); if (!tekscr->waitrefresh) TekRefresh(tw); } diff --git a/button.c b/button.c index 9a951c8..2ff5fd6 100644 --- a/button.c +++ b/button.c @@ -1,4 +1,4 @@ -/* $XTermId: button.c,v 1.275 2007/06/26 22:57:19 tom Exp $ */ +/* $XTermId: button.c,v 1.277 2007/07/22 20:37:11 tom Exp $ */ /* * Copyright 1999-2006,2007 by Thomas E. Dickey @@ -51,7 +51,6 @@ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. */ -/* $XFree86: xc/programs/xterm/button.c,v 3.88 2006/06/19 00:36:50 dickey Exp $ */ /* button.c Handles button events in the terminal emulator. @@ -2613,22 +2612,23 @@ do_select_regex(TScreen * screen, CELL * startc, CELL * endc) } } if (best_col >= 0) { + int best_nxt = best_col + best_len; columnToCell(screen, firstRow, best_col, startc); - columnToCell(screen, firstRow, best_col + best_len, endc); + columnToCell(screen, firstRow, best_nxt, endc); TRACE(("search::%s\n", search)); TRACE(("indexed:%d..%d -> %d..%d\n", - best_col, best_col + best_len, + best_col, best_nxt, indexed[best_col], - indexed[best_col + best_len])); + indexed[best_nxt])); TRACE(("matched:%d:%s\n", - indexed[best_col + best_len] + 1 - + indexed[best_nxt] + 1 - indexed[best_col], visibleChars(PAIRED_CHARS((Char *) (search + indexed[best_col]), 0), - indexed[best_col + best_len] + - 1 - - indexed[best_col]))); + (unsigned) (indexed[best_nxt] + + 1 - + indexed[best_col])))); } free(search); } @@ -2997,7 +2997,7 @@ SaltTextAway(XtermWidget xw, *lp = '\0'; /* make sure we have end marked */ TRACE(("Salted TEXT:%d:%s\n", lp - line, - visibleChars(PAIRED_CHARS(line, 0), lp - line))); + visibleChars(PAIRED_CHARS(line, 0), (unsigned) (lp - line)))); screen->selection_length = (lp - line); _OwnSelection(xw, params, num_params); diff --git a/charclass.c b/charclass.c index 33e2756..b8fd759 100644 --- a/charclass.c +++ b/charclass.c @@ -1,4 +1,4 @@ -/* $XTermId: charclass.c,v 1.14 2006/02/13 01:14:58 tom Exp $ */ +/* $XTermId: charclass.c,v 1.18 2007/07/15 16:18:41 tom Exp $ */ /* * Compact and efficient reimplementation of the @@ -6,21 +6,22 @@ * * Markus Kuhn -- [EMAIL PROTECTED] -- 2000-07-03 * - * Xterm allows users to select entire words with a double-click on - * the left mouse button. Opinions might differ on what type of - * characters are part of separate words, therefore xterm allows users - * to configure a class code for each 8-bit character. Words are - * maximum length sequences of neighboring characters with identical - * class code. Extending this mechanism to Unicode naively would - * create an at least 2^16 entries (128 kB) long class code table. - * Instead, we transform the character class table into a list - * of intervals, that will be accessed via a linear search. - * Changes made to the table by the user will be appended. A special - * class code -1 (default) marks characters who have their code number - * as the class code. We could alternatively use a sorted table of - * non-overlapping intervals that can be accessed via binary search, - * but merging in new intervals is significantly more hassle and - * not worth the effort here. + * Xterm allows users to select entire words with a double-click on the left + * mouse button. Opinions might differ on what type of characters are part of + * separate words, therefore xterm allows users to configure a class code for + * each 8-bit character. Words are maximum length sequences of neighboring + * characters with identical class code. Extending this mechanism to Unicode + * naively would create an at least 2^16 entries (128 kB) long class code + * table. + * + * Instead, we transform the character class table into a list of intervals, + * that will be accessed via a linear search. Changes made to the table by the + * user will be appended. A special class code IDENT (default) marks + * characters who have their code number as the class code. + * + * We could alternatively use a sorted table of non-overlapping intervals that + * can be accessed via binary search, but merging in new intervals is + * significantly more hassle and not worth the effort here. */ /* $XFree86: xc/programs/xterm/charclass.c,v 1.7 2006/02/13 01:14:58 dickey Exp $ */ @@ -65,6 +66,13 @@ SetCharacterClassRange(int low, int high, int value) return 0; } +enum { + IDENT = -1, + ALNUM = 48, + CNTRL = 1, + BLANK = 32, +} Classes; + void init_classtab(void) { @@ -78,48 +86,48 @@ init_classtab(void) classtab[0].last = 0; /* old xterm default classes */ - SetCharacterClassRange(0, 0, 32); - SetCharacterClassRange(1, 31, 1); - SetCharacterClassRange('\t', '\t', 32); - SetCharacterClassRange('0', '9', 48); - SetCharacterClassRange('A', 'Z', 48); - SetCharacterClassRange('_', '_', 48); - SetCharacterClassRange('a', 'z', 48); - SetCharacterClassRange(127, 159, 1); - SetCharacterClassRange(160, 191, -1); - SetCharacterClassRange(192, 255, 48); - SetCharacterClassRange(215, 215, 216); - SetCharacterClassRange(247, 247, 248); + SetCharacterClassRange(0, 0, BLANK); + SetCharacterClassRange(1, 31, CNTRL); + SetCharacterClassRange('\t', '\t', BLANK); + SetCharacterClassRange('0', '9', ALNUM); + SetCharacterClassRange('A', 'Z', ALNUM); + SetCharacterClassRange('_', '_', ALNUM); + SetCharacterClassRange('a', 'z', ALNUM); + SetCharacterClassRange(127, 159, CNTRL); + SetCharacterClassRange(160, 191, IDENT); + SetCharacterClassRange(192, 255, ALNUM); + SetCharacterClassRange(215, 215, IDENT); + SetCharacterClassRange(247, 247, IDENT); /* added Unicode classes */ - SetCharacterClassRange(0x0100, 0xffdf, 48); /* mostly characters */ - SetCharacterClassRange(0x037e, 0x037e, -1); /* Greek question mark */ - SetCharacterClassRange(0x0387, 0x0387, -1); /* Greek ano teleia */ - SetCharacterClassRange(0x055a, 0x055f, -1); /* Armenian punctuation */ - SetCharacterClassRange(0x0589, 0x0589, -1); /* Armenian full stop */ - SetCharacterClassRange(0x0700, 0x070d, -1); /* Syriac punctuation */ - SetCharacterClassRange(0x104a, 0x104f, -1); /* Myanmar punctuation */ - SetCharacterClassRange(0x10fb, 0x10fb, -1); /* Georgian punctuation */ - SetCharacterClassRange(0x1361, 0x1368, -1); /* Ethiopic punctuation */ - SetCharacterClassRange(0x166d, 0x166e, -1); /* Canadian Syl. punctuation */ - SetCharacterClassRange(0x17d4, 0x17dc, -1); /* Khmer punctuation */ - SetCharacterClassRange(0x1800, 0x180a, -1); /* Mongolian punctuation */ - SetCharacterClassRange(0x2000, 0x200a, 32); /* spaces */ - SetCharacterClassRange(0x200b, 0x27ff, -1); /* punctuation and symbols */ + SetCharacterClassRange(0x0100, 0xffdf, ALNUM); /* mostly characters */ + SetCharacterClassRange(0x037e, 0x037e, IDENT); /* Greek question mark */ + SetCharacterClassRange(0x0387, 0x0387, IDENT); /* Greek ano teleia */ + SetCharacterClassRange(0x055a, 0x055f, IDENT); /* Armenian punctuation */ + SetCharacterClassRange(0x0589, 0x0589, IDENT); /* Armenian full stop */ + SetCharacterClassRange(0x0700, 0x070d, IDENT); /* Syriac punctuation */ + SetCharacterClassRange(0x104a, 0x104f, IDENT); /* Myanmar punctuation */ + SetCharacterClassRange(0x10fb, 0x10fb, IDENT); /* Georgian punctuation */ + SetCharacterClassRange(0x1361, 0x1368, IDENT); /* Ethiopic punctuation */ + SetCharacterClassRange(0x166d, 0x166e, IDENT); /* Canadian Syl. punctuation */ + SetCharacterClassRange(0x17d4, 0x17dc, IDENT); /* Khmer punctuation */ + SetCharacterClassRange(0x1800, 0x180a, IDENT); /* Mongolian punctuation */ + SetCharacterClassRange(0x2000, 0x200a, BLANK); /* spaces */ + SetCharacterClassRange(0x200b, 0x27ff, IDENT); /* punctuation and symbols */ SetCharacterClassRange(0x2070, 0x207f, 0x2070); /* superscript */ SetCharacterClassRange(0x2080, 0x208f, 0x2080); /* subscript */ - SetCharacterClassRange(0x3000, 0x3000, 32); /* ideographic space */ - SetCharacterClassRange(0x3001, 0x3020, -1); /* ideographic punctuation */ + SetCharacterClassRange(0x3000, 0x3000, BLANK); /* ideographic space */ + SetCharacterClassRange(0x3001, 0x3020, IDENT); /* ideographic punctuation */ SetCharacterClassRange(0x3040, 0x309f, 0x3040); /* Hiragana */ SetCharacterClassRange(0x30a0, 0x30ff, 0x30a0); /* Katakana */ SetCharacterClassRange(0x3300, 0x9fff, 0x4e00); /* CJK Ideographs */ SetCharacterClassRange(0xac00, 0xd7a3, 0xac00); /* Hangul Syllables */ SetCharacterClassRange(0xf900, 0xfaff, 0x4e00); /* CJK Ideographs */ - SetCharacterClassRange(0xfe30, 0xfe6b, -1); /* punctuation forms */ - SetCharacterClassRange(0xff00, 0xff0f, -1); /* half/fullwidth ASCII */ - SetCharacterClassRange(0xff1a, 0xff20, -1); /* half/fullwidth ASCII */ - SetCharacterClassRange(0xff3b, 0xff40, -1); /* half/fullwidth ASCII */ - SetCharacterClassRange(0xff5b, 0xff64, -1); /* half/fullwidth ASCII */ + SetCharacterClassRange(0xfe30, 0xfe6b, IDENT); /* punctuation forms */ + SetCharacterClassRange(0xff00, 0xff0f, IDENT); /* half/fullwidth ASCII */ + SetCharacterClassRange(0xff1a, 0xff20, IDENT); /* half/fullwidth ASCII */ + SetCharacterClassRange(0xff3b, 0xff40, IDENT); /* half/fullwidth ASCII */ + SetCharacterClassRange(0xff5b, 0xff64, IDENT); /* half/fullwidth ASCII */ return; } @@ -127,7 +135,7 @@ init_classtab(void) int CharacterClass(int c) { - int i, cclass = -1; + int i, cclass = IDENT; for (i = classtab[0].first; i <= classtab[0].last; i++) if (classtab[i].first <= c && classtab[i].last >= c) diff --git a/charproc.c b/charproc.c index 3858af5..4c3da05 100644 --- a/charproc.c +++ b/charproc.c @@ -1,4 +1,4 @@ -/* $XTermId: charproc.c,v 1.801 2007/06/27 00:29:49 tom Exp $ */ +/* $XTermId: charproc.c,v 1.810 2007/07/17 21:09:48 tom Exp $ */ /* $XFree86: xc/programs/xterm/charproc.c,v 3.185 2006/06/20 00:42:38 dickey Exp $ */ @@ -133,12 +133,6 @@ in this Software without prior written authorization from The Open Group. #include <charclass.h> #include <xstrings.h> -#if OPT_ZICONBEEP || OPT_TOOLBAR -#define HANDLE_STRUCT_NOTIFY 1 -#else -#define HANDLE_STRUCT_NOTIFY 0 -#endif - static IChar doinput(void); static int set_character_class(char *s); static void FromAlternate(XtermWidget /* xw */ ); @@ -146,9 +140,6 @@ static void RequestResize(XtermWidget termw, int rows, int cols, Bool text); static void SwitchBufs(XtermWidget xw); static void ToAlternate(XtermWidget /* xw */ ); static void VTallocbuf(void); -static void WriteText(XtermWidget xw, - PAIRED_CHARS(Char * str, Char * str2), - Cardinal len); static void ansi_modes(XtermWidget termw, void (*func) (unsigned *p, unsigned mask)); static void bitclr(unsigned *p, unsigned mask); @@ -1536,7 +1527,8 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp) xtermIndex(xw, 1); if (xw->flags & LINEFEED) CarriageReturn(screen); - do_xevents(); + else + do_xevents(); break; case CASE_CBT: @@ -2497,7 +2489,6 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState *sp) TRACE(("CASE_NEL\n")); xtermIndex(xw, 1); CarriageReturn(screen); - do_xevents(); sp->parsestate = sp->groundtable; break; @@ -3341,6 +3332,18 @@ PreeditPosition(TScreen * screen) } #endif +static void +WrapLine(XtermWidget xw) +{ + TScreen *screen = &(xw->screen); + + /* mark that we had to wrap this line */ + ScrnSetFlag(screen, screen->cur_row, LINEWRAPPED); + xtermAutoPrint('\n'); + xtermIndex(xw, 1); + set_cur_col(screen, 0); +} + /* * process a string of characters according to the character set indicated * by charset. worry about end of line conditions (wraparound if selected). @@ -3391,15 +3394,13 @@ dotext(XtermWidget xw, int last_chomp = 0; chars_chomped = 0; - if (screen->do_wrap && (xw->flags & WRAPAROUND)) { - /* mark that we had to wrap this line */ - ScrnSetWrapped(screen, screen->cur_row); - xtermAutoPrint('\n'); - xtermIndex(xw, 1); - set_cur_col(screen, 0); + if (screen->do_wrap) { screen->do_wrap = 0; - width_available = MaxCols(screen) - screen->cur_col; - next_col = screen->cur_col; + if ((xw->flags & WRAPAROUND)) { + WrapLine(xw); + width_available = MaxCols(screen) - screen->cur_col; + next_col = screen->cur_col; + } } while (width_here <= width_available && chars_chomped < (len - offset)) { @@ -3417,8 +3418,9 @@ dotext(XtermWidget xw, break; /* give up - it is too big */ chars_chomped--; width_here -= last_chomp; - if (chars_chomped > 0 || (xw->flags & WRAPAROUND)) + if (chars_chomped > 0) { need_wrap = 1; + } } else if (width_here == width_available) { need_wrap = 1; } else if (chars_chomped != (len - offset)) { @@ -3479,16 +3481,13 @@ dotext(XtermWidget xw, last_col = CurMaxCol(screen, screen->cur_row); this_col = last_col - screen->cur_col + 1; if (this_col <= 1) { - if (screen->do_wrap && (xw->flags & WRAPAROUND)) { - /* mark that we had to wrap this line */ - ScrnSetWrapped(screen, screen->cur_row); - xtermAutoPrint('\n'); - xtermIndex(xw, 1); - set_cur_col(screen, 0); + if (screen->do_wrap) { screen->do_wrap = 0; - this_col = last_col + 1; - } else - this_col = 1; + if ((xw->flags & WRAPAROUND)) { + WrapLine(xw); + } + } + this_col = 1; } if (offset + this_col > len) { this_col = len - offset; @@ -3500,9 +3499,9 @@ dotext(XtermWidget xw, (unsigned) this_col); /* - * the call to WriteText updates screen->cur_col. - * If screen->cur_col != next_col, we must have - * hit the right margin, so set the do_wrap flag. + * The call to WriteText updates screen->cur_col. + * If screen->cur_col is less than next_col, we must have + * hit the right margin - so set the do_wrap flag. */ screen->do_wrap = (screen->cur_col < next_col); } @@ -3510,19 +3509,6 @@ dotext(XtermWidget xw, #endif /* OPT_WIDE_CHARS */ } -#if HANDLE_STRUCT_NOTIFY -/* Flag icon name with "*** " on window output when iconified. - * I'd like to do something like reverse video, but I don't - * know how to tell this to window managers in general. - * - * mapstate can be IsUnmapped, !IsUnmapped, or -1; - * -1 means no change; the other two are set by event handlers - * and indicate a new mapstate. !IsMapped is done in the handler. - * we worry about IsUnmapped when output occurs. -IAN! - */ -static int mapstate = -1; -#endif /* HANDLE_STRUCT_NOTIFY */ - #if OPT_WIDE_CHARS unsigned visual_width(PAIRED_CHARS(Char * str, Char * str2), Cardinal len) @@ -3548,122 +3534,6 @@ visual_width(PAIRED_CHARS(Char * str, Char * str2), Cardinal len) } #endif -/* - * write a string str of length len onto the screen at - * the current cursor position. update cursor position. - */ -static void -WriteText(XtermWidget xw, PAIRED_CHARS(Char * str, Char * str2), Cardinal len) -{ - TScreen *screen = &(xw->screen); - ScrnPtr PAIRED_CHARS(temp_str = 0, temp_str2 = 0); - unsigned test; - unsigned flags = xw->flags; - unsigned fg_bg = makeColorPair(xw->cur_foreground, xw->cur_background); - unsigned cells = visual_width(PAIRED_CHARS(str, str2), len); - GC currentGC; - - TRACE(("WriteText (%2d,%2d) (%d) %3d:%s\n", - screen->cur_row, - screen->cur_col, - curXtermChrSet(xw, screen->cur_row), - len, visibleChars(PAIRED_CHARS(str, str2), len))); - - if (ScrnHaveSelection(screen) - && ScrnIsLineInSelection(screen, INX2ROW(screen, screen->cur_row))) { - ScrnDisownSelection(xw); - } - - if (INX2ROW(screen, screen->cur_row) <= screen->max_row) { - if (screen->cursor_state) - HideCursor(); - - if (flags & INSERT) { - InsertChar(xw, cells); - } - if (!AddToRefresh(screen)) { - - if (screen->scroll_amt) - FlushScroll(xw); - - if (flags & INVISIBLE) { - if (cells > len) { - str = temp_str = TypeMallocN(Char, cells); - if (str == 0) - return; - } - if_OPT_WIDE_CHARS(screen, { - if (cells > len) { - str2 = temp_str2 = TypeMallocN(Char, cells); - } - }); - len = cells; - - memset(str, ' ', len); - if_OPT_WIDE_CHARS(screen, { - if (str2 != 0) - memset(str2, 0, len); - }); - } - - TRACE(("WriteText calling drawXtermText (%d,%d)\n", - screen->cur_col, - screen->cur_row)); - - test = flags; - checkVeryBoldColors(test, xw->cur_foreground); - - /* make sure that the correct GC is current */ - currentGC = updatedXtermGC(xw, flags, fg_bg, False); - - drawXtermText(xw, test & DRAWX_MASK, currentGC, - CurCursorX(screen, screen->cur_row, screen->cur_col), - CursorY(screen, screen->cur_row), - curXtermChrSet(xw, screen->cur_row), - PAIRED_CHARS(str, str2), len, 0); - - resetXtermGC(xw, flags, False); - } - } - - ScreenWrite(xw, PAIRED_CHARS(str, str2), flags, fg_bg, len); - CursorForward(screen, (int) cells); -#if OPT_ZICONBEEP - /* Flag icon name with "***" on window output when iconified. - */ - if (resource.zIconBeep && mapstate == IsUnmapped && !screen->zIconBeep_flagged) { - static char *icon_name; - static Arg args[] = - { - {XtNiconName, (XtArgVal) & icon_name} - }; - - icon_name = NULL; - XtGetValues(toplevel, args, XtNumber(args)); - - if (icon_name != NULL) { - screen->zIconBeep_flagged = True; - ChangeIconName(icon_name); - } - if (resource.zIconBeep > 0) { -#if defined(HAVE_XKB_BELL_EXT) - XkbBell(XtDisplay(toplevel), VShellWindow, resource.zIconBeep, XkbBI_Info); -#else - XBell(XtDisplay(toplevel), resource.zIconBeep); -#endif - } - } - mapstate = -1; -#endif /* OPT_ZICONBEEP */ - if (temp_str != 0) - free(temp_str); - if_OPT_WIDE_CHARS(screen, { - if (temp_str2 != 0) - free(temp_str2); - }); - return; -} - #if HANDLE_STRUCT_NOTIFY /* Flag icon name with "***" on window output when iconified. */ @@ -5416,6 +5286,11 @@ VTInitialize(Widget wrequest, */ bzero((char *) &wnew->screen, sizeof(wnew->screen)); + /* DESCO Sys#67660 + * Zero out the entire "keyboard" component of "wnew" widget. + */ + bzero((char *) &wnew->keyboard, sizeof(wnew->keyboard)); + /* dummy values so that we don't try to Realize the parent shell with height * or width of 0, which is illegal in X. The real size is computed in the * xtermWidget's Realize proc, but the shell's Realize proc is called first, @@ -5809,6 +5684,7 @@ VTInitialize(Widget wrequest, } #endif + init_Ires(screen.utf8_inparse); init_Ires(screen.utf8_mode); init_Ires(screen.max_combining); @@ -6949,11 +6825,12 @@ ShowCursor(void) for (off = OFF_FINAL; off < MAX_PTRS; off += 2) { clo = SCREEN_PTR(screen, screen->cursorp.row, off + 0)[my_col]; chi = SCREEN_PTR(screen, screen->cursorp.row, off + 1)[my_col]; - if (clo || chi) - drawXtermText(xw, (flags & DRAWX_MASK) | NOBACKGROUND, - currentGC, x, y, - curXtermChrSet(xw, screen->cur_row), - PAIRED_CHARS(&clo, &chi), 1, iswide(base)); + if (!(clo || chi)) + break; + drawXtermText(xw, (flags & DRAWX_MASK) | NOBACKGROUND, + currentGC, x, y, + curXtermChrSet(xw, screen->cur_row), + PAIRED_CHARS(&clo, &chi), 1, iswide(base)); } }); #endif @@ -7066,11 +6943,12 @@ HideCursor(void) for (off = OFF_FINAL; off < MAX_PTRS; off += 2) { clo = SCREEN_PTR(screen, screen->cursorp.row, off + 0)[my_col]; chi = SCREEN_PTR(screen, screen->cursorp.row, off + 1)[my_col]; - if (clo || chi) - drawXtermText(xw, (flags & DRAWX_MASK) | NOBACKGROUND, - currentGC, x, y, - curXtermChrSet(xw, screen->cur_row), - PAIRED_CHARS(&clo, &chi), 1, iswide(base)); + if (!(clo || chi)) + break; + drawXtermText(xw, (flags & DRAWX_MASK) | NOBACKGROUND, + currentGC, x, y, + curXtermChrSet(xw, screen->cur_row), + PAIRED_CHARS(&clo, &chi), 1, iswide(base)); } }); #endif diff --git a/config.guess b/config.guess index 1a69546..951383e 100755 --- a/config.guess +++ b/config.guess @@ -4,7 +4,7 @@ # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. -timestamp='2006-12-22' +timestamp='2007-05-17' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -330,7 +330,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; - i86pc:SunOS:5.*:*) + i86pc:SunOS:5.*:* | ix86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) @@ -791,12 +791,15 @@ EOF i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; - x86:Interix*:[3456]*) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; - EM64T:Interix*:[3456]* | authenticamd:Interix*:[3456]*) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; + *:Interix*:[3456]*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + EM64T | authenticamd) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; @@ -1218,6 +1221,9 @@ EOF SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; diff --git a/config.sub b/config.sub index 4b8cc7b..1761d8b 100755 --- a/config.sub +++ b/config.sub @@ -4,7 +4,7 @@ # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. -timestamp='2006-12-08' +timestamp='2007-06-28' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -250,7 +250,7 @@ case $basic_machine in | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore \ + | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ @@ -475,8 +475,8 @@ case $basic_machine in basic_machine=craynv-cray os=-unicosmp ;; - cr16c) - basic_machine=cr16c-unknown + cr16) + basic_machine=cr16-unknown os=-elf ;; crds | unos) @@ -683,6 +683,10 @@ case $basic_machine in basic_machine=i386-pc os=-mingw32 ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; miniframe) basic_machine=m68000-convergent ;; @@ -1222,7 +1226,7 @@ case $os in | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1417,6 +1421,9 @@ case $basic_machine in m68*-cisco) os=-aout ;; + mep-*) + os=-elf + ;; mips*-cisco) os=-elf ;; diff --git a/configure b/configure index 6ca0e1f..0b4c86c 100755 --- a/configure +++ b/configure @@ -5977,19 +5977,31 @@ EOF LIBS="-lutempter $LIBS" fi - test "$cf_cv_have_utempter" = yes && disable_setuid=yes + test "$cf_cv_have_utempter" != yes && use_utempter=no +else + use_utempter=no +fi + +# Some configurations permit (or require) either setuid or setgid mode. +# Let the user decide. +if test "$use_utempter" = yes ; then + if test "${enable_setuid+set}" != set ; then + disable_setuid=yes + test -n "$verbose" && echo " No --disable-setuid option given, force to yes" 1>&6 + + fi fi ### checks for external data -echo "$as_me:5985: checking if external errno is declared" >&5 +echo "$as_me:5997: checking if external errno is declared" >&5 echo $ECHO_N "checking if external errno is declared... $ECHO_C" >&6 if test "${cf_cv_dcl_errno+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 5992 "configure" +#line 6004 "configure" #include "confdefs.h" #ifdef HAVE_STDLIB_H @@ -6007,16 +6019,16 @@ long x = (long) errno } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:6010: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:6022: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:6013: \$? = $ac_status" >&5 + echo "$as_me:6025: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:6016: \"$ac_try\"") >&5 + { (eval echo "$as_me:6028: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:6019: \$? = $ac_status" >&5 + echo "$as_me:6031: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_dcl_errno=yes else @@ -6027,7 +6039,7 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:6030: result: $cf_cv_dcl_errno" >&5 +echo "$as_me:6042: result: $cf_cv_dcl_errno" >&5 echo "${ECHO_T}$cf_cv_dcl_errno" >&6 if test "$cf_cv_dcl_errno" = no ; then @@ -6042,14 +6054,14 @@ fi # It's possible (for near-UNIX clones) that the data doesn't exist -echo "$as_me:6045: checking if external errno exists" >&5 +echo "$as_me:6057: checking if external errno exists" >&5 echo $ECHO_N "checking if external errno exists... $ECHO_C" >&6 if test "${cf_cv_have_errno+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 6052 "configure" +#line 6064 "configure" #include "confdefs.h" #undef errno @@ -6064,16 +6076,16 @@ errno = 2 } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:6067: \"$ac_link\"") >&5 +if { (eval echo "$as_me:6079: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:6070: \$? = $ac_status" >&5 + echo "$as_me:6082: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:6073: \"$ac_try\"") >&5 + { (eval echo "$as_me:6085: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:6076: \$? = $ac_status" >&5 + echo "$as_me:6088: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_have_errno=yes else @@ -6084,7 +6096,7 @@ fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:6087: result: $cf_cv_have_errno" >&5 +echo "$as_me:6099: result: $cf_cv_have_errno" >&5 echo "${ECHO_T}$cf_cv_have_errno" >&6 if test "$cf_cv_have_errno" = yes ; then @@ -6097,7 +6109,7 @@ EOF fi -echo "$as_me:6100: checking for explicit tty group name" >&5 +echo "$as_me:6112: checking for explicit tty group name" >&5 echo $ECHO_N "checking for explicit tty group name... $ECHO_C" >&6 # Check whether --with-tty-group or --without-tty-group was given. @@ -6109,11 +6121,11 @@ else fi; test -z "$cf_tty_group" && cf_tty_group=auto... test "$cf_tty_group" = yes && cf_tty_group=auto... -echo "$as_me:6112: result: $cf_tty_group" >&5 +echo "$as_me:6124: result: $cf_tty_group" >&5 echo "${ECHO_T}$cf_tty_group" >&6 if test "$cf_tty_group" = "auto..." ; then -echo "$as_me:6116: checking for tty group name" >&5 +echo "$as_me:6128: checking for tty group name" >&5 echo $ECHO_N "checking for tty group name... $ECHO_C" >&6 if test "${cf_cv_tty_group_name+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -6166,7 +6178,7 @@ esac fi fi -echo "$as_me:6169: result: $cf_cv_tty_group_name" >&5 +echo "$as_me:6181: result: $cf_cv_tty_group_name" >&5 echo "${ECHO_T}$cf_cv_tty_group_name" >&6 cf_tty_group="$cf_cv_tty_group_name" else @@ -6185,7 +6197,7 @@ EOF # does apply to the device. We cannot perform this test if we are in batch # mode, or if we are cross-compiling. -echo "$as_me:6188: checking if we may use the $cf_tty_group group" >&5 +echo "$as_me:6200: checking if we may use the $cf_tty_group group" >&5 echo $ECHO_N "checking if we may use the $cf_tty_group group... $ECHO_C" >&6 if test "${cf_cv_tty_group+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -6198,7 +6210,7 @@ if test "$cross_compiling" = yes; then cf_cv_tty_group=unknown else cat >conftest.$ac_ext <<_ACEOF -#line 6201 "configure" +#line 6213 "configure" #include "confdefs.h" #include <unistd.h> @@ -6224,15 +6236,15 @@ int main() _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:6227: \"$ac_link\"") >&5 +if { (eval echo "$as_me:6239: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:6230: \$? = $ac_status" >&5 + echo "$as_me:6242: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:6232: \"$ac_try\"") >&5 + { (eval echo "$as_me:6244: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:6235: \$? = $ac_status" >&5 + echo "$as_me:6247: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_tty_group=yes else @@ -6250,11 +6262,11 @@ else fi fi -echo "$as_me:6253: result: $cf_cv_tty_group" >&5 +echo "$as_me:6265: result: $cf_cv_tty_group" >&5 echo "${ECHO_T}$cf_cv_tty_group" >&6 if test $cf_cv_tty_group = no ; then - { echo "$as_me:6257: WARNING: Cannot use $cf_tty_group group" >&5 + { echo "$as_me:6269: WARNING: Cannot use $cf_tty_group group" >&5 echo "$as_me: WARNING: Cannot use $cf_tty_group group" >&2;} else cat >>confdefs.h <<\EOF @@ -6265,13 +6277,13 @@ fi ### checks for system services and user specified options -echo "$as_me:6268: checking for sys/wait.h that is POSIX.1 compatible" >&5 +echo "$as_me:6280: checking for sys/wait.h that is POSIX.1 compatible" >&5 echo $ECHO_N "checking for sys/wait.h that is POSIX.1 compatible... $ECHO_C" >&6 if test "${ac_cv_header_sys_wait_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 6274 "configure" +#line 6286 "configure" #include "confdefs.h" #include <sys/types.h> #include <sys/wait.h> @@ -6293,16 +6305,16 @@ main () -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]