The following is a list of things that have changed between elvis 1.7 and 1.8


* The version number was changed from 1.7 to 1.8c-beta.

* Many bugs were fixed; see "bugs17" for a complete list (fixed & unfixed).
  The most notable are:

	* Most screen update bugs are fixed.  Most of ones that weren't fixed
	  can be avoided by ":set nooptimize".  (I'm *REALLY* looking forward
	  to rewriting the screen update code from scratch for 2.0.)

	* If you never give a :color command, then elvis will leave the
	  screen colors unchanged, even when you exit.  I know 1.7 claimed
	  to do this, but in 1.8 it really works!  Except under some versions
	  of Coherent, in which *ANY* character attribute change clobbers the
	  screen colors.

	  Also, the :color command now allows you to specify the "quit" colors,
	  just as 1.7 allowed "standout", etc.

	  Note: This color changing stuff is known to be flaky under Coherent
	  4.0.  I think it'll work under 4.2 (MWC fixed the screen quirks
	  that are responsible) but I can't say for sure since I only have 4.0.

	* A bug in the visual '@' command was fixed.  This bug can be blamed
	  for most of elvis' incompatibility with fancy macro packages.  Elvis
	  can now run the "Bouncing Ball", "Word Completion", and "Turing"
	  macros with no changes.  It still can't do "Towers of Hanoi", but
	  I'm on the trail of that one.

* New ports, most of them untested as yet.

	* OS/2: Based on Rommel's port of 1.7, this requires emx+gcc to
	  compile.

	* AIX, HPUX: Collected some hints and tips, and made a few patches
	  as suggested by various people.  Hopefully this will convert a
	  30-minute tweak session into a 10-minute tweak session for you
	  guys.

	* Linux: I'm using linux as my development platform now, so it should
	  be trouble-free.

* New feature: conditional commands.  Some commands set a conditional
  execution flag; others examine that flag and perform commands (or not)
  if the flag is set.  Conditional clauses can't be nested.

	* :if, :and, and :or -- change the conditional execution flag.
	  Each command tests for a single condition.  That condition
	  may involve ":set" options, environment variables, termcap
	  values, or constants.  Syntax is pretty much what you'd expect.

	* :then, and :else -- execute commands conditionally, based on the
	  value of the conditional execution flag.  The commands that follow
	  :then or :else, up to the end of the line, are executed or skipped.

  As an example, here's part of the .exrc on my Linux system, to work around
  the fact that Linux's console can handle color, but an xterm can't.

	if term="console"
	then color yellow on blue | color quit white on blue

  These extensions can be disabled by added "-DNO_IF" to CFLAGS.

* New feature: File initialization script.  If your home directory contains
  a file named ".exfilerc" (or "EXFILE.RC" for non-UNIX systems), its contents
  will be interpretted as a series of ex commands after each file is loaded.
  This is handy, especially in conjunction with the :if command.  You can do
  things such as...

	if newfile | and *.c
	then %!mkskel %

* New feature: "learn mode".  Elvis can record keystokes into a cut buffer.
  This is handy when you want to interactively define a macro.  To record
  keystokes into the "a buffer, begin by typing [a.  Then type any other
  keystrokes -- they'll be executed as normal, plus they'll be stored in
  a temporary buffer.  Typing ]a will stop recording and copy the keystrokes
  into the cut buffer.  You can replay the keystrokes by typing @a.
