[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xterm: Changes to 'debian-unstable'



 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 <jcristau@debian.org>
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 <jcristau@debian.org>  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 <jcristau@debian.org>
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 -- mkuhn@acm.org -- 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 ()



Reply to: