[alt.sources] CRISP Release 1.9

fox@marlow.uucp (Paul Fox) (05/18/89)

This is just an ad hoc notice to say that I will be posting a new release
of CRISP (the editor if you dont know) in the next two or three weeks.
I've made lots of tidying ups and fixed a lot of bugs. You will
find below the ChangeLog describing all the fixes that have been made.

The only thing thats holding me up now is proof reading the documentation.
I shall be attempting to post to comp.sources.misc.

What I am requesting of you people out there is if you have any 
bugs/annoyances/features which you would like to see fixed in
the next release, and that bug/features doesnt appear below, then
please e-mail me, otherwise you wont get your favourite bug fixed :-).

Also, if any of you have any tty-*.m files which you would like incorporated
into the standard release, then I suggest posting them to me, cos I've
had to change one or two minor things, and you can either make the
changes yourself when the time comes or let me do it for you and
everyone else.

Many thanks for your patience.

Hit 'n' now if you are not interested in the list of changes.


Changes since version 1.8

1.  Added new keyword (set_buffer_modified) so that things like
    GREP buffer dont get autosaved.
2. Fixed bug in clock.c which could cause us to do an alarm
   call with a silly argument.
3. Fixed display bug caused when line number caching got screwed up.
4. Implemented redo facility to undo an undo.
5. Fixed bug in handling of regions in MK_NORMAL and MK_NONINC mode
   where it would delete/copy the wrong area of the buffer.
6. Fixed bug in region handling code which could cause a core dump if
   cursor was on the non-existant last line of a buffer and a cut/copy
   was executed.
7. Fixed bug in assign_to_key which caused a core-dump if trying to
   assign a quote-list to a non-internal key sequence.
8. Added support for SIGWINCH. Implementation may be buggy - especially
   if you make window so small that some windows disappear off screen.
   Also you shouldn't resize window whilst a macro is executing.
9. Added support for termcap 'is' and 'rs' sequences - init sequence and
   reset sequence. Why are these in termcap if we already have ti and te ?
10. CRISP.Inst now a portable Bourne-Shell script rather than csh.
11. Fixed bug in termcap code which caused it to truncate a termcap
    entry if entry was split over a buffer boundary.
12. Fixed bug which caused problems when translate pattern was '$' or '>'.
13. Borderless windows now work properly - although not as they do in
    BRIEF. BRIEF's color scheme is awful.
14. Added new primitive (set_display_chars) which allows user to
    define how control characters are displayed on screen - especially
    useful for EDT emulation (ie ^L displays as <FF>).
15. Fixed bug in undo code to stop Undone being printed twice when
    undoing scrap buffer.
16. Added real pty support in addition to pipes.
17. Added optimisation to display update code to use delete to eol if
    possible.
18. Modified makefile mechanism to use GNU style m-* and s-* files
    to make it easier for potential porters to understand what things
    might need specifying.
19. Fixed bug which causes core dump if you are in overwrite mode
    and hit <CR> and try to insert at beginning of newline.
20. Totally reorganised internal color coding scheme to support
    4-bit colors for foreground and background.
21. Fixed bug in termcap.c which interprets %+ incorrectly. (Fix supplied
    by john@hcrvax.uucp)
22. Removed (set_buffer_modified) primitive and replaced with 
    (set_buffer_flags) primitive to be more generic.    
23. Keyboard driver now can handle select(). This means that on
    systems with a real select() call, it wont poll the pty's every
    second in an attempt to simulate it. On systems that done
    support select(), it does it the old way.
24. Fixed bug in overlapping windows code. If a window behind the
    current window updates (eg becos of pty activity), then current
    window isn't obscured. This isn't foolproof at the moment, I
    believe. The window chain is sorted in order of creation, on the
    basis that newly created windows will tend to sit on top of
    older windows. If someone writes a macro to pop up a background window
    then the window order wont be updated and so obscureness will occur.
    I'll fix this when/if I manage to get around to the overlapping
    window manager.
25. Added yet another display optimisation for <Alt-D>, ie delete_line.
26. Fixed bug in file-readin code (lreadin_file) which caused crisp to
    run out of memory when a file with a line longer than CHUNK_SIZE
    (20K) was read in. Still doesn't handle lines longer than size u_int16.
