Fixed Bugs

Bugs in Version 1.3.5 Beta Fixed in Version 1.3.6 Beta

Changes to C and C++ compiler environment "parse" settings are not reflected immediately in syntax coloring.


 
 

New Features in Version 1.3.6 Beta

UML window can now be printed.

Java compiler environments have a new setting that will enable Java 1.4 "assert" syntax in CSD and CPG generation.


 
 

Bugs in Version 1.3.4 Beta Fixed in Version 1.3.5 Beta

"Comment" function comments CSD box lines.

"Font Size" settings for message font size and font scale should only be available at the global level.

Click-to-open in Windows will not work for a file with spaces in its name.

"Kill" for a process running in an MSDOS window does not kill the process during "hit any key to start" or "hit any key to continue" prompt.


 
 

New Features in Version 1.3.5 Beta

Compiler environments can now be imported/exported (to file) and copied/pasted.

A "verbose messages" mode was added to allow verbose compile, run, and CSD generate messages to be turned on or off.

A cygwin wedge was added. This uses a pseudoterminal connection for cygwin applications only, and should eliminate any buffering problems on those systems.


 
 

Bugs in Version 1.3.3 Beta Fixed in Version 1.3.4 Beta

Run in MSDOS window checkbox not working (Windows only).


 
 

New Features in Version 1.3.4 Beta

Several connection options are provided for running on Windows. These can fix buffering problems seen when interactive programs have stdin, stdout, and stderr connected to pipes. In one mode the input is through the console while output is through pipes. In the other the target is run as a debug process, and console output fuctions are intercepted to capture output (works only on NT).


 
 

Bugs in Version 1.3.2 Beta Fixed in Version 1.3.3 Beta

The integrated Java debugger will not work if the path on which java.exe was found at startup has uppercase characters in "bin". For example "C:\jdk1.3\Bin\java.exe". On Win95/98, this may be unavoidable if java is on the path.

Delete and backspace keys can be used to cut output from the Run I/O window. This will also scramble any following I/O.


 
 

Bugs in Version 1.3.1 Beta Fixed in Version 1.3.2 Beta

16 bit applications will not run on Windows 95/98 if path to executable contains a long filename.

"Cascade and Resize" function resizes maximized windows. Restoring them returns things to normal.


 
 

New Features in Version 1.3.2 Beta

Added a bookmark-like mechanism to the browse window.

On Windows, applications can be run in a DOS shell.

Awk/regex style regular expressions can be used on find page and multiple file search.


 
 

Bugs in Version 1.3 Beta Fixed in Version 1.3.1 Beta

Uninstall will complain about attributes of example files and not consider installation complete.

Perl5 regular expression search in CSD window won't find a match if the cursor is in the middle of the only match, or the current selection starts with the only match.

Minor HTML bugs in the help files.

Several layout problems with the browse window, especially with Windows and Motif L&F.


 
 

Bugs in Version 1.2.1 Beta Fixed in Version 1.3 Beta

Output from a compile or run process that is printed shortly before the process ends may be lost on Win95/98.

By saving a file using the name of a file that is currently open, two copies of a file may be opened at once. This can lead to various odd behavior.

A multi-file search that matches a string at the end of a file will stop and dump the stack at that point.

Default extension is ignored when saving projects.

Icons may be cut off in project and debug windows with Windows or Motif Look-and-Feel.

If there is more than one operation on an environment variable in a compiler environment and the environment variable is initially null, every operation but the last may be ignored on Windows systems.

When creating a new project, the compiler environment may be initialized to an empty string, and the default checkbox turned off. This will happen if project settings were previously viewed or edited.

CSD window menus are not updated when the compiler environment is changed (so commands may be added or removed).

Several popup menus are not updated when the global font scale or look & feel is changed.

Adding a root directory to a project may cause jGRASP to crash the next time it is started and from then on.

Default Java compiler environment does not work with Solaris JDK because it does not ship with a classic VM.

Regular expression token search finds tokens that begin with the search string instead of tokens that match the search string.

RTF output may have incorrect colors if the printed text does not use all of the CSD window colors.


 
 

New Features in Version 1.3 Beta

Form feed characters will cause page breaks in printing. This can be turned off in the print settings.

