		   README file for xvt 2.1
		   -----------------------

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.

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.?.  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.

Xterm features not supported
----------------------------

 - Tektronix 4014 emulation

 - Session logging

 - 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.

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.

Differences between xvt2.1 and xvt2.0
-------------------------------------

 - Fix to make xvt terminate correctly when the shell is exit under
   Solaris 2.3.

 - LINES and COLUMNS environment variables added under HP/UX.

 - Minor changes to the Makefile.

 - Text selection now works with the Caps Lock key down.

 - Fixed a bug that caused the occasional loss of typed characters.

 - Fixed a bug which caused xvt to occasionally start up with its tty
   width set one or two columns too wide.

 - The standard vt100 screen clear escape sequences now save the
   cleared lines to the list of saved scrolled lines.

 - Minor changes to support Linux.

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 prefixed 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.

Other differences between xvt and xterm
---------------------------------------

 - Xvt has a couple of additional enquiry escape sequences:

   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 ^[ in the echo command is an ESC character:

	    if(!($?DISPLAY)) then
		if($?term) then
		    if($term =~ xterm*) then
			stty -echo >/dev/tty
			echo -n '^[[7n' >/dev/tty
			setenv DISPLAY `line </dev/tty`
			stty echo >/dev/tty
		    endif
		endif
	    endif

   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.

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

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
