A new format is available for the IEDTGLE
interface.
There are therefore two formats:
V16 format: identical to the
IEDTGLE
interface in EDT V16.6BV17 format: new format with extensions for Unicode
When generating the control blocks for the IEDTGLE
interface, the user can choose the required version (see section “Generation and structure of the control blocks”).
Basically, the following applies:
The
IEDTGLE
interface (V16 format) is only supported in full by compatibility modeThe
IEDTGLE
interface (V17 format) is only supported in full by Unicode mode
To make it possible to develop applications which use the IEDTGLE
interface and can run with both compatibility and Unicode mode, there is a new connection module which converts the interfaces. This means that an application which works with the EDT V16.6B IEDTGLE
interface can also run unconverted in EDT V17.0A Unicode mode provided that it only uses functions that are also supported by Unicode mode.
If EDT is not already running or if EDT is running but all the work files are empty then the appropriate operating mode is activated when the IEDTCMD
interface is called: compatibility mode for V16 format, Unicode mode for V17 format. This mechanism is deactivated as soon as the operating mode is switched explicitly using the @MODE or @CODENAME statement. Any subsequent mode changes must then always be performed explicitly. Equally, an implicit mode change never occurs from within a user routine. Otherwise the return from the user routine to EDT would be unsuccessful.
It should be noted that implicit changes to the operating mode by changing the interface version are only possible via the IEDTCMD
interface. Since EDT is in an non-initialized state after such a change, all the function calls which require EDT to be initialized would lead to errors.
In general, it is advisable always to work with the same interface format (V17 format or V16 format) in a program and make any changes of operating mode explicitly (via a @MODE statement).
If EDT is already running and it is not possible to change mode or if mode change is not performed due to a prior explicit change (see above) the interface format is converted.
A call of the
IEDTGLE
interface in V16 format is converted to V17 format if EDT is running in Unicode mode.A call of the
IEDTGLE
interface in V17 format is converted to V16 format if EDT is running in compatibility mode.
This conversion is only possible if the employed function is supported by the currently active EDT operating mode. For example, the V16 format of the AMCB
cannot be converted into V17 format if Locate mode
is required. In this case, the return code EAMPAERR/EAMPA08
is returned.
If the IEDTGLE
interface is used in V16 format then:
Locate mode cannot be converted.
When the global status is read (
IEDTGET
function with pseudo work file ‘G’)
, the field for the globally specified character set which is omitted in V17 format is only set to a value other than ‘blank’
if the same character set is specified in all the non-empty work files.
In the case of the IEDTGLE
interface in V17 format, the subset that can be converted into V16 format is defined (compatible V17 format). This is specified in the description in each case.
The full scope of the V17 format (extended V17 format) can only be used with Unicode mode.
To ensure that extensions are not used unintentionally, it is possible to specify at the V17 format interface that only the compatible format may be used (by setting the EGLCOMP
flag). In this case, the use of the functions of the extended format is rejected with a return code (also in Unicode mode).
Using the extended format (EGLCOMP
flag not set) also prevents the automatic conversion of the V17 format into the V16 format even in cases where this is possible. However, it should be noted that the flag is a conversion flag and not a switchover flag. This means that even in the case of a compatible format, there may be a switchover to Unicode mode if this is possible.
V16 format is identical to the format of the IEDTGLE
interface in EDT V16.6B Consequently, an application which uses the compatible V17 format can also run with EDT V16.6B if it includes the EDT V17.0A connection module IEDTGLE
.
The overview indicates the possible combinations:
EDT V17 not | EDT V17 present, | EDT V17 present, | EDT V17 present, | |
Call via | As previously | Set compatibility | No special action | Convert to V17 – if |
Call via | Convert to V16 | Set Unicode mode | Convert to V16 | No special action |
Call via | Error | Set Unicode mode | Error | No special action |
Call via | As previously | Set compatibility | No special action | Error |