Multi-file search can search directories, subdirectories, or all project files.

Project files can be specified with a relative and platform independent path.

Added %PROJECT_PATH compiler environment variable (path to directory containing project file).

Added %CLASSIC_OPT compiler environment variable ("-classic" or "" depending on the OS).

Search operations can be limited to strings or comments.


 
 
 

New Features in Version 1.2.1 Beta

Invalid breakpoints are shown crossed out while debugging with integrated Java debugger.

Antialiased fonts (in CSD and message windows only). This is off by default. The setting is on the global CSD window settings "Font" page. Antialiasing generally improves the appearance of text at higher resolutions, but at low resolutions it may make text harder to read.

Attempted to make CSD generation compatible with Borland C++ language extensions.


 
 
 

Bugs in Version 1.17 Beta Fixed in Version 1.2 Beta

A bug causing jGRASP to lock up when starting was fixed.

Recursively folding a structure where a folded region ends in a box line may cause jGRASP to lock up. If CSD boxes are turned off, this may cause the fold to fail, and a stack dump to be created (in which case, no harm is done). This would happen in an Ada program where an exception ends with a single-line accept statement.

If jGRASP locks up at start-up because there are one or more large files on the desktop and loading them causes the JVM to run out of memory, there is no easy way to run jGRASP again (you can find the desktop settings file and delete it or pass a flag to jGRASP that will allow the JVM to use more memory). This was "fixed" by adding a "Run Empty" choice on the start-up dialog that comes up after a crash.

Changing the "Source" global setting will cause all global settings to be lost the next time jGRASP is run.

Depending on the settings the user may have changed, upgrading or downgrading from some versions of jGRASP to some others may cause global, project, or file settings to be lost.

Cursor positioning does not work correctly if a proportional font is used with the CSD.

Linux / Solaris focus bug. Sometimes a window - either the message window or the search or replace field in the find panel, would think it had the keyboard focus when it did not. This could happen when moving the mouse back and forth from jGRASP to other applications in a focus-follows-mouse environment. After that, the message window could not get the focus again, or you would have to hit "enter" to get the text in the search or replace fields to be recognized. This problem should be effectively fixed. If it does happen, moving the mouse in the "stuck" window should unstick it immediately.

On Linux and Solaris: if jGRASP is "hard" killed while running or compiling, the target process and "wedge" process may continue running.

The -d (alternate settings directory) flag can not be used in interactive mode, so it can not be used with the single-instance shells (the native executables normally used to start jGRASP).

On systems where the default character encoding is not ISO-Latin1, Windows-Latin1, or a superset of the common encodings of those two (if there is such an encoding), the CSD will not display or print correctly.

On Windows, under some circumstances the wedge processes (win_run.exe and win_run2.exe) and target process created during a compile or run operation may not exit. This is possible, for example, if both jGRASP and the target process lock up, then jGRASP is killed from the Windows task manager or by closing the jGRASP exec window.

After a multi-line cut, only the line preceding the cut section is repainted, even if the following lines had color changes (because the start of a multi-line comment  was deleted or created, for example).

Pasting a selection that starts with a box line at the very end of the text can, under some circumstances, lead to a crash.

Cutting text that begins with a box line will cause one line to be mis-numbered, and can under very rare circumstances lead to a crash.

With focus-follows-mouse off, clicking in a CSD window that does not have focus does not position the cursor.

If multi-file search fails due to bad search pattern, mouse cursor does not return to normal.

Some compile and run commands may have problems with files in root directories. An extra path separator may appear in the command, which can cause problems depending on the system. For example, the gcc generic compiler environment will run a C program in a root directory as  //a.out  or  C:\\a.exe . The new policy for compiler environments is to eliminate a duplicate file separator following a path variable that expands to the root path.

Popup menu in browse window pops up in wrong position.

For some window managers, the size at startup may be slightly larger than when last shut down - so if you never resize it will grow each time you start up.

CSD parser does not recognize "fixedfp" modifier.

"Project" / "New" should force .gpj extension.


 
 

New Features in Version 1.2 Beta

An integrated debugger for Java has been added. This is very basic, more features will be added in the future.

