Please enable JavaScript to view this site.

A-Shell Development History

1202.6

XTREE bug fix: Certain editable multi-select trees were becoming scrambled when updating the editable cell data from the answer array.

1202.5.1

Buffer overflow loophole closed. A loophole was found in a commonly used memory copying routine which could have allowed a buffer overflow if passed a size greater than or equal to zero bytes. There are an unknown number of possible places where this might have happened, but it was discovered when passing XTREE a value of zero for the addcnt parameter.

1202.5.2

XTREE internals reorganization: A considerable amount of code within XTREE has been reorganized to make it easier to maintain. In theory this should not introduce any new behavior, but it is noted here to identify the cause should any such unwanted behavior surface.

1202.4.1

XTREE enhancement: Property sheet mode now supports multi-level. To configure this, specify the cformat code "@" for each "column" (i.e. each item) that should appear at level 1. Columns (i.e. items) without this code will appear at level 0. To designate an item at level 2 or below, add additional "@" codes (one per level). For example:

coldef = "1~1~Shipping Info~S~~"         ! Level 0 (no "@")

coldef = coldef + "2~30~Address~SE@~"    ! Level 1 (one "@")

coldef = coldef + "32~30~City~SE@~"      ! Level 1 (one "@")

...

 

1202.4.2

XTREE enhancement: New cformat code " " blank for XTREE No Strip

1202.3.1

XTREE enhancement: Column alignment in property sheet mode now works as expected (i.e. gets translated to cell alignment for the cells in the values column).

Note that if you are using anything but left justification, and if there is any possibility of cells extending logically beyond the control width, you should xtr'closedended mode and XTF2_AUTOEXPCOL. Otherwise, you may end up column data that doesn't appear unless you use the horizontal scroll bar to scroll to the right.

1202.3.2

XTREE enhancement: New cformat code "_" (underline) may be used with editable columns to cause the edit cell to shrink to fit only the number of allowed characters (so as to not give the user an initial false impression of the number of allowed characters). This will probably only be reasonable when a fixed pitch font is used.

1202.3.3

XTREE refinements: xtr'closedended now works better when there are row headers.

1202.2

Compiler bug fix (edit 480): Fix problem introduced in edit 479 causing "FOR" statements with a "STEP" clause to generate syntax errors.

1202.1.1

XTREE bug fixes: clean up various issues related to property sheet mode.

1202.1.2

Compiler bug fix (edit 479): Fix an additional problem with += and -= operators, introduced in edit 478 (5.1.1202.0), leading to bogus unmapped variable errors.

 

Warning: the following two XTREE enhancements involved a considerable number of internal structural changes within XTREE, so it is highly possible that despite in-house testing, some side-effects may be revealed during beta testing. (So if you use XTREE, this would not be a good update to put immediately into production!)

1202.0.1

XTREE enhancement: New flag XTF2_ANSEQDATA (&h0000100) may be used to indicate that the layout of the answer array is the same as that of the data array. The main limitation is that it does not support drag/drop or multi-selection. (It may be extended in the future to the more general case). The current primary motivation is to permit the use of same array (or identically formatted ones) for both the answer and data in trees involving checkboxes. (You were already allowed to use the same array for both parameters, but it wouldn't have worked with checkboxes due to the normal rule requiring checkboxes to be placed at the start of each row in the answer array.)

The flag is set automatically when you pass the same variable for both the answer and data parameters.

1202.0.2

XTREE enhancement: Add Property Sheet Mode.

1202.0.3

MX_SHELLEX refinement: remove 260 character limit on objectspec, and increase the 500 character limit on the parms argument to 1024. There remains an overall limit of 4096 bytes for all of the arguments combined. If the limit is exceeded, the routine will return with status 8 (out of memory).

1202.0.4

Compiler bug fix (edit 476): A prior edit (475) (see 1198.2 below) introduced a bug which effectively disallowed the use of multiple-dimensioned array variables in a FOR statement.

1202.0.5

Compiler bug fix (edit 477): The +=, -=, *= and /= operators (introduced in compiler edit 475; see 1195.0 below) were treating subscripted variables as if they were scalars. When using /M, this would have most likely caused a variable-not-mapped error. But without /M, or in the case where there was a mapped scalar of the same name, statements of the form:

var1(a) += b

would have been interpreted as

var1(a) = var1 + b

which obviously would have been semantically (but not syntactically) wrong.

1202.0.6

Compiler bug fix (edit 478): sizeof() was not allowing subscripted variables. It was also not working with private variables.

1202.0.7

INPUT #CH refinement: A Ctrl+Z at the end of a file will now be stripped from the returned variable, except in INPUT RAW mode. See the A-Shell forum for a detailed discussion of the issue.

1202.0.8

GDI printing enhancement - four new GDI directives implemented:

//XOFFSET,#   //YOFFSET,#   //XORIGIN,#   //YORIGIN,#

These may appear within the top 8 lines of a printfile (and before any printable text) to get the effect of the equivalent XOFFSET, YOFFSET, XORIGIN and YORIGIN printer init file commands. Note that the arguments are always in twips, independent of the map mode.

For more information on the commands, see the A-Shell Setup Guide ... Printer Configuration ... Init File Commands.

1202.0.9

Icon button bug fix: prior fix introduced in 1190.5 relating to a problem with icon buttons, had side effect of causing icon buttons to never lose their visual "focused" status after getting it.

1202.0.10

INFLD refinement: Ctrl+C now returns exitcode 10 when both TYPE V and |K are set and we are in GUI mode. |K normally causes Ctrl+C to be treated as copy-to-clipboard, but now when V is set, it forces the exitcode 10 action.

1202.0.11

XTREE bug fix: When an exit from an editable cell involves two possible exitcodes (-48 for validation, plus something else such as from a click event), the other exitcode is now returned rather than the -48. (This restores the original behavior prior the changes to support multiple exit codes in 5.1.1196). Note that if you specify the xinfo parameter, the -48 will still be in the list, but it will now be in the second position. Also note that you can detect whether cell validation is needed in such a case by looking at the XTR'XVALIDATE field.

1202.0.12

Log file bug fix: close a loophole which rarely resulted in a harmless but alarming error message to display during the process of rolling over the ashlog.log file.

1202.0.13

Memory allocation tracing refinement: eliminate a couple of instances of "bad request to free memory" messages in the log when the MALLOC trace was set. (The message was harmless, but disturbing.)