ATTENTION: Non backward-compatible changes in version 5.1.12
Starting with version 5.1.12, the object FL4 of the new overlay ARCHIVE
(archive.fl4()) replaces the former FLAM4NDC switch, the FLAM4 object of
the COMPRESS overlay (comp.flam4()) and the F4PWD/KME objects of the
ENCRYPT overlay (encr.f4pwd() or encr.f4kme()) in the writing command
part. If you use one of these possibilities to create FLAMFILEs with the
CONV command of FLCL, you must adjust the syntax of the WRITE clause of
the CONV command using the archive.fl4() object.
When using cnv.rec(method=DLM) in the reading portion of an XCNV command
or cnv.blk(method=DLM) in the writing part, binary record delimiters are
parsed or written, respectively. When writing via cnv.blk(method=DLM),
the single byte text delimiter remains the default, but when reading via
cnv.rec(method=DLM), a binary record delimiter must be specified
(through the recdlm parameter), otherwise an error will occur. In order
to parse for the default text delimiter, the keyword SYSTEM or the new
TXT keyword can be used.
The keyword FLAMFILE of the DECODE level parameter in CONV commands was
changed to ARCHIVE. If you are using commands like
read.bin(decode=FLAMFILE) or read.rec(decode=FLAMFILE), you must replace
the FLAMFILE keyword with ARCHIVE.
* Support for ZIP archives in CONV commands
** Transparent reading of archives (no new parameter required)
** To write ZIP files, a new overlay (archive.zip/fl4()) was implemented (replaces FLAM4NDC, F4PWD/F4KME and FLAM4)
** Support SupPad and RecDlm in FMT/CNV.REC() for reading and in FMT/CNV.BLK() for writing
*** Parsing of binary record delimiter as formatting or conversion step
*** Additional job step using FIO.REC() is no longer required for this kind of conversion
** Support of compression and encryption with block oriented formats in write.record()
*** Can be used to archive host datasets in BZIP, GZIP, PGP files and/or ZIP archives with FLAM
*** Block conversion with a length field for each record is done by default
*** Record attributes can be put between the length field and the record data (PRNCONTROL=RETAIN)
*** The file attributes (DCB) are stored in GZIP/ZIP member header private extra field or in the ASCII armor header
*** Default behavior, if the decode switch is activated, is decoding of FLAMFILES, ZIP archives, PGP/GZIP/BZIP2/XZ files
* Fix damaged ZIP archives based on wrong offsets returned from z/OS runtime environment
** In rare cases the z/OS runtime environment calculates wrong offsets and writes wrong data
* Support for wildcards (directory walk) for PDS(E), ZIP and FLAM4 archives if a static DD name allocation is used for the library
** For example: file='DD:INPUT(*EGB*)/?*HOGO*' or name='DD:INPUT(*EGB*)' member='*HOGO*'
** The member name of the PDS(E) can also be fully qualified (name='DD:INPUT(EGBERT)')
** If you provide only a DD name, then a directory walk will be done if a PDS(E) is allocated
* flmopn.dll (copy of fl4rec.dll) to Windows and Linux packaging to simplify the use of the Microfocus support
* Only add ".txt" as extension in FMT.TXT() when a text delimiter was added to the data
** If record or binary formatting is done, then the file name is not changed
* Reduced call stack in I/O modules to improve performance
* Return an error when writing data to a directory of a PDS(E)
* Fix return code handling of flmset/flmqry in Microfocus support
* Archive handles (ZIP/FL4) have not been closed and freed properly in some cases if opening the archive failed
** This problem existed since version 5.1.5 in the batch utility (FLCL) and subprograms (FLUCUP)
** Byte, stream and record interfaces are not affected
* Add paragraph to documentation that a write of ZIP archive to PO member on z/OS is not possible
** The runtime environment does not support seek() and tell() functions for PDS(E) members when writing
** Existing ZIP archives can be copied to a PDS(E) member and read properly, but they cannot be written directly
* Improve record length field detection (support binary delimiter and record attributes)
* Correct slots for RRDS number when reading (fix of issue 808) of FLAMFILE with FLUC
* Correct gaps for slots numbers for RRDS when writing FLAMFILES with FLUC
* Map correct default record format for ESDS, KSDS, RRDS when writing FLAMFILEs with FLUC
* Make the charset variable for local file headers in ZIP archives (was fixed to UTF-8)
* Improve performance when writing ZIP archive (reduce number of seek operations)
* Correct default file name for ZIP archives (hugo.gz --> hugo.gz.zip)
* Fix segmentation fault in FIO.FL4() if default archive names used in directory walk
* Correct statistics output of I/O modules if directory walk is used
* Keep I/O handles open when writing to multiple archive files in parallel using the directory walk
** Reduce close and reopen of files when writing (improves performance, minimizes logging)
** Appending data to archives that have been written to before now always works as expected
* Remove empty file attributes from statistics output
* Correct compression ratio and efficiency in statistics output
* Add new log type SUMMARY for archives
* Add all relevant file attributes (record format, record length, ...) to ARMOR header
** This can be used to archive host datasets in ASCII armored PGP/BZIP2/XZ/GZIP files
** Simplifies the exchange of host datasets with PGP
*** For fixed length record datasets only "RecordLength: value" must be added to the armor header
*** For variable length record datasets "BinaryDelimiter: hexvalue" or "LengthField: keyword" must be added
* Add binary delimiter support to private member header of GZIP and ZIP files
** Gives the same behavior which was implemented with the armor header above
* Fix segmentation fault on FLUC record interface if empty statistic buffer provided at FCRCLS
- 0000808: [2.2 Subprogram FLUC (CONV)] RRDS slot numbers lowered by 1 (Falk Reichbott) - resolved. - 0000807: [1.1 FLCL] FLUC don't write into a pds without member name (Falk Reichbott) - resolved. - 0000795: [2.2 Subprogram FLUC (CONV)] Support ZIP archives in CONV command (Falk Reichbott) - resolved. - 0000806: [2.2 Subprogram FLUC (CONV)] Directory walk for member does not work if a static DD name allocation done for PDS(E), ZIP or FLAM-Archive (Falk Reichbott) - resolved.