Date: 4-1-2022 Subject: RELEASE 10.4B Runtime Files These RELEASE notes pertain to the following programs or files: PLBCLICON 10.4B 01 Apr 2022 10.4.2.500 (ComCtl 6) PLBCLIENT 10.4B 01 Apr 2022 10.4.2.500 (ComCtl 6) PLBCLINET 10.4B 01 Apr 2022 10.4.2.500 (ComCtl 6) PLBCON 10.4B 01 Apr 2022 10.4.2.500 (ComCtl 6) PLBCONET 10.4B 01 Apr 2022 10.4.2.500 (ComCtl 6) PLBNET 10.4B 01 Apr 2022 10.4.2.500 (ComCtl 6) PLBWIN 10.4B 01 Apr 2022 10.4.2.500 (ComCtl 6) PLBSERVE 10.4B 01 Apr 2022 10.4.2.500 (Processed Server) PLBSERVET 10.4B 01 Apr 2022 10.4.2.500 (Threaded Server) PLBWEBSRV 10.4B 01 Apr 2022 10.4.2.500 (Processed Server) PLBWEBSRVT 10.4B 01 Apr 2022 10.4.2.500 (Threaded Server) PLBNETSUP.DLL 10.4B 01 Apr 2022 10.4.2.500 Required for PLBNET PLBWSEC.DLL 10.4B 01 Apr 2022 10.4.2.500 Req'd PLBWIN/PLBNET PLBCLI.ZIP 10.4B 01 Apr 2022 10.4.2.600 (ComCtl 6) PLBRUN.ZIP 10.4B 01 Apr 2022 10.4.2.600 (ComCtl 6) PLBCMP 10.4B 01 Apr 2022 SUNDEBUG 10.4B 01 Apr 2022 *============================================================================== Notes for DOCUMENTATION: - In the PL/B Runtime Reference manual, modify the 'I (I/O) Errors' section for the I72 error to include the following subcode descriptions: 18: Invalid $MACRO file name processed as a 'PLBENV_keyname' keyword. 19: Unresolved 'PLBENV_keyname' keyword in a $MACRO file name. 20: Runtime 'PLB_DPTFILENAME' keyword is set to off which prevents Datapoint file name formats from being used. 21: Datapoint file name format error processing PLBVOL keyword. 22: PLBVOL keyword not found. 23: Multiple '|' characters in resolved $MACRO file name is not\ allowed. - In the PL/B Web Server manual, modified the first sentence of the description in 'PLBWEB_AUTH Keyword' to read as follows: "This optional keyword overrides a previously installed authorization number for the server only when the installed authorization number version is the same version as specified by the PLBWEB_AUTH keyword." - In the PL/B Language Reference manual, modify the 'PRTOPEN' instruction Note (15.) to include the following sentence: "When using a $MACRO file name or Datapoint name format for the SPOOLFILE keyword, the PLBENV and PLBVOL keywords are only found/resolved by the PL/B runtime executing a program. In this case, the SUNDM DOES NOT resolve any PLBENV or PLBVOL keywords." - In the PL/B Language Reference manual, modify the 'PDF PRTOPEN Notes' section to include a Note (6.) that reads as follows: Note: 6. If the 'PDFNAME' file name uses either the Datapoint or the '$' macro format and it includes a SUNDM ip address, the PLBENV and PLBVOL keywords are only found/resolved by the PL/B runtime executing a program. In this case, the SUNDM DOES NOT resolve any PLBENV or PLBVOL keywords." - In the PL/B Language Reference manual, modified the 'Dir Method (FTP)' section as follows: 1. Change the 'return' description to read as follows: return Optional A Numeric Variable that returns the number of items in the directory file list found by this method. 2. Change the Note (5.) bit-mask descriptions for read as follows: Values Description 0x0 If the 'flags' value is not used, the behavior is the same as when there are no bits set. In this case, the method returns a list of file/directory names along with other information like permissions, modification date, ...etc. 0x1 When this bit is set, the method only returns a list of file/directory names as specified by the 'remotefile' parameter. In this case, only names are returned without any other information. 2. Add a Note (6.) that reads as follows: Note 6. The file/directory data retrieved by the FTP 'Dir' method can be accessed using the FTP 'DirItem' method. - In the PL/B Language Reference manual, modify the 'MENU' section for note number (4.) so the {key} description reads as follows: key Required A Character String Variable, Numeric Variable, or Expression that specifies the run-time name (RUNNAME property) or zero-based position of the menu item. - In the PL/B Language Reference manual, change the 'CAUSEVALID Property' Objects to include a 'TOOLBUTTON'. - In the PL/B Language Reference manual, change the 'TOOLBUTTON' object descriptions as follows: 1. Add the 'CAUSEVALID' property to the TOOLBUTTON properties. 2. Add a Note (7.) that reads as follows: 7. If the CAUSEVALID property for the TOOLBUTTON is enabled, the CAUSEVALID property for its parent TOOLBAR must also be enabled before a VALIDATE event can be triggered by the toolbutton. - In the PL/B Language Reference manual, change the 'AddButton Method (TOOLBAR)' as follows: 1. Add the '*CAUSEVALID' to the parameters as follows: [*InsertAt=]{insertAt}][: [*CauseValid=]{causevalid}] 2. Add the {causevalid} description as follows: causevalid Optional. A decimal number or Numeric Variable that is used to disable or enable the CAUSEVALID event for a TOOLBUTTON being added. A value of zero disables the CAUSEVALID event. A non-zero value enables the CAUSEVALID event. If this parameter is not used, the CAUSEVALID event for the TOOBUTTON being added is enabled. - In the PL/B Runtime Reference manual, change the description of the 'I80' error found in the 'I Errors' section to read as follows: I08 Insufficient access rights or disk resources. During PREP, insufficient write or create privileges for the directory. During I/O, insufficient write privileges for the file/directory or file space full. May need to increase number of files in CONFIG.SYS in MS-DOS. Also, this error can occur when the OS IO (network/file) is unstable resulting in unknown/unexpected OS errors. For this error, the user should note/report any additional information which includes error subcodes and/or OS Error codes like WINERR for the Windows OS. I80 Inconsistent FCB parameters on text file seek (system error). Also, this error can occur when the OS IO (network/file) is unstable resulting in unknown/unexpected OS errors. For this error, the user should note/report any additional information which includes error subcodes and/or OS Error codes like WINERR for the Windows OS. - In the PL/B Language Reference manual, change the DIM instruction as follows for GDIM data type supported using the SWDBC compatibility mode: A) Add the following GDIM statement syntax formats supported: (17) [label] GDIM [*]{size} (18) [label] GDIM [*]{size}({arraysize}) (19) [label] GDIM [*]{size}({arraysize}),("????"),...,("????") (20) [label] GDIM [*]{size}({arraysize},...,{arraysize}) (21) [label] GDIM [*]{size}({arraysize}), INITIAL "????", ... B) Add a Note (14.) that reads as follows: 14. The SWDBC GDIM data type is implemented/supported as a GLOBAL variable like PL/B DIM GLOBAL data type. However, the GDIM statement GLOBAL syntax formats (17) through (21) are supported when the SWDBC mode is enabled using the (-zc=3) compiler option. - In the PL/B Language Reference manual, change the FORM instruction as follows for GFORM data type supported using the SWDBC compatibility mode: A) Add the following GFORM statement syntax formats supported: (18) [label] GFORM [*]{size} (19) [label] GFORM [*]{value} (20) [label] GFORM [*]{size}({arraysize}) (21) [label] GFORM [*]{value}({arraysize}) (22) [label] GFORM [*]{size}({arraysize}),({value}),...,({value}) (23) [label] GFORM [*]{size}({arraysize},...,{arraysize}) (24) [label] GFORM [*]{value}({arraysize},...,{arraysize}) (25) [label] GFORM [*]{size}({arraysize},...,{arraysize}): ({value}),...,({value}) (26) [label] GFORM [*]{size}({arraysize}), INITIAL {dvalue}, ... A) Add a Note (15.) that reads as follows: 14. The SWDBC GFORM data type is implemented/supported as a GLOBAL variable like PL/B FORM GLOBAL data type. However, the GFORM statement GLOBAL syntax formats (18) through (25) are supported when the SWDBC mode is enabled using the (-zc=3) compiler option. - In the PL/B Web Server manual, change the 'FTP Support' section so the Note (4.) 'SITE' command description reads as follows: SITE site-specific-filename Executes a site-specific command for the PWS FTP Server. TIME is a supported command. CHMOD is a supported command. - In the PL/B Runtime Reference manual, change the 'PLBCMP Command Line Syntax' section to include the new compiler option 'WE' as follows: WE={0|1} This compiler option can be used to disable support for open ended numeric expressions. By default, the 10.4B PL/B compiler supports and allows open ended numeric expressions the same as using 'WE=1'. If the 'WE=0' compiler is used, the compiler does not allow the open ended numeric expression syntax in a program. *============================================================================== The following files have been changed as noted: ------------------------------------------------------------------------------- PLBWEBSRV (HTML\JS\CSS) - Modified to support 10.4B changes. plbwebbasic.css 10.1B 190424 plbwebbasic.js 10.4B 220124 plbwebboot.html 10.2A 191210 plbwebctls.js 10.1A 190103 plbwebmob.js 10.0A 180402 Support jQuery Mobile plbwebtvcssinfo.html 9.9 161028 plbmobstart.html 10.0A 180402 Support jQuery Mobile plbwebstart.html 10.0A 180402 plbwebstart99a.html 9.9A 170428 - Modified the 'plbwebbasic.js' to correct a problem where the EditDateTime Change event did not fire when a SETPROP or SETITEM changed the date in the EditDataTime object. ------------------------------------------------------------------------------- PLBWEBSRV (Linux\Unix) - Corrected a problem where the 1.1.x libssl.so.1.1 and libcrypto.so.1.1 shared libraries were encountering an unexpected error when they were being loaded. ------------------------------------------------------------------------------- PLBWEBSRV (Windows) - Modified to correct a GPF error that could occur when two PWS users logged on to the PWS server at exactly the same time. ------------------------------------------------------------------------------- PLBWEBSRV - Modified to allow Modal/Modeless Windows to be sizeable when the WINBORDER setting is $SIZEABLE, $SIZEABLE3D, or $SIZEABLETOOL. - Modified the PWS FTP support to support the 'SITE' command as follows: 'CHMOD ' - Corrected FTP issues using the STATE, DIR, and LIST commands. - Corrected a problem where the PWS runtime was setting the WIDTH of a TOOLBAR/STATUSBAR to be 100% when the DOCK property was set to NONE. This change corrects unexpected behaviors that could occur if a TOOLBAR unexpectedly overlays other PWS objects. - Corrected a PWS SPLITTER problem for bottom/right docked splitters. ------------------------------------------------------------------------------- PLBWIN, PLBNET - Modified the KEYIN instruction to support 'Ctrl-V' to paste. In this case, a maximum of 80 characters can be pasted. - Modified to work around a Windows OS problem when an excessive number of EXECUTE processes were terminated due to a timeout using the '[nnn]' instruction timeout syntax. - Modified so the Sundebug debugger can work properly while a MODAL dialog is active in a program. - Corrected a problem where the Print Preview 'ZOOM' would give an odd behavior when the PRTCLOSE ZOOM keyword was used with a non-zero value. ------------------------------------------------------------------------------- PLBWIN, PLBNET, PLBSERVE, PLB(UNIX), PLBWEBSRV - Modified the MAILSEND to allow errors to be logged to the trace output for SSL dll versions 1.0.x and 1.1.x. - Modified to correct a problem where PLBVOL usage in the pdf name in a PRTOPEN PDFNAME keyword must be resolved before sending the name to a Data Manager. - Corrected problems where destination file names for a COPYFILE operation contained unresolved PLBVOL keywords which were being sent to a Data Manager. ------------------------------------------------------------------------------- PLBWIN, PLBNET, PLBSERVE, PLBWEBSRV, ALL GUI CLIENTS - Modified TOOLBUTTON to support the CAUSEVALID property. - Modified TOOLBUTTON to support the CAUSEVALID property. If the TOOLBAR object has CAUSEVALID set to $ON, the runtime will also check the TOOLBUTTON's CAUSEVALID property. ------------------------------------------------------------------------------- PLBWIN, PLBNET, ALL GUI CLIENTS - Modified to insure that the WINDOW object 'minWidth' and 'minHeight' property values are smaller than the full-screen window on the primary monitor for the Width and Height. ------------------------------------------------------------------------------- PLBCMP - Added CAUSEVALID property to the TOOLBUTTON object. - Modified the MENU 'ITEMS' collection to allow a numeric expression to used for the {key} reference position. GETPROP {object}.ITEMS({key}),{property} Example: GETPROP Menu.ITEMS( (i4a - 1) ), TEXT=S$CMDLIN - Modified the PL/B compiler to support open ended expressions. With this change a numeric expression syntax allows a leading '(' character and a trailing ')' character to be optional used. Examples: A FORM "1" B FORM "2" F3 FORM 3 FM FLOATMENU . CREATE FM=2:2:2:25,";)Editor;)Compiler;De&bugger" . . Normal numeric expression syntax . MOVE (A + B + 1) TO F3 MOVE (A + B + 1), F3 GETPROP FM.items( (i4a - 1) ),TEXT=S$CMDLIN . . Open ended numeric expression syntax . MOVE A + B + 3 TO F3 MOVE A + B + 3, F3 GETPROP FM.items( i4a - 1 ),UserData=S$CMDLIN . - Added a new compiler option named 'WE={0/1}' which can be used to disable support for open ended numeric expressions. By default the 10.4B PL/B supports and allows open ended numeric expressions to be compiled into a users program which the same as using the 'WE=1' compiler option. Note: 1. If the PL/B developer does not want to allow the open ended numeric expression syntax, the 'WE=0' compiler option can be used to disable/prevent open ended numeric expression syntax in a program. - Removed the 'Warning' for an 'IF' expression syntax where all of the operands are dnum constant values. - Added WH="nnn,mmm..." compiler option so WARNING messages specified in a comma delimited string are ignored by the compiler. For this option, the 'nnn', 'mmm', etc give the warning numbers found in the 'plberrors.xml' file. - Add GDIM/GFORM support used in DBC programs being ported to PL/B. The GDIM/GFORM data variables format are described as shown in the 'Notes for DOCUMENTATION' section. - Modified to compiler 'ZC=1' and 'ZC=2' Datapoint compatibility options so the compiler ignores the SCAN instruction warning for an unknown preposition before the 3rd parameter. However, beware that the compiler does accept a valid preposition and 3rd parameter with properly formatted syntax when using these Datapoint compatibility modes. ------------------------------------------------------------------------------- SUNDEBUG - Label lists now provide selection of local and function data and execution labels. ------------------------------------------------------------------------------- SUNIDE.PLC - Now clears the selected program combobox when loading a project. - Redirected debug messages from the Messages window to the Build window. - Removed the "Break at" debug messages while in integrated debugging. - Added Replace in Files. - Corrected an issue with building the file list for the Find In Files function. - Enhanced operation of the Last Runtime Error dialog. - The Last Runtime Error listview column widths are now preserved and restored when the window is displayed. - The Build output window now makes the last added message visible. - When adding a Quick Watch variable to the Watch output window, the output window is selected. - Corrected issues with selecting the correct output tab when promoting and demoting windows. - Modified the Exit selection of the Debug File menu to terminate the debugger rather than the IDE. - Ensure output tabs/windows show when adding or toggling breakpoints or tracepoints. - Output window listviews are now sorted. - Turns off AutoRedraw when filling the call stack listview. - Corrected F02 when going to a label in a form. - Add Pre-Build and Post-Build compiler commands with replacement tags. - Now allows editor tabs to be promoted to independent windows. - Corrected minimize compiler issue after pre-build and post-build commands were added. - The compiler batch file is now always minimized. The compiler itself is optionally minimized. - The integrated debugger does not support independent windows. - When debugging with SunDebug or the Integrated Debugger, the call stack output window is selected when an error occurs. - 'Set IP to Cursored line' will now highlight the line selected. - The Designer version is now checked and reported in the Help/About dialog. - Modified the Find In Files routine to skip files containing .Net objects when executing with PLBWIN. - Corrected issues in saving Find/Replace in Files parameters in the configuration file. - Modified the recent files list to also store the associated selected program with each file. - When showing the Find/Replace in Files dialogs, the search type is only changed when warranted. - Corrected a painting issue when an editor is started in an independent window. - Anchored the demote and hide buttons on independent windows. - Changed the independent window type to $PRIMARYSIZE to provide the Minimize and Maximize buttons. - The Build and Debug functions of the Project shortcut menu now compile the file first if necessary. - Now detects any editor recovery files when the project is opened and allows recovery. - Now passes the runtime ini file when debugging with SunDebug. - Corrected an issue in selecting the proper tab when debugging called modules. - Added a Tools/Options/Recovery tab with enhanced backup capabilities. - Added FTP Accounts options page. - Modified options cancel logic not apply changes to equates, extension, and user tools. - When using the Integrated debugger, the main window may be moved to a new position or screen and that location will be used for subsequent debugger sessions. - Added the FTP open, save, and save as functions. - Corrected bookmark next and previous functions. - Corrected enabling of bookmark toolbar buttons. - Corrected issues with editor focus. - Corrected the initialization of the editor when creating an independent window. - Removed screen flickering when loading saved editors. - Peek now loads the window from an existing edit window before using the disk file. - Added a "Refresh" option to the peek window. - When creating a new project, the "Add Files" dialog only shows if the source folder contains files other than the project file. - Label lists now provide selection of local and function data and execution labels. ------------------------------------------------------------------------------- DESIGNER.PLC - Added logic to handle form open failures in various routines. - Corrected an issue with code corruption when multiple files are open. ------------------------------------------------------------------------------- EDITOR.PLC - Corrected an issue with error trapping. ------------------------------------------------------------------------------- WATCH.PLC - Corrected server log file viewer issues. - Added CSS code to adjust the tab control label height when executed by the web server. - Modified the ZOrder property for the logging window close and refresh buttons. - Modified the computation of the error message index from a one digit value to a two digit value. -------------------------------------------------------------------------------