CRiSP Release v9.0

The following sections summarise the changes in the recent releases of CRiSP v9.0

Version 9.0.8a March 2005

Mac OS X: Support the keypad properly on
The undo and large file editing subsystem has had a revamp to better handle huge files (files bigger than 1-2GB). Performance should now be linear and memory usage is more deterministic without running out of RAM or causing heavy swapping. Backing up of files >4GB handled properly, and the undo file can now grow to larger than 4GB.

Version 9.0.7d February 2005

Better performance when saving huge files. Previously CRiSP could slow down exponentially trying to handle large files. This release fixes a problem with files >1GB in size.
Hashes have been added to the macro language. hash is now a reserved word in macro programs, and CRiSP correctly handles garbage collection of hash variables. Hash variables can be implicitly converted to/from lists/arrays, and added together. The model is loosely based on hashes in Perl.
File/Contents view could get confused when double clicking on a symlink pointing to a non-existant file.
Fix possible core dump on MacOS X when using tooltips.
Speed up menu popups for MacOS X.
On POSIX systems, CRiSP might be terminated if the Undo file exceeds 2GB in size.

Version 9.0.7c January 2005

Refreshing the contents window File/Tree view could be slow when accessing a network drive. Due to various optimisations, this should run an order or two in magnitude faster (measured speed for a 1000 file directory was > 25x times faster). The prior slowdown was due to the way the status of each file was gathered.

Version 9.0.7b January 2005

Find Find files has been speeded up significantly.
Fix problem in crunch compiler affecting Keyword Builder dialog.
You can now filter the results in the Buffer List and Routines character mode popups by using <Alt-F> to enter a filter expression. Use ! at the start of the expression to negate the match.
Fix problem with character mode ascii chart buttons not working properly.
Fix problem with the Compile buffer not setting the compile buffer properly.
Add cookie support to WebNews so we can log in to certain sites.

Version 9.0.6b December 2004

Added Disk Usage menu entry (and du Command: prompt command) to provide drill down disk usage statistics.
Added an addin to support Visual Studio .NET 2001/2003. Installation is controlled by CRiSP - execute the vstudio command: prompt command to pop up the dialog to install and configure the addin.
Added CR_LINE_NUM_MARGIN environment variable which lets you control the size of the line number margin, rather than wasting space for line numbers which are small.
Added support for the MiVA commercial web site programming language, including tagging and syntax coloring.
Templates facility enhanced to support dynamic indent/unindent for certain languages. For example, the XBASE template file shows how you can do this.
Fix problem with Windows tag files recorded the same file twice depending on case of the filename.
Added syntax coloring for Perforce template files.

Version 9.0.6a December 2004

Updated the SSH/SFTP code - now based on PuTTY 0.56, which fixes some security holes and some crisp options controlling debug logging. (You can now turn on packet logging)
Added set [no]routine option to display current function/routine name on the status line as you move around the buffer.
Added set [no]checksum option to display checksum instead of line number for lines. Useful when trying to visually determine if two lines are identical, even if they scroll offscreen.
Performance enhancement for search & replace when long search strings used.
Fix problem when swapping columns in table view and then double clicking on a cell.
Win32: -noexpand command line option added so we can open files in the Internet Explorer cache.

Version 9.0.5c October 2004

Added support for scrollable dialogs - dialogs which are too large to fit the screen will have automatic scrollbars displayed. This is controlled by the DBOX_SCROLLABLE_DIALOG attribute on the dialog. It is not default behaviour, but provided for those macro programmers who need it.

In addition, the DBOX_SCROLLED_WINDOW is documented and working. This provides a similar facility for scrolling contents which do not fit, but is provided in case. This was originally intended for earlier versions of CRiSP but never needed or documented.

Fix problem when launching Firebird web browser, which does not support a DDE form of communication.
Restore the anonymous scrap on startup.
Some memory leaks when using WebNews fixed.
Add syntax coloring for "&...;" entities in XML files.

Some fixes to the menu editor.
Fix commenting blocks for Ada. Add bracket matching support for Ada style if and case statements.
Table controls now support column reordering - you can drag a column header to move the column. But note, CRiSP does not presently store or restore this for a dialog. This is planned for a future release.
Word-matchiing in Files searching dialog now working properly.
Win32: Fix problem with mouse wheel and outlined buffers.

Version 9.0.5a August 2004

