Date: 05-17-2019 Subject: RELEASE 10.1B Runtime Files These release notes pertain to the following programs or files: PLBCLICON 10.1Bb 17 May 2019 10.1.2.102 (ComCtl 6) PLBCLIENT 10.1Bb 17 May 2019 10.1.2.102 (ComCtl 6) PLBCLINET 10.1Bb 17 May 2019 10.1.2.102 (ComCtl 6) PLBCON 10.1Bb 17 May 2019 10.1.2.102 (ComCtl 6) PLBCONET 10.1Bb 17 May 2019 10.1.2.102 (ComCtl 6) PLBNET 10.1Bb 17 May 2019 10.1.2.102 (ComCtl 6) PLBSERVE 10.1Bb 17 May 2019 10.1.2.102 (Processed Server) PLBSERVET 10.1Bb 17 May 2019 10.1.2.102 (Threaded Server) PLBWIN 10.1Bb 17 May 2019 10.1.2.102 (ComCtl 6) PLBWEBSRV 10.1Bb 17 May 2019 10.1.2.102 (Processed Server) PLBWEBSRVT 10.1Bb 17 May 2019 10.1.2.102 (Threaded Server) PLBCLICON5 10.1Bb 17 May 2019 10.1.2.102 (ComCtl 5) PLBCLIENT5 10.1Bb 17 May 2019 10.1.2.102 (ComCtl 5) PLBCLINET5 10.1Bb 17 May 2019 10.1.2.102 (ComCtl 5) PLBCON5 10.1Bb 17 May 2019 10.1.2.102 (ComCtl 5) PLBCONET5 10.1Bb 17 May 2019 10.1.2.102 (ComCtl 5) PLBNET5 10.1Bb 17 May 2019 10.1.2.102 (ComCtl 5) PLBWIN5 10.1Bb 17 May 2019 10.1.2.102 (ComCtl 5) PLBNETSUP.DLL 10.1Bb 17 May 2019 10.1.2.102 Required for PLBNET PLBWSEC.DLL 10.1Bb 17 May 2019 10.1.2.102 Req'd PLBWIN/PLBNET PLBCMP 10.1Bb 17 May 2019 *============================================================================== Notes for WARNINGS: - Changes have been made for version 10.1B for the 'READ FILE (-4)' which 101Ba performs read prior record operations for a text file. The changes were made to resolve unexpected behaviors when the text file contained deleted records. *============================================================================== Notes for DOCUMENTATION: - In the PL/B Language Reference manual, change the 'WRITE (XFILE)' 101Ba section as follows: 1. Remove the 'Character String Variable' from the description for the {record} parameter. - In the PL/B Language Reference manual under the 'GETFNAME' section, 101Ba modify the Note (3.) to include these descriptions: 3a. When a default file {name} is specified, the extension of the {name} parameter is used/compared to the extensions specified by the {type} user filter data. If an extension match is found, the appropriate filter index is set to allow the matching file filter to be presented in the open/prep dialog. If no match is found, the first user filter appears in the open/prep dialog. 3b. If the default file {name} parameter is NULL and the {ext} field is specified in the {type} user filter string, the {ext} extension is matched to the user filters. If the {ext} matches a user filter extension, the filter index is set to allow that user filter to appear in the open/prep dialog. If no match is found, the first user filter appears in the open/prep dialog. - In the PL/B Language Reference manual under the 'EVENTINFO' section, 101Ba modify the Note (2.) table to include the following: KEYWORD Retrieves the ... ARGx= Retrieves the specified argument for the event. ARGx may be a value of ARG1 to ARG10 indicating the respective argument. - In the PL/B Language Reference manual under the 'AddButton Method 101Ba (TOOLBAR)' section, add the new parameter named 'InsertAt={index}' [label] {object}.AddButton [GIVING {return}]: USING [*AutoSize=]{autosize}[: . . [*UserData=]{userdata}][: [*InsertAt=]{index}] Where: index Optional. A decimal number or Numeric Variable that specifies the zero based index of the TOOLBAR button where a new TOOLBUTTON is to be inserted. The new TOOLBUTTON is inserted to the left of the TOOLBAR button specified by the index value. - In the PL/B Language Reference manual under the 'Compiler Directives' 101Ba section, add the new 'WARNING' directive description section as follows: WARNING The WARNING compiler directive allows PL/B program warnings to be embedded in the PL/B programs. This directive outputs the program warning to the compiler output devices and listings. WARNING {literal} Where: literal Required A program literal string with a leading/trailing double quote character. Note the following: 1. The {literal} string is output when a program is being compiled. 2. The {literal} must be properly formed with a leading and trailing double quote character. Otherwise, a compiler error occurs. Example: . Func FUNCTION ENTRY . WARNING "'Func' function must be completed!!" . FUNCIONEND - In the 'PL/B Web Server' manual change the 'PLBWEB_USER_CSS Keyword' 101Bb section description to read as follows: PLBWEB_USER_CSS={filename.css} This keyword specifies a {filename.css} file that MUST exist in the PWS 'http_root' directory. The {filename.css} contains custom CSS classes used by a user's PL/B program. The user classes can be used to override the default CSS classes declared in the 'plbwebbasic.css' or can be used/declared in the 'WEBCLASS' property of an object. If a {filename.css} user class name is the same as a class name in the 'pblwebbasic.css' file, the user class CSS style behaviors affect all HTML objects using the changed class. Example: PLBWEB_USER_CSS=myprogram.css Where: 1) 'myprogram.css' is a file that is located in the PWS 'http_root' directory. This file contains user classes that conform to the CSS syntax. See this Web link for more details: https://www.w3schools.com/css/default.asp *============================================================================== The following files have been changed as noted: ------------------------------------------------------------------------------- PLBWEBSRV (HTML\JS\CSS) - Modified to support 10.1A changes. plbwebbasic.css 10.1B 190424 plbwebbasic.js 10.1B 190429 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 'plbwebbasic.css' and 'plbwebbasic.js' to support new methods 101Bb named 'SetColumnEdit' and 'SetEditFocus' for the PWS LISTVIEW object. ------------------------------------------------------------------------------- PLBWEBSRV (Windows) - Modified the 'PLBWEB_SSL_PROTOCOL' keyword to support additional settings 101Bb that allow specific SSL protocol versions to be used by the PWS server. With this change the new setting values can be specified as follows: Value SSL Protocols Allowed are ... 10 - Only the TLSv1.0 protocol version is supported. A server only understands TLSv1.0 client hello messages. 11 - Only the TLSv1.1 protocol version is supported. A server only understands TLSv1.1 client hello messages. 12 - Only the TLSv1.2 protocol version is supported. A server only understands TLSv1.2 client hello messages. - A new keyword named 'PLBWEB_SSL_SETCIPHER={cipher}' has been added to 101Bb the PWS server. This keyword can be used to specify the SSL cipher(s) to be used for the PWS SSL connections. The syntax format and descriptions of the {cipher} settings can be found at this URL link: https://www.openssl.org/docs/manmaster/man1/ciphers.html Where: {cipher} - Specifies a cipher list that consists of one or more cipher strings separated by colon characters. The {cipher} string is case sensitive. Note: 1. It may become necessary to restrict or include specific server side SSL ciphers to be supported by the PWS server. In some case, this keyword allos Examples of cipher lists: PLBWEB_SSL_SETCIPHER=AES Allows 128-bit and 256-bit block ciphers. PLBWEB_SSL_SETCIPHER=ALL:!RC4:!DES:!3DES Use ALL ciphers after removing RC4, DES, and 3DES. - Corrected a problem when the 'PLBWEB_SSL_PROTOCOL' keyword values of 101Bb 1, 2, or 3 were being used. In this problem scenario, the PWS SSL connections were not setting the minimum protocol version as specified and expected. This could allow s SSL protocol version lower than specified to be used. The 10.1B PWS server corrects this problem. ------------------------------------------------------------------------------- PLBWEBSRV - The PWS server has been modified for the EDITEXT ( numeric type ) and 101Ba the EDITNUMBER to invoke the number input type which gets the proper keyboard on a mobile device. By default, this behavior occurs as described. However, a new keyword named 'PLBWEB_NUMERTYPE=off' has been added to the PWS server which can be used to cause the EDITNUMBER and EDITTEXT ( numeric type ) input type for the mobile devices to be the same behavior as provided by PWS runtimes before version 10.1B. - Added a new method named 'SetEditColumn' for the PWS LISTVIEW object. 101Bb This method can be used to turn on HTML editing for all of the column cells. The HTML editing behaviors are controlled strictly by the client browser operations depending on the type being used. .................................................................... . SetEditColumn Method for PWS LISTVIEW Object . The SetEditColumn method is used to turn on HTML editing for all of the column cells for a PWS LISTVIEW object. The HTML editing behaviors are controlled strictly by the client browser operations depending on the type being used. See this Web link for a description of the tag: https://www.w3schools.com/tags/tag_input.asp This method uses the following format: [label] {object}.SetEditColumn GIVING {return} USING [*INDEX=]{index}: [*TYPE=]{type}[: [*MAXCHARS=]{maxchars}][: [*CLASS=]{class}][: [*LIST=]{list}][: [*FLAGS=]{flags}] Where: {label} is an optional Program Execution Label. {object} is a LISTVIEW object that has been previously Required declared. {return} is a Numeric Variable that returns a value that indicates pass or fail for the method. {index} is a Numeric Variable or decimal number that Required is the zero-based column number of the LISTVIEW being used. {type} is a Numeric Variable or decimal number that Required is a value indicating the type of to be applied to the column cells. {maxchars} is a Numeric Variable or decimal number that Optional is a value indicating the maximum characters to be allowed by the HTML . {class} is a Character String Variable or literal that Optional that contains user CSS Class(es) to be applied to the HTML object. {list} is a Character String Variable or literal that Optional that contains a list of data items separated by a ';' semi-colon character. {flags} is a Numeric Variable or decimal number that Optional Flags Affected: EOS, OVER, ZERO Note the following: 1. The ZERO flag is set to a TRUE state if the returned value is zero indicating that the method executed successfully. Otherwise, the returned value is non-zero and the ZERO flag is set to a FALSE state indicating that the method failed. 2. The OVER flag is set to a TRUE state if the {return} variable is too small to receive the numeric value. Otherwise, this flag is set to a FALSE state. 3. The EOS flag is always set to the FALSE state. 3. The {type} value indicates the type of input expected for a ListView column cell. The following identifies the supported types: Type Value Description 0 - The ListView Column edit mode is turned off and the HTML is removed from all of the cells in the column specified by the {index} value. 1 - The ListView Column edit mode is turned on and the HTML tag is rendered into each cell for the column specified by the {index} value. In HTML 'type' attribute for the tag is set to be 'text'. In this case, all keyed characters are accepted. 2 - The ListView Column edit mode is turned on and the HTML tag is rendered into each cell for the column specified by the {index} value. In HTML 'type' attribute for the tag is set to be 'text'. However, in this case, the keyed characters for the is limited to be numeric digits '0' to '9' inclusive. Warning: a. When using the numeric {type} value of 2, any {list} items longer than the {maxchars} limit may be stored as the cell value. This behavior DEPENDS on the the browser operational behaviors. 4. The {maxchars} value sets the HTML attribute 'maxlength' value. In this case, the {maxchars} value is intended to limit the number of characters that can be keyed into a Listview column cell. This behavior is controlled by the browser being used. See this Web link for a description of the 'maxlength' attribute: https://www.w3schools.com/tags/att_input_maxlength.asp Warning: a. When using the numeric {type} value of 2, any {list} items longer than the {maxchars} limit may be stored as the cell value. This behavior DEPENDS on the the browser operational behaviors. 5. The {class} string parameter is used to specify a user custom 'class' that is to be applied to class attribute. The default 'class' named 'plblvc' is automatically applied to the HTML . The 'plblvc' class is found in the PWS 'http_root\plbwebbasic.css' file. When this parameter is used, the parameter {class} string replaces the default 'class'. Therefore, the {class} string can be specified using multiple 'class' names. Example of {class} string using multiple class names: *CLASS="plblvc lvcred" a. In this case, the 'plblvc' class exists in the 'http_root\plbwebbasic.css' file for the PWS. b. The 'lvcred' is a user custom class name to be applied. In this case, the 'lvcred' MUST be declared and exist in a CSS file. Th CSS file can be loaded by a PWS server as follows: - Use PLBWEB_USER={filename.css}. - Use the 'Client.AddCss' method to load a user custom CSS file. See this link for a description of the 'class' HTML Global Attribute: https://www.w3schools.com/tags/ref_standardattributes.asp 6. The {list} string parameter is used to specify a list of items that are delimited using a ';' semi-colon character. The {list} string data is rendered as a HTML to the client browser and then referenced using the 'list' attribute. The control/presentation of the 'list' attribute is strictly controlled by a browser when the LISTVIEW cell has the focus in the edit mode. See the following Web link for more information on the 'list' attribute: https://www.w3schools.com/tags/att_input_list.asp 6. The {flags} parameter is a bit-mask value that is to be used to control the behaviors of this method. This parameter is reserved for future usage. - Added a new method named 'SetEditFocus' for the PWS LISTVIEW object. 101Bb This method can be used to set the current focus to a PWS LISTVIEW object column cell ONLY when the column editing mode is enabled using the 'SetEditColumn' method. .................................................................... . SetEditFocus Method for PWS LISTVIEW Object . The SetEditFocus method is used to set the current focus to a PWS LISTVIEW object column cell ONLY when the column editing mode is enabled using the 'SetEditColumn' method. This method uses the following format: [label] {object}.SetEditFocus GIVING {return} USING [*INDEX=]{index}: [*SUBITEM=]{subitem} Where: {label} is an optional Program Execution Label. {object} is a LISTVIEW object that has been previously Required declared. {return} is a Numeric Variable that returns a value that indicates pass or fail for the method. {index} is a Numeric Variable or decimal number that Required is the zero-based row number of the LISTVIEW being used. {subitem} is a Numeric Variable or decimal number that Required is zero-based value for the subitem on the row to be used. Flags Affected: EOS, OVER, ZERO Note the following: 1. The ZERO flag is set to a TRUE state if the returned value is zero indicating that the method executed successfully. Otherwise, the returned value is non-zero and the ZERO flag is set to a FALSE state indicating that the method failed. 2. The OVER flag is set to a TRUE state if the {return} variable is too small to receive the numeric value. Otherwise, this flag is set to a FALSE state. 3. The EOS flag is always set to the FALSE state. - Modified the PWS server to accept a serial number from a plbwebcli app 101Bb where the leading alpha character is a lowercase character. This helps to minimize unexpected communication errors due to operator mistakes entering the serial number of the PWS server to be accessed. - Added new PWS keywords named 'PLBWEB_HTTP_PROGERR_INFO={on|off}' and 101Bb 'PLBWEB_SSL_PROGERR_INFO={on|off}'. These keywords can be used to limit data sent to a client browser when PL/B program errors occur. When these keywords are NOT used, the default behavior is to send normal expected error information to the client browser when a PL/B program error occurs. This is the same as setting the keywords to 'ON'. When these keywords are being used and they are set to 'OFF', then the PL/B error information is NOT sent to the client browser when a PL/B program error occurs. Examples of keyword usage: PLBWEB_HTTP_PROGERR_INFO=OFF Do NOT send PL/B program error information to client browser for a normal HTTP connection. In this case, the PL/B error dialog appears with empty error data fields. PLBWEB_SSL_PROGERR_INFO=OFF Do NOT send PL/B program error information to client browser for a SSL HTTP connection. In this case, the PL/B error dialog appears with empty error data fields. - Modified the default behavior of the PWS server that prevents client 101Bb URL data from being sent back to the client browser when an error occurs. This can be considered a security vulnerability. Two new PWS keywords named 'PLBWEB_HTTP_ERROR_URL={on|off}' and 'PLBWEB_SSL_ERROR_URL={on|off}' have been added which can change the behavior as described in the previous paragraph. The default behavior is the same as setting these keywords to 'OFF'. Therefore, the default behavior of preventing URL data to be sent to the client can be changed by setting these keywords to 'ON' which allows URL data to be sent to the client browser. Examples of keyword usage: PLBWEB_HTTP_ERROR_URL=ON Send URL data to a client browser when the PWS server encounters a HTTP error using a normal socket listening port. PLBWEB_SSL_ERROR_URL=ON Send URL data to a client browser when the PWS server encounters a HTTP error using a SSL socket listening port. - Fixed a problem where the 'SETMODE *PERCENTCONVERT' was not converting 101Bb to percentage positioning when the parent PANEL of the PWS objects was set to a 100% size. ------------------------------------------------------------------------------- PLBWIN, PLBNET, PLBSERVE, PLBWEBSRV (Windows) - Modified the HTTP instruction to log the path location where the SSL 101Bb libraries have been loaded from by the Windows OS. - Corrected a FINDFILE problem under Windows where a file name with 101Bb leading '.' characters was not being found! Example of file names: "c:\path\.filename" "c:\path\..filename" "c:\path\...filename" ------------------------------------------------------------------------------- PLBWIN, PLBNET, PLBSERVE, PLB(UNIX), PLBWEBSRV - Added a new 'OPTIONS={dnumnvar} optional keyword to the MAILSEND 101Ba instruction. This keyword can be used to invoke different behaviors for the MAILSEND operations. The {dnumnvar} value is a bit mask where each bit controls different behaviors. The bit mask values are defined as follows: Value Description 0x00000100 When this bit is set to 1, the MAILSEND sends all attachments using the 'Content-Disposition: attachment; filename="file.ext"' header field. If this bit is set to be 0, the MAILSEND sends all attachments using the 'Content-Disposition: attachment; filename="file.ext"' header field. Note: 1. Using the 'Content-Disposition: attachment' header field may be use to cause the email client to present the attachments where they are separate from the main body of the mail message. - Modified the DBEXECUTE to give a D203 error if the DBSEND operation is 101Ba not executed after a DBCONNECT and before the DBEXECUTE. This corrects the possibility of GPF errors occurring in this scenario. - Modified the XFILE write operations to avoid I83 subcode 9 errors which 101Bb could occur when XML CDATA was larger than 1024 bytes. - Corrected a problem where a CALL was causing the PL/B FLAGs to be 101Ba changed when Call parameter data was moved into a LROUITINE, FUNCTION, or ROUTINE input parameter variable. Example of CALL Flag problem: FX FORM "0" . SETFLAG NOT ZERO CALL Rtn USING FX STOP . myFX FORM "9" . Rtn ROUTNE myFX . . At this point, the 'ZERO' flag should be FALSE! . IF ZERO DISPLAY "ZERO state changed by CALL instruction! (invalid)" ELSE DISPLAY "ZERO state not changed by CALL instruction! (Ok)" ENDIF . RETURN - Corrected problems that would give indeterminate behaviors and data 101Ba when performing READ FILE (-4) (i.e. read prior ) operations when the data file contained deleted records. The indeterminate behaviors included skipping records and/or hanging while repeatedly reading the same over and over. The unexpected behaviors could exist both with and without use of FILTER(s). - Corrected GPF error when invalid DOM structure existed because bad 101Bb JSON data was loaded and the resulting errors were ignored using 'LoadJson' XDATA method. This GPF error could occur using the XDATA 'StoreXML', 'StoreXMLSize', or 'SaveXML' method. - Corrected a problem where the PRTPAGE *ATTACH command string could 101Bb process beyond the size of the command string length giving unexpected Snn errors. Example of PRTPAGE *ATTACH giving unexpected S30 error: PF PFILE . PRTOPEN PF, "pdf:", "c:\temp\test.pdf" . .... . Before this correction was implemented, the next statement . could give an unexpected S30 error. . PRTPAGE PF;*ATTACH="F=#"c:\temp\sample.pdf#",I=1" ------------------------------------------------------------------------------- PLBWIN, PLBNET, PLBSERVE, PLBWEBSRV, ALL GUI CLIENTS - Modified the WINDOW object method 'GetObjectAsPointer' to support a 101Ba 'flags' bit mask value of 4. The 'flags' bit mask value causes the 'GetObjectAsPointer' method to return the object pointer for the GUI object that has the focus on the WINDOW object. The 'flags' bit mask value of 4 is described as follows: Value Meaning 0x4 Retrieve the current object that has the focus on the WINDOW object. This bit value of 4 must not be combined with any other bit values to take affect. - Added a new method named 'FindData' for the GUI COMBOBOX object. This 101Bb method finds and returns the COMBOBOX that contains a specific user-defined value. .................................................................... . FindData Method for COMBOBOX Object . The FindData method finds a specific COMBOBOX item by comparing the user-defined values associated the combobox items. This method uses the following format: [label] {object}.FindData GIVING {return} USING [*DATA=]{data} Where: {label} is an optional Program Execution Label. {object} is a COMBOBOX object that has been previously Required declared. {return} is a Numeric Variable that returns a value for the COMBOBOX item. {data} is a Numeric Variable or decimal number that Required is compared against the COMBOBOX user-defined values associated with the COMBOBOX items. Flags Affected: EOS, OVER, ZERO Note the following: 1. The ZERO flag is set to a TRUE state if the returned value is zero. Otherwise, the ZERO flag is set to a FALSE state. 2. The OVER flag is set to a TRUE state if the {return} variable is too small to receive the numeric value. Otherwise, this flag is set to a FALSE state. 3. The EOS flag is always set to the FALSE state. 3. The {return} value is a zero-relative number that is the COMBOBOX item number that has a user-defined value which is the same as the {data} value. If this method does not find a matching item, the {return} value is -1. ------------------------------------------------------------------------------- PLBWIN, PLBNET, PLBWEBSRV, ALL GUI CLIENTS - Modified the TOOLBAR object 'AddButton' method to support an optional 101Ba '*InsertAT={index}' parameter where the {index} is a zero-based index of the button being inserted. This method inserts the new button to the left of the button located at the {index} position. ------------------------------------------------------------------------------- PLBWIN, PLBNET, ALL GUI CLIENTS - Modified the GETFNAME instruction as follows for a user filter: 101Ba 1. When a default file {name} is specified, the extension of the {name} parameter is used/compared to the extensions specified by the {type} user filter data. If an extension match is found, the appropriate filter index is set to allow the matching file filter to be presented in the open/prep dialog. If no match is found, the first user filter appears in the open/prep dialog. 2. If the default file {name} parameter is NULL and the {ext} field is specified in the {type} user filter string, the {ext} extension is matched to the user filters. If the {ext} matches a user filter extension, the filter index is set to allow that user filter to appear in the open/prep dialog. If no match is found, the first user filter appears in the open/prep dialog. - Modified the HTMLCONTROL object to allow tabbing to work implicitly for 101Ba the HTML objects only when the explicit 'data-plbtabid={num}' attribute is NOT being used for any HTML objects. This change corrects a problem where tabbing was not working when a URL Web page was loaded into the HTMLCONTROL from some Web site. Note: 1. The focus must be set to the HTMLCONTROL before tabbing can work for the HTML objects that are children to the HTMLCONTROL object. 2. Once the focus is set to the HTMLCONTROL, a focus change back to a PL/B GUI object must be performed by an end-user action or a PL/B program operation to allow tabbing to work for the PL/B GUI objects. - Corrected a problem where the DATALIST output for the AAMDEX, INDEX, 101Ba and SORT instructions could output unexpected data entries. ------------------------------------------------------------------------------- PLBCMP - Modified the compiler to detect a UTF8 BOM ( Byte Order Mark ) 101Ba identifier sequence of 0xEF, 0xBB, 0xBF at the being of sources opened by the compiler. When the UTF8 BOM identifier is found, the compiler skips past the first 3 bytes of a source file/include. - Modified the source line concatenation processing to check for a 101Ba possible operation misuse where a valid statement has been concatenated as a comment and resulting in an appropriate warning. Note: 1. The PLBCMP compiler supports source line concatenation where a ':' colon character placed in first position of a source line causes this source line to be concatenated to the previous source line. In this case, the compiler does not process the source line until after all source lines using the ':' in the first position have been concatenated. 2. When a concatenated source line is being processed, the compiler checks the 'comment' field and gives an appropriate warning if the comment starts with a symbol that is the 'same' as a PL/B Language verb. This is implemented to address a scenario where a valid source line has been concatenated by mistake. Example of source line concatenation: DISPLAY "First source line: " : Comment field!! In this case, the compiler combines these 2 lines together before it is compiled as: DISPLAY "First source line: " Comment field!! Example of source line concatenation misuse: DISPLAY "First source line: " : KEYIN field In this case, the compiler combines these 2 lines together before is compiled as: DISPLAY "First source line: " KEYIN field This concatenated source line has been created where the 'KEYIN field' has been appended and it becomes a 'comment' that is processed by the compiler. The compiler has modified to give an appropriate warning if the comment field starts with a symbol that is the same as a PL/B language verb/directive. - Added a new compiler directive named 'WARNING' which can be used to 101Ba output program compile warnings into program listings. Format: WARNING {literal} Example: . CALL Func . STOP .... Func FUNCTION ENTRY . WARNING "'Func' Function needs to be implemented!!" . FUNCIONEND . - Corrected a problem where logical expression verbs ( IF, BREAK, 101Ba CONTINUE, ELSE, ELSEIF, UNTIL, and WHILE were NOT performing normal end of statement terminate checks. This correction allows these statements to perform source line concatenation verification for the comment field. - Corrected a problem where the compiler was giving an unexpected error 101Bb for a GETITEM using a SLIDER and an array syntax for the {data} parameter. ------------------------------------------------------------------------------- PLBDBUG - Corrected character debugger problem by verifying that the 'nnnnnn' 101Bb memory address of a 'DA nnnnnn' command is good and does not generate a GPF error. This character debugger check is ONLY done when a version 10.1B runtime or newer is being used. ------------------------------------------------------------------------------- DBGIFACE - Modified the GUI debugger 'right-click' end-user action to properly 101Bb build a debugger command sent to the character debugger. This avoids causing a character debugger GPF error. This change helps resolve a problem where a character debugger GPF error was prematurely terminating the GUI debugging session on an end-user 'right-click' action. Example of GPF using 'dbgiface' GUI Debugger: MOVE "abc", s$cmdlin //9.0E <---'right-click' after // 'E' character // caused GPF in // character debugger! - Corrected a problem where a GUI debugger 'right-click' end-user action 101Bb was not including an array index reference as part of the PL/B label to be accessed. ------------------------------------------------------------------------------- PLB Designer - Modified the resource editor to support id values greater than five 101Bb digits. - Corrected the order of menu items being pasted from the clipboard. 101Bb Ensures that new items added to collections such as menus or statusbars are visible to the user. ------------------------------------------------------------------------------- WATCH - Corrected display of version numbers. 101Bb -------------------------------------------------------------------------------