Skip to content
Browse files

Upgraded to upsream tarball 291

  • Loading branch information...
1 parent 7663929 commit defc6dd5684a12dc8e56cb6973ef973e7a32caa3 @joejulian committed Mar 26, 2013
Showing with 2,656 additions and 1,869 deletions.
  1. +15 −2 INSTALL
  2. +2 −1 MANIFEST
  3. +91 −26 aclocal.m4
  4. +40 −15 button.c
  5. +5 −5 charproc.c
  6. +2,097 −1,562 configure
  7. +2 −11 configure.in
  8. +25 −18 ctlseqs.ms
  9. +17 −7 ctlseqs.txt
  10. +1 −37 input.c
  11. +3 −3 linedata.c
  12. +7 −5 main.c
  13. +3 −2 menu.c
  14. +34 −30 misc.c
  15. +19 −0 package/debian/changelog
  16. +1 −1 package/freebsd/Makefile
  17. +2 −2 package/xterm.spec
  18. +6 −1 precompose.c
  19. +4 −4 ptydata.c
  20. +9 −6 ptyx.h
  21. +4 −11 screen.c
  22. +9 −7 scrollbar.c
  23. +24 −1 trace.c
  24. +13 −1 trace.h
  25. +12 −19 util.c
  26. +3 −3 version.h
  27. +91 −57 wcwidth.c
  28. +27 −25 xstrings.c
  29. +3 −2 xterm.h
  30. +82 −1 xterm.log.html
  31. +2 −2 xterm.man
  32. +3 −2 xtermcfg.hin
