
This  README  gives  some  information  on  setting up CRISP on
your  system.  For  further  and more detailed information look
at  the  manual. 

PLEASE  NOTE::  IF  YOU  TRY  TO  RUN CRISP v2.01 MAKE SURE YOU
HAVE  NO  COMPILED  MACROS  FOR ANY PREVIOUS RELEASE ACCESSIBLE
TO  CRISP.  CRISP SHOULD NOT TRY TO EXECUTE THESE .cm FILES BUT
IF IT DOES YOU WILL GET FUNNY RESULTS AT BEST.

Copyright Notice
================
The  software  in  this  package  is currently at the shareware
level.  Users  of  crisp  are  requested  to make a donation so
that  I  can continue to fund the development of this software.
The  requested  donation  is  30  pounds  sterling,  or  60  US
dollars (or your local equivalent).

The  software  is  all  copyright  by Paul Fox (C) 1991, except
where  noted,  viz.  some  of  the files in the utils directory
and the splay tree directory.

Release 2.1
===========
This  section  describes  things  to  watch  out for in the 2.1
release  if  you are already using v2.0. v2.1 contains many new
features, bug fixes etc.

PLEASE  READ  THE  USER  GUIDE SECTION ON CUSTOMIZATION AND THE
.crinit  FILE.  THIS  IS  A  NEW  AND  IMPORTANT  FEATURE which
allows you to tailor the environment for crisp.

Please  read  the  user  guide for the section on abbreviations
support added as requested.

Doing  a  'make'  will  make  everything  for  you  --  cr, cm,
crunch,  ninfo,  help  and  compiled  macros.  The  macros  are
placed    in    the    crisp/macros    directory,    i.e.   not
/usr/local/crisp/macros.

V2.1  will  not  executed  v2.0 macros. If you have any private
macros   you  should  recompile  them.  (This  is  due  to  new
primitives being added).

Please  look  at alt.h if you are writing keyboard drivers, and
check the config guide for new information about keycodes.

If  you  are writing macros, please look at the re_search() and
re_translate()   primitives  which  supersede  the  search  and
translate  primitives.  This will allow you to ensure that your
own  private  macros  will continue to work irrespective of the
syntax mode.

This  version  of  CRISP  now has support for native X-windows
(using  the  Xlib  and Xt libraries only). It contains no menu
buttons  or  other  exotic  X  features.  So  far  the  only X
concession  is  the  ability  to stuff the primary buffer into
crisp  via  Shift-Button1Down.  You  can  paste but you cannot
select.  Please  watch the Changes file, the TODO list and the
documentation for more info on the X-windows support.

I  have  tried  to incorporate patches various people have sent
me  in  this  distribution  (thanks  kew),  and  have taken the
liberty  of  not incorporating them verbatim. Specifically this
means  that  those of you who hacked v2 to work and sent me the
patches  will  have  a  little  work  to  do  to get it working
again,  so  please  tell  me  what  I've done drong. My biggest
worry is the Xenix system with select() support.

Version  2.1  has  a  new mechanism for saving your preferences
which  deprecates  the  need  for  hacking  some of the macros,
e.g.  you  can  set  your  own  private  tab  stops  and  color
settings  without  editing  any  macros.  This  information  is
stored in the file .crinit in your home directory. The settable
attributes  in  this file will grow as I work out mechanisms to
get  in  there.  For  now, hopefully these options will satisfy
90% of most people.

This   version   now  supports  the  floating  point  functions
defined  by  ANSI  C  (as  documented  by  K&R). This relies on
linking  with  the  -lm  library.  This  is set up for the Unix
machines,  but  you may need to do some tinkering with non-Unix
based  operating  systems.  The  floating  point  support  adds
about  20-40K  to  the binary size (depending on architecture),
and you can optionally disable this.

This  version  supports  hex  mode  (try  typing  'view hex' or
typing 'hexmode').

Please   scan   the   Changes   file  to  see  what  other  new
features/bugs have been fixed.

Many thanks to you all.

Distribution Information
========================
If  you  receive  this  software  as a set of 'shar' files, and
you  are  not  using  Unix,  you  will  find three binary files
which  have  been uuencoded. Please do not worry about these or
flame  me.  These  files  are  only  of  use  if  you  have the
relevant     Unix     system.    If    you    do    not    have
uudecode/compress/zcat, then you will NOT need these files.

Porting Instructions
====================
If  you  are  compiling  CRISP  for your machine, there are two
basic steps to perform:

1. 	Copy one of the s-* files to the file s-machine.
	This  is  used  by  the  makefile  to  set  up  any  linker and
	compiler  specific  flags  for  your machine without you having
	to  edit  the  makefile.  I  would  advise  that  you  use your
	standard  C  compiler  rather  than  the GNU C compiler, unless
	you  know  what  you  are  doing. Under SunOS for instance, you
	would  normally  want  -traditional  unless  you have the fixed
	include files. This will save you some problems.
	   
