.
contact contact

B.08.30 / Release Notes / Application environment

Application environment changes

 
.
  The B.08.30 release comes with a number of enhancements to the Eloquence application environment:
  • The terminal handling was enhanced to support a Unicode environment on all platforms. On Linux and Unix, the terminal subsystem supports UTF-8 environments transparently.

  • The Eloquence B.08.30 language was enhanced to support UTF-8 conversion and access to unicode encoded files.

  • Eloquence B.08.30 eloqcore introduces a new DLG protocol to improve JDLG performance and usability in cloud environments or wide-area (Internet) network connections. The DLG communication may be encrypted if the application is launched though eloqsd.

    Additional Information on the DLGv2 behaviour in eloqcore is available in the DLGv2 document.

  • The Java based GUI (JDLG) comes in a new major version, and delivers noticeably improved performance and efficiency. JDLG improves performance with existing environments and is noticeably faster when used with B.08.30 using the new DLG protocol version.

  • The eqpcl utility was enhanced to support a subset of unicode characters.

  • The eloqsd server was enhanced to support IPv6 and TLS-encrypted network connections.

  • The Eloquence DLL shared library is now available on all platforms.

Language enhancements

The ENCODE$() and DECODE$() functions were added to encode a string to or decode a string from utf-8 encoding. For example:
DECODE$(ENCODE$("\u20ac"))
Characters not represented in the HP-Roman 8/9 character set are decoded into the \uxxxx notation.

The ENCODING clause for the ASSIGN statement allows specifying the encoding of sequential files. For example:

ASSIGN #1 TO "TEST";ENCODING("utf-8")
The following encodings are supported:
  • roman8
  • iso-8859-1
  • iso-8859-15
  • utf-8
  • utf-16 (utf-16le, utf-16be)

ERROR 19 is triggered if the encoding scheme is unsupported.

Any strings read from or written to the file are then decode or encoded automatically. An utf-16 and utf-8 BOM (byte order marker) is detected and skipped transparently.

The ENCODING clause for the PRINTER IS statement allows specifying the encoding of printer output. For example:

PRINTER IS "TEST",ENCODING("utf-8")
The following encodings are supported:
  • roman8
  • iso-8859-1
  • iso-8859-15
  • utf-8
ERROR 19 is triggered if the encoding scheme is unsupported.

The Eloquence screen buffer has limited support for displaying Unicode characters, subject to limitations of the output device and the current character set.

  • A switch character 149 (0x95) changes the font encoding to Unicode and any subsequent characters are understood as 8 bit unicode characters (same as iso-8859-1).
  • A sequence of \uxxxx (where xxxx is a 4 digit hex code) may be used to display Unicode characters.
  • A switch character 148 (0x94) changes the font back to Roman.
For example:
DISP CHR$(149)&"\u03a9"&CHR$(148)
This displays the "Greek Capital Letter Omega" (Ω) symbol.

The same methodology may be used with DLG objects that also recognize the Unicode switch character. It is currently not supported to enter Unicode characters outside the HP-Roman 8/9 domain. Any unknown characters are returned as question marks to indicate an invalid character.


Enhanced terminal support

The terminal handling was enhanced to support Unicode on all platforms and allows for a more flexible way to specify the character set encoding.
On HP-UX and Linux the locale character set encoding defines the character set encoding that is used by Eloquence. It must match the terminal type. Eloquence on Windows uses Unicode for the console output.

Eloquence terminal handling was enhanced to support the UTF-8 character set encoding, in addition to HP-ROMAN8 and ISO-8859-1 and ISO-8859-15 character sets. For some "known" terminal types the character set is fixed, for example the HP-ROMAN8 character set is always used with 70092 terminals. Otherwise, the character set of the locale (LANG or LC_CTYPE) is used to define the character set encoding. This allows to use different encodings with the same terminal type. For example, the xterm terminal type may be used with various character sets.

The character set encoding is defined by the environment that is referenced in the LANG and LC_CTYPE environment variable. The locale -c charmap command may be used to output the character set encoing for the locale.

$ LC_CTYPE=de_DE locale -c charmap
LC_CTYPE
ISO-8859-1