CSD  window now has popup edit menu. Old functionality of right mouse button can be accessed by setting "Settings"
/ "CSD Window Popup Menu Enabled" off on the control panel.

The browse tab of the control panel and all file dialogs now can filter files based on an extension list.


 
 
 

Bugs in Version 1.16 Beta Fixed in Version 1.17 Beta

C++ CSD generation - class, struct, and union definitions can not be followed by a declarator list.

Setting environment variables in compiler environments will produce unexpected results on some Linux and Solaris systems.

Using an alt-key combination to activate a menu item in a CSD window will also type the key.

When using the Windows look and feel and the virtual desktop, hitting "Enter" in a CSD window may activate the find dialog or another component.

The "Save Project As" file chooser appears to give the user the choice of saving a project without an extension, but an extension is always appended.

The help search page does not work (build error in 1.17 Beta only).

"Expand Macros" was turned off in the "gcc generic" C compiler environment.

"Allow C++ Comments" was turned off in all the C compiler environments, even though all the target environments allow C++ comments by default.


 
 

New Features in Version 1.17 Beta

Find and Replace now has a regular expression option.

A multi-file regular expression search was added.

The compiler menu now has a switch for "debug mode", and the compiler environments have a mechanism for changing the compile commands when in debug mode. All of the "DEBUG" compiler environments formerly distributed with jGRASP have been removed, since this change made them redundant.


 
 
 

Bugs in Version 1.15 Beta Fixed in Version 1.16 Beta

For a file in a top-level directory, compile and run functions may use the wrong working directory, and may fail.

Having a "\e" in a compiler environment "environment" command will cause a bad compile command to be sent on Windows systems.

Cutting a line that contains the last bookmark will temporarily corrupt the display.

Jump to next or previous bookmark does not remove the selection first as it should.

Moving a CSD window into the virtual desktop (or turning the virtual desktop on) will blank out any previously opened find-and-replace dialogs, and they will stay that way.

Auto-sync does not work for CSD windows outside the virtual desktop.

(This is greatly improved, if not fixed completely) Focus / Active window problems - sometimes jGRASP gets confused about which CSD window has the keyboard focus or is active. These problems are mainly due to "differences" in Swing/AWT implementations that are most likely bugs, but some of it could be our fault. Selecting another window or clicking in the window that "doesn't know" it is active will fix the problem. Sun JDK 1.3 for Linux has slightly worse problems. An iconified CSD window may get the keyboard focus, there may be confusion about which desktop window is active as well as which has keyboard focus, and clicking in a window may not set the keyboard focus even if focus-follows-mouse mode is off. To restore the correct focus, select an inactive (judging by the title bar color) window, then re-select the desired window.


 
 
 

Bugs in Version 1.14 Beta Fixed in Version 1.15 Beta

Output from compile and run operations may be lost on Windows NT and 2000.


 
 
 

Bugs in Version 1.13 Beta Fixed in Version 1.14 Beta

Windows JDK 1.3 compiler environment has a semantic check setting that will cause the semantic check to fail. With Sun JDK 1.3 there is no semantic check flag for "java".

Borland compiler environment has several bugs.

Native Windows printing prints italic text in bold, and bold or italic+bold text as plain.

Some Windows compilers such as Cygnus gcc and g++ will not run correctly under jGRASP because the command name is quoted.

Problems with Windows compile and run commands: reported return value is always 0; sub-processes
may pop-up lots of annoying consoles; compiler output for sub-processes may not show up in jGRASP;
if a compile process is waiting on console input, a "Kill" from jGRASP may leave it running.

Upper characters can not be entered using the keyboard. Upper characters are not displayed correctly, and will cause numerous display problems if a variable width font is used.

Using a C or C++ compiler environment with an empty CSD include path will cause CSD generation to fail.

Click-to-error may open some files in binary mode. All automatic file opening should be in text mode.

Administrators can not edit their own "user" compiler environments.

The control panel "Settings/Auto Sync" box does not work, so auto-sync is always on for Windows and always off for other systems.

If auto-sync is on and auto-save is off, popping up jGRASP during a compile operation (it may pop up on its own if the compiler opens and closes windows) will cause sync messages for edited files.

