* Add support for ZIP archives of version 2.0 (no encryption)
** Add redundancy detection (automatically skips compression if no redundancy is found)
** Use FIO.ZIP() in conjunction with CNV.ZIP() via XCNV command to read and write compressed ZIP archives
*** Without CNV.ZIP() files are stored uncompressed
** The format version required to read the written ZIP archives is 2.0
** DEFLATE and BZIP2 compression are supported
** Encrypted ZIP archives are currently not supported (workaround: store encrypted PGP files in the ZIP archive)
** UTF-8 and ZIP64 are supported to allow archives larger than 4 GiB
** The extra field is used to store important file attributes (DCB parameter) for ZIP archives and GZIP files
* Add FLAM4 record interface support for Microfocus EDZ on Windows and Linux
** Develop host-compliant COBOL programs using FLAM4 record interface on Windows and Linux
** Supports only sequential I/O (no insert, delete, update, search)
** Usable also with FLCL utility and subprogram for FLAM4FILEs known by MF-EDZ catalog
** Works like data set and DD name support under USS for MVS ('DD:name' or //'data.set.name')
** Add new FL4REC documentation in DOCZIP and DOCPDF (valid for all platforms)
* New formatting method format.element() available in FLUC byte and record interface
** Allows reading and writing of raw FLAM5 elements
** Provides the matrix type, element type, attributes, element data and hash values for each element
** Useful for example to get access to parsed XML elements
** New sample programs in C (SCFCBELM, SCFCBDOM) and COBOL (SOFCRXML)
** See byte/record interface API docu for details
** Add Cobol sample SOFCREXV for it
* Add element conversion capabilities to byte and record interface if format.element() is used
** Several conversions can be applied to elements read or written elements
** Conversion modules can be opened and then passed to the read and write functions to apply the conversion
** Usage example: Convert XML elements to integers / floating point numbers or collapse strings (remove whitespace)
* XML data elements read via the element formatter now contain larger data chunks than before (i.e. data in tag body is split less often)
* DTD XML elements and DEFAULT elements can now be suppressed when reading by using the NODTD or NODFLT switch, respectively
* New WllFmd switch when writing XML to verify that the XML document output is well-formed XML
** Useful if format.element() is used on byte or record interfaces
* Add FCRLOC to record interface (fcbread() with size==-1)
** Reads records or elements and returns a pointer to a record or to an element structure and its length
** Improves performance and makes variable length data more simple to handle
* Add fcbprev() function to FLUC byte and FCRPRV to record interface
** Sets the read position to the previous record or element
** Can be used, for example, to simplify scanning of elements or to place back the last read byte/character (implemented as fcbungetc())
* Add FCRFLU to FLUC record interface to flush buffered content
* Add fcbgetc(), ungetc(), putc(), gets(), puts(), clearerr() functions to FLUC byte interface
** Most common functions known from the C runtime are now available
* Add matrix type to state string of byte and record interface
* Add data type and format to state string in byte and record interface (only returned when reading, not required when writing)
* Correct syntax for input and output file string for FLUC stream, byte and record interface
* Correct manpages and help information for FLUC stream, byte and record interface
* Correct logic of the DECODE parameter of read.char() and read.text()
* Add log message to FLUC about GZIP/ZEDC on open platforms
* Improve performance and memory consumption of the PGP component
* Add log format MINIMAL which prints log messages without any prefix
* Add log type OUTPUT to separate output values (for example checksums)
* Add HEX/BIN formats and CUT parameter to get sub-hash values to CNV.HSH() component
* Unmask last parameter in load modules to prevent wrong length calculation and other possible mistakes
* Significantly improved API documentation in Doxygen HTML pages
** Improved the general structure and completeness of descriptions
** Better layout
** New appendix for format and state strings of FLUC byte and record interface
* Add support for reason codes to FLUC subprogram interface (FLUCUP)
* Add user table for character conversion to read specifications of CONV command to support subset validation at read
* Add file name mapping for GZIP and OpenPGP header
* Make ASCII-Armor header available in all cases when writing
* Fix segmentation fault if only an empty record was written via record and byte interface before closing the file
* Support member name as explicit parameter in write.flam()
* Command line processor (CLP) accepts integers as floats if a float is expected
* Add LBI Support (tapes with large blocks) in FLAM4 for z/OS
* Support HEADER=NO in FLAM4-Subsystem (no member headers for files in FLAM4 archive)
* Increase internal record length by delimiter length in FIO.REC() when writing to prevent record length errors
* Fix wrong CCSID and CHRSET in FIO.FL4() if the old translate parameter was used
* Ensure that SKPNOB works for CNV.BAS() without auto detection and format error is given
* Add generated copy books for FLUC record (SOFLCREC) and subprogram interfaces (SOFLUCUP) to SRCLIB
* Length format specification with system endianess now works correctly (was always little endian)
* Fix FLAM4 error messages for system errors
* Significantly reduce memory consumption of the CLEP
* GRAVE ACCENT (` - U-0x0060) to enclose strings is now supported by the command line processor
** Useful on some platforms to specify strings in strings, e.g. for FKM5 parameters
* Correct dynamic allocation of UNIX pathnames on z/OS in FIO.FL4()
** FLAM4FILEs are now allocated correctly in USS if FLCL is used
* CNV.PGP() now returns a format error if an internal buffer too small for remaining rest data
** This can only occur if something is wrong with the PGP file format
* Correct use of CSFKDSL in FKM5-PGPCCA to provide PKDS only solution without key store parameter
** Requires z/OS 2.2 or update to ICSF FMID HCR77B0
** Resolves the log issue because a direct VSAM locate against the PKDS beside ICSF is not longer required
** With this solution the FKM5 object is not longer required if you write PGP files with ICSF
* Fix error (ISSUE 797) in PGP module which result in raw cases in a rest buffer overflow or format error
* Use canonical path for member names at write of FLAM4FILEs with FLUC
* Support of slot numbers (RRDS), ASA and machine control character at read with record conversion and formatting
* Support write of attributes in front of records at block conversion and formatting
* Support attributes (ASA, MCC, ...) if text formatting used at write with method record
* Info function detects now empty files (not mark as binary file anymore)
* Integrate FLVIEW into FLTOC ISPF panels of FLAM4 on z/OS (supports V character for it)
* Implement workaround for ZEDC firmware bug (PMR) for FLAM4FILEs
** The ZEDC need few bytes more output buffer for decompression than input was given at compression
** FLAM4 provides now 4 byte more output buffer to solve this issue
** IBM plan to fix this bug within the next firmware version of the card
** Our implementation is now independent of the ZEDC firmware version
* Improve detection of files smaller than the given block size
** In raw cases the PGP module gives an error to increase the block size
** But if the whole file smaller than this block size this makes no sense
** In this case a format error is now returned to better support the transparent read
* Use FMT.BIN() as default at write if FMT.REC() used at read to keep the records
* Use FMT.BIN() as default at write if FMT.BLK() used at read to keep the blocks
* Fix segmentation fault in CNV.GZP/BZ2/LXZ() if memory allocation failed
* Fix error at reorganization of ZIP files if a static allocation for the ZIP file used on z/OS
- 0000799: [2.2 Subprogram FLUC (CONV)] Support retaining ASA and machine control character in ZIP archives (Falk Reichbott) - resolved. - 0000797: [2.2 Subprogram FLUC (CONV)] Read of undefined datasets in FIO.BLK() without FCRBLK does not work with CNV.PGP() (Mykhailo Moldavskyy) - resolved. - 0000701: [2.2 Subprogram FLUC (CONV)] Add support for ZIP archives (Falk Reichbott) - resolved. - 0000203: [2.1 Subprogram FLAM (COMP/DECO)] Support of zEDC Express (Data Compression Acceleration) for FLAM4 ADC on SystemZ (Falk Reichbott) - resolved. - 0000626: [y. General] Support of FL4REC on Windows under EDz from Micro Focus (Falk Reichbott) - resolved. - 0000779: [2.2 Subprogram FLUC (CONV)] Skip DEFAULT and DTD elements at read.xml() from element list (Falk Reichbott) - resolved. - 0000785: [1.1 FLCL] Converting input file names to gzip-names on output (Falk Reichbott) - resolved. - 0000780: [2.2 Subprogram FLUC (CONV)] Add parse parameter to write.xml() to ensure that well formed XML is written (Tilo Eckert) - resolved. - 0000781: [4. Element, Byte, Record or other API] Support individual conversion of element data on byte and record interface (Falk Reichbott) - resolved. - 0000778: [4. Element, Byte, Record or other API] Support reason codes in FLUC subprogram interfaces (Falk Reichbott) - resolved. - 0000775: [2.2 Subprogram FLUC (CONV)] new entry FCRLOC (Falk Reichbott) - resolved. - 0000634: [2.2 Subprogram FLUC (CONV)] Add format.element() to byte and record interface (Falk Reichbott) - resolved. - 0000771: [2.2 Subprogram FLUC (CONV)] Extend hash functions with new formats, charsets and hashlengths (Mykhailo Moldavskyy) - resolved.