---------------------------------------------------------------------- ELOQUENCE B.08.30 - patch PE83-2412160 ---------------------------------------------------------------------- This patch adds enhancements or fixes defects of the eloqcore language runtime as released with Eloquence B.08.30-2211. This patch will be integrated in the Eloquence B.08.30 release. Eloquence B.08.30-2211 must be installed before applying this patch. Severity: PE83-2412160: BUG FIX Superseded patches: PE83-2211140: BUG FIX PE83-2209200: BUG FIX PE83-2208310: BUG FIX PE83-2205170: BUG FIX PE83-2205130: BUG FIX PE83-2205100: BUG FIX, ENHANCEMENT PE83-2112220: BUG FIX PE83-2106080: BUG FIX PE83-2102190: BUG FIX PE83-2009180: BUG FIX PE83-2006050: ENHANCEMENT PE83-2005150: BUG FIX PE83-2002240: BUG FIX PE83-1912110: BUG FIX PE83-1911270: BUG FIX PE83-1910010: BUG FIX PE83-1909100: BUG FIX, ENHANCEMENT PE83-1906060: BUG FIX PE83-1905030: BUG FIX PE83-1904160: BUG FIX Patch PE83-2412160 ------------------ Platforms: All * Fixed a problem aborting when listing a MAT statement where both the left hand and the right hand sides use structures (#4359). This can fail with the message: Assertion failed: (idx >= 0 && idx < l_stackp) * Fixed a problem where a circular definition of a type resulted in a hang. This now results in an ERROR 903. Notes / Related patches: * Patch PE83-2412161 or superseding (list utility) * Patch PE83-2412162 or superseding (Eloquence IDE) Patch PE83-2211140 ------------------ Platforms: All * DLG v2: Fixed ListBox.vline[] attribute cache not invalidated after user interaction (#4352). I could happen that a user-modified line and/or column order was not noticed when ListBox.vline[] attribute values are cached, resulting in ListBox.vline[] returning a wrong line/column order. Patch PE83-2209200 ------------------ Platforms: All * Fixed a screen corruption problem in text based DLG with embedded control characters in content. Patch PE83-2208310 ------------------ Platforms: All * DLG v2: Fixed an attribute caching problem related to DLG STOP. The cache was not reset. If a program continues after DLG STOP this could cause unexpected follow-up behavior. Patch PE83-2205170 ------------------ Platforms: All * Fixed GET/LINK/MERGE error handling. Patch PE83-2205130 ------------------ Platforms: All * This patch fixes a problem with printing support and WEBDLG2. Empty print jobs no longer generate invalid empty PDF files. Patch PE83-2205100 ------------------ Platforms: All * Fixed SETENV value limitation to 255 characters. A SETENV value exceeding 255 characters could result in unexpected behavior or abort the eloqcore process. This was caused by an improper check of an internal buffer. eloqcore was changed to allocate the buffers dynamically, removing the limitation. * This patch introduces printing support with WEBDLG2. When enabled, PRINTER 10 output is passed through eqpcl to create PDF documents that are opened in the browser. Please refer to the following document for more information: https://eloquence.marxmeier.com/doc/webdlg2/webprint.html Patch PE83-2112220 ------------------ Platforms: All * Fixed a problem with the LIST function losing parens on nested exponent operators. Eloquence uses a right hand priority for the exponent operator. So 2^3^4 is understood as 2^(3^4). Parenthesis may be used to specify a different priority, For example, (2^3)^4. The LIST functionality did not output these parens. LIST now always outputs parens with nested exponent operators to minimize changes. Patch PE83-2106080 ------------------ Platforms: Windows * Fixed KBCODE results for function keys on Windows. Patch PE83-2102190 ------------------ Platforms: All * DLG v2: Fixed a possible segment violation which could cause eloqcore to unexpectedly abort. A failed DLG call could under rare conditions use context information which was no longer accessible. * DLG v2: Fixed early cache expiration for global attribute values such as the JDLG Application.mousemodkeys attribute. * DLG v2: Fixed a minor memory access problem found by internal testing. Patch PE83-2009180 ------------------ Platforms: All * Fixed a possible overflow error on a database read due to unpacking a corrupted floating field. A DBGET could result in an ERROR 22 for a specific corrupted floating point value. Platforms: Windows * Printing to STDOUT or STDERR added an extra CR character on Windows (#4321). Patch PE83-2006050 ------------------ Platforms: Windows * New functionality: The statements ON SIGNAL and OFF SIGNAL and SEND SIGNAL # are now supported on the Windows platform. Programs running in eloqcore on Windows can now be signaled from other programs, or using the new eqsignal command line utility. Please note: The SEND SIGNAL # argument is a task identifier (TASKID). On Windows, a program's TASKID is equivalent to the process identifier (PID) of the associated eloqcore instance. Related patches: - PE83-2006051 or newer (eloqsd server). This patch is required. The SIGNAL functionality relies on a running eloqsd server. - PE83-2006052 or newer(eqsignal utility). This patch is optional. The new eqsignal command line utility allows to signal or to terminate/abort running programs by specifying one or multiple eloqcore process identifiers (PID), similar to the kill(1) utility provided by HP-UX and Linux. Patch PE83-2005150 ------------------ Platforms: All * Fixed a limitation of the XUNPACK statement not supporting long variable names. Patch PE83-2002240 ------------------ Platforms: All * Fixed a problem using the XPACK/XUNPACK statements with THIS in a class method. This caused an abort of eloqcore due to a failed consistency check. Platforms: HP-UX and Linux * Fixed an improper control character mapping with iso-8859-1 and iso-8859-15 locales. Control characters could be passed to the terminal, possibly corrupting the output. Platforms: Windows * Fixed a problem losing characters when using copy/paste with the eloqcore console window. Patch PE83-1912110 ------------------ Platforms: Windows * Fixed various problems affecting eloqcore text mode on Windows. Certain actions could cause inconsistencies in the eloqcore screen buffer on Windows, leading to unexpected output. The fix delivered with patch PE83-1911270 was incomplete. * Fixed a problem with file operations using the NUL pseudo device, caused by an undocumented regression in the underlying Microsoft runtime library. Patch PE83-1911270 ------------------ Platforms: Windows * Fixed various problems affecting eloqcore text mode on Windows. Certain actions could cause inconsistencies in the eloqcore screen buffer on Windows, leading to unexpected output. * If present, a user-specific eloq.rc configuration file is now read from the user's "home directory" on Windows. The Windows USERPROFILE environment variable is used to locate the user's home directory, typically C:\Users\USERNAME. Patch PE83-1910010 ------------------ Platforms: All * Fixed missing timestamp prefix for log messages written to a log file created with the -log command line option. * The Eloquence IDE debugger no longer truncates string variable values to 256 characters in the variables window. Patch PE83-1909100 ------------------ Platforms: All * Fixed unexpected abort when accessing a TYPE variable after STOP (#4294). A message like below was issued: Internal error processing line 0 Assertion failed: (cls->magic == 0x434c5344) file class.c, line 534 in function get_class_ptr * Specifying a return variable for a DLG LOAD statement could have no effect (for example: DLG LOAD Filename$;Status). On DLG LOAD failure, a runtime error could be issued unexpectedly instead of assigning the error code to the return variable. * Fixed wrong character conversion when using an Unicode \u escape sequence in a DLG file (#4299). * Improved DLG v2 enhanced diagnostics and error handling (#4298). DLG GET ".status",Stat DLG GET ".status_msg",Msg$ DLG GET ".status_seg",Seg$ DLG GET ".status_file",File$ DLG GET ".status_line",Line These statements now synchronize any DLG calls still pending in DLG v2 bulk mode. Previously, they could be invoked only after a DLG status had been issued (for example in an ON ERROR handler). Now they can be used anytime to make sure any pending DLG calls have been processed. Patch PE83-1906060 ------------------ Platforms: All * Fixed DLG GET ComboBox.line[] unexpectedly resulting in ERROR 660, caused by incomplete attribute cache implementation (#4290). Please note that this fix requires JDLG version 2.0.3 or newer, available for download at: https://eloquence.marxmeier.com/download/jdlg/2.0/ * Fixed IPv6 addresses not recognized in -dlg command line option and DLG SET ".driver" statement. IPv6 addresses are now recognized in square brackets, for example: eloqcore -dlg [fe80::4261:86ff:feee:9437] DLG SET ".driver","[fe80::4261:86ff:feee:9427]:12345" Patch PE83-1905030 ------------------ Platforms: All * Fixed a problem where POPUP BOX could unexpectedly return error 870 (Improper POPUP BOX format) if the definition is passed in a string variable, caused by an incorrect string length calculation. * Fixed incomplete DLG GET "Tree.udata[I]" result, caused by incorrect string length calculation if cached attribute values are returned. * Fixed possible crash when obtaining enhanced DLG v2 diagnostics, for example DLG GET ".status_msg". A message like below was output: Assertion failed: (seg->magic == 0x5345474d) * Fixed unexpected asynchronous execution of certain DLG SET statements. The statements below are now synchonously executed: DLG SET "Application.browser" DLG SET "Application.closeprinter" DLG SET "Application.openprinter" DLG SET "Application.print" DLG SET "Dialog.do" DLG SET "System.activate" DLG SET "System.sound" DLG SET "System.start" Patch PE83-1904160 ------------------ Platforms: All * Fixed error 653 on DLG SET when using utf-8 encoding. The DLG functionality may internally use the multi-byte utf-8 encoding where the number of bytes and characters may differ. The max. length of a text field (.maxchars attribute) was compared against the number of bytes instead the number of characters. Installation: ------------- Please download the patch archive that corresponds with the installed release. The patch files follow the conventions below: PE83-2412160-hpux-ia64.tar.gz ^ ^ ^ | | Architecture / OS specific build | Operating system Patch ID HP-UX: In order to install this patch, you need to unpack it with gzip and tar. Gzip is included with HP-UX. Installation requires root privileges. cd /opt/eloquence/8.3 gzip -dc /path/to/PE83-2412160-hpux-ia64.tar.gz | tar xf - Files: bin/eloqcore share/doc/PE83-2412160-README Linux: In order to install this patch, you need to unpack it with tar. Installation requires root privileges. cd /opt/eloquence/8.3 tar xzf /path/to/PE83-2412160-linux-86_64.tar.gz Files: bin/eloqcore share/doc/PE83-2412160-README Windows: Two options are available for patch installation. The patch is available as self extracting archive for automatic installation and as a zip archive for manual installation. Both patches are equivalent. Installation requires administrative capabilities. For automatic installation of this patch, please download the patch file PE83-2412160-win32.exe. Before installation, please consider stopping the database server, then execute the patch installation program. Installation does not require a reboot unless the patched files were active. For a manual installation of the patch, please download the patch file PE83-2412160-win32.zip and unpack its contents. Then perform the following steps: * Please copy the eloqcore.exe file into the Eloquence bin directory. (Default location: C:\Program Files\Eloquence\8.3\bin) * Please copy the PE83-2412160-README.txt file into the Eloquence share\doc directory. (Default location: C:\Program Files\Eloquence\8.3\share\doc) Files: eloqcore.exe PE83-2412160-README.txt