On Windows: if network administration is set up and the admin settings directory is on an NTFS file system, non-administrators will appear to be administrators, and get various warnings because of errors in writing administrator settings files.

On Windows: installing in a directory with a space in the name will cause the shortcut and start menu items to not work. Choosing an admin directory with a space will cause administrator settings not to work.

Closing jGRASP before the desktop is fully drawn can cause a crash and freeze-up, and/or cause the previous state of the desktop to be forgotten.

After the font size is changed, the horizontal scroll settings of CSD windows are not adjusted for the new size.

Mouse cursor will usually not change to wait cursor when it should if it is over a desktop CSD window.

Selecting a help topic will temporarily pop up a shell on Windows.


 
 

New Features in Version 1.14 Beta

Added the ability to change environment variables in a compile or run command, through a setting on the compiler environment dialog.

VC++ compiler environments added.

Single instance client server shells added for Linux and Solaris. These allow you to run "jgrasp file" to pop up file in an already running instance of jGRASP. Both can be run through the script "jgrasp" in the jgrasp "bin" directory.

The Windows "java.exe" program is now more useful at the command line. A relative path can be used for the file name (a full path was required before). For connecting jGRASP to other tools: the line number and language of the file can be specified.

"Save As" dialogs now supply and allow the choice of a default file extension.

There is now a block selection mode, and block cut, copy, paste, find, etc.


 
 
 

Bugs in Version 1.12 Beta Fixed in Version 1.13 Beta

Changing the CSD font will cause display problem on systems that have different font heights for fonts with the same point size.

The "jdk - generic" Java compiler environment, which is the default for Java, has a bad "Run Applet" command. "Run as Applet" will fail with the default setup.


 
 
 

Bugs in Version 1.11 Beta Fixed in Version 1.12 Beta

Replace All and Replace All in Selection will only replace the first match if the replace string is empty.

If jGRASP is started with a file name, or an error message in a message window is clicked on, and a CSD window containing the file is already open but the name does not exactly match the name on the CSD, a "File is already open" dialog will pop up. The filename can be different because of case or backslash vs forward slash path separators in Windows, or because of multiple paths to the same directory or file.

jGRASP may crash at shutdown if a CSD window is out of the virtual desktop and a CSD font or font size other than the default is used in that window.

Unfolding text that is not visible on the screen will cause the text to shift to the right. The only way to return the scroll position to normal is to close and re-open the window.

Some unfolding operations, such as undoing a multiple fold, will only unfold parts of the text that are visible on the screen. This will corrupt the undo stream, and additional undo or redo operations could cause a crash.

For C and C++: only macro arguments appearing in the first half of the macro use are expanded. This can lead to an incorrect syntax error during CSD generation.

Units control on print settings dialog does not work.

Bookmarks are not removed when a CSD window is cleared, or a file is opened or reopened after a sync.

Canceling a print job when print area infringes on unprintable area may print a blank page.

User compiler setups are editable on administrator settings.

Compiler setup comment is editable when viewing a compiler setup.

For C and C++: macros that have lines joined by comments are not colored correctly (but they are parsed correctly). For example:

#define version /* This comment joins
the lines. */ 7


 
 

New Features in Version 1.12 Beta

Most GNU C and C++ extensions are supported. See the help on GNU extensions for a description of the extensions that are not supported.

"Allow C++ Comments" option added to C compiler setups.

Added font properties for the message and I/O window fonts to the settings.

For native Windows printing, user now has the option to print anyway when print area infringes on unprintable area (because margins are too small).


 
 
 

Bugs in Version 1.1 Beta Fixed in Version 1.11 Beta

If a CSD window is scrolled horizontally, when text is selected part of the selection may not be displayed.

Unfold All - after an "unfold all", when an undo operation reaches what would have been a fold or an unfold, the cursor will move. In other words, unfold all did not strip all fold operations from the undo list as it should have.

File Synchronization - if the user chooses to reload a file, it will be loaded in binary mode, which for DOS format files will cause line feeds to appear at the end of each line.


 
 

New Features in Version 1.11 Beta

"Undo" now undoes multiple operations, such as a "replace all" or a recursive fold or unfold.

"Redo" functionality added.

Added "Replace All in Selection" function to the Find dialog and Find page.