--- xterm-325.orig/debian/NEWS +++ xterm-325/debian/NEWS @@ -0,0 +1,12 @@ +xterm (249-1) unstable; urgency=low + + The default value for 'pointerMode' has changed. 'pointerMode' + specifies when the pointer may be hidden as the user types. It will + be redisplayed if the user moves the mouse, or clicks one of its + buttons. Previously the default value was "0" meaning never hide the + pointer. The default is now "1" meaning hide the pointer after the + user has typed, if the xterm has not activated mouse mode. To + restore the previous behavior set the X resource XTerm*pointerMode + to "0". (e.g. XTerm*pointerMode:0) + + -- Julien Cristau Fri, 14 May 2010 19:56:07 +0200 --- xterm-325.orig/debian/README.source +++ xterm-325/debian/README.source @@ -0,0 +1,49 @@ +------------------------------------------------------ +Quick Guide To Patching This Package For The Impatient +------------------------------------------------------ + +1. Make sure you have quilt installed +2. Unpack the package as usual with "dpkg-source -x" +3. Run the "patch" target in debian/rules +4. Create a new patch with "quilt new" (see quilt(1)) +5. Edit all the files you want to include in the patch with "quilt edit" + (see quilt(1)). +6. Write the patch with "quilt refresh" (see quilt(1)) +7. Run the "clean" target in debian/rules + +Alternatively, instead of using quilt directly, you can drop the patch in to +debian/patches and add the name of the patch to debian/patches/series. + +------------------------------------ +Guide To The X Strike Force Packages +------------------------------------ + +The X Strike Force team maintains X packages in git repositories on +git.debian.org in the pkg-xorg subdirectory. Most upstream packages +are actually maintained in git repositories as well, so they often +just need to be pulled into git.debian.org in a "upstream-*" branch. +Otherwise, the upstream sources are manually installed in the Debian +git repository. + +The .orig.tar.gz upstream source file could be generated using this +"upstream-*" branch in the Debian git repository but it is actually +copied from upstream tarballs directly. + +Due to X.org being highly modular, packaging all X.org applications +as their own independent packages would have created too many Debian +packages. For this reason, some X.org applications have been grouped +into larger packages: xutils, xutils-dev, x11-apps, x11-session-utils, +x11-utils, x11-xfs-utils, x11-xkb-utils, x11-xserver-utils. +Most packages, including the X.org server itself and all libraries +and drivers are, however maintained independently. + +The Debian packaging is added by creating the "debian-*" git branch +which contains the aforementioned "upstream-*" branch plus the debian/ +repository files. +When a patch has to be applied to the Debian package, two solutions +are involved: +* If the patch is available in one of the upstream branches, it + may be git'cherry-picked into the Debian repository. In this + case, it appears directly in the .diff.gz. +* Otherwise, the patch is added to debian/patches/ which is managed + with quilt as documented in /usr/share/doc/quilt/README.source. --- xterm-325.orig/debian/changelog +++ xterm-325/debian/changelog @@ -0,0 +1,1616 @@ +xterm (325-1) unstable; urgency=medium + + * New upstream release. + - Further improve fix for #545220 in xterm 248, to avoid conflict + with combining characters (Closes: #738794). + * Refresh Debian patches. + + -- Sven Joachim Wed, 08 Jun 2016 17:39:36 +0200 + +xterm (324-2) unstable; urgency=medium + + * Enable all hardening options. + * Remove the menu file (see #741573). + * Add libxinerama-dev to Build-Depends. + * Update copy of XTerm FAQ to revision 1.317 (dated 2016/03/21). + * Bump Standards-Version to 3.9.8. + + -- Sven Joachim Sun, 08 May 2016 08:32:18 +0200 + +xterm (324-1) unstable; urgency=medium + + * New upstream release. + + -- Sven Joachim Sat, 12 Mar 2016 08:35:48 +0100 + +xterm (323-1) unstable; urgency=medium + + * New upstream release. + * Use https for Vcs-* fields. + * Prefer lynx over lynx-cur in Build-Depends. + * Bump Standards-Version to 3.9.7, no changes needed. + + -- Sven Joachim Thu, 10 Mar 2016 18:02:21 +0100 + +xterm (322-1) unstable; urgency=medium + + * New upstream release. + - Fix regression due to incorrect fix for compiler warning when + allocating storage for /etc/shells (Closes: #809646). + * Update years in debian/copyright. + + -- Sven Joachim Sat, 02 Jan 2016 16:17:27 +0100 + +xterm (321-1) unstable; urgency=medium + + * New upstream release. + * Run lynx with the -display_charset=utf-8 option when dumping the text + version of the XTerm FAQ, making the build reproducible. + * Update copy of XTerm FAQ to revision 1.307 (dated 2015/12/28). + + -- Sven Joachim Fri, 01 Jan 2016 17:27:01 +0100 + +xterm (320-1) unstable; urgency=medium + + * New upstream release. + - Amend fix for bug #794201 (report forwarded from Christian Jachmann + by Emanuel Haupt, Closes: #797008). + + -- Sven Joachim Sat, 29 Aug 2015 13:47:23 +0200 + +xterm (319-1) unstable; urgency=low + + * New upstream release. + - Correct combination of -ls and -e options for utempter configuration + (Closes: #794201). + * Update copy of XTerm FAQ to revision 1.305 (dated 2015/05/01). + + -- Sven Joachim Sat, 22 Aug 2015 09:10:05 +0200 + +xterm (318-2) unstable; urgency=low + + * Upload to unstable. + + -- Sven Joachim Sun, 26 Apr 2015 15:32:00 +0200 + +xterm (318-1) experimental; urgency=low + + * New upstream release. + + -- Sven Joachim Wed, 15 Apr 2015 17:33:16 +0200 + +xterm (317-1) experimental; urgency=low + + * New upstream release. + - Adapt example for exec-formatted from Lukáš Zapletal's webpage + to manual (Closes: #780008). + - Add a short usage section to the xterm manual, including notes + on setting the window title (Closes: #742477). + + -- Sven Joachim Tue, 31 Mar 2015 17:50:42 +0200 + +xterm (316-1) experimental; urgency=low + + * New upstream release. + - Add configure option --enable-initial-erase to set ptyInitialErase + consistently with manpage, as well as adding a table in manpage to + clarify the relationship between the resources related to the + backarrow key (Closes: #775952). + * Refresh Debian patches. + * Update years in debian/copyright. + * Update copy of XTerm FAQ to revision 1.293 (dated 2015/02/16). + + -- Sven Joachim Sun, 08 Mar 2015 19:17:29 +0100 + +xterm (314-1) experimental; urgency=low + + * New upstream release. + * Update copy of XTerm FAQ to revision 1.289 (dated 2014/12/19). + + -- Sven Joachim Tue, 30 Dec 2014 18:25:43 +0100 + +xterm (313-1) experimental; urgency=low + + * New upstream release. + * Refresh Debian patches. + * Bump Standards-Version to 3.9.6, no changes needed. + + -- Sven Joachim Thu, 04 Dec 2014 18:51:09 +0100 + +xterm (312-2) unstable; urgency=medium + + * Cherry-pick a patch from xterm 314: change passedPty[] to an + allocated string to ensure it is long enough for the -S option + value (Closes: #779397). + + -- Sven Joachim Sun, 01 Mar 2015 11:45:01 +0100 + +xterm (312-1) unstable; urgency=medium + + * New upstream release. + - Undo change to do_select_regex() in xterm 311 (Closes: #762978). + + -- Sven Joachim Mon, 29 Sep 2014 17:16:25 +0200 + +xterm (311-1) unstable; urgency=low + + * New upstream release. + - Mention xclip in manpage as an alternative workaround for copying + clipboard data, noting that selectToClipboard is the recommended + approach (Closes: #639094). + - Correct initialization for regular-expression feature of + exec-selectable and insert-selectable actions. + Modify logic for exec-formatted and insert-formatted actions to + ensure that the formatting occurs just after the selection is + received (Closes: #758633). + - Account for state of reverse-video in special case of cursor coloring + (Closes: #759734). + - Enable the "Escape Sequence" menu entry when an OSC 50 is received. + Also disable it if the escape sequence specifies no font + (Closes: #760208). + - Improve fix for the fontsel menu entry from xterm 304: because the + recovery used the "current font", it would fail if one first selected + a valid font, then an invalid font (Closes: #760207). + + -- Sven Joachim Mon, 22 Sep 2014 17:55:43 +0200 + +xterm (310-1) unstable; urgency=low + + * New upstream release. + + -- Sven Joachim Sat, 30 Aug 2014 11:26:09 +0200 + +xterm (308-1) unstable; urgency=medium + + * New upstream release. + - Correct font used for clipping double-width bitmap fonts from + xterm 307 changes to work around mis-scaled fonts (Closes: #752047). + + -- Sven Joachim Sat, 21 Jun 2014 09:44:01 +0200 + +xterm (307-1) unstable; urgency=medium + + * New upstream release. + - Amend fix for Freedesktop bug #15979 (Closes: #750733). + - Amend resets for keyboard-type, pointer-mode and title-modes + from xterm 305 changes to account for resource settings + (Closes: #751351). + + -- Sven Joachim Wed, 18 Jun 2014 19:49:57 +0200 + +xterm (306-1) unstable; urgency=medium + + [ Julien Cristau ] + * New upstream release. + * Remove Cyril from Uploaders. + + [ Sven Joachim ] + * New upstream release. + * Update copy of XTerm FAQ to revision 1.282 (dated 2014/05/25). + + -- Sven Joachim Thu, 05 Jun 2014 17:50:00 +0200 + +xterm (304-1) unstable; urgency=low + + * New upstream release. + + -- Sven Joachim Wed, 07 May 2014 16:50:50 +0200 + +xterm (303-1) unstable; urgency=low + + * New upstream release. + - Fix a regression in xterm 302 relating to interaction of SHELL + and XTERM_SHELL variables (Closes: #740919). + + -- Sven Joachim Fri, 07 Mar 2014 18:23:50 +0100 + +xterm (302-1) unstable; urgency=low + + * New upstream release. + * Update copy of XTerm FAQ to revision 1.278 (dated 2014/02/24) + (Closes: #737692). + * Check GPG signature of upstream tarballs in the watch file. + + -- Sven Joachim Tue, 04 Mar 2014 19:55:16 +0100 + +xterm (301-1) unstable; urgency=low + + * New upstream release. + - Improve manpage description of scrollbar translations versus + the vt100 translations (Closes: #723573). + * Build-depend on autotools-dev to update config.{guess,sub}. + * Bump Standards-Version to 3.9.5, no changes needed. + + -- Sven Joachim Wed, 22 Jan 2014 18:22:12 +0100 + +xterm (300-1) unstable; urgency=low + + * New upstream release. + - Avoid infinite recursion and stack overflow in libxcursor + (Closes: #731269). + + -- Sven Joachim Wed, 04 Dec 2013 18:05:01 +0100 + +xterm (299-1) unstable; urgency=low + + * New upstream release. + * Add libxcursor-dev to Build-Depends (Closes: #466704). + + -- Sven Joachim Mon, 02 Dec 2013 18:58:17 +0100 + +xterm (298-1) unstable; urgency=low + + * New upstream release. + - Change default for assumeAllChars resource (Closes: #725682). + - Amend change from xterm 297 for ASCII-equivalents to ensure that + missing characters which happen to be double-width are padded to + the expected number of columns. Also, correct the choice between + normal/wide Xft fonts used when checking for missing characters + (Closes: #728949). + - work around Xcursor library to make pointerColor resource work as + documented (Closes: #466704). + * Update copy of XTerm FAQ to revision 1.259 (dated 2013/11/25). + * Add a debian/rules target to download that FAQ from + http://invisible-island.net. + + -- Sven Joachim Sun, 01 Dec 2013 09:18:00 +0100 + +xterm (297-1) unstable; urgency=low + + * New upstream release. + * Enable sixel graphics (Closes: #716660). + + -- Sven Joachim Sun, 15 Sep 2013 15:52:21 +0200 + +xterm (295-1) unstable; urgency=low + + * New upstream release. + - Amend fix from xterm 292 by removing now-unneeded chunk which + introduced problem in selection (Closes: #714527). + * Update debian/copyright. + * Switch Vcs-* fields to anonscm.debian.org. + * Update copy of XTerm FAQ to revision 1.243 (dated 2013/07/05). + + -- Sven Joachim Sun, 07 Jul 2013 17:30:07 +0200 + +xterm (293-1) unstable; urgency=low + + * New upstream release. + - Improve description of initialFont, set-vt-font and set-tex-text + in manpage (Closes: #707899). + * Update copyright year in debian/copyright. + + -- Sven Joachim Wed, 29 May 2013 17:19:26 +0200 + +xterm (292-1) unstable; urgency=low + + * New upstream release. + * Refresh 904_fontops.diff. + * Update copy of XTerm FAQ to revision 1.229 (dated 2013/05/18). + * Bump debhelper compatibility level to 9. + * Use dh_install's --fail-missing option. + * Convert debian/rules to dh and drop xsfbs. + * Bump Standards-Version to 3.9.4, no changes needed. + * Add myself to Uploaders. + + -- Sven Joachim Sun, 26 May 2013 11:22:26 +0200 + +xterm (290-1) experimental; urgency=low + + * New upstream release + * Drop 100_manpage_whatis.diff, no longer necessary. + * Drop explicit --with-desktop-category, no longer necessary. + * Update copy of XTerm FAQ to revision 1.221 (dated 2013/01/26). + + -- Julien Cristau Sat, 23 Feb 2013 16:09:09 +0100 + +xterm (287-1) experimental; urgency=low + + * New upstream release (closes: #694375) + - add alternateScroll resource and corresponding control sequences which + modify the scroll-forw and scroll-back actions: when the alternate + screen is displayed, wheel mouse up/down will send cursor keys (closes: + #683942) + - improve rendering for the case when a Unicode character is absent in the + bold font but present in the normal font by temporarily falling back to + the normal font (closes: #359006, #408666) + - check for misconfigured printerCommand resource on the first use, warn + and disable it if it does not specify an executable command (closes: + #691642) + * Drop upstream patches. + * Refresh remaining patches. + * Explicitly set --with-desktop-category to avoid desktop-file-install + failure. + * Enable backarrowKeyIsErase in configure instead of 900_debian_xterm.diff. + * Install png/svg icons. + * Change xterm.man's NAME section to keep whatis(1) happy. + + -- Julien Cristau Tue, 27 Nov 2012 22:27:28 +0100 + +xterm (278-4) unstable; urgency=low + + * Update copy of XTerm FAQ to revision 1.199 (dated 2012/11/11). + + -- Julien Cristau Tue, 27 Nov 2012 20:17:49 +0100 + +xterm (278-3) unstable; urgency=low + + [ Timo Aaltonen ] + * control: Mark the package as Multi-Arch: foreign. + + [ Julien Cristau ] + * Apply a few patches recommended by upstream in #694375 (thanks!) + - amend patch from 278-2 to catch more cases + - amend fix for Debian #650291 in patch #277 changes to account for + different data returned by vnc4server (closes: #670638) + - correct macro definition used for testing modes used in ANSI/DEC + request-mode controls introduced in patch #262 + - add a null-pointer check in OkPasswd macro to fix a problem in resize + with Fedora 17 and a serial console (report/patch by Daniel Drake). + + -- Julien Cristau Tue, 27 Nov 2012 19:57:47 +0100 + +xterm (278-2) unstable; urgency=low + + * Fix crash in Tektronix mode (Closes: #685458). + + -- Cyril Brulebois Mon, 27 Aug 2012 02:14:38 +0200 + +xterm (278-1) unstable; urgency=low + + * New upstream release + - move call to grantpt before asking utempter to add a record, to work + with kFreeBSD which does not update the terminal's ownership until this + point (closes: #652907) + - document limitation of XIM interface in manpage (see #230787) + - add four new actions for making the selection or data directly copied + from the screen: exec-formatted, exec-selectable, insert-formatted, + insert-selectable (closes: #637001) + - add eightBitMeta resource to control the features which modify or + interpret the eighth bit of a key when the meta modifier key is pressed + (prompted by #326200) + - improve discussion of eightBitInput in the manpage (prompted by #326200) + - add a workaround for XAllocColor(), which does not actually allocate "a + read-only colormap entry corresponding to the closest RGB value + supported by the hardware", but rather a rough approximation (closes: + #650291) + * Update copy of XTerm FAQ to revision 1.180 (dated 2012/02/06). + + -- Julien Cristau Mon, 09 Apr 2012 21:45:01 +0200 + +xterm (276-2) unstable; urgency=low + + * Team upload. + + [ Julien Cristau ] + * Pass -DFOO in CPPFLAGS, not CFLAGS. + * Update copyright year in debian/copyright. + * Bump Standards-Version to 3.9.2, no changes needed. + * Remove David Nusinow from Uploaders. + * Enable hardened build flags through dpkg-buildflags (closes: #653488). + Based on patch by Moritz Muehlenhoff, thanks! + + [ Sven Joachim ] + * Update 900_debian_xterm.diff: + - Disable rmm and smm features in xterm-new rather than xterm, so + that they do not become enabled in e.g. xterm-256color. + + -- Julien Cristau Sat, 31 Dec 2011 19:00:02 +0100 + +xterm (276-1) unstable; urgency=low + + [ Timo Aaltonen ] + * Install .desktop files again. (Closes: #486317, LP: #129041) + + [ Julien Cristau ] + * New upstream release + + document limitation of Gtk in connection with xterm's "-into" option, in + the manpage (LP: #806969) + + fix regression in command-line parsing introduced in patch #271 changes + for Debian #629358 (closes: #637910) + * Don't use dh_testroot in clean. + * Update 900_debian_xterm.diff to only edit the new xterm+kbs fragment in + both terminfo and termcap instead of adding an xterm-debian variant to + change the backspace key behaviour. + * Update copy of XTerm FAQ to revision 1.168 (dated 2011/09/12). + + [ Sven Joachim ] + * Update 900_debian_xterm.diff: + - Add xterm-debian terminfo entry as an alias for xterm. + - Disable rmm and smm features in xterm terminfo entry to match the + behavior in ncurses-base (see #574396). + + -- Julien Cristau Sat, 15 Oct 2011 19:38:42 +0200 + +xterm (271-1) unstable; urgency=low + + * New upstream release + - amend change for Debian #110226 so that "-h" or "-v" options cause an + exit, rather than simply printing to stdout while the window is + displayed (closes: #629358) + - handle special-case of KeyPress translated to popup-menu action + (LP: #756273) + + -- Julien Cristau Sat, 23 Jul 2011 13:55:37 +0200 + +xterm (270-1) unstable; urgency=low + + * New upstream release: + - Add printModeOnXError and printFileOnXError resources, which allow + the user to specify that xterm will write the contents of its screen + to a file if it is exiting due to an X error (Closes: #280457). + - Fix translations vs. fullscreen initializations to handle a corner + case (Closes: #612978). + + -- Cyril Brulebois Fri, 03 Jun 2011 00:05:53 +0200 + +xterm (269-1) unstable; urgency=low + + * New upstream release: + - Make the fullscreen feature configurable (Closes: #612978). + + -- Cyril Brulebois Sat, 05 Mar 2011 17:05:05 +0100 + +xterm (268-1) unstable; urgency=low + + [ Sven Joachim ] + * Prefer lynx-cur over lynx in Build-Depends. + * Update xsfbs. + * Drop useless debian/xterm.dirs. + * Stop recommending the transitional xutils package. + * Mention ncurses-base in README.Debian (Closes: #373139). + * Do not manually gzip the text version of the FAQ, dh_compress can take + care of that. + + [ Julien Cristau ] + * Update copy of XTerm FAQ to revision 1.167 (dated 2010/11/25) + * New upstream release (267) + + add copy-selection action (request by Timo Juhani Lindfors, + closes: #588785 + * New upstream release (268) + + fix an inconsistency of the "Enable Reverse Video" checkbox in the VT + Options menu. This also removes a special case added in patch #217 + which limited the effect of the reverseVideo resource (closes: #603808) + + -- Julien Cristau Thu, 10 Feb 2011 18:48:37 +0100 + +xterm (266-1) unstable; urgency=low + + * New upstream release (Closes: #601103, yay for patience…): + + Fix a regression in fontname logic from patch #263, thanks to + Vincent Lefevre (Closes: #600707). + * Fix watch file: use PASV mode. + + -- Cyril Brulebois Wed, 27 Oct 2010 14:23:02 +0200 + +xterm (264-1) unstable; urgency=low + + * New upstream release: + + Fix active-icon in specific cases (Closes: #591265). + + Fix pointer visibility issues (Closes: #594856). + + Fix segmentation fault with -fb and other options (Closes: #600129). + * Add myself to Uploaders. + + -- Cyril Brulebois Thu, 14 Oct 2010 23:53:57 +0200 + +xterm (261-1) unstable; urgency=low + + * New upstream release + + fix regression in renderFont logic, from patch #260 changes + (closes: #587428) + + -- Julien Cristau Mon, 28 Jun 2010 21:53:28 +0100 + +xterm (260-1) unstable; urgency=low + + * New upstream release + + extend renderFont resource to allow deferred switch to TrueType fonts + without affecting existing resource settings (closes: #585620) + + change configure script default for --enable-broken-st (i.e., the + brokenStringTerm feature) to normally enable it. If the corresponding + resource is enabled, this feature eliminates an apparent freeze of xterm + when sending mis-encoded data to the screen (closes: #584801) + + undo a change to limit-check in ScrnRefresh in patch #257, which broke + fastScroll feature (closes: #584841) + + -- Julien Cristau Fri, 25 Jun 2010 19:58:38 +0100 + +xterm (259-1) unstable; urgency=low + + * README.Debian: drop obsolete content, including a link to the old Debian X + FAQ (closes: #581647). Thanks, Bob Proulx! + * Add a NEWS entry about the changed default value for pointerMode (closes: + #581653). Request and wording from Bob Proulx, thanks! + * Refresh 902_windowops.diff and 904_fontops.diff. + * New upstream release + + change default for allowScrollLock resource to false, noting that the + supposedly unused key has been useful for various rebindings + (closes: #580946) + * Update copy of XTerm FAQ to revision 1.138 (dated 2010/05/15). + * Bump copyright year in debian/copyright. + + -- Julien Cristau Sun, 06 Jun 2010 14:39:27 +0200 + +xterm (258-1) unstable; urgency=low + + * terminfo: derive xterm{16,256,88}-color from xterm-debian (patch by Sven + Joachim), closes: #547443. + * New upstream release + + modify AllocateTermColor() to separate initialization from control + sequences, fixing problem from patch #254 changes where enabling + allowSendEvents resource prevents setting cursor color on command-line + (closes: #572928) + + -- Julien Cristau Sat, 08 May 2010 13:48:12 +0200 + +xterm (256-1) unstable; urgency=low + + * New upstream release. + * Delete patch 901_xterm_manpage.diff, the utmp/wtmp paths are now set in + the manpage at build/install time thanks to upstream changes. + * Refresh patches 902 and 904. + * Add build dependency on xorg-docs-core to fix the reference to X(7) in + xterm(1). + * Also document the libxkbfile-dev and libutempter-dev build-deps. + + -- Julien Cristau Sun, 14 Mar 2010 20:15:13 +0100 + +xterm (255-1) unstable; urgency=low + + * Rename the build directory to not include DEB_BUILD_GNU_TYPE for no + good reason. Thanks, Colin Watson! + * Add build-dep on libxkbfile-dev for XkbBell(3). + * Remove myself from Uploaders + * New upstream release + + correct logic used to switch to alternate screen using FIFO-lines + configuration (closes: #565772) + + improve manpage by checking for actual locations of utmp/wtmp files + (closes: #562640) + * Refresh patches 900_debian_xterm.diff, 901_xterm_manpage.diff, + 902_windowops.diff, 904_fontops.diff. + * Bump Standards-Version to 3.8.4. + + -- Julien Cristau Wed, 03 Mar 2010 14:38:17 +0100 + +xterm (253-1) unstable; urgency=low + + * New upstream release + + parenthesize expression in MoreRows macro, fixing a limit check added in + patch #251 (closes: #560039) + * Update debian/copyright. + * Add dependency on ${misc:Depends} (lintian). + * Refresh patches 900_debian_xterm.diff and 901_xterm_manpage.diff. + + -- Julien Cristau Tue, 29 Dec 2009 12:31:52 +0000 + +xterm (251-1) unstable; urgency=low + + * New upstream release. + * Update copy of XTerm FAQ to revision 1.107 (dated 2009/11/11). + * Upstream introduced a new 'disallowedWindowOps' resource to fine-tune + which operations are affected by the 'allowWindowOps' setting. After + discussion with the security team, change the default for the new resource + to include all operations. + + -- Julien Cristau Sat, 28 Nov 2009 14:46:51 +0100 + +xterm (250-1) unstable; urgency=low + + * New upstream release + + add check and error-message for fonts that have no printable values in + the ISO-8859-1 range (closes: #542434) + + limit minimum cell-width for packed font to maximum-advance + reported by Xft. Some fonts are wider than that, even in the Latin-1 + range (closes: #550497) + + correct off-by-one in okPosition fix from patch #249 limit-checks which + prevented double-click selection on the bottom line of the screen + (closes: #550368) + + document in xterm manpage the limited availability of resources color16 + to color255 as noted in patch #188 (LP: #438850) + + -- Julien Cristau Tue, 13 Oct 2009 20:20:08 +0200 + +xterm (249-1) unstable; urgency=low + + * New upstream release. + + add limit-checks for result of visual_width() function, needed from + patch #242 and exposed by #244 changes (closes: #548321). + * Upstream changed the default of AllowWindowOps to false, remove patch + 903_windowops.diff. + * Use the upstream default for pointerMode; drop patch + 902_pointermode_never.diff. + + -- Julien Cristau Sun, 04 Oct 2009 15:40:16 +0200 + +xterm (248-1) unstable; urgency=low + + * New upstream release + + correct logic used to improve performance of missing-glyph check, which + did not handle line-drawing characters (closes: #545220) + + -- Julien Cristau Wed, 16 Sep 2009 15:53:07 +0200 + +xterm (247-1) unstable; urgency=low + + * New upstream release. + * Bump Standards-Version to 3.8.3. + * Remove David Martínez Moreno from Uploaders as he hasn't been active on + this package lately. + * Kill remaining subversion $Id$ tags from debian packaging files. + * Use libutempter, remove setgid bit from the xterm binary (closes: #537867). + + -- Julien Cristau Fri, 04 Sep 2009 16:24:35 +0200 + +xterm (246-1) unstable; urgency=low + + * New upstream release + + interaction between allowSendEvents and the various allowXXXOps + resources clarified in manpage (closes: #531597) + + remove obsolete logic for saving/restoring wrapping flags, which did not + work on 64-bit platform. Wrapping flags (stored in the line-index) are + now copied with line-data (closes: #541160) + + modify comments in app-defaults files to avoid problem with C + preprocessor used by xrdb (closes: #541603) + + restore special case in makeColorPair needed for colorBDMode resource + (closes: #541089) + + correct SetLineFlags() macro, broken in patch #244 when recoding to + avoid gcc-specific bitfields (closes: #541236) + * The issues with the fifo-lines code should now be fixed, so enable it + again. + + -- Julien Cristau Sun, 23 Aug 2009 00:35:21 +0200 + +xterm (244-2) unstable; urgency=low + + * Configure with --disable-fifo-lines to work around a crash in the new + saved-lines handling code (closes: #541236, #541160, #541132, #541109). + Thanks to Thomas Dickey for the workaround. + + -- Julien Cristau Wed, 12 Aug 2009 22:25:16 +0200 + +xterm (244-1) unstable; urgency=low + + * New upstream release + + remove a limit-check in ptydata.c, allowing Unicode values past 64k to + be displayed using TrueType fonts (closes: #458432) + + demote recent (xterm 242) change to Debian #252873 fix to experimental, + ifdef'd out as EXP_BOGUS_FG (closes: #522141) + + work around groff mapping of ASCII quotes using macros (requested by + Reuben Thomas based on Colin Watson advice (closes: #378700) + * Switch debian/rules to xsfbs instead of copying half of (an outdated + version of) it (closes: #538594). Incidentally, this provides + README.source, and allows us to bump Standards-Version to 3.8.2. + * Remove preinst dealing with upgrades from pre-etch versions. + * Remove from postinst some code to fix pre-etch non-released versions. + * Refresh/update patches. + * Bump debian/compat to 5, as compatibility level 4 has been deprecated. + * Remove obsolete debian/README. + + -- Julien Cristau Mon, 10 Aug 2009 16:30:29 +0200 + +xterm (243-1) unstable; urgency=low + + * New upstream release (closes: #526334) + + fixes bell regression (closes: #520405) + * Refresh patch stack. + * Defaults for allow-{tcap,window,font}ops are now set from debian/rules + instead of the relevant patches, which now only touch the manpage. + * Update copy of XTerm FAQ to revision 1.105 (dated 2009/01/11). + + -- Julien Cristau Mon, 25 May 2009 19:58:19 +0200 + +xterm (242-1) unstable; urgency=low + + * New upstream release. + + -- Julien Cristau Wed, 18 Mar 2009 15:37:18 +0100 + +xterm (241-1) unstable; urgency=low + + * New upstream release. + * Drop patch 905_tcapops.diff, allowTcapOps now defaults to false upstream. + * Refresh patches 901_xterm_manpage.diff, 902_pointermode_never.diff, + 903_windowops.diff, 904_fontops.diff. + + -- Julien Cristau Sun, 01 Feb 2009 00:15:50 +0100 + +xterm (239-1) unstable; urgency=low + + * New upstream release. + + correct a cast in input.c, which broke translation of numeric keypad + codes to pageup, pagedown, etc., on 64-bit platform (closes: #511138). + * debian/copyright: Update Thomas Dickey's copyright notices + + -- Julien Cristau Sat, 10 Jan 2009 19:22:31 +0100 + +xterm (238-2) unstable; urgency=low + + * Also default allowTcapOps to false, as suggested by Florian Weimer. + + -- Julien Cristau Sun, 04 Jan 2009 14:57:43 +0100 + +xterm (238-1) unstable; urgency=low + + * New upstream release. + + respond to incorrectly formatted DECRQSS with a cancel + (closes: #510030). Reference: CVE-2008-2383. + * Default the allowWindowOps and allowFontOps resources to false, to prevent + potential security issues. Thanks to Paul Szabo. + + -- Julien Cristau Sat, 03 Jan 2009 17:35:46 +0100 + +xterm (237-1) unstable; urgency=low + + * debian/rules: don't fail in patch if the patches are already applied; also + create the patch stamp in the same way as the other stamp files + (closes: #498327). Thanks, Petr Salinger! + * New upstream release. + + -- Julien Cristau Mon, 15 Sep 2008 16:01:37 +0200 + +xterm (236-1) unstable; urgency=low + + [ Brice Goglin ] + * Update patches to not use -p0, closes: #485360. + + [ Julien Cristau ] + * New upstream release. + + fixes for vt100-style character sets in UTF-8 mode (LP: #230919) + * Handle parallel=n in DEB_BUILD_OPTIONS. + * Don't call dh_makeshlibs. + * Configure with --enable-dabbrev (closes: #454202). + * Update copyright date to 2008 in debian/copyright for Thomas E. Dickey's + contributions. + + -- Julien Cristau Tue, 09 Sep 2008 01:21:27 +0100 + +xterm (235-1) unstable; urgency=low + + * New upstream release. + + adjust saved-cursor position if the window is resized while displaying + the alternate screen (closes: #383384) + + correct initialization of bold- and wide-, wide-bold fonts which may be + set via the utf8Fonts subresource (closes: #347790) + * Refresh patches 901_xterm_manpage.diff and 902_pointermode_never.diff. + + -- Julien Cristau Mon, 21 Apr 2008 02:48:05 +0200 + +xterm (234-1) unstable; urgency=low + + * New upstream release. + + fix a case where an incorrect font was freed during initialization + (closes: #471332) + + improve resize computation for situations where the negotiation fails, + by invoking the xterm widget's core-class resize method + (closes: #365602) + * Change doc-base section from `XShells' to `Terminal Emulators'; thanks, + lintian! + + -- Julien Cristau Wed, 19 Mar 2008 15:08:03 +0100 + +xterm (232-1) unstable; urgency=low + + * New upstream release. + + corrected logic in a font-cache used for reverse-video + (closes: #404079) + + allow building with configure options --disable-ansi-color and + --disable-leaks (closes: #459817) + + allow building with configure options --enable-wide-chars and + --disable-c1-print (closes: #459816) + + add pointerMode resource to control whether and when the pointer cursor + is hidden as the user types; also fix it so it's really hidden instead + of showing a black dot (closes: #460545) + + add limit-checks to tabs.c, increase maximum column for setting + tab-stops from 320 to 1024 (closes: #462621) + * Set pointerMode to "never" by default, to restore pre-230 behaviour. + Document that change in xterm.man (new patch 902_pointermode_never.diff). + * Look for luit in /usr/bin, not /usr/X11R6/bin. + * Refresh patches. + * debian/control: luit is in x11-utils now, update Recommends and + Description. + * Add Vcs-* and Homepage fields in debian/control. Thanks, Joey Hess! + (closes: #464947) + + -- Julien Cristau Tue, 19 Feb 2008 21:20:08 +0100 + +xterm (231-1) unstable; urgency=low + + * New upstream release + + undo change to getXtermCell() from patch #230 using PACK_PAIR macro + (closes: #459041, analysis by Caetano Jimenez Carezzato). + + -- Julien Cristau Sun, 06 Jan 2008 10:13:28 +0100 + +xterm (230-1) unstable; urgency=low + + * New upstream release. + + do not treat Unicode BIDI control characters as combining characters + (closes: #457634) + + correct width-calculation used for adjusting proportional fonts, to work + with wide-characters (closes: #441354) + + make missing double-width glyphs display as double-width + (closes: #456236) + + fix an ifdef in logic for selecting regular expressions while in a + narrow-character locale (closes: #449227) + * koi8rxterm, its manpage and app-defaults file, and the uxterm manpage are + now upstream, so remove our versions. + * Bump Standards-Version to 3.7.3 (no changes). + * Update copy of XTerm FAQ to revision 1.99 (dated 2007-11-29). + + -- Julien Cristau Thu, 03 Jan 2008 12:07:38 +0100 + +xterm (229-1) unstable; urgency=low + + * Fix typo in uxterm(1) (LP: #128136). + * New upstream release + + undo an incorrect fix for a memory leak in patch #209 + (closes: #435858). + * Stop installing the .desktop files and adapt xterm.menu to the new menu + structure. + * Use a separate build dir. + * Build with -Wall. + + -- Julien Cristau Mon, 13 Aug 2007 16:10:01 +0200 + +xterm (228-1) unstable; urgency=low + + [ Julien Cristau ] + * 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. + + [ Brice Goglin ] + * Fix debian/rules to not be confused by ~/.quiltrc or QUILT_PATCHES, + closes: #369920. + + -- Julien Cristau Mon, 23 Jul 2007 03:43:32 +0200 + +xterm (226-1) unstable; urgency=low + + [ Branden Robinson ] + * Remove debian/NEWS; the events it attested to (like the "upcoming 7.0 + modularization" are no longer news, and are in the past. + + [ Julien Cristau ] + * Configure with --with-tty-group=tty, to prevent security problems in case + of buggy build environment (closes: #349142). + * New upstream release. + + fix an infinite loop when showing a 2-column character in a + 1-column screen (closes: #426863). + + add XF86Paste and SunPaste to the default translations + (closes: #422521, patch by Bernhard R Link). + + improve permissions logic when closing pseudo-terminal + (closes: #12261, patch by Nathanael Nerode, analysis by Richard + Braakman). + + add a check in case someone tries to call the popup-menu() action + on a menu which is not initialized (closes: #426364). + + fix error-checking on internal font switching for "Selection" menu + entry (closes: #421523). + + amend select/paste change from patch #225 by limiting it to + non-UTF-8/non-KOI8-R encoding (closes: #420974). + + add workaround for groff ".URL" codes which are not present in + some commonly-used bitmap fonts (closes: #418324). + * Update reference to xlibs-data in xterm's description, refer to xbitmaps + instead. + * Build-depend on desktop-file-utils to install the new desktop files for + xterm and uxterm, and change debian/rules and debian/xterm.install to + install these files and the icons. + + -- Julien Cristau Mon, 18 Jun 2007 14:02:22 +0100 + +xterm (225-1) unstable; urgency=low + + * New upstream release. + + add initialFont resource to xterm widget, like tek-widget + (closes: #299669). + + amend change to boldMode from patch #223 for Debian #347790 which made + xterm no longer match the documented behavior (closes: #412599). + * Update and complete debian/copyright. + + -- Julien Cristau Sun, 25 Mar 2007 19:18:41 +0200 + +xterm (224-1) unstable; urgency=low + + * New upstream release. + + fix build for GNU/KFreeBSD (closes: #404111). + + undo a comparison in handle_translated_exposure which did not work + due to X server optimization. That caused the inner border to be + repainted with unexpected colors when handling a repaint, e.g., + after switching to/from another workspace (closes: #401726). + + allow -cr option to override cursor color when -ah option is used + (closes: #406502). + + add a note in xterm's manpage explaining that the -bw (or -w) + option is only used by the window manager, if at all + (closes: #405043). + * Refresh patch 901_xterm_manpage.diff. + * Change my email address in debian/control. + + -- Julien Cristau Mon, 12 Feb 2007 00:14:06 +0100 + +xterm (223-2) unstable; urgency=low + + * No longer disable allowWindowOps in XTerm.ad, as commands are now + sanitized by xterm (closes: #402917). + + -- Julien Cristau Thu, 14 Dec 2006 17:29:30 +0100 + +xterm (223-1) unstable; urgency=low + + [ Julien Cristau ] + * New upstream release. Includes the following fixes for bugs reported in + the Debian BTS: + + add the Xaw scrollbar translations resource to the xterm manpage, add an + example showing how to change the mouse button assignments + (closes: #382225). + + amend cell-width computation for FreeType from patch #217, which did not + work for VT100 line-drawing characters (closes: #399638). + + revert an optimisation in SGR_Foreground() and SGR_Background from patch + #209 (closes: #347722). + + fixes to make the internalBorder area not change color due to + reverseVideo and/or related exposure events. The latter was a very old + bug exposed in patch #196 (closes: #397624). + * The fix for #347790 is now included upstream. + + -- David Nusinow Mon, 4 Dec 2006 19:27:21 -0500 + +xterm (222-3) unstable; urgency=low + + [ Julien Cristau ] + * Split xterm.doc-base in xterm.doc-base.faq and xterm.doc-base.ctlseqs, to + make the package installable again, thanks to Ryan Murray + (closes: #400375). + + -- David Nusinow Sat, 25 Nov 2006 18:37:22 -0500 + +xterm (222-2) unstable; urgency=low + + [ Julien Cristau ] + * Install all manpages with "1" as extension instead of "1x" + (closes: #346377). + * Use the x-terminal-emulator.1.gz slave alternative, instead of + x-terminal-emulator.1x.gz. We also need to clean up the mess this wrong + path caused, and make sure that the x-terminal-emulator.1.gz link in + /usr/share/man/man1/ is still there. If it disappeared, we add it in + postinst. Thanks to Vincent Lefevre and Joey Hess (closes: #349462). + * Also add the changelog entry for xterm 208-3.1, so that the BTS doesn't + consider bugs reported against that version as "from other Branch". + The changes from this NMU have been obsoleted by 210-2. + * Add patch 903 by Tim Pope to not ignore the + boldmode setting. Thanks to Joey Hess for reporting + this issue and to Thomas Dickey for his comments (closes: #347790). + + [ Branden Robinson ] + * Ship "Xterm Control Sequences" document again, in both GNU Roff and plain + text formats, and register the latter with doc-base. (The former is + easily viewable in a terminal with "groff -Tutf8 ctlseqs.ms | more", so it + seems useful.) (Closes: #301173) + * Update copy of XTerm FAQ to revision 1.90 (dated 2005-11-02). + * Resync koi8rxterm script with recent upstream changes to uxterm, upon + which it is based. + + -- David Nusinow Sat, 25 Nov 2006 12:25:29 -0500 + +xterm (222-1) unstable; urgency=low + + * New upstream release + + Refresh patches. + * Acknowledge NMU (thanks, Christoph!). + * Update KOI8RXTerm app-defaults, thanks to Thomas Dickey (closes: #384925). + * Configure with --enable-luit, again thanks to Thomas (closes: #381591). + * Add an empty binary-indep target in debian/rules, thanks to Aurélien Jarno + (closes: #395764). + * Add myself to Uploaders. + * Bump Standards-Version to 3.7.2. + * Use "make distclean" instead of "make clean" so that configure-generated + files are deleted. + + -- Julien Cristau Sun, 5 Nov 2006 14:49:08 +0100 + +xterm (210-3.1) unstable; urgency=high + + * Non-maintainer upload. + * Apply patch by Samuel Thibault to disable allowWindowOps in XTerm.ad + (Closes: #384593). + + -- Christoph Berg Fri, 15 Sep 2006 16:18:06 +0200 + +xterm (210-3) unstable; urgency=low + + * Depend on xbitmaps rather than xlibs-data. + + -- David Nusinow Thu, 13 Apr 2006 00:20:50 -0400 + +xterm (210-2) unstable; urgency=low + + * Remove useless provides and conflicts with old xutils. Thanks James Troup. + + -- David Nusinow Thu, 16 Mar 2006 20:05:08 -0500 + +xterm (210-1) unstable; urgency=low + + * New upstream release (the following are fixes immediately relevant to + Debian. More are in the upstream changelog) + + allow cursor to have the same color as foreground (text), since it is + rendered as reverse (closes: #350664) + + add TIOCSCTTY ioctl() ifdef'd for __GNU__ to set the controlling + terminal (closes: #348457) + + typo in manpage (closes: #351425) + + revert the XTerm.ad change from patch #208 (closes: #348384) + + add check to ensure that double-clicking to extend selection will not + extend it into the scrollback area. This still allows users to scroll + back and select text (closes: #347415) + * Remove the 01_stolen_from_HEAD patch, as it is now obsolete + * Switch build dependency from libxaw8-dev to libxaw7-dev + * debian/rules clean target now calls make clean instead of distclean + * Use dh_install's --list-missing option + * Merge duplicate Provides fields + + -- David Nusinow Mon, 13 Mar 2006 22:12:41 -0500 + +xterm (208-3.1) unstable; urgency=low + + * Emergency NMU to fix queue/accepted breakage: s/Provides/Replaces/ + + -- Adam Conrad Thu, 19 Jan 2006 04:41:26 +1100 + +xterm (208-3) unstable; urgency=low + + * Install everything in /usr/bin, /etc/X11/app-defaults, and + /usr/share/man/man1. This gives us back the resize program. + (closes: #345477, #348615, #347553) + * Add conflicts and replaces to xutils < 6.9.0.dfsg.1 + + -- David Nusinow Tue, 17 Jan 2006 21:24:01 -0500 + +xterm (208-2) unstable; urgency=low + + * Added 000_stolen_from_HEAD.diff, with last minute changes from Thomas + Dickey: + - fix typo in configure script option --disable-narrowproto. + - Amend CF_X_FREETYPE changes for pkg-config check to ensure that Xft is + known to that tool. + - Add an ifdef to allow ./configure --disable-active-icon to work, broken + by new code for testing memory leaks in #208. + * Added --disable-imake and --enable-narrowproto to configure line in order + to deal with toolbar problems due to the absence of NARROWPROTO definition + (closes: 346398). + + -- David Martínez Moreno Mon, 9 Jan 2006 08:21:41 +0100 + +xterm (208-1) unstable; urgency=low + + * New upstream release (patchlevel #208). Main changes follow: + - Implement logic in termcap query to process multiple parameters as + documented in ctlseqs.ms + - Fix buffer size used for termcap query, which was not long enough for + the terminfo "colors" name. + - Add menu entry (alt-esc) and corresponding action (alt-sends-esc) to + toggle the eightBitInput resource setting. + - Modify computation of rows/columns on resize to avoid extending beyond + the given limits, e.g., if resizing in response to a "maximize" in + Gnome or KDE which do not use the window manager hints for this case + (closes: #289123). + - Improve error-reporting when chown/chmod of the pseudo-terminal fails. + - Several changes in the control sequences. + - Improvements in the configure script. + - Eliminate a retry for a better-matching bold font, to work around + recent font server changes. + - Specify weight for wide font which may be derived from normal + fontname. + - Cache the derived wide- and widebolt- fontnames. + - Modify resource files to make the font-resources a little more specific, + e.g., changing "*VT100*" to "*VT100.", to make the distinction between + VT100.font and VT100.utf8Fonts.font sharper, in case a packager modifies + one of those. + - Expanded comments in UXTerm.ad regarding the font resources (closes: + #319179). + - Add --enable-narrowproto configure option to accommodate Xorg "modular" + build. + - Add scrollBarBorder resource. + - Fix a file-descriptor leak when calling openpty(). + - A hard reset also resets the 132/80 mode. + - Restore window manager hints after XtMakeResizeRequest() calls. + - Scroll-down is allowed to be sent while mouse tracking is enabled. + - Correct size-comparison in HandleInterpret() broken in changes from + patch #201 to allocate input buffer (closes: #334317). + - Upstream merged Debian patches 001 and 002 for typos in xterm. + - Added setuid options. + - add charClass resource to XTerm.ad and UXTerm.ad which simplifies + selecting URLs + - make -iconic option work with toolbar configuration + - fix memory reallocation for the "UTF-8" menu entry when xterm is started + using the +u8 option + * Debian patches 900 and 901 resynced. + * Clean up xterm.dirs a bit + * Explicitly call --with-app-defaults (set to /etc/X11/app-defaults) during + configure + + -- David Nusinow Fri, 6 Jan 2006 00:23:38 -0500 + +xterm (204-0pre1) experimental; urgency=low + + * The xterm package has been splitted from the upstream X.Org tree, in + advance of the upcoming modularization in X.Org 7.0. + * First release to experimental, in order to test if the transition has been + successful. + * Credit is given to X Strike Force for their good work over these years, + keeping a bunch of old entries from current X.Org changelog. + * Most of the corresponding code has been imported from the X.Org packages. + Obviously, debian/rules has been revamped and simplified. + * New upstream release (patchlevel #204). + - The mere existence of independent packages for xterm eases the + identification (i.e. xterm's version). Thus it closes: #324352. Also + added a patch to version.h in the meanwhile to override the "X.Org + 6.8.2" string in the configure script. + - Work around quirk in shell which allowed user to "run" uxterm script + when there was no UTF-8 locale installed by entering "sh -x uxterm". + Also popup an xmessage to show the problem for users who run this via a + GUI (closes: #318513). + - Disallow changes to fonts, toolbar and scrollbar when the vt100 window + is iconified, to simplify management of the active icon. + - Fixes to make -geom option work properly with the toolbar configuration + (Gentoo Bugzilla #90717, #91967). + - Minor improvements to scrollbar layout. + - Improve initialization due to utf8 resource by loading the utf8Fonts + resource in the case where locale resource is false. Also in this case, + do not disable switching UTF-8 mode on/off. + - Minor optimization of TrueType font-loading. Load italic font only + when needed. + - Correct variable used to store temporary result from lookup of bold + font, when initializing the wide-bold-font data and no immediate match + is found by asking for a bold variant of the wide-font. The result was + to use overstriking rather than the actual bold font (this is the fix + for #318162, patch by Eugene Konev). + - Modify initialization of allowSendEvents and allowWindowOps to prevent + modification with the editres protocol. + - Add support for interpreting the underline attribute as an italic font + in Xft mode (patch by Chuck Blake). + - Improve initialization of toolbar. + - Fix logic in find_utmp, which did not reset result in getutid(), + causing an infinite loop in some conditions. + - Set the _NET_WM_PID property. + - Change default values for minBufSize and maxBufSize to 4096 and 32768 + respectively so that the initial read request will match the value from + before changes to use sched_yield(). + - Make paste of UTF-8 faster for Western character sets by checking range + of incoming data. + - Added experimental option to allow applications to get or set the + selection data. + - Fix an off-by-one error parsing -S/nn option (closes: #311438, thanks to + Peter Chubb). + - Fix an initialization bug from patch #201 that broke logging. + - Amend change to command-line processing in patch #201 to avoid conflict + with -e option (closes: #318280). + * debian/control: Removed Conflicts with xbase << 3.3.3.2whatever, and + suidmanager << 0.50. They are not even in Sarge. + * The patch structure is basicly the same as in X.Org. The corresponding + patches from X.Org patch tree have been extracted. Added a change in the + .TH field of the manpage in order to shut up lintian. + * Added --enable-256-color to configure (closes: #305540). + * Moved away things from /usr/X11R6/ to /usr, now that we are free of + imake's shackles. As a bonus, it removes several lintian warnings. Renamed + things in debian/xterm.{postinst,prerm}. + * Added an override file for lintian warning about setgid in xterm. + * The postinst script is now fixed, and it points to correct manpages + (closes: #315195). + + -- David Martínez Moreno Mon, 3 Oct 2005 12:04:44 +0200 + +xorg-x11 (6.8.2.dfsg.1-4) unstable; urgency=low + + Changes by David Nusinow: + + - Remove README.DGA from xserver-xorg.docs.m68k, mips, mipsel, and arm to + fix FTBFS. + - Resolve MANIFEST.mips to fix FTBFS + - Add missing docs to xserver-xorg.docs.mipsel + - Incorporate patch from HEAD to include more radeon PCI ID's. Thanks, + Harald Welte. Closes: #318948. + - Make the build not fail on MANIFEST check. If there are discrepancies, + I'd rather have a mostly complete X package than a failure on some + arches. The failure diff will still be spit out, allowing us to fix the + problems. + + Changes by Eugene Konev: + + - Update 030_libvgahw_gcc4_volatile_fix.diff to include a complete fix. + Closes: #318218. + + Changes by David Martínez Moreno + + - Fix xlibmesa-dri.bug.script to attach correct log files + + -- David Nusinow Mon, 18 Jul 2005 09:34:07 -0400 + +xorg-x11 (6.8.2.dfsg.1-3) unstable; urgency=low + + Changes by David Nusinow: + + - Change reference to xlibglu1-xorg-dbg to libglu1-xorg-dbg in + debian/rules (thanks Steve Langasek) + - Update MANIFEST.in, and missing items to be installed for alpha, arm, + and m68k + - Fix incorrect C++ ABI transition. libglu1-xorg is implemented in C++ + but only exports a C ABI, so transitioning it is unnecessary. The + package now provides both libglu1 and libglu1c2. Thanks to Marcelo + Magallon and Steve Langasek. + - Refer to correct config file in xserver-xorg.bug.script (thanks David + Martínez Moreno) + - Add 030_libvgahw_gcc4_volatile_fix.diff to work around libvgahw.a gcc4 + breakages. Thanks David Martínez Moreno and Paul Hampson. + Closes: #318218, #318231, #318271, #318405, #318430 + - dexconf fix for 3 button mouse emulation. Thanks David Martínez Moreno; + Closes: #318092 + - Turn on SELinux support in xdm. Thanks Manoj Srivastava; Closes: #317024 + - Add libselinux1-dev to Build-Depends + - Update Danish debconf translations. Thanks to Claus Hindsgaul; + Closes: #318227 + - Update Czech debconf translations. Thanks to Miroslav Kure; + Closes: #318323 + - Update Portuguese (Brazilian) debconf translations. Thanks to Andre + Luis Lopes; Closes: #318635 + - Update German debconf translations. Thanks to Alwin Meschede; + Closes: #318721 + + * Changes by Daniel Stone: + - Fix S/390 build by bringing MANIFEST and *.install.s390 files up to + date. + - Let Xdmx build on S/390 as well. Move xdmx.install.* files to + xdmx.install, since they were identical for each architecture. + - Bring MANIFEST.mips{,el}.in up to date. + - Bring xserver-xorg.install.{alpha,mips{,el}} up to date. + - Fix mysterious breakage in the SPARC build by fixing its MANIFEST good + and proper. + - Drop libstdc++6-dev dependency entirely, since build-essential will + bring that in. Also drop libc6-dev dependency. Closes: #318353 + + Changes by Eugene Konev: + + - Add patch 002a_xterm_no_overstrike_bold_fonts.diff to fix xterm bold + fonts ugliness; Closes: #318162 + + -- David Nusinow Tue, 12 Jul 2005 16:52:39 -0400 + +xorg-x11 (6.8.2.dfsg.1-2) unstable; urgency=low + + Changes by David Nusinow: + + - Change x-window-system to depend on xprint + - Change 009 patch to refer to xprint instead of xprt-xprintorg + + - Run debian/rules update-po to update translation templates + + - Drop versioned dependency on libstdc++ + + - Update debian/NEWS with a few things + + - Update xlibs-static-dev package description with libXprint* libs (thanks + Nathanael Nerode) + + - Add 104_sparc_no_mv8_flag.diff to fix a build problem on sparc (thanks + Julien Cristau) + + Changes by Daniel Stone: + + - Fix FTBFS by only forcing BuildXprintLib building when we're not + BuildingServersOnly (i.e. only in the normal build, not in -dbg). + - Change NOT_BUILDING_XFREE86_X_SERVER to _XORG_ in vars.s390 (fixes FTBFS + also). + - Add 000_stolen_from_drm.diff from Ubuntu, with annotations, which fixes + FTBFS when using linux-libc-headers. + + -- David Nusinow Mon, 11 Jul 2005 20:47:31 -0400 + +xorg-x11 (6.8.2.dfsg.1-1) unstable; urgency=low + + Changes by David Nusinow: + + - Add missing comma to Build-Depends in debian/control. Thanks to Eugene + Konev for catching this! + + - Change x-common to x11-common in order to reflect that this package + provides symlinks named x11 + + - Add -f to update-rc.d call in xfree86-common.postinst.in to get rid of + error during configure stage. Thanks to Norbert Tretowski for providing + the fix. + + - Disable acceleration on C&T 69000 by default but allow it to be overrided + by config file. Thanks to Dan Christensen and Nathanael Nerode; + Closes: #315315 + + - Remove svn comments from debian/local xpm pixmaps to unbreak xdm. Thanks + to Eugene Konev. + + - Disable xprt. Thanks to Eugene Konev! + - Change x-window-system to depend on xprt-xprintorg (thanks to Drew + Parsons); Closes: #300974 + + - Change debian/po/POTFILES.in to use x11-common templates, not + xorg-common.templates. Thanks to Eugene Konev + + - Pull the following from Ubuntu Breezy patches to allow gcc4 builds + - 024d_radeon_fix_gcc4_build.diff (to which I incorporated a one-line fix + from the 024a_radeon_benh_fixes.diff patch) + - 991_ubuntu_gcc_flags.diff + + - Package name changes for the C++ ABI transition: (Thanks to Eugene Konev, + Steve Langasek, and Daniel Stone) + - xlibmesa-glu renamed to libglu1-xorg; Provides: changed to + libglu1c2, libglu1c2 added to the Conflicts: and Replaces: + - libglu1-xorg shlibs changed to libglu1-xorg | libglu1c2 + - xlibmesa-glu-dbg renamed to libglu1-xorg-dbg; xlibmesa-glu-dbg + added to Conflicts: and Replaces: + - xlibmesa-glu-dev renamed to libglu1-xorg-dev; depend on + libglu1-xorg instead of xlibmesa-glu, of course, and add + xlibmesa-glu-dev to the Conflicts/Replaces/Provides + - Update x-window-system-core to depend on libglu1-xorg instead of + xlibmesa-glu + - Update x-window-system-dev to depend on libglu1-xorg-{dev,dbg} + instead of xlibmesa-glu-{dev,dbg} + - Drop the xlibmesa3, xlibmesa3-dbg, and xlibmesa-dev transition + packages; these existed for the woody->sarge transition, and they + can't possibly provide a proper transition for anything that + relies on the C++ ABI, so better to get rid of them altogether + - Rename all xlibmesa-glu package files accordingly + + - Remove libglu1-xorg-dev's dependency on "libstdc++5-3.3-dev | + libstdc++-dev": this doesn't actually ensure that the correct C++ + headers are installed, and it's no longer the correct libstdc++ + version anyway. + + - Add patch 915_disable_i915_debugging.diff, to disable non-x86 debug + statements for this chip. Thanks to Aaron M. Ucko + + - Patch Audit + - 0000_backport_from_upstream.diff updated + - Thomas Winischhofer's post-6.8.2 fixes to MiscPassMessage(); + Closes: #285807 + - 000_backport_from_author_xterm.diff ported (Nathanael Nerode) + - Closes: #297430, #296592, #298551 + - 002_xdm_fixes.diff updated (Eugene Konev) + - 003b_xfs_fixes.diff ported (Eugene Konev, Nathanael Nerode) + - 005_rgb.txt_in_etc_X11.diff updated (Nathanael Nerode) + - 008_fix_xgetpw_macro.diff updated (Eugene Konev) + - 011_SECURITY_makedepend_safer.diff (Nathanael Nerode) + - 011a_recognize_glibc_2.3.2_locale_names.diff (Nathanael Nerode) + - 013a_xkb_symbols_euro_support.diff added (Eugene Konev) + - 019_iso8859-15_Compose_fix.diff updated (Eugene Konev) + - 043_ati_r128_update_chip_identification.diff added (Nathanael Nerode) + - 047_mga_manpage_updates.diff updated + - 055_lnx_evdev_keyboard.diff updated + - 067_fix_X11_and_xdm_build_problems.diff ported (Eugene Konev) + - 089_xkb_fix_symbols_pc_lt.diff got ID tags back + - 093_xkb_fix_macintosh_problems.diff got macintosh equal key fix ported + - 099e_xorgconf_manpage_overhaul.diff ported + - 099h_mesa_tdfx_load_right_glide_library.diff patched to use + libglide_h3/5 as used in unstable packages. + - 099q_tdfx_improve_mode_rejection_diagnostics.diff added + - 099q_xkb_tr_fix_eacute.diff removed + - 099r_xlsfonts_do_not_spew_usage_on_connection_error.diff added + - 099s_selinux_support.diff ported + - 099s_xkb_tr_fix_eacute.diff added + - 099t_xkb_remove_hidden_attributes.diff ported + - 099u_mkdirhier_rewrite.diff ported (Eugene Konev, Nathanael Nerode) + - 099v_fontserver_fix_SEGV.diff ported + - 099x_xdm_support_logfile_rotation.diff ported + - 250_m68k_build_scanpci.diff updated + - 304_arm_Xlib.h_kludge_around_ARM_ABI_brain_damage.diff ported + - 910_debian_Xserver_RTFF.diff updated + - 913_debian_remove_code_ref_to_object_code_files.diff ported + - patch to xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.c + re-added to comply with post-sarge SC + + -- David Nusinow Fri, 24 Jun 2005 10:24:48 -0400 + +xorg-x11 (6.8.2.dfsg.1-0pre1v1) experimental; urgency=low + + Changes by David Nusinow: + + - Updated packaging to be based off Ubuntu hoary packaging + - Merge changelog from Ubuntu hoary package to this changelog + - Change instances of "Ubuntu" to "Debian" in control file + - Add Daniel Stone to list of Debian package authors in copyright for + his work on this package. Update branding in general in this file. + - Update shell-lib.sh to merge changes from current xfree tree + - Change twm manpage to be set to twm.1x rather than twm.1, as in the + xfree packaging + - Re-brand XFree86 to X.Org in README + - Re-add usr/X11R6/lib/X11/fonts/encodings/large/jisx0208.1983-0.enc.gz + to xfonts-base.install + - Merge xfree tree xfree86-common.init in to xorg-common.init + - Comment out lsb stuff for now, since Debian can't guarantee it. + Replace logging with echo's like in xfree script. + - Re-add Branden's copyright to xfs.init + - Merge changes from xfree tree in to xserver-common.config.in + - Merge changes from xfree tree to scripts directory: + - manifest-install-reconcile + - validate-posix-sh + - Merge changes from xfree86 tree to local directory: + - dexconf + - dexconf.1 + - FAQ.xhtml + - Fix a freedesktop.org reference to X.Org + - xterm.faq.html + - xvfb-run + - xdm/Xstartup + - Xsession.d/30xorg-common_xresources + - xdm.init + - xdm.logrotate + - xdm.README.Debian + + - Re-add jisx0208.1983-0.enc.gz to MANIFEST.all's list of font encodings + until I know more about why it was removed. + + - Re-add the following to MANIFEST.[arch] and xdm.install + - etc/X11/xdm/Xreset + + - Re-enable various modules for xlibmesa-dri-dbg.install + - i810 and tdfx for amd64 . Apparently these were supposed to be + re-enabled according to the changelog + - i830 and ffb for i386 + - ffb, i810, and i830 for ia64 + - Re-enable various modules for xlibmesa-dri.install + - i810 for amd64 + - ffb and i830 for i386 + - ffb, i810, and i830 for ia64 + + - Handle xlibs-static package split + - Add libxvmc-dev.install.hurd-i386 file which removes + usr/X11R6/lib/libI810XvMC.a. Removing + xlibs-static-dev.install.hurd-386. + - Add libxxf86vm-dev.install.s390 file which removes manpages. Removing + xlibs-static-dev.install.s390. + - Removing xlibs-static-pic-install.[hurd-i386,netbsd-i386,s390] as the + files which they specifically removed in the past don't appear to be + shipped any more. + + - Merge and edit control file to refer to XSF + + - Fixes in local + - Spelling fix in dexconf.1 + - Spelling fix and merge updates in to FAQ.xhtml + - Merge update to lxterm, uxterm.1, xdm.options.5, XF86Config.7, + xfs.options.5, Xsession.5, Xsession.options.5, Xwrapper.config.5 + - Re-added Xreset script in local/xdm + + - Branding edit and merges to debian/rules + + - Patch Audit + - Edited 0000_backport_from_upstream.diff + - Removed redundant patches that are also in 000_stolen_from_HEAD.diff + - Edited 000_stolen_from_HEAD.diff + - Re-diffed Xpm's create.c fix to get it to apply properly + - Edited 002_xdm_fixes.diff, 003_linux.cf_and_xfree86.cf.diff, and + 068_fix_InstallAppDefFiles_screwage.diff to allow them to apply + properly with no fuzz + + * Update FAQ to refer to X.Org instead of freedesktop.org where appropriate. + (Closes: #309811) + + * Change xorg-common to x-common + + * Update lsb-base version requirement to 3.0-1 + + Changes by Branden Robinson: + + * Initial release, based upon upstream CVS tag XORG-6_8_2. See + debian/copyright for details of material removed due to overlap with + existing Debian packaging or license terms that fail to satisfy the DFSG. + + * Explain build-dependencies and build-conflicts in debian/control comments. + + * Update build-dependencies relative to xfree86 4.3.0.dfsg.1-12: + + List upstream build dependencies on commands first, followed by + upstream build depenencies on library headers, and then Debian packaging + infrastructure dependencies. + + Remove no-longer needed build dependencies on libfontconfig1-dev (header + files not used), libpaperg (superseded by libpaper1, and depended upon + by tetex-bin nowadays), linux-kernel-headers (depended on by + build-essential package libc6-dev), bzip2 and dbs (new organization of + source package will not require these). + + * Backport fixes from upstream CVS trunk: + + Shut up (tons of) Imake warnings on Debian systems by testing for + variable being defined before testing its value. (Presumably the + fallback definition of NothingOutsideProjectRoot in Imake.tmpl was + intended to prevent this, but it apparently is not in effect yet + when linux.cf is parsed.) + + Fix CAN-2005-0605: scan.c in the Xpm library may allow attackers to + execute arbitrary code via a negative bitmap_unit value that leads + to a buffer overflow. (see Debian #298939) + + * Update debian/copyright to correctly document source package name, origin + of .orig.tar.gz file, and credit David Nusinow as a package author. + Restore removal of credits to Stephen Early, Mark Eichin, and ISHIKAWA + Mutsumi as package authors. Alter Debian "fallback" copyright notice to + credit copyright from changes in 1996 to Stephen Early, in 1997 to Mark + Eichin, and for the years since to Branden Robinson. In the U.S., a + written instrument is required to transfer copyright, and to the best of + my knowledge, none of Stephen, Mark, or myself ever signed such an + instrument. Remove anti-publicity clause from Debian fallback copyright + notice as it's not part of the original MIT/X11 license from the 1980s and + has no force under U.S. copyright law (asserting copyright in something, + even Free Software, doesn't waive a person's publicity rights anyway). + Remove duplicate Debian copyright notice for Software in the Public + Interest, Inc. Merge change from Debian xfree86 SVN to stop identifying + the Compugraphic and Adobe fonts from the Xprint server as non-DFSG-free; + the files have been removed from the upstream archive for another reason, + namely the existence of the xprint package. + + * Place Ubuntu package changelog entries in changelog.Ubuntu (as they do not + actually reflect package release history as a Debian user would see it). + Ship this changelog in /usr/share/doc/xorg-common. + + * Add debian/scripts/missing-keyword-sniffer, which identifies plain text + files in the source package that are missing Subversion Id keywords or the + corresponding property. + + * Rework source package to consist of an unpacked source tree, instead of + shipping a .tar.gz inside the .orig.tar.gz. + + Add debian/scripts/up-scripts (called automatically by dbs's "setup" + target), which copies the source tree into build-tree using hardlinks. + + Update debian/setperms to ensure that up-scripts is executable. + + Update debian/vars to stop defining SOURCE_DIR variable. + + Put debian/scripts in PATH and export it from debian/rules, so that dbs + can find up-scripts. + + Update target dependencies in debian/rules from "$(patched)" to "setup", + so that we can be sure up-scripts is run. + + * Make .orig.tar.gz preparation less opaque. + + Add prune-upstream-tree and make-orig-tar-gz phony targets to + debian/rules. (Note that these are not intended for ordinary package + builds, and have to be manually invoked.) + + Remove outdated and now-obsolete file debian/scripts/prune-non-free. + + Add $(SOURCE_NAME) and $(UPSTREAM_VERSION) variables to debian/rules. + + * Update paths to files containg sourceless firmware in debian/copyright. + + * Grab patches from upstream CVS HEAD: + - Add radeon(4x) manpage updates documenting VGAAccess, ReverseDDC, and + LVDSProbePLL options. (Benjamin Herrenschmidt) + . + - Add VGAAccess option to r128 driver, based on Benjamin Herrenscmidts's + radeon patch. r128 should now work on PowerPCs without "UseFBDev". To + use this on PowerPC, make sure you set "UseFBDev" to "false". + (Alex Deucher) + . + + * Document DFSG-non-freeness of PolyglotMan ("rman") in debian/copyright. + + * Update patch #058 to give Xcomposite, Xdamage, Xevie, and Xfixes their own + copies of the config-subst script, instead of hard-coding a within-tree + path to the copy in the Xcursor library. (I don't know what the point of + directing these Imakefiles over to Xcursor's copy was -- there were + already four identical copies of config-subst in X.Org 6.8.2 anyway, so + this decision didn't help matters much. :) ) Update the Imakefiles to look + for config-subst in the current working directory instead of ../Xcursor. + Convert local includes to system includes in the GLU library and X server + so that the RENDER protocol headers can actually be found. Define + RenderDefines if either BuildRender or HaveRenderLibrary is true, not just + BuildRender. Only specify render.h and renderproto.h as targets and + install renderproto.h as part of the SDK if we're building the extension + and *don't* have the extension library in the build environment. Update + MANIFEST.*.in files to reflect the fact that render.h and renderproto.h + are no longer installed. + + * Stop removing the debian/local/xlibmesa-drm-source directory in + debian/rules's clean target, as nothing creates it, and nothing has since + xfree86 4.3.0-0pre1v3. + + * Add build-dependency on render-dev (>> 1:0.9), since several files + directly #include render.h and renderproto.h. Version dependency since + symbols new to renderext 0.9 are used. Document dependency in detail in + debian/control comments. + + * Update patch #908 to stop attempting to install the sourceless microcode + files associated with the rendition driver, which are not part of the + source package (see debian/copyright). Correct + debian/MANIFEST.{alpha,amd64,hurd-i386,i386,ia64,sparc}.in to reflect the + absence of these files. (Other architectures do not build the rendition + driver.) Thanks to Jesus Climent for spotting this problem. + + -- David Nusinow Wed, 22 Jun 2005 11:24:38 -0400 --- xterm-325.orig/debian/clean +++ xterm-325/debian/clean @@ -0,0 +1 @@ +debian/local/xterm.faq --- xterm-325.orig/debian/compat +++ xterm-325/debian/compat @@ -0,0 +1 @@ +9 --- xterm-325.orig/debian/control +++ xterm-325/debian/control @@ -0,0 +1,144 @@ +Source: xterm +Section: x11 +Priority: optional +Maintainer: Debian X Strike Force +Uploaders: Sven Joachim +Standards-Version: 3.9.8 +Vcs-Browser: https://anonscm.debian.org/cgit/pkg-xorg/app/xterm.git +Vcs-Git: https://anonscm.debian.org/git/pkg-xorg/app/xterm.git +Homepage: http://invisible-island.net/xterm/xterm.html +Build-Depends: + libncurses5-dev | libncurses-dev, + libxft-dev (>> 2.1.2), libxrender-dev (>> 1:0.9.0), + libxaw7-dev, + libxkbfile-dev, + libutempter-dev, + libxcursor-dev, + libxinerama-dev, + debhelper (>= 9), + quilt, + autotools-dev, + lynx | lynx-cur, + xorg-docs-core, + desktop-file-utils, + +# Reasons for Build-Depends: +# +# (An "R" to the left of a file specification indicates a file that was removed +# from the upstream source tree when the Debian source package was prepared and +# an "I" to the left of a file specification indicates a file that is +# irrelevant or unused as part of the package build process; such files +# therefore do not actually cause a build-dependency, but are mentioned here for +# completeness.) +# +# Upstream build dependencies on commands are listed first, followed by +# upstream build depenencies on library headers, and then Debian packaging +# infrastructure dependencies. +# +# libncurses5-dev | libncurses-dev +# Tekproc.c:#include +# I aclocal.m4:#include ],[ +# I aclocal.m4:#include +# I aclocal.m4:#include /* eliminate most BSD hacks */ +# button.c:#include +# charproc.c:#include +# I configure:#include +# I configure:#include +# I configure:#include /* eliminate most BSD hacks */ +# fontutils.c:#include +# main.c:#include +# menu.c:#include +# misc.c:#include +# os2main.c:#include +# print.c:#include +# resize.c:#include +# resize.c:#include +# resize.c:#include +# resize.c:#include /* tgetent() */ +# scrollbar.c:#include +# util.c:#include +# libxft-dev (>> 2.1.2) +# aclocal.m4:#include ],[ +# configure:#include +# ptyx.h:#include +# libxrender-dev (>> 1:0.9.0) +# aclocal.m4:#include +# configure:#include +# libxaw7-dev +# main.c:#include +# main.c:#include +# main.c:#include +# menu.c:#include +# menu.c:#include +# menu.c:#include +# menu.c:#include +# menu.c:#include +# menu.c:#include +# menu.c:#include +# menu.c:#include +# menu.c:#include +# menu.c:#include +# menu.c:#include +# menu.c:#include +# menu.c:#include +# menu.c:#include +# menu.c:#include +# menu.c:#include +# menu.c:#include +# menu.c:#include +# os2main.c:#include +# os2main.c:#include +# os2main.c:#include +# scrollbar.c:#include +# scrollbar.c:#include +# scrollbar.c:#include +# Tekproc.c:#include +# Tekproc.c:#include +# Tekproc.c:#include +# libxkbfile-dev +# data.h:#include +# libutempter-dev +# main.c:#include +# libxcursor-dev +# misc.c:#ifdev HAVE_LIB_XCURSOR +# libxinerama-dev +# util.c:#ifdef HAVE_X11_EXTENSIONS_XINERAMA_H +# xorg-docs-core provides X(7) which minstall.sh tries to +# detect +# debhelper (>= 9) debian/compat = 9 +# quilt patch management system +# autotools-dev update config.guess, config.sub +# lynx | lynx-cur generates plain-text version of xterm faq +# desktop-file-utils for installing xterm.desktop + +Package: xterm +Architecture: any +Multi-Arch: foreign +Depends: + xbitmaps, + ${shlibs:Depends}, + ${misc:Depends}, +Recommends: x11-utils +Suggests: xfonts-cyrillic +Provides: x-terminal-emulator +Description: X terminal emulator + xterm is a terminal emulator for the X Window System. It provides DEC VT102 + and Tektronix 4014 compatible terminals for programs that cannot use the + window system directly. This version implements ISO/ANSI colors and most of + the control sequences used by DEC VT220 terminals. + . + This package provides four commands: xterm, which is the traditional + terminal emulator; uxterm, which is a wrapper around xterm that is + intelligent about locale settings (especially those which use the UTF-8 + character encoding), but which requires the luit program from the x11-utils + package; koi8rxterm, a wrapper similar to uxterm for locales that use the + KOI8-R character set; and lxterm, a simple wrapper that chooses which of the + previous commands to execute based on the user's locale settings. + . + A complete list of control sequences supported by the X terminal emulator + is provided in /usr/share/doc/xterm. + . + The xterm program uses bitmap images provided by the xbitmaps package. + . + Those interested in using koi8rxterm will likely want to install the + xfonts-cyrillic package as well. --- xterm-325.orig/debian/copyright +++ xterm-325/debian/copyright @@ -0,0 +1,178 @@ +This package was debianized by first time by David Martinez Moreno + on Tue, 27 Sep 2005 01:45:34 +0200. + + +Upstream sources: http://invisible-island.net/xterm/xterm.html + +Copyright 1997-2016 by Thomas E. Dickey +Copyright 1999-2000 by Steve Wall +Copyright 2013,2014 by Ross Combs + + All Rights Reserved + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name(s) of the above copyright +holders shall not be used in advertising or otherwise to promote the +sale, use or other dealings in this Software without prior written +authorization. + + +Copyright 1998 by Jason Bacon + + All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of the above listed +copyright holder(s) not be used in advertising or publicity pertaining +to distribution of the software without specific, written prior +permission. + +THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD +TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE +LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +Copyright (C) 2001 by Juliusz Chroboczek + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +Copyright 1984-1994 X Consortium + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the X Consortium shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization +from the X Consortium. + + +Copyright 1987,1988 by Digital Equipment Corporation, Maynard, Massachusetts. + + All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Digital Equipment +Corporation not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior permission. + +DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + + +Copyright 1988,1989 The Open Group + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from The Open Group. + + +Copyright 2001, 2004 Branden Robinson + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +SOFTWARE IN THE PUBLIC INTEREST, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + + +Markus Kuhn -- 2007-05-25 + +Permission to use, copy, modify, and distribute this software +for any purpose and without fee is hereby granted. The author +disclaims all warranties with regard to this software. + --- xterm-325.orig/debian/gbp.conf +++ xterm-325/debian/gbp.conf @@ -0,0 +1,6 @@ +[DEFAULT] +pristine-tar = True +debian-branch = debian-unstable +upstream-branch = upstream-unstable +debian-tag = xterm-%(version)s +upstream-tag = xterm-%(version)s --- xterm-325.orig/debian/local/lxterm +++ xterm-325/debian/local/lxterm @@ -0,0 +1,28 @@ +#!/bin/sh + +PROGNAME=${0##*/} + +die () { + echo "$PROGNAME: fatal error: $*" >&2 + exit 1 +} + +if ! which locale >/dev/null 2>&1; then + die "required program \"locale\" not available" +fi + +case "$(locale charmap 2>/dev/null)" in + KOI8-R) + XTERM=koi8rxterm + ;; + UTF-8) + XTERM=uxterm + ;; + *) + XTERM=xterm + ;; +esac + +exec "$XTERM" "$@" + +# vim:set ai et sw=4 ts=4 tw=80: --- xterm-325.orig/debian/local/lxterm.1 +++ xterm-325/debian/local/lxterm.1 @@ -0,0 +1,53 @@ +.TH lxterm 1 "2004-12-19" "Debian Project" +.SH NAME +lxterm \- locale\-sensitive wrapper for xterm +.SH SYNOPSIS +.B lxterm +[ +.I xterm-options +] +.SH DESCRIPTION +.B lxterm +is a wrapper around the +.BR xterm (1) +program that invokes +.BR xterm , +.BR koi8rxterm (1), +or +.BR uxterm (1) +as appropriate, based on the user's locale setting. +All arguments to +.B lxterm +are passed to +.B xterm +without processing; the +.BR \-class , +.BR \-k8 , +and +.B \-u8 +options should not be specified because they are used by +.B koi8rxterm +and +.BR uxterm . +See the +.B xterm +manual page for more information on +.IR xterm-options . +.PP +The +.BR locale (1) +utility is used to determine the character set used by the current locale. +If the character set is UTF-8, +.B uxterm +is invoked; if the character set is KOI8-R, +.B koi8rxtem +is invoked; otherwise, \(oqplain\(cq +.B xterm +is invoked. +.SH AUTHOR +Branden Robinson +.SH "SEE ALSO" +.BR locale (1), +.BR koi8rxterm (1), +.BR uxterm (1), +.BR xterm (1) --- xterm-325.orig/debian/local/xterm.faq.html +++ xterm-325/debian/local/xterm.faq.html @@ -0,0 +1,7254 @@ + + + + + + + + XTerm – Frequently Asked Questions (FAQ) + + + + + + + + + + + + +
+ +

http://invisible-island.net/xterm/
+ Copyright © 1997-2015,2016 by Thomas E. Dickey

+
+ +

Here is + the latest version of this file.

+ +

XTerm – Frequently Asked Questions + (FAQ)

+ + + +

What + is XTerm?

+ +

From the manual page:

+ +
+

The xterm program is a terminal emulator for the X Window + System. It provides DEC VT102/VT220 and selected features from + higher-level terminals such as VT320/VT420/VT520 (VTxxx). It + also provides Tektronix 4014 emulation for programs that cannot + use the window system directly. If the underlying operating + system supports terminal resizing capabilities (for example, + the SIGWINCH signal in systems derived from 4.3bsd), xterm will + use the facilities to notify programs running in the window + whenever it is resized.

+
+ +

That is, xterm (pronounced "eks-term") is a + specific program, not a generic item. It is the standard + X terminal emulator program.

+ +

This FAQ presents various useful bits of information for both + the specific program as well as other programs that imitate + it.

+ +

As a stylistic convention, the capitalized form is + "XTerm", which corresponds to the X resource class name. + Similarly, uxterm becomes "UXTerm".

+ +

Who + wrote XTerm?

+ +

I've been working on xterm since early 1996 (see my changelog for details).

+ +

But the program is much older than that.

+ +

A + Prehistory Perspective

+ +

A lot of people, cited at the bottom of the manual page wrote + the original xterm program, maintained by the X Consortium (later + part of the Open Group – I'm well aware of the distinction, + but am citing when the work was done, not who the current owner + may be). There is no changelog, and it is not clear who did what. + Email from Jim Gettys (September 1998) provides some + background:

+ +
+

Cast of thousands...

+ +

To give a bit of history, xterm predates X!

+ +

It was originally written as a stand-alone terminal emulator + for the VS100 by Mark Vandevoorde, as my coop student the + summer that X started.

+ +

Part way through the summer, it became clear that X was more + useful than trying to do a stand alone program, so I had him + retarget it to X. Part of why xterm's internals are so + horrifying is that it was originally intended that a single + process be able to drive multiple VS100 displays. Don't hold + this against Mark; it isn't his fault.

+ +

I then did a lot of hacking on it, and merged several + improved versions from others back in.

+ +

Notable improvements include the proper ANSI parser, that + Bob McNamara did.

+ +

The Tek 4010 support came from a guy at Smithsonian + Astrophysical Observatory whose name slips my mind at the + moment.

+ +

Ported to X11 by Loretta Guarino.

+ +

Then hacked on at the X Consortium by uncounted people.

+
+ +

There is a git repository + here which gives some more of xterm's prehistory.

+ +

Email from Doug Mink (October 1999) provides more + background:

+ +
+

I was checking out the newly revised AltaVista search engine + to see what was on the net about xterm, and I found your pages. + I can add to the FAQ in that I was the "guy at the Smithsonian + Astrophysical Observatory" Jim Gettys refers to. I am listed at + the end of the man page under authors. What happened was that I + was hired by SAO (after leaving the research staff at MIT) in + October 1985 to write analysis software for the Spacelab 2 + Infrared Telescope which was to fly on the Space Shuttle in + 1985 less than six months after I was hired. I came with a tar + tape full of software I had written for Unix and Tektronix + terminals, but I was presented with a VS100 terminal which had + an early version (X6 or so) of xterm, with no graphics + capabilities. SAO is at Harvard, across Cambridge from MIT, + where Jim Gettys was detailed from DEC to the X project, and + Jim had connections with SAO, having worked here after college + (MIT, where we had both worked at the observatory at various + times); he was still sharing an apartment with an SAO colleague + of mine, too. Anyway, everyone decided that since I knew + Tektronix commands pretty well, and our group desparately + needed the graphics capabilities, it would be a good use of my + time to implement a Tektronix terminal emulator under X. So I + set to work learning more C--I had only written a couple of + wrappers to C I/O routines so I could use them with my Fortran + software--and wrote a Tektronix emulator. The only X + documentation at the time was the code itself. While I was at + it, I wrote an improved Tektronix emulator for our Imagen laser + printer which used the full resolution of that 300 dpi printer + instead of the effective 100 dpi (i.e. jaggy) emultator + distributed with the printer. The original xterm Tek emulator + shared a window with the VT100 emulator, much like on the VT240 + terminals which I had been using at MIT before I came to + Harvard. With a VAX 750 running several VS100's, window + creation was sloowww, so sharing a window was the quickest way + to do things, and all of my software was written for that mode + of operation, anyway. While I wrote the emulator so that my + software would work on it, it was tested by the X group against + a BBN graphics package, the name of which slips my mind right + now.

+ +

Anyway, 15 years later, I am still using xterm and some of + the same mapping software I wrote the emulator for. And I am + still at the Smithsonian Astrophysical Observatory.

+
+ +

My + Involvement

+ +

My involvement with xterm through XFree86 + began at the end of 1995. + This website has been "here" since 2001/6/5, replacing my + ClarkNet page. I started the ClarkNet page 1996/12/31, as a + followup to the release of ncurses + 4.0) which featured xterm as one of the 16 programs I was + involved with. From the outset, the page provided a link to a + snapshot of the current source. Copies of patches which I sent to + XFree86 were available on the ftp area.

+ +

XFree86 had its sources in CVS, but (like others in that era), + were not directly visible to random developers. That came later. + I started by downloading the sources (30Mb of compressed + tar-files on a 56Kb phone connection took about 6 hours) and + updating them with patches from the XFree86 mailing list.

+ +

Like the other programs that I worked on with others (vile, tin, + lynx), I set up an RCS archive to + track my changes locally before sending patches to the + development list. As the XFree86 developers issued new patches, I + would re-synchronize my archive. Later, XFree86 provided CVS + (initially readonly). I was granted commit privileges on this + in + November 2000.

+ +

Throughout this period, my work on xterm was + released as part of XFree86. It was rare for a separate package + to be provided. That was due to the potential conflict between + the install procedures. Users of the downloads from my web/ftp + site were predominantly individual developers.

+ +

There were exceptions. Christian Weisgerber proposed a package + for FreeBSD ports later in 1999 (ports/15545: + new port: x11/xterm, followup in March + 2000). However, that was an exception. None of the Linux + distributions provided a separate package before 2003 (when Mike + Harris created a package of patch #177 for Red Hat). Again + that is more of an exception than a rule:

+ +
    +
  • SuSE's package began October 23, 2004 with patch #196.
  • + +
  • Mandriva's package began October 22, 2005 with patch #205.
  • + +
  • The Debian package for xterm began in January 6, 2006 with + patch #204.
  • +
+ +

Given that context (sources distributed via XFree86 CVS, + releases via XFree86), the statement made by an Xorg hacker + + early in 2005 asserting that "It has not been maintained by + anyone within the XFree86 or X.org trees for many years" was at + best misleading.

+ +

After the "fork" (sic) of Xorg in 2004, + I continued to commit changes for xterm in XFree86 + CVS until patch + #216 in mid-2006. I stopped at that point because it was not + possible to incorporate changes into xterm which were not sent to + me first. I still send patch announcements to both the XFree86 + and Xorg mailing lists, of course.

+ +

Focus of this FAQ

+ +

This FAQ is oriented toward the version of xterm originally + distributed with XFree86 (more commonly known as modern, or "new + xterm", with a corresponding terminal description "xterm-new"), + which was based on the X11R6.3 xterm, with the addition of ANSI + color and VT220 controls.

+ +

What is a VT220?

+ +

Why a + VT220?

+ +

The manual page mentions a VT220. Most terminal emulators + documentation talk about VT100. But a VT100 is a rather limited + subset of what people expect:

+ +
    +
  • VT100s have no function keys. Arguably, PF1-PF4 are + function keys. My keyboard has 12 function keys.
  • + +
  • VT100s do not do color.
  • +
+ +

Initially, I was only interested in making colors workable for + curses programs.

+ +

Later, I noticed that xterm had some support for what would + now be termed as ISO-2022. That was a VT220 feature, rather than + VT100. There were some missing pieces. So I decided to fill in + those pieces and make xterm a VT220 emulator. (VT220s do not do + ANSI color either—the missing pieces were in other + areas).

+ +

XTerm also provides features that are in + neither VT100 nor VT220, which are used by other programs as + "xterm emulation".

+ +
    +
  • set (and retrieve) window- and icon-labels using escape + sequences.
  • + +
  • interpret mouse clicks as escape sequences that can be read + by a program.
  • +
+ +

By the way, the control string used for setting the titles was + not in a standard format:

+ +
    +
  • In X10 (1988), the string was simply terminated by any + nonprinting character.
  • + +
  • X11R4 (1989) modified that to ensure that the nonprinting + character is an ASCII BEL (control/G).
  • + +
  • There is no explanation in the (sketchy) notes distributed + with the X11R4 xterm; in retrospect it seems that the most + likely explanation for the choice is that it was simpler to + implement in shell scripts than ESC \.
  • +
+ +

I revised that area starting in 1996,

+ +
    +
  • first to use xterm's state table for handling the input, + and then
  • + +
  • to accept the standard string terminator as well.
  • +
+ +

What is a State Table?

+ +

That was mentioned regarding the title strings. + XTerm uses a state machine to handle incoming + characters. That is essentially what a real terminal does. Other + "xterm" terminal emulators typically do not do this, which makes + them not do well with vttest.

+ +

What platforms does it run on?

+ +

XTerm runs in all of the implementations of + X11. I've built and run these since I started working on + xterm:

+ +
    +
  • AIX 3.2.5, 4.1, 4.3 (cc)
  • + +
  • Digital Unix 3.2, 4.0, 5.0 (cc)
  • + +
  • FreeBSD 2.2.6 to 6.0 (gcc 2.8)
  • + +
  • HP-UX 9.05 to 11.23 (gcc 2.7.2 to 3.4)
  • + +
  • IRIX 5.2, 6.2 (cc, gcc 2.7.2, gcc 2.8)
  • + +
  • Linux 2.0.0 to 2.6.26 (gcc 2.7.2 to 4.3)
  • + +
  • SCO OpenServer 5 (cc, gcc).
  • + +
  • Solaris 2.4, 2.5, 2.5.1, 2.6, 7, 8 (cc, gcc 2.7.2)
  • + +
  • SunOS 4.1.1, 4.1.3 (gcc 2.7.2)
  • +
+ +

The older configurations have X11R5 libraries. Only minor + changes are needed to make xterm work on those systems. However, + with X11R6 you can obtain better locale support, as well as new + features such as the active icon. X11R7... not much to say + there.

+ +

What is the latest version?

+ +

The most recent (and well supported) version of xterm is the + one that I maintain:

+ + + +

What versions are available?

+ +

There are several other versions of xterm, based on xterm's + source. These include

+ + + +

There are similar programs not based on xterm's source, which + are compatible to different degrees. These include

+ + + +

Some of these use the VTE widget. + Since that supplies most of the terminal emulation, the remaining + differences between programs using VTE tend to be at the level of + the window manager (menus, borders, etc.). Other (older) programs + which are based on reusable widgets include dtterm and emu.

+ +

(I am aware of a few others, such as xcterm, + but have not seen a working version of these).

+ +

Finally of course, there are a multitude of programs which set + TERM to "xterm", in the hope that applications will treat them + the same as xterm. For example,

+ +
    +
  • PuTTY does this. But its wrapping behavior is incompatible + with xterm (and any vt100 emulator). You can see this in the + first menu entry for vttest.
  • + +
  • VTE does this. But consider the list of problems with + VTE + and with + GNOME Terminal.
  • + +
  • Konsole does this as well—intentionally as shown in + KDE + #145977. The reasoning expressed there is that Konsole + "should" match xterm. Incidentally, one of the comments (about + xterm's support for mouse) cited as proof a page about Gpm + from Linux Journal which was more than 12 years old.
  • +
+ +

Each of the programs noted here which are well-established and + which are known to differ markedly from xterm have their own + terminal descriptions in ncurses, to which TERM should be set. + Otherwise, bug-reports are misdirected to ncurses which + should have been addressed by the respective developers of these + programs. These include

+ +
    +
  • Eterm
  • + +
  • gnome (obsolete)
  • + +
  • konsole
  • + +
  • mlterm
  • + +
  • mrxvt
  • + +
  • putty
  • + +
  • rxvt
  • + +
  • vte (preferred)
  • +
+ +

Comparing versions, by counting + controls

+ +

Several of these programs are claimed (either by their + developers, or their users) to emulate "most" of xterm. To me, + "most" would be something quantifiable, e.g., 80 percent. To + satisfy my curiousity, I wrote a script to extract the control + sequence information from ctlseqs.txt. This counts each + control sequence, as well as the variations such as setting bold, + color, inverse video. Then I (laboriously) inspected these + terminal implementations:

+ +
    +
  • xterm patch #266 ("xterm-new")
  • + +
  • X11R6.3 xterm (xterm-r6)
  • + +
  • DEC vt220
  • + +
  • DEC vt102
  • + +
  • rxvt 2.7.10
  • + +
  • rxvt-unicode 9.09 (urxvt)
  • + +
  • konsole 2.5.3
  • + +
  • VTE 0.25.91 (vte), used in GNOME-Terminal and kindred.
  • +
+ +

As of mid-November 2010, these were the latest + implementations. I included data for the vt220 and vt102 to be + able to contrast the various terminal emulators against + those as well as xterm. There were:

+ +
    +
  • 498 control sequences listed in the corresponding file for + xterm patch #266.
  • + +
  • 192 of those are "primary", e.g., disregarding parameters + such as those distinguishing bold from color.
  • + +
  • 37 of the primary control sequences have secondary + sequences.
  • +
+ +

For each control, there are three possibilities:

+ +
    +
  1. "yes" — the terminal implements it, matching xterm. + If xterm implements it, and it is a feature of vt220 or vt102, + then in turn xterm's behavior must match vt220 or vt102.
  2. + +
  3. "partial" — the terminal implements it, but its + behavior does not match the reference noted above.
  4. + +
  5. "no" — the terminal does not implement the + control.
  6. +
+ +

The control sequences document lists a few controls which + xterm does not (completely) implement, e.g.,

+ +
    +
  • key-repeat
  • + +
  • enabling LEDs other than scroll-lock
  • +
+ +

None of the other terminal emulators implements those + either.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Comparing against the control sequences document +
yespartialnoprogram
48846xterm-new
1546338xterm-r6
1885305vt220
1040394vt102
2043291rxvt
2193276urxvt
1912305putty
1703325konsole
1846308vte
+ +

Modern xterm implements 188 primary controls. In this table, + vte ranks lower than PuTTY because it does not support vt52 + emulation. This is not unusual, since the rxvt-based emulators do + not, either. However, all vt100's provide this feature; programs + lacking this are not really a vt100 emulator. On the other hand, + PuTTY (which is not a vt100 emulator due to its incompatible + wrapping behavior) supports this feature.

+ +

Aside from that, the various emulators implement much the same + features from xterm. None implements as many as half of xterm's + controls.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Comparing against xterm +
yespartialnoprogram
48800xterm-new
1546328xterm-r6
1822304vt220
980390vt102
2043281rxvt
2193266urxvt
1892297putty
1703315konsole
1846298vte
+ +

DEC VT220 implements 96 primary controls. Modern xterm (as + documented), implements most of the VT220. VTE implements fewer + than half. The others are a little better. None of the others + could be used as a real VT220.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Comparing against vt220 +
yespartialnoprogram
18206xterm-new
786104xterm-r6
18800vt220
104084vt102
101384rxvt
106379urxvt
107279putty
100385konsole
88694vte
+ +

DEC VT102 (the actual flavor used for "vt100" in most cases), + implements 68 primary controls. Again, VTE fares worst, and the + others a little better.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Comparing against vt102 +
yespartialnoprogram
9806xterm-new
70628xterm-r6
10400vt220
10400vt102
79223rxvt
81221urxvt
86216putty
85316konsole
60143vte
+ +

I have continued to add features to xterm (as of September + 2013, it implements 546 of 556 documented controls); the other + programs change far more slowly, adding only one to konsole. Even + for cases where they implement a function, it may not work + properly (see for example the screenshot of VTE in the vttest NRCS examples).

+ +

In summary, none of the other terminal emulators emulates + "most" of xterm. Instead, they implement the most commonly-used + control sequences, and there are differences between them.

+ +

How do I + ...

+ +

Not really problems, but frequently asked questions (the point + of this, after all):

+ + + +

How + do I change the font size?

+ +

XTerm uses fonts given as resource settings. + You can switch between these fonts at runtime, using a menu. This + is documented in the manpage, in the MENUS section.

+ +

X Consortium xterm provides popup menus, by pressing the + control key together with the mouse button. Control right mouse + button pops up the VT FONTS menu, from which you can + select fonts that are specified in xterm's resources. Usually + these are in increasing order of size.

+ +

Modern xterm provides the menu, plus a feature adapted from + rxvt: pressing the shifted keypad plus or minus keys steps + through the font menu selections, in order of their size.

+ +

XTerm's manpage does not document the syntax + for X resources; it is done in the X documentation. If you are + instead asking about a problem displaying a given font, + it may be due to a problem with your resource settings.

+ +

How + do I print the screen?

+ +

That depends on why you want to print it.

+ +

If you want a trace of an interactive session, you should use + the script program. It records every character sent to + the screen, recording them in a file typescript. + There are two drawbacks to this approach:

+ +
    +
  • Every character is recorded. Even cursor movement, if you + run an editor.
  • + +
  • You must start a new shell to capture the + typescript file.
  • +
+ +

Well, what about logging? Some versions of xterm support + logging to a file. In fact modern xterm does. Logging was dropped + from X Consortium xterm during X11R5 due to security concerns. + Those were addressed, but logging was not reinstated (in fact + there is a related bug in xterm). + Some people prefer this, because it is convenient: you can start + and stop logging a popup menu entry. However

+ +
    +
  • Every character is recorded. Even cursor movement, if you + run an editor.
  • + +
  • Line drawing characters are translated to control + characters, i.e., codes 0-31 (this may be fixed sometime, it is + a problem inherited from X Consortium xterm).
  • +
+ +

Both script and logging are useful for recording, but + they require interpretation to make sense of the trace. You + probably would not send that trace to a printer (not twice, + anyway).

+ +

If you want to print the contents of the screen, modern xterm + implements, as part of the VT100 emulation, an "attached" + printer.

+ +
    +
  • The printer is really a pipe command, to which xterm + writes.
  • + +
  • You can print the current line, page, or continuously with + the corresponding control sequences. That takes an application + program which knows how to print the screen.
  • + +
  • If you do not have an application, xterm has a popup menu + entry to print the window.
  • +
+ +

There are limitations and tradeoffs using the "attached" + printer, because it is an emulation:

+ +
    +
  • The emulation is based on detailed documentation for a + VT320. This states that control sequences are sent in each line + to reset bold, underlining and other printable attributes, and + to set them as needed. Your printer probably does not + understand this sort of input. Use the xterm resource + printAttributes to get more easily printed + output.
  • + +
  • The printer may hang. Not really, but it seems that way. If + you use the "attached" printer from an application designed for + the VT100 terminal, it is written with the assumption that the + printer is a dedicated piece of hardware, printing onto a + continuous form. Use the printerAutoClose resource + to change xterm's behavior to close the printer pipe whenever + the terminal is told to switch the printer offline.
  • +
+ +

If you use the popup menu to print the screen, this will close + the printer pipe unless it was already opened by the application + running in xterm.

+ +

How + do I set up function keys?

+ +

With modern xterm, this is relatively simple. So I'll answer + that first.

+ +

With X Consortium xterm, you had partial support for DEC VTxxx + function keys. Function keys F1 to F12 correspond to DEC's F1 to + F12 (sort of). Actually, DEC's VT220 terminals do not have codes + for F1 through F5. They are reserved for local functions. And the + VT220 (and up) terminals have 20 function keys. So you cannot do + anything with the F13 through F20 (i.e., DO, HELP and SELECT). + Finally, though xterm is reputed to be VT100-compatible, it has + no support for the VT100 keypad (PF1 to PF4, and the "," + key).

+ +

Modern (XFree86) xterm changed the X Consortium codes for F1 + to F4 to match the VT100 PF1 to PF4, except when the emulation + level is VT220 and up. In this case, it generates the same F1 to + F4 codes as X Consortium xterm. Moreover, it adds a new resource + sunKeyboard, which tells the program whether it has + only 12 function keys (i.e., a Sun or PC keyboard). If so (this + is selectable from the popup menu), you can use the control key + with F1 to F12 to get F13 to F24, and use the "+" key on the + keypad as an alias for "," (comma).

+ +

The emulation level for modern xterm is set via the resource + decTerminalID, e.g., to 220 for a VT220. Once set, + applications can set the emulation level up or down within that + limit. DEC's terminals are configured in much the same way by a + setup option.

+ +

That is the simple way, using a couple of new resources. The + traditional way to get function keys involves translations. I + have seen a few postings on the newsgroups that do this. Here is + one from Bruce Momjian <root@candle.pha.pa.us> for a + VT220:

+ +
+ + +

+ xterm $XTERMFLAGS +rw +sb +ls $@ -tm 'erase ^? intr ^c' \
+ +         -name vt220 -title vt220 -tn xterm-220 "$@" &
+ +

+
+ +

with the corresponding resources:

+ +
+ + +

+ XTerm*VT100.translations: #override \n\
+         
<Key>Home: string(0x1b) string("[3~") \n \
+ +         
<Key>End: string(0x1b) string("[4~") \n
+ + vt220*VT100.translations: #override \n\
+ ~Shift  
<Key>F1: string(0x1b) string("OP") \n \
+ ~Shift  
<Key>F2: string(0x1b) string("OQ") \n \
+ ~Shift  
<Key>F3: string(0x1b) string("OR") \n \
+ ~Shift  
<Key>F4: string(0x1b) string("OS") \n \
+ ~Shift  
<Key>F5: string(0x1b) string("[16~") \n \
+ ~Shift  
<Key>F6: string(0x1b) string("[17~") \n \
+ ~Shift  
<Key>F7: string(0x1b) string("[18~") \n \
+ ~Shift  
<Key>F8: string(0x1b) string("[19~") \n \
+ ~Shift  
<Key>F9: string(0x1b) string("[20~") \n \
+ ~Shift  
<Key>F10: string(0x1b) string("[21~") \n \
+ ~Shift  
<Key>F11: string(0x1b) string("[28~") \n \
+ ~Shift  
<Key>F12: string(0x1b) string("[29~") \n \
+ Shift   
<Key>F1: string(0x1b) string("[23~") \n \
+ Shift   
<Key>F2: string(0x1b) string("[24~") \n \
+ Shift   
<Key>F3: string(0x1b) string("[25~") \n \
+ Shift   
<Key>F4: string(0x1b) string("[26~") \n \
+ Shift   
<Key>F5: string(0x1b) string("[K~") \n \
+ Shift   
<Key>F6: string(0x1b) string("[31~") \n \
+ Shift   
<Key>F7: string(0x1b) string("[31~") \n \
+ Shift   
<Key>F8: string(0x1b) string("[32~") \n \
+ Shift   
<Key>F9: string(0x1b) string("[33~") \n \
+ Shift   
<Key>F10: string(0x1b) string("[34~") \n \
+ Shift   
<Key>F11: string(0x1b) string("[28~") \n \
+ Shift   
<Key>F12: string(0x1b) string("[29~") \n \
+         
<Key>Print: string(0x1b) string("[32~") \n\
+ +         
<Key>Cancel: string(0x1b) string("[33~") \n\
+ +         
<Key>Pause: string(0x1b) string("[34~") \n\
+ +         
<Key>Insert: string(0x1b) string("[2~") \n\
+ +         
<Key>Delete: string(0x1b) string("[3~") \n\
+ +         
<Key>Home: string(0x1b) string("[1~") \n\
+ +         
<Key>End: string(0x1b) string("[4~") \n\
+ +         
<Key>Prior: string(0x1b) string("[5~") \n\
+ +         
<Key>Next: string(0x1b) string("[6~") \n\
+ +         
<Key>BackSpace: string(0x7f) \n\
+ +         
<Key>Num_Lock: string(0x1b) string("OP") \n\
+ +         
<Key>KP_Divide: string(0x1b) string("Ol") \n\
+ +         
<Key>KP_Multiply: string(0x1b) string("Om") \n\
+ +         
<Key>KP_Subtract: string(0x1b) string("OS") \n\
+ +         
<Key>KP_Add: string(0x1b) string("OM") \n\
+ +         
<Key>KP_Enter: string(0x1b) string("OM") \n\
+ +         
<Key>KP_Decimal: string(0x1b) string("On") \n\
+ +         
<Key>KP_0: string(0x1b) string("Op") \n\
+ +         
<Key>KP_1: string(0x1b) string("Oq") \n\
+ +         
<Key>KP_2: string(0x1b) string("Or") \n\
+ +         
<Key>KP_3: string(0x1b) string("Os") \n\
+ +         
<Key>KP_4: string(0x1b) string("Ot") \n\
+ +         
<Key>KP_5: string(0x1b) string("Ou") \n\
+ +         
<Key>KP_6: string(0x1b) string("Ov") \n\
+ +         
<Key>KP_7: string(0x1b) string("Ow") \n\
+ +         
<Key>KP_8: string(0x1b) string("Ox") \n\
+ +         
<Key>KP_9: string(0x1b) string("Oy") \n
+ +  
+ !       <Key>Up: string(0x1b) string("[A") \n\
+
!       <Key>Down: string(0x1b) string("[B") \n\
+
!       <Key>Right: string(0x1b) string("[C") \n\
+
!       <Key>Left: string(0x1b) string("[D") \n\
+
 
+ *visualBell:    true
+ *saveLines:    1000
+ *cursesemul:    true
+ *scrollKey: true
+ *scrollBar: true
+

+
+ +

Note that real VT220 terminals use shifted function keys to + mean something different: the user-programmable keys (i.e., + DECUDK). Modern xterm supports this, but the translations do not + (they're using shift to select F13 to F20).

+ +

Here's another one, from Robert Ess + <ress@spd.dsccc.com>:

+ +
+ + +

+ #!/bin/sh
+  
+ #               vax
+ + # 09-17-96      Bob Ess      - initial creation
+ + # 09-26-96      Shig Katada  - Additional keybindings
+ + #
+ #               Script file to incorporate keybindings and command line
+ + #               options for connecting to a VAX node
+ +  
+ # Usage statement
+ Usage(){
+         echo
+         echo " Usage  : vax -options"
+ +         echo
+         echo " Options: -80   for 80 column terminal"
+ +         echo "          -132  for 132 column terminal"
+ +         echo "          -fg colorname"
+ +         echo "          -bg colorname"
+ +         echo "          -fn fontname"
+ +         echo "          -fb bold fontname"
+ +         echo "          -host [altair] [devel] [leonis] [castor]"
+ +         echo ""
+         echo " Example: \"vax -80 -fg white -bg black -fn 9x15 -fb 9x15b -host castor\""
+ +         echo "          Starts a VAX session with an 80 column terminal"
+ +         echo "          with a black background, white foreground, a normal"
+ +         echo "          font of 9x15 and a bold font of 9x15b, and connects"
+ +         echo "          to the node 'castor'"
+ +         echo
+         echo "          If you need additional help, please call Workstation"
+ +         echo "          Services at x92396."
+ +         echo
+         exit 1
+ }
+  
+ # Default to a black foreground with a white background.
+ + # Use the 9x15 and 9x15bold fonts. Connect to castor by default.
+ + #
+ FG=black
+ BG=white
+ HOST=castor
+ FONT=9x15
+ BFONT=9x15bold
+ COLS=80
+  
+ # Parse the command line arguments
+ + #
+ while [ $# != 0 ];
+ do
+         case $1 in
+                 -80)    COLS=80
+ +                         FONT=spc12x24c
+ +                         BFONT=spc12x24b
+ +                         shift
+ +                         ;;
+ +                 -132)   COLS=132
+ +                         FONT=9x15
+ +                         BFONT=9x15b
+ +                         shift
+ +                         ;;
+ +                 -fg)    shift
+ +                         FG=$1
+ +                         shift;;
+ +                 -bg)    shift
+ +                         BG=$1
+ +                         shift;;
+ +                 -fn)    shift
+ +                         FONT=$1
+ +                         shift;;
+ +                 -fb)    shift
+ +                         BFONT=$1
+ +                         shift;;
+ +                 -host)  shift
+ +                         HOST=$1
+ +                         shift;;
+ +                 -help)  Usage;;
+ +                 *)      Usage;;
+ +         esac
+ done
+  
+ xterm  -title "VAX" -sb -sl 1200 -geo ${COLS}x24 -fg ${FG} -bg ${BG} \
+         -cr red -fn ${FONT} -fb ${BFONT} -xrm \
+ +         'XTerm*VT100.translations:     #override \n\
+ +         <Key>Insert:            string(\001) \n\
+ +         Shift <Key>Up:          scroll-back(1,lines) \n\
+ +         Shift <Key>Down:        scroll-forw(1,lines) \n\
+ +         Shift <Key>Right:       string(0x1b) string("f") \n\
+ +         Shift <Key>Left:        string(0x1b) string("b") \n\
+ +         Shift <Key>Delete:      string(0x1b) string(0x08) \n\
+ +         Shift <Key>Tab:         string(0x1b) string("*") \n\
+ +         <Key>0x1000FF0D:        scroll-back(1,page) \n\
+ +         <Key>0x1000FF0E:        scroll-forw(1,page) \n\
+ +         <Key>0x1000FF09:        string(\010) \n\
+ +         <Key>0x1000FF0A:        string(\005) \n\
+ +         <Key>BackSpace:         string(0xff) \n\
+ +         <Key>Select:            select-start() \n\
+ +         <Key>0x1000FF02:        select-end(PRIMARY,CUT_BUFFER0) \n\
+ +         Meta <Key>0x1000FF02:   select-end(CLIPBOARD) \n\
+ +         <Key>0x1000FF04:        insert-selection(PRIMARY,CUT_BUFFER0) \n\
+ +         Meta <Key>0x1000FF04:   insert-selection(CLIPBOARD) \n\
+ +         <Key>F1:                string(0x1b) string("OP") \n\
+ +         <Key>F2:                string(0x1b) string("OQ") \n\
+ +         <Key>F3:                string(0x1b) string("OR") \n\
+ +         <Key>F4:                string(0x1b) string("OS") \n\
+ +         <Key>F5:                string(0x1b) string("OA") \n\
+ +         <Key>F11:               string(0x1b) string("[23~") \n\
+ +         <Key>F12:               string(0x1b) string("[24~") \n\
+ +         <Key>KP_0:              string(0x1b) string("Op") \n\
+ +         <Key>KP_1:              string(0x1b) string("Oq") \n\
+ +         <Key>KP_2:              string(0x1b) string("Or") \n\
+ +         <Key>KP_3:              string(0x1b) string("Os") \n\
+ +         <Key>KP_4:              string(0x1b) string("Ot") \n\
+ +         <Key>KP_5:              string(0x1b) string("Ou") \n\
+ +         <Key>KP_Divide:         string(0x1b) string("OP") \n\
+ +         <Key>KP_Multiply:       string(0x1b) string("[29~") \n\
+ +         <Key>KP_Enter:          string(0x1b) string("OM") \n\
+ +         <Key>KP_Subtract:       string(0x1b) string("Om") \n\
+ +         <Key>KP_Add:            string(0x1b) string("Ol") \n\
+ +         <Key>KP_Decimal:        string(0x1b) string("On") \n\
+ +         <Btn1Down>:             select-start() \n\
+ +         <Btn1Motion>:           select-extend() \n\
+ +         <Btn1Up>:               select-end(PRIMARY,CUT_BUFFER0) \n\
+ +         Button1<Btn2Down>:      select-end(CLIPBOARD) \n\
+ +         Button1<Btn2Up>:        ignore()'
 \
