<!doctype Linuxdoc system>

<article>

<title>X internation terminal documentation
<author>Written by Guylhem Aznar, <tt/guylhem@danmark.linux.eu.org/
<date>August 1997

<abstract>

Copyright (&copy;) August 1997, Guylhem Aznar.

Freely distributable &amp; modifiable under the terms of GPL version 2.

</abstract>

<toc>

<sect>Preamble : Authors &amp; copyright<p>

PLEASE CONTRIBUTE TO XITERM IF YOU LIKE IT !

You can either help me by working in source code or in documentation (this
first released one isn't perfect !) .

a) Authors

Theese people made possible current xiterm &amp; so own copyrights on their
respective work, i.e. source code and much of the documentation :

<tscreen><verb>
Copyright 1992 John Bovey, jdb@ukc.ac.uk
Copyright 1994 R. Nation, nation@rocket.sanders.lockheed.com
Copyright 1995 Garrett D'Amore, garrett@netcom.com
Copyright 1995 Steven Hirsch, hirsch@emba.uvm.edu
Copyright 1995 Jakub Jelinek, jj@gnu.ai.mit.edu
Copyright 1996 Chuck Blake, cblake@BBN.COM
Copyright 1997 Raul Garcia Garcia, gg@tid.es
Copyright 1997 Mj Olesen, olesen@me.QueensU.CA
Copyright 1997 Guylhem Aznar, guylhem@danmark.linux.eu.org
</verb></tscreen>


b) Copyright

<tt/xvt/ original copyright was :

<tscreen><verb>
You can do what you like with this source code as long as you don't try
to make money out of it and you include an unaltered copy of this
message (including the copyright).

As usual, the author accepts no responsibility for anything, nor does
he guarantee anything whatsoever.
</verb></tscreen>

rxvt, based on xvt, adopted the same copyright.

However, John Bovey (xvt's original author) accepted to change his copyright to
GPL, so xiterm source and documentation license are now GPL.

Since all other authors always added :
<tt/&dquot;No additional restrictions.&dquot;/ to the code they wrote,I suppose
all xiterm code is now GPLed, but every author have been induvidually contacted
to solve this possible legal problem.

c) GPL license

	    GNU GENERAL PUBLIC LICENSE
	       Version 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc.
		  675 Mass Ave, Cambridge, MA 02139, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

		    Preamble

The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users.  This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it.  (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.)  You can apply it to
your programs, too.

When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have.  You must make sure that they, too, receive or can get the
source code.  And you must show them these terms so they know their
rights.

We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software.  If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

Finally, any free program is threatened constantly by software
patents.  We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary.  To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and
modification follow.

	    GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License.  The &dquot;Program&dquot;, below,
refers to any such program or work, and a &dquot;work based on the Program&dquot;
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language.  (Hereinafter, translation is included without limitation in
the term &dquot;modification&dquot;.)  Each licensee is addressed as &dquot;you&dquot;.

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.

1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.

You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.

b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.

c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License.  (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.

In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,

b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,

c) Accompany it with the information you received as to the offer
to distribute corresponding source code.  (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for
making modifications to it.  For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable.  However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.

If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.

4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License.  Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.

5. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Program or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.

7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all.  For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded.  In such case, this License incorporates
the limitation as if written in the body of this License.

9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

Each version is given a distinguishing version number.  If the Program
specifies a version number of this License which applies to it and &dquot;any
later version&dquot;, you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation.  If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.

10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission.  For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this.  Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.

		    NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM &dquot;AS IS&dquot; WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

	     END OF TERMS AND CONDITIONS

Appendix: How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the &dquot;copyright&dquot; line and a pointer to where the full notice is found.

(one line to give the program's name and a brief idea of what it does.)
Copyright (C) 19yy  (name of author)

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:

Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a &dquot;copyright disclaimer&dquot; for the program, if
necessary.  Here is a sample; alter the names:

Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.

(signature of Ty Coon), 1 April 1989
Ty Coon, President of Vice

This General Public License does not permit incorporating your program into
proprietary programs.  If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library.  If this is what you want to do, use the GNU Library General
Public License instead of this License.

d) Warning !

IF YOU CONTRIBUTED TO xvt OR rxvt, PLEASE EMAIL ME TO AVOID ANY COPYRIGHT
PROBLEMS !

Even if I'd prefer all code to be GPLed (which makes program distribution &amp;
usage easier), if no legal solution can be found with you, xiterm will keep his
&dquot;don't try to make money&dquot; copyright .

<sect>Bugs &amp; problems<p>

This section is kept current with the distribution you're using, however, if
you find a bug, please report it to me !

Any weird iso9995-3 char (ex : Greek_OMEGA) defined on the xkb keytable will
disable 8 bits support when entered.

Multi click + extend doesn't work well:
On triple click &amp; drag, current line is not "color inverted".
On multiclick &amp; drag, first element isn't immediatly higlighted. 

<sect>Installation guide<p>

  0.	Choose between configure.orig &amp; configure.works.well and type :
<tscreen><verb>
	    ln -sf configure.YOUWANT configure
</verb></tscreen>

  1.	./configure will generate config.h and the various Makefiles.
	Note this is the first attempt at GNU autoconfig, so minor
	hand-editing of Makefiles may be needed.

  2.	Either run menu configuration (if you have ncurses) by typing :
<tscreen><verb>
	    src/Menuconfig ; make
</verb></tscreen>
	or manually set the main preferences, i.e. default compile-time values :
<tscreen><verb>
	    cp src/Menuconfig/xiterm.h.old src/xiterm.h
</verb></tscreen>
	and then edit src/xiterm.h

  3.	Build it (repeat step 2 as desired):
<tscreen><verb>
	    make
</verb></tscreen>

  4. 	Install xiterm:
<tscreen><verb>
	    make install
</verb></tscreen>

  5.	If compiled with UTMP_SUPPORT, you'll have to install xiterm setuid
	root or setuid/setgid to match the file permissions on /etc/utmp

  6.    Architecture specific infos :

	SunOS (with/without gcc?) gets reported by configure as
<tscreen><verb>
                #undef STDC_HEADERS
                #define HAVE_SYS_IOCTL_H 1
</verb></tscreen>
        but the ioctl() defines aren't protected against multiple
        inclusion, in this case by <tt/termios.h/ so use a hack in
        <tt/xiterm.h/ to avoid the problem.

        Gave up checking for <tt/STDC_HEADERS/, since they really should be
        there and I don't want to deal with the problems when they don't
        exist.

        SunOS users might complain to the right places and get their
        system headers fixed so that one day the rest of us won't have
        to keep compensating :(

        SVR4 users (that aren't using gcc) will have to add -DSVR4 to
        CPPFLAGS for configure. 

<sect>FAQ : frequently asked questions<p>

a) Version

Q:	How do I know which xiterm version I`m using ?

A:	The version number is displayed with the usage (-help).
For xiterm version 1 and later, the escape sequence :
<tscreen><verb>
ESC[8n
</verb></tscreen>

sets the window title to the version number.

b) Mouse cut/paste

Q:	Mouse cut/paste suddenly no longer works.

A:	Make sure that mouse reporting is actually turned off since
killing some editors prematurely may leave the mouse in mouse
report mode.  I've heard that tcsh may use mouse reporting
unless it otherwise specified.  A quick check is to see if
cut/paste works when the Alt or Shift keys are depressed. See
xiterm.ref paragraph.

c) Bold/blink

Q:	What's with this bold/blink stuff?  I can never get blinking text!

A:	It is not possible, and likely will never be, for xiterm to have
        actual blinking text. Instead (if xiterm was compiled without
        NO_BOLDCOLOR), bold/blink attributes are used to set high-intensity
        foreground/background colors ... like what you'd see on a PC video
        adapter.  There are programs, notably John Davis' SLang-based ones
        (ftp://space.mit.edu/pub/davis), that use bold/blink attributes to
	permit 16 colors.

	color0-7 are the low-intensity colors.
	color8-15 are the corresponding high-intensity colors.

	A side issue of this bold/blink stuff is the question of how the
	normal default foreground/background colors are to be treated.  If
	the default foreground/background match one of the low-intensity
	colors (color0-7), the bold/blink attribute will invoke the
	appropriate high-intensity color (color8-15).

	In the case that the default foreground doesn't match one of the
	low-intensity colors, the bold attribute will use an `overstrike'
	to simulate a bold font. But note this leaves pixel-droppings and
	so, rather than wasting an inordinate amounts of energy to fix it,
	its use is simply deprecated.

	In the case that the default background doesn't match one of the
	low-intensity colors, the blink attribute is simply ignored
	(rather than representing it as bold as xterm does).

d) Colors

    Q:	I don't like the screen colors.  How do I change them?

    A:	You can change the screen colors at run-time using &tilde;/.Xdefaults
	resources (or as long-options) ... see the man-page.

	Here are values that are supposed to resemble a VGA screen,
	including the murky brown that passes for low-intensity yellow:

<tscreen><verb>
		Xterm*color0:	&num;000000
		Xterm*color1:	&num;A80000
		Xterm*color2:	&num;00A800
		Xterm*color3:	&num;A8A800
		Xterm*color4:	&num;0000A8
		Xterm*color5:	&num;A800A8
		Xterm*color6:	&num;00A8A8
		Xterm*color7:	&num;A8A8A8

		Xterm*color8:	&num;000054
		Xterm*color9:	&num;FF0054
		Xterm*color10:	&num;00FF54
		Xterm*color11:	&num;FFFF54
		Xterm*color12:	&num;0000FF
		Xterm*color13:	&num;FF00FF
		Xterm*color14:	&num;00FFFF
		Xterm*color15:	&num;FFFFFF
</verb></tscreen>

e) Backspace/delete

    Q:	What's with the strange Backspace/Delete key behaviour?

    A:	Assuming that the physical Backspace key corresponds to the
	BackSpace keysym (not likely for Linux ... see the following
	question) there are two standard values that can be used for
	Backspace: <tt/^H/ and <tt/^?/.

	Xiterm tries to inherit the current stty settings and uses the value
	of <tt/erase/ to guess the value for backspace.  If xiterm wasn't
        started from a terminal (say, from a menu or by remote shell), then the
	system value of <tt/erase/, which corresponds to CERASE (in termios.h),
	will be used (which may not be the same as your stty setting).

	For starting a new xiterm:

<tscreen><verb>
	    use Backspace = ^H
		&dollar;  stty erase ^H
		&dollar;  xiterm

	    use Backspace = ^?
		&dollar;  stty erase ^?
		&dollar;  xiterm
</verb></tscreen>

	NB: generate either value with BackSpace and Ctrl/Shift-BackSpace.
        Toggle with :