2. 	YOU MUST EDIT machine.h. The file is fairly self-descriptive
	Simply  uncomment  the CR_xxx definition at the top of the file
	for  your  machine.  If  you  don't  have  one of the supported
	machines,  then  try  one  of  the  definitions closest to your
	machine.  Normally  you  have  something  which looks more like
	System V or like BSD.
	   
You  may  want  to  edit the definition of the ROOT variable in
def.h  if  you  are  going  to  put  CRISP  in  a  non-standard
directory.  This  isn't  strictly  necessary  but you must make
sure  that  you  set  up  the BPATH environment variable before
running.

Please  read  the  documentation  on installing and configuring
CRISP.  If  you  have  used  prior  releases  to CRISP the same
environment  variables  should  work.  If you are new to CRISP,
then  please  browse  through the crisp/utils directory and the
documentation.  Also  look  at  the  sample .login, .cshrc, and
.profile  files  to  see  what 'B' environment variables should
be set.

Documentation
=============
CRISP  comes  with some new documentation. It describes various
things  and  is  not  yet  finished.  This documentation is all
located   in   the  crisp/help  directory.  The  crisp/help/obj
directory  contains  the  formatted  output  of the manuals and
help   system   which   are   generated   by  the  makefile  in
crisp/help.

The main pieces of documentation can be found in:

  crisp/help/obj/config.hlp  -- configuration and installation info
  crisp/help/obj/prog.hlp    -- programmers guide.
  crisp/help/obj/user.hlp    -- new users help.
  
These files can be generated by going to the help directory and
typing 'make'. You'll need to compile the ninfo.c file first in
the main C directory.

Please  read  these carefully. The .hlp files are printable and
are  derived  from  the  crisp/help/*.mm  files via the ninfo.c
program.  They  >should<  be  nroff  -mm compatible but I think
the tables will come out lobsided.

If    you    have    any    problems,    look   at   the   file
crisp/help/obj/config.hlp  in  the section titled 'Problems'. I
will   try   and  keep  this  upto  date  to  describe  typical
configuration problems.

Running CRISP
=============
Please look at crisp/help/config.mm & user.mm or the formatted
output versions -- crisp/help/obj/{config,user}.hlp

========================================================================
Read this section if you are building from source.

Building Instructions
=====================
1.	Edit the machine.h file and set up the appropriate CR_ definition.
2.	Copy one of the s-* shell scripts to the script s-machine.
3.	Remove all files in lib/* and obj/*
4.	Edit the 'makefile' and set the ROOT and BINDIR environment
	variables.
5.	Go to the 'crunch' directory and modify the makefile depending
	on whether you have gnu C/bison or standard C/yacc.
6.	Create a directory called 'obj' and 'lib' in the top level
	source directory.
7.	Type 'make install'
	

Source Tree
===========
The tree is organised as follows:

.	Main directory containing makefiles and source code

crunch	New version of crunch containing an ANSI C compatible
	grammar and a special function for printing out structure
	offsets. (Structures aren't supported for the official crunch 
	language but I want them for another project I am working on).
	
doc	Miscellaneous documentation (some of it old) describing some
	of the libraries.

foxlib	Directory containing utility routines written by myself.

help	Directory where the crisp on-line help files are located.

lib	Library files for linking.

llist	Linked-list library.

obj	Directory where .o files go. Used to keep the '.' directory small
	and manageable.

old	Miscellaneous files no longer needed within crisp.

os2utils Utilities and odd batch files to help in compiling crisp.
	(OS/2 work done with MS C v5.1).
		
splay	Splay tree library. Based on an original posted on the usenet
	but modified to work comfortably with crisp.

src/crunch
	New style .cr macro files which are more compact and easier
	to read than the .m files. Needs the crunch compiler to be
	built.

utils	This directory contains an ad hoc collection of utilities
	written by myself and/or posted from Usenet. This is where you
	will find the files for remapping the keyboard for Unix V.3.2/386,
	and the configuration files for X windows.
		
vms	VMS support batch files.

CRISP Mailing List
==================
The following message was sent to be by the owner of the CRISP
mailing list under Usenet. This mailing list consists of postings
for information and bug fixes on CRISP. If you have access to usenet
you are advised to subscribe to this list. If you have problems
it is worth trying this list first before trying to contact me.
This avoids me being flooded with bug reports, etc.
----------- Start Quote ------------------------------
There is a mailing list for USERS of crisp worldwide. If you want to become
a member of the list mail to:

crisp-list-request@uunet.uu.net
or
uunet!crisp-list-request


I want to just mention the fact that the this mailing list is an 
UNMODERATED mailing list, i.e. any one can post on it. I like others would
also get a copy of the mail. This would help the poster along with the other
members with similar doubts. 

Also as a special request to all the users having problem / providing solutions,
PLEASE POST A SUMMARY of your discussion on the list. It helps a lot to those 
who are also having similar problems and are just quietly following the 
discussion.

PLEASE INCLUDE THE PLATFORM INCLUDING THE M/C, OPERATING SYSTEM, TERMINAL WHEN
POSTING FOR PROBLEMS.

Ex: SunSparc/SunOS 4.x/Openlook/Sunview

owner-crisp-list@uunet.uu.net
----------- End Quote ------------------------------