+ +         -e telnet $HOST &
+ +

+
+ +

Finally (for the moment) is a further modification of Robert + Ess's script by Erik Ahlefeldt, + <oahlefel@metz.une.edu.au>. From his readme file, for + vmsterm:

+ +
+

This script is for people who wish to connect from a Linux + or Unix computer to a VMS computer using telnet and get a good + VT100 or VT220 emulation. The key mappings have been + specifically designed to emulate the VT terminal auxiliary + numeric keypad, so that you can use VMS EDT and TPU editors, as + well as the many VMS applications use keys PF1 to PF4. The + script should work with any recent version of Xterm using a + standard extended IBM PC keyboard or a Sun keyboard.

+ +

About the keymappings. First the auxiliary numeric keypad. + My prime objective with these mappings was to produce a setup + that I could use with the EDT and TPU editors which make + extensive use of the numeric keypad. The top row of keys PC + numeric keypad (Num Lock, Divide, Multiply, Subtract) are where + you find PF1, PF2, PF3, PF4 on a VT keyboard, so I have mapped + them to PF1 thru PF4. The PC numeric keypad Add key (+) takes + up the space of two keys which are Minus and Comma on the VT + keyboard – I have mapped it to Comma (Delete Character in + the EDT editor). I have then used the PC Pause key to map to VT + key Minus (Delete Word in the EDT editor). The remaining keys + on the auxiliary numeric keypad are the same for PC and VT.

