This section describes the changes that users must note – in addition to the elimination of the L mode interface and the replacement of the @RUN interface (see section “Functionsthat are no longer supported”) – if they want to use the IEDTGLE
interface in their programs.
Here, it is necessary to distinguish between use of the V16 format of the IEDTGLE
interface (old macros or new macros with a corresponding VERSION
parameter), the V17 format of the IEDTGLE
interface (new macros with corresponding VERSION
parameter) or the compatible V17 format (can be controlled using the flag EGLCOMP
). The compatible V17 format should be used if the application needs to run in environments in which only an EDT version lower than V17.0A is installed.
If read or write operations are called in Locate mode
in V16 format while EDT is in Unicode mode and it is not possible to switch to compatibility mode (e.g. because not all the work files are empty) then the call is rejected with a return code.
When the global status is read (IEDTGET
function with pseudo work file 'G'
) in V16 format then 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 V16 format, strings that are transferred in the buffer EDTREC
are interpreted in the character set defined for the relevant work file. V16 format functions that use the COMMAND
, MESSAGE1
and MESSAGE2
buffers can only be processed correctly in Unicode mode by switching to compatibility mode or if the same character set is defined for all the work files (see the @CODENAME GLOBAL,... statement). Otherwise, the relevant function is rejected with a return code.
In both formats, the calling program must take account of the fact that in Unicode mode records longer than 256 bytes are supplied and that long records are truncated. If insufficient buffer space has been made available, then it is necessary, at the very least, to evaluate the return code (EAMAC04
) and react accordingly.
In both formats, the calling program must take account of the fact that in Unicode mode records of length 0 are supplied.
In both formats, the IEDTINF
function always returns the value 0
in the EGLINFM
field (number of memory pages required for the static data area) of the EDTGLCB
control block.
The flag EGLREOR
(suppress memory reorganization) is no longer present in the V17 format of the EDTGLCB
control block. New additions to this control block are the fields EGLCCSN
(name of the character set in which the buffers COMMAND
, MESSAGE1
, MESSAGE2
and EDTREC
are coded) and EGLCOMP
(flag for compatible V17 format), the field EGLIND2
(display that EDT is running in compatibility mode) and the return code EUPCMPER
(use of incompatible functions in the compatible format). In the compatible V17 format, the field EGLCCSN
may only contain blanks.
In the V17 format of the control block EDTUPCB
the flag EUPNUNI
(block switch from Unicode to compatibility mode) is new. In compatible V17 format, EUPNUNI
must not be set.
The V17 format of the EDTAMCB
control block no longer contains the field EAMMMODB
and the two flags EAMMOVM
and EAMLOCM
(all used in connection with MOVE mode
). In addition, the equates for the unused marks (EAMMK10
, EAMMK11
, EAMMK12
and EAMMK0
) are no longer present.
The field EPGCCSN
(name of the globally defined character set in EDT) is no longer present in the V17 format of the EDTPARG
control block. This is now present locally for each work file as the name EPLCCSN
in the EDTPARL
control block.
The field EPLCCSN
is new in the V17 format of the EDTPARL
control block (this field was previously present with the name EPGCCSN
in the EDTPARG
control block). In addition, the field EPLCCSNG
(character set applies locally for all work files) is new while the fields EPLSTCOD
(code default: EBCDIC/ISO) and EPLOPNXC
(code of POSIX file: EBCDIC/ISO) are no longer present.
If it is necessary to use external statement routines (user statements defined with the
@USE statement) which are implemented to use the V17 format of the subroutine interface then the developer of the statement routines must also provide an initialization routine. The presence of the initialization routine indicates to EDT that the V17 format is understood.