$ LC_CTYPE=de_DE@euro locale -c charmap
LC_CTYPE
ISO-8859-15

$ LC_CTYPE=de_DE.UTF-8 locale -c charmap
LC_CTYPE
UTF-8
This shows diffrent character set encodings used by different locales.

If the character set encoding supports the EURO symbol (utf-8 and iso-8859-15) the "currency symbol" character is mapped to the EURO symbol.

Eloquence applications are now able to output unicode characters to the screen or a dialog. It depends on the terminal capabilities to what extent this is visible.

The new eloqcore CRT configuration allows to configure terminal properties such as the linedraw character mapping and, on Windows, the console font and colors.


eqpcl Unicode suport

The B.08.30 eqpcl utility was enhanced to support Unicode characters. Input characters are converted to Unicode using the selected symbol set. It depends on the selected font what glyphs are actually available.

The following symbol sets are supported as of B.08.30:

 EC(# - select symbol set

    8U = HP Roman-8 Symbol Set
    4U = HP Roman-9 Symbol Set
   10U = IBM Layout (PC-8) (code page 437) Default Symbol Set
   12U = IBM Layout for Europe (PC-850) (code page 850)
   18N = Unicode
    8M = Math-8
   19U = Windows 3.1 Latin 1
    9E = Windows 3.1 Latin 2 (commonly used in Eastern Europe)
    5T = Windows 3.1 Latin 5 (commonly used in Turkey)
  579L = Wingdings Font
Support for the text parsing method command was added:
 EC&t#P - text parsing method

    0 - 1-byte
    1 - 1-byte
   83 - Unicode
 1008 - UTF-8      
Chosing the symbol set 18N implicitly sets text parsing to UTF-8 (EC&t1008P).


Eloquence DLL shared library

Starting with Eloquence B.08.30, the Net.DLL, Odbc.DLL, RunSrv.DLL components are linked to the eqdll shared library on all platforms.

We recommend to rebuild existing Eloquence DLLs using the Eloquence B.08.30 eqdll shared library.

HP-UX and Linux

Eloquence DLLs built with Eloquence B.08.30 are now recommended to use the libeqdll.so shared library (libeqdll.sl for HP-UX PA-RISC).

The libeqdll.a static library is deprecated (still included for backward compatibility but likely to be removed in a future Eloquence version).

To use the eqdll shared library in your project, use the linker options below.

  • Linux 64-bit
    -Wl,-rpath,/opt/eloquence/8.3/lib64 \
    -L /opt/eloquence/8.3/lib64 -leqdll

  • Linux 32-bit
    -Wl,-rpath,/opt/eloquence/8.3/lib \
    -L /opt/eloquence/8.3/lib -leqdll

  • HP-UX Itanium 64-bit
    -L /opt/eloquence/8.3/lib/hpux64 -leqdll

  • HP-UX Itanium 32-bit
    -L /opt/eloquence/8.3/lib/hpux32 -leqdll

  • HP-UX PA-RISC 2.0 64-bit
    -L /opt/eloquence/8.3/lib/pa20_64 -leqdll

  • HP-UX PA-RISC 2.0 32-bit
    -L /opt/eloquence/8.3/lib/pa20_32 -leqdll

Windows

Eloquence DLLs built with Eloquence B.08.30 are now required to use the eqdll.dll (32-bit) or eqdll64.dll (64-bit) shared library.

The eloqdll.lib static library is no longer available.

To use the eqdll shared library in your project, set the -DDLLIF_SHARED compiler option and use the linker options below.

  • Windows 64-bit
    /link /machine:X64 (... more linker options ...) \
    "C:\Program Files (x86)\Eloquence\8.3\lib64\eqdll64.lib"

  • Windows 32-bit
    /link /machine:IX86 (... more linker options ...) \
    "C:\Program Files (x86)\Eloquence\8.3\lib\eqdll.lib"


 
 
 
  Privacy | GDPR / DSGVO | Webmaster | Terms of use | Impressum Revision: 2024-04-10  
  Copyright © 1995-2024 Marxmeier Software AG