+ +

The six keys between the main and numeric keypads on the PC + (Insert, Home, Page Up, Delete End, Page Down) are usually + mapped to the VT keys by either position or by (approximate) + function. As I rarely use these keys I have mapped them by + function as follows: PC key Insert to VT Insert Here, PC Home + to VT Find, PC Page Up to VT Prev, PC Delete to VT Remove, PC + End to VT Select, PC Page Down to VT Next.

+ +
+
Function keys.
+ +
+ There are 12 function keys on the PC keyboard and 20 on the + VT keyboard, so I map PC F1 thru F12 to VT F1 thru F12 + (except for F1 thru F5 as noted below) and PC Shift F1 thru + Shift F10 to VT F11 thru F20. + +

The VT keys F1 thru F5 are local hardware function keys + so there is nothing to emulate, however some PC to VT + emulations in the past have mapped PF1 thru PF4 here, so I + have done that too, even though they are already mapped on + the auxiliary numeric keypad.

+
+ +
Xterm functionality.
+ +
You lose some xterm functions when you remap the + keyboard, however this script implements a scroll back buffer + of 1000 lines which you scroll through using Shift and Up + (a.k.a. Up Arrow or Cursor Up key) or Shift and Down.
+
+
+ +

a summary of the keyboard mapping:

+ +
+
+PC Key     maps to   VT Key.
+------               ------
+F1                   PF1
+F2                   PF2
+F3                   PF3
+F4                   PF4
+F5                   unused
+F6                   F6
+F7                   F7
+F8                   F8
+F9                   F9
+F10                  F10
+F11                  F11
+F12                  F12
+Shift F1             F11
+Shift F2             F12
+Shift F3             F13
+Shift F4             F14
+Shift F5             F15 (Help)
+Shift F6             F16 (Do)
+Shift F7             F17
+Shift F8             F18
+Shift F9             F19
+Shift F10            F20
+Shift F11            F11
+Shift F12            F12
+Print                Help (F15)
+Cancel               Do   (F16)
+Pause                Keypad Minus
+
+Insert               Insert Here
+Delete               Remove
+Home                 Find
+End                  Select
+Prior                Prev
+Next                 Next
+BackSpace            BackSpace (sends DEL - ascii 127)
+
+Num_Lock             PF1
+KP_Divide            PF2
+KP_Multiply          PF3
+KP_Subtract          PF4
+KP_Add               Keypad Comma
+KP_Enter             Enter
+KP_Decimal           Period
+KP_0                 Keypad 0
+KP_1                 Keypad 1
+KP_2                 Keypad 2
+KP_3                 Keypad 3
+KP_4                 Keypad 4
+KP_5                 Keypad 5
+KP_6                 Keypad 6
+KP_7                 Keypad 7
+KP_8                 Keypad 8
+KP_9                 Keypad 9
+Up                   Up
+Shift Up             Scroll Back
+Down                 Down
+Shift Down           Scroll Forward
+Right                Right
+Left                 Left
+
+
+ +

