Please enable JavaScript to view this site.

A-Shell Development History

993.9.1

MX_GDICALC enhancement: Opcode 1 (MXGDI_OPENPTR) now optionally returns the page dimensions (in the specified units): xcall MIAMEX, MX_GDICALC, MXGDI_OPENPTR, handle, status, printer, mapmode {,length, width}

993.9.2

MX_GDICALC enhancement: Opcode 6 (MXGDI_CALCRECTX) now works in ATE. Note: as with XTEXT.SBR, file resident on server will be transferred to ATECACHEDIR on PC. Since the use of MXGDI_CALCRECTX implies that this will happen multiple times per file printed, you might want to optimize the operation, if you are doing it on a lot of files, by pre-transferring the files to the ATECACHEDIR and then referencing the filespec as "%ATECACHEDIR%\xxxxxx.yyy".

993.9.3

XTREE enhancement: Editable checkbox/radio button cells (cformat T/R) can now be disabled dynamically during validation re-entry by adding 4 to the cell value. (e.g. '0' is unchecked, '4' is unchecked/disabled, etc.)

The XTRA6 sample program, version 1.0(103), has been updated to illustrate this. Select the validation option in the initial prompts. When you activate a Yes cell, the corresponding N/A cell will be disabled. When you activate the No cell, the corresponding N/A cell will be re-enabled.

993.9.4

XTREE fix: Editable cells with validation were not exiting with exitcode -48 unless the XTF_FKEY flag was set.

993.9.5

Icon fix: The #WINPTR icon stopped working in 990.0 when the developer icons were reorganized.

993.8.1

XTREE enhancement: The center (|) and right justify (>) cformat codes now apply during editing, as well as for display. (Previously, cell editing was always left-justified.)

993.8.2

XTREE fix: The combination of image cells (I) with cell background color (B) was not working.

993.8.3

XTREE fix: Read-only editable (u) was still allowing numeric keypad keys to modify the field.

993.8.4

XTREE refinement: The feature which automatically displays negative numeric values in red now works in conjunction with cell editing, provided that the cell had not been given a non-standard foreground color to begin with.

993.8.5

XTREE refinement: The mechanism of hiding text by preceding it with a backslash now works with the answer array as well with the data array.

993.8.6

XCALL interface refinement: The function that is used by XCALLs to return string values will now translate to B, I, or F as needed. This addresses a rare situation where an application accidentally supplies a numeric parameter type where the XCALL is expecting to return a string, and the return string actually has a non-zero "value".

993.8.7

XTREE / ATE fix: The last byte of the answer array was not getting updated in certain cases. This aAffected ASHW32.EXE in ATE mode only.

993.8.8

MX_GDICALC fix: For opcode 3 (MXGDI_CALCRECT), if the text did not fit entirely within the box, it was supposed to return the height of the box; instead it was returning the height needed for the entire output (given the width of the box but ignoring its height).

993.8.9

Debug window bug fix: selecting option to dump the font cache before any GUI objects have been created was causing a GPF.

993.7.1

AUI_CONTROL fix: When an alphanumeric control id is passed by the app in a CTLOP_ADD operation, the numeric ID of the created control is supposed to be returned in the CSTATUS parameter. This was working, except in the case where the control ID was 1. (In that case alone, it was returning 0; now fixed.)

993.7.2

XTREE enhancement: When a column is defined with s (selected or shared lists), the list id character can now include the following special characters (in addition to "|", which makes the cell display-only): # = normal editable cell (numbers only); * = normal editable cell (any)

993.6.1

XTREE refinement: embedded nulls in the answer array are now automatically converted to spaces, eliminating a nagging source of bugs in editable trees. (I should have thought of this a long time ago!)

993.5.1

XTREE debugging enhancements: Embedded nulls in the answer array are now detected and reported via a message box. (These would otherwise lead to misinterpretation of the answer array data.)

Also setting the XTREE and XDEBUG traces now output the first 200 bytes of the answer array to the log, making it easier to verify correct structure (without having to add custom traces to the application).

993.5.2

XTREE fix: An internal buffer was being overloaded when an individual cell exceeded 260 characters. The new limit is 2K.

993.5.3

INFLD fix: When using a coded list that returns both the code and the description (type ||l), if the list had a wildcard entry, and the user typed a value that was not in the list (but was accepted because of the wildcard), it was returning "*,*" for the "code, description" in ENTRY. But that wasn't very helpful, since the application had no way to find out what the user typed. It now returns "*,text" where 'text' is what the user had typed.

