Please enable JavaScript to view this site.

A-Shell Development History

1150.8.1

XTREE checkbox enhancement: Extended checkbox columns ("T+", see 1150.6) now support an undo capability (using ^Z) to undo the action of ^A (set all), ^B (clear all), and Shift+Click (set range) operations. The undo feature is only operational immediately after the event to be undone.

1150.8.2

XTREE checkbox enhancement: New special PopupMenu actions have been implemented.

1150.7.1

Windows Printing enhancement: Modernize the printer matching logic. Previous method was running into limitations in some newer environments, such as an inability to scan more than about 14 printers. Also, if a printer is known to exist but A-Shell fails to find it in the matching logic, you can set the first character of the printer name in the DEVICE statement to lower case (e.g. DEVICE = hP Laser), in which case if it fails to find it in the directory, it will trust you and just try to open it blindly. (This has long been the procedure for printers using share names like \\server\name.)

1150.6.1

XTREE enhancement: The new cformat code "+" may be added to "T" (i.e. "T+") to enable intended checkbox functions whenever the focus is on an editable checkbox cell. Control+A ticks all the checkboxes in the column; Control+B clears all the checkboxes in the column; Click, followed by Shift+Click on another checkbox in the current column, ticks all the checkboxes between the two clicked boxes.

1150.5.1

XTREE Image handling bug fixes: The internal image count was not being reset when using XTROP_REPLACE, leading to an eventual failure to load images (when the XTF_VARY flag set). Even then, XTREE should have auto-expanded the image allocation according to the second argument of the ImgCount=#,# coldef clause (grow-by), but was failing to do so when XTF_VARY was set.

1150.4.1

GDI printing bug fix: an adjustment around 1148 to correct a problem with vertical spacing getting way out of kilter when previewing and then printing was causing the LPP value in the printer INI to be effectively ignored. (In the absence of a //SETVMI command, this in was resulting in the vertical spacing getting initialized based on the font and/or paper size.)

1150.4.2

XTREE/ATE bug fix: Server side was crashing when XTREE called without specifying the XTRCTL parameter. (Problem introduced in 1150.0)

1150.3.1

XTEXT refinement: XTEXT now supports ATE-client-relative file specs for the source and destination. Previously it was complaining that the source file was not available.

1150.2.1

XTREE refinement: On re-entry, if xtr'targetrow=0, use xtr'xrow to determine vertical scroll position.

1150.2.2

XTREE bug fix: ansary optimization introduced in 1150 was causing entire TXTCTL structure to not be updated.

1150.1.1

XTEXT bug fix (serious!!!): None of the fields in the TXTCTL structure were getting updated on exit, as a result of a coding error introduced in 1150.0. In some programs, this problem was not an issue, but in others, it was catastrophic.

1150.0.1

XTREE / ATE optimization: When using opcode XTROP_REPLACE, the server side of XTREE now detects when the data array has not changed from the previous call, and in such a case, automatically switches to XTROP_RESELECT mode (which saves transferring the data from the server to the client, as well as loading it into the tree.) This optimization is mostly useful in situations where cell-to-cell movement causes an exit and reentry, and you are obligated to use XTROP_REPLACE rather than XTROP_RESELECT because you can't be sure if the data actually changed. (A multi-user appointment scheduler would be an example, where you have to reload the schedule data from disk because you don't know if another user made a change in the meantime.)

1150.0.2

XTREE / ATE optimization: Similar to the optimization of the data array just described, but for the answer array. For editable trees with opcodes XTROP_REPLACE and XTROP_RESELECT, the server side detects if the answer array has changed since the previous call, and if not, it eliminates the redundant transfer of answer data to the ATE client. As with the above described optimization, this is primarily handled on the server side, and works even with older ATE clients. However, the optimization is somewhat better if the ATE client is also at 5.1.1150+, since in that case it is also able to skip the CPU activity involved in scanning/re-loading the editable cells from the answer array.

1150.0.3

XTEXT bug fix: Older programs using the 256 byte version of the TXTCTL structure in a non-ATE environment were getting the equivalent of garbage values in the last few fields of the structure, causing the new printing features to act strange.

1150.0.4

XTREE refinement: The XTHSF_NOTBTN flag (see 1142.0) has been renamed to XTHSF_NOHIGHLIGHT and its behavior changed slightly so that the headers can still be clicked to sort the column. In the new scheme, they are actually buttons, but they don't get auto-highlighted when the column is active.

1150.0.5

XTEXT enhancement: new opcode flag, TXOPF_PREVIEW (&h0020), may be added to TXOP_CREATE, TXOP_REEDIT, or TXOP_DISPLAY to cause XTEXT to display the print preview window. In the case of TXOP_CREATE or TXOP_REEDIT, the user will be left to manipulate the preview, which also means that he/she will be able to print and/or return to edit mode.

1150.0.6

Windows printing enhancement: Whenever a printer is selected from the printer selection dialog, that printer becomes the default, for this user, for any subsequent A-Shell printer selection dialogs. Previously, the printer selection dialog always started at the global Windows default printer for this workstation. Besides being more convenient and intuitive for the user, this also means that any special configuration saved for the printer in the printer driver properties will be used as the default configuration (rather than the default printer's configuration).