CRiSP Release v8.0

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

Version 8.0.9c December 2002

Color Setup: Add a new color "Other Window Title" so you can set the title of the text in the non-selected window(s).
routines.cr: Add a new function - add_routines_entry so you can add to the default list of routines selections without having to edit the macro file.
Language Editing Modes: Fix bug where we didn't show the current colorizer language.
Added functionality to allow custom creation of controls purely via the macro language. These controls will be gathered in the src/crunch/controls directory, and will eventually be used by new parts of the CRiSP interface.
Fix some Python macro handling problems.
Fix memory leak in input field processing.
Various Mac OS X fixes and enhancements, including proper support for the <Cmd-H> key to hide CRiSP.

Version 8.0.9b November 2002

Fix memory leak in field controls.
When CRiSP does not have focus and we click on a scrollbar, ensure next mouse click in edit window works as expected.
Add support for CR_CUSTOM_ROOT environment variable to make it easier to customize Windows CRiSP.
Fix possible duplicate splay tree error message when using autoload/load_macro in _init functions.
crunch compiler now correctly detects duplicate function definitions.
Fix bug in toolbar setup dialog which could lead to corrupted toolbar definitions.
Fix Unix *.exe install packages to not install all files as world/group writable.

Version 8.0.9a November 2002

If you double click on the column divider in the title row of a table, CRiSP now autosizes the column to fit.
Fix problem with some FTP servers (PureFTPD) which would cause downloads to not work properly.
Fix tagging problem for C++ code when faced with "func() const = <expr>;"
Fix potential mess up of the crstate.dat file causing it to lose the mre files list.
Fix search and replace when replacing just \n on a marked region.
Fix Perl syntax coloring of the / (div) operator.
When using <Alt-O> to rename a buffer, don't let the autoreload trigger to reload an existing file of the same name.
Fix out of memory condition when copying a 6MB file to the scrap where each line is 1500 bytes long.
When undoing a search and replace on a marked region, restore the marked region correctly.
crunch: Dont core dump when generating code for goto.
Fix tagging for Verilog `define and handle task properly.
Fix regular expression parsing for ""<\/*div"
Fix problem with Quick Setup dialog where it would sometimes not dismiss itself when pressing OK.

Version 8.0.8c October 2002

Fix problem with auto-line-detect sometimes guessing the file type wrongly.
When doing a search and translate using a regular expression that matches over a line boundary, honor the users marked region.

Version 8.0.8b September 2002

Improve the Data Miner dialog when extracting large numbers of rows from large files, avoiding an out of memory situation.
Solaris 2: When using the Open File dialog to open a file greater than 2GB, we may fail to do it.
Mac OS X: Numerous bug fixes and enhancements to match the other platforms.
Fix problem with certain Perl colorizer keywords.
Fix problem with saving recorded keystroke macros which had the '#' character in them.
Added a utility macro for parsing royalBlue logfiles which contain hex dumps of FIX Protocol messages.

Version 8.0.8a September 2002

The Language Editing Modes dialog has had a revamp to make it easier to use, e.g. now you can see all file types at once, and can copy file types. Also some of the options have moved around so that the most common options are grouped together.
CRiSP can now display username@host on the status panel. Useful if you run crisp on multiple machines and need to distinguish them. You can disable this in Options Screen Settings.
Change to license manager to allow access the license manager through a NAT firewall. Contact support for details if you need to do this.

Version 8.0.7e September 2002

Allow files to be added to a Project from the Contents menu for file browsing and the FTP selection. Allow files to be corrected loaded from the Project even if they are ftp files.
Mac OS X: Fix broken command line handling.

Printer fixes and speedups.

Fix color setup dialog problems.

Enhance the Tag Manager/System Tags dialog to include support for Mac OS X, Objective-C and Python system tags.
Add support for Microsoft .NET Framework XML files to the Infotips facility. Now when editing C# (C-sharp) files, you can display all matching methods/functions available in the namespaces being used by the current code. If infotips is enabled and the tag database has been built, then as you press "." a list of possible functions will be shown.

Added support for parsing the .NET Framework XML files to provide function definitions.

Enhance the Data Miner feature and fix some bugs. You can now edit the data in the display grid and save the results to a file.
Projects: When modifying the filters for a project, the Files tab automatically updates to reflect the custom choices.

Version 8.0.7d September 2002

Mac OS X: Fixed various locks and internal assertion failures. Should be much more reliable.

Some drop-down lists were not being populated.

The Font settings dialog would show incorrect font names, allowing the user to incorrectly choose a Courier font but in fact it wasn't Courier at all.

Start of reworking of Projects facility to support wizard project types.

When closing a project, now prompts if any open files are open.

Add support for the Sharp SL-5xxx series PDA FTP server.
Changed the non-focus color of an item in a table or tree control to be 'orange' so it is easier to see which control has input focus.
Fix possible tag database corruption causing CRiSP to crash when saving a file.

Version 8.0.7c September 2002

Fix problem of editing binary files when overtyping the implicit end of line character. When using the <Ctrl-A><Ctrl-B> command, ensure file is displayed in hexmode.
New menu item: View->Display Modes->Codes enables a dynamic display of the hex/octal/decimal and binary value of the character under the cursor.
Status message for context menus were not being displayed.
Win32: Strip \r when pasting text. Allow <Ctrl-C> to kill a shell buffer process.
Allow $env vars in the toolbar.ini custom toolbars.
Fix occasional wrong syntax coloring glitch when scrolling in a buffer if bracket flashing was enabled.
Fix display problem with marked regions if line wrapping is enabled.
Fix problem with macro error caused when switching projects under some circumstances.
Enhancements to Projects to support Project Types.

Version 8.0.7b August 2002

When using the Edit file: command prompt and you edit a file which does not exist in the current directory, CRiSP will search for a matching file in the current project tags files. If more than one exists, a list of potentially matching files is shown.
Changes to the template expansion for <Enter>, {, and } to more closely match Visual Studio.
Fix problems with options being flipped in Buffer Options dialog.
crispclient - Fixes to allow for filenames with spaces in them.
Routines fixes to natively support Fortran 90 source code files.
FTP fix to allow us to login without a password, e.g. for slimFTP.
Enable us to find system header files for Microsoft Visual Studio .NET.

Version 8.0.7a July 2002

Numerous enhancements and fixes to the native Mac OS X Cocoa port.
The format for storing fonts in the crisp8.ini file has changed. A new section [Fonts] appears instead and allows for parallel storing of font definitions when using crisp across architectures. This was specifically done to support Apple/MacOSX and the X11 version of crisp since they have different font naming conventions.
CRiSP now supports zoom-stacks. Zooming (Ctrl-Z) is used to maximize a character mode window and delete the other window panes. Pressing <Ctrl-Z> again will restore the window layout to what it was previously. The macro view_zooms (mapping to <Ctrl-A><Ctrl-Z>) will pop up a window of previous window layouts and let you switch to one of those - useful when you meant to unzoom but had more than one window on display at the same time.
Fix crispclient when not used with the -wait command line switch - wouldn't spawn CRiSP as it should do if CRiSP was not already running.
Fix problem with printing hex-mode buffers adding newlines characters.

Version 8.0.6d July 2002

Add an option to the File Compare dialog to allow case-independent comparisons.
Fix problems with scrollbars and the tree view.
When printing a file in hex-mode, don't include the implicit newlines in the output.
Some fixes for handling files >2GB in size.
(Win32) Fix combo box in Keyboard Bindings not reflecting current keyboard.

Version 8.0.6c July 2002

Win32: Add support for invoking HtmlHelp from within CRiSP. In Projects setup, let user associate a help file with a file type. Map <Ctrl-F1> to this function.

Version 8.0.6b July 2002

Options Build/Execute dialog now has a Parser tab so you can specify the compiler being used, so that warnings/errors can be parsed correctly for certain compilers. CRiSP reads the file etc/compile.cfg in addition to the built in defaults. Add support for Pure Basic (http://www.purebasic.com).

When specifying compilation commands, add support for ${PROJECT_FULL_PATH}, ${PROJECT_BASENAME} and ${PROJECT_DIRNAME} variables.

Fix problem with scrollbars which might not let you scroll back to the top of a (large) buffer.
Add support for plsql and orasql to the sections list.
Fix selection problem with table control not clearing the rows we were moving away from.

Version 8.0.6a July 2002

Fix two problems with crispclient/crisp-server mode. If we used the -wait switch and crisp was not running, then the client would not terminate when the buffer was closed. Also fix possible macro error if closing file from the buffer list.
The Edit file command line prompt can now search the project for a file. For example, if you ask to edit the file "fred.txt" and the file does not exist in the current directory, then CRiSP will search the tag database to see if you have a file "fred.txt" in the project somewhere. If such a file is found, then you are prompted to open the file. This gives you a very powerful mechanism to edit a file, even when you do not know where the file is, or cannot be bothered to navigate to the appropriate directory.
Re-organise the assembler syntax coloring files, and give them a prefix of asm- to make them stand out, e.g. asm-arm, asm-ppc, asm-sparc, asm-x86.
Various fixes and enhancements to Objective-C (as used on Mac OS X) tagging and colorisation.
When resizing the contents or output window with the splitter control, you can press <Esc> to cancel the resize operation.
Fix problem of showing make_list show up in the tags file list.

Version 8.0.5c June 2002

X11: Add support for input methods so that better keyboard support is available for Portuguese layout.
Improve the Java tagging when parsing .jar or .zip files and fix bugs which would stop too many entries appearing in the tag file. Rearrange all java classes to be inside a package definition.

Fix parsing of throw clauses in Java source code.

Fix problem when switching to the dot-dot directory on a Windows based FTP server.
Various vi emulation enhancements.

Version 8.0.5b May 2002

Last change for fixing file sanity check wasnt sufficient. Would continue to reload a newly created file, causing undo to be lost.
Fix possibly infinite loop in buffer memory handling for large files when doing a search and replace operation.

Version 8.0.5a May 2002

Fix possible core dump if cancelling the Make dialog before make has completed.
Allow Tools->Make to be performed in the Output window area. Add option to Setup->Build & Execute.
Improve Objective-C @interface parsing; fix problem with C/C++ typedefs In the tagging.
The file sanity checking wouldn't detect under a circumstance: user creates a new file (without saving) and restarts crisp - restoring the new file. If file was created prior to the restart and subsequently modified then crisp would refuse to reload the file.
Fix bug in 8.0.4c which could cause a core dump for C like languages using // comments.
Improvements to the ColdFusion syntax coloring. ColdFusion and HTML now can background color embedded scripts.
XML beautification now works even if the file is not syntactically valid.
The CRiSP configuration file crisp7.ini has been renamed to crisp8.ini.This has been done to provide more flexibility in adding new color definitions. CRiSP will automatically migrate your existing configuration over to the new settings, allowing you to run new versions and older versions side by side.

If you have installed an etc/crisp7.ini default configuration file for your users, you will need to rename this to crisp8.ini.

The Sort Dialog box now contains an option for detabbing the lines in the buffer before doing a sort, to avoid problems with embedded tabs.
A new Keyboard Option has been added for Windows - to disable Alt/Menu control. This avoids the menu bar getting the input focus if <Alt> is pressed and released.
You can now use <Ins> at the command line prompts to paste the clipboard.
When exiting and a single buffer has been unsaved, and we are displaying prompts on the command line, we now say which buffer is unsaved, avoiding having to cancel the exit, check the buffer list and then decide what to do.

Version 8.0.4c April 2002

Add PHP Routines/Sections support. Modify the PHP tagger code to handle "<?" even without the php script introducer.
Fix some problems with the contents windows and output windows when used in a New Frame not killing the update timers.
Use a proper bold font in the Tabbed/Table/Tree controls. Some display optimisations and fixes for sideways scrolling to the table control.
The Zoom macro could leave the wrong file selected in the File Tabs.
CRiSP now supports line-wrapping. You can use "set lw" to turn on line-wrapping for a buffer (set nolw to turn it off), and set it persistently in the Language Editing Modes dialog

Version 8.0.4b April 2002

The Contents/File window now has a refresh timer attached to it - it will automatically update if anything changes in the directory (i.e. file deleted, created or renamed).
The file favorites in the contents window can now have a filter associated with them so that when you switch to a directory, that filter will be applied.
When updating files in the tag database, use the realpath of the buffer, not the logical path, to avoid possibly entering the same file multiple times due to different filename aliases.

If tag-on-save option is enabled then the tag database is updated when you save a file, even if the Contents/Browser window is not visible.

Fix possible infinite loop when pasting text on line 1 or 2 of a filel with intellipaste enabled.
New switch to crtags: -path_prefix PREFIX can be used to store a prefix on all filenames. This is designed to allow you to put an ftp://sitename prefix on files, so you can create a tag database on a remote machine, transport the tag file locally and be able to find prototypes and definitions, even automatically downloading from the remote host on demand. (If you do this you should mark the tag database as read-only when moved to the local machine).

Note that this mechanism can be used with ftp or ssh/sftp sites defined.

Numerous fixes for SFTP (SSH) support.

Version 8.0.4a April 2002

FTP support for SFTP (FTP over SSL) protocol now built in to CRiSP. Prior releases included ftpgw which is a mini ftp server which can act as a proxy to a remote SSH server. Unfortunately this could not be used on a Windows box, so the SSH protocol suite has been built into CRiSP and you can now mark sites as SFTP based and configure various encryption and compression protocols.
WARNING TO WINDOWS USERS USING FTP: The addition of the SFTP protocol support uncovered a portability bug which affects users who use the FTP protocol to access sites. When creating a site definition, you can save a password to a site. Which is encrypted to avoid casual perusal by other users. Unfortunately this encryption was not compatible with the Unix implementation and caused problems with the SFTP implementation. By correcting this, it will cause your existing site definitions to fail. To work around this, simply re-edit your site definitions and re-enter the password for the site.

Version 8.0.3d March 2002

Fix not being to click on hyperlinks in Infotips help window when in the Output bar. Fix some drawing problems under windows in the help text window.
Fix tag file corruption and core dump if try to run crtags against same file twice on command line.

Recent change to tagging on C/C++ files to distinguish data members from methods inside structs or classes broke some function definitions.

Some colorizer fixes for HTML/ASP/ColdFusion.
Fix infinite looping if we try to load a project with Change Dir option enabled.
Improve the mouse focus mode so that when clicking on a window when CRiSP does not have the input focus, that window gets the focus, but the cursor does not move on the first mouse click.
On Windows, the Infotip popup would sometimes not be drawn with the correct background color.
Add Infotips support for PHP.
Fix some screen drawing issues for window borders leaving turds behind.
Lots of infotips bug fixes and enhancements. Added complete set of Xbase prototypes.
Fix problems in Tag Manager regarding New and Remove buttons.
crispclient now supports a -wait flag so crispclient can be launched and will wait for user to finish editing file.
The brace matching macro no longer gets confused by braces embedded in strings or comments when trying to find a match. Fixed problem in the colorizer_get_lang() primitive returning the wrong state for the last character of a keyword. This fixes syntax searching as well.
Some fixes and improvements to tree/table searching when typing in alphabetics to find an entry.
crtags -force -refresh can be used to update all files in a tag database, e.g. when crtags has itself been updated.

Version 8.0.3c March 2002

Added an Infotips setup dialog to allow various options to be fine tuned.
Fixed bug in C/C++ tagger where it might occasionally put junk at the end of function argument lists.
Fix some problems with the Source Code Control setup dialog.
Fix mouse focus mode to ignore first mouse click in a window gaining focus.

Version 8.0.3b March 2002

Windows: Trying to minimize/maximize/restore CRiSP from the explorer bar would erratically fail.
Improved XBASE support, colorizer extensions, tagging and beginning of infotips.
Add keyboard mappings for <Ctrl-comma> and <Ctrl-dot>

Version 8.0.3a March 2002

Fix problem in FTP mode saving a file, where the file has been restored from a prior session.
Fix crunch compiler error when an extern and non-extern function prototype is present.
Fix problem with Contents window titles not updating when switching between file view and favorites view.
<Ctrl-Space> can now be used to call up infotips.
Fix problems with pasting text if Enable clipboard copy disabled. Also fix first paste of the session sometimes pasting from a restored scrap rather than the data just copied to the scrap.
The color setup dialog would only partially work on Unix X window displays which had 16 or more bits or resolution.
Fix problem with <Alt-/> not working correct inside a partial word.
Added infotips support for HTML documents.
Changed the HTML colorization to support syntax sensitive placement of keywords. Added SGML colorizer which will colorize any SGML/HTML document but without knowledge of embedded tags. Revamped the CFM colorizer to use new HTML features and add better embedded SQL support.

Add additional keywords to C# colorizer.

Improved Python support.
Revamped Quick Setup dialog to make it easier to change certain options globally.
Improve the HTML syntax colorizer to handle attributes in a context sensitive manner so we don't miscolor things which are semantically incorrect.
Fix problem with Contents window tabs being reordered and displayed in the wrong way on startup.
Add a new shell buffer type crispsh which is the start of an interactive shell buffer for helping debug crisp macros.
Enable new style column select as default (right click and drag).
Add support for Solaris 2.6 and above to better support large file types. Fix problem with Open File dialog possibly displaying large file sizes as negative.

Version 8.0.2f February 2002

Fix problem with FTP download progress dialog not honoring the close when done toggle.
Reimplemented the <Alt-/> code to handle completion, so it can now search other loaded buffers if no adequate match is found. Provide setup option to disable new behaviour.
Infotips now enabled by default.
Integrated Python support, care of Pierre Rouleau. Added Python to the Operator precedence chart.
Make XPM syntax coloring work again.
Handle #ifdef's in C/C++ code tagging better, allowing for mismatched braces so that routines macro doesn't get confused.

Fix some SQL tagging problems with Oracle SQL.

Fix some color cell allocation problems.
Unix Help files are now compressed to conserve disk space.

Unix Help window now shows the contents window to the left of the text area.

Version 8.0.2e February 2002

Apple OS X: Fixes to handle Mac OS X 10.1 and Xfree86 4.2
The HTML Printing mechanism has been changed to accomodate a new HTML style based on cascaded stylesheets (CSS). When enabled, this allows a more accurate color representation of the buffer to be printed, including full background color support.

Fixed problems with colors in HTML and now allows infinite line length (i.e. no wrapped lines) in HTML mode by specifying the column width as 0.

Also puts the current font into the generated file as a hint as to which font to use.

The filename completion feature at the command line prompts now defaults back to its original value - i.e. TAB will popup a list of valid completions, rather than trying to disambiguate. This mode is changable with the "set filename_completion=" command prompt command.
Fix colorisation problems in shell and tcl files using the context grouping mechanism.
The projects and tags mechanism has been enhanced to support local tags. Local tag files are those tag files located in the directory where a source file is, rather than locating them in a fixed repository.
Fix problem with searches on binary buffers which may fail to find a string.

Version 8.0.2d February 2002

Add new Mouse option to enable right-clicking to perform a column select operation.
Add set [no]search_abort command to allow keystroke macros to be aborted if a search fails.
Possible GPF under Windows when using the Contents window to Execute a file.

Possible problem when using the Key bindings dialog not freeing resources properly.

The character mode Language Setup screen could create a corrupt crisp7.ini file and cause problems on startup.
FreeBSD was broken - some icons came out the wrong color due to bugs in the C library.
Add new keyboard shortcuts starting with <Ctrl-O> to make navigating outlining easier. Add g/regexp/ol command to show search results in an outline buffer.
New binary provided for Unix systems: ftpgw which is an FTP proxy gateway allowing remote editing to systems using the other protocols, e.g. rsh or ssh.
Fix problem in the Project Options dialog when trying to remove a file from the list.
Fix GPF/infinite loop when using the buffer search dialog due to recent optimisations.
RCS Dialog could take a long time to popup and appear (Unix).
Right clicking beyond a tabbed window tab would do nothing. Restore prior operation of popping up the toolbar menu.
translate() primitive would GPF.

Version 8.0.2c January 2002

Fix GPF when doing a file grep operation due to recent optimisation.
Change scrollbars to be a little more smarter.

Version 8.0.2b January 2002

Bug fixes and redrawing improvements on new scrollbar.
When using scroll locking and the <Shift-Left> or <Shift-Right> window switch keys, a macro error would occur.
Fix possible macro error in paste_named_scrap macro.
Modify macro language to allow (float) and (int) type casts where appropriate. Allow int's to be passed to primitives which want float arguments and co-erce appropriately.

Version 8.0.1b January 2002

Unix: Reimplementation of scrollbars to avoid Motif widgets and provided more functionality. You can use the left or mouse button on the top or bottom arrow to move in the appropriate direction or use the right button to move in the reverse direction - avoiding having to keep moving the mouse for fine adjustment movement.
Give MDI x button a Windows XP look for Unix.

Version 8.0.1a January 2002

Allow scroll locking of MDI windows.
Improve Pascal/Delphi tagging and fix problem in routines macro for Pascal files.
Fix memory leak in array local variables.

Version 8.0.0e December 2001

You can now configure the Contents window tabs. You can reorder the entries and hide entries. Visit the Options Screen settings dialog.

Version 8.0.0d December 2001

Add support for editing Unicode UTF-8 format files.
Allow syntax searching, e.g. searching for a string when it is only a comment or a string, for example. Accessible from the Search dialog.

Version 8.0.0d December 2001

Make #if 0 ... # endif coloring work for C/C++ languages.
Unix: Replace Motif toggle widgets with something that looks much better and works like Windows.
Fix *.kwd handling of context xx construct.
Fix problem with most recently edited file list not working sometimes with spaces in filenames.
Tags browser tree control would sometimes sort randomly.

Make tree expansion more natural looking when near the bottom of the window.

Don't default %dir/tags tags in Project tag file list.

Version 8.0.0c November 2001

Projects now save and restore the workspace when switching.
FTP mode: fix problems when presented with ambiguous hosts and attempting to upload to one of the sites.
Fix problem with loading a workspace when the output window is visible.
Unix: Fix problems saving/restoring workspace on some non-ICCCM compliant window managers (e.g. FVWM2). Provide an option to work around the bugs in these window managers.

Fix problem where some of the dialogs, when restoring positions would slowly creep up or down the screen.

Version 8.0.0b November 2001

Enhancements to character mode command line completion. If possible will show ambiguous prefix rather than a popup.
Add Fortran 90 compiler error message support.
Support intellipaste for named scraps.
When tagging a project, we only tag the files in the project, not the whole tree.

Fix bug in Project opening which didn't update the Projects menu correctly.

When creating a newfile, make sure it really is new and not clashing with something on disk.
When saving language editing mode options, retain the 'newfile' attribute.
Revamp the scroll locking macro to work more logically and symettrically between two windows.
Syntax coloring for XPM files based on a new technology of dynamic syntax coloring.

Perl syntax coloring improved to handle POD data sections. Other Perl enhancements.

Make routines work better for Python files.
Win32: Support for Windows XP
Fix problems parsing C++ templates when tagging.
Fix possible hang on a system with pstack installed if CRiSP crashes.
Fix Language Editing Modes Templates options.
Some fixes to C/C++ code beautification. Fix template parsing in the tagging code.
CRiSP server mode was broken and wouldn't work.
Add a tcl and python command prompt command for invoking a shell buffer talking to the appropriate interpreter.
Fix some Perl template issues.

Version 8.0.0a October 2001

The View Language Templates dialog has been revamped to mimic to the Contents window view. The Templates in the Contents window have a View popup menu item which acts as a shortcut for viewing a template before pasting.
A new setup option for controlling network directories has been added to Autosave & Backups Sanity. This is referred to as the netdir prefix. This is used by the various File Tree views to avoid bad performance when enumerating files in a huge directory. This is aimed at, for example, Solaris' /net directory.
The Screen Settings Cursor options for controling the autorepeat rate have been moved to the Options Keyboard dialog where they more naturally belong.
Options Buffer was not setting/retrieving the Spell option properly.
On View Normal we now clear any intra-line markups due to a file compare.