Interactive COBOL Release Notes 5.21 29-Jun-2016 The release notes are organized primarily by revision number, from newest to oldest for the 5.2x releases. For information on all of the 5.xx releases, see readic.txt. Within each revision number section, there are up to three subsections: "Bug Fixes", "Changes and New Features", and "Known Problems". ********************************************************** NOTICE: Previous ICOBOL 5 Beta versions should be uninstalled before installing a final ICOBOL 5. ********************************************************** **** Revision 5.21 **** Bug Fixes in 5.21 ------------------ 1. Under Linux, the icconfig utility was not properly displaying the system parameters page of the .cfi file such the the number of PDF formats was not displayed and could not be modified. This was broken in 5.20. 2. The IC_SEND_MAIL built-in would return exception 36 "Filename is not valid" when an attachment specification had both a blank mime type argument and a blank filename argument. This was broken in 5.20. Changes and New features in 5.21 -------------------------------- 1. A change was made to some compiler error messages to clarify the potential causes for the error. **** Revision 5.20 **** Bug Fixes in 5.20 ------------------ 1. The IC_DECODE_CSV built-in call could return an exception 137 when the last field in the input record was quoted. 2. Under Windows, Flexus SP2 has been updated. For more see the readsp2.txt. 3. The IC_SEND_MAIL builtin would sometimes continue processing after getting an error response to an authentication request instead of returning the error. This would sometimes lead to additional errors in the mail session that could be considered by some SMTP servers as behavior typical of spam senders. In particular, it could return a "mailbox unavailable" error when the underlying actual error was the authentication error. Changes and New features in 5.20 -------------------------------- 1. A change was made to how the debugger processes numeric literals used in debugger commands when debugging programs that use DECIMAL POINT IS COMMA. 2. When configuring the system configuration (.cfi) file, the system page in icedcfw and icconfig now has a new option labelled "Create ver. 7 files". When this option is checked or set to "Y", the runtime system will create version 7 INDEXED and RELATIVE files by default instead of version 8 files. This allows for easier interchange of files for those who are supporting a mix of ICOBOL 4 (or before) and ICOBOL 5 systems. It is not necessary to update the .cfi file if you want to continue to have version 8 be the default. This change updates the version number of the .cfi file from 8.3 to 8.4 when the .cfi is saved or created and so .cfi files edited with version 5.20 and up cannot be used on systems with versions below 5.20. 3. The Windows character-mode keyboard processing was enhanced to allow special characters to be entered by holding ALT and entering a numeric value on the numeric keypad (NumLk on). This affects ICCONFIG and ICRUN. Note that an appropriate code page must be loaded in order for the characters to be displayed properly by Windows. Also, the terminal definition file (.tdi) in use must define the code as a regular character in the keyboard section and have a mapping in the display section. 4. The special named pipe file used by ICEXEC in Linux was moved from /dev to /var/opt/icobol, and the name was changed from ics.69637302 to icexec.pipe.69637302. 5. The Windows runtime system (ICRUN, ICRUNW) now accepts the -C option (filename case conversion) like the Linux runtime system. The default remains the same - converting to lowercase. 6. A new builtin call, IC_WHOHAS_LOCKS, was added that enables a program to determine the records that are locked in the system. The call requires both the "Terminal Status" and "System Information" privileges; otherwise, it will return exception status 221 - "This operation is not permitted." The builtin call takes a single argument, a group with the following structure: 01 WHOHAS-GROUP. 02 MAX-COUNT PIC 9(4) COMP-5 VALUE 10. *> #table elements (input) 02 CUR-COUNT PIC 9(4) COMP-5 VALUE 0. *> actual count (output) 02 INFO-TBL OCCURS 10 TIMES. *> set occurs count as needed 03 TERM-NUM PIC 9(4) COMP-5. *> terminal holding the lock 03 USERNAME PIC X(16). *> user holding the lock 03 PROGNAME PIC X(30). *> program holding the lock 03 FILENAME PIC X(64). *> file with the locked record 03 LOCK-POS PIC 9(9) COMP-5. *> record position of the lock 03 PID-NUM PIC 9(9) COMP-5. *> PID of locking terminal The OCCURS count can be set as needed. Typically there are only a handlful of locked records active at any given time, so usually only a small number is needed. The OCCURS count that is set must also be specified in the VALUE clause of the MAX-COUNT field. The builtin uses MAX-COUNT to make sure that it does not exceed the storage allocated to the table. If the number of actual locks exceeds the MAX-COUNT limit, an exception 220 - "There are no more entries in the table" is returned and the CUR-COUNT field is set to the number needed. 7. A new builtin call, IC_SEND_KEY, was added that enables a program to send a single key to another terminal. The call requires both the "Terminal Status" and "Watch Other Terminals" privileges; otherwise, it will return exception status 221 - "This operation is not permitted." The call takes two arguments: the first is the terminal number to which the key is being sent and the second is a KEY-STRUC group with values as described under the IC_GET_KEY builtin. The effect of this builtin is similar to the full sequence of (a) watch the terminal with control, (b) enter the keystroke, (c) cancel the watch. 8. We have added a new "extended open" option that can be added to a filename to fine-tune the filename case mode handling. By default the runtime system in Linux and Windows convert filenames to lower case before passing them to the operating system. This behavior can be changed globally with a command line option to the runtime system, but sometimes that handling needs to be changed for just particular files - e.g., to meet the naming requirements of a third part application. This is now possible on a file by file basis with the new option. The new "extended open" string is ",c=l" to convert to lowercase, ",c=u" to convert to upper case, and ",c=n" to not convert the case. This option will over-ride the global option for the filename it is added to. This option must be the first option in the list when multiple options are specified. In general, the option applies in OPEN, DELETE FILE, and where filenames are specified in the built-in calls and the # and ## system calls in CALL PROGRAM. For example, to rename a sequential file named "output-file" to mixed case, one could use: MOVE "output-file" to OLD-NAME. MOVE "OutputFile,c=n" to NEW-NAME. CALL "IC_RENAME" USING OLD-NAME NEW-NAME. End of Release Notes