
------------------------------------------------------------------------
C color edit for elvis1.8pl3
Version 0.2g [ALPHA] for Linux  (Sun OS and Solaris work as well).


Okay!  Here we go...

Simply stated, "color elvis" is a patch for elvis1.8pl3 that allows optional 
syntax colored editing much like that of Borland's C/C++ (version 2.0 - 3.1) 
for DOS.  If you are unfamiliar with Borland's C/C++, a "screen snap shot" 
has been provided to give you an idea of what this patch is like.  Just 
'cat' the file.

As of January 21st, 1995, color elvis now supports limited Fortran color
syntax highlighting of keywords, logics, and intrinsics.  

I shouldn't really need to state this but, color elvis only "works" on
"systems" that support ANSI/VT100 color escape sequences.  For Linux this
means virtual consoles and color xterms.  Other systems may vary.

PLEASE NOTE:  This is an ALPHA version.  There are features that do not
	work!  The most noticeable is multiline color (or lack there of).
	However ... don't be alarmed, all of the editing features of elvis
	still work like they did before.  The only thing you will
	notice is a visual eye sore.  :-)


This .tar.gz file contains the following files:
	color-elvis-0.2g.patch		- The patch for elvis1.8pl3.
	README.Color			- This file.
	propaganda			- Screen snap shot C file.
	xterm.cursor.patch		- Color xterm fix (if needed).

TO USE:
	First, you need to find the source for elvis1.8pl3 and patch it
	with the enclosed patch.  One site that I know has elvis1.8pl3
	is ftp.cdrom.com:/.4/linux/slackware_source/a/bin/elvis1.8pl3.tar.gz.

	Next you will need to copy Makefile.mix to Makefile and uncomment
	the system (Linux) you will be compiling for.

	Okay, if all went well, you should be able to just type 'make'.

	Copy exrc.color to your $HOME directory and rename it to
	.exrc.color.  (Look for samples in the samples directory)

	Place this binary whereever you feel is best.

	Run this binary just like normal on a C/C++ file.

	Once inside the file, type ":set coloredit" or ":set ce".
	This is assuming ofcourse that you are not using
	the "autodetect" feature.

	You should now have color editing!

PROBLEM WITH COLOR XTERM:
	Symptom:	Colored text changes to white after the cursor 
			moves over it.

	Culprit:	Old versions of color xterm.

	Problem:	The old versions of color xterm contained a "bug"
			in which the text color was not restored after the
			cursor moved off the location.

	Solution:	Find a new color xterm OR
			use "xterm.cursor.patch" which is included with
			this tar file.  Note: this patch was designed to
			work with the color_xterm found on tsx-11.mit.edu.
			I did not write it...