and the script:

+ +
+ + +

+ #!/bin/sh
+ #               vmsterm
+ + #               from an original script by Bob Ess
+ + #               key translations by Erik Ahlefeldt
+ + #
+ #               Script file using Xterm and telnet to connect to a VMS host
+ + #               and give a decent vt220 emulation.
+ + #
+ # Usage statement
+ Usage(){
+         echo
+         echo " Usage  : vmsterm -options"
+ +         echo
+         echo " Options: -80   for 80 column terminal"
+ +         echo "          -132  for 132 column terminal"
+ +         echo "          -bg colorname"
+ +         echo "          -fg colorname"
+ +         echo "          -fn fontname"
+ +         echo "          -fb bold fontname"
+ +         echo "          -host [crusher.saltmine.com] [earth] [192.168.7.7]"
+ +         echo ""
+         echo " Example: \"vmsterm -80 -fg white -bg black -fn 9x15 -fb 9x15b -host earth\""
+ +         echo "          Starts a VMS session with an 80 column terminal"
+ +         echo "          with a black background, white foreground, a normal"
+ +         echo "          font of 9x15 and a bold font of 9x15b, and connects"
+ +         echo "          to the node 'earth'"
+ +         echo ""
+         echo " Example: \"vmsterm -host earth\""
+         echo "          Starts a VMS session with default terminal settings "
+ +         echo ""
+         echo " Example: \"vmsterm -help\""
+         echo "          Displays vmsterm options "
+ +         echo
+         exit 1
+ }
+  
+ # Default to a black foreground with a white background.
+ + # Use the 9x15 and 9x15bold fonts. Connect to 192.168.3.3 by default.
+ + #
+ FG=black
+ BG=white
+ HOST=192.168.3.3
+ FONT=9x15
+ BFONT=9x15bold
+ COLS=80
+  
+ # Parse the command line arguments
+ + #
+ while [ $# != 0 ];
+ do
+         case $1 in
+                 -80)    COLS=80
+ +                         FONT=spc12x24c
+ +                         BFONT=spc12x24b
+ +                         shift
+ +                         ;;
+ +                 -132)   COLS=132
+ +                         FONT=9x15
+ +                         BFONT=9x15b
+ +                         shift
+ +                         ;;
+ +                 -fg)    shift
+ +                         FG=$1
+ +                         shift;;
+ +                 -bg)    shift
+ +                         BG=$1
+ +                         shift;;
+ +                 -fn)    shift
+ +                         FONT=$1
+ +                         shift;;
+ +                 -fb)    shift
+ +                         BFONT=$1
+ +                         shift;;
+ +                 -host)  shift
+ +                         HOST=$1
+ +                         shift;;
+ +                 -help)  Usage;;
+ +                 *)      Usage;;
+ +         esac
+ done
+  
+ xterm   -title "VMSTERM" -sb -sl 1000 -geo ${COLS}x24 -fg ${FG} -bg ${BG} \
+         -cr blue -fn ${FONT} -fb ${BFONT} -xrm \
+ +         'XTerm*VT100.translations: #override \n \
+ +         ~Shift  <Key>F1:        string(0x1b)    string("OP") \n \
+ +         ~Shift  <Key>F2:        string(0x1b)    string("OQ") \n \
+ +         ~Shift  <Key>F3:        string(0x1b)    string("OR") \n \
+ +         ~Shift  <Key>F4:        string(0x1b)    string("OS") \n \
+ +         ~Shift  <Key>F5:        string("Break") \n \
+ +         ~Shift  <Key>F6:        string(0x1b)    string("[17~") \n \
+ +         ~Shift  <Key>F7:        string(0x1b)    string("[18~") \n \
+ +         ~Shift  <Key>F8:        string(0x1b)    string("[19~") \n \
+ +         ~Shift  <Key>F9:        string(0x1b)    string("[20~") \n \
+ +         ~Shift  <Key>F10:       string(0x1b)    string("[21~") \n \
+ +         ~Shift  <Key>F11:       string(0x1b)    string("[23~") \n \
+ +         ~Shift  <Key>F12:       string(0x1b)    string("[24~") \n \
+ +         Shift   <Key>F1:        string(0x1b)    string("[23~") \n \
+ +         Shift   <Key>F2:        string(0x1b)    string("[24~") \n \
+ +         Shift   <Key>F3:        string(0x1b)    string("[25~") \n \
+ +         Shift   <Key>F4:        string(0x1b)    string("[26~") \n \
+ +         Shift   <Key>F5:        string(0x1b)    string("[28~") \n \
+ +         Shift   <Key>F6:        string(0x1b)    string("[29~") \n \
+ +         Shift   <Key>F7:        string(0x1b)    string("[31~") \n \
+ +         Shift   <Key>F8:        string(0x1b)    string("[32~") \n \
+ +         Shift   <Key>F9:        string(0x1b)    string("[33~") \n \
+ +         Shift   <Key>F10:       string(0x1b)    string("[34~") \n \
+ +         Shift   <Key>F11:       string(0x1b)    string("[28~") \n \
+ +         Shift   <Key>F12:       string(0x1b)    string("[29~") \n \
+ +                 <Key>Print:     string(0x1b)    string("[28~") \n \
+ +                 <Key>Cancel:    string(0x1b)    string("[29~") \n \
+ +                 <Key>Pause:     string(0x1b)    string("Om") \n \
+ +                 <Key>Insert:    string(0x1b)    string("[2~") \n \
+ +                 <Key>Delete:    string(0x1b)    string("[3~") \n \
+ +                 <Key>Home:      string(0x1b)    string("[1~") \n \
+ +                 <Key>End:               string(0x1b)    string("[4~") \n \
+ +                 <Key>Prior:     string(0x1b)    string("[5~") \n \
+ +                 <Key>Next:      string(0x1b)    string("[6~") \n \
+ +                 <Key>BackSpace: string(0x7f)    \n \
+ +                 <Key>Num_Lock:  string(0x1b)    string("OP") \n \
+ +                 <Key>KP_Divide: string(0x1b)    string("OQ") \n \
+ +                 <Key>KP_Multiply: string(0x1b)  string("OR") \n \
+ +                 <Key>KP_Subtract: string(0x1b)  string("OS") \n \
+ +                 <Key>KP_Add:    string(0x1b)    string("Ol") \n \
+ +                 <Key>KP_Enter:  string(0x1b)    string("OM") \n \
+ +                 <Key>KP_Decimal: string(0x1b)   string("On") \n \
+ +                 <Key>KP_0:      string(0x1b)    string("Op") \n \
+ +                 <Key>KP_1:      string(0x1b)    string("Oq") \n \
+ +                 <Key>KP_2:      string(0x1b)    string("Or") \n \
+ +                 <Key>KP_3:      string(0x1b)    string("Os") \n \
+ +                 <Key>KP_4:      string(0x1b)    string("Ot") \n \
+ +                 <Key>KP_5:      string(0x1b)    string("Ou") \n \
+ +                 <Key>KP_6:      string(0x1b)    string("Ov") \n \
+ +                 <Key>KP_7:      string(0x1b)    string("Ow") \n \
+ +                 <Key>KP_8:      string(0x1b)    string("Ox") \n \
+ +                 <Key>KP_9:      string(0x1b)    string("Oy") \n \
+ +         ~Shift  <Key>Up:                string(0x1b)    string("[A") \n \
+ +         Shift   <Key>Up:                scroll-back(1,lines) \n \
+ +         ~Shift  <Key>Down:      string(0x1b)    string("[B") \n \
+ +         Shift   <Key>Down:      scroll-forw(1,lines) \n \
+ +                 <Key>Right:     string(0x1b)    string("[C") \n \
+ +                 <Key>Left:      string(0x1b)    string("[D")'
 \
+ +         -e telnet $HOST
+ +

+
+ +

How + do I set the title?

+ +

The control sequences for doing this are documented in + ctlseqs.ms.

+ +

The usual context for this question is setting the title + according to the current working directory. People post answers + to this periodically on the newsgroups. Here is one that I have + seen, from Roy Wright <nobody@roystoy.dseg.ti.com>. In your + /etc/profile after:

+ +
+ + +

+ if [ "$SHELL" = "/bin/pdksh" -o "$SHELL" = "/bin/ksh" ]; then
+ +         PS1="! $ "
+ elif [ "$SHELL" = "/bin/zsh" ]; then
+ +         PS1="%m:%~%# "
+ elif [ "$SHELL" = "/bin/ash" ]; then
+ +         PS1="$ "
+ else
+         PS1='\u@\h:\w\$ '
+ fi
+

+
+ +

add:

+ +
+ + +

+ if [ "$TERM" = "xterm" ]; then
+         PS1="\033]2;\u@\h:\w\007bash$ "
+ fi
+

+
+ +

The terminator "\007" is a problem area. + XTerm historically uses this character, though + it is non-ANSI. The "correct" character should be a "\233" string + terminator, or "\033\\", which is the 7-bit equivalent. Modern + xterm recognizes either (the "\007" or string terminator); + waiting for the first of these.

+ +

You may have resource or environment problems that prevent you + from setting the title at all. Newer xterms (starting somewhere + in X11R5) use the $LANG variable. If your locale is incorrectly + installed, you will be unable to set the xterm's title. As noted + by Mikhail Teterin <mi@rtfm.ziplink.net>: Make sure that + the locale (LANG and/or LOCALE environment variable) is known to + X Window System. Check ${X11ROOT}/lib/X11/locale.* for it. If it + is not listed in either one of the files, find the nearest match + and add an alias to it. Restart X if you have made changes.

+ +

On a related note, some people want to know how to read the + title from an xterm. This works for modern xterm and dtterm, but + not for other variations:

+ +
+ + +

