Please enable JavaScript to view this site.

A-Shell 6.5 Development Notes

Navigation: Notes by Version and Date > 2022

1720 — 14 September 2022

Scroll Prev Top Next More

 

1720.7.2

Fix

(Windows) Increase runtime stack size to deal with stack overflow errors in extremely large compilations.

1720.7.1

Fix

Compiler edit 1003:  /F1 switch wasn't eliminating all minimum run versions from the header.

1720.6

Fix

Dynamic structures: auto-binding a structure that was previously bound manually was leading to a variety of downstream errors.

1720.5

Fix

XTREE / PDFX: Printing to PDFX from the XTREE Print Preview window was acting as if PDFX was not licensed—i.e., showing the watermarks. Note that within this print preview window, you have to select the PDFX printer which contains "A-Shell" in the name; the regular PDF-XChange Standard will not work.

1720.4

Fix

Compiler edit 1002: A label named SET'RECNO or XOPEN was incorrectly setting the minimum runtime version in the RUN header to 1684, as if it had seen the statements by those names.

1720.3

Fix

PDFX: when generating multiple emails within the same session using Method 5 or Method 6—i.e., relying on the default email client via the MAPI interface—PDFX was in some scenarios failing to update the file attachment and attaching the previously generated file to the next email.

1720.2

Fix

Windows GUI refinement: revise the refresh logic when dialogs are maximized or normalized in attempt to close timing loophole in which one or more controls within the dialog would not get completely resized.

1720.1

Fix

XTREE splitter: the LEFTPANEWIDTH = -2 option (introduced in 6.5.1720.0) was getting confused by some combinations of attributes.

1720.0.1

New

VUE enhancement: new INI.VUE and command mode directive:

USETABS <bool>

When specified, it determines whether the TAB key is stored as a TAB character or is expanded to spaces (overriding the behavior previously determined by the TAB # directive, which otherwise sets the tab width).

If USETABS is not specified, the choice continues to be based on the TAB # directive: TAB 8 effectively enables the USETABS option; any other TAB value disables it.

1720.0.2

New

XTREE enhancement: The ImgDir Advanced Coldef Directive can now be used to specify the name of a DLL containing icons, allowing just the icon name to be specified in each cell. Note that to indicate that the ImgDir value is a DLL name, it must be preceded with "::", for example:

ImgDir=::ASHICO1

1720.0.3

Fix

CMDLIN: the method of folding the contents of the CMDLIN system variable now matches that used by UCS(), extended support to Latin1 accented characters under Windows. Under Linux, it still depends on the locale settings.

1720.0.4

New

Language enhancement, compiler edit 1000: named parameters can now be used with DYNFUNC, e.g.

DYNFUNC(fname$, argx=valuex, argy=value1)

Note that this affects both the compiler and runtime, so the use of named parameters in a DYNFUNC expression will now set the minimum runtime level to 6.5.1720.

1720.0.5

 

Language enhancement, compiler edit 999: default parameter values are now supported in dynamic functions. Previously the compiler didn't complain, since functions declared dynamic can still be called statically.

Use of default values in a dynamic function definition now sets the minimum runtime level to 1720, so programs that ran under earlier runtimes (whether or not the default values were respected) will now require the 6.5.1720+ runtime.

1720.0.6

New

Language enhancement, compiler edit 1000: /CI support now extended to dynamic functions, both the function names and argument names.

1720.0.7

New

Language enhancement, compiler edit 1001: The CALL statement can now be used to invoke a dynamic function. For example:

CALL DYNFUNC(func$,args...)

CALL DYNFUNC$(func$,args...)

This is analogous to using the CALL statement with static function, and is more natural than a dummy assignment when you don't care about the return value of the function. Requires A-Shell 6.5.1720+.

1720.0.8

Fix

Dynamic functions: close (mostly) a loophole which previously may have resulted in a dynamic function being confused about whether it was compiled with 16 or 24 bit addresses, typically resulting in a crash of some kind. The fix is still not 100% perfect because the runtime system is not able to determine whether the program was compiled with 16 or 24 bit addresses until it encounters a CALL or GOTO. But that covers virtually all of the use cases since even the internal jumps used to skip over functions included above the start of the program or used to implement control statements like IF, DO, FOR, SWITCH, etc. will suffice.

1720.0.9

Fix

ASQL and libashodbc 1.5.117:

•   SQL Server NVARCHAR() field types now report in ASQLOP_GET_FLDDEFS as VARCHAR rather than as TINYINT. Note that NVARCHAR(), which uses UNICODE16 encoding, as opposed to VARCHAR(), is translated to/from ANSI so from the application perspective the field types are effectively equivalent.

•   SQLOP_FETCH_ROW with the FETCHR_ARRAY option was loading the array elements shifted up by 1, i.e. starting with array(2) instead of (1).

•   SQLOP_FETCH_ROW with the FETCHR_FIELDS option was reporting bogus errors in the case where the target variables were variable length and the max length declared for the database columns was > 255.

1720.0.10

New

XTREE: As an alternative or workaround to the splitter position optimization logic built in to the control for split-pane configurations, which does not always work properly, you can now set XTR.LEFTPANEWIDTH = -2 to force A-Shell to use it's own manual width calculation. The manual method is less precise and slower than the logic built in to the control, but less likely to be completely wrong.