----------------------------------------------------------------------

ELOQUENCE B.08.20 - patch PE82-1706140

----------------------------------------------------------------------

This patch adds enhancements or fixes defects of the eloqcore
and list program as released with Eloquence B.08.20. This patch
will be integrated in the Eloquence B.08.20 release.

Eloquence B.08.20 must be installed before applying this patch.

Severity:
 PE82-1706140: BUG FIX

Superseded patches:
 PE82-1705260: BUG FIX
 PE82-1511050: BUG FIX
 PE82-1510290: BUG FIX
 PE82-1508110: ENHANCEMENT
 PE82-1507170: BUG FIX
 PE82-1501230: BUG FIX
 PE82-1409230: BUG FIX
 PE82-1409180: BUG FIX
 PE82-1409090: BUG FIX, ENHANCEMENT
 PE82-1404141: BUG FIX
 PE82-1309131: BUG FIX
 PE82-1309121: BUG FIX
 PE82-1308230: BUG FIX


Patch PE82-1706140
------------------

Platforms: All

* Fixed an inconsistency with LDSPEC$ which could be changed by
  statements other than LOAD when the program file was not loaded
  using a label.


Patch PE82-1705260
------------------

Platforms: Windows

* Fixed unexpected character input problems observed on Windows 10
  version 1703 (Creators Update) when using eloqcore in text mode.

  Some international and special characters, e.g. umlaut characters,
  were no longer mapped by Windows as expected. As a result, wrong
  characters were input (#4250).

  This is caused by an undocumented behavior change of the Windows
  API function ReadConsoleInputA(). On Windows 10 version 1703 this
  function does not behave as documented by Microsoft.


Patch PE82-1511050
------------------

Platforms: Windows

* Fixed a problem where output could be lost when executing the
  (SYSTEM) PRINTER IS STDOUT statement and not flushing the output
  with (SYSTEM) PRINTER SYNC or (SYSTEM) PRINTER IS 8.

  This could cause unexpected behavior with eloqcgi.


Patch PE82-1510290
------------------

Platforms: All

* Fixed an internal error executing the statement MAT A.I=B.I

  A message as below is output:
  Assertion failed: (idx >= 0 && idx < nxtmp)
  file xpxa.c, line 183 in function get_stmps

* Fixed an internal error listing the statement MAT A.I=.I

  A message as below is output:
  list.c:1497: l_operand: Assertion `idx >= 0 && idx < l_stackp' failed.

Related patches: PE82-1510291 (ide).


Patch PE82-1508110
------------------

Platforms: All

* This patch increases the limit of active workfiles from 10 to 20.


Patch PE82-1507170
------------------

Platforms: Windows

* Fixed unexpected startup problems observed on Windows 10 Preview.
  Starting eloqcore could fail with a message like below:

  eloqcore: Unable to setup i/o system

  This has been fixed with a new implementation of the eloqcore
  console window implementation, which introduces the following
  new behavior:

  - eloqcore now adapts to the configured console window size
    instead of expecting a fixed size of 80 columns and 25 lines.

  - The COLUMNS and LINES environment variables may be used to
    set the eloqcore console window to a specific size. COLUMNS
    must be set >= 80 and LINES must be set >= 24, otherwise they
    are ignored and eloqcore uses the configured console window
    size.


Patch PE82-1501230
------------------

Platforms: All

* Fixed an unexpected behavior in space dependent parsing mode
  introduced with B.08.20 (#4200).

  As of B.08.20 the parser first attempts to parse a statement
  in space independent mode, regardless if space dependent mode
  is used. Only if this fails the space dependent mode is
  considered. This allows to resolve potential ambiguities in
  space dependent mode by using the correct case.
  This change could cause unexpected behavior as space characters
  might be ignored instead of being considered a delimiter.
  The parser was changed to treat spaces as delimiters if space
  dependent mode is used.


Patch PE82-1409230
------------------

Platforms: All

* Fixed a regression in PE82-1409180 that could cause eloqcore to
  abort when calling a DLL function with a message as below:

  Assertion failed: (maxlen != 0 && type == STRING)
  in function dll_pass_var

* The eloqcore message catalog was modified to include the error
  messages from the ODBC.DLL and NET.DLL.


Patch PE82-1409180
------------------

Platforms: All

* Fixed a problem where a CALL DLL statement passing member variables
  could fail with runtime ERROR 18 (String overflow) or ERROR 603
  (DLL memory overflow).


Patch PE82-1409090
------------------

Platforms: All

* Fixed a memory corruption issue when loading a dialog resource file
  with more than 50 dialogs (#4181).
  When using a dialog driver the DLG LOAD statement did not correctly
  enforce an internal limit.

* When using a dialog driver the DLG LOAD statement limits were
  enhanced.
  - The maximum number of dialogs per dialog file is no longer limited.
    Previous versions were limited to 50 dialogs per file.
  - The max. nesting of dialog objects is no longer limited.
    Previous versions were limited to 10 nested dialog objects.

* When using a dialog driver the DLG LOAD statement parser was
  enhanced to allow modifying copied models when loading a dialog file.

  The following syntax is now supported:

  name {
    ...
  }

  This changes the context to a previously existing object and allows
  changing attributes or adding child objects.

  class name.name {
    ...
  }

  It is now valid to specify a path for the new object. This allows to
  add child objects (without changing the context).

  .name.attribute = value

  It is now valid to specify a path for an attribute. This allows to
  change attributes of child objects (without changing the context).
  This was already supported in previous versions but not documented.


Platforms: Windows

* Fixed a problem that could abort eloqcore when an unsupported
  format argument is used with the DATE$ function (#4174).


Patch PE82-1404141
------------------

Platforms: Linux, Windows

* Updates the database client library to B.08.20.03.
  This fixes a potential problem with the database client side cache
  expiration.


Patch PE82-1309131
------------------

Platforms: All

* Returning a DINTEGER or SHORT member variable from a function
  resulted in an ERROR 11.


Patch PE82-1309121
------------------

Platforms: All

* Fixed a problem where using autoloaded program code might corrupt
  internal memory.


Patch PE82-1308230
------------------

Platforms: All

* Fixed a problem when using the Eloquence IDE debugger where in
  some cases the variable view displayed a wrong number of array
  elements if an array is a class member variable.

* Fixed a problem related to the dlgsrv32 GUI driver where an IDM
  dialog file could not be loaded if a VOLUME specifier is appended
  to the DLG LOAD file name.


Installation:
-------------

Please download the patch archive that corresponds with the installed
release. The patch files follow the conventions below:

   PE82-1706140-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.2
gzip -dc /path/to/PE82-1706140-hpux.tar.gz | tar xf -

Files:

   bin/eloqcore
   bin/list
   lib/nls/C/eloq.cat
   share/doc/PE82-1706140-README


Linux:

In order to install this patch, you need to unpack it with tar.
Installation requires root privileges.

cd /opt/eloquence/8.2
tar xzf /path/to/PE82-1706140-linux.tar.gz

Files:

   bin/eloqcore
   bin/list
   lib/nls/C/eloq.cat
   share/doc/PE82-1706140-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 PE82-1706140-win32.exe. Installation does not require a reboot
unless the patched files were active.

For a manual installation of the patch, please download the patch
file PE82-1706140-win32.zip and unpack its contents. Then perform
the following steps:

* Please copy the eloqcore.exe and list.exe files into the Eloquence
  bin directory. (Default location: C:\Program Files\Eloquence\8.2\bin)

* Please copy the eloq.cat file into the Eloquence lib\nls directory.
  (Default location: C:\Program Files\Eloquence\8.2\lib\nls)

* Please copy the PE82-1706140-README.txt file into the Eloquence
  share\doc directory.
  (Default location: C:\Program Files\Eloquence\8.2\share\doc)

Files:

   eloqcore.exe
   list.exe
   PE82-1706140-README.txt