* Add trace facility (FLAM4MF_TRACEFILE) for Microfocus EDZ stubs
* Fix 0C4 in open for write if function FCROPN used in MF-EDZ environment
* Prevent wrong error message in open for write if the RENEW switch activated and the file does not exists and something else goes wrong
* Implement pointer conversion in MF-EDZ stups (required if AMODE defined and MF-EDZ is fixed)
5.1.17-20755
* Correct password replacement with '***SECRET***' if CLEP used
* Fix get table name function for memory converter (don't gives an error if delayed open not yet done)
* Support new FCRCPYL function in FLUC record interface to support MF-EDZ workaround also for the log stream
* Add new structured version of Cobol sample SOFCRIPS for SEPA mass and instant payments
** Includes workaround for MF-EDZ pointer issue (used in Linux and Windows packages, comment out in z/OS packages)
* Add Cobol copy books SOFLCREC.cpy and SOFLUCUP.cpy to Linux and Windows packages
* Fix incorrect error handling in close, flush and delayed open function of byte and record interfaces
* Support ECC keys for SSH on USS and z/OS (fix XLC issue in libssh code)
* Fix memory leaks in flucFSconfig tool
5.1.17-20714
* Add new system variable &FLREUCEE. to disable (=OFF) reuse of runtime environment on z/OS for ZEDC support in FLAM4 components
** This prevents user abend 4088 reason code X'63' if that NAB back chain is used depending on CEEPRM configuration (RPTSTG(ON))
* Add MF-EDZ stubs for logging facility control to record interface (FCROPNL/CLRL/GETL/CLSL)
* Fix few conversion issues in MF-EDZ stubs if EBCDIC used for parameter strings
** Add conversion for table names (FCRGTN and FCRSTN)
** Converted string parameter don't limited in length anymore
* Support conversion handle of previous conversion in open of next conversion like a file handle
* Support DD:Names and DataSetName (//'...') for all kinds of files on Windows and Unix in MF-EDZ environments
** Since previous version only the input and output files are supported
** There was no support for report, signature, hash, parameter or other kind of help files
* Byte/record interface no longer return EOT if the set-table-name-function was used to set the current table format
* Add COBOL example (SOFCRIPS) for SEPA mass and instant payments via record interface
* Add security checks when extracting files from archives (FLAMFILE, ZIP) or other containers (PGP, gzip)
** Prevents directory traversal attacks through specially crafted archives
* Improve error message in FIOFL4 if FLMOPN failed with -1 as handle and no reason is given
* Fix FLCC commander after QT 5.11 adjustments (command tree not usable)
* Add FMTTAB (table support) feature to demo license
5.1.17-20572
* Improved performance (10%) and reduced memory consumptions (40%) when converting tables to and from XML
* Fix handling of last block in in-memory conversion
** This bug could result in the last record from one block to be placed at the beginning of the next block
* Fix last block handling in XML parsing component for table support (in conjunction with previous bug)
* Correct support for concatenated XML documents
** Reading no longer fails if a block ends within the first token of the next XML document
* Improve format detection in table support for fixed and variable formats
** If character conversion failed, it is now handled as format error
* Extend error trace if XML parsing failed with context information
** Print 64 byte string starting at the error position
* Support DD name and data set name access on USS again
** Since SSH support was introduced the DDN ('DD:name') and DSN (//'data.set.name') support on USS failed
* Add table with usage recommendations for read/write objects (read.record() write.text()) of CONV command in FLCL book
* Correct formatting of byte and record interface documentation (some code blocks were not closed)
* Improve key access if OP signatures are used in PGP component (only use KID for faster access)
* Allow JCL/SYSTEM symbols with and without '&' at the beginning (<&xxx> == <xxx>)
** In the previous builds, JCL symbols with '&' failed and system symbols required '&' at the front
* Fix bug in FLUCUP which could result in suppressed error codes which might have resulted in truncated files without an error
* Fix crash of FLCC with Qt 5.11
5.1.17-20431
ATTENTION: Non backward-compatible changes in version 5.1.17
To improve performance, reduce memory consumption and support thousand
separators at read, the integer and float data types don't support the
whitespace parameter in external string representations anymore. This
could require adjustment of parameter strings for integer and float
data types if format is string. The new hard coded whitespace handling
remove all the whitespace and the thousand separators from the string
but don't add any zeros (',4' to '0,4') to build a valid number. If
this feature of 'whitespace=number' is required, you can use the
whitespace handling of the string data type for numbers and add a
pre-processing step (available with revision 5.1.18) to convert the
string type to an integer or float data type.
* New FLUC subsystem for Unix systems supporting FUSE
** A new executable to mount a physical directory to a logical
** Converts files transparently while reading/writing from/to the filesystem
** For each file name pattern, a FLUC write and/or read string can be specified
** These strings can contain any kind of conversion supported by FLUC
** The I/O subsystem can be used to convert, compress and encrypt certain files
** In the write definition you can define, if a transparent/inverse read over the logical few possible or not
** The file in the physical folder (e.g. PGP files) can then be handled like any other file (transfer to partner, backup, ...)
** The solution was built to enhance standard applications (e.g. SAP) with transparent file conversion, compression and encryption features
** The flucFS (file system) can be used as transparent infrastructure to control access and format of certain critical files
* Add XML format to table support based on a hierarchical path syntax
** Read tables from structured or unstructured XML formats (e.g. convert SEPA transaction to a fixed-length record)
** Write tables as structured or unstructured XML format (e.g. convert a fixed record to a SEPA transaction)
* Support records up to 1 MiB in length (required for SEPA-XML to fixed-length record conversion)
** There is no real limit anymore, but for plausibility checks the 1 MiB is used
** This size can be expanded to a maximum of 1 GiB
* Support additional columns with default values at write (required for XML support)
** Can be used to insert columns to a read table at write
* Support of concatenated XML documents with FMT.XML()
* Add NFD/NFC support to character conversion
** Normalization of UNICODE for compare and/or sort
** Combined character support with auto detection if conversion to single bytes character sets (e.g. Latin1, CP1252 or IBM1141)
* Support setting file permission bits (using chmod) in I/O components (EXTATR)
* Support system symbol replacement on z/OS ('<&LDAY>') in CLEP strings
* Extend default record length by delimiter length if record format TXT or DLM is used
* Add GM/LCYEAR2 string literal for year without century (YY) to build file names and other kinds of strings
* Add new keywords 'SYSTEM' or 'LOCAL' for CCSID to ensure the local system-specific character set
* Improve software random number generation (not relevant for HSM usage)
* Reduce memory consumption for character conversion
* Reduce CPU and memory consumption when using base encodings
* Read environment also from '&SYSUID..STDENV' on z/OS
* Add completion code message to FLCL with version and builds number
* Version and build number are separated with a hyphen instead of a dot
* If pattern substitution in filenames ([xyz]) results in a zero-length filename, an error is returned instead of writing to stdout
* Make buffer for usage report dynamic in size to support long job name lists
** The buffer was limited to 64 KiB which could result in incomplete reports
* Support for digit grouping by a delimiter (thousands separator) when reading integer and float data types
* Support keyword DUMMY for files at read like a read of an empty file
* Make timeout for SSH operations variable (default still 30 seconds, but now you can define lover (1) or hihger values (68 years))
* Add logging facility control function to byte, stream and record interfaces
** Required for table support to catch warnings (required fields or branches, missing column specifications, ...)
** Open and close function for memory logging, getter for log buffer and maximal codes and reset functions to clear anything
* Provide memory to memory interface to use table support for transactions (online processing)
** Conversion between fix, variable structures and CSV and XML formats
** Useful for example for instant payment SEPA transactions
* Extent memory to memory interface to support compression, encryption and encoding schemes
** Provides complete read and write capabilities of FLUC (read a GZIP data stream in XML (UTF-8) and write CSV in EBCDic as PGP stream)
** Useful to produce for example GZIP oder PGP attachments for mails inside of an application
** Requires delayed open at read from memory to support all auto detection capabilities of FLUC
** Support new entries for intermediate memory to memory conversion (fcbrunc/finv or FCRRUNV/FINV)
** Support new entries which return a pointer to the converted data (fcbconp/runp/finp or FCRCONP/RUNP/FINP)
* Support record preparation (fixed length, ASA and MCC control character) at format.record() for API
** Required for FLUC-Subsystem on z/OS to provide fixed length data sets and record formats with ASA or machine control character (MCC)
* Bugfixes
** Fix wrong headline handling if record orientation used in table support
** Fix potential segmentation faults in table support
** Fix wrong realloc for element converter (*piOutLen was not set)
** Fix encryption of final PGP block if literal packet is less than a symmetric block length
*** Empty files with short filenames not longer result in a NEED_DATA error
** Fix error handling when closing ZIP files (don't lose error if re-organization fails)
** Add missing final call in FLUC-UP to ensure completeness of written data (required for XML in table support)
** Fix segmentation fault in whitespace handling for floats and integer data types
** Correct wrong error handling in file I/O components (real error at close was lost)
** Fix [cut-n] filename pattern rule when using negative numbers
** Fix segmentation fault if record length for FLAMFILEs incorrect (RECSIZE<80)
** Fix wrong mapping of record length for FLAMFILEs 8RECSIZE9 and input files (INRECSIZE) in FLAM command of FLCL
** Add final handling of input data if end of file determined after the first block (as part of the open function)
** Fix wrong handling of block size in PGP info function (some times the PGP dump was not provided for a PGP file)
** Return required length if FLMRTC_LEN error return after call to FCRGET
** Correct format detection at read (isFinal then FLMRTC_FMT instead of FLMRTC_LEN)
- 0000915: [1.1 FLCL] Read write from USS to zOS dataset not possible (Falk Reichbott) - resolved. - 0000892: [4. Element, Byte, Record or other API] Add support for ASA and machine control character to format.record() on byte interface (Falk Reichbott) - resolved. - 0000888: [3. Subsystem, Driver, Plugin, SPI] Support an application transparent file conversion, compression and encryption solution like z/OS-Subsys for open systems (Ulrich Schwab) - resolved. - 0000896: [4. Element, Byte, Record or other API] FMT.TAB as Memory to Memory Interface (Mykhailo Moldavskyy) - resolved. - 0000907: [2.2 Subprogram FLUC (CONV)] Add XML format to table support (Falk Reichbott) - resolved. - 0000874: [2.2 Subprogram FLUC (CONV)] Support of combined character in UNICODE (Mykhailo Moldavskyy) - resolved. - 0000932: [3. Subsystem, Driver, Plugin, SPI] The match patterns does not work in each case within flucFS (Ulrich Schwab) - closed.