---------------------------------------------------------------------- ELOQUENCE B.07.10 - patch PE71-0912171 ---------------------------------------------------------------------- This patch provides enhancement and/or defect fixes for the eloqcore program as released with Eloquence B.07.10. This patch will be integrated in the Eloquence B.07.10 release. Eloquence B.07.10 must be installed before applying this patch. Severity: PE71-0912171: BUG FIX Superseded patches: PE71-0912091: BUG FIX PE71-0909301: BUG FIX PE71-0909181: ENHANCEMENT, BUG FIX PE71-0802151: BUG FIX PE71-0801141: BUG FIX PE71-0711050: ENHANCEMENT PE71-0709111: BUG FIX PE71-0706131: BUG FIX PE71-0706041: BUG FIX PE71-0704301: ENHANCEMENT, BUG FIX PE71-0607260: BUG FIX PE71-0606200: BUG FIX PE71-0606140: BUG FIX PE71-0606090: ENHANCEMENT PE71-0602284: BUG FIX PE71-0602100: BUG FIX Patch PE71-0912171 ------------------ Platforms: All * Fixed a bug introduced by patch PE71-0909181 where a COMMAND statement executing CALL or FN statement could result in an abort with an internal error when the statement resulted in a runtime error. * Changed the Windows file version to "7.1.0.34" Patch PE71-0912091 ------------------ Platforms: All * Fixed a bug introduced by patch PE71-0909181 where a COMMAND statement executing a CALL or FN statement could result in a corrupted symbol table. * Changed the Windows file version to "7.1.0.33" Patch PE71-0909301 ------------------ Platforms: All * The previous patch introduced a bug where a syntax error in a COMMAND statement could cause eloqcore to crash with a segment violation instead of returning an error 155. * Changed the Windows file version to "7.1.0.32" Patch PE71-0909181 ------------------ Platforms: All * Fixed a limitation of the COMMAND statement that could result in overflowing the symbol table, causing an ERROR 2 (#3376). A COMMAND statement may grow the symbol table of the current program segment (SUB/FN). This may eventually result in an ERROR 2. This enhancement limits new entries to the symbol table to variables. * Fixed a problem establishing the DLG protocol that could result in using a smaller conversion buffer. When connecting to a DLG server with a DLG SET ".driver" statement a smaller conversion buffer was used. * Extend valid PRINTER numbers from -2:99 to -2:999 (#3843). * Added the POPUPBOX option to the config file to allow enabling function keys to interrupt a POPUP BOX statement (#3509). When enabled, a defined FUNCTION KEY or HALT interrupts a POPUP BOX statement and returns -1 as the selected choice. This function is enabled in the configuration file by specifying the option POPUPBOX and the asssociated config value. For example: option popupbox 7 The option value is bit encoded: 1 = sfk 2 = halt 4 = ESC Please note that this functionality is not available when using the DLG driver. * Fixed a problem with eloqcore aborting with a SEGV on a CONT signal when running in background (#3591). * Changed the Windows file version to "7.1.0.29" Patch PE71-0802151 ------------------ Platforms: All * CALL DLL could in some cases cause eloqcore to abort due to writing beyond the bounds of the DLL communication buffer (#3514). The buffer size was not correctly verified. * The QFIND IN statement was adapted to support case insensitive indexes (#1073). Support for case insensitive indexes was introduced with database server patch PE71-0802120. Platforms: Linux * A wrapped line (more than 80 characters) could cause a screen corruption when scrolling down (#3538). Platforms: Windows * Changed the Windows file version to "7.1.0.28" ** REVISION 2 * Due to a build problem the original release of this patch did not include MEMSIZE functionality. Patch PE71-0801141 ------------------ Platforms: All * Fixed a rare problem with client side caching that could result in DBGET mode 5 returning previous results instead of failing with a status code (#3511). This problem may happen in some cases if the following conditions are met: - A database server patch level PE71-0704110 or newer is used - The database client side caching is enabled - A previous DBFIND mode 1 (chained) was successful and had more than a single result but the results were only partially obtained - A DBFIND on an index failed with status 17 In this case a DBGET mode 5 may possibly return results from the previous DBFIND mode 1 instead of failing with a status 15. Platforms: Windows * Changed the Windows file version to "7.1.0.26" Patch PE71-0711050 ------------------ Platforms: All * Add support for JDLG printing. When using a recent JDLG 1.3.2 PRINTER 10 output may be redirected to JDLG and output to a printer connected to the client system. Please note that printer data is passed through and the printer must be able to handle the data. * Fixed problem with DBOPEN failing when transaction was active on previously closed database (#3484). Platforms: Windows * Changed the Windows file version to "7.1.0.24" Patch PE71-0709111 ------------------ Platforms: All * DBFIND was modified to NOT reset the current record number when called from eloqcore. This fixes a potential backwards compatibility problem. * Fixed a problem with CALL DLL and string struct member variables (#3309). Passing a string member variable by reference in a CALL DLL statement resulted in corrupted data passed to or from an Eloquence DLL. * Improved internal diagnostics on LOAD DLL or CALL DLL failure (#3402). Additional diagnostics on LOAD DLL or CALL DLL failure causes is available if the -t option or the K1 debug flag is set. * Fixed a problem where the variable index was not properly reset on a LOAD statement (#3403). * Fixed a potentially invalid ERROR 218 on a IN DATA SET ... IN COM USE ALL statement that could be triggered by a bad variable index (#3403). Platforms: Windows * Changed the Windows file version to "7.1.0.23" Patch PE71-0706131 ------------------ Platforms: All * The previous patch PE71-0706041 introduced a problem that could cause a hang in asynchronous DLG operation (#3361). Platforms: Windows * Changed the Windows file version to "7.1.0.21" Patch PE71-0706041 ------------------ Platforms: All * A DLG connection could abort unexpectedly with an error message as below (#3361): N0: tcp_poll: select() failed. [4] Interrupted system call Platforms: HP-UX * If using a HP terminal type on HP-UX, the IDLOK terminal option is disabled to workaround a problem in the HP-UX xcurses library. The EQ_USE_IDLOK environment variable may be used to specify the use of the idlok terminal option. A zero value disables use, a non-zero value enables this option. Platforms: Windows * Changed the Windows file version to "7.1.0.19" Patch PE71-0704301 ------------------ Platforms: All * A SORTORDER configuration option was added to eloq.config and the user/group specific configuration files. SORTORDER may be used to specify the sort order that is used for string comparisons performed by the SORT BY statement and the LEX function. If SORTORDER is not defined, an OS specific collating sequence is used as defined by the LANG, LC_COLLATE or ELOQLANG environment variables. This is backwards compatible to previous eloqcore versions. If SORTORDER is present it specifies an Eloquence specific collating sequence. Syntax: SORTORDER spec spec - The collating sequence is defined as a language specifier and either a "fold" or "nofold" modifier separated by a @ character, such as "french@nofold". A "fold" sort order interleaves upper- and lowercase characters, such as AaBbCc...Zz, where a "nofold" sort order separates upper- and lowercase characters, such as "ABC...Z abc...z". On HP-UX and Linux the available collating sequences are installed in the /opt/eloquence6/lib/nls/collate directory. On Windows they are installed in the lib/nls/collate subdirectory below the Eloquence installation directory. * Fixed a problem with single line functions that could result in ERROR 2 when called in a loop (#3246). This problem was caused by the changes in PE71-0606090 to support a larger variable memory size. * Fixed an internal error related to passing temporary variables by reference to a function/subprogram (#3244). An error message like below was output: Assertion failed: (adr > 0 && adr < heap.v_size) This problem was caused by the changes in PE71-0606090 to support a larger variable memory size. * This patch incorporates the database client library B.07.10.09. This database client library version fixes problems related to database caching. This library also changes the DBFIND behavior to reset the current record number. For details please refer to patch PE71-0704100. * SYSID$ could return garbage when the hostname exceeded 20 characters (#3069). Eloquence was improperly terminating the string when the hostname was truncatedto 20 characters. Platforms: HP-UX and Linux * The EQ_SHELL environment variable may be used to specify the shell that is used by the non-interactive COMMAND "!..." statement to process system commands (#3355). By default the /bin/sh shell is used. * The IDLOK terminal option is enabled by default. It was initially disabled to workaround a problem in the HP-UX xcurses library. The EQ_USE_IDLOK environment variable may be used to specify the use of the idlok terminal option. A zero value disables use, a non-zero value enables this option. Platforms: Windows * Changed the Windows file version to "7.1.0.17" Patch PE71-0607260 ------------------ Platforms: All * This patch fixes a potentially serious problem that what was introduced with patch PE71-0606090 (#3103). It is strongly recommended to install this patch if patch PE71-0606090 (or superseding) was installed previously. Binding of program variables to database items (IN DATA SET statement) may not work correctly if patch PE71-0606090 was installed, depending on the internal variable address. In some cases this could potentially result in data corruption. This problem could affect unmodified programs that use variables that are passed by value to a subroutine or function and then used with IN DATA SET. This should be rarely used. This problem is more likely to programs that were modified to use the enlarged variable memory. * Changed the Windows file version to "7.1.0.13" Patch PE71-0606200 ------------------ Platforms: Windows * The previous patch PE71-0606140 introduced a bug where certain keys, such as '<', '>' and '|', did no longer work correctly. * Changed the Windows file version to "7.1.0.12" Patch PE71-0606140 ------------------ Platforms: Windows * The keyboard mapping was incomplete (#2913). The following keys and key combinations are now correctly handled: Alt+L - move to end of display Alt+S - halt / single step (also Shift+F1) Alt+G - advanced step (also Shift+F2) PAUSE - equivalent to Alt+S (halt / single step) also in combination with Shift and/or Alt Ctrl+PAUSE - equivalent to Ctrl+Y (suspend program execution) * Some special keys were not correctly handled and caused eloqcore to abort unexpectedly (#3065). * Changed the Windows file version to "7.1.0.11" Patch PE71-0606090 ------------------ Platforms: All * eloqcore was enhanced to increase the memory available to program variables (#3103). The available memory to program variables was increased and made configurable. It now defaults to 1 MB. Previous versions were limited to 256 KB for program variables. Notes: - The MEMSIZ function may be used in an application to obtain the currently unused amount of memory available to program variables. - The diagnostic statement DUMP VARIABLES was improved to output additional information. - The eloqcore memory requirements will grow by 1 MB for each process. Depending on the system configuration and utilization this may require extending the available swap space. * A MEMSIZE config item was added to the eloquence config file (e.g. eloq.config or .eloqrc) to allow configuring the memory available to program variables in eloqcore. The following syntax is supported: MEMSIZE [size] [k|m] Where size is a numeric value in the range of 1 to 1000. Optionally a unit may be specified (k = kilo bytes, m = mega bytes). If the unit is not present, then the value is assumed to be in kilo bytes. By default a memory size of 1 MB is used. * Handle segment total overflow more gracefully (#2960) A program that exceeds the limit of the backwards compatible program format may fail to load. This change attempts to work around the problem. For new programs it is recommended to use the newer program file format introduced with A.06.00. Platforms: Windows * Fixed problem with MS telnet server to make the function keys work as expected. The function keys were not correctly decoded because the MS telnet server unexpectedly returns any function keys with the ENHANCED_KEY state set. * Changed the Windows file version to "7.1.0.10" Patch PE71-0602284 ------------------ Platforms: Windows * A WAIT or SLEEP statement on Windows could cause the next DLG DO to return a rule value of -32768 (#3033). * Changed the Windows file version to "7.1.0.8" Patch PE71-0602100 ------------------ Platforms: All * When caching is enabled a status code -809:225 could be returned on a database request. This patch incorporates database client library B.07.10.03 that fixes this problem. For details please refer to patch PE71-0602090 Workaround: To workaround this problem the EQ_DBACHE environment variable may be set to disable the use of caching: EQ_DBCACHE=0 * Changed the Windows file version to "7.1.0.7" Installation: ------------- Please download the patch archive that corresponds with the installed release. The patch files follow the conventions below: PE71-0912171-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/eloquence6 gzip -dc /path/to/PE71-0912171-hpux.tar.gz | tar xf - Files: bin/eloqcore newconfig/config/eloq.config share/doc/PE71-0912171-README Linux: In order to install this patch, you need to unpack it with tar. Installation requires root privileges. cd /opt/eloquence6 tar xzf /path/to/PE71-0912171-linux.tar.gz Files: bin/eloqcore newconfig/config/eloq.config share/doc/PE71-0912171-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 PE71-0912171-win32.exe file. Before installation, please consider closing all applications and 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 PE71-0912171-win32.zip file and unpack its contents. Then perform the following steps: * Please copy the eloqcore.exe file into the bin subdirectory of your Eloquence installation (for example C:\Programs\Eloquence\bin). * Please copy the eloq.config.sam file into the etc subdirectory of your Eloquence installation (for example C:\Programs\Eloquence\etc). * Please copy the PE71-0912171-README.txt file into the share\doc subdirectory of your Eloquence installation (for example C:\Programs\Eloquence\share\doc). Files: eloqcore.exe eloq.config.sam PE71-0912171-README.txt