27. Added new registered macro type (9) to handle segmentation violations
    and make a possibly futile attempt at saving modified buffers.
28. Modified load_macro code so that we dont look in '.' first for a macro --
    '.' must be in BPATH in order to have effect. This avoids a lot
    of excess calls to stat() on startup.
    Modified default BPATH in unix.c to take this into account.
29. Made macro table into a splay tree to try and boost startup
    performance. Also modified code in language.c to avoid doing
    two calls to stat() and fstat() for .cm files.
30. Added BRIEF-OS/2 feature to (dos) and (shell) to support a completion
    routine to be called when a sub-shell dies.
31. Fixed bug file readin code where we forgot to tell user
    what's happening when things get slow.
32. Fixed bug in (index "ABC" "") - should return 4 - not 1.
33. Fixed bug in display code which causes first part of top title line
    to come out in wrong color after an exit from a sub-shell.
34. Added full 43-line mode EGA support for Unix V.3.2.
    Plus added (ega) primitive to dynamically switch sizes.
35. Added ability to record macro sequences for keyboard macros so they
    can be modified and made into proper macros.
36. Made SysV version of crisp not clear terminal input buffer on
    startup. (Its very annoying when it takes time to start up).
37. Added BRIEF OS/2 #include <..> and #include ".." directives.
38. Fixed display bug which caused title bar of a window to not be
    cleared when window killed. (in delete_edge code when <Up> was last
    key pressed).
39. Moved tcopy_string() out of termcap.c into tty.c. This makes it
    easier for people to use their own native termcap library by not
    linking in termcap.c and by adding -ltermcap to the LIBS line in the
    Makefile.
40. Changed the hardcoded escape sequences in putpad() to use SO, SE and
    MD. Currently dont support the other attributes like italic and
    underlining.
41. Added putenv.c to foxlib directory.
42. Fixed bug in tcopy_string() which stopped you having ':' characters
    in your escape sequence definitions in the tty-*.m files. (Thanks edf).
43. Modified search_fwd and search_back macros to support BRIEF-OS/2 return
    values - ie length of matched string.
44. Added new macro primitive (re_syntax) which allows the user to
    control whether Unix or BRIEF/CRISP like regular expression syntax
    is to be used. 
45. Display of time on bottom line no longer has hardcoded escape sequences
    in it - instead it makes use of 'mb' and 'me' termcap codes.
    This means the pt_0m phys term attribute is no longer required.
46. Fixed bug in insert-line code which didnt bother to update marked
    area if end of marked region was after current cursor.
                                    
Macros
======
1. Fixed bug in word-left macro which caused it to go back
   to start of PREVIOUS word when on second character of a word.
2. Added a trivial EDT emulator.
3. Mail macros now support ability to reply to mail.
4. Added an mtags macro for creating a tags file for .m files.
5. Added h-format_block macro which treats .h files same as .c files
   for ^F.
6. Modified makeman.m to use env variable BHELP. Also added support
   for -mm, -me and -ms nroff/troff macros.
7. Added Command Summary option to help. Currently maps onto the old
   key_list macro.
8. <Alt-N> and <Alt-P> now display full file name on status line.
9. Added core.m which gets loaded when CRISP suffers a segmentation
   violation in an attempt to save any modified buffers.
10. Modified options macro (Screen & Status) option to allow user to
   toggle 25 & 43 line modes.
11. Fixed references to non-existant macros in ansi.m and tty.m.
12. Moved all tty files into tty subdirectory.
13. Created new kbd subdirectory. This is for keyboard descriptions -
    used by the Command Summary option of the help menus only.
14. Modifed search-fwd, search-back, search-next, search-previous to
    hilite the matched pattern on the screen until a key is hit.
15. Modified most macros so that messages which appear at bottom of
    windows are now keyboard independent.
-- 
=====================			Reuters Ltd PLC, 
Tel: +44 628 891313 x. 212		 Westthorpe House,
UUCP:     fox%marlow.uucp@idec.stc.co.uk  Little Marlow,
					   Bucks, England SL7 3RQ