Fri Jun 14 08:56:28 1991  fox

	* symbol.c: When looking up a symbol definition, should look
	  at globals AFTER locals.

	* symbol.c: Bug in defining a local variable when a global of
	  the same name exists. Didnt create the local one.
	  
	* crunch: Generated code for extern declarations when it shouldnt
	  have.

	* builtin.c, debug.c, list.h: Keep track of the level of
	  symbol tables for each nested macro invocation so that the
	  debugger can find them.

	* lisp.c: (nth, car): Allow us to extract a NULL entry from a list.

	* debug.c, debug.cr: Stack trace + var list supported plus
	  a bug fix to the stack list function which omitted the bottom
	  stack frame.

	* mouse.c: (translate_pos) Out by one error detecting bottom edge
	  of window.

	* keywd.c: (message) now allows indefinite number of args.
	
	* crisp.cr, select.cr, mouse.cr: Now contains mouse support. 
	  Automatically enabled if running 'xcr'.

	* kbd.c: (copy_keyboard) When copying keyboard assignments, copy
	  all keys which are assigned to a macro -- not just the first.

	* tty.c: If running in monochrome mode, then the color tests should
	  test against the background color as well, otherwise we end up
	  in reverse video if the background color is anything other than
	  black.

	* x11/*.c: If we have a region hilighted and the cursor color
	  is the same as the background color for the cursor sitting on a
	  space, then make the space show up. Otherwise we can't see it.

Thu Jun 13 07:58:53 1991  fox

	* xlib.c: Line graphic characters in a window need the correct
	  attribute set otherwise cursor disappears on them.

	* search.c: (re_search) bug whereby searching on a string could
	  end up ignoring regexp characters. Bug exposed in the tags macro
	  failing to find the file it wanted.

	* anchor.c: write_block() shouldn't prompt user after printing file
	  if under a windowing system.

	* misc.cr: Print macro aborts if no filename specified.

	* kbd.c, alt.h: Added button motion keystrokes.

	* window.c: set_window -- make sure we set the WFHARD flag for old
	  and new windows so that window title gets hilighted properly.

	* keywd.c: inq_top_left() 3rd param (win) was being used as an
	  lval rather than an rval.
	  
	* mouse.c: translate_pos() primitive now works for translating
	  (x,y) co-ordinates on screen to window/buffer information.
 
Wed Jun 12 08:43:21 1991  fox

	* accum.c: Don't panic if we want a string value in accumulator
	  but we dont have one. (Panic caused when command line history
	  aborted).

	* crisp.cr: Dont refresh screen until .crinit file finished being
	  read to avoid screen being redrawn twice if user has different
	  color scheme.
	  
	* echo.c: Make sure the space before the Line: field on the 
	  status line is filled in with the right color.
	  
	* line.c: If binary_chunk_size <= 0 dont read in binary files.

	* echo.c, dos.c, x11/xlib.c: OS/2 now supports the virtual/hard
	  cursor sizes. X11 uses different colored cursors to control
	  the cursor 'size'.

	* zoom.cr: Now uses CURRENT window info when zooming if buffer
	  in multiple windows.

	* crisp.cr: When user changes directory, we now set the window title
	  to the current path.

	* display.c, echo.c: When window is resized, the status prompt is
	  redrawn. Unfortunately only in the same color.

	* alt.h, kbd.c: Added key definitions for the button events.

	* crwin.c: Now erases and clears garbage from bottom two lines of
	  window when resized and also the column past ncol. I.e. on a
	  resize, the window is clean.
	  
	  Now supports the insertCursorColor and overtypeCursorColor
	  resource settings.

Tue Jun 11 12:56:10 1991  fox

	* file.c: write_buffer() now checks the modification time of
	  file before writing it away to and re-reads the file permissions
	  if they have been changed so that we inherit the new mode.

	* scrblank.cr: We now blank after the first idle time period
	  if no character is typed -- since inq_idle_time() returns zero
	  in this case.

	* mac1.c: time() primitive now returns number of seconds since
	  base time period.
	  
	* autosave.cr, crisp.cr: Now implements the rebackup mechanism.

	* display.c: Dont display shadow on bottom line of popup
	  if window extends to the bottom line of screen.
	  
	  Make sure we reset the definition of 'blanks' and erase the
	  bottom line after changing colors.

	* echo.c: Rewrote command line input code. Handles multi-width
	  bytes better when scrolling but still not perfect.

Mon Jun 10 09:13:34 1991  fox

	*********** VARIOUS **************
	  Now support for X windows release 3 & 4. Not tested in many
	  environments, and may not work on a monochrome screen. These
	  changes involved numerous changes to the code to support the
	  alternative event based strategy of X. Also many changes to
	  the echo line support so that X can display it properly.
	  
	  Please consult documentation for information on X support.

	* echo.c: set_echo_line() -- dont update display if display not
	  enabled.

Wed Jun  5 09:07:38 1991  fox

	* anchor.c: Writing a region tells you if it was successful.

Tue Jun  4 11:21:55 1991  fox

	* echo.c: Updating line/col info now updates the pscreen[] array.
	  Eventually we want echo.c to use the code in display.c rather than
	  duplicating it, and it makes the X11 support easier.

Mon Jun  3 08:43:07 1991  fox

	* xcrisp.cr, rde.cr, crisp.cr, misc.cr: The print
	  macro is now defined. Please refer to user guide (.crinit file)
	  section to see how to set this up.

	* crisp.cr, kbd.c: Added <PrtSc> key sequence which can now
	  be used to print the current buffer.

	* key.cr: New macro to insert raw keystroke sequences or get help
	  on a keystroke.

	* mac1.c: read_char(tmo, raw) now works if timeout and raw flag
	  both specified.

	* kbd.c, help/prim.mm, keywd.c: key_to_int() now 
	  accepts raw keystrokes. 

Sat Jun  1 11:01:37 1991  fox

	* tty/isc.cr: Add support for <Alt-minus> key.

Fri May 31 08:09:57 1991  fox

	* window.c: inq_window_size() was returning wrong width of window.

	* tty/xcrisp.cr, window.cr, crisp.cr : Implemented goto_left_edge() 
	  and goto_right_edge() of window. Available via <Alt-Home> and
	  <Alt-End>

	* utils/.Xdefaults, tty/xcrisp.cr: Now got <Alt-minus> 
	  and <Ctrl-minus> defined for xcrisp.

	* edit_file, and read_file now cause global errno to be set
	  if file cannot be opened.

	* region.c: paste() now returns a value indicating success.

	* file.c: output_file() now returns <= zero for error, or >0 for
	  success.

	* extra.cr: pipereg macro now works using entire buffer if no
	  region is set.

	* symbol.c: Create a global integer variable called 'errno' which
	  we can set when system calls fail.
	
	* keywd.c, src/crunch/brief.cr: 
	  Following functions are no longer builtins, but are available
	  in brief.cr (available via autoload in crisp.cr):
		inq_brief_level() => Now a macro in brief.cr
		inq_environment() => getenv()
		dos()		  => shell()
		del()		  => remove()

	* file.c, keywd.c:
	  New primitive -- access().

Thu May 30 08:20:40 1991  fox

	* search.cr: Added i_search() macro.

	* m_buf.c: restore_position() could sometimes screw up screen.

	* write_buffer(): Now returns a success code.

	* crunch: Compiler bug if we have a null clause in an if-then-else
	  statement.

	* wp.cr: Added a center() macro to allow centering of lines.

	* acorn.cr, xcrisp.cr, utils/.Xdefaults, utils/rdetool.tar.Z: 
	  ESC[MF... is ambiguous with the mouse key so we change these 
	  to ESC[mF...

	* search.cr/crisp.cr: 
	  <Ctrl-F6>/<Alt-F6>/<Shift-F6> now BRIEF compatible.
	  <Ctrl-F5>/<Alt-F5>/<Shift-F5> now BRIEF compatible.

	* config.c: Re-ordered macro table to speed startup.

	* kbd.c: (keyboard_typeables) Now accepts characters in 
	  range 1..255 as typeable characters.

	* misc.cr: Added delete_curr_buffer() macro.

	* crisp.cr: 
	  <Alt-minus> now edits previous alpha buffer.
	  <Ctrl-minus> now deletes current buffer.
	  <Ctrl-W> is the backup toggle.

	* objects.cr: Make <Ctrl-G> work on .cb files.

	* kbd.c: Pushing back a character increased the buffer size on
	  the wrong condition.

	* src/crunch/rde.cr: Make Alt-a and Alt-A the same keysequence.
	  Make keypad-del work properly.

	* utils/rdetool.tar.Z: Fixed some of the function key definitions
	  to work better. Shift-Fn keys work and the Keypad-Del works.
	  Now supports Alt-Minus, and Ctrl-Minus keystrokes.

	* line.c: Vast speed improvement when deleting a large block of
	  text which is not very near the beginning of the buffer.
	  
	* undo.c: Some small performance increases.

Wed May 29 10:35:43 1991  fox

	* help/prim/* => help/prim.mm: New primitives documentation
	  in nroff/troff -ms and -mm format.
	  
	* src/crunch/help.cr: Modify explain macro to use the new
	  primitives file format.

	* ninfo.c: Now supports macro argument substitution.

	* region.c: Fixed bug when non-inc marker starts or ends at
	  beginning of line. Bug introduced when map.c was rewritten.

	* wp.cr: Formatting paragraphs now understands to ignore
	  lines which start with '.' in text files. (These are nroff
	  commands).

Tue May 28 10:11:22 1991  fox

	* ninfo.c: Various other bug fixes made.

	* zoom.cr: Dont let user unzoom window if window changed size.

	* ninfo.c: Now supports macro definitions and expansions.
	  Macro expansion does not support arguments ($1, $2, etc).

	* machine.h: Define machine types as 1/0 because its easier
	  than commenting/uncommenting.
	  
	* mac1.c, keywd.c: (if <string-expr>) now valid.

	* display.c: Fix bug whereby editing files with non-printable
	  characters in file names screws up display. Bug introduced
	  with the character map code.

	* wild.c: Fixed bug in handling '?' in wildcards.

	* dislpay.c: Slight speed up to vteeol().
	  Also fixed code which showed up a bug in on the Sun C compiler
	  when code was optimised. Probably true of other compilers as
	  well, but bug was to do with unsigned/int conversion rules.

Mon May 27 14:23:22 1991  fox

	* search.c: Bug in search.c when matching at beginning of lines.
	
Thu May 23 12:10:17 1991  fox

	* remember.cr: New macro to allow keystroke macros to be
	  saved or re-executed rather than being limited to just the
	  last macro defined. Can now also load in keystroke macros.

	* playback.c: Removed limitation on number of keystroke macros
	  stored. inq_keystroke_macro() implemented.

	* m_msg.c: Negative field widths were out by one place.

	* playback.c: remember() primitive returns buffer ID of
	  buffer containing macro list.

	* machine.h: All suns now have WANT_GETCWD defined. The BSD
	  getcwd() was forking a /bin/pwd and causing problems when
	  the child process died if a shell-buffer was in existance.
	  HAVE_WAITPID option now available for SysV compliant systems
	  supporting the waitpid function call.
	
	* def.h: Now includes <sys/wait.h> if HAVE_WAITPID defined.      

	* crunch: More memory leaks filled in. I think thats all
	  of them now.
	  
	* llist/*: Make sure chkalloc.h is included by all files
	  so that its easier to find memory leaks.

	* refstr.c: Some tweaks to allow it to handle non-string oriented
	  objects. This is becoming more like GNUs obstack stuff (I think).

Wed May 22 09:26:31 1991  fox

	* display.c: Avoid core-dump if user resizes window whilst
	  screen blank in effect.

	* debug.c, src/crunch/debug.cr: Implemented 'vars()' macro
	  which displays values of all global variables. A demo
	  of what the debugger will be able to eventually do.

	* crunch: Various memory leaks filled in.

	* Various: some tidy ups as a result of lint.

	* regexp.c: abc* in Unix syntax mode was wrong precedence,
	  as if user had done \(abc\)* rather than ab\(c\)*.

Tue May 21 10:14:40 1991  fox

	* hpcalc.cr: Fixed bug introduced when floating point math
	  functions added which stopped the constant '1' being pushed
	  on the stack.

	* undo.c, line.c, search.c: Translate now operates faster
	  when replacing with a string less than or equal in size to
	  old string and makes undo file smaller by using the REPLACE
	  undo primitive.

	* search.c: Now supports 'ed' compatable '&' in replacement
	  strings. (Means insert entire matched string).

	* crisp.cr: Added awk-like sub() and gsub() macros based
	  on the new re_translate() primitive.

	* search.c: implemented re_translate for strings. Removed
	  implementation limit on size of replacement string when
	  expanded with the \n stuff.

	* utils/newfont.info: A line drawing character font for
	  rdetool for use with the rdetool utility. See the config
	  guide for more info and this file.

	* src/crunch/tty/rde.cr: Added 'nf' option to support the newfont
	  file. Refer to utils/newfont for more information.

	* search.c: Redone translate code to fix number of bugs and
	  make code more readable! Undoing a translate now leaves cursor
	  where it started. undoing from interactive mode a multi-line
	  replacement works properly.
	  
	* undo.c: New undo type for translate/undo option.

	* search.cr, extra.cr, crisp.cr: Now have a translate backwards
	  macro available via <Ctrl-A><Ctrl-T>.

Mon May 20 08:02:17 1991  fox

	* wp.cr: When formatting a block of text, the right hand margin is
	  obeyed for non-C files. For C files, an indented block has
	  a builtin margin of 40 characters from the left margin.

	* restore.cr: Now saves and restores bookmarks on a full state
	  save.

	* bookmark.c: Removed limitation on the number of bookmarks which 
	  can be set. Added bookmark_list() primitive so we know what ones
	  are set.
	  
	* mac1.c: inq_names() primitive now takes optional fourth parameter
	  giving buffer ID we are inquiring about.
	  
	* history.cr: Now supports a bookmark popup window if you hit
	  <TAB> at 'Goto bookmark:' prompt.

	* crunch: Optimised some spurious levels of parenthesis in generated
	  code making performance macros about 10% faster, and generating
	  smaller code into the bargain.

	* list.h: BUILTIN structure optimised a little.
	
	* builtin.c: Some performance optimisations (small ones).

	* abbrev.cr: 'exp' is a reserved word (its a builtin function).
	  This was causing the abbrev macro to fail because it was
	  using 'exp' as a local variable.

Sat May 18 15:23:27 1991  fox

	* display.c: Optimisation when beyond end of physical line -- just
	  erase to end of window.

	* display.c: Accidentally caused a color map problem.

Fri May 17 07:55:46 1991  fox

	* ttyio.c, kbdmap.c, spawn.c: Now understands the escape
	  sequences for entering and exiting graphics mode. Gives much
	  better performance when drawing DEC style line drawing.

	* misc.cr: <Alt-G> (goto__line). If you type |nn then we go to
	  column nn instead of line nn.

	* src/crunch/tty/*.cr: Removed all '??' sequences and use
	  the NULL value instead.

	* kbd.c: Fixed bug in set_term_keyboard() where if we re-use
	  an escape sequence it didn't override a previous definition.

	* tty/acorn.cr: New macro for handling Acorn xterms.
	
	* tty/sun.cr: Added 'type3' macro for the old Sun-3 keyboard.

Thu May 16 08:13:34 1991  fox

	* utils/termcap: Turned off alternate screen buffer for
	  xterm entry -- I really hate that annoying feature.
	  
	* tty.c: ttmove() -- bug when running under Xterm or DEC
	  terminal with autowrap set. If we try and print a '\n' to go down
	  one line and we might be sitting in column 80 of
	  the previous line (because DEC are so bloody clever). We ended
	  up with a screwed up display. Could only happen under a
	  strange circumstance, which I managed to recreate.

	* display.c: Optimise color change when on a mono screen
	  (dont try and change the selected window color). More cursor
	  movement optimisations (dont do ESC[xC if we're only a few
	  characters away from the desired column).

	* display.c: Ensured that ANSI mode and character maps worked
	  properly together, and that ANSI mode relies on the
	  character map having been set up properly.

Wed May 15 08:01:40 1991  fox

	* hexmode.cr: Allows user to edit a file when viewed
	  in hex mode. Typing a hex character updates the appropriate
	  nibble. By splitting the window and looking at the window
	  both in normal and hex mode, we support full hex editing.
	  Needs to be improved by providing scroll-locking so
	  we could have side-by-side hex & ASCII, but this is only
	  a small thing to do now.

	* map.c: current_offset() various obscure bug fixes which
	  showed up in hex mode to do with having cursor on the middle
	  of a non-tab and non-single width character.

	* compile.cr, crisp.cr: Now supports a "load" entry in the
	  .crinit file.

	* compile.cr: load macro can now locate files in the BPATH.
	  Also avoids creating the compile buffer until it needs it.

	* macros.c: Added find_macro() primitive.

	* set_display_chars() primitive removed -- superceded by the
	  create_char_map() primitive.

Tue May 14 10:52:29 1991  fox

	* misc.cr: goto__line (Alt-G) now understands that '.' at the
	  end of the number means go to a character position from the
	  start of the file, and '0x' or '0X' suffix to indicate a hex
	  number.

	* undo.c, kbdmap.c, display.c, echo.c, map.c,
	  literal.cr ==> view.cr (and maybe more):
	  A major functional change has taken place with the introduction
	  of the character map feature. This involves four new primitives
	  create_char_map(), inq_char_map(), set_window_cmap(), and
	  set_buffer_cmap(). These primitives are a generalisation
	  of the previous display_mode() functionality allowing user to
	  customise the display character format. Please read the programmers
	  guide for a description of this functionality.

	* undo.c: Made undo structure smaller by not storing the last1
	  pointer. We have a new record for undoing past a write_buffer
	  mark. Undo now prompts you (by default) if you want to go over a
	  buffer mark.

	* crunch: Optimise unary +/-.
	
	* mac1.c: Fix bug in read_char() which caused the repeat macro
	  to not insert the correct character.

Mon May 13 10:31:00 1991  fox

	* line.c: Added new primitive - set_binary_size() to allow
	  user to control how binary files should be split 
	  (how many characters per line).

	* crunch/crbin.c: Speeded up the unique string searching code
	  using splay tree instead of linear list.

	* window.c: Bug in find_window() not using its passed argument.
	
	* lisp.c: append_to_list now works faster much of the time.

Sun May 12 13:42:05 1991  fox

	* region.c: cut/copy/paste now print percentage information.

	* help/user.mm: Documented .crinit file and abbreviations.
	
	* abbrev.cr: Can now load up abbrevs on startup.

	* anchor.c: write_block() primitive now takes an optional 4th 
	  parameter. If we write to a pipe then we prompt user to hit
	  Enter to continue in case the command screws up the screen.
	  4th parameter allows us to control this action.

	* getkey.c, ttyio.c: Found problems with the order the keystrokes
	  were read if you kept your finger on the playback key (F8).
	  Now works properly without any glitches.

	* math.c: Bug in handling ~ operand. Sometimes the non-existant
	  second operand caused the first operand to be treated as
	  a string.

Fri May 10 10:16:32 1991  fox

	* basic.c: next_char() and prev_char() primitives now ignore
	  line boundaries for binary files.

	* hpcalc.cr: Now supports floating point maths functions
	  (trigs, sqrt, and logs).

	* m_msg.c: %lf, %lg, %le, %t ==> %lf now supported.

	* regexp.c: Dont treat '%', '<', and '>' as regexp chars
	  in Unix syntax mode.

	* language.c: Reference to getchar() changed to get_char().
	  Could cause problems if a comment fell on a block boundary
	  whilst reading .m files.
	  
	* float.c: New file supporting ANSI C maths library.
	
	* s-*: Added environment option to allow turning off of the
	  maths library functions. (Adds about 40K to size of CRISP
	  on a sparcstation, but only 6K on Unix/386).

	* makefile: Changes to support new floating point library.

Thu May  9 08:36:52 1991  fox

	* key_list(): Modified primitive to handle local and global
	  keyboards together because its very tricky otherwise.
	  
	* help.cr: Modified to show local and global keymaps.

	* wp.cr: Autowrap now operates on a per buffer basis, rather
	  than all or nothing.

	* map.c: tab_replace(). When in overtype mode and typing in after
	  end of physical line, sometimes it merged following line on to
	  end of current line since it was checking after the end of a line.

	* abbrev.cr: Abbreviations now supported via the abbrev macro.
	  (Doesn't currently save and restore across editing sessions).

	* register.c: inq_idle_time() should handle case when NO key
	  has been pressed.

Wed May  8 09:28:36 1991  fox

	* search_list: Bug whereby sometimes search would fail.

	* abbrev.cr ==> history.cr: Abbreviations code merged into
	  the history code since thats the only place it gets called.
	  abbrev.cr is going to be used for abbreviations mode, rather
	  than command line completion.

	* getkey.c, spawn.c: Avoid idle timer going off if we were
	  stopped or spawned a shell for too long.

	* playback.c: Was playing back too many characters from stored
	  macro.

	* crisp.cr: Now handles attributes which don't have a
	  set_ and get_ function defined, so that screen blanking
	  and modelines can be added without recompiling anything.

	* modeline.cr: Code supplied by Keith Walker for modeline
	  support.

Tue May  7 09:10:49 1991  fox

	* src/crunch/*.cr: Fix bugs shown up by the patch to crunch
	  below.

	* crunch: Now matches return(expr) and return; with whether
	  function is a void function or not. Does not handle
	  typecasts yet.

	* m_buf.c: Clear message area after we change winows.
	
	* echo.c, m_msg.c: Move echo line optimisation to ewputs()
	  so it doesn't get confused and works for internal messages as
	  well.

	* utils/.Xdefaults, src/crunch/tty/{xterm,xcrisp}.cr:
	  F11 and F12 defined as the normal keystroke for the Sun keyboard.
	  Also other keystrokes on the keypad now use the Sun default.

	* file.c, line.c: When calling percentage() make sure we
	  use unsigned longs, otherwise percentage starts going negative
	  for very big files.
	  
Sun May  5 12:16:03 1991  fox

	* crunch: Now supports '-m' (make) and '-n' flags. Found a bug
	  in V.3 make which caused the makefile to blow up. Easiest
	  thing is to get crunch to do what make cannot do!

	* src/crunch/scrblank.cr: Screen blanking macro.

	* window.c: Popup windows and tiled windows both have line 0
	  meaning top line of screen. Previously, 'ty' for popups was
	  incremented.

	* display.c: Now displays marks and <Tabs> properly for borderless 
	  windows.

	* help.cr: Keyboard summary now has a sub-option to see the entire
	  raw key-list, as per v1.9.

Sat May  4 10:52:32 1991  fox

	* src/crunch/*: All macros now have a return type.
	
	* crunch: Warning added which detects whether a function is
	  declared with an implicit int type. (Doesn't understand
	  return types yet -- but this will come later).
	  
Fri May  3 12:22:04 1991  fox

	* crunch: Added -W switch to allow warnings to be turned off.

	* kbd.c: copy_keyboard primitive implemented.

	* inq_top_left(): Now supports same parameters as set_top_left().

	* set_top_left(): 4th, 5th and 6th parameters now honored. 
	  Documentation amended for new functionality.

	* bookmark.c: Now prompts before overwriting a bookmark.
	  drop_bookmark() now returns a value indicating success or
	  failure.

	* move_edge: Now takes optional second argument to indicate
	  how much to move.

	* playback.c: Generates correct crunch syntax for macros with args.

	* kbd.c: assign_to_key() need to save argv pointer in case we
	  prompt on command line.

	* spawn.c: Fixed long standing bug whereby it didnt save the
	  process exit status in the buffer, causing wait() primitive to
	  not work as documented.

	* list.h, pty.c: Removed display buffer which has not been used
	  in a very long time.

	* crisp.cr: Read .crinit file BEFORE setting terminal type.
	  This means that when CRISP starts, it only draws screen once
	  in the users preferred colors, rather than starting up
	  in the default color and then redrawing whole screen again.

	* main.c: Files read in on startup AFTER executing command line
	  macros. This affects the restore macro, so we now have a new
	  hook, '_startup_complete' which is executed after reading
	  in the files.
	  
	* restore.cr: Modified to support _startup_complete.

Thu May  2 18:10:18 1991  fox

	* crunch: Now understands the 'global' storage class and generates
	  code in the _init function to define the variable, even if its
	  defined in a local function.

	* mail.cr: Various improvements from the v1.9 mods done by
	  key@cims.com -- i.e. folder support + sending mail.

	* Various mods as a result of receiving patches for AIX v3 from
	  Warren Jones.

	* src/crunch/tty/{aix.cr,telenet.cr} renamed to aixterm.cr and
	  telenet.cr

Wed May  1 10:03:41 1991  fox

	* src/crunch/*.cr: Various changes moving things around, all in the
	  aim of implementing the '.crinit' mechanism for saving attributes
	  on a per user basis.

	* keywd.c: Added new primitive set_idle_default().
	  split() primitive now takes an optional 3rd arg to indicate
	  that where possibly arguments are to be converted into numbers.

	* file.c: The '.c', 'm' and 'default' macros are now
	  subject to removal at a later date. We use the new
	  '_extension' macro to keep things together.

	* compile.cr, crisp.cr: Removed 'cm' macro, now uses load
	  macro which is more functional.

	* playback.c: Removed restriction on maximum size of a keystroke
	  macro.
	  
	* main.c: Removed -K command line switch.

	* search.cr: search_next macro now remembers previous search
	  direction and carries on with it.

Tue Apr 30 10:19:53 1991  fox

	* mac1.c: use_tab_char() now accepts an integer argument
	  which causes it to return current setting without prompting
	  for new value.

	* Various: Now uses the select macros (FD_SET, etc) where
	  possible. Provides alternate definitions if select() is
	  not available.

	* src/crunch/tty/kermit.cr: New and untested driver.

	* src/crunch/tty/hft.cr: Added hft driver. Thanks to
	  uunet!hi1a.hut.fi!thakulin for this and the AIX support.

	* machine.h: Added support for AIX v3.1. This is NOT
	  TESTED.

	* wp.cr: Formatting a block with spaces instead of tabs for
	  indents now works properly.

	* echo.c: inq_cmd_line() now returns full text typed in from
	  command line so that command history works properly with long
	  lines.

	* file.c: Writing a new file away allowed user to keep
	  writing it away even although it hadn't been modified.

	* ansi.cr renamed to dumb.cr. (Name conflict on ansi macro).

	* src/crunch/tty/sun.cr: Add mono macro when using
	  crttool on a mono screen. (Set BTERM to sun-crttool-mono).

	* display.c: When using a non-black background the currently
	  selected title is given the colored background and not black.
	  
	  Also fixed bug possibly introduced recently which caused
	  crttool to not display colored backgrounds properly -- leaving
	  bit black wholes. (This is because ESC[2J makes screen
	  black, rather than current color).

	* setcolor.cr: Don't let user set background and normal colors to
	  be the same.

	* misc.cr: join_line() now removes trailing white space at end of
	  line so its more like vi.

	* src/crunch/*.cr: Changed all occurences of search_fwd, 
	  search_back, search_string, search_list to use the
	  re_search macro so that they are now syntax independent.
	  
	  Also translate ==> re_translate.
	  
Mon Apr 29 09:10:59 1991  fox

	* man.cr: Now allows user to abort reading manual.

	* search.cr: Now uses new re_search() and re_translate() primitives
	  thus causing Unix syntax mode selection to work.

	* search.c: Added re_search and re_translate primitives.

	* utils/keyboard.fox: Map <Shift-Tab>

	* main.c, file.c: Added support for -R readonly switch.

	* New set_term_features() primitive -- pt_clr_color_is_black.
	  This is needed when doing an ESC[K (erase to end of line)
	  erases line making it black. Some systems do it keeping the
	  current background color, e.g. Interactive. Others don't
	  e.g. Xterm.

	* ninfo.c: Avoid divide by zero when calculating number of
	  columns in table. Now understands fractional inches, e.g. 1.5i.

	* help/config.mm: Added new section describing how key codes
	  work.

	* display.c/line.c: Now optimises output on <Enter> by using
	  insert-line capability.

Sun Apr 28 12:58:46 1991  fox

	* display.c: Now makes better use of ESC[X escape sequence and some
	  optimisations when figuring out whether to delete to end of line.

	* calc.cr: 'C' now acts as a clear key.

	* map.c: Shadow no longer shows up the reverse of whats underneath.
	
Sat Apr 27 08:50:01 1991  fox

	* input_mode() -- new primitive added to allow user to
	  turn on/off flow control characters and job-control.

	* termcap.c: Allow use of BTERMCAP in preference to TERMCAP
	  environment variable.

Fri Apr 26 10:27:52 1991  fox

	* builtin.c: Optimisations and some clean up of inner
	  loop of execution engine.

	* macro_list() and command_list() primitives speeded up.

	* language.c, crunch, and others: Dont store NULL as a string
	  in compiled macro -- store as F_NULL, saves space and speeds it
	  up a bit.

	* cm.c: Print out NULL atoms with a newline.
	
Thu Apr 25 09:56:21 1991  fox

	* bookmark.c: Avoid changing windows when going to a bookmark
	  if current window contains correct buffer.

	* math.c: Now supports (list+list) => list.
	  Now supports str += int/float value.
	  
	* alt.h, kbd.c: Removed all C code references to internal magic
	  numbers for keys. They now use the #define's in alt.h. Tidied
	  alt.h up a bit so we can get ready to move the internal key
	  codes out of the way -- move from 128 onwards to 256 onwards.
	
	* lisp.c: put_nth mustn't destroy list if pointed to by someone
	  else. append_list() now handles F_LIST and F_RLIST structures
	  by stripping off the outer coating. put_nth() now handles
	  inserting lists properly into other lists by stripping off the
	  outer coating.
	  
	* perf.cr: Made macro_list test twice as long because its getting
	  too fast !. Added command_list test as well. Lengthened other
	  tests so be CAREFUL when comparing.
	  
	* cry.y, crsubs.c: Added some constant expression optimisations.

	* kbdmap.c: st_keyboard accepts integer expressions as well as
	  integer constants.

	* makefile, s-bsd, pty.c, unix.c: Moved stuff that can fail with
	  -ansi into unix.c and we now setup a $(TRADITIONAL) environment
	  variable so we dont have problems with the bad BSD header files.

	* src/crunch/tty/xcrisp.cr added shift-arrow key definitions.

	* echo.c: When calling _bad_key save the accumulator in a private
	  buffer in case REG_KEYBOARD goes off.

	* search.c: Searching for a string backwards whilst on the last
	  line of a file failed straightaway.

	* symbol.c: Sometimes a variable was being created with random
	  flag values, and an integer variable might accidentally become
	  a float because the polymorphic flag was set. Really bad news.

	* hanoi.cr: Restores current window properly when it terminates.
	
Wed Apr 24 08:29:53 1991  fox

	* ttykbd.c: DELETED and replaced by:
	  kbd.c: Keyboard code and data structures entirely rewritten
	  to fix bugs, and now allows duplicate keysequences to map
	  to the same internal code. Also now 8-bit clean -- we
	  can use internal key codes which are out of the way of
	  the ISO Latin alphabet. This should make the Icelanders
	  happy.

	* buffer.c: Deleting a buffer didn't free any local keyboards.
	  ttykbd.c: Didnt bother to increment reference counts for
	  local keyboards, so we could end up freeing the memory
	  and dying. Only applies to macros being debugged.

	* tetris.cr: Added call to keyboard_flush to avoid problems with
	  typeahead.

	* splay/sptree.h: Now keeps track of number of items in tree.
	
	* splay/splay.c: Added sp_partial_lookup() which acts like
	  sp_lookup() but tells us if we found a partial match. Wanted
	  by new keyboard driver.

	* assign_to_key(): 2nd argument now optional. 

	* region.c: Writing a region now understands a column mark.
	  As a side effect copying a region now understands it as well.

	* src/crunch/kbd/xterm.cr: Some of the keypad keys were labelled
	  wrongly.

	* read_file(): Fixed bug whereby reading a file into a buffer
	  caused us to 'lose' memory allocated for the original file
	  so that if the buffer was deleted we wouldn't free it up.

	* write_block(): Now takes an optional 3rd argument which says
	  whether to keep the hilighted region so that we can delete
	  it ourselves.

	* feature.cr: Now knows how to handle the <keys> entries on the
	  right hand side of the menu.

	* perf.cr now calls sieve.
	
	* crisp.cr, extra.cr: Moved _pipe macro to extra.cr and modified
	  its behaviour to use the currently hilighted block for
	  filtering. As requested by various people. (Use <Ctrl-A><Ctrl-P>).

Tue Apr 23 09:23:41 1991  fox

	* current_offset(): Fixed bug which stopped you from deleting
	  a lone ESC at the end of a line in non-ANSI mode.

	* compile.cr: Lint macro got stuck under SunOS.

	* compile.cr: Dont save undo info for compile buffer

	* wait() primitive: Avoid core dump if autosave goes off
	  whilst waiting for process to die.

	* wait() primitive: returns correct value if space bar hit.

	* autosave.cr: Tells you how many files it autosaved.

	* demo.cr: Demonstration macro of facilities.

	* makefile: Now knows which files need to be compiled with
	  -traditional when using GNU C. Set in the s-bsd file only.

	* register.c: Unregistering yourself whilst being called caused
	  a core dump.

	* Various: Implemented reference lists to speed up processing
	  of lists by avoiding copying.
	  
	* register.c, getkey.c: Added support for REG_KEYBOARD registered
	  macro. Implemented this so I can write a 'demo' macro, which
	  can also act as a kind of regression test suite.

Sun Apr 21 19:57:43 1991  fox

	* reference strings now take a type when created. This is a move
	  towards reference lists, and maybe other object types (e.g.
	  arrays ?)

	* put_nth(): Optimised for case where we insert into list
	  same object as is already there ==> don't create a fresh list.
	
Sat Apr 20 09:04:01 1991  fox

	* Version 2.00a released.
	
	* Added terminal support for AIX, FTP and NCSA. Thanks
	  to the contributors for these.

Fri Apr 19 12:13:42 1991  fox

	* put_nth(): Now assigns the new element to the accumulator rather
	  than the new list. This means y = xx[i] = 0 should work in crunch
	  and be a great performance increase.

	* ninfo.c: .LI now strips off quotes and some other minor
	  tweaks. 
	  
	* Various small fixes and improvements to macros to do with the
	  help files.

	* debug.c: Add CRISP_LOG environment variable to specify
	  where log file goes. I'm fed up with them littering the
	  whole disk.

Thu Apr 18 08:59:26 1991  fox

	* tty.h, unix.c: Tried to tidy up the termio/termios/sgtty mess.

	* unix.cr: Make sure stderr gets redirected.

	* misc.cr/crisp.cr: <Tab> and <Shift-Tab> now indent/unindent
	  block if hilighted.

	* help.cr and help/features/*: Started adding context sensitive help.

	* read_char(): now supports ability to read raw keystrokes.

	* accum.c: make sure we free list accumulator memory.

	* lisp.c: nth() was dying if passed a null list.
	
	* main.c: Now tells you that it can't find the 'crisp' macro
	  during startup.

	* echo.c: If environment variables wrong don't core dump if
	  buffer changed.

Wed Apr 17 08:05:24 1991  fox

	* Various: Changes for the port to the Acorn running RISC IX.

	* message/error/print/sprintf primitives now support %p
	  which means dont print anything if second hasn't elapsed.

	* region.cr: Pasting a column now keeps you informed about
	  what its doing.

	* unregister_macro(): Bug fixed when unregistering non-local
	  REG_TYPED macro. (Exposed by calc.cr).

	* Lots of changes to lisp and accumulator code to make it
	  faster and fix the bugs.

	* crunch/crbin.c & language.c: Ensure that F_LIST's always
	  have a non-zero length field. (Previously zero meant end of
	  list but this causes the code to handle it to be more
	  complicated).

Tue Apr 16 09:13:51 1991  fox

	* regress.cr: Failed regression tests fixed. Added new ones
	  to test changes to lisp.c.
	  
	* lisp.c: put_nth() fixed if putting in nested lists and other 
	  bugs.

	* new primitive make_list() added to complement quote_list().

	* nth() primitive now understands floats.

	* window.c: Dont panic if can't find window to delete.

	* select_field (select.cr): Make sure we restore window
	  after deleting popup otherwise we core dump on CRISP.
	  (Bug affect by changes done to allow deleting current window).

	* texinfo.cr: If user hits <Enter> on an item, make sure cursor
	  is at beginning of line when trying to decode it.
	  Also try and offset non-first file by the copyright notice.
	  I realy don't understand this format so it may not work properly
	  with other people's texinfo file. I used the elisp manual to
	  check it out on.
	  
	* On filename completion -- force prompt to accept the file
	  name rather than having to hit return twice.

	* More help stuff updated.
	
	* Added literal to features and extras menu.
	
Mon Apr 15 09:14:08 1991  fox

	* Changed all references to v1.11 to v2.00 as requested by
	  kew@sims.com to avoid confusion on the new release.

	* Split user guide into config & user guide. Also modified help.cr
	  to reflect this change.

	* Various changes to many files so that they become ASCII clean
	  and not treated as binary files for mkshar and subsequent
	  distribution.

	* Various changes to ensure it compiles cleanly under SunOS 4.0.x
	  and SunOS 4.1.x and compiles crunch as well.

Sun Apr 14 14:00:25 1991  fox

	* zoom.cr: Added to zoom windows and unzoom them. Thanks to
	  Mark Bilk for pointing out the usefulness of this macro.

	* delete_window() & next_window():
	  primitives now work when all windows are deleted.
	  
Sat Apr 13 13:47:42 1991  fox

	* machine.h and various: Added new entry for SunOS 4.0.x and
	  made SunOS 4.1 a separate definition in its own right 
	  (CR_SUN_OS41).
	  
	* cm.c: Made percentage work (-a switch).

Thu Apr 11 08:38:37 1991  fox

	* objects.cr: Support .C and .cc file extensions (currently
	  same as '.c' but I'm not sure this is appropriate).

	* utils/.Xdefaults: Got more control keypad keys working.
	  src/crunch/tty/xterm.cr: Modified bindings to support the above.

	* *.cr: removed key_label() macro because we can now
	  use int_to_key() and a few other changes.
	  Added kbd/xterm.cr which should be used for all X11 based
	  applications to get key labels correct.

	* int_to_key() primitive now looks up the global list variable
	  'kbd_labels' and uses the strings in there. This helps making
	  the keyboard summary info more keyboard independent without
	  unduly slowing it down, and also anyone else that calls it.

	* src/crunch/window.cr: Added set_win_label() and
	  set_icon_label() macros to change window and icon labels under
	  windowing systems. Code added based on idea and code provided by
	  rohit%dmdev@uunet.uu.net. Thanks.

	* utils/xmodmaprc: Finally got all 4 Alt keys to work under
	  xterms.

	* utils/rdetool.tar.Z: Software added care of the network.
	  A shelltool/cmdtool emulator better than suns for Xview.
	  Allows all keys to be remapped.

	* utils/xmodmaprc: Added Alt_L as a modifier. Now all four
	  <Alt> keys on the sun work with crisp from an Xterm.
	
	* src/crunch/tty/rde.cr: New terminal description supplied
	  when using rdetool.

Wed Apr 10 09:02:47 1991  fox

	* getkey.c: Removed bug whereby a multi-character function key
	  got read in the wrong order if hit exactly during an autosave.

	* line.c: Added experimental code to support hex mode.
	  THIS IS NOT TO BE USED UNLESS YOU WANT TO END UP WITH CORRUPT 
	  FILES.

	* spawn.c: Added code to handle the fact that window
	  size may have changed whilst we were stopped.

Tue Apr  9 11:11:31 1991  fox

	* shell.cr: Minor change to sh_char_mode() to cause telnet
	  and rlogin macros to work properly with <Enter>.

	* Made italicise word macro work when word not last one on
	  line.
	  
	* <Ctrl-A> pops up a window if nothing typed for .5 second.
	
	* Parameterised the features macro -- now have a select_feature()
	  macro to make it reusable by the extras() macro.

	* select_buffer() and its callers now allow user to hit
	  <Ctrl-letter> to select next entry beginning with letter
	  and pretend user hit <Enter> for fast selections.

	* playback.c: Don't core dump if user deletes the KBD-MACRO-nn
	  buffer during remember mode.

Sat Apr  6 17:56:16 1991  fox

	* buffer.c: filename() function -- missed out a +1 for
	  the null allocated at end of string. Caused 386 version to
	  blow up when filename was 'wrong' length. Made it +3 for
	  luck !

Fri Apr  5 07:44:46 1991  fox

	* utils/xmodmaprc: Made normal Fn keys generated normal Sun
	  sequences to avoid problems with Lotus 1-2-3 !

	* delete_window(): bug fixed whereby reference count of windows
	  being displayed for an attached buffer not updated if window
	  was on current buffer. (Shown by restore.cr). Had to modify
	  del_edge() as well.

	* shiftl, lshift macros can now take an argument representing
	  number of tabs stops to outdent by.

	* select.cr: Think I've finally fixed the registered macro
	  problem by using a local registered macro.

Thu Apr  4 09:03:49 1991  fox

	* ninfo.c, ninfo.cr: New C file to convert nroff manual
	  to displayable format used by ninfo macro for on-line help.

	* select.cr: Removed bug whereby registered macro still 
	  registered after selecting a list. Also tidied up the
	  sized window stuff a bit so it makes better use of screen area
	  on small screens.

	* create_buffer now watches out for duplicate buffer names and
	  tries to avoid them, using the Emacs technique (adding a unique
	  suffix).

	* macros.c, keywd.c: Allow a macro to be defined with no
	  body. crunch can generate these under certain circumstances.

	* crunch/crsubs.c: Don't output a global declaration list
	  in _init function if we only have extern's defined.

	* symbol.c: Fixed bug when redefining a list variable in same block
	  level. It was core dumping.

	* strlen can now return length of longest string in a list.

	* cry.y (crunch): Now accepts optional commas at end of
	  initializor list (a la ANSI C).

Wed Apr  3 09:51:23 1991  fox

	* wild.c: ~name where name doesn't exist no longer core dumps.

	* restore.cr: Displays progress messages when reading in
	  files. Moved screen enable back to crisp.cr. We have a
	  problem here -- as it is now set up, we draw screen twice on
	  startup unless you use default colors, but we get progress
	  messages on startup. If we do it the other way round
	  CRISP is silent until startup is complete but we only
	  get one screen redraw...needs more thinking about.
	  Maybe the restore macro ought to be implemented like
	  BRIEF but that has the screen drawn twice bug as well. :-(

	* display.c, file.c: Bugs fixed when we have silly length filenames.

	* def.h, buffer.c, file.c: Remove restriction on filename
	  lengths which could cause core dump.

	* texinfo.cr: Doubled startup speed.

	* math.c: Fixed bug whereby lst1 += lst2 didn't work properly.

	* misc.cr: Tidied up autoindent mode a bit so its a bit
	  less surprising.

	* display.c, map.c: Better ^H support in ansi mode. Screen 
	  no longer gets screwed up, but last character at right of window
	  may be screwy if its got ^H's on top of it.

	* extra.cr: edit_again() now leaves cursor on same line in
	  window. (Ctrl-A Ctrl-E).

	* keywd.c, lisp.c, m_msg.c: Added support for split primitive.
	  Reserved sscanf for later implementation.

Sun Mar 31 15:33:19 1991  fox

	* wp.cr: Formatted C comments now understand the tab size.

	* select.cr: select_list() returns straightaway if not passed a
	  list.
	  
	  <Alt-K> for some popups now gives a keyboard list.
	  
	* mail.cr: More improvements and bug fixes.

	* map.c: linep() now detects no current buffer instead of
	  core dumping.

Sat Mar 30 13:15:54 1991  fox

	* wild.c: Now accepts ~ on its own.

	* mac1.c, anchor.c: Allow ~ and wildcards in write_buffer() and
	  cd.
	  
	* Version 1.10x frozen for OS/2 and 386 versions.

	* mail.cr: Fixed some bugs in mail which were introduced
	  when mail.m was converted to mail.cr

	* tty.c: When screen is cleared we make sure we are in
	  the correct background color first.

	* echo.c: Fixed bug which shows up under OS/2 -- if you press
	  <Del> as first character of a prompt, garbage appears on
	  command line.

Fri Mar 29 15:32:17 1991  fox

	* Lots of changes to crunch to get it to pass -W3
	  level under MSC & OS/2.

	* vi.cr: Removed ^Z character (OS/2 thought it was an EOF).
	  Replaced with an escape sequences.

Thu Mar 28 07:56:59 1991  fox

	* crisp.cr, startup.cr: Display now enabled after
	  restoring screen state in case color changes and we end
	  up drawing screen twice on start up.

	* mac1.c: Dont force screen redraw if colors not changed.

	* restore.cr: Fixed bug whereby CRISP may crash if we were
	  looking at state file on exit. Now saves color information.

	* display.c, tty.c, echo.c: Modified to make sure that if
	  background color is not black then to actually use it.
	  
	* sun.cr: When running crttool, changing foreground color
	  causes background to be set to black (ESC[0m bug).

	* setcolor.cr: New macro to allow user to customise color
	  scheme.

	* Renamed << and >> for macros to indent and outdent to
	  shiftr/shiftl and rshift/lshift for easier typing.

	* Added support for '<<', '<<=', '>>', and '>>=' to
	  cr, cm, crunch. I thought I had those implemented
	  but obviously not!

	* Added get_color() primitive to allow customise color popup
	  to be written.

	* restore.cr: Now deletes BFILE buffer if not needed when restoring
	  full state. Now remembers the line and column we were on for
	  non visible buffers.
	 
Wed Mar 27 09:46:55 1991  fox

	* display.c: Avoid crashing if we get huge escape sequences.

	* select.cr, wp.cr: The documents popup works properly now.
	  select_buffer() now deregisters REG_TYPE macro for popups to
	  avoid interfering with sub-popups.

	* version.c: Split up major, minor and edit level.

	* select.cr: Fixed bug in field_display to allow field to be
	  a number or a string. (Affects the Documents popup).

	* lisp.c: Fixed bug when copying lists with sublists at the
	  end of the list, we screwed up.
	  
	* getkey.c: Conditionalize call to sys_getchar() in SELECT
	  conditional because we won't have sys_getchar() on a BSD machine.
	
	* regress.cr: Added test to detect bug fixed in lisp.c
	
Tue Mar 26 09:11:33 1991  fox

	* getkey.c: Tidied up SELECT code so that hopefully it'll work
	  on those systems with & without select() support. The idea
	  here is to support SCO Unix & Interactive V.3.2/386 versions
	  with the same binary although select() is not part of
	  the ABI.

	* crunch: Now complains about undefined symbols for each function
	  referenced in rather than just the first one.

	* list.h, pty.c, shell.cr: Added support for PF_OVERWRITE which
	  tells the pty code whether it can overwrite text in the buffer
	  or shift it along to fix the problems of typeahead in shell
	  buffers. The solution is not foolproof but should now work
	  99% of the time rather than never. Its really tricky to do this
	  right, and Emacs cannot support ANSI escape sequences so its
	  no good as reference for a good solution.

	* shell.cr: <Ctrl-P> and <Ctrl-N> always use current line if
	  type-in started somewhere else instead of sometimes putting
	  cursor in wrong place.

	* texinfo.cr: More support and bug fixes.

Mon Mar 25 11:21:59 1991  fox

	* pty.c: (wait) macro now works properly again.

	* display.c: Fixed bug in reverse video code where hilighting was
	  lost when screen starting scrolling sideways.

	* display.c: Doesn't process ANSI escape sequences and '\b'
	  if ansi mode not set even if we have half a mark on the line.

	* wp.cr: Ragged margins false until user runs margins macro. This
	ensures C comments are justified but plain text isn't.

Sun Mar 24 13:31:57 1991  fox

	* margin macro now turns on autowrap.

	* Added support for '%' to match beginning of line for BRIEF
	  compatability.

Sat Mar 23 15:38:34 1991  fox

	* cd command now supports wild cards and env variables etc.

	* misc.cr/feature.cr: Renamed noansi ==> ansi macro.
	
	* objects.cr: <Ctrl-G> on .mm files now computes the section number.

Fri Mar 22 12:20:06 1991  fox

	* display.c: Now understands Ctrl-H in ansi buffers.
	
	* misc.cr: noansi macro defined to easily turn on/off ANSI
	  interpretation of escape sequences.

	* mouse.c, xterm.cr: Added support for Xterm's mouse facility.
	  Demonstrates how to implement facility, but I've still not worked
	  out how to have a nice looking 'window manager'....

	* ttykbd.c: Added support for <Mouse> function key. This
	  is a pseudo function key but can be used if mouse generates
	  escape sequences.
	  
	* xterm.cr: Added support to recognise Xterms mouse.

Thu Mar 21 15:04:04 1991  fox

	* edit_file() can now return -1 if no such file exists.
	
	* restore.cr: doesn't restore files if they don't exist.

Wed Mar 20 13:25:16 1991  fox

	* crunch -- now prints error on undefined symbol references.
	  Also prints variables which are defined but not used.
	  (Must use 'extern' keyword for dynamic access variables).
	  
	* *.cr -- changes to support undefined symbols.
	
	* crunch: now removes output file on an error.

Tue Mar 19 09:39:49 1991  fox

	* history.cr: Doesn't beep if no command history, and leaves
	  cursor on prompt rather than aborting it.

	* More prototypes filled in to compile cleanly under GNU and OS/2.
	  Found bug in display.c which could cause garbage on screen.

Mon Mar 18 07:58:56 1991  fox

	* restore.cr: Now saves list of buffers being edited.

	* cry.y: Fixed bug in do..while loops where it screwed
	  up the break & continue level flags.

	* crisp.cr & others, m_buf.c: <Alt-P> now selects previous
	  buffer alphabetically, whilst <Ctrl-P> edits last
	  selected buffer.

	* Buffers now stored internally in alphabetical order.

	* buffer.c: When <Alt-P>/<Alt-N> performed, buffer repositioned
	  in window properly.

	* Lots of lint-style changes and minor prototype
	  fixes to clean up code and make more portable.
	  
	* echo.c: Problem if typeahead during startup. (lc_column == 0).
	
Sat Mar 16 15:52:11 1991  fox

	* mac1.c: cd() builtin knows how to change drives now for DOS & OS/2.

	* termcap.c: Allow drive designator in TERMCAP env variable
	  for DOS & OS/2 support.

	* getkey.c: Only call interval timer if timer non-zero.
	
	* dos.c: Add support for Keypad-5 key and SHIFT-KEYPAD-[2468].

	* region.c: Detected missing parameter to lnewline().

	* Version 1.10v released.

Fri Mar 15 10:10:05 1991  fox

	* hpcalc.cr: Fixed B->R loop bug.

	* decls.h, echo.c, line.c: Portability problems fixed.

Thu Mar 14 08:43:37 1991  fox

	* tetris.cr: Added help menu.

	* Fixed some more code which fails when we have no current 
	  buffer or window. Still more to fix.

	* Tidied up makefiles and removed redundant info.
	
	* foxlib/popen.[ch] Added for OS/2 support.

	* Lots of changes to make CRISP compile quietly and cleanly
	  under OS/2 with MS C5.1 + MS C6 include files. (Funny system I
	  have).

Wed Mar 13 09:22:28 1991  fox

	* tetris.cr: completed and working.

	* set_top_left(): 2nd parameter (col) now supported.

	* rand/srand: Ensure random numbers on startup.

Tue Mar 12 09:31:37 1991  fox

	* llist/mk.cmd: Updated for OS/2

	* foxlib/mk.cmd: Updated a little,

	* feature.cr, tetris.cr: Tetris macro available. (Not
	  fully completed but demonstrable at this time).

	* read_char now takes an optional argument specifying
	  time to delay waiting for key press.

	* getkey.c: getkey() now takes a time (in milliseconds)
	  to specify how long to wait for a keypress. Used
	  by read_char, sleep and wait macros for real-time
	  delays.

	* translate(): ensure that cursor position restored after
	  translating successfully.

Mon Mar 11 09:26:33 1991  fox

	* tty.c: Fixed bug in ttwinch1() where side by side windows on
	  a window resize became out of step.

	* keywd.c, mac1.c: Added new macros rand() and srand().

	* create_window now returns window ID.

	* symbol.c: On an undefined symbol error, macro returns to avoid
	  too many cascaded errors.

	* feature.cr: New and improved features menu. Help not yet
	  implemented for this version.

Sun Mar 10 11:42:05 1991  fox

	* select.cr: <Alt-D> by default gives us a screen dump.

	* man.cr: Now removes overstriking as well as underlining.
	
	* select.cr: Any popup can now be copied to the scrap with <Alt-C>
	
Sat Mar  9 18:16:15 1991  fox

	* Added support for SHIFT-KEYPAD-Up/Down/Left/Right for
	  isc terminal description.

	* Added autowrap() macro to toggle autowrap state.

Fri Mar  8 09:13:55 1991  fox

	* Documentation:: set_top_left, inq_top_left and window_color
	  modified to describe new parameters a la BRIEF v3.

	* buffer.c, keywd.c:: Removed inq_file_buffer() primitive and
	  merged into functionality of inq_buffer() for BRIEF v3 
	  compatability. Modified macros which used these.

	* help.cr & feature.cr:: made help work for features menu
	  and added '=>' to macros.

	* display.c:: vttidy() -- make sure cursor ends up on bottom
	  line of screen when we exit.

	* builtin.c & keywd.c:: sprintf() can now have indefinite 
	  argument list.
	
	* src/crunch/changes.cr:: Now implemented to keep this
	  Changes file upto date.
	  
	* file.c:: You can now edit a new file and write it away.
	  (Didn't let you before because there were no changes to it).
	  
	* features.cr:: Updated a little. Needs more work to pretty it up.
	
	* sum.cr:: Now supports copying the computed sum to the scrap.
	
	* write_block() macro can now be used to write to a pipe if
	  filename starts with a '|'.

07-Mar-91:	Version 1.10v

	* src/crunch/region.cr:: Sum macro now copies calculated sum to
	  scrap buffer.

	* Fixed bug in do..while loop code in crunch. Now works!

	* Implemented the (inq_top_left) macro.

	* delete_window() can now take a parameter.

	* when doing a read_file() we now recenter the window.

	* src/crunch/restore.cr:: Full state restore now implemented.

	
Changes since version 1.9
=========================

There have been MANY changes since v1.9. Too many for me to remember.
The ones here are the ones I have remembered to add.

1. Fixed bug in keys-string decoder which would return wrong value for
   <Alt-F1>, <Alt-F2>. We had an out by 4 error here.
2. (shell) macro didnt return process exit status.
3. (inq_buffer) no longer core-dumps CRISP if no buffer is active.
4. (attach_buffer) is valid even if no window currently selected.
   (Ignored). Added for debuggers sake.
5. Allow display.c code to run even when no buffer/window selected.
6. Added new macro (debug_support) to provide links for getting 
   debug info.
7. Fixed bug in (search_list) which caused it to stop work when
   a list is created via (put_nth).
8. Added support for MSDOS & OS/2.
9. Fixed 'bug' in undo with code not having extern ref to mktemp().
10. Made undo filename 8 chars long to conform to OS/2 1.00.
11. Fixed bug in undo code where it wouldnt delete undo file under VMS/OS/2.
12. Added support for '\' in filenames to be converted to '/'.
13. Added (send_signal) to allow sending of signals to process buffers.
14. (startup) macro now gets executed AFTER command line file have been read in.
15. Significant performance enhancements throughout the C code.
    These include the (undo) command.
16. Translate now supports a top and an undo option when being prompted.
17. Popup windows now have a configurable background shadow.
18. F1-F1 moves to next window.
19. Writing buffers at the '1 buffers not saved. Exit [ynw]' prompt
    are now backed up.
20. Multiple backup versions may be kept (BVERSION).
21. Window intersections now display nicely (a la BRIEF).
22. List variables moved up to nearly first class objects. List variables
    and expressions can be manipulated using the same rules as on the
    HP-48, e.g:
    	list	fred;
	
	fred += "harry";
	fred += 1.2;
23. Floating point support added.
24. (sprintf) modified to support floating point.
25. Help command summary now much more useful.
26. Goto line: command can be given a negative number to mean 'go to the
    old line'.
27. Number of performance enhancements to systems supporting the
    select() system call. Process buffers work much more cleanly.
28. Changed display code to allow user to customize the appearance of
    non-displayable characters. See the (literal) macro for an example.
    This can be used to show up all non-printing characters, e.g. <TAB>s
    etc.
29. When doing a translate, the response to a 'Change [Yes|No|...] ?' is
    no longer stored in the history buffer.
30. Implemented (create_tiled_window) and renamed (enable_display) to
    be compatible with BRIEF v3 => (display_windows).
31. Fixed bugs whereby CRISP core dumped if no environment variables set
    or termcap entry not a reasonable one.
32. <Alt-K> on command line now deletes to end of line.
33. Line:/Col: code improved so that fields expand when line/col is too
    big to fit, rather than running into each other.
34. Added support for <Shift-arrow-key>
35. Added support for inq_window_info(), next_window().

Macros
======
1. Added a compile_and_load macro which is assigned to <Alt-F10>.
2. Added support for .cr macro files.
3. Added restore.cr to save current editing session, etc.
4. Improved word-right (now copies vi mode).
5. Added ^A-^J => join_line macro. ^A is now an extension character.
6. Lots of bugs/improvements.
7. Crunch language now the major supported language for macros.
8. Added (restore) macro to startup.cr
9. Added new c.cr macro file to do C specific things. Currently implemented
   ANSI C <-> K&R C translator. Doesn't work properly.
18. Popup windows (created via the (tiny) macro) can be moved around the screen
   and can be shrunk/expanded.
19. The start of an HP-48SX calculator emulator is available using
   the hpcalc macro.
20. Column cut/paste now works properly.
21. New macro 'sum' can be used to add up a column of numbers highlited
    with a column marker. Ignores non-numeric fields.   
22. A performance macro added (perf) which can be used for regression testing
   and also to show relative machine performance amongst machines.
23. 'man' and 'apropos' commands added. 'man' runs under SunOS and
    Interactive Unix. 'apropos' only under SunOS at the moment.
24. Started adding texinfo support to read GNU -info-?? files. Haven't
    finished adding support for this yet.
25. Added (load) macro to compile and load .cr files.

Crunch
======
New CBRIEF language added which supports an ANSI C style language
for better macro support. The old style macro language is 
deprecated and subject to removal at a later stage.
