============================================================================ A-Shell Development Notes Version 5.0.999.9 (30 Jul 2008) ============================================================================ 1. --- EFS update: modifications to support new logging functions in EFS build 112. 2. --- MX_EXPFIL fix: on error, was returning positive rather than negative values, which didn't match the documentation, and might even have been confused with file sizes for very small file expansion operations. 3. --- (AIX) ISAM-A was generating Basic error 23 (protection violation) rather than setting FSTAT to ISAM_NA (-2) when a GET'LOCKED requested a record that was already locked. (Problem only affected AIX.) ============================================================================ A-Shell Development Notes Version 5.0.999.8 (11 Jul 2008) ============================================================================ 1. --- Fix CentOS problem relating to the handling of B4 variables assigned negative values. (Same fix as in 5.1.1118.0, which see for details.) 2. --- EFS bug fix: INPUT LINEs longer than 4094 bytes were not working properly. 3. --- MIAMEX,27,CHIN,CHOUT bugfix: Contrary to the documentation, it was not supporting RANDOM files under UNIX. Now it does. 4. --- Calendar Control (ASHMONTHCAL) bugfix: Querying the control was not returning the currently set date if the control had been updated programmatically and no event such as a mouse click occurred in the interim. 5. --- MX_FILESTATS ATE refinement: When MX_FILESTATS is used to query the status of a file on the PC (via ATE), if the filespec is a UNC spec (i.e. starts with "\\"), then the timeout wait is extended from 5 to 15 seconds. This should eliminate most problems with ATE timing out before Windows times out (if the UNC spec is not available). (This situation was leading to ATE becoming unsynchronized with the server, which in some cases was leading to application confusion.) ============================================================================ A-Shell Development Notes Version 5.0.999.7 (05 Jun 2008) ============================================================================ 1. --- XTREE bug fix: The TRACE XTREE had a memory corruption loophole. 2. --- AIX I variable type arithmetic fix: Under AIX, I2 was not properly evaluating -1, and both I2 and I4 were not crossing over correctly from negative to positive when adding 1 or subtracting 1 from the maximum or minimum value. Problem did not affect little-endian platforms such as A-Shell/Linux and A-Shell/Windows.) ============================================================================ A-Shell Development Notes Version 5.0.999.6 (05 May 2008) ============================================================================ 1. --- GDI printing fix/enhancement: //XTEXT, //IMAGE, and //METAFILE will now look for the file in the same directory as the printfile itself, if not found at the location specified, even when the location specified is a UNIX path. (This was previously true, since 5.0.999, but only when the original spec was a Windows path. The new logic is mainly of use in ASHLPD or other environments where you generate the GDI printfile under UNIX and then transfer it to Windows.) 2. --- Update Celibec subroutines (in particular, add EXTRAI.SBR) 3. --- XTEXT bug fix: Setting TXC'CTLNO = -1 (to auto-select the control #) was causing memory corruption (usually leading to a crash or weird error.) 4. --- XTEXT bug fix: TXOP_DISPLAY was not working as documented. 5. --- Windows numerical bug fix: Certain operations on B4 variables (particularly INPUT) were truncating the value to 2^31 if was > 2^31. 6. --- Dialog title bug fix in handling "&": The "&" was getting converted to "&&" if the MBF_DLGNOCREEP flag was set. ============================================================================ A-Shell Development Notes Version 5.0.999.5 (29 Apr 2008) ============================================================================ 1. --- SYSTAT.LIT 3.0(158) fixes "subbmited" spelling in SYSTAT/? display (thanks to eagle-eyed Scott Buechler, for noticing this after only about 10 years.) 2. --- Multiline INFLD/GUI now supports multiline clipboard paste. (Same fix as in 1109.2.) 3. --- XTREE max columns increased from 64 to 80 (and overflow test inserted). (Same fix as in 999.5). 4. --- AUI_CONTROL enhancement: max size of ctext parameter increased from 512 to 1024. (Can be an issue with extremely large TAB controls or multi-line text controls.) Fix problem with truncation of command strings in a large TAB even when the TAB text fits within the limits. Also, check for overflow of ctext string before it crashes A-Shell. 5. --- ISAM-A eof errors (after a GET'NEXT or GET'PREVIOUS) are no longer logged unless both the ISAM and BASERR traces are set. Previously, they were logged if either of those traces are set. (Since BASERR is recommended at all times, this was causing some distress over what appeared to be a lot of ISAM "errors" which weren't really errors.) Note that the same logic applies to the key-not-found error in a FIND or GET statement. ============================================================================ A-Shell Development Notes Version 5.0.999.4 (08 Apr 2008) ============================================================================ 1. --- ATE / GUI bug fix: The clipboard paste operation into a control such as INFLD or XTEXT was not working properly when the number of characters to paste was more than 100. (The characters were being sent to the host and thus appearing in some later context.) ============================================================================ A-Shell Development Notes Version 5.0.999.3 (19 Mar 2008) ============================================================================ 1. --- Windows GDI printing bugfix: PITCH=AUTO was (inappropriately) considering //GDI command lines when calculating the longest line (and thus determining the font width). Typically was only an issue for //PDFX commands, which could be long. GDI commands are now ignored for the purpose of the auto pitch calculation. 2. --- MX_GETOFD bug fix: An initial AMOS spec in the PATH argument wasn't being parsed correctly due to the comma. (Native specs were working ok.) 3. --- ATE / INFLD bug fix: The date and time format error message boxes were leaving "!" garbage characters in the input buffer (and possibly even locking up the terminal). ============================================================================ A-Shell Development Notes Version 5.0.999.2 (07 Feb 2008) ============================================================================ 1. --- Important UNIX locking bug fix - A recent "improvement" in the file locking routine (to loop when a lock request was interrupted by an unexpected signal) was opened a window of opportunity for an infinite loop to occur. (The symptom was that the job appeared to lock up and the ashlog.log file filled up very quickly with "RLOCK Error" messages.) 2. --- UNIX / ATE auxiliary printing refinement: The spooler switches are now passed to the ATE client even if no printer name was specified. Previously, the switches were only passed when an printer was explicitly specified (e.g. DEVICE=AUXLOC:LASER). An example of where this is useful is to force ATE to print a file in landscape even if the ATE default printer configuration was portrait. 3. --- XTREE bug fix: In a split tree, when exiting from an editable cell on the right with ESC, sometimes the tree was left in a selection-only state where exit keys would not work. Toggling the focus to another window and back again was one workaround, but this patch should eliminate the need for the workaround. ============================================================================ A-Shell Development Notes Version 5.0.999.1 (30 Jan 2008) ============================================================================ 1. --- Windows bug fix: the left and right margins of the main A-Shell window (and by extension, the grid metrics) were going haywire with some multi-monitor configurations. (It isn't clear what triggered the problem, as the workaround affected logic that had been there for many months.) 2. --- Remove 6.3 limitation on module names in user memory. They can now go to 10.3. ============================================================================ A-Shell Development Notes Version 5.0.999.0 (23 Jan 2008) ============================================================================ 1. --- EFS refinements: When EFS is enabled, all stream I/O is now passed through the EFS library (making it available to the mirroring subsystem). A number of conflicts between EFS and stream handling have been fixed. 2. --- ERR(2) fix/enhancement: It was not counting INPUT and PRINT statements to files (thus possibly misleading you about the last file accessed). 3. --- TRACE RW improvement: INPUT and PRINT statements to files now traced. 4. --- XTREE fix/enhancement: COLDEF type EM now works as one might logically expect. (E=edit, and M=multiline, with the ENTER key inserting a CRLF into the field rather than exiting the cell.) Same idea as Em (except it treats the ENTER key as exiting the cell edit.) 5. --- XTREE fix: column-specific context menus were not working properly when the tree was on a secondary monitor in negative coordinate space. 6. --- GUI TRACE fix: When the GUI trace was active but the Debug Message Window not open, certain XTREE events were opening the Debug Message Window but not outputting any message (which was rather annoying and confusing). 7. --- XTREE bug fix: Double-clicks on an XTREE which result in the control being deleted by the application were sometimes leaking through to an underlying control (causing an unwanted click event). 8. --- INFLD bug fix: SETDEF pattern matching was allowing partial matches when the size of the field data was within 1 of the XMAX value. (It should only allow a partial match if there is a wildcard in the pattern or if the field data matches the XMAX value.) ============================================================================ A-Shell Development Notes Version 5.0.998.9 (07 Jan 2008) ============================================================================ 1. --- MX_GDICALC fix: Incompabitibility with MX_GDICALC and the new Width parameter to the //SETFONT GDI command (introduced in 998.3) 2. --- DIR.LIT 3.0(145) bug fix: /NATIVE switch was displaying the wrong path in the directory header. ============================================================================ A-Shell Development Notes Version 5.0.998.8 (29 Dec 2007) ============================================================================ 1. --- Fix XTREE bug: Context menus in editable cells with validation were not always working. They were exiting with -48 (validation) instead of displaying the context menu or returning the context menu's exitcode. (Problem introduced in 997.9). 2. --- XTEXT/ATE enhancement: When loading text from a buffer, the control now filters out spurious LF characters (which sometimes result from confusion in passing the text back and forth between the server and PC using various line ending disciplines). (Mainly this was noticed with ATE connecting to a Windows server.) ============================================================================ A-Shell Development Notes Version 5.0.998.7 (22 Dec 2007) ============================================================================ 1. --- ISAM-A enhancement: max record size increased from 8K to 16K. 2. --- Runtime bug fix: RESUME from an error trap triggered by the user hitting ^C while waiting on a locked record in READL was generating an error 35 (unsupported function). This is apparently a rare case, as the problem went back many years. (Probably most apps handle ^C either with an explicit RESUME or by terminating the program.) 3. --- XTEXT enhancement: If a text string is supplied in the AUXDATA parameter, it will be used for the title of any dialog box displayed under XTEXT's direct control. Previously this applied only to the XTEXT popup dialog (when the XTF_POPUP flag was specified). Now, it extends to the dialog which asks whether to save when user hits ESC after changing the text. If AUXDATA not specified, or null, then XTEXT continues to use the SYS:APPMSG.xxx 000,001 message string (which is normally reserved for the application name). 4. --- ASHW32.EXE code signature bug fix: The code signature on ASHW32.EXE was broken in 998.6. 5. --- ERSATZ.LIT 2.0(103) bug fix: Display format now allows for 10 character ersatz names. (Previous display format truncated at 6 characters.) 6. --- ASHUPD.LIT 1.2(123) bug fix: Was falsely indicating no updates available. 7. --- ISMUTL.LIT 1.4(132) enhancement: Max record size increased from 8K to 16K. 8. --- SLEEP.LIT 1.0(101) enhancement: Now supports fractional seconds. ============================================================================ A-Shell Development Notes Version 5.0.998.6 (15 Dec 2007) ============================================================================ 1. --- GDI printing bug fix: PITCH=AUTO was broken in 986.5. 2. --- AMOS.SBR bug fix: if the command argument was passed as a variable which had no trailing null, garbage was effectively concatentated to the end of the command. (Mainly affected XCALL AMOS, CMD$ where CMD$ = "VUE + filename.) 3. --- Compiler bug fix: If last line of file ended with an &, compiler was getting stuck in an infinite loop. 5. --- ashico1.dll update: New version 1.0.0.6 adds another 26 icons: document_cert::ashico1 document_cup::ashico1 document_heart::ashico1 document_info::ashico1 document_pref::ashico1 first_aid::ashico1 fit_to_size::ashico1 font::ashico1 gears::ashico1 history::ashico1 notebook::ashico1 notebook_pref::ashico1 preferences::ashico1 q_and_a::ashico1 signpost::ashico1 star_blue::ashico1 text_bold::ashico1 text_italics::ashico1 text_normal::ashico1 text_speaker::ashico1 text_ul::ashico1 window_colors::ashico1 window_env::ashico1 window_gear::ashico1 window_pref::ashico1 The sample program icodlg[908,27] in the SOSLIB has been updated (edit 110) to show all of the icons available. ============================================================================ A-Shell Development Notes Version 5.0.998.5 (10 Dec 2007) ============================================================================ 1. --- XTREE bug fix: close loophole causing rapid in/out in certain cases of typeahead; fix "click-through" problem on double-click. 2. --- GDI printing fix: BIN command in printer init file was not working. 3. --- GDI printing enhancement: //BIN command (if within top 5 lines of printout and before any lines which generate output) will set bin without causing a page feed (i.e. acts like the equivalent BIN command in the printer init). 4. --- UNIX file copy bug fix: Logging into a write-protected directory and then trying to copy a file to it was causing a segmentation fault. ============================================================================ A-Shell Development Notes Version 5.0.998.4 (06 Dec 2007) ============================================================================ 1. --- GDI printing enhancement: //SETFONT now supports an optional width parameter, allowing you to stretch or squeeze the width of the font independent of the height: //SETFONT,height,face,pitch-fam{,charset,weight,style,rotation,width} The units of width are equivalent to that of height (10ths of points). 2. --- ATE aux port printing fix: Aux on/off codes weren't working for WYxxx. 3. --- MX_SHELLEX fix: The return status wasn't correct (in some cases generating an out-of-memory error.) ============================================================================ A-Shell Development Notes Version 5.0.998.2 (28 Nov 2007) ============================================================================ 1. --- MX_SHELLEX bug fix: was failing to return the error code in the STATUS parameter. 2. --- NT 4.0 compatibility fix: When support for dual monitors was added (around edit 970), a function call was introduced which did not exist under NT 4.0, causing A-Shell to abort. (A messagebox was displayed, indicating that the function, GetMonitorInfoA could not be located.) ============================================================================ A-Shell Development Notes Version 5.0.998.1 (28 Nov 2007) ============================================================================ 1. --- ATE bug fix: When support for WYSE50 was added (in 997.7), auxiliary printing became unreliable in detecting the end of the printing operation, resulting in commands immediately following the print request being lost, which in turn could have given ATE the appearance of being hung. 2. --- GUI bug fix: In some cases, it was impossible to open up the debug message window (if it had been previously open and closed indirectly, by closing the parent dialog.) 3. --- ATE/XTREE server-side refinement: Eliminate a situation where null bytes within an XTREE data array would cause the tree data to be terminated at that point under ATE, but not under local A-Shell/Windows. (This situation pops up periodically in cases where the physical data array contains some data that is not referenced in the COLDEF definition.) ============================================================================ A-Shell Development Notes Version 5.0.998.0 (22 Nov 2007) ============================================================================ 1. --- Bug fix (UNIX only): Assignments of the type BVAR = were failing when BVAR was of type B1, B2 or B3, and was greater than 2^32. It was assigning 0 to BVAR, instead of the modulo 8, 65536 or 16777216 value. (This is an unlikely situation, so probably didn't affect many programs, but was nevertheless incorrect and inconsistent with the Windows version, which handled it correctly). 2. --- Log file refinement: ISAM retry (locking) messages are no longer logged to ashlog.log unless the TR_XDEBUG or TR_ISAM trace flag is set. 3. --- Log file refinement: Image file loading error messages are no longer logged to the ashlog.log unless the TR_XDEBUG or TR_GUI trace flag is set. 4. --- Bug fix: ALT-F11, ALT-F12 were not working under Windows. 5. --- INFLD (GUI) bug fix: eliminate a spurious chr(13) character that was appearing in the input buffer after certain kinds of fast-mode combo box operations. 6. --- Bug fix (Windows): Strings of the form %string% were sometimes being converted to garbage if "string" was not a defined environment variable. (This affected any string that was being passed through the environment variable filter, which includes control click strings, filespecs, and command line arguments. ============================================================================ A-Shell Development Notes Version 5.0.997.9 (21 Nov 2007) ============================================================================ 1. --- XTREE bug fix: In many cases it was failing to exit for cell validation (with exitcode -48) if you clicked out of the cell (rather than used a keyboard navigation operation). 2. --- RENAME.SBR enhancement: Under Windows, XCALL RENAME errors will now be logged to the ashlog.log file. In addition, if the SYSERR TRACE is active, they will be displayed on the screen. (This is helpful in recognizing and tracking down mysterious Windows rename errors.) ============================================================================ A-Shell Development Notes Version 5.0.997.8 (16 Nov 2007) ============================================================================ 1. --- AUI bug fix: When resizing images displayed inside of controls (using AUI_CONTROL rather than AUI_IMAGE), the MBF_NODISTORT flag was being ignored. 2. --- AUI bug fix: The image scaling logic for MBF_STATIC+MBF_BITMAP+MBF_NODISTORT was falsely assuming that the images were square, usually resulting in smaller than optimum (or "correct") display size. COMPATIBILITY WARNING: if your application was inadvertantly counting on the incorrect display size, the fix could actually require a corresponding fix in your application. 3. --- AUI bug fix: The scaled display size of images using MBF_STATIC+MBF_BITMAP were being scaled to the previous multiple of 16 pixels, which resulted in them being anywhere from 0 to 15 pixels smaller than they should have been. (The effect was similar to the bug described previously, and the same compatibility warning applies.) 4. --- XPUTARG bug fix: Outputting a B value from within a Function/procedure or SBX to an I variable was not working properly. 5. --- IMAGE.SBR bug fix: Opcode 5 (to get information about an image file) was leaking resources when the image file was specifed (rather than using an image handle). 6. --- AUI imaging enhancement: you can now control the alignment of images within static controls by adding one or more of the following flags to MBF_STATIC+MBF_BITMAP+MBF_NODISTORT: MBF_HCENTER (&h000000C0) - horizontal centering (at top) MBF_VCENTER (&h00000020) - vertical centering (at left) MBF_CENTER (&h000000E0) - centering along both axes Note that these results in changes to the actual stored coordinates of the static control. (This probably has no consequence for your application, but might be confusing if you look in the control dump.) Another way to center static images within the control, without changing the dimensions of the control (and thus much more efficiently) is to add the new SS_CENTERIMAGE (&h00000200) flag to the WINSTYLE parameter (and omit the centering flags described above). A new SOSLIB sample program, STIMGT.BP[908,32] illustrates these options. The above symbols have been added to the ashinc:ashell.def as well. 7. --- New symbols added to ASHELL.DEF: WS_THICKFRAME (&h040000) may be added to the WINSTYLE parameter when creating static controls to give them a raised panel effect. (This is the visual reverse of WS_EX_CLIENTEDGE.) It isn't clear whether any other control types can benefit from this option, but it probably won't hurt to try. MBF_CENTER, MBF_HCENTER, MBF_VCENTER - As described above, these can be used to adjust the alignment of an image within a static control. They can also be used to change the default (center, top) alignment of static text controls. See the new SOSLIB program ALIGN.BP[908,24] for an example. BS_TOP (&h00000400), BS_BOTTOM (&H00000800), BS_VCENTER (&h00000C00) can be added to the WINSTYLE parameter for buttons to adjust the vertical alignment of the text within the button. The horizontal alignment can be adjusted by the traditional MBF_RTJUST and MBF_LFJUST flags. (Note: default alignment for buttons is centered in both directions.) SS_CENTERIMAGE (&h00000200) can be added to the WINSTYLE parameter for static images (scaled with MBF_NODISTORT and without any other MBF_xxx alignment options) to center them within the static control, without changing the size of the control. See the STIMGT.BP[908,32] sample program. ============================================================================ A-Shell Development Notes Version 5.0.997.7 (14 Nov 2007) ============================================================================ 1. --- ATE bug fix: eliminate a spurious 4 second delay when starting up a new PolyShell job. 2. --- ATE refinement: Selecting "WYSE50" emulation now requests the terminal type "wyse50" on the server, instead of "wyse5g" as before. (Both wyse50 and wyse5g act the same from the ATE perspective, but obviously one is much more common and thus more compatible on the server side.) 3. --- ATE server side enhancement: Clients with terminal type wyse50, am65, and am75 are now probed at startup to see if they are really ATE, in which case they can be automatically licensed without requiring the LICENS/ATESRV command. ============================================================================ A-Shell Development Notes Version 5.0.997.6 (13 Nov 2007) ============================================================================ 1. --- ATE emulation bug fix: Emulator was displaying spurious "+" characters when in alternate-character-set mode. 2. --- INFLD bug fix: Problems with a spurious space appearing in the input buffer and other erratic behavior in combo boxes has been resolved. 3. --- INFLD enhancement: New TYPE code |. (vertical bar, period) forces INFLD to use periods rather than underlines for the field marker in text mode. (Previously you had to use prehistoric compatibility mode, or allow decimal points, to achieve this.) 4. --- XTREE bug fix: Correct an issue with unwanted vertical scrolling on re-entry into a tree with the XTF_NOREDRAW flag set, which was introduced in 997.5. ============================================================================ A-Shell Development Notes Version 5.0.997.5 (07 Nov 2007) ============================================================================ 1. --- XTREE bug fixes: A further case of XTR'TARGETROW not being returned properly for higher numbered rows in a scrolled, multi-level tree has been fixed. 2. --- XTREE refinement: The black border which displays around the currently focused, editable checkbox cell, was 2 pixels out of alignment with the colored background of the cell. 3. --- XTREE refinement: XTR'TOPINDEX is no longer returned relative to an inactive XTREE when the inactive tree is clicked while another tree has the focus. (This was conflicting with the new-and-improved logic for handling clicks on inactive trees.) As stated below, the optimum way to respond to a click event on an inactive XTREE is to set XTR'TOPINDEX, XTR'TARGETROW, and XTR'TARGETCOL all to 0 before entering the clicked-on tree (using XTROP_RESELECT). 4. --- XTREE refinement: XTR'TOPINDEX may now be set to -1 on input in order to tell XTREE to return the new topindex on exit, but not to attempt to set it on entrance. Applies only when re-entering an existing tree with XTROP_RESELECT or XTROP_REPLACE with XTF_NOREDRAW set, and with XTR'TARGETROW=0. 5. --- EVENTWAIT fix: EVW_EXCDINOUT was not always working in the following case: - XTREE or XTEXT has the focus, - User clicks on another control, causing XTREE/XTEXT to exit - Application then calls EVENTWAIT, with EVW_EXCDINOUT flag - Instead of EVENTWAIT exiting immediately with the exitcode of the clicked control, it was waiting for another click. ============================================================================ A-Shell Development Notes Version 5.0.997.4 (05 Nov 2007) ============================================================================ 1. --- XTREE bug fixes and refinements: - Clicking on a checkbox in an inactive tree should now lead to the cell being both selected and toggled provided you re-enter the tree using XTROP_RESELECT and/or XTF_NOREDRAW and set XTR'TARGETROW=0. - The bold rectangle identifying the checkbox cell with the focus was not being displayed in many cases. - The vertical scroll position was sometimes being adjusted unnecessarily on re-entering a tree. This is mainly an issue when the event causing you to re-enter the tree is a click on a cell within the inactive tree; in that case you should set XTR'TOPINDEX=0 and XTR'TARGETROW/COL=0 to avoid overriding the target information otherwise set by the inactive click. - Re-entering a tree with XTROP_RESELECT and XTF_NOREDRAW was sometimes causing the last column(s) to disappear, unless they had explicit widths defined (using Dspwid or Dspmin). - When using dual XTREE controls, and one has the focus, and you click on the other, it how returns the XTR'TOPINDEX information relative to the clicked-on tree. (You can set this back to 0 to retain the current vertical scroll position in most cases though, due to above refinements.) (Removed in 997.5) - In some cases, the XTR'TARGETROW returned was not working for the last two rows in a tree. (For N rows, it was returning N-2 instead of N-1 or N.) ============================================================================ A-Shell Development Notes Version 5.0.997.3 (01 Nov 2007) ============================================================================ 1. --- ATE enhancement: Misc section of connection properties dialog now has a checkbox for tracing to the clipboard instead of to a file. 2. --- XTREE refinement: When entering a non-editable multi-select tree, the XTR'TARGETROW now establishes which row gets the focus. Note that the focused row will be identified by a dotted line around it, and is not necessarily selected nor even visible, but when you use the down-arrow, the focus and selection will move to the next row below the one that had the focus. XTR'TOPINDEX now works in multi-select mode also, to set the vertical scrolling position. (Previously, the first selected row over-rode the XTR'TOPINDEX.) 3. --- ATE enhancement: When spooling via the AUXLOC: device, the {NO}FF, {NO}LANDSCAPE, {NO}PASSTHRU and AUTOFF switches are now forwarded to ATE where they will override the options set either in the specified printer init file, or in the printer configuration dialog. This is mainly a convenience to allow forcing an option such as landscape without having to create a separate printer init file on the ATE client for it. NOTE: for this to work, the server side must also be at 997.3 or higher. ============================================================================ A-Shell Development Notes Version 5.0.997.1 (30 Oct 2007) ============================================================================ 1. --- ATE enhancements: - Parameter option in ZTERM ESC sequence to open/print a file (shell execute) now supported. - ESC * now recognized as a clear screen command (in both Wyse and AM* emulations). - WYSE5x function key emulations cleaned up. Note: PgUp/PgDn now send the same raw ESC sequences as a Wyse50 terminal (rather than ^T/^R) which improves operation with some UNIX utilities, but may require that your WYSE5G.IFX/WYSE5G.VUX files be updated to convert them to the expected ^T/^R values. (New versions of the WYSE5?.??X files are included in the release packages, but in the case of ATE, you need to update those modules on the server as well.) - Trace filespec now supports up to 160 chars and you can use the file open dialog (or just type the filespec). 2. --- INFLD GUI-mask rollback - reverse "fix" in 996.6 due to backwards compatibility complaints. 3. --- Fix intermittent problem distinguishing F keys with CONTROL and SHIFTed versions of them. ============================================================================ A-Shell Development Notes Version 5.0.997.0 (26 Oct 2007) ============================================================================ 1. --- ATE enhancement - WYSE50 (and WYSE5G) now supported. ============================================================================ A-Shell Development Notes Version 5.0.996.6 (25 Oct 2007) ============================================================================ 1. --- EVENTWAIT bug fix: when a popup dialog was launched from an EVENTWAIT- controlled field, and then a click event was used to close the popup dialog and return to the original field, the original field was not getting the focus set on it. 2. --- INFLD GUI bug fix: Mask chars (TYPE f) were not displaying unless preceded immediately by (non-empty) field data. 3. --- ATE enhancement: if the FTP login dialog is needed (because the saved login credentials were not valid at the time of an FTP operation), the information entered is now saved in the profile. (Previously it was only saved for the duration of the session.) 4. --- XTREE refinement (continuation of 996.4) - when editing a colored cell, we now attempt to make the color used in the edit control slightly lighter or darker (but otherwise the same general hue) than the static cell, to assist in making it stand out. (This works better with some colors than others, but along with the thicker border, most users should be able to "find the active cell".) ============================================================================ A-Shell Development Notes Version 5.0.996.5 (19 Oct 2007) ============================================================================ 1. --- ATE enhancement: -fp switch (to ATE.EXE) will cause it to auto-accept the server fingerprint (if using SSH mode). 2. --- ATE enhancement: If the hostaddress, login name, or login password field is "[init]", a dialog will prompt for it and then save the updated parameters in the registry. (This provides a way to distribute a default configuration file, while simplifying the end-user's task of modifying the parts that can't be shared.) If SSH mode, the standard tunnel dialog will be displayed, where you can enter the values that need to be initialized. For TELNET, a separate dialog will pop up. In 3. --- ATEtunnel.exe update: 1.1.102 supports the auto-fingerprint option and also will save the login name/password/address if any of the three were set to "[init]" and a successful connection is made. ============================================================================ A-Shell Development Notes Version 5.0.996.4 (18 Oct 2007) ============================================================================ 1. --- XTREE refinement: When editing a cell, draw a thicker border around the cell to make it stand out more (particularly when colored). Also, if cell has a background color, lighten or darken it slightly, for same reason. ============================================================================ A-Shell Development Notes Version 5.0.996.3 (15 Oct 2007) ============================================================================ 1. --- TCPX.SBR enhancements related to TCPOP_CONNECT: - The TIMER parameter now works to set a limit on the amount of time waiting in the TCPOP_CONNECT operation. (Although in theory, the TCPOP_CONNECT operation should succeed or fail without delay, in practice, DNS delays and some firewalls can cause the operation to hang for several seconds, particularly on failed attempts.) Previously, the TIMER parameter had no effect on that. Now, if the connection cannot be established within the specified time limit, the attempt is aborted. - Asynchronous connections: You can now do other work while waiting for a connection to succeed or fail by specifying the TCPXFLG_ASYNC flag with the TCPOP_CONNECT operation. In that case, if the connection cannot be established within the time limit specified by TIMER (or immediately, if TIMER=0), then the subroutine returns with STATUS=0 and SOCKPORT (>0) set to the socket whose connection attempt is still in progress. (You can consider this socket "half opened", meaning it is open on your end, but the other end still hasn't responded.) You must then use TCPOP_CHECK (continuing to specify the TCPXFLG_ASYNC flag and the half-opened socket in SOCKPORT) to check whether the connection attempt is complete. STATUS=1 indicates success, STATUS<0 indicates an error, STATUS=0 indicates that the connection attempt is still pending. WARNINGS AND OTHER NOTES: - If you get tired of waiting for an asynchronous connection to complete, you can cancel the connection attempt by using TCPOP_CLOSE, just like you would for an established connection. - The interpretation of the STATUS value returned from TCPOP_CONNECT depends on whether it is a normal or async (TCPXFLG_ASYNC) connection request. In the normal case, STATUS>=0 indicates success. In the async case, STATUS=0 means the connection is still pending, while STATUS=1 means success. If still pending, you need to use TCPOP_CHECK to determine the outcome. (It will return STATUS=0 for still pending, STATUS=1 for success, or STATUS<0 for connection failed.) - If TCPOP_CONNECT (with the TCPXFLG_ASYNC flag) returns with STATUS=1 and SOCKPORT > 0, then then socket SOCKPORT is open (or "half open"), even though the connection is still pending. So you wouuld be responsible for closing it if you don't follow through with the TCPOP_CHECK procedure to check for the result. On the other hand, if you get STATUS<0 on the TCPOP_CHECK (with TCPXFLG_ASYNC) operation, the socket will be automatically closed. - If an asynchronous connection attempt returns the pending status, the socket will be in non-blocking mode, regardless of whether you initially specified the TCPXFLG_BLOCK flag. To get it back into blocking mode once the connection is established, you need to specify TCPXFLG_BLOCK along with TCXPFLG_ASYNC on the TCPOP_CHECK call(s). ============================================================================ A-Shell Development Notes Version 5.0.996.2 (10 Oct 2007) ============================================================================ 1. --- INFLD new TYPE codes: |3 and |5 are equivalent to the existing TYPEs 3 and 5 (enable exitcode 3 for up arrow and 5 for down arrow) except that if used with a combobox, they also cause the up/down arrows to exit immediately (with the corresponding exitcode), rather than scroll among the choices in the combobox, PROVIDED THAT the combobox is not already in the dropdown position. (This is directly analogous to the XTREE coldef option ScrollMode=Tree.) An additional side-effect of |3 and |5 (vs 3 and 5) is that SHIFT+UP and SHIFT+DOWN will now act as they do in text mode (i.e. get translated via the function key translation system), even if |K (Windows keyboard mode) is in effect. 2. --- INFLD refinement: The self-service combo mechanism (SETDEF="...") can now be used in conjunction with a GUI, non-date-picker date (D|G|g) to get a field that acts like a date (with date formatting and validity checking, but which also exits with EXITCODE=-29 if you activate the drop-down (i.e. calendar) display. 3. --- TAB(-10,20) bug fix: The abbreviated mode, TAB(-10,20);text,format;chr(127); was also treating the format code as an alphanumeric control ID, causing a build-up of controls at the same location, which could result in some strange video effects (like overlapping or double-printing). 4. --- XTREE fix: Hitting ESC to exit an array-mode tree was causing the first byte of the ARRAY parameter to be nulled out. 5. --- VUE enhancement: INI.VUE now supports WIDE = ### to establish initial terminal width (provided emulator supports it). (Use TALL = ### to set terminal height). 6. --- SET.LIT 1.2(151) now supports SET TERMINAL WIDTH # for values other than 80 and 132 (provided you have a "G" driver). 7. --- Calendar control refinement: The calendar control, when positioned on top of another control in the same window, allows the control underneath to "bleed" through (both visually and when processing mouse clicks). (This is just a Windows quirk of that control.) The normal way to avoid such problems with it is to not position on top of another control (seems reasonable), or, if you insist, then first enclose it in a separate dialog. However, if neither of those options is desirable, yet another possibility is to remove the child flag from the control, so that it acts like a top-level popup or overlapped window. To do so, add the WS_VISIBLE flag, and optionally, the WS_POPUP flags in the dwStyle parameter. (e.g. DWSTYLE = WS_CAPTION + WS_SYSMENU + WS_VISIBLE). This essentially turns the calendar control into its own dialog, which has its own downsides (affecting the positioning and also making it difficult to use in conjunction with another control to receive the date clicked on), but for cases where you just want to have a floating calendar handy, this may be an easier technique than manually creating your own modeless dialog to house the calendar control. Note: the reason why adding WS_VISIBLE remotes the child flag (WS_CHILD) is that if neither WS_VISIBLE nor WS_CHILD are specified, both are turned on by default. Turning on the visible flag explicitly removes the default. 8. --- INFLD GUI enhancement: When |K (Windows keyboard mode) is NOT used, the SHIFT+ARROW keys now work like they would in text mode, i.e. as function keys to be translated via the translation tables. (The standard exitcodes for the shifted arrows are: -36, -37, -38 and -39.) ============================================================================ A-Shell Development Notes Version 5.0.996.1 (03 Oct 2007) ============================================================================ 1. --- XTREE fix: column ordering with the XTR'COLORDER() array wasn't working properly when columns > 31 appeared in the array. Note: the feature only allows you to control or override the ordering of the first 31 visible columns, but it should not impose any restriction on the number of columns total. Any column which does not appear explicitly in the XTR'COLORDER() array will appear in its otherwise numeric order after all the columns that are explicitly code in the XTR'COLORDER() array. 2. --- XTREE fix: Combobox keyboard item selection (i.e., the ability to select items in combobox cells by typing the first character(s) of the desired item) was not working. 3. --- MESAG.SBR fix(?): Disable a weird and ancient bug (feature?) in MESAG.SBR (text mode) in which a message displayed via opcode 4 would be saved and later redisplayed on exit from a subsequent opcode 2. ============================================================================ A-Shell Development Notes Version 5.0.996.0 (01 Oct 2007) ============================================================================ 1. --- XTREE bug fix: The optimization logic involved in sending back just the parts of the ANSWER array that had changed had a bug which caused it to, in some circumstances, null out the first byte of the answer array. (Which, depending on the application logic, could lead to the entire answer array being cleared, which would, in effect, set it back to the original values in the data array.) 2. --- ERASE.LIT 3.1(118) enhancement (new switches): ERASE /MINDAYS:# ERASE /MINSECS:# ERASE /? The first two erase only those files that have not been modified in at least the number of days or seconds, respectively. The last switch just displays the syntax options. 3. --- DIR.LIT 3.0(143) enhancement (new switch): DIR /MINDAYS:# (Same as with ERASE/MINDAYS:#) Skips files that have been modified with the specified # days. 4. --- Changing most MX_WINSETTINGS values no longer causes XTREE to get resized. ============================================================================ A-Shell Development Notes Version 5.0.995.9 (26 Sep 2007) ============================================================================ 1. --- XTREE bug fix: There was an unnecessary internal obstacle preventing visible columns from being relocated to the other side of a hidden column. (This is a rare situation, since hidden columns are usually defined first, but it is legal and possible to place a hidden column between two visible ones.) ============================================================================ A-Shell Development Notes Version 5.0.995.8 (23 Sep 2007) ============================================================================ 1. --- UNIX command line processing bug fix: Tokens on A-Shell command lines of the form %xxx% (where xxx was any string of characters) were getting converted to upper case if XXX was not a defined environment variable. This was mainly a problem in exotic cases were you were trying to pass a case sensitive command line from A-Shell to UNIX via HOST. 2. --- XTREE bug fix: In file mode, blank lines were being ignored. This was generally only apparent when using XTREE as a kind of viewer of text files (as in XTRMSG.SBX). 3. --- CGIUTL.SBR enhancement: Previous limit of 1024 on the size of an individual line after variable expansion has been increased to 16K. This is mainly a factor when individual data fields (substitution values) are quite large, since otherwise you could avoid the limit by keeping the input template lines short. ============================================================================ A-Shell Development Notes Version 5.0.995.7 (18 Sep 2007) ============================================================================ 1. --- XTREE bug fix: TotalLines=### was not preventing the initial sort from moving the totals lines. 2. --- XTREE enhancement: new column cformat code "h" indicates a column with times in it. This acts like a string column except for sorting purposes, where any time format supported by IDTIM will be recognized and sorted accordingly. 3. --- XTREE enhancement: new advanced coldef option "SelChgExit=###" causes XTREE to exit with exitcode -### whenever the selection changes (i.e. by moving it with the up/down arrows or by clicking on a new row). This feature can be handy in certain kinds of trees where you want to update some display items as soon as the user moves the selection bar, but beware of conflicts with the following modes and options: - edit mode (moving from cell to cell might trigger the "selection changed" event, interfering with the normal cell validation logic.) - XTF_FAST mode (it isn't clear which would take precedence in the case of a single click). - Context menus (if the user right clicks on a row other than the one currently selected, the change of selection event may or may not preempt the context menu.) (If it does preempt it, you might be able to re-enter immediately and continue though.) - ClickExit (again, it isn't clear which event will occur first.) 4. --- GUI control refinement: Previously, when a new control was created that had the same upper left corner as an existing control, the existing control was deleted and replaced by the new control. This is still true, except when both controls have alphanumeric IDs that are not the same. In such a case, the new control will be created without deleting the old. This is mainly for the benefit of complex programs such as LEO, and will probably not have any effect on existing programs (unless you were counting on the auto-delete feature and were using alphanumeric IDs). Note that the auto-delete feature is mainly used with AUTOTPRINT, where alphanumeric IDs are not used. 5. --- UNIX printing bug fix: Messages output by the system spooler routine which were supposed to be captured by the OPR:SPOOL.LOG file were instead going to the screen. (Problem introduced in 995.3) 6. --- UNIX print logging enhancement: SPOOL.LOG entries now contain the additional fields: Q= C= S=. ============================================================================ A-Shell Development Notes Version 5.0.995.6 (09 Sep 2007) ============================================================================ 1. --- Bug fix: When passing parameters to functions/procedures/sbxs in programs using SCALE, the conversion between F and non-F types was resulting in the value received by the function being shifted by the scale factor. For example, when passing an F6 value to a function expecting a B4, the B4 value received was 100 times too big (assuming SCALE 2). When passing a B, I, or S parameter to a function expecting an F, the received value was 100 times too small. In the case of SBXs the problem was further compounded by the possibility that the SCALE setting with the SBX was not the same as within the calling program. ============================================================================ A-Shell Development Notes Version 5.0.995.5 (06 Sep 2007) ============================================================================ 1. --- AUI_CONTROL / ATE refinement: Previously, ATE would not return any status information (as a bandwidth optimization strategy) if the CSTATUS parameter was specified as a string (typically "" or NUL_CSTATUS$). This rule has been tightened to allow strings of 2 or more bytes to be treated as valid return variables. This fixes an issue with in SBXINP.SBR involving the disabling of INFLD controls, and perhaps will avoid problems in other applications that mistakenly used a mapped string return variable for the CSTATUS parameter. Note that if you are counting on the non-return optimization, make sure you use "" or NUL_CSTATUS$, or a string mapped as S,1, rather than just any old string variable. Also note: fix is on the server side; does not require updating ASHW32.EXE (except when using ATS in which case you need to update the ASHW32.EXE on the server side). ============================================================================ A-Shell Development Notes Version 5.0.995.4 (05 Sep 2007) ============================================================================ 1. --- ISMROK.SBR bug fix: was reporting incorrect value for allocated IDX blocks under two conditions: a. When the IDX size was > 64K blocks, the value reported was about 10% too low. b. When the IDX had been auto-expanded, the value reported was often negative. This didn't affect normal ISAM operation, but may have caused applications to conclude that something was wrong with the file. 2. --- ISAM 1.0 Auto-Expand fix: The IDX auto-expand feature was not updating a field in the rock that was used by ISMROK.SBR to report the number of allocated IDX blocks. This field was not otherwise used by ISAM, but was responsible for the second problem mentioned above. 3. --- New ISAM 1.0 feature: The auto-expand feature can now be turned off for individual files by creating a .NOX file in the same directory where the .IDX and .IDA files reside. (If they are in different directories, create a .NOX file in each location.) Note: if you have multiple IDX files, you'll need a .NOX for each (unless you only want to disable the auto-expansion for a specifix IDX). Note: the .NOX file does not have to have any size. You can create it with the MAKE command (to create a 0 byte file), or with VUE or whatever. It is just the presence of the file in the directory that matters. Note: All auto-expansion operations, including those disabled due to the NOX file, will be recorded in the ashlog.log file. 4. --- XTREE bug fix: Setting the XTF_TOTALS flag (to protect the last line from being sorted) was not always working, unless the COLDEF option TotalLines= was also specified. When TotalLines= is not specified, XTF_TOTALS now sets the default value to 1 (i.e. only the last line is considered a total). ============================================================================ A-Shell Development Notes Version 5.0.995.3 (04 Sep 2007) ============================================================================ 1. --- GDI Printing Refinement: //IMAGE, //XTEXT, and //METAFILE will now locate the specified file in the same directory as the printfile if it fails to find it in the directory specified in the //GDI directive or in the local cache. This is mainly a convenience when printing from another directory. For example, if a printfile BAS:TEST.PRT contains //IMAGE,TEST.JPG,... and you tried to print it from another directory using PRINT BAS:TEST.PRT, previously it would have failed to find the image TEST.JPG in the BAS: directory, because you weren't logged there. It also comes in handy when moving printfiles and their associated images to another location (such as with ASHLPD), since now you can combine all the associated files in an arbitrary directory. 2. --- ATE/ATS/XTEXT Fix: XTEXT now supports an alternate method of returning updated text to the server, which does not require FTP. This new method works via the keyboard channel and currently only works when the destination is a string buffer (i.e. TXFF_FILE flag is NOT set in the txc'docfmt'dst field). The primary motivation for this non-FTP mechanism is to deal with servers that do not have FTP support configured, or have it configured in a mode that prevents access to the directories where A-Shell lives on the server. (This is quite common with Windows servers.) It is also somewhat more efficient when editing small files (which would be consistent with the use of string buffer mode rather than file mode.) Note that this requires an update of ASHW32 on both sides. This mode is now automatic with Windows servers (ATS), but you can also force it for UNIX servers by setting the new flag TXFF_RAWBUF (&h0400) in the txc'docfmt'dst field. 3. --- UNIX Printing Enhancement: Messages are now output to OPR:SPOOL.LOG for AUXLOC: printing. Previously only non-AUX port printing commands were logged. (Since AUX printing is an increasinly prevalent way to print from UNIX, it makes sense to record them in the log file just like direct printing and ASHLPD printing.) 4. --- ATE bug fixes: A curious loophole was allowing occasional garbage characters to be appear on the screen during certain ATE GUI operations. Note: this fix is actually on the server side. Also, legitimate startup error messages were sometimes garbled due to sharing of the message buffer space. 5. --- AM75{G} emulation enhancement: New miame.ini switch OPTIONS=NOSPACEATTR eliminates the automatic space associated with the on/off field attributes (TCRT commands 21,22,30-35,100-105). Currently this only applies to the AM75{G} UNIX emulation, and was implemented to provide compatibility with applications developed with a very old AMOS terminal driver standard (in which mode emulation drivers did not automatically add the space which otherwise was added by field terminals directly.) Note that if OPTIONS=NOSPACEATTR on the server side, the option will be automatically forewarded to ATE. 6. --- XTREE refinement: When an XTREE cell is clicked while the focus is on another control, XTREE now remembers both the row and the column, so that when the application re-enters XTREE, it can put the focus on the correct cell. 7. --- New TAB(-10,68) command: allows changing the underline attribute to an arbitrary fg/bg color combination. (Useful for slight aesthetic improvement to legacy text-mode programs which use underline, since underline has a rather old-fashioned look.) Command syntax: TAB(-10,AG_ATTRSUB);"1,2,";FG'R;",";FG'G;",";FG'B;","; & BG'R;",";BG'G;",";BG'B;chr(127); where: FG'R, FG'G, FG'B are the RGB values (0-255) for the foreground color BG'R, BG'G, BG'B are the RGB values (0-255) for the background color 8. --- Fix a bug which was causing certain error Message boxes, particularly those used for startup error conditions, to display a corrupted message. (A common one was "TE Startup".) 9. --- Fix crash problem if TRACE=DEBUG (or -trace command line switch used) and any miame.ini lines contained %env% variables. 10. --- INMEMO bug fixes: MMO'IPG (intelligent paging) mode was not living up to its name. (Was, in fact, acting more like read-only edit mode.) Also, in field emulations, when a reverse video message was displayed on the bottom prompt, in some cases, it would turn the rest of the screen to reverse video on exit. ============================================================================ A-Shell Development Notes Version 5.0.995.2 (31 Aug 2007) ============================================================================ 1. --- MAJOR ISAM-PLUS BUG FIX!!!! - Some debugging code introduced in 995.0 was causing A-Shell to crash with a Windows protection error (or UNIX segmentation fault) when accessing IsamPlus files. ============================================================================ A-Shell Development Notes Version 5.0.995.1 (30 Aug 2007) ============================================================================ 1. --- XTREE bug fix: Resolve various conflicts with re-entry into editable image cells. The new scheme for editable image cells is as follows: Answer array cells will be used to update the image cells. The format of the answer array cells can be one of the following: - clear text in cell, leave image alone imgspec - replace existing image, clear text imgspec, - same as above text - leave image alone, replace text ,text - delete existing image from cell, replace text imgspec,text - replace image, replace text Note that XTREE distinguishes between the "imgspec" and "text" cases by whether the field contains a valid image extension. On return from XTREE, the answer array cells will contain just the text that displays in the cell along with the image, unless you edit the cell, in which case it will contain exactly what was entered. 2. --- GUI bug fix: eliminate another case in which a TAB(-1,0) could crash ASHW32 if the font table had been corrupted. TAB(-1,0) now explicitly resets the font table. 3. --- ATE bug fix: the LOGDIR option in the MIAME.INI wasn't being obeyed. 4. --- Minor COMPIL refinement: compiler now responds more quickly to a ^C abort when in the middle of outputting many errors. (Previously, it was sometimes necessary to wait until several hundred error messages were reported before it would respond to the abort command.) Note: this applies only to the internal compiler, not the one used by the Editor. ============================================================================ A-Shell Development Notes Version 5.0.995.0 (30 Aug 2007) ============================================================================ 1. --- Windows/ATE color enhancement: Add an option to the Colors dialog box to have the reduced foreground color palette apply for reduced (i.e. dim) background text. This allows A-Shell/Windows and ATE to simulate an effect that some terminal emulators have used to associate different colors with selected non-color attributes (such as dim, reverse, etc.) 2. --- XTREE bug fix: when editable images cells contain text (in addition to the image filespec), in some cases part of the image filename was appearing in the cell (in addition to the image and the text). 3. --- XTREE enhancement: two new advanced COLDEF options: RGBfgSel=r,g,b RGBbgSel=r,g,b These determine the foreground and background color used to display the selected row(s) in the specified column. (The default selection color is white for the foreground and blue for the background.) Change the default color is sometimes useful, either to make selected items stand out against highly colored cell patterns, or conversely, to make selected items blend into the background. (The latter is sometimes useful in conjunction with editing, where you might otherwise get an annoying "flash" as the tree switches between cell editing and selection modes.) 4. --- ATE bug fix: PC based licensing (via LICENS.LIT with MAC address) was corrupting memory. 5. --- LICENS.LIT 2.4(122) refinement: For PC-based ATE licensing, the MAC address is now automatically added to the company name if not done manually. (This was confusing previously.) 6. --- XTREE refinement: check that Mask= length of field if editable /jdm 7. --- INPUT CSV refinement: fields with embedded line breaks are now supported. (The total extended input line length is still limited to 4K though.) 8. --- XTREE fix: Exiting from a (right click) context menu was not always returning the correct cell coordinates. 9. --- GUI bug fix: close a window of opportunity in which an ASHW32 crash could occur during a TAB(-1,0). 10. --- INFLD bug fix: In non-GUI horizontal scrolling fields, the right arrow was not generating exitcode 12 from the last physical position of the field, even if TYPE L specified. (It was working from every other position.) Also, the "fast mode" (TYPE F) was not working in that case. 11. --- XTREE enhancement: Images in editable image cells can now be updated via the answer array using XTROP_RESELECT. Previously, only the text associated with the image could be updated this way, unless you used XTROP_REPLACE. ============================================================================ A-Shell Development Notes Version 5.0.994.5 (13 Aug 2007) ============================================================================ 1. --- GDI printing enhancement: //RECTANGLE directive now supports option for rounded corners: //RECTANGLE,left,top,right,bottom{,fill{,crwidth{,crheight}}} where crwidth and crheight refer to the "corner radius" width and height, in the current mapmode units. For normal (symmetrical) rounded corners, crheight is not needed, and crwidth should be set to the radius of the circle used to draw the arc of the rounded corner. When crheight is specified, the corners are made from the arc of an ellipse whose total height (bounding rectangle) is 2*crheight and whose total width is 2*crwidth. 2. --- XTEXT combo control refinement: a vertical scroll bar is now displayed if all of the possible items do not fit within the area allocated to the drop-down box. 3. --- EVENTWAIT fix: There was a problem with EVW_EXCDINOUT+EVW_EXCDFOCUS not always working on the initial call for a new dialog. 4. --- XTREE Image fix: When an XTREE image cell was both editable and had a cell background color, the first character of the cell text was being clipped in some cases. Note that this is a pretty exotic combination. Image cells can display additional text, and that text is editable, but the image filename itself is not directly editable (you have to reload the array to change the image). 5. --- XTREE Editable cell fix: Using navigation keys was sometimes resulting in a non-editable cell being selected for editing (typically this was related to there not being any editable cells visible, for example, in a multi-level tree where the editable cells were collapsed). 6. --- XTREE Editable cell fix: When using unconditional validation, exiting from an editable cell operation via a click on a menu or other control was returning EXITCODE -48 (validation) rather than the EXITCODE for the control or menu clicked on. ============================================================================ A-Shell Development Notes Version 5.0.994.4 (07 Aug 2007) ============================================================================ 1. --- Fix XTREE cell-editing bug in which certain navigation operations were resulting in a non-editable cell becoming editable. ============================================================================ A-Shell Development Notes Version 5.0.994.3 (04 Aug 2007) ============================================================================ 1. --- Fix bug causing a GPF if you passed the PDFX driver to MX_GDICALC. ============================================================================ A-Shell Development Notes Version 5.0.994.2 (03 Aug 2007) ============================================================================ 1. --- Fix bug in INSTR() function: If the starting position was beyond the end of the source string, and the search key was one character long, the results were unpredictable (instead of returning 0). The bug was introduced in 5.0.989 when the single-character INSTR was "optimized". ============================================================================ A-Shell Development Notes Version 5.0.994.1 (02 Aug 2007) ============================================================================ 1. --- XTEXT control update (TER14.DLL 14.0.5.8): fixes a problem with //XTEXT printing when the OFFSET parameter is non-zero. (The problem was that the first logical line of the output would retain the font characteristics that would have applied if the OFFSET were 0.) 2. --- XTREE bug fix: accelerator characters (ALT+) were not working when in an editable cell. (They still don't work properly in combo boxes.) 3. --- XTREE enhancement: If you set the top bit (&h80) of XTR'SELECTAREA for an editable tree, it will keep the first column selection indicator (blue bar) on during editing. Depending on the tree layout and other factors, you may find this more aesthetically pleasing. (In particular, it reduces the "flash" when cell-to-cell movement requires exit/re-entry.) 4. --- XTREE/ATE (server side) fix: When the answer array was being passed via the top level unformatted variable (e.g. XANSARY), rather than the first element of the array (e.g. ANSARY(1)), the space-filling enhancement in 993.6 was, in some cases, leading to transmission of a lot of unnecessary spaces, which, depending on how many, could have had a serious impact on the speed of loading and re-entering the tree. 5. --- ATE bug fix: The logic which looks for files in the ATECACHEDIR, if not found in the originally specified directory, was not working when the original filespec referenced an ersatz that was not known to the ATE workstation. 6. --- MX_GDICALC enhancement: It now returns status -8 if you specify a rectangle that has zero or negative space. Previously, it was displaying a cryptic "Printing Area Too Small" message. ============================================================================ A-Shell Development Notes Version 5.0.994.0 (01 Aug 2007) ============================================================================ 1. --- XTREE bug fix: Clicking on TX or RX cells was returning XTR'TARGETCOL=0. 2. --- XTREE new feature: Support list substitution style (aka INFLD ||L) combo lists via the new ListX= and CellListX= and clauses: ListX=,,,,... CellListX=,,,,,... e.g. ListX=1,UPS Ground,2,UPS BLUE,3,Fed Ex,4,Mail" CellListX=c,AL,Alabama,CA,California,LA,Lower Alabama~~" ListX and CellListX are just like List and CellList, respectively, except that the list of items consists of , pairs, where the is what you store in your application (and in the data and answer arrays) while the is what displays in XTREE. The concept and implementation is essentially the same as the INFLD ||L "list substitution" field type. The XTRA5 and XTRA5C sample programs in the SOSLIB have been updated to illustrate these. ============================================================================ A-Shell Development Notes Version 5.0.993.9 (31 Jul 2007) ============================================================================ 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} 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"). 3. --- XTREE enhancement: Editable checkbox/radiobutton 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 activate the No cell, the corresponding N/A cell will be re-enabled. 4. --- XTREE fix: Editable cells with validation were not exiting with exitcode -48 unless the XTF_FKEY flag was set. 5. --- Icon fix: The #WINPTR icon stopped working in 990.0 when the developer icons were reorganize. ============================================================================ A-Shell Development Notes Version 5.0.993.8 (29 Jul 2007) ============================================================================ 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.) 2. --- XTREE fix: The combination of image cells (I) with cell background color (B) was not working. 3. --- XTREE fix: Read-only editable (u) was still allowing numeric keypad keys to modify the field. 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. 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. 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". 7. --- XTREE / ATE bug fix: The last byte of the answer array was not getting updated in certain cases. (Affected ASHW32.EXE in ATE mode only.) 8. --- MX_GDICALC bug: 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). 9. --- Debug window bug fix: selecting option to dump the font cache before any GUI objects have been created was causing a GPF. ============================================================================ A-Shell Development Notes Version 5.0.993.7 (27 Jul 2007) ============================================================================ 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.) 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) ============================================================================ A-Shell Development Notes Version 5.0.993.6 (26 Jul 2007) ============================================================================ 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!) ============================================================================ A-Shell Development Notes Version 5.0.993.5 (26 Jul 2007) ============================================================================ 1. --- XTREE debugging enhancements: Embedded nulls in the answer array are now detected and reported via a message box. (These would otherwise lead to mis-interpretation 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). 2. --- XTREE fix: An internal buffer was being overloaded when an individual cell exceeded 260 characters. The new limit is 2K. 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. ============================================================================ A-Shell Development Notes Version 5.0.993.4 (25 Jul 2007) ============================================================================ 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. ============================================================================ A-Shell Development Notes Version 5.0.993.3 (25 Jul 2007) ============================================================================ 1. --- XTREE enhancement: the total space available for all the Mask= definitions has been increased from 512 to 1024 characters. 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 ============================================================================ A-Shell Development Notes Version 5.0.993.2 (24 Jul 2007) ============================================================================ 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. 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.) 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. 4. --- XTREE enhancement: Individual cells within combobox 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. 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. 6. --- XTREE enhancement: The 4K limit on the length of an individual combo list (defined with List= or CellList=) has been eliminated. 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. ============================================================================ A-Shell Development Notes Version 5.0.993.1 (24 Jul 2007) ============================================================================ 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. 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.) 3. --- XTREE fix: The ScrollMode=Tree option wasn't working with self-serve combos. ============================================================================ A-Shell Development Notes Version 5.0.993.0 (23 Jul 2007) ============================================================================ 1. --- XTEXT / GDI new feature: A new GDI printing directive permits printing a text or RTF file via XTEXT into a specified rectangle: //XTEXT, left, top, right, bottom, fspec {, offset} Left, top, right, and bottom define the printing boundaries, using the current map mode. fspec is the file to print (which must be a plain text or RTF file). offset (default 0) is the starting character offset within the file where printing will begin. This is mainly of use if you have to split the output into multiple //XTEXT rectangles. The output will be wrapped, if necessary, to fit within the left and right boundaries of the rectangular area, and will be clipped if it goes beyond the bottom limit. See MX_GDICALC for a method of determining in advance how much of the file will fit within the area. WARNING: //XTEXT currently works only in portrait mode! 2. --- MX_GDICALC new opcode for calculating size of XTEXT output: OP 6 (MXGDI_CALCRECTX) Calculate rectangular XTEXT metrics XCALL MIAMEX,MX_GDICALC,MXGDI_CALCRECTX,HANDLE,STATUS, & LFT,TOP,RGHT,BTM,FILE$,HEIGHT,OFFSET This is essentially the same as the existing OP 3 (MXGDI_CALCRECT) except: - The MEMO$ argument in OP 3 is replaced here by FILE$, which specifies the filespec of the text file to analyze. - The OVERFLOW$ argument in OP 3 is replaced here by OFFSET, which indicates the offset within the file. On input, it is the starting offset (default 0). On output, it will be 0 if the entire file fit within the specified rectangle. Otherwise, it will be the offset to the first character that did not fit (which can then be passed to a subsequent MX_GDICALC call). - Note that unlike OP 3, where the font and other spacing factors must be set in advance (via MX_GDICALC OP 2), with XTEXT printing, the font and other layout parameters are set within the text file (particularly in the case of RTF files). The MMOGDI sample program in [908,37] of the SOSLIB illustrates the use of //XTEXT and MX_GDICALC, MXGDI_CALCRECTX 3. --- Compiler fix: (1.1.363) - Using a funtion 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. 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 signficantly. (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). 5. --- INFLD GUI fix: A spurious "!" was appearing in the keyboard buffer after certain message boxes (such as "invalid entry", or "not processed"). 6. --- XTREE new feature: shared lists (combo boxes) that can be associated with individual cells rather than just entire columns. To implement, first define one or more lists (associated with column 0) using the new SharedList= advanced column option: SharedList=id,item1,item2,...itemN The format of SharedList= is identical to List= except that it must begin with a single lower case letter, a-z, which serves as an identifier for the list (allowing up to 26 lists to be defined). To associate one of the predefined lists with a cell, use the new cformat code "s" to define the column as being capable of referencing the lists. Cformat "s" is similar in concept to B (background cell color) in that it reserves the first character of each cell in the column for the index letters that associate the cell with one of the predefined lists. NOTE: if the column also uses cformat B, then the first character of the column is for the cell color code, and the second character will be for the SharedList ID. Note that in additional to allowing different lists for different cells within the same column, as well as the same list to be referenced from multiple columns, you may also define individual cells has having no list (by leaving the ID character blank), or even off-limits to editing (by setting the ID character to "|"). As with cell background colors, the byte reserved for the SharedList ID must also be accounted for in the answer array. The sample program XTRA5C illustrates some of these variations. ============================================================================ A-Shell Development Notes Version 5.0.992.9 (19 Jul 2007) ============================================================================ 1. --- XTEXT: Fix total failure to create control (due to some test code inserted in 992.8). 2. --- XTREE: Further fix to xtr'targetcol issue. It was returning col = 0 when clicking on a cell that had a ClickExit defined, if an editing operation was in effect at that time. ============================================================================ A-Shell Development Notes Version 5.0.992.8 (19 Jul 2007) ============================================================================ 1. --- XTREE Combo box Enhancement: New COLDEF clause ScrollMode=Tree may be used in conjunction with combo boxes (List=) to cause ordinary up/down arrows to move the focus to the previous/next row, rather than to the previous/next item in the list. (In other words, it causes ordinary up/down arrow keys to act the same as Control+up/down.) It also affects ordinary left/right arrows in selection-only combo boxes (where they normally act just like up/down). The intent of this obscure (and somewhat non-standard) 'feature' is mainly to minimize the possibility that users might accidentally change cell values when they were intending to just "arrow around" the grid. (This is much more likely within XTREE, where ordinary cells may turn into combo boxes when they get the focus, than with "normal" combo boxes that may appear in dialogs. Note that in all cases, when the drop-down list is displayed (via ALT+DOWN or clicking on the drop-down button), the arrow keys will operate within the list (so it doesn't interfere with the ability to perform all the necessary combo box functions without using the mouse). The Mouse Wheel operation is similarly affected by the ScrollMode=Tree clause. 2. --- XTREE Combo box enhancement: The DELETE key may now be used in a selection-only combo box to clear the selection, provided that the List definition contains an explicit entry consisting of a blank space, e.g. "List=red,green,blue, ~~". The SPACEBAR will also accomplish the same thing. Note, however, that the XTF_DEL flag overrides this and will cause the XTREE to exit with exitcode -47. 3. --- XTREE Combo box cleanup: In some cases, Control+Left/Right arrow was not advancing out of the current cell. 4. --- Dueling XTREE fix: When one XTREE has the focus, and you click on a cell in another XTREE, the XTR'TARGETROW/COL was failing to identify the cell clicked on if the original XTREE was not in cell editing mode at the time. (This would occur if there was an intermediate click on something else, that terminated the original cell editing operation without causing the first XTREE to exit.) Note that in such a situation, the only way to identify which XTREE was clicked is by the EXITCODE. If you terminate the one XTREE session by clicking on an inactive XTREE, the returned EXITCODE will be the overall exitcode for the inactive XTREE (as set by it's XTR'KBSTR value). The sample program XTRA10 - 1.0(2) has been updated to better illustrate the ability to click between two editable XTREEs. 5. --- XTREE XTR'TARGETCOL fix: The XTR'TARGETCOL was being incorrectly set to 0 when the prior cell-editing operation was exited by some extraneous click prior to the click on the target cell that actually caused the exit. 6. --- DIR.LIT 3.0(142) fixes a problem where output messages (especially "blocks") which should go to the output file were going to the screen instead. Problem was introduced in 3.0(140). ============================================================================ A-Shell Development Notes Version 5.0.992.7 (17 Jul 2007) ============================================================================ 1. --- INFLD GUI fix: Horizontal scrolling wasn't working in editable combo boxes when the fixed pitch edit option was set in the Misc. Dialog. 2. --- XTREE refinement: ClickExit= was taking precedence over checkbox toggling, effectively disabling checkboxes for columns which ClickExit enabled. ============================================================================ A-Shell Development Notes Version 5.0.992.6 (16 Jul 2007) ============================================================================ 1. --- COMPILER (1.1.361) fix: specifying a user-defined function as the control argument to a SWITCH statement was being properly compiled. (Sometimes it worked anyway, but sometimes it would lead to nasty runtime errors, like illegal function value, and often the error was reported on the previous source line.) RECOMMENDATION: Recompile all programs if you think you use this technique! 2. --- XTREE fix: Fold=Upper / Lower option now works with editable combo boxes. ============================================================================ A-Shell Development Notes Version 5.0.992.5 (16 Jul 2007) ============================================================================ 1. --- XTREE Combo fix for W2000: combo boxes within XTREEs were dropping down to a list only 1 pixel high under W2000. ============================================================================ A-Shell Development Notes Version 5.0.992.4 (16 Jul 2007) ============================================================================ 1. --- XTREE fix: combo box definitions lists (from List= COLDEF clause) were not being cleared and redefined by XTROP_REPLACE or XTROP_CREATE. 2. --- XTREE enhancement: New advanced COLDEF clause: TotalLines=# where # is the number of lines at the bottom of the list which represent totals and thus should not participate in sorting. TotalLines=1 is equivalent to setting flag XTF_TOTALS. 3. --- Compiler fix (1.1.360) - Reinstate ability to define a symbol to equal another, e.g. DEFINE SYM1 = SYM2 (was broken in 1.1.359). 4. --- CGIUTL.SBR fix: mode 2 was not recognizing the optional string argument: xcall CGIUTL, 2, parmname, parmval, status {, string} Now, when you specify the string argument, it is processed in place of the stdin. (In this case, you don't even need to be in CGI mode. But the format of string must be "name1=value1&name2=value2&...nameN=valueN", with optional %xx (xx=2 hex digits) encoding of special characters, and optional use of "+" to indicate a space, exactly like in the stdin which is normal fed to the CGI program in POST mode.) ============================================================================ A-Shell Development Notes Version 5.0.992.3 (12 Jul 2007) ============================================================================ 1. --- Compiler enhancement (1.1.358) - Case insensitive compilation option added COMPIL.LIT 1.0(120) Support /CI for case insensitive option. COMPIL.EXE 1.1.358 Support -ci for case insensitive option. 2. --- Compiler enhancement (1.1.359) - Allow benign duplicate DEFINE statements. (Only complain if the new definition changes the value of the previous definition.) Allows "pure" DEF files to be ++included multiple times. Report conflicting duplicate definition error explicitly (rather than as a "duplicate label"). COMPIL.EXE 1.1.359 ============================================================================ A-Shell Development Notes Version 5.0.992.2 (12 Jul 2007) ============================================================================ 1. --- GDI printing fix: Problem was introduced in 991.2 in which GDI printing environment was not getting reinitialized properly at the start of each printout, leading to a variety of printing format problems that would develop after a successful printout, the only cure for which was to close A-Shell and restart it. ============================================================================ A-Shell Development Notes Version 5.0.992.1 (11 Jul 2007) ============================================================================ 1. --- INFLD fix: Combo boxes were not obeying the TYPE e (non-destructive) and ` (destructive) options. Note that in some cases, the internal working of the combo box will override these anyway, but they should work in most cases for the initial state of the combo (if the combo allows typing rather than mere selection from the existing list). ============================================================================ A-Shell Development Notes Version 5.0.992.0 (10 Jul 2007) ============================================================================ 1. --- ATE.EXE 3.0.185 printer config fix: LPP setting was reverting to 66 whenever the printer configuration dialog was displayed. (Note: the fix is in ATE.EXE, not ASHW32.EXE). 2. --- AUI_CONTROL enhancement: new parameter ctype2 added to the end of the XCALL parameter list, to allow for additional control type flags. xcall AUI, AUI_CONTROL, opcode, ctlid, ctext, cstate, ctype, & cmd, func, cstatus, srow, scol, erow, ecol, fgc, bgc, & fontattr, fontscale, fontface, tooltip, parentid, & winclass, winstyle, winstylex, ctype2 3. --- AUI_CONTROL enhancement: new ctype2 flag MBF2_DLGICON (&h00000010) may be used with MBF_DIALOG to cause the dialog to display the application icon on its title bar. This is equivalent to MBF_DLGNOPARENT except without the other aspects of MBF_DLGNOPARENT (i.e. retains the parent child relationship). 4. TAB(-10,AG_CONTROL) enhancement: new ctype2 parameter added to the end (following the stylex parameter as in AUI_CONTROL). ============================================================================ A-Shell Development Notes Version 5.0.991.5 (9 Jul 2007) ============================================================================ 1. --- MIAMEX,MX_FILEPOS fix: it was returning zero in the position parameter for opcode 1 (set position), rather then returning the same position. (This was leading to bugs in programs that built indexes into a file and repositioned to the same location more than once, like in IMGDSX.) 2. --- IMGDSX.LIT 1.2(109). Workaround problem described above (in case running under earlier version of A-Shell). Also, /D:#### auto-advance delay for slide shows now goes up to 65535 seconds (previously 255 seconds). Note: use this technique to display a multi-image set without auto-advance. ============================================================================ A-Shell Development Notes Version 5.0.991.4 (7 Jul 2007) ============================================================================ 1. --- XTREE enhancement: ClickExit= COLDEF clause can now be used with column 0 to set the default for all columns. 2. --- XTREE fix: The Control+Up and Control+Down (implemented in 991.3) were not working correctly when positioned on a top level item. 3. --- XTREE fix: ClickExit was not overriding the PopupMenu when the right-click occurred inside the cell currently being edited. 4. --- XTREE fix: Display-only checkboxes were allowing a click on a checked box to change it to unchecked. ============================================================================ A-Shell Development Notes Version 5.0.991.3 (6 Jul 2007) ============================================================================ 1. --- XTREE fix: further relaxation of the error checking rules added in 991.0. Now, it is permissible for a column definition to contain only a starting position and width (title will default to null and type to string). Apparently some clever (lazy?) developers were taking advantage of this feature(?) to shorten their COLDEF strings, and instead of being thankful for the fact that A-Shell was reporting what it thought was a coding error, they were upset that programs which used to work no longer work. In this case, we decided to abide by the principle of stare decisis. 2. --- XTREE enhancement: The + and - keys o the main keyboard now work like those on the numeric pad as a means of expanding or collapsing the current item (in a multi-level tree). 3. --- XTREE enhancement: Control "+" and Control "-" now work as shortcuts in a multi-level tree to expand all or collapse all. 4. --- XTREE enhancement: Control+UpArrow and Control+DownArrow in a multi-level tree moves the selection bar up/down to the previous item which is at the same level as the current item, but which has a different parent. If necessary, this will cause the target item to be made visible by expanding its parent(s). This might be useful as a quick way to jump between sections of a multilevel tree. 5. --- XTREE modification: If a right-click exitcode is defined for a particular column (via ClickExit=,), in addition to a PopupMenu, the right-click exitcode will take precedence. (That is, right-click will cause XTREE to exit with the specified code, rather than display the PopupMenu.) This is mainly of use in conjunction with the feature below. 6. --- XTREE enhancement: You can now force a popup menu to appear immediately on entrance into XTREE, by setting XTR'XNAVMASK = 64. In this case, the PopupMenu corresponding to the current column will be displayed immediately, even if there is also a ClickExit defined for it. This allows the application to effectively update the popup menu, based on conditions which may have changed since the XTREE was first entered, before the popup menu is displayed. 7. --- INFLD fix: Self-combos where sometimes leaving a space in the keyboard buffer, which would show up in the subsequent field. ============================================================================ A-Shell Development Notes Version 5.0.991.2 (3 Jul 2007) ============================================================================ 1. --- XTREE fix: the error checking improvements in 991.0 were causing some XTREEs (probably just those with embedded nulls in the input array) to not fully load, leaving many empty cells. The rules have now been partially relaxed to allow such trees to load as they did pre-991.0. 2. --- INFLD enhancement: The internal (returned) format of dates is now dependent on maxchars rather than xmax when in GUI mode. (In text mode, xmax is increased to match maxchars, so the two are always the same.) This permits the width of the field to be shortened in cases where screen real-estate is at a premium, without affecting the size or format of the data. 3. --- Design mode improvement: Reduce the amount of flicker related to highlighting target controls, and also allow an alternate method (in which the cursor changes to a hand instead on an arror). (This probably only affects LEO.) 4. --- LP Tracing enhancement: all the messages now go to the log file and/or the debug window, rather than the main window. A couple of additional LP trace messages added. 5. --- GDI printing fix: close one loophole by which an apparent margin would get established and then carry over to subsequent printouts. ============================================================================ A-Shell Development Notes Version 5.0.991.1 (28 Jun 2007) ============================================================================ 1. --- XTREE fix: right-clicking on one cell to display a context menu, while editing another, was not returning xtr'targetcol set to the column where the right-click occurred. ============================================================================ A-Shell Development Notes Version 5.0.991.0 (27 Jun 2007) ============================================================================ 1. --- XTREE error checking improvements: it now tests for, and reports some common errors relating to bad COLDEF strings, such as specifying the XTF_COLDEF flag when COLDEF is not in the advanced format, or incompletely defined columns. Also, better tests are used to prevent out-of-range column position or width values from causing XTREE to crash. 2. --- ATE FTP improvement: Forward slashes in the PC spec are now converted to backslashes. (Previously, this common error caused the entire PC spec to be treated as a single directory spec, generally creating a new directory in the process.) 3. --- INFLD now recognizes LATIN 1 accented characters as being alphabetic for the purposes of capitalization and alpha-only character acceptance. ============================================================================ A-Shell Development Notes Version 5.0.990.9 (26 Jun 2007) ============================================================================ 1. --- //TEXTCENTER no long requires quoting of the text argument if it contains commas. (Quoting is still allowed, even recommended, but it's easy to overlook.) ============================================================================ A-Shell Development Notes Version 5.0.990.8 (26 Jun 2007) ============================================================================ 1. --- INFLD enhancement: TYPE |\ disables the display of the INFLD "about" box (normally triggered by Control-\). This is mainly a workaround for a problem where the about box is being triggered unexpectedly. Also: don't show the SBR=INFDEF: codes in the INFLD about box when those codes are not active in the current call. (This would be the case at the dot prompt or anywhere TYPE "m" is active.) ============================================================================ A-Shell Development Notes Version 5.0.990.7 (25 Jun 2007) ============================================================================ 1. --- AUI_IMAGE / IMAGE.SBR: fix failure to take into account the ALTPOS dialog grid scale factors (most noticeable when maximizing). 2. --- Minor tracing improvement: XCALL/XDEBUG traces now show the RUN module memory address. 3. --- Memory management cleanup fix: certain modules were sometimes being deleted twice from memory (probably harmless, definitely sloppy). Also, add more safety checking to memory deletion requests and better tracing of anomalies. 4. --- MIAMEX, MX_USRIO enhancement: new IO modes 4 and 5 allow searching within a memory module for a string: xcall MIAMEX, MX_USRIO, STATUS, MODULE, MODE, VAR, OFFSET MODE 4 is case insensitive, MODE 5 is case sensitive. VAR in these modes must be set to the string to search for. OFFSET is the starting offset from the base of the module (as with other MX_USRIO modes). STATUS returns the offset to where the the string was found (or -1 for not found). Note that like other MX_USRIO offsets (but unlike the INSTR() function), the offsets here are zero-relative (i.e. zero is the first position). 5. --- INIX.SBX new version 5.0(600) replaces the 4.x version. New version requires 990.7 or higher, but performs better. ============================================================================ A-Shell Development Notes Version 5.0.990.6 (19 Jun 2007) ============================================================================ 1. --- UNIX troubleshooting aid: if a segmentation fault occurs, the ashlog.log entry will now show the location counter. (This can be used with the listing generated by the COMPIL /L switch to locate the last instruction.) ============================================================================ A-Shell Development Notes Version 5.0.990.5 (17 Jun 2007) ============================================================================ 1. --- Fix margin problem with maximizing main A-Shell/Windows window on secondary monitor. (If primary monitor was wider than secondary monitor, it was adding too much left margin, causing the last N columns to be cut off the right edge.) ============================================================================ A-Shell Development Notes Version 5.0.990.4 (14 Jun 2007) ============================================================================ 1. --- AUI_EVENTWAIT bug fix: EVW_RAW was not returning the proper ctlid value. 2. --- COMPILER fix (Does not require updating COMPIL.LIT/OCMPIL.LIT/COMPLP.LIT, but does require updating COMPIL.EXE for The Editor to 1.1.357) : With /X:1 or higher, the compiler was not allowing a LOOKUP statement to immediately follow an IF condition unless there was a preceding THEN. (It was reporting a syntax error.) For example: IF A=B LOOKUP F$,X ! (caused syntax error) IF A=B THEN LOOKUP F$,X ! (ok) The problem had to do with the dual nature of LOOKUP (with /X:1 or higher, it can be a statement or a function), and the fact that prior to "THEN", the IF condition could possibly be made up of additional non-statement tokens such as logical operators, functions, etc. As of 990.4 (or COMPIL.EXE 1.1.357), it looks ahead to see if the next non-space is a "(" to decide whether it is really the LOOKUP statement or the LOOKUP function, thus eliminating the confusion. 3. --- UNIX/ATE server side fix: If a screen area save or restore was immediately followed by local (text mode) input operation, the keyboard may have been locked. ============================================================================ A-Shell Development Notes Version 5.0.990.3 (12 Jun 2007) ============================================================================ 1. --- Fix bug in the mechanism of storing/retrieving the last ashw32.exe command line. The only reported symptom was that A-Shell would report "?/ashw32.cl?" on the command line after being relaunched by the Update Center. 2. --- GDI printing fix: //TEXTRIGHT was not working properly in landscape mode. 3. --- Function/Procedure error handling fix: attempting to call a function or procedure from within an error trap was generating an error during error trap. ============================================================================ A-Shell Development Notes Version 5.0.990.2 (11 Jun 2007) ============================================================================ 1. --- DIR.LIT 3.0(141) no longer treats /W as both /WIDE and /WARN. 2. --- Compiler enhancement: COMPIL.LIT 1.0(119) supports a new switch: /LF (List File) which creates a consolidated list file showing all of the source (with all of the ++include files merged in). Each line of the source is marked with the internal location counter, which is how Basic errors report their location when a program is compiled without line numbers. (This can be quite handy in tracking runtime errors, eliminating the need for inserting line numbers and other kinds of traces.) The list file will be named .LSX (LiSt with indeX) Note: you can shorten /LF to /L 3. --- Editor compiler enhancement: COMPIL.EXE 1.1.356 implements the -lf switch (equivalent to /LF described above). To add this to your compiler switches inside The Editor, you must add it in the "Custom Arguments" box at the bottom of the Compiler Settings dialog. Note that unlike with COMPIL.LIT, -lf cannot be abbreviated (and is case sensitive). 4. --- Error reporting enhancement: Now that we have a means of cross-referencing "location counters" with source statements, the location counter of the last error has been added to various error messages, including the TRACE=BASERR log message and XCALL ERRMSG (DERR). Also, a new err(8) function has been implemented to retrieve the location counter corresponding to the last error. Note that by convention, location counter values are displayed in hex, but the Basic PRINT statement has no way to know this, so if you are going to PRINT the value of err(8) you should use MIAMEX,MX_OCVT, or the Fn'Dec2Hex$() function in the SOSLIB to output it as hex. ============================================================================ A-Shell Development Notes Version 5.0.990.1 (11 Jun 2007) ============================================================================ 1. --- XTREE enhancement: Add column definition clause HdrClickExit=###. When specified, clicking on that column header causes an exit with the specified exitcode. It returns the XTR'COLUMNSORT() and XTR'SORTORDER() fields as if a sort had taken place, but it doesn't actually sort. The intent is to allow applications to implement their own sort logic. Note that when HdrClickExit=### is defined for a column, that column will not be sorted on entry even if the column appears in the initial XTR'COLUMNSORT() array. If you want subsequent clicks on the column header to toggle between ascending and descending, you must leave the XTR'COLUMNSORT() set to the specified column on re-entry. (Otherwise the initial sort for any unsorted column will always be ascending.) 2. --- XTREE fix: When sorting was disabled, clicking on a column header in order to make that the active column (for the purposes of auto-search based on keyboard input) wasn't always working. 3. --- COMPIL enhancement: The switch combination /B/T will now output the trace (i.e. the source listing) to the file .LST. This is useful for creating consolidated listings (with the ++includes all combined) but note that it probably isn't useful for locating errors (because /B outputs the error messages to the same file). So it should probably only be used after you have fixed all the compil errors. Also, don't try to use /T with The Editor, or it will think that every line of your program is an error. ============================================================================ A-Shell Development Notes Version 5.0.990.0 (10 Jun 2007) ============================================================================ 1. --- Reorganize the internal embedded custom developer icons to correct the problem introduced very recently in which desktop shortcuts referencing one of the custom icons were having their icons changed after updating ASHW32.EXE. The new scheme should be immune to this problem as icons are added in the future. 2. --- Fix a problem with the mechanism of saving the last command line. It wasn't working if the %USERPROFILE%\A-Shell directory didn't exist. (The effect was limited, but would have been noticeable when using the update center, which uses the feature to relaunch the session using the previous command line.) 3. --- $ATE expansion in the TAB(-10,AG_WINEXEC) command was clobbering the first two characters following "$ATE". 4. --- Fix intermittent problem of not being able to launch FTP after an update due to the need to re-register the FTPDLXcall.DLL. It now gets re-registered automatically on first use. 5. --- ATE no longer uses the local PC copy of ASTART.CMD[2,2]. This avoids a confusing conflict when ATE and A-Shell/Windows share a directory tree. Now, ATE looks for ATE looks for ATESTART.CMD[2,2] on the PC side before launching the TELNET session. ATESTART.CMD[2,2] would only be of interest if you wanted to customize the ATE environment by running one or more programs (perhaps, to customize the menus) before starting the TELNET session. The more common way to customize the ATE environment would be from the server side after you've connected. 6. --- DIR.LIT 3.0(140) no longer reports (by default) the "Warning: skipping incompatible filespec" message. (This was mostly an annoyance.) You can force the message to appear by using the new switch /WARN. When it does appear, it displays the full path (making it easier to find the offending file.) 7. --- DIR.LIT 3.0(140) also supports a new switch, /NA{TIVE}{:len} which displays files in the native format of the host operating system. The len subparameter (default 24) determines the maximum display width for the filespecs. If the filename exceeds that, it is terminated with ">" just as when /NATIVE is not used. /NA{TIVE} causes the following other effects: - "Incompatible files" are treated like any other files (i.e. displayed instead of skipped). - File sizes are shown in bytes instead of blocks - File names are shown in upper and lower case as they really are. - When combined with /D, displays entire path for each file. Otherwise, displays just the filename + extension(s) (but for each new directory, displays the directory in native format instead of the DEV:[p,pn] format.) - /W will default to /W:2 ============================================================================ A-Shell Development Notes Version 5.0.989.3 (04 Jun 2007) ============================================================================ 1. --- Fix problem the drop-down portion of certain combo boxes being only 1 pixel tall. (Problem mainly occurred under W2000, and only when the Misc. Settings option to make the edit box height match the combo box height was selected.) 2. --- Self combo fix: close a timing loophole that was causing the effect of closing the self-combo display as fast as it was opened. 3. --- ATE: fix annoyance where the window would be cleared on return from displaying the ATE connection properies. This should only happen when the emulation is changed. ============================================================================ A-Shell Development Notes Version 5.0.989.2 (01 Jun 2007) ============================================================================ 1. --- XTEXT fix: left click on inactive tree wasn't always sending the click string (or was mixing the left click string with the right click string). 2. --- XTEXT fix: initial caret position was sometimes out of sync with actual cursor. This was purely an aesthetic issue, since any editing action would have re-aligned it, but it was still annoying. 3. --- XTREE enhancement: XTR'NEXTROW field (previously unused) has been renamed to XTR'TOPINDEX and may now be used to force the initial display vertical scroll position. To activate the feature, set XTR'TOPINDEX to the desired first visible row (1=first). Once set, it will be updated on exit, so that a subsequent re-entry will enter in the same position. To disable the feature, set it to 0. Note that this will override the default logic which normally tries to position the vertical scroll so that the initially selected row is visible. 4. --- AutoMouse refinements: When using default translations (i.e. double click on a screen token to send it to the keyboard), automatic trailing CR was being disabled by scrolling INFLD fields. Now CR should be automatic except when INFLD is processing a Fast field. Also, slash is no longer considered a token delimiter. Finally, activating AutoMouse turns the mouse cursor to an arrow. ============================================================================ A-Shell Development Notes Version 5.0.989.1 (31 May 2007) ============================================================================ 1. --- SEND.LIT 2.2A(121) under UNIX now supports a /W switch to send a "Window" message if the terminal is a ZTERM or ATE workstation. Otherwise it acts just like SEND without a switch. The Window version of the message launches an external application, ASMSG.EXE which must be in the path on the workstation. The best place to put it is in the directory where ATE or ZTERM is launched from (e.g. typically c:\program files\microsabio\ate\bin or c:\program files\cool.stf\zterm for windows, although it could also be the Windows directory. The idea of using an external program to display the message is to allow sites or resellers to customize the message utility. We provide a very simple example in the SYS: directory of the UNIX releases now. If you want to create your own, the requirement is that it support the following command line format: asmsg.exe /T:title /M:message To distribute the utility, you may want to add logic to your application startup to use the ATSYNC mechanism, or a standard ZTERM file transfer, to copy it from the server to the workstation. The utility is small enough that this will take nearly no time at all. We would have done this automatically within the message handler, but since file transfers can sometimes require user intervention, it seems questionable to get into that during a signal receiving routine. Note that the existing AWMSG.EXE which is distributed with A-Shell/Windows and used by default with SEND.LIT will work fine with the UNIX version (just copy it to ASMSG.EXE). The only difference between it and the standard release ASMSG.EXE is that ASMSG.EXE displays a much bigger window. 2. --- (UNIX): Fix a bug in the SEND message handler when the client is ATE. It was trying to launch AWMSG with an invalid filespec. 3. --- XTEXT fix: It was not returning TXC'CTLID as suggested by the documentation. 4. --- XTEXT enhancement: Two new bits have been defined in the TXC'FLAGS8 field to force ESC to be interpreted as either save-and-exit or abort-and-exit without popping up the dialog to prompt. &h80000000 - Force ESC to save any changes and then exit. &h40000000 - Force ESC to exit without saving any changes. 5. --- EVENTWAIT fix: Close an obscure loophole in which EVENTWAIT could confuse a new dialog with a previously deleted dialog, if the new dialog had the same ID. This would affect the way EVW_EXCDINOUT is handled. (On the first call for a new dialog, the EVW_EXCDINOUT flag is normally ignored.) 6. --- EVENTWAIT enhancement: Buttons with exitcode values -1 thru -32 may now be used with EVW_EXCDINOUT. Previously, only buttons with exitcodes beyond -100 would be eligible. The new behavior allows buttons that emulate the standard function keys to be used with EVW_EXCDINOUT. ============================================================================ A-Shell Development Notes Version 5.0.989.0 (28 May 2007) ============================================================================ 1. --- Fix 64K limit issue in size of an individual PRINT statement. (Attempting to exceed that was causing an infinite loop as an internal counter was rolling over to 0 after 64K.) Problem went back to "Day 1". Apparently it has taken this long before someone tried to PRINT a variable or expression longer than 64K. 2. --- Fix 64K limit issue in various string expressions (such as concatenate). 3. --- Optimize INSTR() function in case where the key string is only 1 char. (Improvement is only noticeable when using INSTR on huge source strings.) 4. --- MX_COPYFILE: Under UNIX, the copy operation is now handled internally (rather than shelling out to cp). This resolves some nagging issues with detection of errors and also ownership of the created file. 5. --- XTREE: Arrow keys were not working for navigation when in checkbox and radiobutton cells. 6. --- AUI_CONTROL: CTLOP_CHG with MBST_STYLE was not actually saving the updated control type flags in the control table. ============================================================================ A-Shell Development Notes Version 5.0.988.9 (22 May 2007) ============================================================================ 1. --- SYSTAT.LIT 3.0(157) supports an /ATE switch which identifies ATE connections (in place of the pid), either "ATE/SRV" to indicate that the license was issued by the server, or else "ATE/PC" for any other ATE connections. 2. --- XTREE fix: Shift key was not working properly in some editable cells. ============================================================================ A-Shell Development Notes Version 5.0.988.8 (21 May 2007) ============================================================================ 1. --- A-Shell/Windows/ATE internal dialogs now display on top, eliminating the possibility of being able to cover them with an A-Shell floating dialog and get fooled into thinking the session was stuck. ============================================================================ A-Shell Development Notes Version 5.0.988.7 (19 May 2007) ============================================================================ 1. --- COPY.LIT 3.1(128) fixes a problem whereby it would fail to detect certain copy failures (particularly, privilege error). 2. --- MX_COPYFILE: Under UNIX, when an error occurs, we now capture the detailed message (as cp or mv would have output it). This allows COPY.LIT 3.1(128) to display a more accurate error message (although it will still report the failure to copy, even without this update to the A-Shell executable.) If you use MX_COPYFILE in your own programs, and receive a non-zero STATUS, you can examine the contents of .tmp for the message. 3. --- Fix an internal window for memory corruption during the A-Shell/Windows startup if it needs to reverse-translate an 8.3 mangled spec (for the miame.ini) into a properly long filename. 4. --- MX_SETENV enhancement: If changing the definition of the TERM variable, it now re-initializes the terminal to reflect the new emulation setting. ============================================================================ A-Shell Development Notes Version 5.0.988.6 (16 May 2007) ============================================================================ 1. --- EVENTWAIT enhancement: If there is a control present that sends exitcode -35, then don't treat is as a "prev-control". (This resolves some of the conflict with the use of "reserved" exitcodes in legacy programs that don't start their field-click-exitcodes at 100. Note that this only works if you don't use the EVW_EXCDFOCUS.) As a general rule, you should avoid using exitcodes between -100 and +100 for controls. 2. --- INFLD GUI fix: SHIFT-TAB was returning EXITCODE 9 instead of -35 when neither |2 nor 3 TYPE codes used. The issue was rare, since normally one of those would be used to treat SHIFT-TAB like up arrow (3) or left arrow (2). ============================================================================ A-Shell Development Notes Version 5.0.988.5 (15 May 2007) ============================================================================ 1. --- SET.LIT 1.2(149) fixes a bug in which the DEBUG status was always showing NODEBUG. 2. --- EVENTWAIT fix: EVW_EXCDFOCUS was not working with non-INFLD checkboxes and radiobuttons. (Was not allowing the focus to be placed on those controls.) ============================================================================ A-Shell Development Notes Version 5.0.988.4 (10 May 2007) ============================================================================ 1. --- USRCNT: New optional parameter returns the count of A-Shell instances, including the current one, which are running on the current machine. Added primarily for the benefit of ASHUPD (to make sure there are no other instances of A-Shell running that would interfere with an update), it might also be useful to applications attempting to monitor usage for the same reasons they are already using USRCNT.SBR. Syntax: XCALL USRCNT, PCOUNT {,LCOUNT {,MCOUNT {,IXCOUNT}}} Where IXCOUNT (F or I) returns the executable instance count, including the current instance. -1 indicates some kind of error (like an inability to execute the ps command under UNIX.) 0 would indicate a different kind of error (i.e. that the current instance is detecting neither itself, nor any other error while scanning the process or window list.) For Windows, this is a count of windows sharing the A-Shell main window class (MIAMEWClass). Note this would include A-Shell/Windows and ATE, which could involve more than one actual ASHW32.EXE executable. Note that in a peer-to-peer environment, one peer running this function would not see the other peers that may be sharing the same copy of ASHW32.EXE. (In this case, you should probably use SYSTAT as well to check for the possibility of other instances of A-Shell which share the ASHW32.EXE disk copy, but which are in different memory spaces or different workstations.) For UNIX, it uses "ps" to check for processes whose launch command references the current executable (which isn't necessarily named "ashell"). In either case if the IXCOUNT value is greater than the LCOUNT (logical instance) value, that implies that there are instances of A-Shell running that aren't sharing the same JOBTBL.SYS. 2. --- Windows About box: Add button to go to website. 3. --- ASHUPD.LIT 1.1(105) enhancements: - It checks for an existing update in progress (or possibly a hung prior instance) and attempts to delete UPDATECENTER.TEMP.EXE if needed. If it can't delete it, it reports the problem (better than leaving you wondering.) - It checks for multiple instances of ASHW32 running, refusing to update if in /FAST mode, or giving you abort/retry/ignore options if in interactive mode. - Increase initial timer from 5 to 10 seconds before reporting that the check for updates failed. ============================================================================ A-Shell Development Notes Version 5.0.988.3 (9 May 2007) ============================================================================ 1. --- INFLD: Fix problem with symbolic control names specified in the V parameter (e.g. V = ">ctlname") being lost in ATE. (Fix requires the server side to be updated - not necessarily the client side.) ============================================================================ A-Shell Development Notes Version 5.0.988.2 (8 May 2007) ============================================================================ 1. --- XTEXT: Add TXC'MAXBYTES fields to TXTCTL structure to allow a maximum number of bytes to be specified for the text memo. End of TXTCTL structure (in XTEXT.MAP) now looks like this: ... map2 TXC'TIMEOUT ,B,4 ! 186 timeout (ms) map2 TXC'IDNAME ,S,40 ! 190 ctlname or parentname>ctlname map2 TXC'MAXBYTES ,B,2 ! 230 max bytes allowed (0=unlimited) map2 TXC'UNUSED ,X,24 ! 232 (256 total) Notes: The mechanism for determining when the limit is reached is not perfect, and only operates during the processing of normal keystrokes. It does not operate during the paste operation, nor during the memo load, nor during replacement operations. (These loopholes may be closed in a later release.) Also, field only supports a limit of up to 64K, on the theory that the space in the TXTCTL structure is more valuable than the likelihood of somebody wanting to set a limit of more than 64K. (However, if anyone sees a problem with that before we assign the next byte in the TXC'UNUSED field, we can just expand it to B,3 without affecting existing programs.) 2. --- MIAMEX MX_OSVER: now supports returning information about the ATE client. New syntax: xcall MIAMEX, MX_OSVER, OSNAME {,OSVER, {,OSREL {,ASPLATFORM & {,ATE'OSNAME {,ATE'OSVER {,ATE'OSREL {,ATE'PLATFORM}}}}}}} The parameters ATE'OSNAME, ATE'OSVER, ATE'OSREL, and ATE'PLATFORM are equivalent to the OSNAME, OSVER, OSREL and ASPLATFORM parameters, except they return the information about the ATE client, if applicable. Otherwise they return null strings. Note: this requires updating both the ATE and server sides to 988.2+. The MIAMEX.BP sample program in [908,30] of the SOSLIB has been updated to test/illustrate the new fields. ============================================================================ A-Shell Development Notes Version 5.0.988.1 (7 May 2007) ============================================================================ 1. --- XTREE: Fix annoying jiggle in vertical scroll bar when using XTROP_REPLACE. (Problem surfaced in 987.3). 2. --- Dialog positioning with multiple monitors: Extend the logic introduced in 987.1 for determining which monitor to put a dialog on, to work with parent-less normal dialogs. (Previously it only worked with centered and maximized dialogs). 3. --- XTEXT: Reinstate operation of F5 (search) and F6 (replace), which were replaced in edit 977 by the more standard ^F and ^H commands when the TER14.DLL replaced TER13.DLL. Now either command can be used. F3 performs a search-next and Shift-F3 does search-prev. You can also use the ^F and ^H commands to initiate search and replace, but note that ^F still acts internally like F5, meaning that you have to use the txc'fmapctl and txc'fmapapp fields to send it to either the XTEXT control or the application. ============================================================================ A-Shell Development Notes Version 5.0.988.0 (5 May 2007) ============================================================================ 1. --- XCALL MIAMEX,MX_CLIPBOARD: Now works with ATE as it does with A-Shell/ Windows. However, in order to avoid breaking compatibility with an undocumented A-Shell/UNIX feature in which it used MEM0:.CLP[1,1] as a pseudo-clipboard buffer, if you want to force it to use the new behaviour in ATE environments, you must add +2 to the opcode. 2. --- SUBMIT.LIT 3.1(148) fixes a problem which the "/L logfile" switch being confused with /LIST. (The problem only occurred if you used a space between the /L and the logfile.) 3. --- ASHICO1.DLL 1.0.0.5 now includes a set of "media" icons: media_beginning media_end media_fast_forward media_pause media_play media_play_green media_rewind media_step_back media_step_forward media_stop media_stop_red music Sample program ICODLG in the SOSLIB updated to display the new icons. 4. --- AUI_WINDOW fix: Using flg=-1 and cid=-1 or cid=-2 now always returns information about the primary monitor only. Previously, it was ambiguous since if there were two monitors, it would return information about the combined area if the second monitor was to the right, but only about the primary monitor if the second monitor was to the left. 5. --- AUI_WINDOW enhancement: Add new flg -2, which acts similarly to -1 except is designed specifically to retrieve information about multiple monitors, both together and individually, depending on the value of cid: cid = -1 ! return rectangle coordinates for primary monitor cid = -2 ! return rectangle coordinates for primary work area ! (monitor less task bar) cid = -3 ! return rectangle coordinates for second monitor cid = -4 ! return rectangle coordinates for second work area ! (monitor less task bar) cid = -5 ! return rectangle coordinates for third monitor cid = -6 ! return rectangle coordinates for third work area ! (monitor less task bar) cid = -99 ! return rectangle coordinates for total virtual screen flg -2 also supports an optional additional argument, monitors, which returns the number of monitors: xcall AUI,AUI_WINDOW,flg,lft,top,rgt,btm,rows,cols,tsts,bsts, & cid,vwidth,vheight,monitors The coordinates in all cases are returned in the lft,top,rgt,btn parameters in pixels. Note that the coordinates of secondary monitors may be negative. The primary monitor always starts at 0,0. The rows,cols,tsts,bsts parameters are not used in this mode. The parameters vwidth and vheight return the overall virtual desktop height and width. The sample program AUIWIN in the SOSLIB[908,28] has been updated to demonstrate the new features. 6. --- TER14.DLL (XTEXT control) updated to version 14.0.4.3 (misc internal bug fixes). 7. --- ASHUPD.LIT 1.0(103) Now displays the list of modules to be updated, rather than just indicating the total number of files and bytes. Also, a new switch, /F{AST} has been added to stifle all user interaction requiring a user response. (That is, it checks for updates and either performs them or reports there are none, without waiting for user confirmation). This could be useful in CMD file where you always want to update if possible, without bothering the user to make decisions. (The updated source code is in [901,2] of the SOSLIB.) 8. --- INMEMO.SBR: Delete operation no longer reports memo links to the screen. All link errors continue to be reported to the ashlog.log file in any case, but it was decided that this particular error was not worth bother the user about. ============================================================================ A-Shell Development Notes Version 5.0.987.7 (27 Apr 2007) ============================================================================ 1. --- Dialog positioning with multiple monitors: When a dialog is created using either the MBST_CENTER or MBST_MAXIMIZE state flags, it will now be positioned on the same monitor as the main window was last positioned on (or originally launched from). ============================================================================ A-Shell Development Notes Version 5.0.987.6 (26 Apr 2007) ============================================================================ 1.