When sorting columns in a table, action the sorting on a mouse release, rather than a mouse press.
Add syntax coloring support for Scheme.
Enhance the bracket matching code to support Ada "if .. end if" and "loop .. end loop" language constructs.
Fix some problems with commenting and uncommenting a block where we have nested comments. Add 'Dash style' to the Language Editing Modes comments dialog and fix a problem with not being able to delete wildcard file types.
When switching between the Contents/File/Project view and other views, the layout of the project tree is maintained.
A recent fix for line wrapping caused an issue when using the vertical scrollbar. The cursor should be hidden if the current position scrolls out of view, but was left confusingly visible.
<Ctrl-A> in CUA mode should select the buffer, but not copy it to the clipboard.
Problem when using make/compile in the Output window and the Find 1 or Find 2 window had input focus first.
When looking up tags, case is ignored if the current buffer is a file whose syntax coloring is case independent.
Fix problem with the way the Project filters were evaluated - sometimes putting files into the wrong category.
Problem when dragging scrollbar thumbs could cause position to go astray when moving before the beginning of the line/buffer and could cause frantic updating.
Microsoft Visual Studio addin (craddin) now correctly supports moving to the line,col of the source file when switching to crisp.exe.
Add support for ${LINE_NO} and ${COL_NO} when specifying command lines for the build/execute tools.

Version 9.0.4e August 2004

Win32: Color setup dialog broken when displaying certain colors.
Perl: Add support for $#
Crunch compiler extensions to support symbolic references.
FTP: Fix some macro errors if using SSH.
When sorting text, maintain bookmark positions.
(Unix/cygwin) Fix long standing issue which would stop a dynamically linked crisp from running against OpenMotif or LessTif. New cygwin releases are dynamically linked against the X11 libraries, resulting in a smaller binary and distribution size.
Add a new macro align_comma which is similar to align_equals to reformat a block of data definitions, e.g. in a C struct/table -- aligning the columns.
Add new Exit all frames menu item. If multiple frames are visible, then CRiSP will exit, and restore the state on startup correctly.
Routines: add better support for Korn-shell functions.
Fix problem with C# class definitions for tagging/routines.
Contents/Templates now accepts single mouse click to expand/collapse tree nodes.

Version 9.0.4d July 2004

Keyboard fixes for Solaris when using Swiss/French keyboard.

Version 9.0.4c June 2004

Possible macro error when using scroll locking fixed.
Fix redraw glitch when finding matching brace and a region is selected.
Fix problem when evaluation "sym1 = sym2 = <value>" where sym1 and sym2 are both float.
Add support for "**/filename" lookup. When specified, CRiSP will look for a file in any subdirectory.
(X11) Implement own drawn buttons because the Motif ones are rubbish.
Fix a potential buffer corruption and/or core dump with certain files whose 'shape' matches a particular pattern.

Version 9.0.4b June 2004

New file open mode. If you open a file with a leading "**/" CRiSP will search the current directory downwards to find a file of the appropriate name, thus saving having to type the path to the subdirectory.
Added support for pixmaps to be stored in a .ZIP file. The file pixmaps.xpl is now a .ZIP file internally (with incorrectly recorded checksums, but you can ignore this). Added partial support for PNG bitmap file formats.
The show file command gives info about the current buffer/file.
Some keyboard improvements for Swiss/French X11 keyboard layout.

Version 9.0.3d May 2004

(FTP) Add support for remote file access based on rsh, ssh and rsync.
Added ACL support for Solaris - saving files will preserve the ACL permissions.

Version 9.0.3c May 2004

Some improvements to scroll locking so different buffers can be independently scroll locked.
Added DNA (biology) syntax coloring to hilite specific amino acid groups (dna.kwd)
(FTP) When saving files to a remote system, check to see if the remote file has been updated before overwriting and losing edits.
Fix performance problem for line-wrapped large files when doing PgUp/PgDn.
WebNews: Added Reuters RSS feeds. Added www.gizmodo.com.

Version 9.0.3b March 2004

Allow use of foreach on an integer sequence, such as foreach (int I, 100).
Added show file command line command to see current file status.
Fix to syntax coloring when doing bracket matching not working under some circumstances.
Add improvements to the Buffer Info dialog.
File I/O primitives now support line mode operations.

Version 9.0.3a March 2004

WebNews: Now supports downloading of the favicon.ico associated with a site so that sites are labelled with an appropriate icon.
FTP: Added Open Remote to the context menu to quickly open a file in a different directory.
Fix problem when doing <Alt-F10> on Windows and filename has an uppercase filename.
When doing a Files search and appending to the output window, we could core dump.
Added support for MS Windows .ICO file formats for bitmaps (needed by WebNews).
Crunch: Add support for strings which contain embedded nulls (\000).

