Fixed problems and changes
[ Main document |
The following enhancements and problem fixes were incorporated in the
Eloquence B.07.00 product release:
New start script (HP-UX and Linux)
- On the HP-UX and Linux platform, Eloquence uses a new
startup/shutdown script and a new startup configuration file.
This allows to configure multiple database instances. Please
refer to the separate documentation for a
- The -p command line option has been added to the
eloqsd, eloqdb6 and eloqdb5 daemons to specify the location
of the pid file. If specified, this file contains the process id
of the server process. This is used with the new startup/shutdown
The maximum code size for the main program or a function/subprogram
(segment size) has been enlarged from 65534 bytes (32767 words) to
130560 bytes (65280 words) (#580, #783).
A bug in the parser has been fixed which accepted a trailing comma
in the OFF KEY# statement (for example, OFF KEY#1,2,).
This is an invalid syntax and causes an internal error at runtime (#245).
The NO OPERATOR function was changed to return a zero
value if a DLG driver is used. Previously the NO OPERATOR
function returned zero if stdin was connected to a tty device and
non-zero if stdin was redirected from a file. This was changed
because dialog programs may no longer use a terminal (eg. using
WebDLG) but are still considered interactive (#878).
The BACKGROUND function was not changed and returns
non-zero if stdout is not connected to a tty device (eg. it is
redirected to a file).
- The POPUP BOX statement returned the undefined
error number 884 instead of the correct error number 684 in case
the connection to the dialog driver was terminated (#1128, #1132).
- The RETURN statement (returning from a function)
could issue runtime error 11 when used with a member variable of
type DINTERGER or SHORT (#1383).
- The NEW statement could result in an internal error:
Internal error processing line 1150
Assertion failed: (sym_ptype(sp->info) == SYM_UTYPE)
file class.c, line 170
This could happen if a type,derived from a base type was
instantiated in a subsequent program segment (function, subroutine)
but the base type was not resolved in the segment the type was
defined in (for example the base class is defined dynamically
from a data set or was defined after the derived type) (#1638).
When user defined types were used in a COM statement
the variable value could be reset in some cases when loading another
program file. Eloquence now uses a different strategy to declare
use defined types (#674).
- An internal error in the screen handler could happen in some cases
when deleting characters from the last line on screen if that line
and the following line were longer than 80 characters (#300).
In some cases eloq on Linux could terminate with an error message
after entering the first character.
read_handler(): read mpty failed: Input/output error
This happened when eloq belonged to a different process group and
was not allowed to access stdin (because it was considered a
background job by the operating system). This is the case when eloq
is started in the .profile with exec (#346, #1290).
On Linux eloqcore could terminate unexpectedly if started by eloq due
to a race condition. Eloq sends a SIGCONT signal to notify eloqcore it
is active. On some machines this could happen when eloqcore was not
fully initialized which resulted in an error message or a crash of
the eloqcore process (#1328, #1616).
On some Linux glibc versions, the CATOPEN statement did
not fail when the message catalog file did not exist. This was
observed with some glibc2.1 library versions.
Eloquence was modified to work around this issue (#527).
- eloqcore could fail to start on Linux or HP-UX if the home
directory containing the .eloqrc file was not readable.
While the .eloqrc file is optional, the directory must be searchable.
This condition is now handled more gracefully (#1652).
Platform: HP-UX, Linux
The eloqsd did not accept new connections if it was restarted
while active eloqcore processes were still present.
The eloqsd daemon has been changed to output startup messages
(such as configuration warnings) by default to stderr.
Platform: HP-UX, Linux
The eloqsd, eqstart and IDE program start facilities now adjust
the Windows Console properties before a program is started. The
console window size is set to 25x80 and the fullscreen mode is turned off.
This ensures that Eloquence programs can always be executed on the
Windows platform (#1822).
Eloquence B.07.00 provides improved database functionality
The database enhancements, changes and fixed problems are documented
in the database release notes.
- The Eloquence QUERY application has been changed to support
the new database limits. In addition a number of general
improvements were implemented.
The QUERY changes document provides
a detailed list of changes in the QUERY application.
- The Eloquence
TurboIMAGE compatibility extension
(IMAGE3K) has been enhanced substantially.
It implements a HP e3000 TurboIMAGE compatible interface for the
Eloquence database. The IMAGE3K extension allows porting of HPe3000
IMAGE based applications to Eloquence with no or only minor source
DLG GET .focus/.focusobj did not always return the correct object
of a previous DLG SET .focus.
DLG SET .focus on a container object (window, groupbox) could select
a statictext (non-sensitive) object.
The .vheight attribute could be wrong in a listbox.
- It took 2.5 seconds to initiate a DLG connection.
This was caused by the DDEWait configuration which adds a delay
after starting a DDE server program to ensure the protocol can be
This delay was also used when a DLG connection was established.
Text based DLG UI
- Fixed possible crash when cloning a dialog object with active
- The ESC key can now be captured with kbind. This requires
the ESC key is pressed twice.
- The .ispassword attribute as been added to the EditText
object. When set, the editttext content is output as asterisk.