1711 -- 05 February 2022 copies to topics by subject done thru .0.19

Shell Release Notes Version 6.5.1711.0 (02 February 2022)

1711.0.1

New

Language enhancement: Structure Definition Embedding added to A-Shell.

1711.0.2

EIR

MX_DYNSTRUCT enhancement: the DYNOP_DEF call now supports the ability to retrieve the structure definition directly from the RUN file, provided it has been embedded. To indicate that you want to retrieve the definition from the current RUN file, set the src$ parameter to "", for example: xcall MIAMEX, MX_DYNSTRUCT, DYNOP_DEF, status, "", fields, stsize, dsname$

1711.0.3

New

Language enhancement: New dot function .BINDSTRUCT binds a dynamic structure to the defstruct associated with a defstruct instance and then copies the defstruct instance data to the dynstruct.

1711.0.4

New

Language enhancement: automatic DYNSTRUCT binding during function call parameter passing.

1711.0.5

New

Language enhancement: new dot function .ISDEF can be used to determine whether the specified DYNSTRUCT member exists.

1711.0.6

New

Language enhancement: new dot function .DYNOFFSET returns the offset to the specified DYNSTRUCT member.

1711.0.7

New

Language enhancement: new dot function .DYNOFFSIZ$ acts like .OFFSIZ$() except that it operates at run time instead of compile time and works exclusively for DYNSTRUCT members.

1711.0.8

Fix

Compiler bug fix (edit 963) - fix bug introduced in compiler edit 892 to support dynamic structures, in which the leading term of a relational expression, such as (A$ = "Y"), when inserted inside of a larger expression, was being converted to string or numeric to match the terms prior to it. In a case like the following line,

X = Y + (A$ = "Y")

the A$ string variable would be converted to a number, which in term would have caused the "Y" to be converted to a number to match. This would have resulted in the statement compiling as:

X = Y + (val(A$) = val("Y"))

which would have made that relational expression act completely different from the expectation.

Fortunately this is an exotic formulation, which may be why it went so long without notice. The problem did not affect ordinary conditional statements like...

if (A$ = "Y") ...

1711.0.9

EIR

XTREE enhancement: exporting to a spreadsheet now supports the footers if XTR.SHOWFOOTER=1. Also, when exporting in the full XLSX mode (see SBR=XTREE_EXPCSV2XLSX), if the Advanced Coldef Parameter Title is defined, it will be used as a banner. The special macro tokens (e.g. %date%) are supported but %page% and %total%—which don't make any sense in the banner of a spreadsheet—are just converted to blanks, as are the justification separators (|).

1711.0.10

Fix

INFLD refinement: when an entry fails one of the internal validations that display an "Invalid..." message (e.g. value not listed in SETDEF, invalid date format, etc.), the field is now cleared before it regains the focus. This makes it less likely for casual users to get stuck in an apparent loop.

1711.0.11

Fix

XTREE bug fix: eliminate a limitation that prevented more than one XTREE control at a time from containing a date picker control.

1711.0.12

EIR

XTREE refinement: increase the threshhold for switching to the larger "+" and "-" MLVL buttons (see 6.5.1706) for standard 96 dpi (non -dpm) mode.

1711.0.13

Fix

DIR.LIT 3.4(170) /MEMREQ switch now recognizes newer RUN structures. Previously it was reporting "N/A" for RUN files requiring minimum runtime versions or with dynamic functions or embedded DEFSTRUCTs.

1711.0.14

Fix

A-Shell/Windows command line bug fix: -g <icon> was not supporting quoted filespecs, and thus not supporting any filespecs with embedded spaces. Note that if there are multiple -g <icon> arguments, the last one takes precedence. This can arise with HOSTEX using the $ASHELL macro where you want the new process to use a different icon than the parent.

1711.0.15

EIR

Compiler update (edit 965) includes the features listed above.

1711.0.16

New

ISAM 1.X enhancement: IDX rock now contains a count of the keys allocated (additions minus deletions) along with the records allocated. This may be useful as a quick way to compare the number of keys with the number of records. Typically these should be the same, except in cases where the application deliberately adds more or less than one key to the IDX per record.

Note that the keys allocated value will only be valid for files that have been rebuilt under A-Shell 6.5.1711+. See the following related items.

1711.0.17

New

ISMDMP.LIT 2.0(145) enhancement: Display new "Keys allocated" count if A-Shell version 6.5.1711+ and non-zero.

1711.0.18

New

ISMROK.SBR enhancement: Add optional argument keyalc to return the new keys allocated value. Syntax:

xcall ISMROK, ch, idaalc, idaavl{, recsiz, keysiz, keypos, devdrv, idxalc, idxavl, idanxt, idxnxt, idx'lvls, idx'blk'siz, idx'type, keyalc}

1711.0.19

New

ISMPAR.SBX enhancement: Add new optional argument keyalc to return the new keys allocated value. Syntax:

xcall ISMPAR, ifname, ismpak {,lvl1cnt, keyalc}