Version 9.0.2c March 2004

Fix undo problem when undo used inside a keystroke macro and we playback the macro or try to undo the playback..
Options Keyboard new option to allow prompt on exit to avoid accidental termination when <Ctrl-X> or <Alt-X> pressed.
Update PHP syntax coloring to handle PHP 5.

Version 9.0.2b February 2004

Fix occasional process spawning problem when invoked from a callback.
TeX/LaTeX: Now supported with the routines <Ctrl-G> macro to show all labels in the document.
Toolbar setup: Allow us to insert a break-marker into the toolbar.
WebNews: Fix problem when looking at item properties.
Some more line wrapping display issues.

Version 9.0.2a February 2004

Added support for dynamic XML coloring. If the XML file refers to a local DTD then the DTD will be parsed to extract out valid elements and attributes and only those items will be colored, making it easier to spot typing errors or invalid elements.

Tagging of DTD files now handles <!ENTITY> entries.

Fix possible core dump with compile dialog.
Add optional if clause to break, continue and return statements in crunch. So now you can write code like:

return 123 if (expr);

Idea copied from Basic-Plus (DEC) and Perl.

Fix possible macro error when using Template Editor.
When line numbering enabled, show current line number in the current line coloring color to make it easier to see.
Fix problems with line wrapping allowing cursor to move outside of window. Goal mode now forced when autowrapping is turned on to avoid confusion with where the cursor is as you scroll through line wrapped lines.
WebNews now uses Etag in HTTP request to reduce traffic on remote sites when news is not changing. Also uses If-Modified-Since to handle older servers.
(Unix) Fix potential heavy cpu use if parent shell is terminated and we lose access to the terminal.

Version 9.0.1d February 2004

Fix bug in the command line g/regexp/a command not showing results if only one match is found.
Fix problem with the File compare facility not correctly marking up the right hand window.
Fix problem with FTP keepalives not handling a dead connection and eating the CPU.
Enhance goal mode to better mimic vi style behaviour. Goal mode is what happens when you move from line to line - CRiSP tries to keep the cursor in the same column unless the line you move to is shorter than the current line. This is mostly needed for when line wrapping is in effect.
Fix problem with reading UTF-16 files losing last character of the line.
Fix various problems with line wrapping to do with line being longer than the window.
crunch compiler now supports Perl like conditional expressions:

var = expression if (cond);

var = expression unless (cond);

Version 9.0.1c January 2004

crunch compiler now allows declarations in for and foreach statements, e.g. for (int = 0; ...; ...)

Version 9.0.1b January 2004

FTP now works using asynchronous keepalives to avoid any delays during editing if a keepalive needs to be sent.
Bracket matching/flashing code has been reimplemented to avoid bad performance when editing HTML/XML style files or when presented with a pathologically large number of brackets..
Fix problem in the HTML Anchor Element dialog having two Title fields.
WebNews now supports a scale timer so you can slow down or speed up all sites without having to change options on each site. Slowing down (e.g. by 10%) can be useful to ensure batching of multiple headlines rather than getting lots of '1-at-a-time' type updates.
Type <Alt-O> at a Command line prompt fills in the name of the 'other' buffer on display. (Useful when building a diff command from two files you are viewing).

<Alt-T> puts the title of the current buffer into the command line, e.g. useful to paste an FTP filename.

Version 9.0.1a January 2004

Added some new sites to WebNews: alphaWorks, Apple, Digital Consumer.
Fix ignore string handling when doing file compares. Weren't properly matching lines. Fix possible core dump if using file name filter.
Some minor internal optimisations. Some optimisations to bracket flashing for HTML style files.
The crunch compiler now treats as an error an attempt to redefine a local variable whose name matches a variable in the argument list. This avoids easy to miss errors which can be difficult to diagnose.

The crunch preprocessor now allows #! lines in the file in an attempt to allow crunch macros executed as Unix shell scripts.

Fix problem with some RCS commands not being invoked correctly.

Version 9.0.0c December 2003

Don't show path/filter for the Contents/File view where they are inappropriate.
Significant speedups to Projects/Files setup when visiting directories with large numbers of files. Fix problem in the Menus page causing invalid project settings to be saved.
In the Key Bindings dialog, when pressing a key, we now show the correct binding in the table above.
In FTP file display, use the File browser settings to correctly sort by directories and alphabetical ordering.
Fix problem for Win32 not displaying 64 bit numbers correctly.

Version 9.0.0a December 2003

Various bug fixes and enhancements to line wrapping support.