+ #!/bin/ksh
+ # Echo the current X term title bar to standard output.
+ + # Written by Icarus Sparry <icarus@bath.ac.uk> 11 Apr 1997
+ + #
+ exec </dev/tty
+ old=$(stty -g)
+ stty raw -echo min 0  time ${1-10}
+ print "\033[21t\c" > /dev/tty
+ IFS='' read -r a
+ stty $old
+ b=${a#???}
+ print -R "${b%??}"
+

+
+ +

But it is possible to avoid escape sequences altogether (from + Hemant Shah <shah@typhoon.xnet.com>):

+ +
+
+$ xprop -id $WINDOWID | grep WM_NAME
+WM_NAME(STRING) = "this is my title"
+current_title=$(xprop -id $WINDOWID | grep WM_NAME | cut -d= -f2)
+
+
+ +

Here's another source of information: Xterm-Title + HowTo

+ + + +

Standard xterm does not implement a blinking cursor. Some of + the variations do: dtterm, GNOME Terminal, and modern xterm (from + mid 1999, patch + 107).

+ +

Frequent problems

+ + + +

Starting xterm, or not

+ +

XTerm does not run (no available + pty's)

+ +

Your copy of xterm may not have enough permissions to use + existing pty's:

+ +
    +
  • you may have to make xterm run setuid to root (though newer + systems have wrappers that make this unnecessary).
  • + +
  • the pty's permissions may be restrictive (that is ok, but + you have to make xterm agree with it). Usually this is done by + making the group ownership of the pty's "tty", and requiring + that xterm run setgid to "tty". This is done rather than make + xterm run setuid to root, since that presents problems with + security.
  • + +
  • newer systems (with Unix98 pty's) have a single entry under + /dev which has to have the right permissions. For example: + +
    +
    +# ls -l /dev/ptmx
    +crw-rw----    1 root     tty        5,   2 Aug 21 20:19 /dev/ptmx
    +
    +
    +
  • +
+ +

Perhaps your system does not have enough pty's, or (problems + reported with newer Linux kernels supporting Unix98 pty's, + beginning with RedHat 6.0) the major device numbers of the pty's + may have changed during a kernel upgrade. (This is described in + /usr/src/linux/Documentation).

+ +

See also the MAKEDEV script, which usually exists under + /dev.

+ +

I + need /etc/termcap

+ +

If you have a termcap version of xterm on a system with no + termcap libraries, you may also be missing /etc/termcap.

+ +

A workaround is to copy /usr/X11R6/lib/X11/etc/xterm.termcap + to /etc/termcap.

+ +

This is fixed another way starting with XFree86 3.3.1. If + xterm cannot find the terminal description, it will accept that, + though it will print a warning. If xterm does not find the + termcap entry, it will not set the $TERMCAP variable.

+ +

Why + does $LD_LIBRARY_PATH get reset?

+ +

If xterm is running setuid (which is needed on some systems + which have no wrappers for opening pty's and updating utmp), + newer systems automatically set or reset environment variables + which are considered security problems. These include + $PATH and $LD_LIBRARY_PATH, since they + affect the choice of which programs are run if not specified via + a full pathname.

+ +

This means, for example, that if you attempt to run

+ +
+
+xterm -e foo
+
+
+ +

where foo is a program that uses shared libraries + in /usr/local/lib, then the command will fail, + because /usr/local/lib is not considered part of + root's environment.

+ +

Modern Unix systems (such as recent Solaris and HPUX versions) + do not require you to run xterm setuid. Some will result in odd + malfunctions if you do this.

+ +

Why do the -e and -ls options not work + together?

+ +

XTerm has two useful options for controlling + the shell that is run:

+ +
+
-e
+ +
tells xterm to execute a command using the remaining + parameters after this option.
+ +
-ls
+ +
tells xterm to invoke a login shell, making it read your + .login file, for instance.
+
+ +

The two are not compatible. If you specify both, xterm uses + -e, and if that fails for whatever reason will fall + through to the -ls option. It cannot (in general) + combine the two, since some shells permit this (e.g., bash), and + others do not (e.g., tcsh).

+ +

Why is my screen size not set?

+ +

Well, it may be set, but not correctly. You may notice these + symptoms:

+ +
    +
  • When editing with vi, you cannot see the beginning of the + file, or
  • + +
  • Running + +
    +
    +stty -a
    +
    +
    + +

    shows the rows and/or columns values as 0, or some other + value (such as 65) which has nothing to do with the actual + window size.

    +
  • +
+ +

XTerm knows how big the screen is (of + course), and tries to tell your applications (e.g., by invoking + ioctl's and sending SIGWINCH). But sometimes it cannot:

+ +
    +
  • XTerm itself may have been built + incorrectly (the #ifdef's that make the logic work are + inactive).
  • + +
  • You may be running xterm via a remote connection which + refuses to pass that information. This can happen even on + "modern" networks where the connection crosses domain + boundaries.
  • + +
  • You may be running su'd to another account. SIGWINCH is + just another signal; signals do not propagate for security + reasons.
  • +
+ +

Most full-screen applications such as vi are designed to use + the ioctl calls that return the screen size. When they fail, the + applications use the size defined in the terminal's terminfo or + termcap description.

+ +

You may be able to use the resize program to issue + the ioctl's that will notify your application of the actual + screen size. This does not always work for the reasons just + mentioned. Newer versions of stty let you specify the screen + size, though it will not be updated if you resize the xterm + window:

+ +
+
+stty rows 24 columns 80
+
+
+ +

Most full-screen applications also check if the $LINES and + $COLUMNS variables are set, using those values to override the + terminal description:

+ +
+
+setenv LINES 24
+setenv COLUMNS 80
+
+
+ +

Why 65 lines? The standard xterm terminfo description + specifies 65 lines, perhaps because someone liked it that way. + Real VT100's are 24 lines. I once used (and wrote applications + for) a Bitgraph terminal, which emulated VT100, but displayed 65 + lines.

+ +

Why + are the menus tiny?

+ +

Everything seems to work, except that the xterm menus (VT + options, fonts, etc.) do not display properly; the menus pop up, + but only with a tiny display area in which none of the options + are visible (and only part of the menu title is visible).

+ +

You have specified the geometry for xterm too high in the + hierarchy, and that 24x80 (or whatever the -geometry parameter + happens to be) is applying to the menus in pixels. This resource + makes the geometry apply to the menus as well as the VT100 + widget:

+ +
+ + +

+ XTerm*geometry: 80x24
+

+
+ +

while this applies only to the VT100 widget (which is probably + what you intended):

+ +
+ + +

+ XTerm.VT100.geometry: 80x24
+

+
+ +

or better yet (to allow for the toolbar option, which uses a + level of widget hierarchy):

+ +
+ + +

+ XTerm*VT100.geometry: 80x24
+

+
+ +

Font problems

+ +

My + terminal doesn't show box characters

+ +

XTerm displays the 7-bit ASCII and VT100 + graphic characters (including box corners) using specially + arranged fixed-pitch fonts. The first 32 glyph positions (which + would correspond to nonprinting control characters) are used to + hold the VT100 graphic characters. Some fonts that otherwise look + fine (such as courier) do not have glyphs defined for these + positions. So they display as blanks. Use xfd to display + the font.

+ +

Modern xterm can form its own line-drawing characters (see + patch 90, for + example). It does not draw all of the graphic characters, only + those that may be done with straight lines. But those are the + most used, making most of the fixed-pitch fonts useful for + xterm.

+ +

You may also have a problem with the terminfo description. As + distributed, the X11R6 terminfo for xterm does not have the + acsc string defined, so most implementations of curses + do not try to use the alternate character set.

+ +

Finally, some people confuse the VT100 graphic characters with + the VT220 support for DEC technical character set. These are + distinct (7-bit) character sets. Xterm currently does not support + this.

+ +

The bold font is ugly

+ +

XTerm lets you directly specify one bold + font, which is assumed to correspond to the default font. Older + versions of xterm make a fake bold font for the other choices via + the fonts menu by drawing the characters offset by one pixel. I + modified xterm to ask the font server for a bold font that + corresponds to each font (other than the default one). Usually + that works well. However, sometimes the font server gives a poor + match. Xterm checks for differences in the alignment and size, + but the font server may give incorrect information about the font + size. The scaled bitmap font feature gives poor results for the + smaller fonts. In your X server configuration file, that can be + fixed by disabling the feature, e.g., by appending ":unscaled" to + the path:

+ +
+ + +

+ FontPath        "/usr/lib/X11/fonts/100dpi/:unscaled"
+ + FontPath        "/usr/lib/X11/fonts/75dpi/:unscaled"
+ + FontPath        "/usr/lib/X11/fonts/misc/:unscaled"
+ +

+
+ +

You can suppress xterm's overstriking for bold fonts using the + alwaysBoldMode and related resources. However, + rendering ugly bold fonts is a "feature" of the font server. In + particular, the TrueType interface provides less ability to the + client for determining if a particular font supports a bold + form.

+ +

I see + little dots on the screen

+ +

Well, I do. Perhaps you do not. It depends on the fonts you + choose, and how you use them.

+ +

Standard xterm has a "normal" font for which a bold font can + be chosen, and several alternative fonts, useful for changing the + font size. The alternative fonts do not have corresponding bold + fonts. Xterm simulates bold fonts in this case by overstriking + the character one pixel offset. That can make an bold character + extend into the area that another character occupies. When + erasing a bold character from the screen, xterm does not erase + the extra pixel. This is corrected in modern xterm, subject to + the available fonts (from late 1998, patch 85). For each font, it asks + the font server for a corresponding bold font. Your font server + may not have the bold font (or it may incorrectly report that it + does). But it usually works.

+ +

My + terminal doesn't display Cyrillic characters

+ +

Cyrillic encodings typically use characters in the range + 128-159. For a VT220 (or any terminal that follows ISO 6429), + those are treated as control characters. Still, some people want + to use KOI8-R, etc. I modified xterm in patch 175 to add an option + (-k8) and corresponding resource settings to allow + them to customize their environment. Here is a sample script + and resource + file which I use for testing this configuration.

+ +

I see + boxes instead of characters in uxterm

+ +

XTerm may show boxes instead of characters if + the font that you have selected does not contain those + characters. Normally you can fix most of that using the UTF-8 + feature, with uxterm. However, your X resource + settings may be the source of the problem.

+ +

One pitfall to setting X resources is that they allow you to + specify wildcards, e.g., the "*" character. When you give a + wildcard, the X resource matches any number of levels in the + widget hierarchy.

+ +

XTerm has more than one widget matching + "font" at different levels of the hierarchy. There are the popup + menus, and there are the fonts used for uxterm. The + latter is where an overbroad pattern can cause xterm to use a + different font than you expect.

+ +

Suppose your resource setting includes this pattern

+ +
+ + +

+ *VT100*font: fixed
+

+
+ +

It could be interpreted as this:

+ +
+ + +

+ *VT100.font: fixed
+ *VT100.utf8Fonts.font: fixed
+

+
+ +

XTerm uses the utf8Fonts + subresources to provide runtime-switchable fonts between + IS0-8859-1 (Latin-1) and ISO-10646 (Unicode). Modifying the + Unicode font to "fixed" will make most of the characters + unavailable (i.e., shown as boxes). If instead your resource + looks like

+ +
+ + +

+ *VT100.font: fixed
+

+
+ +

it would be unambiguous, and not modify the + utf8Fonts value.

+ +

The + first popup menu is very slow

+ +

Some users report that when starting xterm, it is very slow, + that their computer's CPU time increases, etc.

+ +

This is a longstanding bug in the X libraries. There is a + workaround using a resource setting for xterm.

+ +
Details
+ +

XTerm uses the Athena (Xaw) widgets to + display popup menus. In the normal case, those are initialized + one-by-one as they are first used. If you have configured xterm + to use its toolbar configuration, they are all initialized on + startup. In the latter, performance problems are more + noticeable.

+ +

The Athena widgets XawInitializeWidgetSet + function goes through several levels down to the X library + _XlcAddUtf8LocaleConverters function to call + create_tocs_conv and related functions to make a + list of character sets from the locale, which is used in menus to + get all possible fonts needed for a fontset.

+ +

If your current locale uses UTF-8 encoding, this will + read a long list of bitmap fonts—everything whose + encoding might be useful for displaying the menus. For + example, this list (from lcUTF8.c) which dates from + around 2000 is the core of the problem:

+ +
+

ISO10646-1, ISO8859-1, ISO8859-2, ISO8859-3, ISO8859-4, + ISO8859-5, ISO8859-6, ISO8859-7, ISO8859-8, ISO8859-9, + ISO8859-10, ISO8859-11, ISO8859-13, ISO8859-14, ISO8859-15, + ISO8859-16, JISX0201.1976-0, TIS620-0, GB2312.1980-0, + JISX0208.1983-0, JISX0208.1990-0, JISX0212.1990-0, + KSC5601.1987-0, KOI8-R, KOI8-U, KOI8-C, TATAR-CYR, ARMSCII-8, + IBM-CP1133, MULELAO-1, VISCII1.1-1, TCVN-5712, + GEORGIAN-ACADEMY, GEORGIAN-PS, ISO8859-9E, MICROSOFT-CP1251, + MICROSOFT-CP1255, MICROSOFT-CP1256, BIG5-0, BIG5-E0, BIG5-E1, + ISO10646-1, ISO10646-1

+
+ +

However, xterm is going to use only the characters shown in + the popup menus. It is unlikely that you need Chinese fonts for + that.

+ +
Solution
+ +

XTerm's menuLocale resource can + be set to an explicit value, e.g., "C" to override the current + locale as seen by this initialization debacle.

+ +
Limitations
+ +

The workaround does not prevent some hacker from "improving" + the X libraries still further.

+ +

Keyboard problems

+ +

Why can't I input 8-bit characters?

+ +

You must have the eightBitInput resource set to + do this.

+ +

Why doesn't my delete key work?

+ +

This seems to have begun as a problem with the older XFree86 + release (3.1.2). I have picked up pieces of the story (xterm and + the keyboard work as designed under XFree86 3.2 and up).

+ +

The underlying problem is that we've accumulated three things + that are being equated as "Delete":

+ +
+
+ASCII BS (backspace, code 8)
+ASCII DEL (delete. code 127)
+VT220 "remove" aka "delete" (ESC [ 3 ~)
+
+
+ +

You are probably talking about the backarrow + key (on my keyboard, at the upper right of the QWERTY block), or + the key labeled delete which is on the 6-key + "editing keypad". Since xterm is emulating a VT100/VT220, the + backarrow key should generate a 127 (often displayed as + ^?). You would use a control/H to obtain a backspace + on a real VT220.

+ +

The reason why BS and DEL are of + special interest is that on Unix, the stty command + and the underlying termios/termio system calls allow only + single-byte codes to be assigned to special functions such as + erase. For instance, you could see something like + this on your terminal:

+ +
+
+$ stty -a
+speed 38400 baud; rows 40; columns 80; line = 0;
+intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>;
+eol2 = <undef>; swtch = <undef>; start = <undef>; stop = <undef>; susp = <undef>;
+rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
+-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
+-ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl ixon -ixoff
+-iuclc -ixany -imaxbel -iutf8
+-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
+isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt
+-echoctl -echoke
+
+
+
+ +

Tastes differ. On Unix, people expect the backarrow key to + generate a backspace (or not). As I understand it, at one point, + XFree86 picked up the sense of the erase character during + initialization, so that xterm would in effect use the same erase + character as the console. The current scheme (X11R6) uses + keyboard mapping tables that are independent of the + environment.

+ +

Modern xterm (since patch #83 in 1998) provides + a resource toggle backarrowKey (and an escape sequence + from VT320) that changes this key between the two styles + (backspace or delete).

+ +

With modern xterm patch 95 (also in the stable + version as "88c"), you may have an xterm which can automatically + initialize the backarrow key to backspace or delete depending on + the pseudo terminal's sense, or based on the termcap setting of + kbs (backspace key). This feature is controlled by the + resource setting ptyInitialErase.

+ +

Why did my delete key stop working?

+ +

Well, something changed. You have to determine what did.

+ +

This may be because an upgrade introduced different X resource + settings, or because you are using the newer xterm with the + ptyInitialErase resource (or perhaps both). Use

+ +
+
+appres XTerm
+
+
+ +

to see the X resources that you are using, in particular the + translation (or Translation) resource + for the vt100 widget.

+ +

One unexpected scenario came out of hiding when I was + implementing the ptyInitialErase resource. When xterm is + (by default) built to support this, it sets the pty's erase + character to match the termcap entry. Xterm also sets the + $TERMCAP environment variable to match. So everything is + consistent, and everything defined. The stty erase + character is either backspace (^H) or delete (^?).

+ +

The problem arises because there are two things called + "delete", which were not well-defined: ASCII delete (127) and the + PC-style adaptation of VT220 remove assigned to the + key Delete.

+ +

However, the screen program prefers to make the + termcap delete (kD) an <escape>[3~, which + corresponds to the VT220 remove key. If $TERMCAP is + set when starting screen, it will translate stty's erase + character into the <escape>[3~, making most curses and + termcap applications work. But stty still has the original erase + character. So low-level applications which check stty will not + work. I found that unsetting $TERMCAP before running would work, + but this was not a good solution. Someone pointed out (see + patch 129), that + the problem really was because termcap kD should + delete the character at the current position. So it cannot be the + same as stty erase.

+ +

As a matter of fact, stty erase has to be a + single character, so <escape>[3~ would not work anyway.

+ +

Well, how can I set my delete key?

+ +

When people first started asking this question in 1995-1996, + it appeared in the context of making Netscape work. Netscape's + use of the delete key running in X did not match user's + expectations when compared to that other platform. They were + commonly advised to use xmodmap, e.g.,

+ +
+
+keysym BackSpace = Delete
+
+
+ +

or

+ +
+
+keycode 22 = 0xff08
+
+
+ +

Either way is a bad technical solution – it works for + some people but not others (on my keyboard at work, keycode 22 is + the numeric keypad '9').

+ +

Alternatively, you can set resources. This works reasonably + well for environments where you have different versions of xterm, + e.g.,

+ +
+ + +

+ XTerm*VT100.translations: #override \n\
+         <Key>Delete: string(
0x7f)
+ +

+
+ +

I do not do that either, because it is not flexible. Not all + programs use the same sense of stty erase; some use + termcap or terminfo, and some are hardcoded. So I prefer to be + able to switch the xterm's keyboard at runtime. You cannot do + that with resources. (Or not really – xterm has a + keymap() action which could support this if you + provided a rather complex resource settings, but the X library + support for that is broken in X11R6). Instead, I have added to + xterm a set of resources (and popup menu entries) to allow simple + switching between the different styles of keyboard, in particular + for the backspace/delete issues. See the manual page for + backarrowKey backarrowKeyIsErase and + deleteIsDEL as well as sunKeyboard.

+ +

Why doesn't my keypad work?

+ +

A few people have commented that the keypad does not work + properly. Aside from bugs (I have fixed a few), the most common + problem seems to be misconception.

+ +

Here's a picture of the VT100 numeric keypad:

+ +
+
++-----+-----+-----+-----+
+| PF1 | PF2 | PF3 | PF4 |
++-----+-----+-----+-----+
+|  7  |  8  |  9  |  -  |
++-----+-----+-----+-----+
+|  4  |  5  |  6  |  ,  |
++-----+-----+-----+-----+
+|  1  |  2  |  3  |     |
++-----+-----+-----+ ENT +
+|     0     |  .  |     |
++-----+-----+-----+-----+
+
+
+ +

and the similar Sun and PC keypads:

+ +
+
++-----+-----+-----+-----+
+| NUM |  /  |  *  |  -  |
++-----+-----+-----+-----+
+|  7  |  8  |  9  |     |
++-----+-----+-----+  +  +
+|  4  |  5  |  6  |     |
++-----+-----+-----+-----+
+|  1  |  2  |  3  |     |
++-----+-----+-----+ ENT +
+|     0     |  .  |     |
++-----+-----+-----+-----+
+
+
+ +

Working in X11, the NUM (NumLock) key has better uses than an + alias for PF1 (and is sometimes reserved). I use the F1 through + F4 on the keyboard to implement PF1 through PF4, alias the keypad + "+" to "," and use the existing "-" key.

+ +

VT220 emulation uses the VT100 numeric keypad as well as a + 6-key editing keypad. Here's a picture of the VT220 editing + keypad:

+ +
+
++--------+--------+--------+
+| Find   | Insert | Remove |
++--------+--------+--------+
+| Select | Prev   | Next   |
++--------+--------+--------+
+
+
+ +

and the similar Sun and PC keypads:

+ +
+
++--------+--------+--------+
+| Insert | Home   | PageUp |
++--------+--------+--------+
+| Delete | End    | PageDn |
++--------+--------+--------+
+
+
+ +

I chose to use keys that are mnemonic rather than in the + "same" positions, though some emulators (e.g., Tera Term) use the + same positions:

+ +
+
++--------+--------+--------+
+| Insert | Find   | Prev   |
++--------+--------+--------+
+| Remove | Select | Next   |
++--------+--------+--------+
+
+
+ +

I test the keyboard (for VT52/VT100/VT220) using vttest. If you find (or think that you + have found) a problem with the keyboard handling of xterm, please + test it with vttest first.

+ +

Other arrangements of the keyboard are possible of course. If + you prefer to use the top row of the numeric keypad as PF1 + through PF4, you should do this using xterm's X resources.

+ +

In 2014, I noticed a comment, + which relates to the PF1-PF4 assignment, but also to the use of + function-key modifiers.
+ Because that is a digression, I have expanded it in a separate page.

+ +

Why can't I use the pageup/pagedown keys?

+ +

Some vendors, e.g,. Sun, added key translations which make the + pageup and pagedown keys talk to the xterm's scrollbar instead of + your application. They did the same thing for the home and end + keys, thereby obscuring a bug in xterm.

+ +

You can override this by specifying your own translations in + your resource file. The issue was first noted with Solaris 2.5, + with the file given in two locations:

+ +
+
+/usr/lib/X11/app-defaults/XTerm
+/usr/openwin/lib/app-defaults
+
+
+ +

using a symbolic link to relate the two. Later releases of + Solaris, e.g., 8-10 omitted the former location.
+ Solaris 11 provides modern xterm (patch #271), and does not + have this problem.

+ +

As of February 2014, I am able to verify that AIX and HPUX + have updated to modern xterm, e.g.,

+ + + +

Older AIX and HPUX releases distributed the X Consortium + (1994) app-defaults file.

+ +
+

In updating this question in + February 2014, I noticed that IBM added their copyright notice + in AIX's copy of the app-defaults file in

+ +
+
+/usr/lpp/X11/lib/X11/app-defaults
+
+
+ +

There were no other changes + to the file. Someone at IBM blundered.
+ In patch #252, I ensured that my copyright notice is on those + files (I am the sole author, and can do that).

+
+ +

Use the translations in the system's app-defaults file as a + guide. The relevant section of the app-default file looks + like

+ +
+ + +

+ *VT100.translations:    #override \
+         @Num_Lock
<Key>KP_0: string(0)\n\
+ +         @Num_Lock
<Key>KP_1: string(1)\n\
+ +         @Num_Lock
<Key>KP_2: string(2)\n\
+ +         @Num_Lock
<Key>KP_3: string(3)\n\
+ +         @Num_Lock
<Key>KP_4: string(4)\n\
+ +         @Num_Lock
<Key>KP_5: string(5)\n\
+ +         @Num_Lock
<Key>KP_6: string(6)\n\
+ +         @Num_Lock
<Key>KP_7: string(7)\n\
+ +         @Num_Lock
<Key>KP_8: string(8)\n\
+ +         @Num_Lock
<Key>KP_9: string(9)\n\
+ +         @Num_Lock
<Key>KP_Add: string(+)\n\
+ +         @Num_Lock
<Key>KP_Decimal: string(.)\n\
+ +         @Num_Lock
<Key>KP_Divide: string(/)\n\
+ +         @Num_Lock
<Key>KP_Enter: string(\015)\n\
+ +         @Num_Lock
<Key>KP_Equal: string(=)\n\
+ +         @Num_Lock
<Key>KP_Multiply: string(*)\n\
+ +         @Num_Lock
<Key>KP_Subtract: string(-)\n\
+ +         
<Key>Prior:scroll-back(1,page)\n\
+ +         
<Key>Next:scroll-forw(1,page)\n\
+ +         
<Key>F16: start-extend() select-end(PRIMARY, CUT_BUFFER0, CLIPBOARD) \n\
+ +         
<Key>F18: insert-selection(PRIMARY, CLIPBOARD) \n\
+ +         
<Key>F27: scroll-back(100,page) \n\
+ +         
<Key>R13: scroll-forw(100,page) \n\
+ +         
<Key>Home: scroll-back(100,page) \n\
+ +         
<Key>End: scroll-forw(100,page) \n
+ +

+
+ +

For example, a more-specific pattern for the resource name + lets you override:

+ +
+ + +

+ XTerm*VT100.translations:       #override \n\
+ +         ~Shift
<Key>Home:  string(\033[1~)\n\
+ +         ~Shift
<Key>End:   string(\033[4~)\n\
+ +         ~Shift
<Key>Prior: string(\033[5~)\n\
+ +         ~Shift
<Key>Next:  string(\033[6~)\n\
+ +         Shift
<Key>Prior:  scroll-back(1,page) \n\
+ +         Shift
<Key>Next:   scroll-forw(1,page) \n\
+ +         Shift
<Key>Home:   scroll-back(100,page) \n\
+ +         Shift
<Key>End:    scroll-forw(100,page) \n
+ +

+
+ +

makes the home/end and pageup/pagedown keys usable by your + editor, while leaving their shifted equivalents available for the + scrollbar.

+ +

Why can't I use the home/end keys?

+ +

This is a long story, unless you are referring to X Consortium + xterm. That program is simply broken + in this respect.

+ +

At the beginning, when the home/end keys were fixed for modern + xterm (in early 1996), there was some discussion regarding what + the escape sequences should be for those keys (for the 6-key + editing keypad). Those were chosen as "PC-style" codes (like SCO + "ansi"), i.e.,

+ +
+
+ESC [ H
+ESC [ F
+
+
+ +

for normal mode, and

+ +
+
+ESC O H
+ESC O F
+
+
+ +

for cursor application mode.

+ +

That style of coding fit easily into the existing logic of + xterm. It was not my change, and (because xterm should be based + upon standards), I did question this, and asked the opinion of + the person who was at that time developing rxvt. He had chosen a + layout based on DEC's VT220 terminals, though the key labels on + the typical PC keyboard did not match. At that point, neither + of us knew enough to make a good case for this.

+ +

Somewhat later I could see that xterm had a number of + undocumented extensions to support the VT220-style (pre-ISO 2022) + character sets. I decided to complete the functionality by making + xterm a VT220 emulator. This would require that it provide the + same escape sequences for the editing and numeric keypads. I + could not simply change the escape sequences from "PC-style" to + "VT220-style", since a number of users "knew" that the keypad + "ought to" send home, end, cursor keys, etc., because they had + labels indicating that use. To retain compatibility (but allow + easy reconfiguration to make a VT220 emulator), I added + popup-menu items to switch between the modes. With minor + refinements, this was the approach for about two years, + culminating with the "stable" patch #88, which is + essentially the version distributed with XFree86 3.3.x.

+ +
+
NOTE:
+ +
+ the terminfo distributed with xterm patch #88 is incorrect: + the escape sequences given for home/end keys are the + VT220-style, rather than the default PC-style. Too accustomed + to switching modes on the fly, I overlooked a line in my + .Xdefaults file: + +
+ + +

+ *sunKeyboard: true
+

+
+ +

Downstream packagers (when they noticed this) accommodated + the bug by modifying the VT100 translations resource which is + not a good technical solution since it interferes with the + users' ability to modify that resource. For example, Red Hat + bug #100695 + quoted a suggested + patch which shows that the package had overridden the + xterm behavior for shifted function keys. See this for more + discussion.

+
+
+ +

But xterm continues to evolve past the stable patch #88. The + keyboard support was still unsatisfactory for two reasons:

+ +
    +
  • some users wanted to be able to use applications that + detected whether the control key was pressed (e.g., + control/F1).
  • + +
  • the compromises made for xkb with X11R6 + interfered with xterm's use of the NumLock key for the numeric + keypad.
  • +
+ +

The former could be addressed by expanding the escape + sequences sent by the PC-style function keys, while the latter + was a VT100/VT220 design issue. I decided to redesign + function-key support to separate the two styles of function keys + better, but leaving the choice still controlled by the + sunKeyboard resource. Partway through that, I was + asked to do similar cleanup and redesign of the backspace and + delete key handling, e.g., the ptyInitialErase resource. + Because it is a redesign, I chose to not make the keyboard + differences between the old and new xterms completely compatible. + If you were to run both on the same system, one or the other + would have some problems with the editing keypad or the + backspace/delete keys which would be addressed by the popup-menu + selections.

+ +

For example, at this time (2001/9/4):

+ +
    +
  • Debian stable is xterm-88c, which should be identical to + the XFree86 3.3.6 version, but is not (there are some label + differences in the resource-file, but nothing interesting + relative to home/end keys). And of course, Debian changes the + terminfo kbs from ^H to + ^?. As noted, the terminfo I wrote for XFree86 + 3.3.x has an error. Setting + +
    + + +

    + *sunKeyboard: true
    +

    +
    + +

    in the app-defaults file fixes the problem with xterm-88, + which was that I documented in the terminfo the behavior + with that resource set. Similarly, setting

    + +
    + + +

    + *backarrowKey: false
    +

    +
    + +

    is one way to address Debian's change to + kbs.

    +
  • + +
  • Debian unstable is xterm-149. Other than omitting the color + resources from the app-defaults file, I see that it sets + +
    + + +

    + *backarrowKeyIsErase: true
    +

    +
    + +

    which would not affect the home/end keys. (The color + resources are redundant, so that is not a problem + either).

    +
  • +
+ +

Here is a resource file + which I tested with xterm-88c, xterm-149 and xterm-158, using + $TERM set to xterm-debian:

+ +
+ + +

+ ! $Id: xterm.faq.html,v 1.169 + 2012/02/05 11:58:56 tom Exp $
! Settings to make xterm-88c work as expected for Debian.
+
!
! Patch #88 was the basis for XFree86 3.3.1 xterm.  There were a few additions
+
! through patch 88c, to incorporate the ptyInitialErase resource.  Debian uses
+
! the VT220-style keyboard, which at #88 was the xterm-xfree86 terminfo entry,
+
! with one change: kbs changed from ^H to ^?.
+
!
! After patch 88, I started work on keyboard changes.  The result was that the
+
! xterm-xfree86 terminfo entry was set to the PC-style keyboard, and I added
+
! xterm-vt220, which corresponded mostly to the older (patch-88) version of the
+
! xterm-xfree86 terminfo entry.
 
+ + ! The terminfo with patch #88 assumed sunKeyboard was set (actually a bug, but
+
! also assumed in Debian).
!
+
! A different problem (addressed after patch #88) is that if you wanted to use
+
! a VT100/VT220-style numeric keypad's escape sequences, you had to have
+
! NumLock set.  Otherwise, in keypad application mode, the keys would transmit
+
! only the PC-style escape sequences corresponding to the key labels, e.g., the
+
! page-up string rather than the escape sequence for keypad-9.
+
XTerm*sunKeyboard: true
+  
+ ! These settings overlap to some extent (backarrowKeys says to send a 127 for
+
! the "backspace" key, and ptyInitialErase says to use the pty's initial sense
+
! of the erase character, which is reported to be the same on Linux).
+
XTerm*backarrowKey: false
+ XTerm*ptyInitialErase: true
+

+
+ +

Why can't I use the cursor keys in (whatever) + shell?

+ +

VTxxx (VT100 and up) terminals may send different escape + sequences for the cursor (arrow) keys depending on how they are + set up. The choices are referred to as the normal and application + modes. Initially, the terminal is in normal mode.

+ +

VTxxx terminals are usually set up so that full-screen + applications will use the cursor application mode strings. This + is good for full-screen applications, including legacy + applications which may have hard-coded behavior, but bad for + interactive shells (e.g., ksh, tcsh, bash) which use arrow keys + to scroll through a history of command strings.

+ +

To see the difference between normal/application modes, + consider this example:

+ +
    +
  • In normal (non-application) mode, the terminal transmits a + down-arrow as \E[C, which happens to echo as a down-arrow.
  • + +
  • In application mode the terminal transmits \EOC, which + echoes as C. That is because the \EO is the SS3 control, which + says to use the character from the G3 character set for the + next cell.
  • +
+ +

Since termcaps and terminfo descriptions are written for + full-screen applications, shells and similar programs often rely + on built-in tables of escape sequences which they use instead. + Defining keys in terms of the termcap/terminfo entry (e.g., by + capturing the string sent by tputs) is apt to confuse the + shell.

+ +

Depending on the terminal type, the keypad(s) on the keyboard + may switch modes along with the cursor keys, or have their own + independent modes. The control sequences for these are + independent of the ones used for cursor-addressing, but are + grouped together, e.g., as the terminfo smkx and + rmkx capabilities. Terminfo entries are written + assuming that the application has initialized the terminal using + the smkx string before it is able to match the codes + given for the cursor or keypad keys.

+ +

Alt-keys do not work in bash

+ +

See Alt-keys do not work + in bash.

+ +

Colors and other graphic rendition

+ +

My terminal + doesn't recognize color

+ +

First, ensure that you have set up xterm to render color. + Modern xterm renders color only if you have set resources to do + this; the default behavior is monochrome to maintain + compatibility with older applications. The manual page describes + these resources. I set them in my .Xdefaults file.

+ +

Even if you set the resources properly, there may be another + application running which prevents xterm from allocating the + colors you have specified. But you should see a warning message for this.

+ +

Check the terminal description, to see if it is installed + properly, e.g., for ncurses, which uses + terminfo.

+ +

Finally, some applications (that do not interface properly + with terminfo or termcap) may need the environment variable + $COLORTERM + to be set.

+ +

What $TERM should I use?

+ +

XTerm provides in its sources both terminfo and termcap files. They are designed + to allow scripting to override the most common choices, e.g., the + backspace key.

+ +

The xterm-color value for $TERM is a bad choice + for modern xterm because it is commonly used for a terminfo entry + which happens to not support bce. Complicating + matters, FreeBSD (after dithering for a few years on the matter) + introduced a bastardized version which implies the opposite sense + of bce, (because it uses SGR 39 and 49), but does + not set it. After lengthy discussion, FreeBSD began using the + terminal descriptions which I've written.

+ +

The most recent XFree86 version's terminal description + corresponds to xterm-xfree86 (also distributed with + ncurses). I have continued to make changes; the most recent + version is simply named xterm-new (also distributed + with ncurses).

+ +

The term "bce" stands for "back color erase". + Terminals such as modern xterm and rxvt implement back color + erase, others such as dtterm do not. (Roughly half of the + emulators that I know about implement bce). When an application + clears the screen, a terminal that implements back color erase + will retain the last-set background color. A terminal that does + not implement back color erase will reset the background color to + the default or initial colors. Applications that paint most of + the screen in a single color are more efficient on terminals that + support back color erase. Inevitably, there are tradeoffs and + issues with standardization of the feature as noted in the + ncurses + FAQ. Unsurprisingly, ncurses supports xterm's behavior.

+ +

Curses libraries that support color know about + bce and do the right thing – provided that you + tell them what the terminal does. That is the whole point of + setting $TERM. The "xterm-color" description distributed with + ncurses does not list bce, because it was applied + originally to a terminal type which does not implement back color + erase. It will "work" for modern xterm, though less efficient. + Some other applications such as the slang library have hardcoded + support for terminals that implement back color erase. Given the + "xterm-color" description, those will be efficient – and + fortuitously work. However, slang (through version 1.4.0) did not + work properly for the terminals that xterm-color was designed + for. See this page for an + example of (n)curses and slang running on dtterm. That bug in + slang is reported to be fixed for succeeding versions, though + your application may require changes to use this fix. (The demo + which comes with slang to illustrate the use of bce + does not work properly, for instance).

+ +

The xterm-color value for $TERM is also (for the + same reason) a bad choice for rxvt, but "works" due to the large + number of hard-coded applications that override this.

+ +

Some people recommend using xtermc. That is + installed on Solaris. However, it does not match any xterm in + current use. (Apparently it was written for an obsolete version + on Unixware). The colors work, true, but the mouse will not, nor + will the function keys.

+ +

Reverse video is not reset

+ +

When running less or other programs that do + highlighting, you see the highlighting not turned off + properly.

+ +

This may be due to incompatible terminal descriptions for + xterm. With XFree86 3.2, I modified the terminal description for + XFree86 xterm to use the VT220 (aka ISO 6429) controls that allow + an application to turn off highlighting (or bold, underline) + without modifying the other attributes. The X Consortium xterm + does not recognize these controls.

+ +

If, for example, you are running an older xterm and rlogin to + a system where the newer xterm has been installed, you will have + this problem, because both programs default to $TERM set to + xterm. The solution for mixed systems is to install the newer + terminal description as as a different name (e.g., + xterm-color) and set the termName + resource accordingly in the app-defaults file for the system + which has the newer xterm.

+ +

However – see above.

+ +

My colors changed in vim

+ +

Some vim users may notice their colors change + after updating to patch + 238. Before, some text would display in a dark color using a + bold font. Now, it displays in a bright color and normal + font.

+ +

This is not a bug, but the result of a feature + tcap-query which was added for vim in 2000. Several vim + users requested that it be enabled by default in the configure + script. It allows vim to ask what characters the different + function keys actually send, eliminating the chance that the + termcap does not match.

+ +

Vim also asks how many colors the terminal supports. Since + patch 148, xterm + has responded with the number of distinct colors that it can + display. By default, that is 16 (8 ANSI colors with bright + counterparts for displaying PC-style "bold" text).

+ +

The interpretation of this depends on the application: + termcaps do not tell how to display more than 8 colors. But vim + understands how to tell xterm to display using 16 colors. It + makes a difference when displaying bright colors. Vim has a table + of 16 color names ("dos-colors"), which one can use to define + parts of the color scheme. If the terminal supports only 8 colors + (colors 0-7), vim uses the bold attribute to simulate colors + 8-15.

+ +

Changing the color scheme to use bold where it is wanted will + make the colors work as before – and work consistently with + other terminals.

+ +

Aren't bright colors the same as + bold?

+ +

No.

+ +

Actually, "bold" happens to be whatever the terminal shows + when it is sent the control-string that says "show bold".

+ +

The standard (ANSI aka ISO-6429 or ECMA-48) says no more than + that. ANSI specified eight (8) colors. In fact, ANSI did not + specify the appearance. That is an implementation detail.

+ +

XTerm can be configured to use colors 8-15 for displaying bold + text. Or it can be configured to use those colors as part of a + 16-color scheme (a feature of aixterm). They use different + control strings. When xterm is configured to use the 16-color + scheme, it displays bold text by relying on the font to show + "bold" (usually thicker characters).

+ +

By default, colors 8-15 are brighter versions of colors 0-7 + (with some special handling for blue). But again, xterm is + configurable and you can use anything that you like for the + numbered colors.

+ +

Can I set a color by its number?

+ +

Well, yes: you can set a color in several ways:

+ +
    +
  • using the color name
  • + +
  • using an RGB value
  • + +
  • selecting an index from the color palette
  • +
+ +

That last (an index) is what some people think of as + the color number. The short answer is that you can find + on the web tables of colors and match them up to the “color + number”. But the number itself has no meaning.

+ +

In my reply to + tput setaf color table? How to determine color codes?, I + noted

+ +
+

You may find this question/answer helpful as well: + + RGB values of the colors in the Ansi extended colors index + (17-255)

+
+ +

although both question and answer raise additional questions. + This FAQ is the logical place to answer those questions.

+ +

Presumably you are reading this to better understand how xterm + works. But you may be interested in the way in which other + terminals emulate xterm. If so, this explanation may help as + well.

+ +

The long answer is that the correct mapping depends on the + terminal — other terminals do not necessarily match + xterm.

+ +

From a shell script, you might use tput with a parameter to an escape + sequence referred to as setaf in the terminal + description. tput attaches no particular meaning to + the number. That actually depends upon the particular terminal + emulator.

+ +

A while back, ANSI defined codes for 8 colors, and there were + two schemes for numbering those. The two are seen in some + terminal descriptions as the pairs setf/setb or + setaf/setab. Since the latter has the connotation of + "ANSI colors", you will see that used more often. The former + (setf/setb) switched the order for red/blue as noted + in Why are red/blue + interchanged?, but in either case, the scheme was + established for just numbering the colors. There is no predefined + relationship between those numbers and RGB content.

+ +

For specific terminal emulators, there are predefined color + palettes which can be enumerated easily enough — and can be + programmed using these escape sequences. There are no relevant + standards, and you will see differences between terminal + emulators, as noted in I don't like + that shade of blue.

+ +

However, convention is often confused with standards. Because + xterm has been around a while, it is regarded as a standard by + some.

+ +

XTerm had color support before I began working on it at the + end of 1995. Some of this + was mentioned in XFree86's changelog:

+ +
+
+XFree86 3.1.2Be (10 January 1996)
+203. Major xterm cleanup (including prototyping), and fixes to the colour
+     code (Thomas E. Dickey).
+XFree86 3.1.2a (23 September 1995)
+ 14. Colour support for xterm (David Wexelblat).
+ 13. Fix usage of $LINES and $COLUMNS by xterm on SVR4 (David Wexelblat).
+
+
+ +

and some was not:

+ +
    +
  • +

    The “dynamic colors” feature came from a patch + written by Erik Fortune (at SGI). Someone applied this to the + XFree86 sources (probably early 1995).

    + +

    Since X11R4, xterm had colors for foreground and + background in the VT100 and Tek4014 widgets, as well as + cursor- and mouse-colors which could be set via resources. + But those were static. The dynamic colors + feature allowed those colors to be set via escape + sequences.

    +
  • + +
  • +

    “Colour support” was a set of changes for ANSI + color. It might have been based on a patch (said to be of + unknown authorship) for X11R5 xterm incorporated into a + program called color_xterm. Raymond's comment in + terminfo.src implies that this program was distributed + earlier; however the copy of color_xterm-alpha4 + which I have at hand has file modification dates starting in + December 1995. Wexelblat's commit is an earlier + non-patch use of the feature for xterm.

    + +

    Both were probably due to Tom Weinstein (also at SGI) in + 1992, which you can find in the + historic Linux archive. The README.color + file in this earlier + color_xterm says

    + +
    +
    +2) Added ISO 6429 support for color text.  You can set the foreground
    +   and background color for text using SGR.  For example, to make the
    +   foreground red, you do:  "^[[31m".  The values from 30 to 37 set
    +   foreground, those from 40 to 47 set background.  The default colors
    +   are: 
    +        0) black   1) red   2) green  3) yellow  4) blue  5) magenta
    +        6) cyan    7) white
    +
    +   These are settable with the resources "color0" to "color1"
    +
    +
    + +

    Aside from README.color, there was no + documentation. The terminal description was unmodified.

    +
  • +
+ +

Thus, from the start there were two types of color support in + xterm. ANSI colors treats the available colors as an array (its + palette) which can be programmed, while dynamic colors applies a + single color to a feature.

+ +

There have been some changes since the color_xterm in + 1992:

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Resource199219952016
color0Blackblackblack
color1Redred3red3
color2Greengreen3green3
color3Yellowyellow3yellow3
color4Blueblue3blue2
color5Magentamagenta3magenta3
color6Cyancyan3cyan3
color7Whitegray90gray90
color8 gray30gray50
color9 redred
color10 greengreen
color11 yellowyellow
color12 bluergb:5c/5c/ff
color13 magentamagenta
color14 cyancyan
color15 whitewhite
colorUL yellowforeground
colorBD whiteforeground
colorRV  foreground
colorIT  foreground
+
+ +

In development of xterm over the past 20 years, we

+ +
    +
  • incorporated ANSI (8) colors,
  • + +
  • adapted the aixterm feature (16) colors,
  • + +
  • added extensions for 88- and 256-colors.
  • +
+ +

Much of that has been adopted by other developers for + different terminal emulators. That is summarized in Why not make "xterm" + equated to "xterm-256color"?.

+ +

As hinted by the table, the 16-color extension was partly + implemented in xterm by late 1995, using the scheme of Linux + console: bold fonts are shown as brighter + equivalents of the ANSI 8 colors. Unlike the Linux console, xterm + can use bold fonts and (aside from providing similar appearance + to the Linux console for programs such as dialog) there was no reason to pretend + that bold and bright were + synonymous.

+ +

The colorUL and colorBD features are + part of this discussion because I incorporated those into the + indexing scheme for colors. More on that later.

+ +

First, deal with the 256- and 88-color extensions.

+ +

The reason for 256 colors is that the index would fit + in a byte. Larason's scheme was simple enough:

+ +
    +
  • the existing 16 colors
  • + +
  • a color cube (6x6x6 is 216, which is the largest cube no + larger than 256).
  • + +
  • a grayscale "ramp", using the remaining 24 entries.
  • +
+ +

The xterm source-code includes scripts for demonstrating the + colors, e.g., using the same escape sequences that + tput would use:

+ +
    +
  • patch #94 + (1999/03/27) added 8colors.sh, 16colors.sh
  • + +
  • patch #111 + (1999/07/10) added 256colors.pl and + 256colors2.pl
  • + +
  • patch #115 + (1999/07/18) added 88colors.pl and + 88colors2.pl
  • +
+ +

I added the scripts in patch #94 because of some user comments + that there were scripts of that sort available, that there were + some deficiencies in those, and and it would be nice to have some + good examples in xterm's source. Coincidentally, that gave Todd + Larason and Stephen P Wall a starting point for the changes to + support 256- and 88-colors.

+ +

The 256-color extension came first. 88-colors (using the same + control sequence) came next, to reduce the amount of memory + needed. XTerm stores both foreground and background color indexes + for each cell on the screen. That is two bytes, which doubled the + amount of memory used by xterm for the scrollback. Reducing that + to a single byte allowed a similar scheme using a 4x4x4 cube and + a proportionately shorter grayscale ramp.

+ +

Like the aixterm 16-color extension, these colors are stored + in an array. Unlike aixterm (whose developers invented a new set + of escape sequences not found in ANSI or ECMA-48), we used + sequences found in ECMA-48: SGR codes 38 and 48. However, the + feature evolved:

+ +
    +
  • +

    The default color palette for xterm uses header-files + generated using scripts similar to the ones provided for + demonstrations (patch #112).

    + +

    The first 16 colors (except for blue) use names in the X + rgb.txt.

    +
  • + +
  • +

    The X libraries cannot handle enough resources to specify + all of the 256 colors as well as other features in xterm.

    + +

    Starting with patch #129, I made the + resource settings for colors past the first 16 a + compile-time option. If you prefer to have the colors as X + resource values, you lose UTF-8. Since xterm accepted escape + sequences for setting the palette, this was not a + problem.

    +
  • + +
  • Steve Wall modified the palette in 2002 (patch #166), making it a + little brighter.
  • + +
  • +

    We used semicolon (like other SGR parameters) for + separating the R/G/B values in the escape sequence, since a + copy of ITU T.416 (ISO-8613-6) which presumably clarified the + use of colon for this feature was costly.

    + +

    It took several years for this to become an issue. The + developers of other terminal emulators were not the ones who + first complained about it.

    + +

    Finally, in 2012 (patch + #282), I extended the parser to accommodate the "correct" + syntax. The original remains, simply because of its + widespread use. As before, it took a few years for other + terminal developers to notice and start incorporating the + improvement. As of March 2016, not all have finished + noticing.

    +
  • +
+ +

As others incorporated the xterm 256-color feature, the + ability to set the palette was usually not done before + announcing that a program had the 256-color feature. Others + acquired the ability to set the palette after a lapse of years. + As an exception, Geoff Wing (rxvt developer) implemented the + complete feature in August 2002 (release 2.7.9). Any + xterm-compatible implementation with support for + 256-colors automatically supports 88-colors, since the palette is + modifiable, which makes comments such as + this at best badly informed.

+ +

XTerm stores the colors for colorUL, etc., at the + end of the color array used for ANSI, 16-, 88- and 256-colors. An + application can modify the colors using + OSC 4, which does not reduce the range + available for the SGR 38/48 index used for + selecting colors (underline, bold, reverse — and + italics — all have their place in the video attribute + fields). Like dynamic colors, this was a feature found in XFree86 + but not in X11R5 or X11R6. According to David Dawes, some people + liked the feature. Mark + J Olesen incorporated the same into rxvt mid-1996, and I + added the other two attributes. However, it was mainly popular + with Red Hat users who wanted to color their manpages. After + Werner Lemberg changed groff behavior in + 2001 to color manpages, this feature is not that well + known.

+ +

Finally, there are the default foreground and + background colors set using SGR 39/49.

+ +

If one wants to enumerate the colors which can be set by index + in xterm, there are multiple indices that are needed:

+ +
    +
  • SGR number (for the 8 ANSI colors, the extra 8 aixterm + colors and the default colors)
  • + +
  • SGR 38/48 with (index) parameter (for the 88-colors and the + 256-colors, keeping in mind that those include the first 16 + ANSI and aixterm colors)
  • + +
  • OSC 4 with (index) parameter (colored video + attributes)
  • + +
  • OSC numbers 10-19 (dynamic colors)
  • +
+ +

The sample scripts in xterm's sources demonstrate these + features. Some are written in POSIX shell, the remainder are in + Perl.

+ +

I don't like that shade of blue

+ +

Nobody does. But there are no universal solutions.

+ +

If your terminal (or the application running in it has a dark + background, then darker blues are hard to see. With a light + background, yellows are hard to see.

+ +

The available standards do not help: there are no + standards for terminal colors. Here is an illustration which I + made in reply to a bug + report, contrasting different choices for blue, against some + of the other terminals which (were said to) provide "standard + vt100 colors":

+ +
+

+

+
+ +

Of course, anyone developing a terminal emulator + already knew that vt100's never did do + colors.

+ +

Ultimately it is up to the application running in a terminal + to enforce the colors it needs. XTerm merely provides the best + compromise on default visibility that I and my users have + found.

+ +

Why doesn't xterm support italics?

+ +

Well, actually it does and it doesn't.

+ +

You can display "any" font using xterm (though proportional + fonts may be disappointing).

+ +

But xterm has specific types of graphic rendition that it will + do. If you want italics, then xterm has an option + (italicULMode) to use that rendition instead of + underlining. That is the usual typographic alternative, though of + course some people want both at the same time.

+ +

However, standard curses does not support italics. Few + terminals do this reliably, so it was disregarded long ago, never + was supported except for low-level applications (in terminfo). No + bit was reserved in the curses header for adding italics for + high-level applications. (As a special case, ncurses was modified + to provide partial + support, but programs using this feature will not work with + other implementations).

+ +

XTerm stores each cell of the display in fixed-size + structures. One byte stores the graphic rendition. XTerm is using + all of the bits in this byte for its VT220 emulation:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MnemonicBitDescription
INVERSE0show cell reverse-video
UNDERLINE1show cell underlined
BOLD2show cell as bold
BLINK3show cell as blinking
BG_COLOR4use background color
FG_COLOR5use foreground color
PROTECTED6character cannot be erased
CHARDRAWN7character has been drawn here on the screen
+ +

While additional bytes could be added to each cell, the cost + to the typical user has so far not been in line with the + usefulness of the feature.

+ +

For those who are not constrained by cost, since patch #305 xterm provides an + experimental compile-time option to support italics. The main + reason for implementing this is to be able to test the italics + feature added in ncurses (patch 5.9.20130831):

+ +
    +
  • this increases the size of the attributes data.
  • + +
  • the feature requires some overhead for font-switching + (treating italics as "rare")
  • +
+ +

The increase in size is not entirely wasted. The SGR + attributes for dim, strike-out, and + double-underscore also are implemented. However, the + last two are not in the portable terminfo definition (from + X/Open), and are not supported in the higher-level curses + interface (there is no A_STRIKE for that + reason).

+ +

Here are screenshots showing the ncurses test-program + displaying video attributes (including italics). The first uses + bitmap fonts:

+ +
+

+

+
+ +

and the second uses a (same size) TrueType font:

+ +
+

+

+
+ +

"grep --color" does not show the right + output

+ +

GNU grep (version 2.5) introduced a --color + option.

+ +

It does this for each highlighted match:

+ +
    +
  1. it writes the text up to (not including the match)
  2. + +
  3. it writes an ANSI color control control sequence
  4. + +
  5. it writes the matched text
  6. + +
  7. it writes a control sequence to clear to the end of the + line
  8. + +
  9. it writes an ANSI control sequence to reset graphic + rendition.
  10. + +
  11. repeat this process until the entire line is written.
  12. +
+ +

One problem is in the second and fourth steps. If the + preceding text brought us up to the last column, then xterm (and + any VT100-compatible terminal) is waiting for graphic text to + wrap to the next line. Any controls would take effect on the + current column position. Newlines are ignored while in this + state.

+ +

However, if xterm gets a control sequence while waiting to + wrap to the next line, it will update the screen according to + that control. Then it is ready to accept more data. But at this + point, it is no longer waiting to wrap; the special case is for + newline versus graphic characters. For instance, backspacing + clears the state (vttest + illustrates this). So the data starts to write at the current + column (the last one on the line), rather than at the beginning + of the next line. In that case, grep's output will not look + right.

+ +

Here are some relevant bug reports:

+ + + +

That description of wrapping is odd, say + more?

+ +

This is one of the aspects of the so-called "vt100 glitch", as + mentioned in the terminfo manpage:

+ +
+

Terminals which ignore a line-feed immediately after an am + wrap, such as the Concept and vt100, should indicate xenl.

+
+ +

When the terminal reaches the right margin, it is in a special + state where it ignores tab characters and other formatting + controls (carriage return and newline), and in effect is + expecting only printable characters to wrap to the next line.

+ +

Without it, it is misleading to refer to a terminal as a vt100 + emulator. After all, it is a well-known feature named for the + VT100. The applicable standards (ISO-6429, ECMA-48) do not go + into enough detail to address this sort of behavior, so the other + terminal emulators can be referred to most accurately as ANSI + terminals (if they obey the other guidelines).

+ +

In 2004, I added a test-screen + to vttest to demonstrate this. It was in response to someone who + insisted that xterm was wrong and one of those other terminal + emulators was "right". I investigated, found that the behavior + had not changed in xterm at least since the early 1990s, and that + it matched the description of behavior from the DEC manuals. One + of my users verified the correctness of the test on a VT520.

+ +

Reviewing the results with xterm-alikes or less ambitious + "vt100 emulators" in mid-2013:

+ +
    +
  • xterm, kterm, mlterm, some operating system consoles are + consistent with the VT100 behavior.
  • + +
  • rxvt, screen, putty (pterm), konsole, vte (gnome-terminal, + xfce4-terminal) are not consistent with VT100 (and behave + differently compared to each other). + +

    I included screen here because it claims to be a vt100 + emulator, and putty since it claims to be an xterm emulator. + I did not include tmux, because it does not make either + claim.

    +
  • + +
  • mrxvt does not get to that screen; it resizes its window to + a single line.
  • +
+ +

In the vttest page, I + have provided screenshots to illustrate these points.

+ +

Odd behavior

+ +

Why can't I cut/paste in xterm?

+ +

When an application sets xterm to any of its mouse tracking + modes, it reserves the unshifted mouse button clicks for the + application's use. Unless you have modified the treatment of the + shifted mouse button events (e.g., with your window manager), you + can always do cut/paste by pressing the shift key while clicking + with the mouse.

+ +

Why + can't I select tabs in xterm?

+ +

This issue was noted early on, here in 1997.

+ +

XTerm is copying from the screen, which + stores only printable characters. That includes spaces and + line-drawing characters. But tabs are special; they are used for + more than one purpose.

+ +

If the screen is cleared in some part, that stores nulls. + Cursor addressing does not fill in nulls as it jumps around, + though xterm does supply blanks for the most useful cases, + especially when getting data for a selection.

+ +

Full-screen programs such as text-editors tend to write in + random fashion, and generally do not print nulls to the screen. + Curses on the other hand, may supply tabs where you thought there + were none. Also, the terminal driver can expand tabs (and often + is set to do this by default).

+ +

So the whole thing is unreliable: unless you make special + arrangements for each of the programs running inside xterm, you + would often get a tab when you expect, and vice versa.

+ +

For the special case where your expectations would match the + available data, it is solvable. There are basically two ways it + could be done:

+ +
    +
  • set a bit in each cell's data which says it was skipped + over via a tab. The complication is that xterm is using all of + the flag bits in each cell.
  • + +
  • store literal tabs and nulls to be interpreted later + – both by the display and the selection logic.
  • +
+ +

As of 2010, a few other terminals do implement this feature. + But the reason that it's been low-priority is that it's of very + limited usefulness when copying between terminal sessions (and + for that matter, from other clients).

+ +

FVWM does weird things when I try to resize + xterm

+ +

I have an old (3.1.2G) bug report for xterm which may be + related to the second (3.9s) problem:

+ +
    +
  • Steven Lang <tiger@ecis.com> reports a problem with + extra resize events for xterm. + +

    When I change font size often I will get the + double-refresh, and when that happens the text program gets 2 + resize events.. Running a quick test, I got this: Going to a + bigger font, it got a 53x20 resize, then a 80x24 resize. + Going to a smaller font, it got a 120x27 resize, then a 80x24 + resize.

    + +

    Earlier I made a mention of changing font size in rxvt + (And xterm does it to) causing 2 resize events. Well I just + happened to do it in fvwm (Instead of fvwm 95) and found it + seems to be a 'feature' of fvwm95, not XFree86 as I'd + initially assumed.

    +
  • + +
  • Stephen Marley <stephen@memex.com> reports a problem + with the active icon (from X11R6.3 xterm): + +

    Using the XFree86 xterm-53 with the active icon feature + on, I get some problems resizing where the xterm window + shrinks as small as possible and won't stay at whatever size + you set it thereafter.

    + +

    Comment out the PixmapPath and IconPath from your .fvwmrc + file to disable the fvwm icons and restart the WM. Start an + xterm. Iconify xterm and maximize it again. Use resize button + or corners to resize the xterm.

    + +

    The xterm now shrinks to a tiny size and attempts to + resize it result in it shrinking again.

    + +

    I've tried this with fvwm 1.23 and fvwm 2.0.46 with the + same results. Olvm, olvwm and twm all behave correctly so it + may be a fvwm problem.

    +
  • +
+ +

I have not observed the first, but have reproduced the + second.

+ +

Why + doesn't the screen clear when running vi?

+ +

This refers to the "alternate screen" feature, which has been + used in its termcap file since 1988. On various systems, this + feature may have been removed, although it has always been in the + xterm sources.

+ +

The feature is controllable (it can be enabled or disabled). + However, as it was originally conceived, that ability to control + it applies only to programs using termcap.

+ +

Under SunOS 4.x, the termcap description for xterm embeds in + the ti and te capabilities a command to + switch to xterm's alternate screen (e.g., while running + vi), and return to the normal screen on exit. This + has the effect of clearing the screen. The corresponding terminfo + symbols for ti and te are + smcup and rmcup, respectively.

+ +

Beginning with Solaris 2.x, the terminfo description did not + use the alternate screen (it is a matter of preference after + all), so that the text from vi remains on the screen after exit. + Sun patched the X11R5 terminfo description to omit the + smcup and rmcup capabilities. However, + Sun began distributing modern xterm on the freeware + companion (a CDROM) beginning with Solaris 8. In Solaris 10 + for instance, the ncurses 5.6 package provided a usable terminal + description for xterm which uses the alternate screen. Solaris 11 + distributes modern xterm (though perhaps oddly) using an + old—unpatched—terminal description.

+ +

Because it is in the terminal description, the feature is + configurable...

+ +

For example (from Bjorn Helgaas <helgaas@dhc.net>) this + procedure adds these capabilities to the "xterm" terminfo + definition on HP-UX 10.20:

+ +
+ + +

+ cp /usr/lib/terminfo/x/xterm /usr/lib/terminfo/x/xterm.orig
+ + untic xterm > /tmp/xterm.src
+ echo " smcup=\E7\E[?47h, rmcup=\E[2J\E[?47l\E8," >> /tmp/xterm.src
+ + tic /tmp/xterm.src
+

+
+ +

In this example, the terminfo strings are a series of + operations:

+ +
+
+
smcup
+ +
\E7 saves the cursor's position
+ +
\E[?47h switches to the alternate + screen
+ +
rmcup
+ +
\E[2J clears the screen (assumed to be the + alternate screen)
+ +
\E[?47l switches back to the normal + screen
+ +
\E8 restores the cursor's position.
+
+
+ +

However, xterms that are linked with termcap are more flexible + in this area than those linked with terminfo libraries. The xterm + program supports a resource titeInhibit which + manipulates the $TERMCAP variable to accomplish this. It sets the + $TERMCAP variable for the client with the ti and + te capabilities suppressed. Systems that use + terminfo cannot do this. If you are running terminfo with the + alternate screen controls in the terminal description, then you + can suppress the switching to the alternate screen by the + titeInhibit, but not the associated cursor + save/restore and clear-screen operations.

+ +

XFree86 3.9s + xterm implemented a different set of controls (private setmodes + 1047, 1048 and 1049) which address this (in addition to the older + set of controls, for compatibility). The new set of controls + implements the entire ti sequence (save cursor, + switch to alternate screen, clear screen) and te + (switch to normal screen, restore cursor) as two control + sequences that can be disabled by titeInhibit.

+ +

The 1049 code is a refinement of 1047 and 1048, clearing the + alternate screen before switching to it rather than after + switching back to the normal screen. Since patch #90 in 1998 xterm allows you + (with a popup menu entry designed to exploit this behavior) to + switch the display back to the alternate screen to select text + from it, to paste into the normal screen. You can also set or + clear the titeInhibit resource using another popup + menu entry (Enable Alternate Screen Switching).

+ +

Most other terminal emulators implement only half of the + feature. They recognize the control sequence, but do not provide + the ability to change it at runtime, e.g., using a menu entry. + Like any other half-done implementation, that is a bug which + should be reported to the developers of those programs.

+ +

Why doesn't the screen clear when I type + control/L?

+ +

Control/L is ASCII form-feed. Printers do + something with form-feed. Terminals do not, as a rule (though I + agree it would be nice, e.g., this).

+ +

Interpreting form-feed is normally done by your shell, not by + the terminal emulator. In a quick check:

+ +
    +
  • bash, tcsh, zsh interpret form-feed by clearing the screen, + while
  • + +
  • csh, dash, ksh, mksh, yash do not
  • +
+ +

VT100s did not respond to form-feed. A few terminal emulators + interpret form-feed (PuTTY and SunOS console), but neither + matches VT100 behavior.

+ +

Because most people do not see the difference between a + form-feed which they type (and is presumably echoed as a + form-feed) versus a form-feed which is sent from an application + to the terminal, this leads to confusion. + Several years ago, I pointed this out as one of the errors in + the C FAQ + (notwithstanding Summit's comment, he did not update the + FAQ).

+ +

Why + is the cursor misplaced after running vi?

+ +

Vi and other full-screen applications use the termcap + ti/te (terminfo smcup/rmcup) strings to + initiate and end cursor addressing mode. As mentioned in the + discussion of titeInhibit, full-screen + applications can expect the initialization string to save the + cursor's position, and the end-string to restore it.

+ +

A few applications (reportedly IRIX 5.x and 6.x + vi incorrectly move the cursor before initializing + cursor-addressing. This will cause the end-string to restore the + cursor to its position when it was saved by the initialization + string (typically at the upper left corner of the screen).

+ +

The usual reason is due to the cursor save/restore controls in + the ti/te strings. If your application runs a + subprocess which in turn runs another full-screen application (or + when reinitializing the screen after the shell process), it will + save the cursor position again, so the position which is restored + when finally exiting your program is the last one saved, not the + first. Modern xterm (from late 1998, patch 90) changes the behavior of + the cursor save/restore operations so they apply only to the + current screen. That makes it less likely to misplace your + cursor.

+ +

Why doesn't the scrollbar work?

+ +

Originally xterm was built using imake rather than a configure + script. One feature of imake that is not possible to guess within + the configure script is the wide-prototype compile-time + definition NARROWPROTO. When this is not set properly, the Athena + widget scrollbars do not work properly. xterm's configure script + has a fallback case which allows disabling imake. However, this + is moot with the Xorg "modular" build, whose compiler options are + unrelated to imake or older versions of any libraries that it may + distribute. In this case, the configure script needs some help. + Use this option to enable or disable NARROW proto (and disable + imake with the --disable-imake option) to match the whims of Xorg + hackers.

+ +

For instance

+ +
+
+configure --disable-imake --disable-narrowproto
+
+
+ +

Can I improve the scrollbars?

+ +

Is that a problem with the appearance, or the way they + work?

+ +

The appearance can be modified (though few do this) by linking + with one of the variants of the Athena widget set (Xaw).

+ +

To illustrate, here are a few screenshots:

+ +
+
+
Xaw (default)
+ +
+

+

+
+ +
XawPlus
+ +
+

+

+
+ +
Xaw3d
+ +
+

+

+
+ +
neXtaw
+ +
+

+

+
+
+
+ +

Those variants use the same calling interface, so supporting + them is simple. Adapting to other toolkits would be much more + difficult. For instance (see the discussion of mxterm), replacing the scrollbars may require + replacing other parts from the library to get consistent + initialization and operation. In the case of Motif, it had + nothing like the Athena widget set's popup menus.

+ +

Why + can't my program read the window title?

+ +

The longstanding control sequence for reading the window title + is something that can be abused in special conditions. For novice + (unknowledgable) users, this can be a problem.

+ +

XTerm provides resource-settings and menu + entries to allow this and related features to be enabled or + disabled. See for example allowWindowOps The default + resource settings in xterm can be overridden by a packager. + However, a knowledgable user can override those default + settings.

+ +

It is also possible that an overzealous packager may have + crippled xterm by removing the functionality altogether. (That + should be reported as a bug, to me).

+ +

For instance, one of those sent me a "security fix" some years + ago, which deleted most of the control sequences which return + data to the host. It broke the resize program, and + selection, among other uses considered to be benign. In contrast, + the same features used in other terminal emulators are tolerated + by the same people, so rather than being a misguided attempt at + fixing security issues, patches such as that appear to be an + attempt at harassment.

+ +

Why can't my program set the window size?

+ +

Some overzealous packagers, perhaps influenced by the + demonstration I provided, are protecting you against the + possibility of your xterm becoming inaccessible. (That's + unlikely...).

+ +

You should be able to override it, as noted above via resource + settings or menu entry ("Allow Window Ops").

+ +

Why is the text in the + wrong place?

+ +

Are you using Ubuntu? This is a frequently-reported problem + for Ubuntu users. With other systems, it can occur (as of + September 2012), but is less frequent. But it has been an issue + with Ubuntu since 2008.

+ +

There are several related symptoms, e.g.,

+ +
    +
  • text may be the wrong size
  • + +
  • repainting the screen puts text in the wrong place
  • +
+ +

Here are some of the corresponding bug reports:

+ + + +

Since the problem is not in xterm, all I can do is to help + forward those bug-reports to whatever package owns + compiz. What these have in common is that someone + has written code which is tested against only a small subset of + the X protocol.

+ +

Looking for solutions (since compiz is not being fixed), it is + possible to disable compiz. The means for doing this vary with + time. Aside from pointing to the root cause of the problem, there + is little advice that is useful.

+ +
    +
  • For instance, this + comment by Eric Williams suggests that the problem can be + worked around by setting xterm's borderWidth + resource to zero.
  • + +
  • other comments suggest turning off the "desktop effects" or + "animation".
  • + +
  • On my machines using the default Ubuntu desktop, I + can see misbehavior easily in Ubuntu 12.04 using vttest. However, Ubuntu 12.04 + provides Ubuntu 2D, which does not show those + problems (and is noticeably faster).
  • +
+ +

Sample .Xdefaults Color-Settings for + XTerm

+ +
+ + +

+ XTerm*internalBorder:  10
+ XTerm*highlightSelection:  true
+ XTerm*VT100.colorBDMode:  on
+ XTerm*VT100.colorBD:  blue
+ XTerm*VT100.colorULMode:  on
+ XTerm*VT100.colorUL:  magenta
+ XTerm*VT100.eightBitInput:  true
+ XTerm*VT100.eightBitOutput:  true
+ XTerm*scrollBar:  true
+ XTerm*VT100.titeInhibit:  true
+  
+ XTerm*VT100.colorMode:  on
+ XTerm*VT100.dynamicColors:  on
+  
+ ! Uncomment this to use color for underline attribute
+
XTerm*VT100.colorULMode:  on
+ XTerm*VT100.underLine:  off
+  
+ ! Uncomment this to use color for the bold attribute
+
XTerm*VT100.colorBDMode: on
+  
+ XTerm*VT100.color0: black
+ XTerm*VT100.color1: red3
+ XTerm*VT100.color2: green3
+ XTerm*VT100.color3: yellow3
+ XTerm*VT100.color4: blue3
+ XTerm*VT100.color5: magenta3
+ XTerm*VT100.color6: cyan3
+ XTerm*VT100.color7: gray90
+ XTerm*VT100.color8: gray30
+ XTerm*VT100.color9: red
+ XTerm*VT100.color10: green
+ XTerm*VT100.color11: yellow
+ XTerm*VT100.color12: blue
+ XTerm*VT100.color13: magenta
+ XTerm*VT100.color14: cyan
+ XTerm*VT100.color15: white
+ XTerm*VT100.colorUL: yellow
+ XTerm*VT100.colorBD: white
+  
+ XTerm*VT100.cursorColor: lime green
+

+
+ +

XTerm comes with two copies of each resource + file, one with color only (XTerm-col.ad, which is + installed as XTerm-color), and the regular one + (XTerm.ad, installed as XTerm). To use + the XTerm-color file in conjunction with a separate + XTerm app-defaults file which does not contain + color, add the following line to your .Xdefaults + file:

+ +
+ + +

+ *customization: -color
+

+
+ +

What is this warning message?

+ +
+
xterm: Error 11, errno 22: permission + denied
+ +
+ Actually, any message like this denotes a failure which + requires studying the xterm source to determine the exact + problem. + +

You have either found a bug in xterm, or there is + something wrong with your computer's configuration, e.g., not + enough pty's, incorrect permissions, etc.

+ +

The first number is an internal code (defined in error.h + in xterm's source), and the second is the system error number + (defined in /usr/include/sys/errno.h). The system error + number is easier to lookup, but the internal error code tells + you where to look in the source.

+
+ +
input method doesn't support my + preedit type
+ +
+ Ignore this if you do not know what input method is. + Input methods are used to enter composite characters (e.g., + umlauts, other types of punctuated characters, East Asian + characters, etc). Your computer's libraries support this, but + are missing configuration tables, and xterm is warning you. + +

If the message bothers you (e.g., if you aren't starting + xterm from a window manager menu), you can suppress it by + setting a resource:

+ +
+ + +

+ XTerm*openIm:false
+

+
+
+ +
Warning: Actions not found: ignore, + "xxx"
+ +
+ The action "xxx" (for example "scroll-back") is specified in + a resource file whose translations match widgets that do not + support them. For example, this + +
+ + +

+ XTerm*translations:     #override\n\
+         
<Leave>, ~Ctrl ~Meta <Btn2Up>: ignore()\n\
+ +         ~Shift 
<Key>KP_8: scroll-back(1,line)\n\
+ +         ~Shift 
<Key>KP_2: scroll-forw(1,line)\n\
+ +         Shift 
<Key>KP_8: scroll-back(1,halfpage)\n\
+ +         Shift 
<Key>KP_2: scroll-forw(1,halfpage)
+ +

+
+ +

will produce warnings such as

+ +
+
+Warning: Actions not found: ignore, scroll-back, scroll-forw
+Warning: Actions not found: ignore, scroll-back, scroll-forw
+Warning: Actions not found: ignore, scroll-back, scroll-forw
+
+
+ +

This is a correct form, assigning the actions to the + "VT100" widget.

+ +
+ + +

+ XTerm*VT100.translations:     #override\n\
+         
<Leave>, ~Ctrl ~Meta <Btn2Up>: ignore()\n\
+ +         ~Shift 
<Key>KP_8: scroll-back(1,line)\n\
+ +         ~Shift 
<Key>KP_2: scroll-forw(1,line)\n\
+ +         Shift 
<Key>KP_8: scroll-back(1,halfpage)\n\
+ +         Shift 
<Key>KP_2: scroll-forw(1,halfpage)
+ +

+
+
+ +
Warning: Cannot allocate colormap entry for + "xxx"
+ +
+ This comes from the X library. Modern xterm uses the default + color map. What this means is that if your X server has + insufficient space to store color information for more than + one color map, other applications which could use other color + maps may conflict with xterm. In practice, that is 256 unique + colors on the screen at a time—not enough for a fancy + background or an application such as Netscape. + +

During resource initialization, xterm attempts to allocate + an entry from the color map for each color which it might + use. If there are not enough free slots in the color map, you + will see a "Cannot allocate" message for each color that + xterm failed to allocate. Those colors will be rendered in + the foreground color, making full-screen color applications + such as dialog + unreadable.

+ +

This problem is alleviated with patch 129, which modified + xterm to delay the most color allocation until the colors are + first needed. If a color is never needed (xterm allocates 20 + colors in this manner), that reduces the number of slots in + the color map that are needed. Even with this improvement, + xterm must still allocate 4 colors during initialization to + determine how to display the cursor. If none of those colors + can be allocated, xterm reverts to monochrome.

+
+
+ +

Known + Bugs in XTerm and Look–alikes

+ +

These are the known bugs (or limitations) in modern xterm. + They are also present in the other versions based on the X + Consortium sources (color_xterm, ansi_xterm, kterm).

+ +

Note that of the emulators that support color, some do not + support bce (back color erase). The bce capability + is also called the "new color model", though it has been + implemented in the IBM PC for quite a while. Technically, not + implementing bce (or allowing the choice between it + and its complement) is not a bug, since few hardware terminals + (with good reason) implemented this feature.

+ +
    +
  • cut/paste does not select tabs; instead spaces are + selected. This is because the selection works from the array of + displayed characters, on which tab/space conversion has already + been performed.
  • + +
  • does not implement the autorepeat feature of VTxxx + terminals.
  • +
+ +

X11R6.3 XTerm

+ +

The X Consortium version of xterm (and versions based on it) + has additional bugs not in modern xterm:

+ +
    +
  • the program must be run with fixed (nonproportional) + fonts.
  • + +
  • the home and end keys do not generate usable escape + sequences, due to an indexing error. (Note that it is possible + to work around this using the VT100 translations resource, but + usually this is not done).
  • + +
  • the Main Options menu is improperly constructed, due to + incorrect indices after removing the logging toggle. This makes + the list of signals off by one.
  • + +
  • very large screens (e.g., by using nil2 for a font) cause + core dumps because the program uses a fixed array (200 lines) + for adjusting pointers.
  • + +
  • certain types of key translations cause a core dump because + the program does not check the event class before attempting to + use events.
  • +
+ +

(These bugs are also present in the X11R5 version).

+ +

Update 2004/04/08:
+ Complicating this discussion is the "X.Org" xterm (from 2004). + That is the XFree86 xterm from XFree86 CVS with all visible + "xfree86" strings changed to "X.Org" or "xorg", depending on the + use. For example the "xterm-xfree86" terminfo entry becomes + "xterm-xorg". The change history for the related CVS for X.Org + shows this. Similarly, the release notes for X11R6.7 included my + notes for XFree86 4.4.

+ +

As of 2009, it was apparent that "X.Org" xterm had + died a natural death, since none of the people who created it had + any likelihood of maintaining it. Instead, X.Org defers to my + version of xterm.

+ +

Reviewing in 2014, the major vendors have been using + modern xterm (different patch levels) for some time. However, + there are documentation problems with AIX, beyond what is noted + here:

+ +
    +
  • AIX provides a copy of luit, + and a corresponding + manpage—which omits the sections on security, bugs + and attribution.
  • + +
  • The + xterm manpage provided with AIX says this is X11R6 xterm + “with no functional enhancements.” Comparing + releases X11R5, X11R6.1, X11R6.3 against the AIX page, it + matches X11R6.1 (December 1995). That is, it includes the text + of the X11R6.1 xterm manpage plus the control sequences + document—again omitting the security, bugs and + attribution sections from each.
  • +
+ +

The other vendors provide documentation which is more + up-to-date.

+ +

COLOR_XTERM download

+ +

This is based on the X Consortium X11R5 source, with the same + bugs.

+ +
    +
  • implements non-bce color model
  • + +
  • moving the cursor is reported to leave trails of incorrect + color
  • + +
  • clearing the screen resets colors (arguably this is a + limitation).
  • +
+ +

Not exactly a bug, but it does not build on Linux with + X11R6.3

+ +

ANSI_XTERM + download

+ +

This is based on the X Consortium source, with the same + bugs.

+ +
    +
  • implements non-bce color model
  • + +
  • fails vttest by not + rendering reverse-video screen
  • +
+ +

CXTERM download

+ +

CXterm stands for "Chinese Xterm". This is based on the X + Consortium source.

+ +

DTTERM

+ +

This is distributed with CDE. It implements more of the DEC + VT220 than the X Consortium xterm, and also adds controls to + manipulate the window and icon.

+ +
    +
  • implements non-bce color model
  • + +
  • fails vttest by clearing + its background to solid white rather than preserving its sense + in response to ED.
  • + +
  • under some circumstances, scrolling margins are not + recognized. For instance, running vile which uses scrolling margins, we see + text overwriting the status line.
  • +
+ +

EMU 1.3 + download

+ +

This is not based on the X Consortium source. The authors + state that it implements VT220 emulation. It is in need of + maintenance, since it builds with some problems to produce an + executable that (on Linux and SunOS) does not handle the carriage + return and newline translations properly. So I am unable to run + vttest on this emulator.

+ +

ETERM link

+ +

Eterm was based on rxvt, though the appearance differs. The + terminal emulation capabilities appear similar, though I am not + able to run the full suite of tests in vttest with this emulator (the core + dump noted for rxvt, as well as hanging while awaiting response + from one or more control sequences). Oddly, it appears that + neither Eterm nor rxvt implement CPR (cursor position report). + Finally, it reserves F1 (function-key) for a popup menu. This + applies to versions of Eterm through 0.9.

+ +

GNOME TERMINAL link

+ +

GNOME Terminal is developed separately from both xterm and + rxvt, and was originally based on the zvt (zterm) widget. Like + kvt), it appears to have been developed + imitating other terminal emulators (Linux console and xterm) + rather than strictly emulating a VT102. The documentation is + fragmentary (with a comment suggesting that the author does not + know where to find relevant information), and the program fares + badly with vttest. Beginning + with late 1999, reports indicate that it does not properly parse + ANSI control sequences: the vim editor is using xterm's + vt220-style "Send Device Attributes" (Secondary DA) control + sequence to obtain the terminal emulator's version. That is, it + sends

+ +
+
+\E[>c
+
+
+ +

expecting a response such as

+ +
+
+\E[>0;138;0c
+
+
+ +

for vt100. The bug report indicates that the "c" sent by vim + is echoed rather than interpreted by the emulator.

+ +

But it suffices for vi.

+ +

A more recent GNOME Terminal uses the VTE widget. I observed + version 1.4.0.4 in late 2001, which mentioned it in the credits + (although VTE 0.1's ChangeLog mentions no date before February + 2002). It does not implement a complete vt102: it was missing + several features which can be demonstrated in vttest). Most of the bugs in the Device + Attributes responses remain, but it works a little better with + vim. However, there are problems with the alternate screen that + show up with vim. Again, these can be demonstrated with vttest + (menu 11.6.3 in the 20011130 snapshot).

+ +

Rather than evolving from zvt, VTE is largely a new work. It + does credit zvt in one place. However, its source code uses + xterm's source code as a resource, accounting for odd (often + incomplete) chunks. Reviewing 0.9.0 (September 2002):

+ +
    +
  • the termcap file. The last comment in the file is copied + from xterm's source. The content of course is generated from + ncurses with a small number of changes.
  • + +
  • the parser src/vte.c —a 14,125 line + file. For example, the chunks related to DEC VT220 keyboard + queries and DEC private modes contain comments copied from + xterm's source code.
  • +
+ +

Later versions of VTE incorporate more features (and comments, + symbol names, etc), from xterm's source. In some instances, the + copied features were disabled by Red Hat's package for xterm. + Here is + a related bug report, for key bindings.

+ +

The documentation for GNOME terminal asserts:

+ +
+

GNOME Terminal emulates the xterm application developed by + the X Consortium. In turn, the xterm application emulates the + DEC VT102 terminal and also supports the DEC VT220 escape + sequences. An escape sequence is a series of characters that + starts with the Esc character. GNOME Terminal accepts all of + the escape sequences that the VT102 and VT220 terminals use for + functions such as to position the cursor and to clear the + screen.

+
+ +

That sounds fine, except that it is both inaccurate and + misleading:

+ +
+
+
inaccurate
+ +
+ combining the "X Consortium" and "DEC VT220", for example, + since that was done after the demise of said organization. + +

It emulates a subset of VT100, lacks support + for most of the VT220 control sequences (including some + used for positioning the cursor) that are not recognized by + a VT100.

+ +

Even in the subset which it emulates, GNOME Terminal has + bugs. Many of these are easy to demonstrate with + vttest.

+
+ +
misleading
+ +
as noted in Xterm Control + Sequences, xterm (mostly after "X Consortium") supports + control sequences which are not VT100/VT220. GNOME Terminal + implements many of these, but not all.
+
+
+ +

Perhaps that was unintentional – GNOME developers did + not appear to document what their program does outside + of that remark. However, an inspection of the changelog for + libvte (VTE) does show that most of the borrowing from xterm is + cited in an oblique manner – not once mentioning XFree86 + for example, leaving the impression (as indicated by "X + Consortium") that all of the work on xterm was done before + development of GNOME Terminal commenced.

+ +

Most of this observation was documented between 2000 and 2007. + Other than maintenance, development of GNOME Terminal appears to + have paused in 2005. As of 2009, its maintainer is (of the + development team), the least knowledgeable about terminal + emulation. So there is no progress on the large number of bug + reports related to xterm-compatibility.

+ +

Notes + on VTE

+ +

VTE's README file asserts

+ +
+

VTE supports Unicode and character set conversion, as well + as emulating any terminal known to the system's terminfo + database.

+
+ +

The latter part of that ("emulating any terminal") is + incorrect. It does have the ability to work with the standard + function-key definitions which can be defined in a terminfo + description.

+ +

Some of the function-key logic is adapted from xterm; + generally refactoring the xterm source-code to make it appear + different. In places however (naming conventions and comments), + there is some verbatim copying. The same comment is true of + "character set conversion". None of that is reflected in VTE's + changelog.

+ +

As an aside, the credits in GNOME Terminal's "About" box also + are inaccurate. For several years (according to its change-log), + most of the work on VTE (the principal part of the program) was + done by Nalin Dahyabhai.

+ +

xterm on the other hand, can be told with the + tcapFunctionKeys resource setting to use a more + complete subset, based on the ncurses extended terminal + descriptions. Even xterm's terminfo/termcap descriptions do not + cover the (literally) thousands of keyboard combinations which + are available via its resource settings.

+ +

Outside of function-keys, VTE provides no ability to emulate + "any terminal". A casual glance at its source code reveals the + following:

+ +
    +
  • no support for VT220-style protected areas.
  • + +
  • inconsistent support for modifier keys (the subject of + several bug reports misdirected toward ncurses).
  • + +
  • only a subset of the standard terminfo/termcap properties + is used (5/36 booleans, 3/33 numbers, 125/242 strings other + than function-keys).
  • + +
  • a pervasive assumption that the terminal is something like + xterm, e.g., to provide hardcoded behavior where termcap might + describe something different.
  • + +
  • it uses termcap to retrieve data, rather than providing a + choice between terminfo/termcap, opening up the problem of + using an obsolete database.
  • + +
  • using termcap also means that it has no guidance for + following features which are absent or have + limited-functionality compared to terminfo, such as setting + video attributes, colors, etc.
  • +
+ +

For instance, VTE cannot emulate dtterm, because of differences in + color behavior. In fact, VTE does not use any of the termcap data + to support its interpretation of color control sequences.

+ +

Because of GNOME Terminal's reputation for excessive code + bloat, developers of every other program based on VTE advertise + their version as reduced memory usage, faster startup, etc. Here + are a few of the available ones:

+ +

osso-xterm link

+ +

This is one of several GUI "skins" over the VTE widget which + forms the functional core of GNOME Terminal.

+ +

Its home page refers to "at least two versions". I recall + seeing an older version which was apparently not based on VTE. + There did not appear to be any relevant page (as of 2009) for + that version.

+ +

roxterm link

+ +

This is one of several GUI "skins" over the VTE widget which + forms the functional core of GNOME Terminal.

+ +

XFCE Terminal link

+ +

This is one of several GUI "skins" over the VTE widget which + forms the functional core of GNOME Terminal.

+ +

MULTI GNOME TERMINAL (MGT) link

+ +

Of particular note, MGT 1.4.0 announcement claims that it + works properly for all of vttest)'s tests. On the positive side, + it does do VT52 emulation, but (reading the source code did not + help) it apparently does not really do VT220 from vttest's + perspective.

+ +

HANTERM download

+ +

HanTerm stands for "Hangul term" (Korean). This is based on + the XFree86 source.

+ +

KONSOLE link

+ +

More than just a rewrite of kvt into C++. But there are several + incompatibilities between konsole (noted with version 1.0.2 in + late 2001) and xterm:

+ +
    +
  • none of the selections of keyboard mappings match the + actual behavior of xterm (a few come close, but do so by + matching the terminfo descriptions rather than the programs). + In particular, the application keypad does not send vt100-style + escapes.
  • + +
  • vttest) demonstrates that + konsole does not properly ignore escape sequences to switch + character sets that it does not support. Also, the developers + of konsole did use an old version of vttest, but that was to + add a bogus Device Attributes response (claimed to be for + "vt220", but not corresponding to any that DEC produced). They + do not use the newer version of vttest (which was available + more than a year before development of konsole began).
  • + +
  • konsole implements several features from XFree86 xterm, but + some are done incorrectly. In particular, the private setmode 1049 does not + save and restore the cursor, causing the cursor to be in + unexpected locations after exiting a fullscreen application + such as vi.
  • +
+ +

The problems with setmode 1049 were fixed after some time; + other issues linger on.

+ +

Like GNOME Terminal, konsole's + documentation is incomplete and inaccurate. This gem from its + handbook illustrates the problem:

+ +
+

After a decade, Konsole is the first rewrite from the ground + up. While xterm has definitely been hacked to death (its README + begins with the words Abandon All Hope, Ye Who Enter Here), + Konsole offers a fresh start using contemporary technologies + and understanding of X.

+
+ +

The problem:

+ +
    +
  • the remark was apparently written in 1997. It was + inaccurate at that time, since it disregards the earlier + xvt/rxvt applications. Limiting it only to a plain statement + that konsole was a rewrite of kvt would have been more accurate. + Lacking that context, we find nonfactual articles such as + this + on the net.
  • + +
  • for those lacking a proper education, the README was + apparently intended to be a humorous reference to Dante's + Inferno.
  • + +
  • reading konsole's source code and considering "hacked to + death" can provide some occasion for humor. Enjoy.
  • +
+ +

KTERM download

+ +

KTerm stands for "Kanji term" (Japanese). This is based on the + X Consortium source, with the same bugs (though the list of + original authors has been removed; the modifications that + comprise kterm is relatively small).

+ +
    +
  • implements non-bce color model
  • + +
  • implements status line, but uses non-DEC escape sequences + for this.
  • +
+ +

There is a variation of xvt (ancestor of rxvt) originally + known as kvt bundled with + KDE which may be referred to as + "kterm", but I do not find it interesting, other than to comment + that it was a poor choice of name.

+ +

MLTERM

+ +

Mlterm is not based on xterm or rxvt source, though it + implements many of their features. It does fairly well with + vttest, except for some odd + misbehavior in operations that save/restore the cursor + position.

+ +

MTERM

+ +

There are a few variants of this: the xterm bundled with some + Motif clients is more common. More interesting, however is one + (not Motif), attributed to "Der Mouse".

+ +
+
+(mouse@Lightning.McRCIM.McGill.EDU) Available:
+larry.mcrcim.mcgill.edu (132.206.1.1) in
+/X/mterm.src/mterm.ball-o-wax.
+
+
+ +

I saw only an incomplete version of this while it was + advertised in the mid-90's. It is available by email from + <mouse@Rodents.Montreal.QC.CA>. or via ftp. + This is not a patched version of xterm, though it was apparently + written, like rxvt, to emulate vt100's. While it does have some + interesting features (such as blinking characters), overall it + does not do as well with vttest + as the more widely known emulators.

+ +

MXTERM

+ +

There are several variants on this: xterm adapted for Motif + libraries. I have seen none that work properly:

+ +
    +
  • + MXTERM: a motif Xterm with character attributes color + rendered I've noticed this one only recently. It is a + reworking of the earlier patches for color_xterm (credited to + Erik Fortune at SGI) and the Motif widgets (apparently first + done by Ivan M. Hajadi at SGI in 1991, but credited in this + release to Mahesh Neelakanta, for Motif 1.2.4).
  • + +
  • + + ANSI Xterm with Motif Scrollbar Usually seen as the + ansi-xterm-R6-motif-sb patch, I used this as the starting + point for changes to my #82 patch of xterm in August 1998. + +

    The original patch changes only the scrollbars to Motif, + leaving the popup menus in Athena widgets. That was not what + I wanted. My motivation for using Motif is not for + performance or esthetics, of course, but to make it simpler + to build on hosts that have no Athena widgets installed.

    + +

    I set those changes aside, having found (the hard way) + that the Motif library has hardcoded behavior regarding the + control right-mouse button. According to the O'Reilly book on + Motif programming (volume 6), it does a server grab when + processing menus. Making the menus behave just as in the + Athena widgets can cause the X server to hang. (I was able to + do this with both Lesstif and Motif libraries). Given that, I + decided to restructure the menus entirely, making a toolbar + which could support at compile-time either widget set.

    +
  • + +
  • + mxterm This is a different reworking of the Motif widget + patch, using a 1993 version (ignoring the more recent 1994 + patches noted above). However, it appears to have the same + technical defect that I noted above.
  • +
+ +

NXTERM

+ +

Distributed with Redhat Linux 5.2, it is a repackaging of + xterm-sb_right-ansi, to use the + Xaw3d widget set. This is based on the X Consortium X11R6 source, + with the same bugs.

+ +
    +
  • implements non-bce color model
  • + +
  • does not implement SGR 39 and SGR 49, all attributes are + reset when changing colors.
  • + +
  • popup menus do not appear to work.
  • +
+ +

Starting with Redhat 6.0, nxterm is the XFree86 3.3.6 + xterm. Unfortunately Redhat neglected to update their termcap for + nxterm to match the program.

+ +

RXVT + link

+ +

Rxvt's manual page states the following unqualified + comment:

+ +
+

rxvt, version 2.6.2, is a colour vt102 terminal emulator + intended as an xterm(1) replacement for users who do not + require features such as Tektronix 4014 emulation and + toolkit-style configurability. As a result, rxvt uses much less + swap space -- a significant advantage on a machine serving many + X sessions.

+
+ +

How much is much less? Perhaps not as much as one + would think from reading that. The Tektronix emulation in xterm + (which has been optional since late 1997) accounts for about 25kb + of the code.

+ +

The toolkit-style configurability glibly referenced is the + ability to redefine keys on the keyboard without recompiling the + program, i.e., the translations resource. It also is + the way mouse events and other actions are passed to xterm.

+ +

The toolkit-style configurability accounts for about 300kb, + which does add up if you happen to be running 50 xterm processes + (i.e., about 10Mb).

+ +

This comment was topical in December 2001:

+ +
+

Compared with something like GNOME Terminal, which takes 2-3 + times, or KDE konsole, which takes 15-20 times as much memory + to run, xterm and rxvt memory requirements are + indistinguishable to the normal user.

+
+ +

In June 2010, the numbers have changed somewhat. Here is a + table showing the total application and library sizes needed for + each of the terminal emulators on my development machine. All + sizes are in kb (1024 bytes).

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
programbase sizetotal sizelibraries
aterm1271076345
color_xterm142364713
Eterm1512619
fbiterm624248
gnome-terminal2921458751
hpterm1461438631
konsole23981571
kterm226419417
mlterm316660627
mrxvt298451519
multi-aterm14428217
pterm4051281742
rxvt 2.6.410827256
rxvt 2.7.1015228297
rxvt-unicode12591364149
terminal.app2111527429
wterm110292211
xfce4-terminal1481405948
xgterm953460214
xhpterm13027486
xiterm12376216
xterm (everything)346548424
xterm (minimal)186412315
xterm-r5135416411
xterm-r6140416911
+ +

Counting the libraries is appropriate, since some programs + such as xiterm and the VTE-based programs are implemented in + libraries.

+ +

These comments apply to versions of rxvt through + 2.21:

+ +
    +
  • clearing the screen resets colors
  • + +
  • does not have a delete key
  • + +
  • the implementation of ech (erase characters) + does not follow DEC VT220 (also ISO 6429), causing applications + using this function to misbehave.
  • +
+ +

A newer version (upgraded to an beta as of 2.6.PRE3, however, + since it no longer dumps core in vttest) is reported to fix the + ech bug. However, it is less VT100-compatible than + the earlier versions such as 2.21b because it does not render + reverse video (DECSCNM) properly. All versions do + not update the screen frequently enough, making animation + ineffective. See vttest, tests + 1 and 2.

+ +

One longstanding issue with rxvt impacts use of xterm. While + rxvt does not use the X Toolkit (and corresponding X resource + matching), it does read your .Xdefaults and + app-defaults files to extract resource settings. That in itself + would not be a problem. However, since rxvt also looks for + resources in the XTerm class (a parasitic + relationship like setting $TERM to "xterm" based on the + presumption that it is a nuisance to install its configuration + files), there have been several occasions on which xterm's + app-defaults files have been modified to accommodate rxvt's + variant usage.

+ +

That comment applies mainly to the resource + patterns. However, even when the pattern is + reasonably unambiguous, but overbroad, the results can be + conflicting. For example, some versions of rxvt may accept a + font resource which does not match the XLFD pattern. + It accepts a prefix of "xft:". This feature (apparently + introduced by konsole) tells rxvt to + interpret the remainder of the string as a TrueType (Xft) font + rather than a bitmap font. xterm uses the faceName + resource for these values.

+ +

st link

+ +

Rxvt revisited, this program depends only on the X11 library. + As of January 2013, it is in heavy development, and (according to + comments on its developer's list) growing steadily as the + developers implement useful features adapted from xterm.

+ +

For instance, the size counting libraries for st 0.3 on my + Debian testing machine is on a par with rxvt (and half that of + xterm, which uses the X Toolkit library).

+ +

By the way, the page quotes the README file from xterm's + sources, omitting my editorial comment at the top noting that the + paraphrase of the opening from Dante's Inferno dated + from 1991, and pointing to this FAQ to provide better + context.

+ +

XGTERM link

+ +

It has some features which are also in color_xterm:(non-bce + ANSI color, colorBD and colorUL resources, cursor warping, etc. + The main feature is its Tektronix graphics emulation, which is + the main reason for this particular program. Neither program has + a change-log, so it is not easy to say which influenced the + other.

+ +

That is from reading the source code. However testing under + Debian Linux, something is wrong with the resource processing + (neither popup menus nor colors work).

+ +

XITERM link

+ +

This appears to be rxvt 2.20, lightly reformatted, with a few + ifdef's changed.

+ +

That is, it was. The name was later appropriated by a + different + program, which also uses the name iterm. Like + gnome-terminal, iterm aims to be an xterm-emulator rather than a + VT102- or VT220-emulator.

+ +

An earlier attempt + by the same author (the "CSI-xterm") incorporated in 2002 some of + the changes I made for XFree86 xterm via cut and paste (but does + not mention this in its README). The "borrowed" changes comprised + about 10% of the patch provided for X11R6.5.1, summarized + here:

+ +
+
+xterm-6.5.1-i18n-0.7.patch.gz
+ Imakefile     |   25 +
+ RELNOTES-I18N |  104 ++++++
+ XTerm.ad      |    1 
+ button.c      |  155 ++++++++-
+ charproc.c    |  979 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
+ data.c        |    6 
+ data.h        |    4 
+ error.h       |    8 
+ fontutils.c   |   78 ++++
+ fontutils.h   |    8 
+ input.c       |   11 
+ main.c        |   40 +-
+ main.h        |    1 
+ misc.c        |   46 ++
+ ptyx.h        |  156 ++++++++-
+ screen.c      |  513 +++++++++++++++++++++++++++---
+ scrollbar.c   |   36 +-
+ util.c        |  218 +++++++++++-
+ 18 files changed, 2183 insertions(+), 206 deletions(-)
+  
+
+
+ +

This patch was said to be the basis for Solaris 10 xterm, and + was briefly referred to as the Solaris "color xterm". It did not + use the bce color model however, and Sun provided no + terminal description for it.

+ +

Back to iterm: the author's README in the patch used + the same terminology as in the later work, demonstrating their + relationship:

+ +
+
+ This is a patch for the xterm of X11 release 6.5.1 to fix its
+internationalization defects. This patch enables xterm to handle
+whatever the character set encodings and scripts support underlining
+operating system supports via the technology called CSI(Code Set
+Independence) and XOM(X Output Method). Traditionally, several
+X terminal emulators which are hard-wired to specific languages and
+encodings were introduced to support local language requirements, such
+as kterm, hanterm, cxterm, UTF-8 xterm and so on. This  truly
+internationalized terminal emulator supersedes the needs of those
+multiple locale specific terminalemulators. 
+
+
+ +

The key to understanding the "code set independence" is that + the author intended to treat existing character encodings on an + equal basis with Unicode and UTF-8. Some of that is reflected in + the Solaris + International Language Environments Guide, but in + explaining how this is done, the documentation is weak, + lacking detail.

+ +

Either version of iterm has similar problems running + vttest.

+ +

How do I build XTerm?

+ +

Building a copy of xterm is simple, provided that you have a + development configuration for X11:

+ +
    +
  • Header files and libraries. If you do not have the header + files (usually under /usr/include/X11) for your system, you are + better off building the libraries yourself. Xterm can be built + with either X11R5 or X11R6 libraries; however X11R6 requires + much more data to be installed before xterm will run. Xterm + uses the Xaw library for popup menus.
  • + +
  • imake and xmkmf. These utilities produce a + Makefile from the Imakefile. They are not essential, but + useful, particularly on systems with unusual + configurations.
  • +
+ +

If you have a working xmkmf script (or correctly + configured imake utility), all you need to do is type

+ +
+
+xmkmf
+make
+
+
+ +

I have written a configure script for xterm which can + use imake (or xmkmf) to generate a + Makefile from the Makefile.in. Or it can do without + imake entirely. I have restructured xterm to + eliminate most hardcoded #ifdef's, replacing them + with definitions that can be derived with the configuration + script. The configure script is more flexible than + xmkmf, since it allows you to enable or disable a + variety of features. Type

+ +
+
+configure --help
+
+
+ +

to get a list of options.

+ +

Though I have replaced most hardcoded ifdef's with + autoconfigured values, it will still continue to build properly + with the imake environment.

+ +

However, I usually build xterm using the configure script. By + default, it looks for imake and will use it to help with a few + places where a reliable configure check cannot be created. One of + these (see Why doesn't the scrollbar + work?) can be a problem.

+ +

As with all of my projects, I routinely check for strict + compiler warnings. For gcc, that is done with the "gcc-stricter" + script which you can find here. The X libraries have a + longstanding issue which has been ignored so far (as of + mid-2012). To work around this (and get useful warnings), I apply + this patch:

+ +
+
+--- Intrinsic.h.orig    2009-08-25 13:22:15.000000000 -0400
++++ Intrinsic.h 2009-12-06 09:48:39.000000000 -0500
+@@ -66,7 +66,11 @@
+
+ #define XtSpecificationRelease 6
+
++#ifdef _CONST_X_STRING
++typedef const char *String;
++#else
+ typedef char *String;
++#endif
+
+ /* We do this in order to get "const" declarations to work right.  We
+  * use _XtString instead of String so that C++ applications can
+--- Xresource.h.orig    2009-07-19 14:43:21.000000000 -0400
++++ Xresource.h 2009-12-06 10:11:19.000000000 -0500
+@@ -338,8 +338,8 @@
+ } XrmOptionKind;
+
+ typedef struct {
+-    char           *option;        /* Option abbreviation in argv          */
+-    char           *specifier;     /* Resource specifier                   */
++    _Xconst char    *option;       /* Option abbreviation in argv          */
++    _Xconst char    *specifier;            /* Resource specifier                   */
+     XrmOptionKind   argKind;       /* Which style of option it is          */
+     XPointer       value;          /* Value to provide if XrmoptionNoArg   */
+ } XrmOptionDescRec, *XrmOptionDescList;
+
+
+
+ +

I made note of it on the Xorg mailing + list, but as you can see, there was no response.

+ +

How do I report bugs?

+ +

You should report bugs to me. I also respond to + bug reports in a number of bug-tracking systems, though some are + less open to searches than others. See also Analyzing problems with configure + scripts

+ +

Additional Information

+ +

There appears to be no comprehensive source of information on + xterm better than the documentation which comes with the source + code

+ + + +

The + XTerm Manual

+ +

The command-line options, X resources and similar configurable + options of xterm are documented in the manual page.

+ +

Here are copies of the file in various forms: html, pdf, ps and text.

+ +

Xterm + Control Sequences

+ +

Control sequences, i.e., programming information are in the + ctlseqs.ms file which I bundle with the program source. (It used to + be in the same directory in the X distribution, but was moved to + a different part of the tree long ago). Note that you must format + this file with different options than a manpage, e.g.,

+ +
+
+tbl ctlseqs.ms | nroff -ms >ctlseqs.txt
+tbl ctlseqs.ms | groff -ms >ctlseqs.ps
+
+
+ +

As a PostScript or PDF file, the individual letters of the + control sequences are all boxed, for emphasis, but I find the + text file equally readable.

+ +

Here are copies of the file in various forms: html, pdf, ps and text.

+ +

resize – set TERMCAP and terminal settings to + current xterm window size

+ +

resize is useful by itself, but is maintained for + historical reasons as part of xterm. html, pdf, ps and text.

+ +

uxterm – a UTF-8 wrapper for xterm

+ +

XTerm does not automatically set your locale. It can + be told to use your locale settings. This is a shell + script which sets xterm's resources to use UTF-8 encoding, and + use UTF-8 fonts. There is a similar lxterm script, but + it relies upon non-portable applications, unlike uxterm.

+ +

Here are copies of uxterm's documentation: html, pdf, ps and text.

+ +

Incidentally, there was a different program named "uxterm" + before the shell script was added to xterm in mid-2000. + Roman Czyborra commented in 1998 that it was based on the + original X11 xterm source (very likely, since "strings" run on + the executable shows the xterm actions, resources and even the + Tek4014 support). There are few references to it to provide + details: the first appearance was in + 1994, and the last was Czyborra's page in 1998. For the + curious, there is a copy on + ibiblio.org (no Linux executables, no source, however).

+ +

koi8rxterm – a KOI8-R wrapper for + xterm

+ +

As a special case, this wrapper is packaged with xterm to + provide KOI8-R encoding.

+ +

Here are copies of koi8rxterm's documentation: html, pdf, ps and text.

+ +

luit + – Locale and ISO 2022 support for Unicode + terminals

+ +

luit also is maintained as part + of xterm, since its upstream maintainer is inactive, and the + ostensible maintainers have more than once delivered unusable + versions, causing many bug reports to be issued against + xterm.

+ +

Other Sites

+ +
    +
  • I have found Richard Shuford's archive to be invaluable for + notes on the DEC VT220 and related terminals. This was a + webpage + but was last seen via ftp. (I have a snapshot + from the ftp site).
  • + +
  • Though not available at the time that I was collecting most + of my notes, VT100.net is also a + good source of primary information.
  • +
+ +

Interesting but misleading:

+ +
    +
  • +

    The ncurses FAQ How do I get color with VT100? + discusses a widely cited bit of misinformation.
    + For instance, this + web search gives 3,000 hits in March 2015.

    +
  • + +
  • +

    Also widely cited, Consistent + BackSpace and Delete Configuration gives advice regarding + backspace and delete keys which is + heavily biased toward Linux. For instance:

    + +
      +
    • +

      the console referred to is the Linux console, + which initially had as a goal VT220 emulation. + Linux never came close to meeting that goal, which was + abandoned in the late 1990s when UTF-8 became more + important.

      + +

      As part of that, Linux's keyboard was (actually + modelled on xterm) said to be VT220, and its + coding for the backspace key sent DEL. In + contrast, ncurses' terminal database says + kbs for the vt220 sends + ^H (BS).

      +
    • + +
    • +

      the guideline uses "newer", "right" and "correct" in + the part which describes DEL, versus "dirty" + and "break", "broken" in that addressing + BS.

      +
    • +
    + +

    In addition to bias, the technical remedies are unsuitable + for generic advice. In particular, the comments about + terminfo, xmodmap and xterm's translations + resource are suitable only for special cases because the + proposed solutions create problems of their own.

    + +

    The page itself was written in 1997, with only minor fixes + since then. Thus, it does not reflect any of the improvements + made to xterm. Its lack of relevance does not prevent people + from citing it. For instance, + this page's accepted answer recommends that + (although neither gives a useful answer to the question). + Here are a few clues:

    + +
      +
    • +

      Debian's current package for ncurses uses the + --with-xterm-kbs configure option which I + added in 2012. + Debian also applies patches to many of the terminal + descriptions, including adding a patched copy of xterm's + terminfo file to ncurses's terminfo file.

      + +

      The patched copy is redundant and a source of problems + (since the two overlap, with slightly different goals + regarding PC- and VT220-style keyboards). My intent in + adding the configure option to ncurses was to wean them + away from the patch. That has not happened yet.

      +
    • + +
    • + tmux is + (mostly) a terminfo application. However, it does not use + the terminal database's kbs value. Rather + (referring to the source for 1.9a), it uses the termios + setting: + +
      + + +

      +         /*
      +
      +          * Check for backspace key using termios VERASE - the terminfo
      +
      +          * kbs entry is extremely unreliable, so cannot be safely
      +
      +          * used. termios should have a better idea.
      +
      +          */
      + +         bspace = tty->tio.c_cc[VERASE];
      + +         if (bspace != _POSIX_VDISABLE && key == bspace)
      + +                 key = KEYC_BSPACE;
      + +

      +
      + +

      At the same time, tmux sets + $TERM to "screen", by default. Debian + patches that terminal description, too. Applications + running inside tmux use that terminal + description. If instead tmux translated the + backspace key to match the value from erasechar (for + the given $TERM), its clients would receive + consistent information.

      + +

      Thus, rather than blaming the user (for a "badly + configured" xterm), the actual problem is a design flaw + in tmux which should have been sent to its + developers in a bug report.

      +
    • +
    +
  • + +
  • +

    Noted + here, someone pointed out an NCDware + document describing its terminal control sequences.

    + +

    Disregarding the title Using VT320 Terminal Emulator + Escape Sequences, it described some variant of xterm + rather than a DEC VT320. VT320s for example had no "alternate + screen". Nor did it have a feature for the "curses (1) + fix".

    + +

    The NCD documentation (dated December 12, 1997) does not + mention xterm. A + related manual does mention xterm, but only in other + sections. There are other issues with the manual. For + example, aixterm (16-color) control + sequences are documented as "NCD-specific values". NCD did + add escape sequences for status line (kterm did this as well, according to the + 6.2.0 sources dated July 1996), as well as VT220 national + replacement characters (which I added early in 1998).

    +
  • +
+ +

Ongoing/future work

+ +
    +
  • soft (downloadable) fonts
  • + +
  • printer interface + +

    Done, except for the corresponding support in the VT52 + emulation. It would be nice to have a dialog to control + this.

    +
  • + +
  • allow alternate libraries for popup-menus and dialogs + +

    My configure script currently provides tests for the + variations of Athena widgets (Xaw3D, neXtaw). I intend to + make additional changes to support Motif scrollbars and menus. + Motif requires a different style of interface for the menus: + binding a popup menu to control right mouse may cause the + server to hang. As an intermediate step, I implemented a + toolbar for the Athena widgets. In turn, that works well + enough except with XFree86 4.x: the Xaw library geometry + management is broken. (Other implementations of the Athena + widgets work well enough).

    +
  • + +
  • popup window that shows hex code for content of a character + cell and hexadecimal keyboard entry for all Unicode characters + (ISO 14755)
  • + +
  • correct cut&paste of TAB character
  • +
+ + --- xterm-325.orig/debian/patches/900_debian_xterm.diff +++ xterm-325/debian/patches/900_debian_xterm.diff @@ -0,0 +1,138 @@ +Make Debian-specific tweaks to xterm: +* Set the default VT widget foreground and background colors to gray90 on + black, which approximates the color scheme of the Linux virtual console + (and approximates actual DEC VT terminals far more closely than + black text on a white background in any case). +* Stop using an Xaw7 gradient for the backgrounds of the xterm menus; it + produces an unappealing effect if the menus are configured to use a + larger font than the stock configuration (also, xterm has added items to + some menus since I last calculated the gradient size and I can't be + bothered to do it again). +* If the X server is capable of color and has more than 8 planes of color + depth available, set the menu colors to gray15 on antique white, and + customize the appearance VT widget's scrollbar. Otherwise, do not eat up + precious entries in the color palette. +* Set the "ptyInitialErase" parameter to true by default. +* Define the "xterm-debian" terminal type in the termcap and terminfo + files; it is based on "xterm-new" with the exception that the backspace + is VT220-conformant, as directed by section 9.8 of the Debian Policy + Manual. + +This patch by Branden Robinson. + +--- + XTerm-col.ad | 42 +++++++++++++++++++++++++++--------------- + XTerm.ad | 3 +++ + termcap | 4 +++- + terminfo | 6 ++++-- + 4 files changed, 37 insertions(+), 18 deletions(-) + +--- a/termcap ++++ b/termcap +@@ -239,5 +239,7 @@ v0|xterm|X11 terminal emulator:\ + + # This fragment is for people who cannot agree on what the backspace key + # should send. ++# Modified to more strictly conform to the DEC VT220 behavior; this is ++# mandated by Section 9.8 of the Debian Policy Manual. + xterm+kbs|fragment for backspace key:\ +- :kb=^H: ++ :kb=^?: +--- a/terminfo ++++ b/terminfo +@@ -137,6 +137,8 @@ xterm-new|modern xterm terminal emulator + use=xterm+pcfkeys, + use=xterm+tmux, + use=xterm-basic, ++ rmm@, ++ smm@, + # + # Encode modifiers using parameters (see "Xterm Control Sequences" ctlseqs.ms). + # Note that this is unrelated to PCTERM. +@@ -1972,12 +1974,12 @@ xterm-r5|xterm R5 version, + # This is the only entry which you should have to customize, since "xterm" + # is widely used for a variety of incompatible terminal emulations including + # color_xterm and rxvt. +-xterm|X11 terminal emulator, ++xterm|xterm-debian|X11 terminal emulator, + use=xterm-new, + # use=xterm-r6, + + # This fragment is for people who cannot agree on what the backspace key + # should send. + xterm+kbs|fragment for backspace key, +- kbs=^H, ++ kbs=\177, + # kbs=^?, +--- a/XTerm.ad ++++ b/XTerm.ad +@@ -163,6 +163,9 @@ + *tek4014*font3: 6x13 + *tek4014*fontSmall: 6x10 + ++! Debian package customizations follow. ++*ptyInitialErase: true ++ + ! If xterm is built with a toolbar, the widget hierarchy looks like this, + ! showing widget name / class names. The complete menu hierarchy is built + ! at startup because it is needed to make the layout work for the menubar: +--- a/XTerm-col.ad ++++ b/XTerm-col.ad +@@ -37,9 +37,9 @@ + *VT100*boldColors: on + *VT100*dynamicColors: on + +-! Uncomment this for "white" text on a dark background. +-!*VT100*foreground: gray90 +-!*VT100*background: black ++! Set the default text foreground and background colors. ++*VT100*foreground: gray90 ++*VT100*background: black + + ! - OR - + ! Uncomment this for black text on a "white" background. +@@ -144,20 +144,32 @@ + *Form.background: AntiqueWhite + *form.background: AntiqueWhite + ++*mainMenu*background: AntiqueWhite ++*mainMenu*foreground: gray15 ++*vtMenu*background: AntiqueWhite ++*vtMenu*foreground: gray15 ++*fontMenu*background: AntiqueWhite ++*fontMenu*foreground: gray15 ++*tekMenu*background: AntiqueWhite ++*tekMenu*foreground: gray15 ++ + ! The following two sections take advantage of new features in version 7 +-! of the Athena widget library. Comment them out if you have a shallow +-! color depth. ++! of the Athena widget library; see Xaw(7x). ++ ++! This section is commented out because Xaw has no way to dynamically size ++! the gradient. The dimension parameter may need to be adjusted depending ++! on the font used in the menu. + !*SimpleMenu*backgroundPixmap: gradient:vertical?dimension=350&start=gray90&end=gray60 + !*SimpleMenu*foreground: gray15 + +-!*VT100.scrollbar.thumb: vlines2 +-!*VT100.scrollbar.width: 14 +-!*VT100.scrollbar.background: gray60 +-!*VT100.scrollbar.foreground: rgb:a/5/5 +-!*VT100.scrollbar.borderWidth: 0 +-!*VT100.scrollbar.displayList:\ +-!foreground gray90;\ +-!lines 1,-1,-1,-1,-1,1;\ +-!foreground gray60;\ +-!lines -1,0,0,0,0,-1 ++*VT100.scrollbar.thumb: vlines2 ++*VT100.scrollbar.width: 14 ++*VT100.scrollbar.background: gray60 ++*VT100.scrollbar.foreground: rgb:a/5/5 ++*VT100.scrollbar.borderWidth: 0 ++*VT100.scrollbar.displayList:\ ++foreground gray90;\ ++lines 1,-1,-1,-1,-1,1;\ ++foreground gray60;\ ++lines -1,0,0,0,0,-1 + #endif --- xterm-325.orig/debian/patches/902_windowops.diff +++ xterm-325/debian/patches/902_windowops.diff @@ -0,0 +1,17 @@ +--- + xterm.man | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/xterm.man ++++ b/xterm.man +@@ -2675,8 +2675,9 @@ This is a comma-separated list of names, + from \fIdtterm\fP the operation number). + The default value is + .RS +-20,21,SetXprop,SetSelection ++1,2,3,4,5,6,7,8,9,11,13,14,18,19,20,21,GetSelection,SetSelection,SetWinLines,SetXprop + .RE ++(i.e. no operations are allowed). + .IP + The names are listed below. + \fI\*N\fP ignores capitalization, but --- xterm-325.orig/debian/patches/904_fontops.diff +++ xterm-325/debian/patches/904_fontops.diff @@ -0,0 +1,15 @@ +--- + xterm.man | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/xterm.man ++++ b/xterm.man +@@ -1926,7 +1926,7 @@ The default is \*(``true\*(''. + .TP + .B "allowFontOps (\fPclass\fB AllowFontOps)" + Specifies whether control sequences that set/query the font should be allowed. +-The default is \*(``true\*(''. ++The default is \*(``false\*(''. + .TP 8 + .B "allowPasteControls (\fPclass\fB AllowPasteControls)" + If true, allow control characters such as BEL and CAN to be pasted. --- xterm-325.orig/debian/patches/series +++ xterm-325/debian/patches/series @@ -0,0 +1,3 @@ +900_debian_xterm.diff +902_windowops.diff +904_fontops.diff --- xterm-325.orig/debian/rules +++ xterm-325/debian/rules @@ -0,0 +1,77 @@ +#!/usr/bin/make -f +# Debian rules file for xterm source package + +# Copyright 2005 David Martínez Moreno +# +# Licensed under the GNU General Public License, version 2. See the file +# /usr/share/common-licenses/GPL or . + +export DEB_BUILD_MAINT_OPTIONS = hardening=+all + +CFLAGS = $(shell dpkg-buildflags --get CFLAGS) +CFLAGS += -Wall + +LDFLAGS = $(shell dpkg-buildflags --get LDFLAGS) +CPPFLAGS = $(shell dpkg-buildflags --get CPPFLAGS) + +HTML2TEXT:=lynx -dump -nolist -display_charset=utf-8 + +DEBTREEDIR:=$(CURDIR)/debian/tmp + +DESKTOP_FLAGS = --vendor debian \ + --dir=$(DEBTREEDIR)/usr/share/applications + +# disable some unsafe operations +CPPFLAGS += \ + -DDEF_ALLOW_FONT=False \ + -DDEF_ALLOW_TCAP=False \ + -DDEF_DISALLOWED_WINDOW=\\\"1,2,3,4,5,6,7,8,9,11,13,14,18,19,20,21,GetSelection,SetSelection,SetWinLines,SetXprop\\\" + +override_dh_auto_configure: + dh_auto_configure -- \ + --exec-prefix=/usr \ + --with-app-defaults=/etc/X11/app-defaults \ + --with-icondir=/usr/share/icons \ + --with-icon-theme=yes \ + --with-tty-group=tty \ + --enable-logging \ + --enable-wide-chars \ + --enable-luit \ + --enable-256-color \ + --disable-imake \ + --enable-narrowproto \ + --enable-exec-xterm \ + --enable-dabbrev \ + --enable-backarrow-is-erase \ + --enable-sixel-graphics \ + --with-utempter \ + DESKTOP_FLAGS="$(DESKTOP_FLAGS)" \ + CFLAGS="$(CFLAGS)" \ + CPPFLAGS="$(CPPFLAGS)" \ + LDFLAGS="$(LDFLAGS)" \ + LUIT=/usr/bin/luit + +override_dh_auto_build: + dh_auto_build + $(HTML2TEXT) debian/local/xterm.faq.html >debian/local/xterm.faq + +override_dh_auto_install: + dh_auto_install --destdir=debian/tmp -- install-desktop + ## Install lxterm command and manual page. + install -m 755 debian/local/lxterm $(DEBTREEDIR)/usr/bin + install -m 755 debian/local/lxterm.1 $(DEBTREEDIR)/usr/share/man/man1 + ## Install terminfo and termcap precompiled definitions. + install -d $(DEBTREEDIR)/usr/share/doc/xterm + install -m 644 termcap $(DEBTREEDIR)/usr/share/doc/xterm/xterm.termcap + install -m 644 terminfo $(DEBTREEDIR)/usr/share/doc/xterm/xterm.terminfo + +override_dh_install: + dh_install --fail-missing + +%: + dh $@ --with quilt,autotools_dev --builddirectory=build/ --parallel + +debian/local/xterm.faq.html: + wget -O $@ http://invisible-island.net/xterm/xterm.faq.html + +.PHONY: debian/local/xterm.faq.html --- xterm-325.orig/debian/upstream/signing-key.asc +++ xterm-325/debian/upstream/signing-key.asc @@ -0,0 +1,24 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1 + +mQGiBD/4r7IRBADFuacEqf9fye+NQSm7xjNP705aq75VrUd2hJyPmSiFUIyQEfc4 +4GQXGdFg+/Apq4iq/50/8pR8YXOKwP5OE69emEp7IxjST41orGUk5ZwcnlSkaruN +WLTe/lN3e0oOIVbYig1lUbU5IxZu03KfNg2DZ9JiZdNBlzlqx1+oFlWFLwCg3awg +EfOUfbe4kVxNrsnxaCJYJ38EAMRVyUOfhkm9l0YuiC4ebOHrdmn9jFVW+XZPZDeb +8DcyTBNrgvVTnEmrNzVJgOyZIW+uraBVitak+No1kwXvC/i0kZEzYqfG87EdJSfe +OV7axIRisiTrcbZdRJ3CBDtGvLqJ9OuGFHPQmntnZfhiwJTR79hepndEQYyV5eQb +oQ+aA/0bI+/odyRDefc9HF1EhOcz8E76QP+VlvUfIDUJrmwv/3gLZ968HACOe0DE ++bcUockLJxoNwQFwCQPjm5S2+Ba2uY4hRhOA+MResZWlPouoosay2ADfiU7pdBCx +nbcLAuezgnZg4jcXvLl1QiAihxaEI2jqgZBnnierWzqRzRZM4LQrVGhvbWFzIERp +Y2tleSA8ZGlja2V5QGludmlzaWJsZS1pc2xhbmQubmV0PoheBBMRAgAeBQI/+K+y +AhsDBgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJEHAjU+D35I7bejEAnRYLqlswwk+F ++pWcppXLnsskhTfSAKCrg23hTwzaaW9mlbmDavid+QQu3bkBDQQ/+K+0EAQAjTl1 +EeUt5EUq8tiGBq+KtFo3TxIdJKBtVFQ4btETdF23dkZ1o1642GmF7JJgn6PKUcJD +UlHhUO4IEcpHABAiU4HweoWh8yT/yaA9AXqRKcJpMQ5bEGoooHBIg0Uh8ahG6Q1c +HzgsGOaOK9YzFSvSIRXryMlrh1oITzvwEkXRfOcAAwcD/iRaNtGYaS05FwaaVvm0 +Eexhhw2JzSaRP6PY3r/BGmgPVG9Uk9huk+Yk/pdW9Pa3KRj37ANK2svfwHx9A077 +Ma9GoupZ/rjP01WO0ur8tzC7KsqCep9m33K9kdAeJZ0Ud+AwsnAEy/Q1XZin/jUU +5L1lzko010LXY9CqdrmCXhaqiEkEGBECAAkFAj/4r7QCGwwACgkQcCNT4Pfkjtuu +ngCg2es41JEYaarCcT+gFpyM0WCqAU8An3L0pkO4wtZ8SejpHa7WSR9M54xd +=VWbi +-----END PGP PUBLIC KEY BLOCK----- --- xterm-325.orig/debian/watch +++ xterm-325/debian/watch @@ -0,0 +1,2 @@ +version=3 +opts=pasv,pgpsigurlmangle=s/$/.asc/ ftp://invisible-island.net/xterm/ xterm-(.*).tgz --- xterm-325.orig/debian/xterm.README.Debian +++ xterm-325/debian/xterm.README.Debian @@ -0,0 +1,34 @@ +Debian README for xterm package +=============================== + +The xterm terminal type on a Debian system is an alias for xterm-debian. +This means that "xterm" and "xterm-debian" are interchangeable as values of +the $TERM environment variable in the shell. Since the xterm-debian type +is typically not found on non-Debian systems, xterm is used as the system +default. + +The terminal description for xterm-debian differs from that of +xterm-xorg in exactly two respects: + 1. kbs is defined as ^? (ASCII 127), not ^H (ASCII 8) + 2. kdch1 is defined as the sequence: ^[ [ 3 ~ (no spaces, and ^[ is ASCII + 27, a.k.a ESCAPE) instead of ^? (ASCII 127) +^[[3~ is the DEC VT220 escape sequence for the keypad delete key (not the +numeric keypad, the one with Page Up, Page Down, etc. on a PC keyboard). +DEC VT100's, the text terminal which xterm was designed to emulate, had no +keypad delete key. ^[[3~ is also what the Linux console terminal type +generates for the keypad delete key. Note that the terminal definitions +that a Debian system uses are in the ncurses-base and ncurses-term +packages, not in the xterm package itself, though the terminfo and termcap +files that Debian uses may be found in the xterm documentation directory, +/usr/share/doc/xterm. People interested in reading further to stock up +ammo for their backspace/delete and terminal type wars should consult Tom +Dickey's (current maintainer of the xterm source code) FAQ, available in +the file /usr/share/doc/xterm/xterm.faq.{html,gz} and the website +. + +The default keymappings for xterm are different than they are upstream to +comply with the Debian Keyboard Policy and make xterm's behavior more +consistent with the Linux virtual console (and therefore with the behavior +of DEC VT 220 terminals). + +vim:set ai et sw=4 ts=4 tw=80: --- xterm-325.orig/debian/xterm.doc-base.ctlseqs +++ xterm-325/debian/xterm.doc-base.ctlseqs @@ -0,0 +1,9 @@ +Document: xterm-ctlseqs +Title: Xterm Control Sequences +Author: Edward Moy, Stephen Gildea, Thomas Dickey +Abstract: This document describes the terminal control sequences that XTerm + recognizes. +Section: Terminal Emulators + +Format: text +Files: /usr/share/doc/xterm/ctlseqs.txt.gz --- xterm-325.orig/debian/xterm.doc-base.faq +++ xterm-325/debian/xterm.doc-base.faq @@ -0,0 +1,14 @@ +Document: xterm-faq +Title: XTerm Frequently Asked Questions (FAQ) +Author: Thomas Dickey +Abstract: This document provides answers to frequently asked questions + about the XTerm terminal emulator as it ships with the X.Org distribution + of the X Window System. +Section: Terminal Emulators + +Format: text +Files: /usr/share/doc/xterm/xterm.faq.gz + +Format: HTML +Index: /usr/share/doc/xterm/xterm.faq.html +Files: /usr/share/doc/xterm/xterm.faq.html --- xterm-325.orig/debian/xterm.docs +++ xterm-325/debian/xterm.docs @@ -0,0 +1,6 @@ +README.i18n +ctlseqs.ms +ctlseqs.txt +xterm.log.html +debian/local/xterm.faq.html +debian/local/xterm.faq --- xterm-325.orig/debian/xterm.install +++ xterm-325/debian/xterm.install @@ -0,0 +1,7 @@ +etc/X11/app-defaults/* +usr/bin/* +usr/share/doc +usr/share/man/man1/* +usr/share/pixmaps +usr/share/applications/* +usr/share/icons --- xterm-325.orig/debian/xterm.postinst +++ xterm-325/debian/xterm.postinst @@ -0,0 +1,34 @@ +#!/bin/sh +# Debian xterm package post-installation script +# Copyright 1998-2001, 2003, 2004 Branden Robinson. +# Licensed under the GNU General Public License, version 2. See the file +# /usr/share/common-licenses/GPL or . +# Acknowledgements to Stephen Early, Mark Eichin, and Manoj Srivastava. + +set -e + +update-alternatives --install /usr/bin/x-terminal-emulator \ + x-terminal-emulator /usr/bin/xterm 20 --slave \ + /usr/share/man/man1/x-terminal-emulator.1.gz x-terminal-emulator.1.gz \ + /usr/share/man/man1/xterm.1.gz + +update-alternatives --install /usr/bin/x-terminal-emulator \ + x-terminal-emulator /usr/bin/uxterm 20 --slave \ + /usr/share/man/man1/x-terminal-emulator.1.gz x-terminal-emulator.1.gz \ + /usr/share/man/man1/uxterm.1.gz + +update-alternatives --install /usr/bin/x-terminal-emulator \ + x-terminal-emulator /usr/bin/koi8rxterm 20 --slave \ + /usr/share/man/man1/x-terminal-emulator.1.gz x-terminal-emulator.1.gz \ + /usr/share/man/man1/koi8rxterm.1.gz + +update-alternatives --install /usr/bin/x-terminal-emulator \ + x-terminal-emulator /usr/bin/lxterm 30 --slave \ + /usr/share/man/man1/x-terminal-emulator.1.gz x-terminal-emulator.1.gz \ + /usr/share/man/man1/lxterm.1.gz + +#DEBHELPER# + +exit 0 + +# vim:set ai et sw=4 ts=4 tw=80: --- xterm-325.orig/debian/xterm.prerm +++ xterm-325/debian/xterm.prerm @@ -0,0 +1,21 @@ +#!/bin/sh +# Debian xterm package pre-removal script +# Copyright 1998, 1999, 2004 Branden Robinson. +# Licensed under the GNU General Public License, version 2. See the file +# /usr/share/common-licenses/GPL or . +# Acknowledgements to Stephen Early, Mark Eichin, and Manoj Srivastava. + +set -e + +if [ "$1" = "remove" ] || [ "$1" = "deconfigure" ]; then + update-alternatives --remove x-terminal-emulator /usr/bin/koi8rxterm + update-alternatives --remove x-terminal-emulator /usr/bin/uxterm + update-alternatives --remove x-terminal-emulator /usr/bin/xterm + update-alternatives --remove x-terminal-emulator /usr/bin/lxterm +fi + +#DEBHELPER# + +exit 0 + +# vim:set ai et sw=4 ts=4 tw=80: