Please enable JavaScript to view this site.

A-Shell 6.5 Development Notes

Navigation: Notes by Version and Date > 2022

1711 — 23 February 2022

Scroll Prev Top Next More

1711.5.1

Fix

INPUT CSV: when there were more fields on the line than variables to receive them, it was failing to advance completely to the next logical input line for the next INPUT CSV statement when one or more of the skipped over fields contained embedded line breaks.

1711.5.2

Fix

WRITECD: fields containing embedded line breaks were not always getting quoted properly.

1711.3

Fix

Compiler edit 968, refinement: Improve clarity of error messages relating to argument lists. Also close loophole allowing illegal parameter sizes to fail to trigger an error.

1711.2

New

Compiler edit 967, refinement: LSX file ++include indicators now show a <##_#> suffix indicating the sequential file # and the nesting level.

1711.1.1

New

(UNIX) The following launch errors now set the A-Shell process return code:

11 - JOBTBL full

12 - No license

13 - No computer name (Windows)

14 - QFLOCK.SYS corrupt

15 - QFLOCK.SYS version incompatible

16 - Jobname already exists

17 - Error locking or accessing JOBTBL.SYS

18 - Too many sessions sharing same client IP (Windows)

20 - Exceeded maximum nodes allocated to group (group licensing)

1711.1.2

New

(UNIX) The -q (quiet) switch will now silence admin error messages associated with the above errors.

1711.1.3

Fix

Compiler edit 966: Close window of opportunity for GPF associated with errors related to embedded DEFSTRUCTs.

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}

1711.0.20

EIR

PDFX printer selection: the printer matching algorithm, which normally accepts the first left-anchored partial match between the specified DEVICE name in the printer initialization file and the printer name in the Windows printer list, now favors PDF-Xchange Standard over earlier versions when there are multiple possible matches. As always, you can eliminate uncertainty by specifying the complete name in the DEVICE statement.

1711.0.21

EIR

MX_LASTPTRFIL: Previously it only worked properly if the WAIT option was used in the prior SPOOL request. It now returns the last filespec written by the PDF-XChange Standard driver (for the current session) regardless of the switches. But since the file writing operation is asynchronous, the WAIT option is still required to be sure that the filespec returned is from the last print request and not from a prior one if the application has gotten ahead of the printer driver.

1711.0.22

Fix

General LIT commands: the following updates fix a command line parsing problem caused by leading whitespace on the command line:

COPY.LIT 3.4(145)

ERASE.LIT 3.4(136)

DIR.LIT 3.4(171)

HEAD.LIT 3.4(106)

TAIL.LIT 3.4(106)

PRINT.LIT 3.4(136)