<tscreen><verb>
ESC[36h &amp; ESC[36l
</verb></tscreen>
        as documented in doc/xiterm.ref

<tscreen><verb>
	For an existing xiterm:
	    use Backspace = ^H
		&dollar;  stty erase ^H
		&dollar;  echo -n &dquot;^[[36h&dquot;

	    use Backspace = ^?
		&dollar;  stty erase ^?
		&dollar;  echo -n &dquot;^[[36l&dquot;
</verb></tscreen>

	This helps satisfy some of the Backspace discrepancies that occur,
	but if you use Backspace = <tt/^?/, make sure that the termcap/terminfo
	value properly reflects that.

	The Delete key (which one would expect to emit <tt/^?/) is a another
	casualty of the ill-defined Backspace problem.  To avoid confusion
	between the Backspace and Delete keys, the Delete key has been
	assigned an escape sequence to match the vt100 for Execute :
<tscreen><verb>
ESC[3&tilde;
</verb></tscreen>
	and is in the supplied termcap/terminfo.

	Some other Backspace problems:
		some editors use termcap/terminfo,
		some editors (vim I'm told) expect
<tscreen><verb>
Backspace = ^H,
</verb></tscreen>
		GNU Emacs (and Emacs-like editors) use
<tscreen><verb>
^H
</verb></tscreen>
for help.

	Perhaps someday this will all be resolved in a consistent manner
	... and maybe xterm will have Home/End values too!

f) Backspace

    Q:	Why doesn't the Backspace key work on my Linux machine?

    A:	The XFree86 server has a notorious problem of mapping the Backspace
	key as Delete in order to match the Linux console.

	The correct way to fix this:

	  0 - Complain to your Linux distributer and the XFree86 team, maybe
	      they'll fix it.

	  1 - Use xmodmap to correct the Backspace mapping in
        compatibility/xmodmap

	Make sure the keycode matches the physical Backspace key on your
        machine!! (use xev).

	This will also fix the BackSpace problem with Motif applications,
	such as "why doesn't Backspace work for Netscape?"

	You now have a Backspace key that functions as described in the
	previous question.

	  1a - You may also want to fix the regular xterm if it doesn't
	      generates the desired value for BackSpace

<tscreen><verb>
		xterm*vt100.translations: &num;override \
		&lt;Key&gt;BackSpace: string(\010)
	    or
		xterm*vt100.translations: &num;override \
		&lt;Key&gt;BackSpace: string(\177)
</verb></tscreen>

	   while you are at it, you may also want to have consistent
	   values to Home/End/Delete

<tscreen><verb>
		xterm*vt100.translations: &num;override \
		&lt;Key&gt;Home:	string(&dquot;\033[7&tilde;&dquot)
		&lt;Key&gt;End:		string(&dquot;\033[8&tilde;&dquot;)
		&lt;Key&gt;Delete:	string(&dquot;\033[3&tilde;&dquot;)
</verb></tscreen>

	Finally, you can also remap the xiterm key-binding at run-time (next
	question) but you'll lose the ability to have Ctrl/Shift-Backspace
	work differently as well as losing the escape sequence toggling of
	Backspace.

g) Key binding

    Q:	I don't like the key-bindings.  How do I change them?

    A:	There are some compile-time selections available in &dquot;feature.h&dquot;
	and if you've compiled with KEYSYM_RESOURCE + FAKE_RESOURCES you
	can use the `keysym' resource to alter the keystrings associated
	with keysym 0xFF00 - 0xFFFF (function, cursor keys, etc).

	Here's an example for a tn3270 session started using
	`xiterm -name tn3270'

<tscreen><verb>
		!&num;  ----- special uses ------:
		! tn3270 login, remap function and arrow keys.
		tn3270*font:	*clean-bold-*-*--15-*

		! keysym - used by xiterm only
		! Delete - ^D
		tn3270*keysym.0xFFFF:	\004

		! Home - ^A
		tn3270*keysym.0xFF50:	\001
		! Left - ^B
		tn3270*keysym.0xFF51:	\002
		! Up - ^P
		tn3270*keysym.0xFF52:	\020
		! Right - ^F
		tn3270*keysym.0xFF53:	\006
		! Down - ^N
		tn3270*keysym.0xFF54:	\016
		! End - ^E
		tn3270*keysym.0xFF57:	\005

		! F1 - F12
		tn3270*keysym.0xFFBE:	\e1
		tn3270*keysym.0xFFBF:	\e2
		tn3270*keysym.0xFFC0:	\e3
		tn3270*keysym.0xFFC1:	\e4
		tn3270*keysym.0xFFC2:	\e5
		tn3270*keysym.0xFFC3:	\e6
		tn3270*keysym.0xFFC4:	\e7
		tn3270*keysym.0xFFC5:	\e8
		tn3270*keysym.0xFFC6:	\e9
		tn3270*keysym.0xFFC7:	\e0
		tn3270*keysym.0xFFC8:	\e-
		tn3270*keysym.0xFFC9:	\e=

		! map Prior/Next to F7/F8
		tn3270*keysym.0xFF55:	\e7
		tn3270*keysym.0xFF56:	\e8
</verb></tscreen>

h) Key mapping

    Q:	I'm using keyboard model XXX that has extra Prior/Next/Insert keys.
	How do I make use of them?  For example, the Sun Keyboard type 4
	has the following mappings that xiterm doesn't recognize.

<tscreen><verb>
		KP_Insert == Insert
		F22 == Print
		F27 == Home
		F29 == Prior
		F33 == End
		F35 == Next
</verb></tscreen>

    A:	Rather than have xiterm try to accomodate all the various possible
	keyboard mappings, it is better to use `xmodmap' to remap the
	keys as required for your particular machine.

i) Distinguishing xiterm and xterm

    Q:	How do I distinguish if I'm running xiterm or a regular xterm?
	I need this to decide about setting colors etc.

    A:	xiterm always exports the variable &dquot;COLORTERM&dquot;, so you can
	check and see if that is set.  Note that several programs, JED, slrn,
	Midnight Commander automatically check this variable to decide whether
        or not to use color.

j) Setting the IP address

    Q:	How do I set the correct, full IP address for the DISPLAY variable?

    A:	If you've compiled xiterm with DISPLAY_ENV_AND_ANSWER_IS_IP then it is
	possible to use the following shell script snippets to correctly set
	the display.  If your version of xiterm wasn't also compiled with
	ESCZ_RXVT_ANSWER (as assumed in these snippets) then the COLORTERM
	variable can be used to distinguish xiterm from a regular xterm.

	Courtesy of Chuck Blake (cblake@BBN.COM) with the following shell
	script snippets:

<tscreen><verb>
	&num; Bourne/Korn/POSIX family of shells:
	[ &dollar;{TERM:-foo} = foo ] &ero;&ero; TERM=xterm &num; assume an xterm if we don't know
	if [ &dollar; {TERM:-foo} = xterm ]; then
	    stty -icanon -echo min 0 time 15 &num; see if enhanced xiterm or not
	    echo -n '^[Z'
	    read term_id
	    stty icanon echo
	    if [ &dquot;&dquot;&dollar; {term_id} = '^[[?1;2C' -a &dollar;{DISPLAY:-foo} = foo ]; then
	        echo -n '^[[7n'		&num; query the xiterm we are in for the DISPLAY string
	        read DISPLAY		&num; set it in our local shell
	    fi
	fi

	csh/tcsh family of shells:

	if ( !(&dollar;{?TERM}) ) then		&num; if term is unset, we are probably in an xterm
	    TERM = xterm
	endif
	if ( &dollar;{TERM} =&tilde; xterm ) then
	    stty -icanon -echo min 0 time 15   &num; see if enhanced xiterm or not
	    echo -n '^[Z'
	    set term_id=&dollar;&lt;
	    stty icanon echo
	    if ( &dquot;&dquot;&dollar;{term_id} == &dquot;^[[?1;2C&dquot; &ero;&ero; &dollar;{?DISPLAY} == 0 ) then
	        echo -n '^[[7n'		&num; query the xiterm we're in for the DISPLAY string
	        setenv DISPLAY &dquot;&dollar;&lt;&dquot;	&num; set it in our local shell
	    endif
	endif
</verb></tscreen>

<sect>xiterm technical reference manual<p>

<tscreen><verb>

     Reworked from XTerm & Rxvt documentation and from other sources

**
a) Definitions
**

c	The literal character c.

C	A single (required) character.

Ps	A single (usually optional) numeric parameter, composed of one or
	more digits.

Pm	A multiple numeric parameter composed of any number of single
	numeric parameters, separated by ; character(s).

Pt	A text parameter composed of printable characters.

[-]	marks unimplemented sequences
[*]	marks xiterm-specific (non-ANSI/ISO) sequences

**
b) Basis
**

ENQ		Enquiry (Ctrl-E), Send Device Attributes (DA)
		  -> request attributes from terminal
		  -> ESC[?1;2c
		  (``I am a VT100 with Advanced Video Option.'')
BEL		Bell (Ctrl-G)
BS		Backspace (Ctrl-H)
TAB		Horizontal Tab (HT) (Ctrl-I)
LF		Line Feed or New Line (NL) (Ctrl-J)
VT		Vertical Tab (Ctrl-K) same as LF
FF		Form Feed or New Page (NP) (Ctrl-L) same as LF
CR		Carriage Return (Ctrl-M)
SO		Shift Out (Ctrl-N), invokes the G1 character set
		-> Switch to Alternate Character Set
SI		Shift In (Ctrl-O), invokes the G0 character set (the default)
		-> Switch to Standard Character Set
SPC		Space Character

ESC # 8		DEC Screen Alignment Test (DECALN)

**
c) Character Sets
**

ESC ( C		Designate G0 Character Set (ISO 2022)
ESC ) C		Designate G1 Character Set (ISO 2022)
ESC * C		Designate G2 Character Set (ISO 2022)
ESC + C		Designate G3 Character Set (ISO 2022)
ESC $ C		Designate Kanji Character Set
		where
		  C = 0  -> DEC Special Character and Line Drawing Set
		  C = A  -> United Kingdom (UK)
		  C = B  -> United States (USASCII)
[-]		  C = <	 -> Multinational character set
[-]		  C = 5	 -> Finnish character set
[-]		  C = C	 -> Finnish character set
[-]		  C = K  -> German character set

ESC 7		Save Cursor (SC)
ESC 8		Restore Cursor (RC)
ESC =		Application Keypad (SMKX)
ESC >		Normal Keypad (RMKX)

	- If the numeric keypad is activated, e.g. Num_Lock has been
	  pressed, numbers or control functions are generated by the
	  numeric keypad (see Key Codes section)

ESC D		Index (IND)
ESC E		Next Line (NEL)
ESC H		Tab Set (HTS)
ESC M		Reverse Index (RI)
[-] ESC N	Single Shift Select of G2 Character Set (SS2):
		affects next character only
[-] ESC O	Single Shift Select of G3 Character Set (SS3):
		affects next character only

ESC Z		Obsolete form of ESC [ c
		Optional (compile-time) returns -> ESC[?1;2C

ESC [ Ps @	Insert Ps (Blank) Character(s) [default: 1] (ICH)
ESC [ Ps A	Cursor Up Ps Times [default: 1] (CUU)
ESC [ Ps B	Cursor Down Ps Times [default: 1] (CUD)
ESC [ Ps C	Cursor Forward Ps Times [default: 1] (CUF)
ESC [ Ps D	Cursor Backward Ps Times [default: 1] (CUB)
ESC [ Ps E	Cursor Down Ps Times [default: 1] and to first column
ESC [ Ps F	Cursor Up Ps Times [default: 1] and to first column
ESC [ Ps G	Cursor to Column Ps (HPA)

ESC [ Ps;Ps H	Cursor Position [row;column] [default: 1;1] (CUP)
ESC [ Ps I	Move forward Ps [default: 1] tab stops
ESC [ Ps J	Erase in Display (ED)
		  Ps = 0  -> Clear Below (default)
		  Ps = 1  -> Clear Above
		  Ps = 2  -> Clear All
ESC [ Ps K	Erase in Line (EL)
		  Ps = 0  -> Clear to Right (default)
		  Ps = 1  -> Clear to Left (EL1)
		  Ps = 2  -> Clear All
ESC [ Ps L	Insert Ps Line(s) [default: 1] (IL)
ESC [ Ps M	Delete Ps Line(s) [default: 1] (DL)
ESC [ Ps P	Delete Ps Character(s) [default: 1] (DCH)
[-] ESC [ Ps;Ps;Ps;Ps;Ps T
		Initiate hilite mouse tracking. Parameters are
		[func;startx;starty;firstrow;lastrow].
		See the section Mouse Tracking.
ESC [ Ps W	Tabulator functions
		  Ps = 0  -> Tab Set (HTS)
		  Ps = 2  -> Tab Clear (TBC), Clear Current Column (default)
		  Ps = 5  -> Tab Clear (TBC), Clear All
ESC [ Ps X	Erase Ps Character(s) [default: 1] (ECH)
ESC [ Ps Z	Move backward Ps [default: 1] tab stops
ESC [ PS `	== ESC [ PS G
ESC [ Ps a	== ESC [ Ps C

ESC [ Ps c	Send Device Attributes (DA)
		Ps = 0 or omitted -> request attributes from terminal
		  -> ESC[?1;2c
		  (``I am a VT100 with Advanced Video Option.'')
ESC [ Ps d	Cursor to Line Ps (VPA)
ESC [ Ps e	== ESC [ Ps A
ESC [ Ps;Ps f	Horizontal and Vertical Position [row;column]
		[default: 1;1] (HVP)
ESC [ Ps g	Tab Clear (TBC)
		  Ps = 0  -> Clear Current Column (default)
		  Ps = 3  -> Clear All (TBC)
ESC [ Ps i	Printing
		  Ps = 4  -> disable transparent print mode (MC4)
[-]		  Ps = 5  -> enable transparent print mode (MC5)
ESC [ Pm h	Set Mode (SM)
ESC [ Pm l	Reset Mode (RM)
		Ps = 4
		  h -> Insert Mode (SMIR)
		  l -> Replace Mode (RMIR)
[-]		Ps = 20
		  h -> Automatic Newline (LNM)
		  l -> Normal Linefeed (LNM)
[*]		Ps = 36
		  h -> Backspace key sends BS
		  l -> Backspace key sends DEL

ESC [ Pm m	Character Attributes (SGR)
		  Ps = 0	-> Normal (default)
		  Ps = 1 / 22	-> On / Off	Bold	(bright fg)
		  Ps = 4 / 24	-> On / Off	Underline
		  Ps = 5 / 25	-> On / Off	Blink	(bright bg)
		  Ps = 7 / 27	-> On / Off	Inverse
		  Ps = 30 / 40	-> fg / bg	Black
		  Ps = 31 / 41	-> fg / bg	Red
		  Ps = 32 / 42	-> fg / bg	Green
		  Ps = 33 / 43	-> fg / bg	Yellow
		  Ps = 34 / 44	-> fg / bg	Blue
		  Ps = 35 / 45	-> fg / bg	Magenta
		  Ps = 36 / 46	-> fg / bg	Cyan
		  Ps = 37 / 47	-> fg / bg	White
		  Ps = 39 / 49	-> fg / bg	Default

ESC [ Ps n	Device Status Report (DSR)
		  Ps = 5  -> Status Report ESC [ 0 n  (``OK'')
		  Ps = 6  -> Report Cursor Position (CPR) [row;column]
			as ESC [ r ; c R
		  Ps = 7  -> Request Display Name
		  Ps = 8  -> Request Version Number (place in window title)

ESC [ Ps;Ps r	Set Scrolling Region [top;bottom]
		[default: full size of window] (CSR)
ESC [ Ps x	Request Terminal Parameters (DECREQTPARM)

ESC [ ? Pm h	DEC Private Mode Set (DECSET)
ESC [ ? Pm l	DEC Private Mode Reset (DECRST)
ESC [ ? Pm r	Restore previously saved DEC Private Mode Values.
ESC [ ? Pm s	Save DEC Private Mode Values.
ESC [ ? Pm t	Toggle DEC Private Mode Values (xiterm extension).
		Ps = 1
		  h -> Application Cursor Keys (DECCKM)
		  l -> Normal Cursor Keys (DECCKM)
[-]		Ps = 2
		  h -> Designate USASCII for character sets G0-G3.
		Ps = 3
		  h -> 132 Column Mode (DECCOLM)
		  l -> 80 Column Mode (DECCOLM)
[-]		Ps = 4
		  h -> Smooth (Slow) Scroll (DECSCLM)
		  l -> Jump (Fast) Scroll (DECSCLM)
		Ps = 5
		  h -> Reverse Video (DECSCNM)
		  l -> Normal Video (DECSCNM)
		Ps = 6
		  h -> Origin Mode (DECOM)
		  l -> Normal Cursor Mode (DECOM)
		Ps = 7
		  h -> Wraparound Mode (DECAWM)
		  l -> No Wraparound Mode (DECAWM)
[-]		Ps = 8
		  h -> Auto-repeat Keys (DECARM)
		  l -> No Auto-repeat Keys (DECARM)
		Ps = 9 (X10 XTerm mouse reporting)
		  h -> Send Mouse X & Y on button press.
		  l -> Don't Send Mouse X & Y on button press
			See the section Mouse Tracking.
[*]		Ps = 10
		  h -> menuBar visisble
		  l -> menuBar invisisble
		Ps = 25
		  h -> Visible cursor {cnorm/cvvis}
		  l -> Invisible cursor {civis}
[*]		Ps = 30
		  h -> scrollBar visisble
		  l -> scrollBar invisisble
[*]		Ps = 35
		  h -> Allow XTerm Shift+key sequences
		  l -> Disallow XTerm Shift+key sequences
[*]		Ps = 36
		  h -> Backspace key sends BS
		  l -> Backspace key sends DEL
[-]		Ps = 38  -> Enter Tektronix Mode (DECTEK)
		Ps = 40
		  h -> Allow 80 <--> 132 Mode
		  l -> Disallow 80 <--> 132 Mode
[-]		Ps = 44
		  h -> Turn On Margin Bell
		  l -> Turn Off Margin Bell
[-]	        Ps = 45
		  h -> Reverse-wraparound Mode
		  l -> No Reverse-wraparound Mode
[-]	        Ps = 46
		  h -> Start Logging (normally disabled at compile-time)
		  l -> Stop Logging (normally disabled at compile-time)
		Ps = 47
		  h -> Use Alternate Screen Buffer
		  l -> Use Normal Screen Buffer
		Ps = 66
		  h -> Application Keypad (DECPAM)
		  l -> Normal Keypad (DECPNM)
		Ps = 1000 (X11 XTerm mouse reporting)
		  h -> Send Mouse X & Y on button press and release.
			See the section Mouse Tracking.
		  l -> Don't Send Mouse X & Y on button press and release
[-]		Ps = 1001 (X11 XTerm mouse tracking)
		  h -> Use Hilite Mouse Tracking.
			See the section Mouse Tracking.
		  l -> Don't Use Hilite Mouse Tracking
ESC ] Ps;Pt BEL
		Set Text Parameters
		  Ps = 0  -> Change Icon Name and Window Title to Pt
		  Ps = 1  -> Change Icon Name to Pt
		  Ps = 2  -> Change Window Title to Pt
[*]		  Ps = 10 -> menuBar command Pt (compile-time option)
			see menuBar section below
[*]		  Ps = 20 -> Change default background pixmap to Pt
				(compile-time option)
			see XPM section below
[*]		  Ps = 39 -> Change default foreground color to Pt
				(compile-time option)
[-]		  Ps = 46 -> Change Log File to Pt (normally disabled by a
				compile-time option)
[*]		  Ps = 49 -> Change default background color to Pt
				(compile-time option)
		  Ps = 50 -> Set Font to Pt
[*]		  special values of Pt (xiterm extension)
		     "#+n"	change up <n> font(s)
		     "#-n"	change down <n> font(s)
		    	if <n> is missing or 0, a value of 1 is used
		     ""		change to font0
		     "#n"	change to font<n>

ESC c		Full Reset (RIS)
ESC n		Invoke the G2 Character Set (LS2)
ESC o		Invoke the G3 Character Set (LS3)

**
d) xiterm XPM
**

For the XPM XTerm escape sequence, "ESC ] 20; Pt BEL", Pt can be the
name of the background pixmap followed by a sequence of
scaling/positioning commands separated by semi-colons.

The scaling/positioning commands:
	`?'		= query scale/position
	`WxH+X+Y'	= change scale and position
	`WxH+X'		-> Y = X
	`WxH'		-> Y = X = 50
	`W+X+Y'		-> H = W
	`W+X'		-> H = W, Y = X
	`W'		-> H = W, X = Y = 50
	`=+X+Y'		= change position (absolute)
	`+X+Y'		= change position (relative)
	`=+X'		-> Y = X
	`+X'		-> Y = X
	`Wx0'		-> W *= W/100
	`0xH'		-> H *= H/100

For example:
eg.
	"\E]20;mona.xpm;200"
	loads the pixmap `mona.xpm' and sets the scaling to 200%
or
	"\E]20;;200;?\a"

	sets the scaling of the current pixmap to 200% and displays
	the image geometry in the title.

**
e) xiterm menuBar
**

For the menubar XTerm escape sequence, "ESC ] 10; Pt BEL", the syntax
of Pt is as follows:

	= title				set menuBar title
 	+/				access menuBar top level
 	-/				remove menuBar top level
	NUL				remove menuBar top level

	+ [/menu/path/]submenu		add/access menu
	- [/menu/path/]submenu		remove menu

	+ [/menu/path/]{item}[{rtext}] [action]	  add/alter item
	- [/menu/path/]{item}		remove item

	+ [/menu/path/]{-}		add separator
	- [/menu/path/]{-}		remove separator

	+ ../				access parent menu (1 level)
	+ ../../			access parent menu (multiple levels)

	Define menu quick arrows
	<b>Begin<r>Right<l>Left<u>Up<d>Down<e>End

NB: the square brackets indicate optional values.

The title may contain the following format specifiers:
            %%   literal '%' character
            %v   xiterm version

In the `action' associated with a menu item, special characters must be
backslash-escaped:
	`\a', `\b', `\E `\e', `\n', `\r', `\t', '\octal'
or in control-character notation:
	^@, ^A .. ^Z .. ^_, ^?

	If `action' begins with a NUL (^@) character followed by
	non-NUL characters, the leading NUL is stripped off and the
	balance is sent back to xiterm.

	To send a string starting with a NUL (^@) character to the
	program, start action with a pair of NUL characters (^@^@),
	the first of which will be stripped off and the balance
	directed to the program.

	As a concession and a convenience to the many Emacs work-alike
	editors, an action string can be be starting with the following:
		`M-...',	eg, `M-$'	== `\E$'
	and for Meta-x commands, a carriage-return will be appended if
	missing and leading space will be skipped

		eg, `M-x apropos' == `\Exapropos\r'

	The option {rtext} will be right-justified. In the absence of
	a specified action, this text will be as the used. So, for
	example,
		Pt = `+{Open}{^X^F}'
	is equivalent to
		Pt = `+{Open){^X^F}{^X^F}'

	To only have the right-justified text, either use the same name
	for both left and right labels, eg:
		Pt = `+{Open}{Open} Open-File-Action'
	or simply hide the left label by preceeding it with a dot, eg:
		Pt = `+{.anyLabel}{Open} Open-File-Action'

	Since the left label is used for matching, it is necessary.

	The menus also provide a hook for `quick arrows' to provide
	easier user access.  If nothing has been explicitly set, the
	default is to emulate the curror keys.	The syntax permits
	each arrow to be altered individually or all four at once with
	re-entering their common beginning/end text.  For example, to
	explicitly associate cursor actions with the arrows, any of the
	following forms could be used:

		Pt = `<u>\\E[A'
		Pt = `<d>\\E[B'
		Pt = `<r>\\E[C'
		Pt = `<l>\\E[D'
	or
		Pt = `<u>\\E[A<d>\\E[B<r>\\E[C<l>\\E[D'
	or
		Pt = `<b>\\E[<u>A<d>B<r>C<l>D'

	It is probably easiest just to see the examples.

**
f) Mouse reporting
**

ESC [ M <b> <x> <y>	report mouse position
			The lower 2 bits of <b> indicate the button:
			Button = <b> & 3 - SPACE
			  0 = Button1 pressed
			  1 = Button2 pressed
			  2 = Button3 pressed
			  3 = button released (X11 mouse report)

			The upper bits of <b> indicate the modifiers when
			the button was pressed and are added together
			(X11 mouse report only):
			State  = <b> & 28 - SPACE
			   4 = Shift
			   8 = Meta
			  16 = Control

			Col = <x> - SPACE
			Row = <y> - SPACE

**
f) xiterm special graphics mode:
**

ESC G Q			query if graphics are available
-> ESC G 0		no graphics available
-> ESC G 1		graphics available (color only)

Add more documentation here, if anyone actually cares.
ESC G W <x>;<y>;<w>;<h>:	create window
ESC G G <id>:		query window
-> ESC G <id> <x> <y> <w> <h> <fw> <fh> <nw> <nh>
ESC G L <id>		start line
ESC G P <id>		start point
ESC G F <id>		start fill
ESC G C <id>		clear window
ESC G T <id>;<x>; <y>;<mode>;<len>:<text>	place text

**
g) Key Codes
**
		Normal		Shift		Control		Application
Up		ESC [ A		ESC [ a		ESC O a		ESC O A
Down		ESC [ B		ESC [ b		ESC O b		ESC O B
Right		ESC [ C		ESC [ c		ESC O c		ESC O C
Left		ESC [ D		ESC [ d		ESC O d		ESC O D

		Normal		Shift		Control
Tab		^I		ESC [ Z		^I
BackSpace	^H		^?		^?

		Normal		Shift		Control		Ctrl+Shift
Home == Find	ESC [ 1 ~	ESC [ 1 $	ESC [ 1 ^	ESC [ 1 @
Insert		ESC [ 2 ~	paste-mouse	ESC [ 2 ^	ESC [ 2 @
Execute		ESC [ 3 ~	ESC [ 3 $	ESC [ 3 ^	ESC [ 3 @
End == Select	ESC [ 4 ~	ESC [ 4 $	ESC [ 4 ^	ESC [ 4 @
Prior		ESC [ 5 ~	scroll-up	ESC [ 5 ^	ESC [ 5 @
Next		ESC [ 6 ~	scroll-down	ESC [ 6 ^	ESC [ 6 @

Delete		ESC [ 3 ~	ESC [ 3 $	ESC [ 3 ^	ESC [ 3 @

Function Keys:
(Note: Shift + F1-10 generates F11-20)
		Norm		Shift		Control		Ctrl+Shift
F1		ESC [ 11 ~	ESC [ 23 ~	ESC [ 11 ^	ESC [ 23 ^
F2		ESC [ 12 ~	ESC [ 24 ~	ESC [ 12 ^	ESC [ 24 ^
F3		ESC [ 13 ~	ESC [ 25 ~	ESC [ 13 ^	ESC [ 25 ^
F4		ESC [ 14 ~	ESC [ 26 ~	ESC [ 14 ^	ESC [ 26 ^
F5		ESC [ 15 ~	ESC [ 28 ~	ESC [ 15 ^	ESC [ 28 ^

F6		ESC [ 17 ~	ESC [ 29 ~	ESC [ 17 ^	ESC [ 29 ^
F7		ESC [ 18 ~	ESC [ 31 ~	ESC [ 18 ^	ESC [ 31 ^
F8		ESC [ 19 ~	ESC [ 32 ~	ESC [ 19 ^	ESC [ 32 ^
F9		ESC [ 20 ~	ESC [ 33 ~	ESC [ 20 ^	ESC [ 33 ^
F10		ESC [ 21 ~	ESC [ 34 ~	ESC [ 21 ^	ESC [ 34 ^

F11		ESC [ 23 ~	ESC [ 23 $	ESC [ 23 ^	ESC [ 23 @
F12		ESC [ 24 ~	ESC [ 24 $	ESC [ 24 ^	ESC [ 24 @
F13		ESC [ 25 ~	ESC [ 25 $	ESC [ 25 ^	ESC [ 25 @
F14		ESC [ 26 ~	ESC [ 26 $	ESC [ 26 ^	ESC [ 26 @

F15 (Help)	ESC [ 28 ~	ESC [ 28 $	ESC [ 28 ^	ESC [ 28 @
F16 (Menu)	ESC [ 29 ~	ESC [ 29 $	ESC [ 29 ^	ESC [ 29 @

F17		ESC [ 31 ~	ESC [ 31 $	ESC [ 31 ^	ESC [ 31 @
F18		ESC [ 32 ~	ESC [ 32 $	ESC [ 32 ^	ESC [ 32 @
F19		ESC [ 33 ~	ESC [ 33 $	ESC [ 33 ^	ESC [ 33 @
F20		ESC [ 34 ~	ESC [ 34 $	ESC [ 34 ^	ESC [ 34 @

Keypad:
   use Shift to temporarily override Appl-Keypad setting
   use Num_Lock to toggle Appl-Keypad setting
   if Num_Lock is off, escape sequences toggle Appl-Keypad setting

		Normal		Application
KP_Enter	^M		ESC O M
KP_F1		ESC O P		ESC O P
KP_F2		ESC O Q		ESC O Q
KP_F3		ESC O R		ESC O R
KP_F4		ESC O S		ESC O S
XK_KP_Multiply	*		ESC O j
XK_KP_Add	+		ESC O k
XK_KP_Separator	,		ESC O l
XK_KP_Subtract	-		ESC O m
XK_KP_Decimal	.		ESC O n
XK_KP_Divide	/		ESC O o
XK_KP_0		0		ESC O p
XK_KP_1		1		ESC O q
XK_KP_2		2		ESC O r
XK_KP_3		3		ESC O s
XK_KP_4		4		ESC O t
XK_KP_5		5		ESC O u
XK_KP_6		6		ESC O v
XK_KP_7		7		ESC O w
XK_KP_8		8		ESC O x
XK_KP_9		9		ESC O y

</verb></tscreen>

<sect>xiterm for greeks<p>

Written by A. Haritsis (ah@doc.ic.ac.uk)

xiterm supports both ELOT-928 (ISO-8859-7 standard) and IBM-437 keyboard
translations for greek character entry. It is possible to start xiterm windows
in any of the two translations, making it possible to use both translations
modes simultanesuly on the same screen! No need to convert your files back
and forth if you don't want to.

When in greek mode, type ; or : twice to emit the respective symbol.
No need to switch language mode back and forth!

xiterm ISO-8859-7 includes mappings for the following (usually forgotten):
anw teleia =  ;.
&lt;&lt;   =  ;&lt;
&gt;&gt;   =  ;&gt;
  Also:
Copyright  =  ;c
Section    =  ;s

For Greek Elot-928 or IBM-437 keyboard for xiterm &amp; X greek entry support
you will need to:

1) compile xiterm with an ANSI C compiler (eg gcc) as follows:

   Edit configure.h and uncomment the line:
	/*&num;define GREEK_SUPPORT*/
   Type:
	xmkmf -a
	make

   and your xiterm executable with greek support should be created.  Install
   it as you would do for the normal xiterm.  There is no need to change its
   name.  It works fully as a normal rxvt but if you press the 'toggle'
   keysym (see below) it will switch into greek translation mode.  The extra
   memory it takes in less than 4 kBytes.

2) install greek elot &amp; ibm437 fonts(s) for X-windows
   eg.
	cp a_greek_font.pcf.Z /usr/lib/X11/misc/

   and ammend the fonts.dir and fonts.alias in /usr/lib/X11/misc/. Greek
   fonts are available as a separate file which you can download from
   sunsite (/pub/Linux/X11/misc/greek-xfont-pack.tgz).  A new release of a
   FULL set of fixed (and proportional and Type1 for use by netscape etc)
   can be found in the HCR archive - see at end).  I might upload them at
   sunsite et all as well.

3) include the following in your X resources:
	xiterm.font: grfixed	(or the name of your preferred greek font)
	xiterm.bits: 8				(default)
	xiterm.greektoggle_key: Mode_switch	(default)

   where grfixed is an alias for one of the elot-928 font in the pack.

   Remember that the default keyboard translation is ELOT928.  If you need
   to start xiterm with suppport for IBM437, use the command line of xiterm to
   set mode &amp; font (command line option -grk4 can do this).  Remember to use
   an Elot font with the Elot translation mode and a 437 font with the
   IBM437 mode.

   You can choose any keysym you wish as the &dquot;toggler&dquot; greek_switch_keysym.
   Choosing `VoidSymbol' will effectively _disable_ the greek keyboard.  
   The default is keysym `Mode_switch'.

   For XFree86 this is defined in the /usr/lib/X11/Xmodmap.* files as:
	keycode 113 = Mode_switch  (it is the Right Alt key or ALtGr)
   You may define it to be something else with a command like:

	xmodmap -e &dquot;keycode ... = Mode_switch&dquot;

   or changing your &tilde;/.Xmodmap file (see xmodmap(1) and X(1) about this).  
   I personally prefer the AltGr key on PC X terminals since it allows fast
   switching. Of course this might not be liked by left-handed people.  You
   can redefine it to whtever you like under X, but I would NOT recommend
   keycodes that have other uses.

5) Not all programs are 8-bit clean -- ie, they sometimes strip the top bit
   of a character which is essential for the greek fonts.

   Unfortunately bash is one of these programs (at least I couldn't figure
   out how to make it to work). Use tcsh instead: it is 8-bit clean.

   You will generally need to include in your ...rc files:

   For sh/bash:
	LC_CTYPE=iso_8859_1; export LC_CTYPE
	LESSCHARSET=latin1; export LESSCHARSET
	
   For bash to be 8-bit clean, add the following lines to &tilde;/.inputrc:
	set meta-flag on
	set convert-meta off
	set output-meta on

   For csh/tcsh:
	setenv LC_CTYPE iso_8859_1
	setenv LESSCHARSET latin1

Still some applications will have problems.  Emacs has its own support for
greek characters achieved with the .el script written by sarantos@csd.uch.gr
(for 19.20 +).  It might be possible to have greek support via emacs
invocations with the -nw argument (with this version of xiterm) but I have not
tried it.  Elvis (vi clone) works fine.  I highly recommend vim version 3.15
and later.  I have added support for making native languge vi'ing very easy
(see langmap option). It's by far the most powerful vi (or maybe editor :-)
I have ever seen.

If some (terminal-based) applications do not work, please direct complaints
to their authors stating that you would like them to be 8-bit clean.

I will soon release a linux version of an 8-bit clean curses lib and
versions of some useful programs that work with it (eg ytalk).  Watch the
HCR archive.

Do not expect programs that are not running within an xiterm window to have
greek keyboard support. For this, it will be needed to change the Xlib so that
it supports 4-state FSMs (rather than only 2 - I do not count shift keys or
caps lock) for keyboard entry (required for greek keyboards).

And something amusing and (maybe) useful: some filesystems (including SunOS
and Linux filesystems -- haven't checked others) allow names with 8-bit
characters; so you can create files or directories with names containing
greek characters!

For more greek related tools/fonts etc, have a look at the HELLENIC RESOURCES
ARCHIVE (HCR) (ftp://dolphin.doc.ic.ac.uk/pub/greek/) maintained by the above
author. 

Enjoy,

Angelo Haritsis (ah@doc.ic.ac.uk)

<sect>xiterm for Japanese<p>

Under work !  Will be finished soon ! Contribute to this section if you can !

Edit src/feature.h and uncomment :
/* &num;define KANJI */

Then type:
        xmkmf -a
        make

You must have kanji fonts !

<sect>xiterm history<p>

Xiterm 1.4

	1. Burned configure stuff & put Imakefiles instead... seems BETTER !!!

Xiterm 1.3

	1. Major cleans up

	2. Added command line options

Xiterm 1.1

	1. Various cleans up

	2. Merged different coonfig files into xiterm.h.

	3. Added look &amp; feel config. options (default colors, etc ...)

	4. Made a real documentation in sgml (to html).

	5. Started to fix some errors in configure (atexit, libXpm ... are not
	detected with configure.orig)

	6. Separated interdependencies, removed unused variables.

Xiterm 1.0

	1. Various cleans up

	2. Disabled menu use and rxvt graphics, since menu is really buggy
	and rxvt graphics nearly never used. Both are however kept in
	src/Xtensions if you want to enable them.

	3. Full keyboard support by default (Home, End, Page up &amp; down,
	keypad with different behaviour depending if numlock is on or off).

	4. 8 bit is now default since it doesn't eat memory !

	5. Changed name to xiterm to evolve as a program != rxvt.

	6. Asked original programmer and changed copyright from &dquot;don't make
	money&dquot; to GPL, for an easier implantation in various places.

	7. New goal : be compatible with every language of the world :-)

2.19 to 2.20

     1.	You can now add snazzy looking menus to any plain (non-X) text
	application.  At the moment, the menuing system is simple but
	functional.

	The syntax for controlling the menubar is documented in
	doc/rxvt.doc, but note that an XTerm sequence `ESC ] 10; Pt
	BEL' is used so menus created for rxvt will be ignored by an
	ordinary XTerm.

	It provides sub-menus, click-and-drag, and even some user
	definable `quick' arrows keys.  However menu manipulation
	could use refinement to permit multiple menus to be defined --
	and the menu refreshing could also use some improvement, but
	it can be extended and refined later as required/desired.

	The files doc/menu.sh and doc/jedmenu.sl show sample
	implementations of menus.

	  	It compiles and runs on my machine (AIX 3.2.5)
		but THIS IS CONSIDERED BETA (or even ALPHA) CODE!

     2.	DEC private modes: Bug fix for 's'ave and 'r'estore parameters,
	added a 't'oggle parameter to DEC private modes.

     3.	Made Backspace key selectable with DEC private mode
	ESC [ ? 36 h/l/s/r/t (high/low/save/restore/toggle)

     4.	Changed the way the scrollBar is realized to permit on-the-fly
	toggling of the scrollBar display and added a DEC private mode
	escape sequence for that.  Smoother redraw of scrollBar.
	Better proportions for the arrows allows a slightly narrower
	scrollBar.

     5.	Added support for XTerm font changing sequence:
	`ESC ] 50; Pt BEL', with (as usual) a few extras.
	See doc/rxvt.ref

     6.	Adapted experimental XPM buffering from that supplied by
	Carsten Haitzler (raster@zip.com.au).

     7.	Replaced `wait' with `waitpid' in src/command.c::Child_signal
	to avoid a race condition and permit use of pclose() on SunOS.
	Patch provided by (davis@space.mit.edu), Thanks John!

     8.	For easier XPM handling, added `path' resource/long-option and
	substantially enhanced pixmap scaling to provide very exact
	control over scaling and positioning of the XPM background
	image.  The XPM XTerm escape sequence has been extended to
	provide a convenient facility for on-the-fly rescaling.
	Export COLORTERM=&dquot;rxvt-xpm&dquot; instead of COLORTERM=&dquot;rxvt&dquot;

     9.	Added export COLORFGBG to give hints to color applications.
	Typically one of these values is exported, in which `fg' and
	`bg' are numbers 00-15:

	COLORFGBG=&dquot;default;default&dquot;
		-fg -bg colors don't match any of color 0-15

	COLORFGBG=&dquot;fg;default&dquot;
		-fg color matches color 0-15, but -bg color doesn't

	COLORFGBG=&dquot;default;bg&dquot;
		-bg color matches color 0-15, but -fg color doesn't

	COLORFGBG=&dquot;fg;bg&dquot;
		-fg -bg colors match color 0-15

	When compiled with XPM support, the last two values are
	rendered as follows:

	COLORFGBG=&dquot;default;default;bg&dquot;
		-bg color matches color 0-15, but -fg color doesn't

	COLORFGBG=&dquot;fg;default;bg&dquot;
		-fg -bg colors match color 0-15

    10.	Disable Shift+Prior/Next and scrollBar if saveLines == 0.
	Slight change to key-processing so `shift+meta+key' and
	`shift+ctrl+key' gets processed as `shift+key'.  This provides
	a way to avoid interpretating `Shift+Prior', `Shift+Next', and
	`Shift+Insert'.

	Also, added DEC private mode sequence :
<tscreen><verb>
ESC [ ? 35 h/l/s/r/t
</verb></tscreen> 
	to disable Shift+key interpretation.

	Provide for Ctrl+Shift+(KEY) combinations for function keys.
	See doc/rxvt.ref

    11.	Always match long-option names, even when only preceded by a
	single -/+.

2.18 to 2.19

     1.	Minor alteration to input mode for Kanji processing.

     2.	rclock: -adjust option, support for exec on startup syntax,
	date format may now also include the century

     3.	Made mouse double-click respect autowrap lines.

     4.	Added marks for folded editing.

     5.	Added Offix DND (Drag 'n' Drop) protocol. Added support for XA_TARGETS.

     6.	added Carsten Haitzler (raster@zip.com.au) XPM patches to load
	an XPM file for the background of the terminal window.
	Uses resource `Rxvt.backgroundPixmap' or long-option
	`--backgroundPixmap'

     7.	Use these (XTerm) keybindings exclusively and remove the old
	equivalent bindings:
<tscreen><verb>
		Shift-Prior  = scroll up
		Shift-Next   = scroll down
		Shift-Insert = paste mouse selection

		Shift-KP_Add      = bigger font
		Shift-KP_Subtract = smaller font
</verb></tscreen>

2.17 to 2.18

     1.	Check for NULL pointers in command-line processing (oops)
	Also fixed processing of `hidden' arguments such as -d, -g, -T

     2.	Fixed terminfo hpa/vpa: was :
<tscreen><verb>
\E.. instead of \E[..
</verb></tscreen>
	added invisible cursor :
     2. Fixed terminfo hpa/vpa: was :
<tscreen><verb>
ESC[?25h / ESC[?25l
</verb></tscreen>

     3.	Fixed broken kanji characters (?? and disappeared cursor box ??)
	thanks to manabe@Roy.dsl.tutics.tut.ac.jp.

     4.	In privileges(), changed setuid/setgid to seteuid/seteguid so that
	it's possible to switch back to root later.

	Perhaps fixed svr4 problems (reports no tty, no job control) in
	get_tty() ... need to detect these SVR4 features in the configure
	script.

     5.	Restored scrollColor, topShadowColor, bottomShadowColor resources
	that somehow got lost between the beta and release versions.  For
	monochrome displays, fixed scrollbar so it will be visible and
	suppress color changes.

     6.	Final? iteration on selection.  Store selection text with LF
	line-endings but paste into rxvt with CR endings.  Selection now
	preserves the newline when trailing space is stripped from
	non-autowrap lines.  Compile-time support for using a keystroke to
	paste from the cut-buffer.

     7.	Fixed utmp.c to handle both sysv and bsd pty names.  More changes in
	the works to improve documentation and eliminate race conditions ...
	this, thankfully, is being done by someone else.

     8.	Added European language support (X11R6) - let me know of problems
	and fixes since I only have X11R5.

     9.	Changed names of color10-color17 to color8-color15 to match with
	those used by color_xterm ... sorry for the inconvenience, but I
	didn't have an X11R6 xterm manpage until now and long-term
	compatibility is quite important.

	Added a real bold font (define USE_BOLDFONT).  I still think it's
	too much work to avoid pixel droppings for overstrike fonts.
	Added support for specifying colors for bold/underline
	(colorBD/colorUL) but it's only done when the foreground = the default
	foreground ... see the manpage.

	Compile-time selection of TERM=&dquot;xterm-color&dquot;.

	Reduced the number of rarely-used command-line options since they
	are accessible on the command-line via their resource names as long
	options.  More rigid differentiation between long and short options:
	long options are --/++ prefixed; short options -/+ prefixed.  Added
	long-option help to give the resource names.
	Removed run-time selection of right-hand scrollbar and arrows.
	Removed run-time selection of (pageup_key/pagedown_key/alert_key).

    10.	Changed Ctrl-Up,Down,Left,Right to emit :
<tscreen><verb>
	&dquot;\EOa,b,c,d&dquot; instead of the previous
        &dquot;\E[^A,^B,^C,^D&dquot; to avoid problems associated with having an
        embedded &dquot;^C&dquot; in a key-sequence.
</verb></tscreen>
        Disallow 80/132 column switching as the default (same as xterm).

    11.	Check for seteuid().  Add &dquot;ttcompat&dquot; module for SVR4.

    12.	A few people suggested removing the keystroke for toggling MapAlert
	and so I have.  I agree that it was pointless and/or annoying since
	there was no way of determining the current toggled state anyhow.

    13.	Fixed missing `ttydev' for _sgi.  Fixes for BSD utmp support.
	Exported WINDOWID before the window was created (oops).

    14.	Mouse cut &amp; paste of autowrapped lines should be improved, fixed
	bug in screen.c::scroll_text().

    15.	As was pointed by a user, in keeping with X conventions, only an
	application that starts with 'x' should capitalize the first two
	letters of the resource file, so the rxvt resource file (and class
	name) should be named Rxvt not RXvt, this is a minor point.

    16.	rclock: As well as message reminders, rclock can launch programs and
	(if no message text is given) act as a cron-type of program.  Made
	default font `7x14'.  Fixed graphics context when mail is waiting
	and a reminder is issued - so the message is actually visible!

    17.	As suggested by a user, changed the bolding algorithm to be slightly
	more intuitive:
		1. colorBD (if specified)
		2. color0-7 to color8-15 (if possible)
		3. boldFont (if specified and found)
		4. overstrike (last resort)

	This takes advantage of the color capability and is the most
	consistent when toggling font sizes on-the-fly.  If you never want
	overstrike (looks ugly and leaves pixel droppings) or boldFont (you
	like to switch font sizes on-the-fly), you can remove them at
	compile-time.  The other elements are similarly compile-time
	selectable.

    18.	Another user suggestion: scrollbar made more distinct by having the
	`trough' a different color from the slider -- I opted for making it
	the same as the default background color so that the slider and
	arrows appear to `float' on the window.  Also removed topShadowColor,
	bottomShadowColor resources as unnecessary.

    19.	Dropped distribution of vttest since Tom Dickey (dickey@clark.net)
	is working on an improved version.

2.16 to 2.17

     1.	Fixed problem in scr_refesh_region() that was introduced in v2.16
	The problem of `pixel droppings' continues when bold is simulated
	using overstrike.  Using XCopyArea() sometimes helps, but the
	preferred and simplest solution is item 4 below.

    2.	Removed 7bit mode.

	Changed definition of meta so that the ESCAPE is the default and
	using meta to set the 8bit on an option that can be made run-time
	configurable (assuming people still use this).

	Added -/+rv command-line option, resource reverseVideo.  NB: it works
	slightly differently from xterm's in that foreground/background are
	swapped even if they have been explicitly set.

	Removed NO_COLOR option -- no more monochrome rxvt

	Inherit existing stty settings (at least for control characters)
	and set value of BackSpace appropriately.

	Added defines DONT_GUESS_BACKSPACE and NO_DELETE_KEY

    3.	Added 3D style scrollbar and removed all the old bitmapped
	scrollbars and arrows with the only exception being the xterm
	lookalike XTERM_SCROLLBAR which is available in a single width.
	With arrows, scrollbar behaviour somewhat resembles Motif
	behaviour.  Without arrows, it's the standard xterm behaviour.

	The default scrollbar (defined at compile-time or set by using
	scrollBar: True) is to have a scrollbar with arrows arranged on the
	right-hand side. The scrollBar resource is now exclusively a boolean
	value

	scrollbar resources:

<tscreen><verb>
		scrollColor
		topShadowColor
		bottomShadowColor
</verb></tscreen>

	NB: if topShadowColor/bottomShadowColor are unset, their values are
	    calculated from scrollColor using an algorithm adapted from
	    fvwm so it shouldn't be too hard to find scrollbar colours that
	    look good with your window manager and don't consume an entire
	    colormap.

    4.	Added smarter handling of bold/blink when applied to the default
	fg/bg colours:

	If the pixel value of fg/bg matches the pixel value of colour COLOR0
	through COLOR7, then applying bold/blink to the default fg/bg will
	select the appropriate colour from BOLD0 through BOLD7 instead of
	using the overstrike bold.

	This seems to be the best way to handle bold/blink attributes when
	the foreground/background match and ANSI colour anyhow.  For
	convenience, it is possible to use colour aliases (next item) for
	the foreground/background colours instead.

	My preference is a dull Canadian look:

<tscreen><verb>
		RXvt*foreground:	7
		RXvt*background:	10
</verb></tscreen>

    5.	Changed colour aliases (item 7 of last change) and dropped the `&num;'
	prefix.  This avoids confusion with the regular &num;rrggbb format of
	specifying colours and is unambiguous since there are no X11 colours
	starting with a digit.  This also avoids the need to quote the `&num;'
	to protect against shell interpretation.

    6.	Added colour cursor support.
	    -cr (cursorColor), as per XTerm to the (rectangle) cursor colour
	    -cr2 (cursorColor2), only RXvt to the text colour.

	The cursorColor2 maintains contrast in a colour environment and
	is optional.

	Thanks Raul Garcia Garcia (rgg@tid.es) for the idea.
	Cleaned up scr_refresh (again (sigh)) to avoid some unnecessary
	colour changes and removed the reverse video graphics context and
	just swap foreground/background colours instead.

    7.	Typo in command.c: had seteuid() instead of seteguid() (sigh)
	Use cfsetospeed()/cfsetispeed() for POSIX termios handling.

    8.	Ignore the loginShell option/resource for programs that DON'T end with
	sh. A hack but it keeps `rxvt -ls -e rlogin machine' from failing and I
        don't know of (m)any shells that don't end in &dquot;sh&dquot;.

    9.	Hard-code dependencies in Makefiles to avoid using X11 makedepend.
	Added check for atexit() to catch the problem that exists on SunOS
	but not on Solaris.

   10.  Collected command-line option parsing and X11 resources into a
	single file (xdefaults.c), and introduced a monolithic structure
	(with bit-flags for logical options) to eliminate the massive
	if-else-if parsing and to reduce possible overlaps/oversights

	Short help provided for an incorrect argument.

	For more consistency, more flexibility, and fewer switches,
	made -grk4/-grk9 options obsolete, and replaced with `-grk mode'.
	Added the resource `greek_keyboard' while I was there.

	It is also possible to use a `--' or `++' prefix to get so-called
	`long options' that correspond to the resource name.
	For example,

		rxvt +ls -bg Blue
		rxvt +loginShell -background Blue
		rxvt ++loginShell --background Blue

		rxvt ++ls --bg Blue		Error!

   11.	Changed REFRESH_PERIOD to 1 in command.c, the old idea of providing
	for fast and furious scrolling needs to be reconsidered so that `cat'
	works.  Still needs some investigation.

   12.	Changed scr_poweron(), which corresponds to `ESC c', to also reset
	the scrollback buffer.

   13.	Changed scr_change_screen() (when compiled with NO_SECONDARY_SCREEN)
	so that switching from the secondary to primary screen will push the
	old secondary screen into the scrollback buffer.  This is fairly
	useful if your terminfo has have rmcup=\E[?47l\E8, smcup=\E7\E[?47h.
	It is NOT particularly useful if rmcup includes \E[2J, like some do.

	Running with NO_SECONDARY_SCREEN provides faster switching than
	with a real secondary screen and saves memory too.

   14.	Now that key values have mostly stabilized, moved the compile-time
	key choices to &dquot;feature.h&dquot; (&dquot;keys.h&dquot; now
        obsolete).

2.15 to 2.16

    1.	Misc cleanup, rxvt once again passes the vttest (and reverse video
	works again).  Kanji support tested and seems to be okay.  Finally,
	an okay set of regular/bold colours.  Compile-time option for a
	right-side scrollbar.

    2.	Ctrl-minus now (correctly) generates ^_ [0x1F].
	Changed termcap/terminfo to use normal cursor keys instead of
	application cursor keys (rmkx/smkx, ke/ks) -- otherwise subsequent
	rxvt/xterm starts with the application cursor keys active.

    3.	Fixed scr_reset() so that resizing is a lot more sensible.
	Implemented the equivalent SouthWest resizeGravity (xterm X11R5) so
	the bottom line of text on the screen stays fixed.  If the window is
	made taller, additional saved lines will be scrolled down onto the
	screen; if the window is made shorter, lines will be scrolled off
	the top of the screen, and the top saved lines will be dropped. The
	old resizing code is available with -DOLD_UGLY_RESIZE.

    4.	Altered code so all man-page documented command-line options will
	not trigger errors even if the feature wasn't compiled into rxvt.
	Added old, backward compatibility command-line options, but they're
	simply ignored. Eventually they can be removed -- perhaps Jan'97?

		`-8':		use `+7'
		`-fat':		use `-sb'
		`-thin':	use `-arrows'
		`-meta8thbit'	use `-meta8'
		`-metaescape'	use `-meta'
		`-font_list'	use `-font1', `-font2', etc.

	These ones are just too weird to support:

		`-ls-':		use `+ls'
		`-ma-':		use `+ma'

    5.	Removed secure-keyboard option, too problematic and obscure.

    6.	First attempt at GNU autoconfig.
	Still needs some work, but it's mostly okay.

    7.	Added minor aliases for foreground/background colours.  This permits
	colour specifications like -fg &dquot;&num;13&dquot; -bg
	&dquot;&num;10&dquot;, which would set the foreground to colour 13
	(bright yellow) and the background to colour 10 (bright black).  It's
	not terribly useful yet, but might eventually be a nice way to have
        bold/blink colour work even on with the standard fg/bg colours.

2.14 to 2.15

    1.	Small bug: initial width incorrect when there was no scrollBar.

    2.	Close the gaping security hole.  Renounce setuid/setgid privileges
	immediately and only take them up as needed -- chown() or writing
	into /etc/utmp.

    3.	Reverted to using `&lt;' and '&gt;' to toggle smaller/bigger fonts. It
	seems that many didn't like KP_Subtract/XK_KP_Add -- conflicts with
	some editors, and not all terminals have a Keypad anyhow.

    4.	Man page reformatted by Piercarlo Grandi (piercarl@sabi.demon.co.uk)
	so that it &dquot;now is done in the most delightful [sic] elegant 'roff
	style :-)&dquot;

    5.	Started to integrate the Kanji support based on old patches from the
	Linux-JE (Japanese Extensions) project.  Consider it alpha until one
	of the JE authors gives it a thorough check.

    6.	Added compile-time selection of a few different scrollbar widths.

    7.	When reading X resources, rxvt now recognizes two class names:
	&dquot;XTerm&dquot; and &dquot;RXvt&dquot;.  The reason for two
	distinct names is that there are many options common between rxvt and
	xterm -- to which the class name &dquot;XTerm&dquot; permits easy
	access and configuration -- but there are also several options, notably
	colours and key-handling, unique to rxvt but which are useful to share
	between different rxvt configurations; the class name
        &dquot;RXvt&dquot; permits this.

	NB: The &dquot;RXvt&dquot; class takes precedence (in the event of a
        clash) and is the only one ever used for the application defaults file.

    8.	The initial value used for the Backspace key (^H or ^?) is now
	determined from the value of CERASE used to set the termios
	structures.  This removes the need for the BACKSPACE_AS_DELETE
	compile-time option.

2.13 to 2.14

    1.	Default HOTKEY prefix can now be choosen as `meta', `ctrl' or
	`shift'. Moved font toggle to KP_Add/KP_Subtract to resemble
	resolution toggling of the XFree86 server (Linux) and so that Alt-&lt;
	can generate ESC-&lt; for Emacs usage.  Man page and usage() reflect
	the changes. Note that if you choose the hotkey to be `shift', to
	mimic the Linux console scrollback, you'll probably want different
	keybindings for mapAlert and Secure.

	The choice of the HOTKEY (ctrl or meta) prefix and some of the
	key-strings can be compile-time defined in &dquot;rxvtkeys.h&dquot;,
        although probably the only changes desired will be in the string value
	associated with XK_Delete and in the choice of a HOTKEY (ctrl or
	meta) prefix.

	Use shift or ctrl to temporarily toggle Backspace from ^H to ^?.
	Use shift to temporarily toggle the application keypad.

    2.	Patch so that setting bold or blink works before or after changing
	the colour (it used to only work before changing the colour). Also
	added the option of having DOS VGA colours.
	Thanks Avery Pennarun (apenwarr@foxnet.net)

    3.	Extensive reworking of pseudo-tty handling and addition of BSD sgtty
	terminal handling and new utmpx (Solaris 2.x) support. MANY thanks
	to Raul Garcia Garcia (rgg@tid.es).

	POSIX wtmp support added by Piet W. Plomp (piet@icce.rug.nl)

	Added -/+ut option (resource: utmpInhibit) so you can sometimes be
	harder to find :)

    4.	Finally? cleaned-up selection so that it works properly -- clears a
	previously selected region without causing a core dump -- define
	NEW_SELECTION.

	I believe that this should fix a long-standing problem with the
	selection mechanism -- probably back from when selection of the
	scrollback was added -- whereby all accounting was done in terms of
	screen row values [0 .. RxvtWin.rows-1] plus the current offset
	value.  The anchor and end points were scrolled with the screen, but
	the beginning point wasn't and extending a region that had its
	anchor scrolled-off would give complete garbage.  The new selection
	scheme has lots of bounds-checking (too much?) to prevent these
	problems.  If PRINT_PIPE is not defined, then you can use
	PrintScreen to dump some of the current selection state -- this
	should help debugging.

	Thanks to John Davis (davis@space.mit.edu) and Piet W. Plomp
	(piet@icce.rug.nl) for helping to diagnose the problem.

    5.	Use information request `ESC [ 8 n' to change the window title
	to the current rxvt version so you can find out what version you
	have.

    6.	Added simple code to permit run-time definition of the keysyms
	0xFF00 - 0xFFFF if KEYSYM_RESOURCE (for FAKE_RESOURCES only) is
	defined.  It's not as pretty as that used by xterm since it only
	works with keysym values rather that key names, but the impact on
	code size is quite minimal.  I use it in conjunction with `-name vm'
	to remap arrow and function keys for tn3270 ... quite handy.
	At the moment the string length is only limited by the line length
	(currently 256) used in &dquot;resources.c&dquot;

	The syntax (at the moment) is

		rxvt*keysym.0xFFnn:	&dquot;a string value&dquot;

	where `nn' is a 2 digit hex value 00 to FF.  Of course if there were
	an easy and small means of converting key names to keysym values,
	then that would be better.

	The enclosing quotes are required to start/end with whitespace.
	Most of the usual escape values can be used:

		\b - backspace
		\e - escape
		\n - newline
		\r - carriage return
		\t - tab
		\000 - octal number

	Anyhow, here's a brief example of what it looks like
	in &tilde;/.Xdefaults:

	! F11 key - mimic the output of F1
	rxvt*keysym.0xFFC8: \e[11&tilde;

	! F12 key - whatever
	rxvt*keysym.0xFFC9: Hello World!\n&dquot;\&dquot;String\&dquot; ends
        with whitespace  &dquot;

	! Delete key - remap
	rxvt*keysym.0xFFFF: &dquot;Delete :)&dquot;

	!Scroll_Lock as flow-control (^S)
	rxvt*keysym.0xFF14: \023

    7.	Oops -- fixed resource name from scrollbar to scrollBar. Fixed
	cursor colours to black on white (like xterm) for the scrollbar
	cursors, but I've left the xterm (`I'-bar) cursor as foreground on
	background because it looks so nice.  Allocate all colours when
	creating the window so that we don't have to worry about it later
	and so that we can avoid potential hassles with colour-hungry
	applications like Netscape.

    8.  Added a way to distinguish an rxvt from an xterm via the obsolete
	ESC Z sending the vt100 answer string with 'c' to 'C'.

	Added support for resolving the actual IP number of the host for
	remote DISPLAYs.  Changed the answer back for ESC[7n to add a
	trailing newline to support easier input into the shell.  When the
	display is local (i.e. :0), we add support for sending the first
	non-loopback interface IP number as the DISPLAY instead of just
	sending the incorrect &dquot;:0&dquot;.  This way telnet/rlogin shells
        can actually get the correct information into DISPLAY for xclients.

	Courtesy of Chuck Blake (cblake@BBN.COM)
	[Note: I've not had a chance to thoroughly test this -- mjo]

2.12 to 2.13

    1.	Shift and Control now only work for non-application mode cursor
	keys and with function keys.

    2.	Override XTerm mouse reporting with either Mod1 or Shift.  X11
	mouse reporting now properly includes modifier keys (see rxvt.ref).
	Although this effectively degenerates to the Control modifier alone
	since both Shift and Meta are used to temporarily disable mouse
	reporting -- I don't know an easy way around this but that's what
	XTerm does, although since it uses Control to pop-up menus, that
	doesn't get transmitted either.

    3.  Moved a few more configuration items from Imakefile to configure.h

    4.	Added XAPPLOADDIR define to the Imakefile to allow use of the
	application defaults file XAPPLOADDIR/RXvt when rxvt has been
	compiled with FAKE_RESOURCES.  Now, the following files are
	checked:
		XAPPLOADDIR/RXvt	(compile-time defined)
		&dollar;HOME/.Xdefaults or &dollar;HOME/.Xresources
	suggested by John Gotts (jgotts@engin.umich.edu)

    5.	Applied patches by Edward D.H. Liu (dhliu@solar.csie.ntu.edu.tw)
	to fix the speed of pasting rxvt's selection to motif, xew or tk.
	Finally! reasonable pasting speed to these applications.

    6.	patches by Gregory Margo (gmargo@newton.vip.best.com)
	for xterm-style proportional scrollbar behaviour:
		If pointer is near top, scroll one line.
		If pointer is near bottom, scroll full page.
	refreshPeriod resource and -refresh option ... still wishing
	for faster screen refreshing.

    7.	Bug fix for partial matches (FAKE_RESOURCES).  In addition to
	resources for resource name `rxvt', also get resources for class
	name `XTerm' as well.  Remove checking for `command' resource since
	it's not found in xterm nor was there any code in place to parse the
	command arguments ... better just to use the command-line -e option.
	Replace `fontList' with font1, font2, ... etc. for better xterm
	compatibility and for ease of configuration.  Changed processing of
	string resources and command-line string options to avoid allocating
	redundant memory.

    8.	Previously selected region is now properly cleared when Button1 is
	pressed.  Still have problems with click-and-drag when Mod1 or Shift
	is used to override mouse reporting -- argh!  Until someone gets
	this properly patched, use Button1 followed by Button3 (to extend
	region) in these instances.

    9.	Understands ANSI set default fg/bg colour (\E[39m / \E[49m)

   10.	In the screen accounting used in screen.c, use a '\n' to terminate
	wrapped lines instead of '\0'.  This should avoid mouse selection of
	wrapped lines from including a bogus newline.  No known
	side-effects, but changes isolated by &num;define NEW_WRAPTYPE.

2.11 to 2.12

    1.	Extra functionality for XTerm mouse report mode.  If mouse reporting
	is enabled (the application will handle mouse events) the normal
	scrollbar operation is disabled -- instead rxvt sends UP/DOWN for
	the arrow buttons and PageUp/PageDown when Button1 or Button3 are
	clicked on the scrollbar.  Use Mod1 (Alt) key to get the normal
	scrollbar/arrow button actions and also to get the normal selection
	functions -- so that you can still cut/paste between X applications.

    2.	New colour possibilities -- 16 colours.  Instead of using fatter
	characters, a bold attribute now uses a brighter foreground colour.
	Similarly, a blink attribute will use a brighter background colour.
	It is also possible to choose these colours through the resources
	(color0 -- color7) permit specification of the ANSI colours (black,
	red, green, yellow, blue, magenta, cyan, white), the resources
	(color10 -- color17) are the brighter bold/blink equivalents.
	Define USE_FAKE_BOLD to disable.

    3.	Extensive clean-up of source and headers to separate
	interdependencies, remove unused variables.  Introduced static
	variables wherever possible to limit scoping and reduced the number
	of external variables.

    4.	Allow NumLock to toggle on/off the application keypad.

	Backspace sends '\b', Ctrl-Backspace sends '\177'.
	Define BACKSPACE_AS_DELETE to reverse these values or use the
	escape sequence:

		ESC [ 36 h		Backspace key sends BS
		ESC [ 36 l		Backspace key sends DEL

	XK_End used to send &dquot;\033Ow&dquot;, which is identical to XK_KP_7
        and confuses EDT-type editors. Now,

	Home = &dquot;\033[7&tilde;&dquot;
	End  = &dquot;\033[8&tilde;&dquot;

	Changed Alert &amp; Secure keys from Alt-i &amp; Alt-s to Alt-I &amp;
        Alt-S so they aren't so easily toggled.

    5.	Extra keystroke info.  Pass Control and Shift indicators for
	function keys (similar to the XJed editor)
	eg,
		F1	= ESC [11&tilde;
		C-F1	= ESC [11^
		S-F1	= ESC [11&dollar;

	also, pass indication of shift status for arrow-keys
	eg,
		Up, Down, Right, Left
		  = ESC [A, ESC [B, ESC [C, ESC [D
		S-Up, S-Down, S-Right, S-Left
		  = ESC [a, ESC [b, ESC [c, ESC [d

	You wouldn't be able to use these keys for termcap/terminfo
	applications, but the key sequences are available for remapping
	within an application.

    6.	Added configure.h which is included by each source file and by the
	Imakefile.  Common compilation defines are now all contained in
	configure.h with minor system defines remaining in Imakefile --
	makes it much easier to configure.  Used XCOMM macro in Imakefile so
	that it actually works.  Also added defaults.h for defining
	user-specific startup defaults.

    7.	Added rxvt.ref to provide documentation of the various terminal
	sequences that are processed.  Updated man page to reflect changes.

    8.	Use xterm-style -/+ to turn on/off options, rationalized resource
	names to more closely resemble xterm.

		Option			Resource
		-help			-
		-display displayname	-
		-geometry geom		geometry:
		-bg color		background:
		-fg color		foreground:
          	-color(n) color		color(n): (string)
					where (n) = [0-7], 1[0-7]
		-fn fontname		font: (string)
		-fontList names		fontList: (string) (string) ...
		-name string		-
		-/+ls			loginShell: True/False
		-/+ma			mapAlert: True/False
		-/+vb			visualBell: True/False
		-/+sb			scrollbar: True/False
		-/+arrows		scrollbar: Arrows/True/False
		-ic			-
		-meta8			meta: 8bit
		-/+meta			meta: True/False
		-sl number		saveLines: (num)
		-grk4			-
		-grk9			-
		-print-pipe name	pipe-pipe: (string)
		-e command arg ...	command: (string)
		-T string		title: (string)
		-n string		iconName: (string)
		-C			-
		-/+7                    bits: 7/8
		-secure keysym		secure_key: (string)
		-pageup keysym		pageup_key: (string)
		-pagedown keysym	pagedown_key: (string)
		-bigfont keysym		bigfont_key: (string)
		-smallfont keysym	smallfont_key: (string)
		-prkey keysym		printscreen_key: (string)
          				greektoggle_key: (string)
          				cutchars: (string)

    9.	Fixed Button actions for XTerm-style scrollbar so that Button1 and
	Button3 do different things as they are supposed to.  Replace -/+fat
	with -/+sb and -/+arrows for more consistency with XTerm. Decreased
	width of `fat' scrollbar (make closer to xterm) and increased width
	of `thin' scrollbar (arrows too small) -- they are now the same
	width.  Also made it possible to remove the scrollbar altogether.
	Added a visual bell.

	Added many more defines to further reduce code size for various
	cases, see &dquot;configure.h&dquot;.  It is also possible to alter
	settings in &dquot;defaults.h&dquot; for configuration options that
	will only affect screen.c and xsetup.c, this should help with
	compile-time customization for those who don't want to use Xdefaults.

	Added the define REPLACE_SELECTION_NEWLINE to make the substitution
	of newlines with carriage returns for selection pasting a
	compile-time option.

   10.	Fixed the graphics samples so that if you want to it's actually
	possible to compile them.  Added -name command-line option so that
	it's possible to select different sets of resources.

   11.  Integrated initial support for X11 mouse reporting and added
	Shift + Function Keys support.

2.10 to 2.11

    1.	If NEW_COLOR_MODEL is defined in screen.c, the new model I described
	in an earlier email is used. (apparantly there are two, slightly
	differnt models for using color extensions in a vt-compatible
	terminal. This flag lets you switch.

    2.	If XTERM_MOUSE_REPORT is defined in command.c, mouse reporting is
	turned on/off via the appropriate escape sequences.  XTerm already
	provides this support.

    3.	If .Xdefaults does not exist, .Xresources is searched for.  It seems
	that many here use .Xresources.

2.09 to 2.10

    1.	Really fixed the color problem (?) Got color-ls, and it works now.
    2.	Added patch to allow run-time selection of font list.

2.07 to 2.09

    1.	Fixed some color-usage errors.
    2.	Added double and triple-click support
	compliments of ah@doc.ic.ac.uk (Angelo Haritsis)
    3.	Added Print Screen capability, as in most vt-100's

2.06 to 2.07

    1.	Fixed problems with rxvt screwing up tty permisssions (?)

2.03 to 2.06

    1.	Fixed a limit which imposed a maximum width for the
	terminal window of 255 characters. There is no limit now.
    2.	Made provision for applications to get mouse-click feedback
	when user clicks in a graphics window. See graphics_sample

2.02 to 2.03

    1.	Fixed memory management just a little.

2.0 to 2.02

    1.	Bug fixes for color and graphics.

1.97 to 2.0

    1.	Added ANSI color support. Compile with -DCOLOR

    2.	Added a graphics mode. Compile with -DGRAPHICS

1.96 to 1.97

    1.	Bug in refresh() which was causing slow refreshes after
	clear-screens was fixed. Showed up during emacs start-up.

1.95 to 1.96

    1.	rxvt did bad things if it received mouse - Motion events
	without a preceeding button-press. Fixed.

1.94 to 1.95

    1.	Created a substitute for XGetDefaults, which seemed to account for
	1/2 to 2/3 of the memory used by rxvt (according to the SIZE field
	of ps output). My substitute only reads the .Xdefaults file. Compile
	with -DFAKE_RESOURCES to get my mini- XDefaults handling,
	-DREAL_RESOURCES to keep XGetDefault.

1.93 to 1.94

    1.	Fixed some minor long-standing errors in the vt100 emulation.

    2.	Fixed ALT-(char) handling in command.c

    3.	Fixed minor bug with start-of-selection location.

    4.	Added xterm-type &dquot;extend selection&dquot; feature using
	mouse button 3. Button 1 always starts a new selection. Button3
	tries to extend the current selection if possible.

    5.	Fixed problem with bold-face fonts overflowing into
    	the next character for some fonts.

1.92 to 1.93

    1.	ran gprof to find bottle-necks in the code. Halved user
	time, but had little effect on total time required to
	update the display. Seems worth keeping for the more efficient
	user-time, though. At this point, I think that most of the elapsed
	time is spent waiting for input or waiting for the X buffers
	to flush.

    2.	Used to refresh the screen every 2.2 screen-fulls during
	flat-out scrolling. Really cuts down on scroll-time. Now,
	refresh every screen-full (or when there's a pause in activity),
	but when flat-out scrolling starts, decrease the refresh period,
	so that its every 10th screenful after a little while. This has
	no noticeable visible effect, since the scrolling text is
	absolutely unintelligible anyway, but will improve the scroll
	feel when doing just one or two screenfulls, ie in an ls -l.

    3.	Surrounded  the code which uses XCopyArea with &num;ifdef's
	I have never seen this help performance, but I think that there
	may be some video-systems which benefit from this, particularly
	in a full-screen editor or slow scrolling type of setting.

    4.	Performance in flat out scrolling, text only, on a sparc-10,
	displaying rxvt on an HDS x-terminal:
	  nation@snoopy&num; /usr/bin/time rxvt -e cat k
		6.1 real         3.1 user         2.5 sys
	  nation@snoopy&num; /usr/bin/time xterm -e cat k
		40.8 real         4.6 user         3.4 sys

1.91 to 1.92

    1.	Added greek-keyboard support patches.

1.85 to 1.91

    1.	assorted minor patches

1.82 to 1.85

    1.	Fixed ESC c handling.

    2.	Fixed minor selection handling bug.

1.81 to 1.82

    1.	Fixed slow refresh during selection process

    2.	Fixed problem of not correctly clearing selections of 1 character.

1.80 to 1.81

    1.	Fixed some scrolling problems, problems with partially obscured
	windows.

    2.	Added some neat debugging capability in debug.c

    3.	Patched up rclock.

1.74 to 1.80

    1.	Fixed core dump from selecting past the bottom of the screen

    2.	Fixed a few escape sequences, per the vttest program

    3.	Broke and fixed handling of moved/resize/new-font handling.

    4.	Still can't change tab stops correctly.

    5.	Ran vt-100 test suite. Added capability to change tab stops
	and enter reverse video, and to switch from 80 to 132
	columns and back. Fixed a seg-fault in scroll().

1.70 to 1.74

    1.	Fixed cursor drawing errors.

    2.	Improved smoothness of scroll-back operations.

    3.	Applied some SVR4 patches.

    4.	Applied HPUX patches, and a few cursor display patches

    5.	Fixed up font-changing routines a bit.

    6.	Fixed a scrolling problem for windows taller than the scroll-back
	buffer.

1.6 to 1.7

    1.	Fixed the problem with random rendition flags in the scroll
	back buffer

    2.	Fiddled with re-drawing on the scroll-bar, and with
	how often refreshing occurs.

    3.	Incorporated some AIX patches.

    4.	Included &num;ifdef'd changes to support vt100 printer.

    5.	Fixed send_string routine, so that it doesn't loose
	data.

    6.	Complete re-write of screen.c

1.5 to 1.6

    1.	Removed all use of a seperate bold font. Now uses
	over-striking exclusively.

    2.	Added some more optimizations for drawing speed when
	the window is re-sized or moved.

    3.	Implemented speed ups in screen.c

1.47 to 1.48

    1.	Cleaned up re-drawing on expose events, so rxvt only
	re-draws the newly exposed parts of the screen.

    2.	Fixed backspace, which must have broken in 1.45.

    3.	Added command line option of iconic startup.

1.45 to 1.47

    1.	Incorporated improved bsd utmp handling from
        dperry@ringer.cs.utsa.edu (David Perry)

    2.	Fixed a very minor bug where the solid-cursor can leave a
    	a bit of a ghost when you resize the window. Its stupid,
	but it always bothered me.

1.4 to 1.45

    1.	Fixed scrolling error when switching to larger fonts

    2.	Fixed utmp-entry removal for SYSV type systems.

    3.	Icorportated patches for FreeBSD and svr4

<sect>Ex README file, from rxvt<p>

Rxvt is a heavily modified version of xvt, many modifications were made by
Rob Nation, <tt/nation@rocket.sanders.lockheed.com/, to make it a little more
compact and to add a few simple features.

This is the README that came with xvt-2.0. It is included mainly to give
the original author credit for his work.

		   <tt/README file for xvt 2.0/

Xvt is an X terminal-emulator that is designed to be more or less
compatible with xterm while using much less swap space.  It is mainly
intended for use at sites which use large numbers of X terminals but
may also be useful on single workstations that are short of memory.  On
a SPARCstation running SunOS4, an initially invoked xvt uses about 1/3
megabyte of swap while xterm uses about 1.3 megabytes (obtained by
running pstat rather than ps which seems to give unreliable size
figures on SPARCs).  The main way that xvt achieves its small size is
by avoiding the use of the X toolkit.

The current version of xvt is our default X terminal emulator and has
been used for eight months by students, computing support staff and
service users and so is fairly well tested.

		   <tt/Supported architectures/

One of the major changes between xvt-1.0 and 2.0 is that xvt-2.0 is
much more portable.  The released version should build and run on all
the architectures I have access to, namely: SunOS4, SunOS5, HP-UX 8.0,
HP-UX 9.0, DEC OSF/1 V1.2 and ULTRIX 3.X.  In addition, the teletype
initialisation code has been completely restructured to make it more
portable.  Almost all the system dependent code is in the single source
file, ttyinit.c.

                   <tt/Xterm features not supported/

 - Tektronix 4014 emulation

 - Pop-up menus.  The only one of xterm's popup menu commands that is
   provided in xvt is displaying and hiding of the scrollbar and this
   is done simply by pressing any mouse key in the window with the
   CONTROL key held down.

 - Toolkit style configurability.  In particular, xvt does not allow
   the user to remap the mouse or keyboard keys.

                   <tt/Major xterm features that are supported/

 - VT100 emulation.  Most of the main escape sequences are supported -
   certainly all those used by the standard screen based UNIX
   applications.

 - Lines that scroll off the top of the window are saved can be
   scrolled back with a scrollbar.

 - Text selection and insertion including double and triple click for
   words and lines.

                   <tt/Differences between xvt2.0 and xvt1.0/

 - xvt2.0 is eight bit clean and will generate and display eight bit
   characters.  The META key can be used to generate characters with
   the eighth bit set (in eight bit mode) or prefix by escape (in seven
   bit mode).

 - The teletype setup code has been rewritten to make it much more
   portable.  See the comments at the head of ttyinit.c.

 - Exposure handling has been made much more efficient so that xvt should
   now be useable with window managers that provide opaque window movement.

 - VT100 graphics characters are supported for fonts that include them.

 - There is now a -ls option to enable the use of a login shell.

 - Colored text cursors are now supported.

 - There is support for the -C (console window) option but only on
   SunOS 4.

 - Bold characters are generated by overstriking if no bold font is
   specified.

 - Function keys generate escape sequences as in xterm.

 - A number of bugs have been fixed:

   - Setting the title without a terminating ^G no longer locks up.

   - Paste followed by a keystroke will always insert in the correct
     order.

   - Pasting an uninitialised string will not cause a crash.

                   <tt/Other differences between xvt and xterm/

 - Xvt has a couple of additional enquiry escape sequences:

   <tt/ESC[7n/ - causes xvt to respond with the name of its X display in a
	    form that can be used to initialise the DISPLAY environment
	    variable.  If this is done in a user's .cshrc file it
	    provides a way to automatically update DISPLAY after an
	    rlogin.  Something like the following should work if the
	    initial <tt/^[/ in the echo command is an ESC character:
<tscreen><verb>
	    if(!($?DISPLAY)) then
		if($?term) then
		    if($term =&tilde; xterm*) then
			stty -echo &gt;/dev/tty
			echo -n '^[[7n' &gt;/dev/tty
			setenv DISPLAY `line &lt;/dev/tty`
			stty echo &gt;/dev/tty
		    endif
		endif
	    endif
</verb></tscreen> 

   <tt/ESC[8n/ - causes xvt to respond with a hex encoded copy of the server's
	    magic cookie which can be used to update a user's .Xauthority
	    file.  We have a program to do this which could be made available
	    if anyone is interested.

                   <tt/Known Bugs/

 - xvt does not know about transferring selections in installments and so
   making large selections or trying to insert large selections will
   fail.  The maximum selection size supported is server dependent but
   seems to be a little under 64k on all our servers.

 - xvt does not look in all the approved places for its X resources.
   It does, however, work correctly with resources that have been
   loaded into the server using xrdb

                   <tt/Building and installing xvt/

Xvt does not use imake but does come with a simple Makefile
configuration scheme that provides some help with getting the Makefile
right.  If you want to build xvt on one of the supported architectures
then you should uncomment the appropriate definition at the start of
the Makefile and then run `make config', which will modify other
Makefile comments to bring them into line with the chosen
architecture.

To install xvt, you should edit the MANDIR and BIN pathnames in the
Makefile and then type 'make install' as root.  When installed for
general use, xvt needs to belong to root and have the setuid flag set
so that it can make entries in the /etc/utmp file.

Thanks to all the people who have mailed bug reports, patches and
local improvements.  Some requested additions have gone into V2.0,
others perhaps should have, but were left out due to lack of time.

Please send bug reports and WIBNIs to:

John Bovey
Computing Laboratory
University of Kent at Canterbury
Canterbury
Kent
UK

email: jdb@ukc.ac.uk

<sect>TODO : what will/should be added in future releases<p>

- Add xterm log file

- Add configure ncurses find

- Add transparent mode if possible (?)

- Add support for spawning modules (like the way fvwm does).
  It should then be possible to make a standalone Tek or other graphics
  window and even some simple pop-up mouse menus that could communicate
  with rxvt, but not bloat its size.  Nice idea, but I'll never have time
  to even start, so eager volunteers would be nice.

- Add Tek support

- Add true bold/blink mode

- Add unicode support

- Add support for chineese, vietnameese and ethiopian

- Add a front-end (menus ...) + config program

- Add midnight commander support for scrollbar

- Click-and-drag doesn't work for X11 mouse report overriding

- It'd be nice to have the scrollbar move when the arrows are pressed
  and to scroll continuously.

- Speed-up screen refreshes

- Add X11 mouse highlighting mode? (NOT LIKELY)

- Fix problem with pixel-droppings left when bold has been simulated
  using an overstrike. (NOT LIKELY)

- Make cleaner scrollbar updates?

- Fix configure to detect SVR4 and to handle install properly when it is
  found to be ./install.sh

- provide a way to hook the scrollbar for private use?
  eg, for easier scrolling with a standard text editor.

</article>