========================================================================
Quick feature list (for those who don't like to read):
------------------------------------------------------------------------
	[ 100% ]  Autodetect feature.
	[  50% ]  Background color support.
	[ 100% ]  Built-in ":set" toggle command.
		  Both ":set coloredit" and ":set autodetect" available.
	[  99% ]  Command line override option '-o'.  (Soon to go...)
	[ ---% ]  Color selection list (ease color selection).
		  This would be an separate external program.
	[  25% ]  Multiline anything (mainly comments).
	[  99% ]  Number support (decimal, hex, octal).
	[ ---% ]  Regular expression syntax definitions to allow color
		  editing of any language.
	[ 100% ]  Selection color support.
	[ ---% ]  Selection color support, user definable color.
	[ 100% ]  Strings/char support.

	[ ---% ]  Modify "less" so it supports 8-bit input & color.
	          Provide built-in parser to make reading C/C++
	          files easier.

------------------------------------------------------------------------
Key:
	  0% - Not implemented (known problem, haven't fixed).
	 25% - Just started.  Don't ask.
	 50% - Sorta works...not done.
	 90% - Mostly works.
	 99% - I believe it works.  I would like "field" testing.
	100% - No reported bugs/features.

	---% - Still in idea stage.  I would like feedback.
========================================================================


=============
History Log:
=============

-------------
Version 0.2g:  
-------------
	- Oops...I broke ":set noce" screen update...fixed now. :)
	  It was suppose to be '&', not '&='.
	- Added ":set autodetect" feature.  This disables the file autodetect
	  feature.  The quick command is ":set (no)ad".
	- Added Fortran support with autodetect capabilities.  

-------------
Version 0.2f:  
-------------
	- Fixed color xterm problems where background colors were not
	  properly being shown through.  (Allowed for "transparent"
	  colors.)
	- Improved is_keyword() to help increase the speed of keyword
	  searches.  This still needs improvement...
	- Fixed the "no color" bug resulting from the EXINIT variable 
	  being set.
	- Add "ASNI-ish" terminal detection to insure color editing
	  is "impossible" on terminals that can not support color.

-------------
Version 0.2e:  1st Official Public Release - ALPHA Version
-------------
	- Fix for ":e": "not autodetecting suffix properly" bug.
	- Fix for multiply file edit: "color always on once activated"
	  bug.

-------------
Version 0.2d:
-------------
	- Hugh revamping of the color code section to allow easier selection
	  of colors.
	- Minimal foreground & background support for text, not screen.

-------------
Version 0.2c:
-------------
	- Fixed the "highlight-control character" bug.
	- Finished color selection during "highlighting".  Now the screen
	  doesn't appear in a bunch of funky colors.
	  [ Use 'v' while in vi to test it out! ]

-------------
Version 0.2b:
-------------
	- Fixed bug that wouldn't read .exrc.color file causing files
	  to not have color.	  

	- Improved number support.  Supports L/U on hex, octal, decimal.
	  Also fixed octal bug.  Allowed number 8 as octal, ouch.
	- Improved decimal number support, allows exponential numbers now.
	  Supports L/F on float numbers too.
	- Actually number support should be complete now for all types of
	  numbers!  If not, I'm sure you'll let me know.

	- Added command line option '-o' to force color editing mode on all
	  files.  This disables "autodetect" (see next).
	- Experimental "autodetect" feature which determines color on/off
	  based on the suffix of the file is now included.  See the
	  .exrc.color file for an example.

	- Added char string color support to the .exrc.color file.

	- Improved/fixed/add to preprocessor parsing.  Now it is possible
	  to place comments on the same line and have it parse correctly.


-------------
Version 0.2a:
-------------
	- YES!  Supports color WHILE editing.  BIG Improvement!
	- Supports both strings and char strings....however uses same color
	  as string.  I will add the option to .exrc.color soon.
	  This code is now half the original size too...but you won't
	  notice the speed change unless you are on a really slow machine.
	- Fixed the path problem with .exrc.color.
	  Now you need to have a copy of .exrc.color in your home directory.
	  i.e. I broke the "current directory" and went for "home directory".
	- Added ":set" command.  You can toggle between color and no color now:

		":set coloredit"    OR  ":set ce"    to turn it on
		":set nocoloredit"  OR  ":set noce"  to turn it off

	  The editor STARTS in nocoloredit!
	  I've had strange results from this, please try it for yourself.

	- Anded minimal number support.  Does not support fractionals yet.
	  Does detect some errors.
	- Added KEYWORD support for both C/C++.  Optimization still required
	  in is_keyword().
	- Increased speed of alpha/keyword printing.


-------------
Version 0.1a:
-------------
	- Reads in from external color options file
	  BUG: .exrc.color file must be located in current working directory.
	- Supports color of single line C/C++ comments
	- Supports preprocessor options (but poorly!)
	- Supports punctuation
	- Supports strings but not chars (yet)



-----------------------------------------------------------------------------

My thanks goes out to the following people.  Without there help, color 
elvis would be at least three patches less.

(In alphabetical order)

Additional code
-------------------------
Andreas Bagge		- Fortran support


Testing and bug reports
-------------------------
Andreas Bagge
Dean Luick
Richard A. Nuttle
John Selbie
Aaron Sims
Joel Webber
Xiaojun Zhu

Successful ports to non-linux machines
--------------------------------------
Sun IPX running SunOS 4.1.3		(by Dean Luick)
Sun Sparc 5 and Sparc Center 1000/2000  (me)





By Brian Kral
gt5462a@prism.gatech.edu