993.4.1

XTREE refinement: The hidden column flag (H) now overrides the Dspmin and Dwpwid options. Previously, those were overriding the hidden flag, causing at least one developer to wonder why the H flag appeared not to be working.

993.3.1

XTREE enhancement: the total space available for all the Mask= definitions has been increased from 512 to 1024 characters.

993.3.2

XTREE/ATE bug fix (server side): the combination of opcode 4 with file mode was leading to an "Invalid Advanced Coldef" error, due to a glitch in the optimization logic introduced in 993.0

993.2.1

ATE enhancement: The ATE command buffer is now automatically expanded as needed, eliminating the need for manually sending a TAB(-10,42) command when executing GUI XCALLS such as INFLD or XTREE which might require a buffer larger than the default of 3K. (If the data exceeded the command buffer, it was truncated, leading to problems that were not always easy to debug. A common scenario was to add a few clauses to an XTREE COLDEF definition, causing it to approach the 3K mark.) Manual TAB(-10,42) commands will now be ignored unless they actually specify a size larger than the current size.

993.2.2

XTREE parameter name change: The "SharedList" coldef option has been renamed to "CellList", which better captures the distinction with the standard "List" (since the standard "List" can now be shared, but it is still column-specific whereas "CellList" is cell-specific.)

993.2.3

XTREE enhancement: Combo lists defined with the List= clause can now be associated with column 0, allowing a single list to be shared between multiple columns. (Any column using cformat code l which does not have its own List= definition will use the column 0 list.)

Note that although this capability overlaps somewhat with the CellList= feature, because List= is still column-specific, it doesn't require the use of the use of a special byte in each cell to identify the list.

993.2.4

XTREE enhancement: Individual cells within combo box columns (using cformat l) may now be marked as display-only by inserting a "|" character at the start of the cell. The character does not appear in the display, but it prevents the cell from gaining the focus.

993.2.5

Compiler fix (1.1.364): The determination of whether the keyword LOOKUP is a statement or a function has been refined. In the last update, it was simplified to consider it a function if the next non-blank was a "(", but this caused problems with statements of the form: LOOKUP (A$ + B$),X. The determination of whether LOOKUP is a statement or a function now takes into account the full context in which it appears.

993.2.6

XTREE enhancement: The 4K limit on the length of an individual combo list (defined with List= or CellList=) has been eliminated.

993.2.7

XTREE bug fix: Close a window of opportunity to crash A-Shell by trying to trace a column definition string that is excessively long.

993.1.1

XTREE enhancement: You can now pre-load text into a self-serve combo cell, even if it is not editable. Previously this was impossible because when a combo is not editable, it can only display values that are defined in the list, and for a self-serve combo, the List=... The workaround is for XTREE to automatically add the item you want to display to the defined list, but still preserve the automatic exit with EXITCODE 29 when you click the down arrow.

993.1.2

XTREE fix: Using the | character at the start of an editable cell (combo or normal edit) to make that cell non-editable was only partially working. (The | was being lost in updating, causing the cell to revert to editable status after a re-entry, if you didn't reset it within the application.)

993.1.3

XTREE fix: The ScrollMode=Tree option wasn't working with self-serve combos.

993.0.1

XTEXT Enhancement: A new GDI Printing directive XTEXT permits printing a text or RTF file via XTEXT into a specified rectangle.

993.0.2

MIAMEX Enhancement: The new MX_GDICALC function MXGDI_CALCRECTX calculates size of XTEXT output.

993.0.3

Compiler fix: (1.1.363) Using a function to specify the filename in an OPEN statement was compiling without error, but was not working at runtime. Also, use of the LOOKUP() function within a PRINT statement was causing a spurious syntax error to be reported.

993.0.4

XTREE/ATE enhancement: For editable trees with cell validation, the amount of data being passed back and forth can become significant enough to cause noticeable delays. When both the server and client side are running 993 or later, an optimization filter is now being applied to reduce the amount of data transfer significantly. Even if this does not noticeably improve cell-to-cell time, it should reduce the load on the network and on the server CPU. You can disable the optimization by defining the environment variable XTREERAW=1 (on either the server or client side).

993.0.5

INFLD GUI fix: A spurious "!" was appearing in the keyboard buffer after certain message boxes (such as "invalid entry", or "not processed").

993.0.6

New XTREE feature: The Advanced Coldef option SharedList function can be used to create shared lists (combo boxes) that can be associated with individual cells.