View
17 INSTALL
@@ -1,4 +1,4 @@
--- $XTermId: INSTALL,v 1.141 2013/01/06 16:28:21 tom Exp $
+-- $XTermId: INSTALL,v 1.142 2013/02/03 19:36:47 tom Exp $
-------------------------------------------------------------------------------
-- Copyright 1997-2012,2013 by Thomas E. Dickey
--
@@ -215,7 +215,7 @@ The options (in alphabetic order):
type. If you do not need input method (and are troubled by the
warning messages), it is safe to disable this option.
- --disable-leaks test: set to test memory leaks
+ --disable-leaks test: free permanent memory, analyze leaks
Compile-in code which frees memory which might confuse a leak-testing
tool. Normally these chunks of memory are retained as long as xterm
@@ -565,6 +565,14 @@ The options (in alphabetic order):
Use --without-app-defaults or --with-app-defaults=no to disable the
feature.
+ --with-dmalloc test: use Gray Watson's dmalloc library
+
+ Check for and link with dmalloc.
+
+ --with-dbmalloc test: use Conor Cahill's dbmalloc library
+
+ Check for and link with dbmalloc.
+
--with-desktop-category=XXX one or more desktop catgories or auto
This is a list of names. The configure script maps blanks and commas
to semicolons (";") which are used by the desktop utils as a separator.
@@ -706,6 +714,11 @@ The options (in alphabetic order):
If xterm is not installed setuid'd to root, this option is not needed,
since it cannot change the tty device's ownership.
+ --with-valgrind test: use valgrind
+
+ Activate the --disable-leaks option, and ensure that "-g" is added to
+ CFLAGS.
+
--with-xpm=DIR use Xpm library for colored icon, may specify path
Use Xpm library to show colored icon in window decoration, e.g.,
View
3 MANIFEST
@@ -1,4 +1,4 @@
-MANIFEST for xterm-288, version xterm-288
+MANIFEST for xterm-291, version xterm-291
--------------------------------------------------------------------------------
MANIFEST this file
256colres.h resource-definitions for 256-color mode
@@ -85,6 +85,7 @@ util.c miscellaneous utility functions for 'xterm'
uxterm wrapper script to make unicode-xterm
uxterm.desktop sample desktop file for uxterm
uxterm.man manpage for uxterm, from Debian
+version.c xterm package version, used also in resize
version.h version of xterm
vms.c VMS version of xterm's spawn(), etc.
vms.h system headers and definitions for vms.c
View
117 aclocal.m4
@@ -1,4 +1,4 @@
-dnl $XTermId: aclocal.m4,v 1.359 2013/01/03 01:37:48 tom Exp $
+dnl $XTermId: aclocal.m4,v 1.360 2013/02/03 19:30:21 tom Exp $
dnl
dnl ---------------------------------------------------------------------------
dnl
@@ -73,31 +73,6 @@ ifdef([m4_version_compare],
AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_ACVERSION_CHECK version: 3 updated: 2012/10/03 18:39:53
-dnl ------------------
-dnl Conditionally generate script according to whether we're using a given autoconf.
-dnl
-dnl $1 = version to compare against
-dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
-dnl $3 = code to use if AC_ACVERSION is older than $1.
-define([CF_ACVERSION_CHECK],
-[
-ifdef([m4_version_compare],
-[m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
-[CF_ACVERSION_COMPARE(
-AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
-AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53
-dnl --------------------
-dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
-dnl MAJOR2, MINOR2, TERNARY2,
-dnl PRINTABLE2, not FOUND, FOUND)
-define([CF_ACVERSION_COMPARE],
-[ifelse(builtin([eval], [$2 < $5]), 1,
-[ifelse([$8], , ,[$8])],
-[ifelse([$9], , ,[$9])])])dnl
-dnl ---------------------------------------------------------------------------
dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53
dnl --------------------
dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
@@ -500,6 +475,29 @@ AC_SUBST(SHOW_CC)
AC_SUBST(ECHO_CC)
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_DISABLE_LEAKS version: 7 updated: 2012/10/02 20:55:03
+dnl ----------------
+dnl Combine no-leak checks with the libraries or tools that are used for the
+dnl checks.
+AC_DEFUN([CF_DISABLE_LEAKS],[
+
+AC_REQUIRE([CF_WITH_DMALLOC])
+AC_REQUIRE([CF_WITH_DBMALLOC])
+AC_REQUIRE([CF_WITH_VALGRIND])
+
+AC_MSG_CHECKING(if you want to perform memory-leak testing)
+AC_ARG_ENABLE(leaks,
+ [ --disable-leaks test: free permanent memory, analyze leaks],
+ [if test "x$enableval" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi],
+ : ${with_no_leaks:=no})
+AC_MSG_RESULT($with_no_leaks)
+
+if test "$with_no_leaks" = yes ; then
+ AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
+ AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_DISABLE_RPATH_HACK version: 2 updated: 2011/02/13 13:31:33
dnl ---------------------
dnl The rpath-hack makes it simpler to build programs, particularly with the
@@ -1480,6 +1478,35 @@ AC_DEFUN([CF_MSG_LOG],[
echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_NO_LEAKS_OPTION version: 5 updated: 2012/10/02 20:55:03
+dnl ------------------
+dnl see CF_WITH_NO_LEAKS
+AC_DEFUN([CF_NO_LEAKS_OPTION],[
+AC_MSG_CHECKING(if you want to use $1 for testing)
+AC_ARG_WITH($1,
+ [$2],
+ [AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
+ $4
+])
+ : ${with_cflags:=-g}
+ : ${with_no_leaks:=yes}
+ with_$1=yes],
+ [with_$1=])
+AC_MSG_RESULT(${with_$1:-no})
+
+case .$with_cflags in #(vi
+.*-g*)
+ case .$CFLAGS in #(vi
+ .*-g*) #(vi
+ ;;
+ *)
+ CF_ADD_CFLAGS([-g])
+ ;;
+ esac
+ ;;
+esac
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_PATHSEP version: 6 updated: 2012/09/29 18:38:12
dnl ----------
dnl Provide a value for the $PATH and similar separator (or amend the value
@@ -2987,6 +3014,21 @@ fi
AC_SUBST(no_appsdir)
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_WITH_DBMALLOC version: 7 updated: 2010/06/21 17:26:47
+dnl ----------------
+dnl Configure-option for dbmalloc. The optional parameter is used to override
+dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
+AC_DEFUN([CF_WITH_DBMALLOC],[
+CF_NO_LEAKS_OPTION(dbmalloc,
+ [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
+ [USE_DBMALLOC])
+
+if test "$with_dbmalloc" = yes ; then
+ AC_CHECK_HEADER(dbmalloc.h,
+ [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse([$1],,[],[,$1]))])
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_WITH_DESKTOP_CATEGORY version: 4 updated: 2013/01/01 10:50:14
dnl ------------------------
dnl Taking into account the absence of standardization of desktop categories
@@ -3086,6 +3128,21 @@ then
fi
])
dnl ---------------------------------------------------------------------------
+dnl CF_WITH_DMALLOC version: 7 updated: 2010/06/21 17:26:47
+dnl ---------------
+dnl Configure-option for dmalloc. The optional parameter is used to override
+dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
+AC_DEFUN([CF_WITH_DMALLOC],[
+CF_NO_LEAKS_OPTION(dmalloc,
+ [ --with-dmalloc test: use Gray Watson's dmalloc library],
+ [USE_DMALLOC])
+
+if test "$with_dmalloc" = yes ; then
+ AC_CHECK_HEADER(dmalloc.h,
+ [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse([$1],,[],[,$1]))])
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_WITH_ICONDIR version: 5 updated: 2012/07/22 09:18:02
dnl ---------------
dnl Handle configure option "--with-icondir", setting these shell variables:
@@ -3463,6 +3520,14 @@ fi
AC_SUBST(no_pixmapdir)
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
+dnl ----------------
+AC_DEFUN([CF_WITH_VALGRIND],[
+CF_NO_LEAKS_OPTION(valgrind,
+ [ --with-valgrind test: use valgrind],
+ [USE_VALGRIND])
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_WITH_XPM version: 3 updated: 2012/10/04 06:57:36
dnl -----------
dnl Test for Xpm library, update compiler/loader flags if it is wanted and
View
55 button.c
@@ -1,7 +1,7 @@
-/* $XTermId: button.c,v 1.446 2013/01/08 09:34:42 tom Exp $ */
+/* $XTermId: button.c,v 1.451 2013/02/06 09:56:15 tom Exp $ */
/*
- * Copyright 1999-2011,2012 by Thomas E. Dickey
+ * Copyright 1999-2012,2013 by Thomas E. Dickey
*
* All Rights Reserved
*
@@ -1320,10 +1320,11 @@ xtermUtf8ToTextList(XtermWidget xw,
for (i = 0; i < (*text_list_count); ++i) {
data = (Char *) (*text_list)[i];
size = strlen((*text_list)[i]) + 1;
- data = UTF8toLatin1(screen, data, size, &size);
- memcpy(tmp, data, size + 1);
- new_text_list[i] = tmp;
- tmp += size + 1;
+ if ((data = UTF8toLatin1(screen, data, size, &size)) != 0) {
+ memcpy(tmp, data, size + 1);
+ new_text_list[i] = tmp;
+ tmp += size + 1;
+ }
}
XFreeStringList((*text_list));
*text_list = new_text_list;
@@ -4188,15 +4189,21 @@ BtnCode(XButtonEvent * event, int button)
{
int result = (int) (32 + (KeyState(event->state) << 2));
+ if (event->type == MotionNotify)
+ result += 32;
+
if (button < 0 || button > 5) {
result += 3;
} else {
if (button > 3)
result += (64 - 4);
- if (event->type == MotionNotify)
- result += 32;
result += button;
}
+ TRACE(("BtnCode button %d, %s state " FMT_MODIFIER_NAMES " ->%#x\n",
+ button,
+ visibleEventType(event->type),
+ ARG_MODIFIER_NAMES(event->state),
+ result));
return result;
}
@@ -4237,6 +4244,22 @@ EmitButtonCode(TScreen * screen,
return count;
}
+static int
+FirstBitN(int bits)
+{
+ int result = -1;
+ if (bits > 0) {
+ result = 0;
+ while (!(bits & 1)) {
+ bits /= 2;
+ ++result;
+ }
+ }
+ return result;
+}
+
+#define ButtonBit(button) ((button >= 0) ? (1 << (button)) : 0)
+
#define EMIT_BUTTON(button) EmitButtonCode(screen, line, count, event, button)
static void
@@ -4313,7 +4336,7 @@ EditorButton(XtermWidget xw, XButtonEvent * event)
/* Button-Motion events */
switch (event->type) {
case ButtonPress:
- screen->mouse_button = button;
+ screen->mouse_button |= ButtonBit(button);
count = EMIT_BUTTON(button);
break;
case ButtonRelease:
@@ -4323,6 +4346,7 @@ EditorButton(XtermWidget xw, XButtonEvent * event)
* release for buttons 1..3 to a -1, which will be later mapped
* into a "0" (some button was released).
*/
+ screen->mouse_button &= ~ButtonBit(button);
if (button < 3) {
switch (screen->extend_coords) {
case SET_SGR_EXT_MODE_MOUSE:
@@ -4333,7 +4357,6 @@ EditorButton(XtermWidget xw, XButtonEvent * event)
break;
}
}
- screen->mouse_button = button;
count = EMIT_BUTTON(button);
break;
case MotionNotify:
@@ -4344,7 +4367,7 @@ EditorButton(XtermWidget xw, XButtonEvent * event)
&& (col == screen->mouse_col)) {
changed = False;
} else {
- count = EMIT_BUTTON(screen->mouse_button);
+ count = EMIT_BUTTON(FirstBitN(screen->mouse_button));
}
break;
default:
@@ -4815,9 +4838,11 @@ expandFormat(XtermWidget xw,
static void
executeCommand(char **argv)
{
- if (fork() == 0) {
- execvp(argv[0], argv);
- exit(EXIT_FAILURE);
+ if (argv != 0 && argv[0] != 0) {
+ if (fork() == 0) {
+ execvp(argv[0], argv);
+ exit(EXIT_FAILURE);
+ }
}
}
@@ -4957,8 +4982,8 @@ HandleInsertSelectable(Widget w,
free(exps);
}
free(data);
- free(temp);
}
+ free(temp);
}
}
}
View
10 charproc.c
@@ -1,7 +1,7 @@
-/* $XTermId: charproc.c,v 1.1280 2013/01/08 01:37:28 tom Exp $ */
+/* $XTermId: charproc.c,v 1.1283 2013/02/05 01:47:58 tom Exp $ */
/*
- * Copyright 1999-2011,2012 by Thomas E. Dickey
+ * Copyright 1999-2012,2013 by Thomas E. Dickey
*
* All Rights Reserved
*
@@ -4352,7 +4352,7 @@ in_put(XtermWidget xw)
#endif
}
if (need_cleanup)
- Cleanup(0);
+ NormalExit();
#if OPT_DOUBLE_BUFFER
if (screen->needSwap) {
XdbeSwapInfo swap;
@@ -7029,7 +7029,7 @@ set_flags_from_list(char *target,
Cardinal n;
int value = -1;
- while (*source != '\0') {
+ while (!IsEmpty(source)) {
char *next = ParseList(&source);
Boolean found = False;
@@ -7261,7 +7261,7 @@ VTInitialize(Widget wrequest,
TRACE((" Actual foreground 0x%06lx\n", wnew->old_foreground));
TRACE((" Actual background 0x%06lx\n", wnew->old_background));
- TScreenOf(wnew)->mouse_button = -1;
+ TScreenOf(wnew)->mouse_button = 0;
TScreenOf(wnew)->mouse_row = -1;
TScreenOf(wnew)->mouse_col = -1;
View
3,659 configure
2,097 additions, 1,562 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
13 configure.in
@@ -1,4 +1,4 @@
-dnl $XTermId: configure.in,v 1.311 2013/01/03 01:31:07 tom Exp $
+dnl $XTermId: configure.in,v 1.312 2013/02/03 19:30:48 tom Exp $
dnl
dnl -----------------------------------------------------------------------------
dnl this file is part of xterm
@@ -928,16 +928,7 @@ if test "$enable_trace" = yes ; then
EXTRAOBJS="$EXTRAOBJS trace.o"
fi
-AC_MSG_CHECKING(if you want to test memory leaks)
-CF_ARG_DISABLE(leaks,
- [ --disable-leaks test: set to test memory leaks],
- [disable_leaks=yes],
- [disable_leaks=no])
-AC_MSG_RESULT($disable_leaks)
-if test "$disable_leaks" = yes ; then
- AC_DEFINE(NO_LEAKS,1,[Define to 1 to test memory leaks])
-fi
-
+CF_DISABLE_LEAKS
CF_DISABLE_ECHO
AC_MSG_CHECKING(if you want magic cookie emulation)
View
43 ctlseqs.ms
@@ -1,6 +1,6 @@
.\"#! troff -ms $1 -*- Nroff -*-
.\" "Xterm Control Sequences" document
-.\" $XTermId: ctlseqs.ms,v 1.281 2013/01/01 21:33:58 tom Exp $
+.\" $XTermId: ctlseqs.ms,v 1.285 2013/02/07 01:59:09 tom Exp $
.\"
.\"
.\" Copyright 1996-2012,2013 by Thomas E. Dickey
@@ -69,8 +69,8 @@
.\"
.ds XT XTerm
.ds xt xterm
-.ds LF Patch #288
-.ds RF 2013/01/01
+.ds LF Patch #289
+.ds RF 2013/02/06
.\"
.if n .pl 9999v \" no page breaks in nroff
.ND
@@ -111,6 +111,8 @@
.de Ss
.LP
.B
+\\$*
+.br
..
.ds CH \" as nothing
.ds LH \*(XT Control Sequences
@@ -409,8 +411,7 @@ discussion of character sets.
.
.St
.\"
-.Ss
-Single-character functions
+.Ss Single-character functions
.\"
.IP \\*(Be
Bell (Ctrl-G).
@@ -453,8 +454,7 @@ Vertical Tab (Ctrl-K). This is treated the same as LF.
.\"
.\"
.St
-.Ss
-Controls beginning with \*(Es
+.Ss Controls beginning with \*(Es
.LP
This excludes controls where \*(Es is part of a 7-bit equivalent to 8-bit C1 controls, ordered by the final character(s).
.\"
@@ -598,16 +598,14 @@ Invoke the G1 Character Set as GR (LS1R).
.Ed
.
.St
-.Ss
-Application Program-Control functions
+.Ss Application Program-Control functions
.IP \\*(AP\\*(Pt\\*s\\*(ST
None. \fIxterm\fP implements no \*(AP functions; \*(Pt is ignored.
\*(Pt need not be printable characters.
.Ed
.
.St
-.Ss
-Device-Control functions
+.Ss Device-Control functions
.IP \\*(Dc\\*(Ps\\*;\\*(Ps\\*|\\*(Pt\\*s\\*(ST
User-Defined Keys (DECUDK).
The first parameter:
@@ -670,8 +668,7 @@ The strings are encoded in hexadecimal (2 digits per character).
.Ed
.\"
.St
-.Ss
-Functions using \*(Cs, ordered by the final character(s)
+.Ss Functions using \*(Cs, ordered by the final character(s)
.IP \\*(Cs\\*(Ps\\*s\\*@
Insert \*(Ps (Blank) Character(s) (default = 1) (ICH).
.
@@ -1487,8 +1484,7 @@ Delete \*(Ps Column(s) (default = 1) (DECDC), VT420 and up.
.Ed
.
.St
-.Ss
-Operating System Controls
+.Ss Operating System Controls
.
.IP \\*(Os\\*(Ps\\*s\\*;\\*(Pt\\*s\\*(ST
.IP \\*(Os\\*(Ps\\*s\\*;\\*(Pt\\*s\\*(Be
@@ -1639,8 +1635,7 @@ The \fIdynamic colors\fR can also be reset to their default (resource) values:
\*(Ps = \*1\*1\*8 \(-> Reset Tektronix cursor color.
.
.St
-.Ss
-Privacy Message
+.Ss Privacy Message
.IP \\*(PM\\*(Pt\\*s\\*(ST
\fIxterm\fP implements no \*(PM functions; \*(Pt is ignored.
\*(Pt need not be printable characters.
@@ -2154,6 +2149,7 @@ For example, \*! specifies the value 1.
The upper left character position on the terminal is denoted as 1,1.
This scheme dates back to X10,
though the normal mouse-tracking (from X11) is more elaborate.
+.Ss X10 compatbility mode
.lP
X10 compatibility mode sends an escape sequence only on button press,
encoding the location and the mouse button pressed.
@@ -2165,6 +2161,7 @@ On button press, \fIxterm\fP sends
.bP
\*(Cx and \*(Cy are the x and y coordinates of the mouse when the
button was pressed.
+.Ss Normal tracking mode
.lP
Normal tracking mode sends an escape sequence on both button press and
release.
@@ -2186,6 +2183,7 @@ and is not necessarily the "Meta" key (see \fIxmodmap\fP).
.bP
\*(Cx and \*(Cy are the x and y coordinates of the mouse event, encoded as
in X10 mode.
+.Ss Wheel mice
.lP
Wheel mice may return buttons 4 and 5.
Those buttons are represented by the same event codes
@@ -2202,6 +2200,7 @@ then cursor up/down controls are sent when the terminal is displaying
the alternate screen.
The initial state of Alternate Scroll mode is set
using the \fBalternateScroll\fP resource.
+.Ss Highlight tracking
.lP
Mouse highlight tracking notifies a program of a button press, receives a
range of lines from the program, highlights the region covered by
@@ -2249,6 +2248,7 @@ ending character positions of the region.
give the location of the mouse at button up, which may not be over a
character.
.RE
+.Ss Button-event tracking
.lP
Button-event tracking is essentially the same as normal tracking, but
\fIxterm\fP also reports button-motion events.
@@ -2269,16 +2269,19 @@ down is reported as \*(Cs\*M\*@\*(Cx\*(Cy.
Similarly, motion with button 3
down is reported as \*(Cs\*M\*(cB\*(Cx\*(Cy.
(\ \*(cB = 32 + 2 (button 3) + 32 (motion indicator)\ ).
+.Ss Any-event tracking
.lP
Any-event mode is the same as button-event mode, except that all motion
events are reported, even if no mouse button is down.
It is enabled by specifying 1003 to DECSET.
+.Ss FocusIn/FocusOut
.lP
FocusIn/FocusOut can be combined with any of the mouse events since
it uses a different protocol.
When set, it causes \fIxterm\fP to send
\*(Cs\*I when the terminal gains focus, and
\*(Cs\*O when it loses focus.
+.Ss Extended coordinates
.lP
The original X10 mouse protocol limits the \*(Cx and \*(Cy ordinates
to 223 (=255\ -\ 32).
@@ -2309,13 +2312,17 @@ encoded button value,
the \*(Cx and \*(Cy ordinates and a final character which
is \*M for button press
and \*m for button release.
-.IP
+.RS
+.bP
The encoded button value in this case does not add 32 since
that was useful only in the X10 scheme for ensuring that the
byte containing the button value is a printable code.
+.bP
The modifiers are encoded in the same way.
+.bP
A different final character is used for button release
to resolve the X10 ambiguity regarding which button was released.
+.RE
.IP
The highlight tracking responses are also modified to an SGR-like format,
using the same SGR-style scheme and button-encodings.
View
24 ctlseqs.txt
@@ -21,7 +21,7 @@
Thomas Dickey
XFree86 Project (1996-2006)
invisible-island.net (2006-2012)
- updated for XTerm Patch #288 (2013/01/01)
+ updated for XTerm Patch #289 (2013/02/06)
@@ -1460,6 +1460,7 @@ parameters in a single character as value+32. For example, ! specifies
the value 1. The upper left character position on the terminal is
denoted as 1,1. This scheme dates back to X10, though the normal mouse-
tracking (from X11) is more elaborate.
+X10 compatbility mode
X10 compatibility mode sends an escape sequence only on button press,
encoding the location and the mouse button pressed. It is enabled by
@@ -1468,6 +1469,7 @@ CbCxCy (6 characters).
o Cb is button-1.
o Cx and Cy are the x and y coordinates of the mouse when the button
was pressed.
+Normal tracking mode
Normal tracking mode sends an escape sequence on both button press and
release. Modifier key (shift, ctrl, meta) information is also sent. It
@@ -1484,6 +1486,7 @@ o The next three bits encode the modifiers which were down when the
the mod1 mask, and is not necessarily the "Meta" key (see xmodmap).
o Cx and Cy are the x and y coordinates of the mouse event, encoded as
in X10 mode.
+Wheel mice
Wheel mice may return buttons 4 and 5. Those buttons are represented by
the same event codes as buttons 1 and 2 respectively, except that 64 is
@@ -1494,6 +1497,7 @@ window, as if the scrollbar was used. However if Alternate Scroll mode
is set, then cursor up/down controls are sent when the terminal is dis-
playing the alternate screen. The initial state of Alternate Scroll
mode is set using the alternateScroll resource.
+Highlight tracking
Mouse highlight tracking notifies a program of a button press, receives
a range of lines from the program, highlights the region covered by the
@@ -1525,6 +1529,7 @@ o otherwise:
character positions of the region.
- mousex and mousey give the location of the mouse at button up,
which may not be over a character.
+Button-event tracking
Button-event tracking is essentially the same as normal tracking, but
xterm also reports button-motion events. Motion events are reported
@@ -1539,14 +1544,17 @@ o The other bits of the event code specify button and modifier keys as
(motion indicator) ). Similarly, motion with button 3 down is
reported as CSI M B CxCy. ( B = 32 + 2 (button 3) + 32 (motion
indicator) ).
+Any-event tracking
Any-event mode is the same as button-event mode, except that all motion
events are reported, even if no mouse button is down. It is enabled by
specifying 1003 to DECSET.
+FocusIn/FocusOut
FocusIn/FocusOut can be combined with any of the mouse events since it
uses a different protocol. When set, it causes xterm to send CSI I
when the terminal gains focus, and CSI O when it loses focus.
+Extended coordinates
The original X10 mouse protocol limits the Cx and Cy ordinates to 223
(=255 - 32). Xterm supports more than one scheme for extending this
@@ -1573,12 +1581,14 @@ SGR (1006)
semicolon-separated encoded button value, the Cx and Cy ordi-
nates and a final character which is M for button press and m
for button release.
- The encoded button value in this case does not add 32 since
- that was useful only in the X10 scheme for ensuring that the
- byte containing the button value is a printable code. The
- modifiers are encoded in the same way. A different final
- character is used for button release to resolve the X10 ambi-
- guity regarding which button was released.
+ o The encoded button value in this case does not add 32
+ since that was useful only in the X10 scheme for ensuring
+ that the byte containing the button value is a printable
+ code.
+ o The modifiers are encoded in the same way.
+ o A different final character is used for button release to
+ resolve the X10 ambiguity regarding which button was
+ released.
The highlight tracking responses are also modified to an SGR-
like format, using the same SGR-style scheme and button-encod-
ings.
View
38 input.c
@@ -1,4 +1,4 @@
-/* $XTermId: input.c,v 1.344 2012/11/23 18:43:35 tom Exp $ */
+/* $XTermId: input.c,v 1.345 2013/02/06 09:51:33 tom Exp $ */
/*
* Copyright 1999-2011,2012 by Thomas E. Dickey
@@ -143,42 +143,6 @@ static void sunfuncvalue(ANSI *, KEY_DATA *);
static void hpfuncvalue(ANSI *, KEY_DATA *);
static void scofuncvalue(ANSI *, KEY_DATA *);
-#if OPT_TRACE
-static const char *
-ModifierName(unsigned modifier)
-{
- const char *s = "";
- if (modifier & ShiftMask)
- s = " Shift";
- else if (modifier & LockMask)
- s = " Lock";
- else if (modifier & ControlMask)
- s = " Control";
- else if (modifier & Mod1Mask)
- s = " Mod1";
- else if (modifier & Mod2Mask)
- s = " Mod2";
- else if (modifier & Mod3Mask)
- s = " Mod3";
- else if (modifier & Mod4Mask)
- s = " Mod4";
- else if (modifier & Mod5Mask)
- s = " Mod5";
- return s;
-}
-
-#define FMT_MODIFIER_NAMES "%s%s%s%s%s%s%s%s"
-#define ARG_MODIFIER_NAMES(state) \
- ModifierName(state & ShiftMask), \
- ModifierName(state & LockMask), \
- ModifierName(state & ControlMask), \
- ModifierName(state & Mod1Mask), \
- ModifierName(state & Mod2Mask), \
- ModifierName(state & Mod3Mask), \
- ModifierName(state & Mod4Mask), \
- ModifierName(state & Mod5Mask)
-#endif
-
static void
AdjustAfterInput(XtermWidget xw)
{
View
6 linedata.c
@@ -1,7 +1,7 @@
-/* $XTermId: linedata.c,v 1.81 2012/09/21 20:40:21 tom Exp $ */
+/* $XTermId: linedata.c,v 1.82 2013/02/08 00:11:16 tom Exp $ */
/*
- * Copyright 2009-2010,2011 by Thomas E. Dickey
+ * Copyright 2009-2012,2013 by Thomas E. Dickey
*
* All Rights Reserved
*
@@ -31,7 +31,6 @@
*/
#include <xterm.h>
-#include <data.h> /* FIXME - needed for 'term' */
#include <assert.h>
@@ -64,6 +63,7 @@ getLineData(TScreen * screen, int row)
result = (LineData *) scrnHeadAddr(screen, buffer, (unsigned) row);
if (result != 0) {
#if 1 /* FIXME - these should be done in setupLineData, etc. */
+ result->lineSize = (Dimension) MaxCols(screen);
#if OPT_WIDE_CHARS
if (screen->wide_chars) {
result->combSize = (Char) screen->max_combining;
View
12 main.c
@@ -1,4 +1,4 @@
-/* $XTermId: main.c,v 1.714 2013/01/01 13:32:39 tom Exp $ */
+/* $XTermId: main.c,v 1.716 2013/02/03 23:10:05 tom Exp $ */
/*
* Copyright 2002-2012,2013 by Thomas E. Dickey
@@ -2000,7 +2000,9 @@ main(int argc, char *argv[]ENVP_ARG)
for (n = 1; n < argc; n++) {
if ((option_ptr = parseArg(&n, argv, &option_value)) == 0) {
- if (isOption(argv[n])) {
+ if (argv[n] == 0) {
+ break;
+ } else if (isOption(argv[n])) {
Syntax(argv[n]);
} else if (explicit_shname != 0) {
xtermWarning("Explicit shell already was %s\n", explicit_shname);
@@ -4517,7 +4519,6 @@ spawnXTerm(XtermWidget xw)
}
} else {
xtermSetenv("SHELL", explicit_shname);
- free(explicit_shname);
}
if (access(shell_path, X_OK) != 0) {
xtermPerror("Cannot use '%s' as shell", shell_path);
@@ -4767,8 +4768,9 @@ Exit(int n)
struct UTMP_STR *utptr;
/* don't do this more than once */
- if (xterm_exiting)
- return;
+ if (xterm_exiting) {
+ exit(n);
+ }
xterm_exiting = True;
#ifdef PUCC_PTYD
View
5 menu.c
@@ -1,7 +1,7 @@
-/* $XTermId: menu.c,v 1.311 2012/11/27 01:30:52 tom Exp $ */
+/* $XTermId: menu.c,v 1.313 2013/02/03 21:53:58 tom Exp $ */
/*
- * Copyright 1999-2011,2012 by Thomas E. Dickey
+ * Copyright 1999-2012,2013 by Thomas E. Dickey
*
* All Rights Reserved
*
@@ -1639,6 +1639,7 @@ do_vtfont(Widget gw GCC_UNUSED,
char *entryname = (char *) closure;
int i;
+ TRACE(("do_vtfont(%s)\n", entryname));
for (i = 0; i < NMENUFONTS; i++) {
if (strcmp(entryname, fontMenuEntries[i].name) == 0) {
SetVTFont(xw, i, True, NULL);
View
64 misc.c
@@ -1,4 +1,4 @@
-/* $XTermId: misc.c,v 1.657 2013/01/09 01:30:47 tom Exp $ */
+/* $XTermId: misc.c,v 1.658 2013/02/03 23:18:38 tom Exp $ */
/*
* Copyright 1999-2012,2013 by Thomas E. Dickey
@@ -553,7 +553,7 @@ xevents(void)
XtInputMask input_mask;
if (need_cleanup)
- Cleanup(0);
+ NormalExit();
if (screen->scroll_amt)
FlushScroll(xw);
@@ -1832,7 +1832,7 @@ creat_as(uid_t uid, gid_t gid, Bool append, char *pathname, unsigned mode)
*/
do
if (waited == TScreenOf(term)->pid)
- Cleanup(0);
+ NormalExit();
while ((waited = nonblocking_wait()) > 0) ;
#endif /* HAVE_WAITPID */
#ifndef WIFEXITED
@@ -4919,44 +4919,48 @@ SysError(int code)
Cleanup(code);
}
-/*
- * cleanup by sending SIGHUP to client processes
- */
void
-Cleanup(int code)
+NormalExit(void)
{
static Bool cleaning;
- TScreen *screen = TScreenOf(term);
/*
* Process "-hold" and session cleanup only for a normal exit.
*/
- if (code == 0) {
- if (cleaning) {
- hold_screen = 0;
- return;
- }
-
- cleaning = True;
- need_cleanup = False;
+ if (cleaning) {
+ hold_screen = 0;
+ return;
+ }
- TRACE(("Cleanup %d\n", code));
+ cleaning = True;
+ need_cleanup = False;
- if (hold_screen) {
- hold_screen = 2;
- while (hold_screen) {
- xevents();
- Sleep(10);
- }
+ if (hold_screen) {
+ hold_screen = 2;
+ while (hold_screen) {
+ xevents();
+ Sleep(10);
}
+ }
#if OPT_SESSION_MGT
- if (resource.sessionMgt) {
- XtVaSetValues(toplevel,
- XtNjoinSession, False,
- (void *) 0);
- }
-#endif
+ if (resource.sessionMgt) {
+ XtVaSetValues(toplevel,
+ XtNjoinSession, False,
+ (void *) 0);
}
+#endif
+ Cleanup(0);
+}
+
+/*
+ * cleanup by sending SIGHUP to client processes
+ */
+void
+Cleanup(int code)
+{
+ TScreen *screen = TScreenOf(term);
+
+ TRACE(("Cleanup %d\n", code));
if (screen->pid > 1) {
(void) kill_process_group(screen->pid, SIGHUP);
@@ -5638,7 +5642,7 @@ die_callback(Widget w GCC_UNUSED,
XtPointer client_data GCC_UNUSED,
XtPointer call_data GCC_UNUSED)
{
- Cleanup(0);
+ NormalExit();
}
static void
View
19 package/debian/changelog
@@ -1,3 +1,22 @@
+xterm-dev (291) unstable; urgency=low
+
+ * Fix a different #282 change (Redhat #874327).
+
+ -- Thomas E. Dickey <dickey@invisible-island.net> Tue, 26 Feb 2013 19:09:32 -0500
+
+xterm-dev (290) unstable; urgency=low
+
+ * Fix incomplete revert of #282 change.
+
+ -- Thomas E. Dickey <dickey@invisible-island.net> Tue, 12 Feb 2013 19:48:21 -0500
+
+xterm-dev (289) unstable; urgency=low
+
+ * Miscellaneous fixes.
+ * Fix regression with XTERM_SHELL feature.
+
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 03 Feb 2013 13:59:20 -0500
+
xterm-dev (288) unstable; urgency=low
* Miscellaneous fixes.
View
2 package/freebsd/Makefile
@@ -5,7 +5,7 @@
# and "make makesum".
PORTNAME= xterm
-PORTVERSION= 286
+PORTVERSION= 291
CATEGORIES= x11
MASTER_SITES= ftp://invisible-island.net/xterm/ \
CRITICAL
View
4 package/xterm.spec
@@ -1,7 +1,7 @@
-# $XTermId: xterm.spec,v 1.42 2013/01/01 12:24:40 tom Exp $
+# $XTermId: xterm.spec,v 1.45 2013/02/27 00:09:35 tom Exp $
Summary: X terminal emulator (development version)
Name: xterm-dev
-Version: 288
+Version: 291
Release: 1
License: X11
Group: User Interface/X
View
7 precompose.c
@@ -4,7 +4,7 @@
* DO NOT EDIT BY HAND! This is generated by the script
* unicode/make-precompose.sh
*/
-/* $XTermId: precompose.c,v 1.8 2007/02/05 01:06:36 Thomas.Wolff Exp $ */
+/* $XTermId: precompose.c,v 1.9 2013/02/03 17:06:01 tom Exp $ */
/* $XFree86$ */
#include <precompose.h>
@@ -1014,6 +1014,11 @@ static struct {
{ 0x30FE, 0x30FD, 0x3099},
{ 0xFB2C, 0xFB49, 0x05C1},
{ 0xFB2D, 0xFB49, 0x05C2},
+{ 0x1109A, 0x11099, 0x110BA},
+{ 0x1109C, 0x1109B, 0x110BA},
+{ 0x110AB, 0x110A5, 0x110BA},
+{ 0x1112E, 0x11131, 0x11127},
+{ 0x1112F, 0x11132, 0x11127},
{ 0x1D15E, 0x1D157, 0x1D165},
{ 0x1D15F, 0x1D158, 0x1D165},
{ 0x1D160, 0x1D15F, 0x1D16E},
View
8 ptydata.c
@@ -1,4 +1,4 @@
-/* $XTermId: ptydata.c,v 1.102 2013/01/06 14:58:13 tom Exp $ */
+/* $XTermId: ptydata.c,v 1.103 2013/02/03 23:17:07 tom Exp $ */
/*
* Copyright 1999-2011,2013 by Thomas E. Dickey
@@ -203,21 +203,21 @@ readPtyData(XtermWidget xw, PtySelect * select_mask, PtyData * data)
*/
if (size <= 0) {
if (save_err == EIO || save_err == 0)
- Cleanup(0);
+ NormalExit();
else if (!E_TEST(save_err))
Panic("input: read returned unexpected error (%d)\n", save_err);
size = 0;
}
#else /* !f*ugly */
if (size < 0) {
if (save_err == EIO)
- Cleanup(0);
+ NormalExit();
else if (!E_TEST(save_err))
Panic("input: read returned unexpected error (%d)\n", save_err);
size = 0;
} else if (size == 0) {
#if defined(__FreeBSD__)
- Cleanup(0);
+ NormalExit();
#else
Panic("input: read returned zero\n", 0);
#endif
View
15 ptyx.h
@@ -1,4 +1,4 @@
-/* $XTermId: ptyx.h,v 1.760 2013/01/06 14:58:13 tom Exp $ */
+/* $XTermId: ptyx.h,v 1.762 2013/02/13 00:42:21 tom Exp $ */
/*
* Copyright 1999-2012,2013 by Thomas E. Dickey
@@ -862,13 +862,17 @@ typedef enum {
, MOUSE_FG /* mouse foreground */
, MOUSE_BG /* mouse background */
#if OPT_TEK4014
- , TEK_FG /* tektronix foreground */
+ , TEK_FG = 5 /* tektronix foreground */
, TEK_BG /* tektronix background */
- , TEK_CURSOR /* tektronix cursor */
#endif
#if OPT_HIGHLIGHT_COLOR
- , HIGHLIGHT_BG /* highlight background */
- , HIGHLIGHT_FG /* highlight foreground */
+ , HIGHLIGHT_BG = 7 /* highlight background */
+#endif
+#if OPT_TEK4014
+ , TEK_CURSOR = 8 /* tektronix cursor */
+#endif
+#if OPT_HIGHLIGHT_COLOR
+ , HIGHLIGHT_FG = 9 /* highlight foreground */
#endif
, NCOLORS /* total number of colors */
} TermColors;
@@ -1893,7 +1897,6 @@ typedef struct {
* Working variables for getLineData().
*/
size_t lineExtra; /* extra space for combining chars */
- Dimension widestLine; /* length of longest LineData */
/*
* Pointer to the current visible buffer.
*/
View
15 screen.c
@@ -1,7 +1,7 @@
-/* $XTermId: screen.c,v 1.473 2013/01/08 23:42:52 tom Exp $ */
+/* $XTermId: screen.c,v 1.475 2013/02/13 00:42:30 tom Exp $ */
/*
- * Copyright 1999-2011,2012 by Thomas E. Dickey
+ * Copyright 1999-2012,2013 by Thomas E. Dickey
*
* All Rights Reserved
*
@@ -328,7 +328,8 @@ allocScrnData(TScreen * screen, unsigned nrow, unsigned ncol)
AlignValue(ncol);
length = ((nrow + 1) * sizeofScrnRow(screen, ncol));
- if ((result = (Char *) calloc(length, sizeof(Char))) == 0)
+ if (length == 0
+ || (result = (Char *) calloc(length, sizeof(Char))) == 0)
SysError(ERROR_SCALLOC2);
TRACE(("allocScrnData %ux%u -> %lu -> %p..%p\n",
@@ -446,10 +447,6 @@ Reallocate(XtermWidget xw,
return 0;
}
- if (screen->widestLine < ncol)
- screen->widestLine = (Dimension) ncol;
- ncol = screen->widestLine;
-
oldBufData = *sbufaddr;
TRACE(("Reallocate %dx%d -> %dx%d\n", oldrow, MaxCols(screen), nrow, ncol));
@@ -549,10 +546,6 @@ ReallocateBufOffsets(XtermWidget xw,
assert(nrow != 0);
assert(ncol != 0);
- if (screen->widestLine < ncol)
- screen->widestLine = (Dimension) ncol;
- ncol = screen->widestLine;
-
oldBufData = *sbufaddr;
oldBufHead = *sbuf;
View
16 scrollbar.c
@@ -1,7 +1,7 @@
-/* $XTermId: scrollbar.c,v 1.194 2013/01/06 22:03:21 tom Exp $ */
+/* $XTermId: scrollbar.c,v 1.196 2013/02/26 23:36:05 tom Exp $ */
/*
- * Copyright 2000-2011,2012 by Thomas E. Dickey
+ * Copyright 2000-2012,2013 by Thomas E. Dickey
*
* All Rights Reserved
*
@@ -697,10 +697,12 @@ AmountToScroll(Widget w, String * params, Cardinal nparams)
static void
AlternateScroll(Widget w, long amount)
{
- XtermWidget xw = (XtermWidget) w;
- TScreen *screen = TScreenOf(xw);
+ XtermWidget xw;
+ TScreen *screen;
- if (screen->alternateScroll && screen->whichBuf) {
+ if ((xw = getXtermWidget(w)) != 0 &&
+ (screen = TScreenOf(xw)) != 0 &&
+ screen->alternateScroll && screen->whichBuf) {
ANSI reply;
amount /= FontHeight(screen);
@@ -709,10 +711,10 @@ AlternateScroll(Widget w, long amount)
? ANSI_SS3
: ANSI_CSI);
if (amount > 0) {
- reply.a_final = 'A';
+ reply.a_final = 'B';
} else {
amount = -amount;
- reply.a_final = 'B';
+ reply.a_final = 'A';
}
while (amount-- > 0) {
unparseseq(xw, &reply);
View
25 trace.c
@@ -1,4 +1,4 @@
-/* $XTermId: trace.c,v 1.144 2013/01/06 16:28:21 tom Exp $ */
+/* $XTermId: trace.c,v 1.145 2013/02/06 09:51:17 tom Exp $ */
/*
* Copyright 1997-2012,2013 by Thomas E. Dickey
@@ -750,6 +750,29 @@ no_error(Display * dpy GCC_UNUSED, XErrorEvent * event GCC_UNUSED)
return 1;
}
+const char *
+ModifierName(unsigned modifier)
+{
+ const char *s = "";
+ if (modifier & ShiftMask)
+ s = " Shift";
+ else if (modifier & LockMask)
+ s = " Lock";
+ else if (modifier & ControlMask)
+ s = " Control";
+ else if (modifier & Mod1Mask)
+ s = " Mod1";
+ else if (modifier & Mod2Mask)
+ s = " Mod2";
+ else if (modifier & Mod3Mask)
+ s = " Mod3";
+ else if (modifier & Mod4Mask)
+ s = " Mod4";
+ else if (modifier & Mod5Mask)
+ s = " Mod5";
+ return s;
+}
+
void
TraceTranslations(const char *name, Widget w)
{
View
14 trace.h
@@ -1,4 +1,4 @@
-/* $XTermId: trace.h,v 1.67 2012/11/22 20:22:15 tom Exp $ */
+/* $XTermId: trace.h,v 1.68 2013/02/06 09:52:14 tom Exp $ */
/*
* Copyright 1997-2011,2012 by Thomas E. Dickey
@@ -116,6 +116,18 @@ extern XtGeometryResult TraceResizeRequest(const char * /* fn */, int /* ln */,
(reqwide), (reqhigh), \
(gotwide), (gothigh))
+extern const char * ModifierName(unsigned /* modifier */);
+#define FMT_MODIFIER_NAMES "%s%s%s%s%s%s%s%s"
+#define ARG_MODIFIER_NAMES(state) \
+ ModifierName(state & ShiftMask), \
+ ModifierName(state & LockMask), \
+ ModifierName(state & ControlMask), \
+ ModifierName(state & Mod1Mask), \
+ ModifierName(state & Mod2Mask), \
+ ModifierName(state & Mod3Mask), \
+ ModifierName(state & Mod4Mask), \
+ ModifierName(state & Mod5Mask)
+
#else
#define REQ_RESIZE(w, reqwide, reqhigh, gotwide, gothigh) \
View
31 util.c
@@ -1,7 +1,7 @@
-/* $XTermId: util.c,v 1.598 2012/10/05 00:26:28 tom Exp $ */
+/* $XTermId: util.c,v 1.600 2013/02/04 00:46:58 tom Exp $ */
/*
- * Copyright 1999-2011,2012 by Thomas E. Dickey
+ * Copyright 1999-2012,2013 by Thomas E. Dickey
*
* All Rights Reserved
*
@@ -3541,24 +3541,17 @@ drawXtermText(XtermWidget xw,
(unsigned) (last - first), on_wide);
}
#if OPT_WIDE_CHARS
- if (ucs_workaround(xw, ch, flags, gc,
- x, y,
- chrset, on_wide)) {
- /*
- * if true, we drew at least one cell whether or not it is
- * printable
- */
- if (ch_width <= 0)
- ch_width = 1;
- } else
-#endif
- {
- if (ch_width <= 0)
- ch_width = 1;
- xtermDrawBoxChar(xw, ch, flags, gc,
- x, y,
- ch_width);
+ /*
+ * One way or another, we will draw at least one cell.
+ */
+ if (ch_width <= 0)
+ ch_width = 1;
+ if (!ucs_workaround(xw, ch, flags, gc, x, y, chrset, on_wide)) {
+ xtermDrawBoxChar(xw, ch, flags, gc, x, y, ch_width);
}
+#else
+ xtermDrawBoxChar(xw, ch, flags, gc, x, y, ch_width);
+#endif
x += (ch_width * FontWidth(screen));
first = last + 1;
drewBoxes = True;
View
6 version.h
@@ -1,4 +1,4 @@
-/* $XTermId: version.h,v 1.356 2013/01/09 10:10:35 tom Exp $ */
+/* $XTermId: version.h,v 1.360 2013/02/26 23:48:28 tom Exp $ */
/*
* Copyright 1998-2012,2013 by Thomas E. Dickey
@@ -38,8 +38,8 @@
* version of X to which this version of xterm has been built. The resulting
* number in parentheses is my patch number (Thomas E. Dickey).
*/
-#define XTERM_PATCH 288
-#define XTERM_DATE 2013-01-09
+#define XTERM_PATCH 291
+#define XTERM_DATE 2013-02-26
#ifndef __vendorversion__
#define __vendorversion__ "XTerm"
View
148 wcwidth.c
@@ -1,4 +1,4 @@
-/* $XTermId: wcwidth.c,v 1.22 2009/02/13 19:53:12 tom Exp $ */
+/* $XTermId: wcwidth.c,v 1.24 2013/02/03 18:54:31 tom Exp $ */
/* $XFree86: xc/programs/xterm/wcwidth.c,v 1.9 2006/06/19 00:36:52 dickey Exp $ */
@@ -132,54 +132,83 @@ int mk_wcwidth(wchar_t ucs)
* uniset +cat=Me +cat=Mn +cat=Cf -00AD +1160-11FF +200B c
*/
static const struct interval combining[] = {
- { 0x0300, 0x036F }, { 0x0483, 0x0486 }, { 0x0488, 0x0489 },
- { 0x0591, 0x05BD }, { 0x05BF, 0x05BF }, { 0x05C1, 0x05C2 },
- { 0x05C4, 0x05C5 }, { 0x05C7, 0x05C7 }, { 0x0600, 0x0603 },
- { 0x0610, 0x0615 }, { 0x064B, 0x065E }, { 0x0670, 0x0670 },
- { 0x06D6, 0x06E4 }, { 0x06E7, 0x06E8 }, { 0x06EA, 0x06ED },
+ { 0x0300, 0x036F }, { 0x0483, 0x0489 }, { 0x0591, 0x05BD },
+ { 0x05BF, 0x05BF }, { 0x05C1, 0x05C2 }, { 0x05C4, 0x05C5 },
+ { 0x05C7, 0x05C7 }, { 0x0600, 0x0604 }, { 0x0610, 0x061A },
+ { 0x064B, 0x065F }, { 0x0670, 0x0670 }, { 0x06D6, 0x06DD },
+ { 0x06DF, 0x06E4 }, { 0x06E7, 0x06E8 }, { 0x06EA, 0x06ED },
{ 0x070F, 0x070F }, { 0x0711, 0x0711 }, { 0x0730, 0x074A },
- { 0x07A6, 0x07B0 }, { 0x07EB, 0x07F3 }, { 0x0901, 0x0902 },
- { 0x093C, 0x093C }, { 0x0941, 0x0948 }, { 0x094D, 0x094D },
- { 0x0951, 0x0954 }, { 0x0962, 0x0963 }, { 0x0981, 0x0981 },
- { 0x09BC, 0x09BC }, { 0x09C1, 0x09C4 }, { 0x09CD, 0x09CD },
- { 0x09E2, 0x09E3 }, { 0x0A01, 0x0A02 }, { 0x0A3C, 0x0A3C },
- { 0x0A41, 0x0A42 }, { 0x0A47, 0x0A48 }, { 0x0A4B, 0x0A4D },
- { 0x0A70, 0x0A71 }, { 0x0A81, 0x0A82 }, { 0x0ABC, 0x0ABC },
+ { 0x07A6, 0x07B0 }, { 0x07EB, 0x07F3 }, { 0x0816, 0x0819 },
+ { 0x081B, 0x0823 }, { 0x0825, 0x0827 }, { 0x0829, 0x082D },
+ { 0x0859, 0x085B }, { 0x08E4, 0x08FE }, { 0x0900, 0x0902 },
+ { 0x093A, 0x093A }, { 0x093C, 0x093C }, { 0x0941, 0x0948 },
+ { 0x094D, 0x094D }, { 0x0951, 0x0957 }, { 0x0962, 0x0963 },
+ { 0x0981, 0x0981 }, { 0x09BC, 0x09BC }, { 0x09C1, 0x09C4 },
+ { 0x09CD, 0x09CD }, { 0x09E2, 0x09E3 }, { 0x0A01, 0x0A02 },
+ { 0x0A3C, 0x0A3C }, { 0x0A41, 0x0A42 }, { 0x0A47, 0x0A48 },
+ { 0x0A4B, 0x0A4D }, { 0x0A51, 0x0A51 }, { 0x0A70, 0x0A71 },
+ { 0x0A75, 0x0A75 }, { 0x0A81, 0x0A82 }, { 0x0ABC, 0x0ABC },
{ 0x0AC1, 0x0AC5 }, { 0x0AC7, 0x0AC8 }, { 0x0ACD, 0x0ACD },
{ 0x0AE2, 0x0AE3 }, { 0x0B01, 0x0B01 }, { 0x0B3C, 0x0B3C },
- { 0x0B3F, 0x0B3F }, { 0x0B41, 0x0B43 }, { 0x0B4D, 0x0B4D },
- { 0x0B56, 0x0B56 }, { 0x0B82, 0x0B82 }, { 0x0BC0, 0x0BC0 },
- { 0x0BCD, 0x0BCD }, { 0x0C3E, 0x0C40 }, { 0x0C46, 0x0C48 },
- { 0x0C4A, 0x0C4D }, { 0x0C55, 0x0C56 }, { 0x0CBC, 0x0CBC },
- { 0x0CBF, 0x0CBF }, { 0x0CC6, 0x0CC6 }, { 0x0CCC, 0x0CCD },
- { 0x0CE2, 0x0CE3 }, { 0x0D41, 0x0D43 }, { 0x0D4D, 0x0D4D },
+ { 0x0B3F, 0x0B3F }, { 0x0B41, 0x0B44 }, { 0x0B4D, 0x0B4D },
+ { 0x0B56, 0x0B56 }, { 0x0B62, 0x0B63 }, { 0x0B82, 0x0B82 },
+ { 0x0BC0, 0x0BC0 }, { 0x0BCD, 0x0BCD }, { 0x0C3E, 0x0C40 },
+ { 0x0C46, 0x0C48 }, { 0x0C4A, 0x0C4D }, { 0x0C55, 0x0C56 },
+ { 0x0C62, 0x0C63 }, { 0x0CBC, 0x0CBC }, { 0x0CBF, 0x0CBF },
+ { 0x0CC6, 0x0CC6 }, { 0x0CCC, 0x0CCD }, { 0x0CE2, 0x0CE3 },
+ { 0x0D41, 0x0D44 }, { 0x0D4D, 0x0D4D }, { 0x0D62, 0x0D63 },
{ 0x0DCA, 0x0DCA }, { 0x0DD2, 0x0DD4 }, { 0x0DD6, 0x0DD6 },
{ 0x0E31, 0x0E31 }, { 0x0E34, 0x0E3A }, { 0x0E47, 0x0E4E },
{ 0x0EB1, 0x0EB1 }, { 0x0EB4, 0x0EB9 }, { 0x0EBB, 0x0EBC },
{ 0x0EC8, 0x0ECD }, { 0x0F18, 0x0F19 }, { 0x0F35, 0x0F35 },
{ 0x0F37, 0x0F37 }, { 0x0F39, 0x0F39 }, { 0x0F71, 0x0F7E },
- { 0x0F80, 0x0F84 }, { 0x0F86, 0x0F87 }, { 0x0F90, 0x0F97 },
+ { 0x0F80, 0x0F84 }, { 0x0F86, 0x0F87 }, { 0x0F8D, 0x0F97 },
{ 0x0F99, 0x0FBC }, { 0x0FC6, 0x0FC6 }, { 0x102D, 0x1030 },
- { 0x1032, 0x1032 }, { 0x1036, 0x1037 }, { 0x1039, 0x1039 },
- { 0x1058, 0x1059 }, { 0x1160, 0x11FF }, { 0x135F, 0x135F },
+ { 0x1032, 0x1037 }, { 0x1039, 0x103A }, { 0x103D, 0x103E },
+ { 0x1058, 0x1059 }, { 0x105E, 0x1060 }, { 0x1071, 0x1074 },
+ { 0x1082, 0x1082 }, { 0x1085, 0x1086 }, { 0x108D, 0x108D },
+ { 0x109D, 0x109D }, { 0x1160, 0x11FF }, { 0x135D, 0x135F },
{ 0x1712, 0x1714 }, { 0x1732, 0x1734 }, { 0x1752, 0x1753 },
{ 0x1772, 0x1773 }, { 0x17B4, 0x17B5 }, { 0x17B7, 0x17BD },
{ 0x17C6, 0x17C6 }, { 0x17C9, 0x17D3 }, { 0x17DD, 0x17DD },
{ 0x180B, 0x180D }, { 0x18A9, 0x18A9 }, { 0x1920, 0x1922 },
{ 0x1927, 0x1928 }, { 0x1932, 0x1932 }, { 0x1939, 0x193B },
- { 0x1A17, 0x1A18 }, { 0x1B00, 0x1B03 }, { 0x1B34, 0x1B34 },
- { 0x1B36, 0x1B3A }, { 0x1B3C, 0x1B3C }, { 0x1B42, 0x1B42 },
- { 0x1B6B, 0x1B73 }, { 0x1DC0, 0x1DCA }, { 0x1DFE, 0x1DFF },
- { 0x200B, 0x200F }, { 0x202A, 0x202E }, { 0x2060, 0x2063 },
- { 0x206A, 0x206F }, { 0x20D0, 0x20EF }, { 0x302A, 0x302F },
- { 0x3099, 0x309A }, { 0xA806, 0xA806 }, { 0xA80B, 0xA80B },
- { 0xA825, 0xA826 }, { 0xFB1E, 0xFB1E }, { 0xFE00, 0xFE0F },
- { 0xFE20, 0xFE23 }, { 0xFEFF, 0xFEFF }, { 0xFFF9, 0xFFFB },
+ { 0x1A17, 0x1A18 }, { 0x1A56, 0x1A56 }, { 0x1A58, 0x1A5E },
+ { 0x1A60, 0x1A60 }, { 0x1A62, 0x1A62 }, { 0x1A65, 0x1A6C },
+ { 0x1A73, 0x1A7C }, { 0x1A7F, 0x1A7F }, { 0x1B00, 0x1B03 },
+ { 0x1B34, 0x1B34 }, { 0x1B36, 0x1B3A }, { 0x1B3C, 0x1B3C },
+ { 0x1B42, 0x1B42 }, { 0x1B6B, 0x1B73 }, { 0x1B80, 0x1B81 },
+ { 0x1BA2, 0x1BA5 }, { 0x1BA8, 0x1BA9 }, { 0x1BAB, 0x1BAB },
+ { 0x1BE6, 0x1BE6 }, { 0x1BE8, 0x1BE9 }, { 0x1BED, 0x1BED },
+ { 0x1BEF, 0x1BF1 }, { 0x1C2C, 0x1C33 }, { 0x1C36, 0x1C37 },
+ { 0x1CD0, 0x1CD2 }, { 0x1CD4, 0x1CE0 }, { 0x1CE2, 0x1CE8 },
+ { 0x1CED, 0x1CED }, { 0x1CF4, 0x1CF4 }, { 0x1DC0, 0x1DE6 },
+ { 0x1DFC, 0x1DFF }, { 0x200B, 0x200F }, { 0x202A, 0x202E },
+ { 0x2060, 0x2064 }, { 0x206A, 0x206F }, { 0x20D0, 0x20F0 },
+ { 0x2CEF, 0x2CF1 }, { 0x2D7F, 0x2D7F }, { 0x2DE0, 0x2DFF },
+ { 0x302A, 0x302D }, { 0x3099, 0x309A }, { 0xA66F, 0xA672 },
+ { 0xA674, 0xA67D }, { 0xA69F, 0xA69F }, { 0xA6F0, 0xA6F1 },
+ { 0xA802, 0xA802 }, { 0xA806, 0xA806 }, { 0xA80B, 0xA80B },
+ { 0xA825, 0xA826 }, { 0xA8C4, 0xA8C4 }, { 0xA8E0, 0xA8F1 },
+ { 0xA926, 0xA92D }, { 0xA947, 0xA951 }, { 0xA980, 0xA982 },
+ { 0xA9B3, 0xA9B3 }, { 0xA9B6, 0xA9B9 }, { 0xA9BC, 0xA9BC },
+ { 0xAA29, 0xAA2E }, { 0xAA31, 0xAA32 }, { 0xAA35, 0xAA36 },
+ { 0xAA43, 0xAA43 }, { 0xAA4C, 0xAA4C }, { 0xAAB0, 0xAAB0 },
+ { 0xAAB2, 0xAAB4 }, { 0xAAB7, 0xAAB8 }, { 0xAABE, 0xAABF },
+ { 0xAAC1, 0xAAC1 }, { 0xAAEC, 0xAAED }, { 0xAAF6, 0xAAF6 },
+ { 0xABE5, 0xABE5 }, { 0xABE8, 0xABE8 }, { 0xABED, 0xABED },
+ { 0xFB1E, 0xFB1E }, { 0xFE00, 0xFE0F }, { 0xFE20, 0xFE26 },
+ { 0xFEFF, 0xFEFF }, { 0xFFF9, 0xFFFB }, { 0x101FD, 0x101FD },
{ 0x10A01, 0x10A03 }, { 0x10A05, 0x10A06 }, { 0x10A0C, 0x10A0F },
- { 0x10A38, 0x10A3A }, { 0x10A3F, 0x10A3F }, { 0x1D167, 0x1D169 },
- { 0x1D173, 0x1D182 }, { 0x1D185, 0x1D18B }, { 0x1D1AA, 0x1D1AD },
- { 0x1D242, 0x1D244 }, { 0xE0001, 0xE0001 }, { 0xE0020, 0xE007F },
- { 0xE0100, 0xE01EF }
+ { 0x10A38, 0x10A3A }, { 0x10A3F, 0x10A3F }, { 0x11001, 0x11001 },
+ { 0x11038, 0x11046 }, { 0x11080, 0x11081 }, { 0x110B3, 0x110B6 },
+ { 0x110B9, 0x110BA }, { 0x110BD, 0x110BD }, { 0x11100, 0x11102 },
+ { 0x11127, 0x1112B }, { 0x1112D, 0x11134 }, { 0x11180, 0x11181 },
+ { 0x111B6, 0x111BE }, { 0x116AB, 0x116AB }, { 0x116AD, 0x116AD },
+ { 0x116B0, 0x116B5 }, { 0x116B7, 0x116B7 }, { 0x16F8F, 0x16F92 },
+ { 0x1D167, 0x1D169 }, { 0x1D173, 0x1D182 }, { 0x1D185, 0x1D18B },
+ { 0x1D1AA, 0x1D1AD }, { 0x1D242, 0x1D244 }, { 0xE0001, 0xE0001 },
+ { 0xE0020, 0xE007F }, { 0xE0100, 0xE01EF }
};
/* test for 8-bit control characters */
@@ -283,29 +312,34 @@ int mk_wcwidth_cjk(wchar_t ucs)
{ 0x2113, 0x2113 }, { 0x2116, 0x2116 }, { 0x2121, 0x2122 },
{ 0x2126, 0x2126 }, { 0x212B, 0x212B }, { 0x2153, 0x2154 },
{ 0x215B, 0x215E }, { 0x2160, 0x216B }, { 0x2170, 0x2179 },
- { 0x2190, 0x2199 }, { 0x21B8, 0x21B9 }, { 0x21D2, 0x21D2 },
- { 0x21D4, 0x21D4 }, { 0x21E7, 0x21E7 }, { 0x2200, 0x2200 },
- { 0x2202, 0x2203 }, { 0x2207, 0x2208 }, { 0x220B, 0x220B },
- { 0x220F, 0x220F }, { 0x2211, 0x2211 }, { 0x2215, 0x2215 },
- { 0x221A, 0x221A }, { 0x221D, 0x2220 }, { 0x2223, 0x2223 },
- { 0x2225, 0x2225 }, { 0x2227, 0x222C }, { 0x222E, 0x222E },
- { 0x2234, 0x2237 }, { 0x223C, 0x223D }, { 0x2248, 0x2248 },
- { 0x224C, 0x224C }, { 0x2252, 0x2252 }, { 0x2260, 0x2261 },
- { 0x2264, 0x2267 }, { 0x226A, 0x226B }, { 0x226E, 0x226F },
- { 0x2282, 0x2283 }, { 0x2286, 0x2287 }, { 0x2295, 0x2295 },
- { 0x2299, 0x2299 }, { 0x22A5, 0x22A5 }, { 0x22BF, 0x22BF },
- { 0x2312, 0x2312 }, { 0x2460, 0x24E9 }, { 0x24EB, 0x254B },
- { 0x2550, 0x2573 }, { 0x2580, 0x258F }, { 0x2592, 0x2595 },
- { 0x25A0, 0x25A1 }, { 0x25A3, 0x25A9 }, { 0x25B2, 0x25B3 },
- { 0x25B6, 0x25B7 }, { 0x25BC, 0x25BD }, { 0x25C0, 0x25C1 },
- { 0x25C6, 0x25C8 }, { 0x25CB, 0x25CB }, { 0x25CE, 0x25D1 },
- { 0x25E2, 0x25E5 }, { 0x25EF, 0x25EF }, { 0x2605, 0x2606 },
- { 0x2609, 0x2609 }, { 0x260E, 0x260F }, { 0x2614, 0x2615 },
- { 0x261C, 0x261C }, { 0x261E, 0x261E }, { 0x2640, 0x2640 },
- { 0x2642, 0x2642 }, { 0x2660, 0x2661 }, { 0x2663, 0x2665 },
- { 0x2667, 0x266A }, { 0x266C, 0x266D }, { 0x266F, 0x266F },
- { 0x273D, 0x273D }, { 0x2776, 0x277F }, { 0xE000, 0xF8FF },
- { 0xFFFD, 0xFFFD }, { 0xF0000, 0xFFFFD }, { 0x100000, 0x10FFFD }
+ { 0x2189, 0x2189 }, { 0x2190, 0x2199 }, { 0x21B8, 0x21B9 },
+ { 0x21D2, 0x21D2 }, { 0x21D4, 0x21D4 }, { 0x21E7, 0x21E7 },
+ { 0x2200, 0x2200 }, { 0x2202, 0x2203 }, { 0x2207, 0x2208 },
+ { 0x220B, 0x220B }, { 0x220F, 0x220F }, { 0x2211, 0x2211 },
+ { 0x2215, 0x2215 }, { 0x221A, 0x221A }, { 0x221D, 0x2220 },
+ { 0x2223, 0x2223 }, { 0x2225, 0x2225 }, { 0x2227, 0x222C },
+ { 0x222E, 0x222E }, { 0x2234, 0x2237 }, { 0x223C, 0x223D },
+ { 0x2248, 0x2248 }, { 0x224C, 0x224C }, { 0x2252, 0x2252 },
+ { 0x2260, 0x2261 }, { 0x2264, 0x2267 }, { 0x226A, 0x226B },
+ { 0x226E, 0x226F }, { 0x2282, 0x2283 }, { 0x2286, 0x2287 },
+ { 0x2295, 0x2295 }, { 0x2299, 0x2299 }, { 0x22A5, 0x22A5 },
+ { 0x22BF, 0x22BF }, { 0x2312, 0x2312 }, { 0x2460, 0x24E9 },
+ { 0x24EB, 0x254B }, { 0x2550, 0x2573 }, { 0x2580, 0x258F },
+ { 0x2592, 0x2595 }, { 0x25A0, 0x25A1 }, { 0x25A3, 0x25A9 },
+ { 0x25B2, 0x25B3 }, { 0x25B6, 0x25B7 }, { 0x25BC, 0x25BD },
+ { 0x25C0, 0x25C1 }, { 0x25C6, 0x25C8 }, { 0x25CB, 0x25CB },
+ { 0x25CE, 0x25D1 }, { 0x25E2, 0x25E5 }, { 0x25EF, 0x25EF },
+ { 0x2605, 0x2606 }, { 0x2609, 0x2609 }, { 0x260E, 0x260F },
+ { 0x2614, 0x2615 }, { 0x261C, 0x261C }, { 0x261E, 0x261E },
+ { 0x2640, 0x2640 }, { 0x2642, 0x2642 }, { 0x2660, 0x2661 },
+ { 0x2663, 0x2665 }, { 0x2667, 0x266A }, { 0x266C, 0x266D },
+ { 0x266F, 0x266F }, { 0x269E, 0x269F }, { 0x26BE, 0x26BF },
+ { 0x26C4, 0x26CD }, { 0x26CF, 0x26E1 }, { 0x26E3, 0x26E3 },
+ { 0x26E8, 0x26FF }, { 0x273D, 0x273D }, { 0x2757, 0x2757 },
+ { 0x2776, 0x277F }, { 0x2B55, 0x2B59 }, { 0x3248, 0x324F },
+ { 0xE000, 0xF8FF }, { 0xFFFD, 0xFFFD }, { 0x1F100, 0x1F10A },
+ { 0x1F110, 0x1F12D }, { 0x1F130, 0x1F169 }, { 0x1F170, 0x1F19A },
+ { 0xF0000, 0xFFFFD }, { 0x100000, 0x10FFFD }
};
/* binary search in table of non-spacing characters */
View
52 xstrings.c
@@ -1,4 +1,4 @@
-/* $XTermId: xstrings.c,v 1.56 2013/01/09 01:43:09 tom Exp $ */
+/* $XTermId: xstrings.c,v 1.57 2013/02/03 22:11:25 tom Exp $ */
/*
* Copyright 2000-2012,2013 by Thomas E. Dickey
@@ -326,32 +326,34 @@ x_splitargs(const char *command)
int state;
int pass;
- for (pass = 0; pass < 2; ++pass) {
- for (n = count = 0, state = 0; first[n] != '\0'; ++n) {
- switch (state) {
- case 0:
- if (!isspace(CharOf(first[n]))) {
- state = 1;
- if (pass)
- result[count] = blob + n;
- ++count;
- } else {
- blob[n] = '\0';
+ if (blob != 0) {
+ for (pass = 0; pass < 2; ++pass) {
+ for (n = count = 0, state = 0; first[n] != '\0'; ++n) {
+ switch (state) {
+ case 0:
+ if (!isspace(CharOf(first[n]))) {
+ state = 1;
+ if (pass)
+ result[count] = blob + n;
+ ++count;
+ } else {
+ blob[n] = '\0';
+ }
+ break;
+ case 1:
+ if (isspace(CharOf(first[n]))) {
+ blob[n] = '\0';
+ state = 0;
+ }
+ break;
}
- break;
- case 1:
- if (isspace(CharOf(first[n]))) {
- blob[n] = '\0';
- state = 0;
- }
- break;
}
- }
- if (!pass) {
- result = TypeCallocN(char *, count + 1);
- if (!result) {
- free(blob);
- break;
+ if (!pass) {
+ result = TypeCallocN(char *, count + 1);
+ if (!result) {
+ free(blob);
+ break;
+ }
}
}
}
View
5 xterm.h
@@ -1,4 +1,4 @@
-/* $XTermId: xterm.h,v 1.715 2013/01/06 15:15:38 tom Exp $ */
+/* $XTermId: xterm.h,v 1.716 2013/02/03 23:21:00 tom Exp $ */
/*
* Copyright 1999-2012,2013 by Thomas E. Dickey
@@ -1007,7 +1007,7 @@ extern void ChangeGroup(XtermWidget /* xw */, const char * /* attribute */, char
extern void ChangeIconName (XtermWidget /* xw */, char * /* name */);
extern void ChangeTitle (XtermWidget /* xw */, char * /* name */);
extern void ChangeXprop (char * /* name */);
-extern void Cleanup (int /* code */);
+extern void Cleanup (int /* code */) GCC_NORETURN;
extern void HandleBellPropertyChange PROTO_XT_EV_HANDLER_ARGS;
extern void HandleEightBitKeyPressed PROTO_XT_ACTIONS_ARGS;
extern void HandleEnterWindow PROTO_XT_EV_HANDLER_ARGS;
@@ -1017,6 +1017,7 @@ extern void HandleKeyPressed PROTO_XT_ACTIONS_ARGS;
extern void HandleLeaveWindow PROTO_XT_EV_HANDLER_ARGS;
extern void HandleSpawnTerminal PROTO_XT_ACTIONS_ARGS;
extern void HandleStringEvent PROTO_XT_ACTIONS_ARGS;
+extern void NormalExit (void);
extern void Panic (const char * /* s */, int /* a */);
extern void Redraw (void);
extern void ReverseOldColors (void);
View
83 xterm.log.html
@@ -31,7 +31,7 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
*****************************************************************************
- $XTermId: xterm.log.html,v 1.1301 2013/01/09 10:10:06 tom Exp $
+ $XTermId: xterm.log.html,v 1.1319 2013/02/27 00:19:22 tom Exp $
-->
<html>
@@ -70,6 +70,12 @@
the latest version of this file.</p>
<ul>
+ <li><a href="#xterm_291">Patch #291 - 2013/02/26</a></li>
+
+ <li><a href="#xterm_290">Patch #290 - 2013/02/12</a></li>
+
+ <li><a href="#xterm_289">Patch #289 - 2013/02/08</a></li>
+
<li><a href="#xterm_288">Patch #288 - 2013/01/09</a></li>
<li><a href="#xterm_287">Patch #287 - 2012/11/25</a></li>
@@ -859,6 +865,81 @@
<li><a href="#xterm_01">Patch #1 - 1996/1/6</a></li>
</ul>
+ <h1><a name="xterm_291" id="xterm_291">Patch #291 -
+ 2013/02/26</a></h1>
+
+ <ul>
+ <li>add validity check for xterm widget parameter to
+ <code>AlternateScroll</code> function, needed to handle wheel
+ mouse events in the scrollbar area since <a href=
+ "#xterm_282">patch #282</a> changes which introduced
+ <code>alternateScroll</code> feature (Redhat #874327).</li>
+ </ul>
+
+ <h1><a name="xterm_290" id="xterm_290">Patch #290 -
+ 2013/02/12</a></h1>
+
+ <ul>
+ <li>revert of <a href="#xterm_282">patch #282</a> change was
+ incomplete (report by Jim Reisert).</li>
+
+ <li>fix typo in manpage (report by Vincent Lefevre).</li>
+ </ul>
+
+ <h1><a name="xterm_289" id="xterm_289">Patch #289 -
+ 2013/02/08</a></h1>
+
+ <ul>
+ <li>revert the <a href="#xterm_282">patch #282</a> change which
+ restored "lost" text after shrinking/growing the screen size.
+ If the screen was updated between the two resizing operations,
+ unexpected text might be shown at the end (report/testcase by
+ Joe Peterson).</li>
+
+ <li>reverse the arrow-keys sent for
+ <code>alternateScroll</code> to match the usage in browsers
+ (suggested by Dieter Roelants).</li>
+
+ <li>modify mouse reports to consistently indicate motion events
+ whether or not a button is pressed. Old behavior (since
+ <a href="#xterm_127">patch #127</a> modified encoding for wheel
+ mouse) showed only that the button was released if no button
+ had been pressed (report by Andy Koppe).</li>
+
+ <li>correct and improve behavior for SGR 1006 mouse protocol on
+ button release in any-event mode. Initial implementation in
+ <a href="#xterm_277">patch #277</a> left internal state showing
+ the last button pressed when reporting motion events. It now
+ keeps track of all buttons which have been pressed and
+ released, showing the lowest remaining button by number in the
+ response (reports by Hayaki Saito, Andy Koppe).</li>
+
+ <li>fix inconsistency between <code>TermColors</code> and
+ <code>OscTextColors</code> enums which interchanged values for
+ tektronix cursor color and highlight foreground in control
+ sequences in <a href="#xterm_225">patch #225</a> (report/patch
+ by Peder Stray).</li>
+
+ <li>fix inconsistent use of noreturn-attribute in
+ <code>Exit</code> function which interfered with analysis by
+ clang.</li>
+
+ <li>remove incorrect <code>free</code> used in computation of
+ <code>XTERM_SHELL</code> variable, from Coverity fixes in
+ <a href="#xterm_288">patch #288</a> (FreeBSD #175782).</li>
+
+ <li>add <code>--with-valgrind</code> option to configure script
+ for consistency with my other programs.</li>
+
+ <li>update table of ambiguous width characters in wcwidth.c
+ based on Unicode 6.2.0</li>
+
+ <li>update table of combining characters in wcwidth.c based on
+ Unicode 6.2.0</li>
+
+ <li>update precompose.c based on Unicode 6.2.0</li>
+ </ul>
+
<h1><a name="xterm_288" id="xterm_288">Patch #288 -
2013/01/09</a></h1>
View
4 xterm.man
@@ -1,5 +1,5 @@
'\" t
-.\" $XTermId: xterm.man,v 1.555 2012/12/31 23:36:19 tom Exp $
+.\" $XTermId: xterm.man,v 1.556 2013/02/13 00:47:18 tom Exp $
.\"
.\" Copyright 1996-2011,2012 by Thomas E. Dickey
.\"
@@ -3785,7 +3785,7 @@ Set window/icon labels using hexadecimal
Query window/icon labels using hexadecimal
.TP 5
2
-Set window/icon labels using UTF-8 (overrides \fButf8Titles\fP resource).
+Set window/icon labels using UTF-8 (overrides \fButf8Title\fP resource).
.TP 5
3
Query window/icon labels using UTF-8
View
5 xtermcfg.hin
@@ -1,7 +1,7 @@
-/* $XTermId: xtermcfg.hin,v 1.196 2012/10/05 00:27:29 tom Exp $ */
+/* $XTermId: xtermcfg.hin,v 1.197 2013/02/03 22:58:03 tom Exp $ */
/*
- * Copyright 1997-2011,2012 by Thomas E. Dickey
+ * Copyright 1997-2012,2013 by Thomas E. Dickey
*
* All Rights Reserved
*
@@ -201,6 +201,7 @@
#ifndef __cplusplus
#undef GCC_PRINTF
#undef GCC_PRINTFLIKE
+#undef GCC_NORETURN
#undef GCC_UNUSED
#endif

0 comments on commit defc6dd

Please sign in to comment.
Something went wrong with that request. Please try again.