Interactive COBOL Readme 5.26 Feb-2017 ********************************************************** NOTICE: Previous ICOBOL 5 Beta versions should be uninstalled before installing a final ICOBOL 5. ********************************************************** Introduction ------------ This readme describes the ICOBOL 5 releases. 32-bit and 64-bit versions are released for Linux 2.6+ and Windows platforms. On a particular platform the 32-bit and 64-bit versions can be used interchangably if your system supports the appropriate version. On Windows, a 64-bit os will allow both the 32-bit and 64-bit executables to run. On Linux, a 64-bit os will allow the 32-bit executables to run if the appropriate 32-bit system libraries are available. See the readlinux.txt file for more information. On 32-bit Linux or Windows systems, only the 32-bit executables can be run. On Linux, if you try to execute a 64-bit program you will get a message like "cannot execute binary file". On Windows you will get a message like "xxx.exe is not compatible with the version of Windows you are running...". Notes specific to 32-bit/64-bit builds of ICOBOL 5 will be listed. Unless stated differently: Windows will be used to refer to all supported versions of Windows Vista, Windows Server 2008, Windows 7, Windows Server 2012, Windows 8, Windows 8.1, and Windows 10. x32 Editions will be used to refer to the 32-bit editions of Windows Vista, Windows Server 2008, Windows 7, Windows 8, Windows 8.1, and Windows 10 when required. x64 Editions will be used to refer to the 64-bit editions of Windows Vista, Windows Server 2008, Windows 7, Windows Server 2012, Windows 8, Windows 8.1, and Windows 10 when required. NOTES: 1. Windows XP and Windows 2003 are no longer supported platforms for ICOBOL. **** Revision 5.26 **** Bug Fixes in 5.26 ----------------- 1. The runtime was incorrectly computing the destination size when processing a STRING statement with the POINTER clause, which could result in overwriting the next item in memory. **** Revision 5.25 **** Bug Fixes in 5.25 ----------------- 1. The compiler was generating bad code for a MOVE of a date-time data-item to multiple TO items. 2. The Language Reference Manual was corrected to add a specification of the storage format for (ISQL) USAGE NUMERIC. 3. The Language Reference Manual had incorrect entries for the default values of DATE, TIME, and TIMESTAMP items under the specification of the INITIALIZE statement. 4. A TIME or TIMESTAMP item with fractional digits could be displayed incorrectly in the screen section or in the debugger. The display could omit the decimal point and/or truncate the number of fraction digits. 5. When specifying a VALUE clause for a date-time item, the compiler could give an Internal Error instead of reporting the incompatible VALUE clause for a literal that was not of the same date-time type. 6. In ICIDE, the property sheet for data and screen items was not displaying the Usage property for ISQL usages. 7. The INITIALIZE statement for date, time, timestamp, and interval data items being initialized to the default value was not being handled by the runtime system and would result in a fatal internal error. 8. The debugger was not properly displaying the value of ISQL NUMERIC data items in the TYPE and DUMP commands. It typically displayed +0 even when the value was not zero. 9. The debugger TYPE command was displaying random values for unitialized storage for DATE, TIME, TIMESTAMP, and INTERVAL data items. 10. The compiler was not correctly enforcing the rules found in "TABLE 25. Legality of Types of MOVE Statements" in the Language Reference Manual, resulting in some cases where bad code was generated or the runtime system did not handle the invalid move. The same was true for the MOVE command in the debugger. This table is now enforced. 11. The compiler was not handling several ambiguous cases involving the reserved word TO when specifying an INTERVAL literal. For example, the following MOVE statement is correct: MOVE INTERVAL "2000" YEAR TO WS-YM-INTVL but it gave an error at WS-YM-INTVL that the beginning or end of an interval range was expected there. The compiler assumed the TO was part of a range specification (YEAR TO MONTH) instead of recognizing that the it was the TO that precedes the destination operands in the MOVE. The compiler now resolves the ambiguity by looking ahead for a valid end of range reserved word and if it does not find one, the interval is assumed to have a single field. Changes and New features in 5.25 -------------------------------- 1. DATE, TIME, TIMESTAMP, and INTERVAL literals are now supported as the source operand in the MOVE command in the debugger. 2. The range of values used by debugger messages in runerr.h has changed. For those who may be using custom translations of the messages, the translation input will need to be adjusted and system.ms will need to be rebuilt. **** Revision 5.24 **** Bug Fixes in 5.24 ----------------- 1. The compiler was not correctly handling MOVE of date-time and interval data items when there were multiple TO arguments. Sometimes this would result in an unexpected error and sometimes it was generating bad code. 2. The Language Reference Manual was corrected with respect to the type resulting rom the difference of two DATE values in an expression - the correct type is a date-time interval not a year-month interval. 3. An OPEN where the filename had lengthy extended open options could cause a stack corruption in the runtime system. At times this would result in an unexpected Illegal Filename error, but it could lead to a runtime system crash. This bug first appeared in 5.20. Changes and New features in 5.24 -------------------------------- 1. Under Windows, ICINFO has been updated to find both 32 and 64 bit Flexus SP2 .dlls when using -G f. **** Revision 5.23 (updated) **** Bug Fixes in 5.23.01 ODBC Driver -------------------------------- 1. Some older ODBC calls were inadvertently optimized out of the build because they were no longer directly referenced. Bug Fixes in 5.23 ------------------ 1. When using client-server i/o where the client was a different bit width than the server (32 -> 64 or 64 -> 32), sequential file opens would fail and cause the surrogate process to terminate. The fix will allow earlier 5.xx clients to work correctly with a 5.23 or later server and a 5.23 or later client will operate with an earlier 5.xx 32-bit server only. Compatibility Matrix: Server -> IC4 5.00-5.22 5.00-5.22 5.23 5.23 32-bit 32-bit 64-bit 32-bit 64-bit Client IC4 32-bit Yes Yes* Err* Yes* Yes* 5.00-5.22 32-bit N/S Yes Err Yes Yes 5.00-5.22 64-bit N/S Err Yes Yes Yes 5.23 32-bit N/S Yes Err Yes Yes 5.23 64-bit N/S Yes Err Yes Yes N/S - not supported Err - will get this error that was fixed *NOTE: ic4 must set ICNETUSESHEARTBEAT=1 to force IC4 to use a protocol revision that is above he IC5 minimum revision. 2. A number of ODBC 2 compatible calls that worked pre 5.xx were returning an error. Some applications connecting as ODBC 3 applications still used the outdated calls and were failing. 3. Fixed a problem where iccreate was not correctly creating version 8 indexed files. Changes and New features in 5.23 -------------------------------- 1. Under Windows, Flexus SP2 has been updated. For more see the readsp2.txt. **** Revision 5.22 **** Bug Fixes in 5.22 ------------------ 1. When using the compiler or compling in ICIDE, the compiler could crash if an undefined identifer was referenced in the argument list of a function. 2. When using the debugger, the runtime could crash due to an incorrect memory allocation in the debugger. Changes and New features in 5.22 -------------------------------- 1. Under Windows, Flexus SP2 and QPR have been updated. For more see the readsp2.txt. **** 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 20. *> #table elements (input) 02 CUR-COUNT PIC 9(4) COMP-5 VALUE 0. *> actual count (output) 02 INFO-TBL OCCURS 20 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. **** Revision 5.12 **** Bug Fixes in 5.12 ------------------ 1. Under Windows, Flexus SP2 and QPR have been updated. For more see the readsp2.txt. Changes and New features in 5.12 -------------------------------- 1. Under Windows, ICINFO should be able to detect Windows 8.1 and Windows 10 versions. 2. An environment variable was added to control the connection timeout in the IC_SEND_MAIL builtin and the default timeout was changed from "wait forever" to 45 seconds. Use ICSMTPTIMEOUT=nnn where nnn is in 10ths of seconds ranging from 1 to 65535, with 65535 meaning "wait forever". 3. The connection algorithm in the IC_SEND_MAIL builtin was changed to implement a retry algorithm FOR INSECURE SOCKETS ONLY. The algorithm starts with a short timeout and progressively increases each time it fails until the total timeout period has elapsed. 4. A new environment variable was added in Windows that affects how the keyboard handler in ICRUN(W) and ICRUNRC interprets the Del key on the numeric keypad when NumLock is on (the key labeled with a period above the word 'Del' on a US keyboard). By setting the environment variable ICVKDECIMAL to a different character, the specified character will be returned instead of a period. Command Prompt example: > SET ICVKDECIMAL=, > icrun will now return a comma instead of a period in ICOBOL screens. **** Revision 5.11 **** Bug Fixes in 5.11 ------------------ 1. The runtime system and ICSORT had a bug that could cause the program to "core dump" when performing sorts that required multiple merge passes. 2. The compiler was not correctly reporting cases where indivdual data records or the combined size of all data exceeded the system limit of 16 MB. This would result in an Internal Error in the compiler during the data allocation phase. 3. When ICLOG was used to enable or diable logging, some parts of the file headers were not being updated correctly, resulting in corrupted headers. 4. The ICLOG utility was not correctly decoding the compressed log records when applying them, leading to a corrupt data file 5. When ICLOG was being used to enable or disable logging and certain errors occured during the process, the .xl file was being left "open" in the shared area, requiring ICEXEC to be restarted. 6. When ICCHECK was being used to check a file with logging enabled, it was incorrectly reporting some inconsistency errors when in fact the file was good. Changes and New features in 5.11 -------------------------------- 1. Under Windows, the Sentinel Driver has been updated to version 7.5.9. **** Revision 5.10 **** Bug Fixes in 5.10 ----------------- 1. Under Windows, ICEDCFW in System Configuration, System paramters was not always detecting changes. 2. The runtime system had a bug when fetching the value of 8-byte COMP-5 data items, resulting in bad data. (8-byte items have 10-18 decimal digits.) The bug affects version 4.80-4.87 and 5.00-5.09. Example: PIC S9(15)V99 COMP-5. Changes and New features in 5.10 -------------------------------- None. **** Revision 5.09 **** Bug Fixes in 5.09 ----------------- 1. Under Windows, ICINFO help had a misspelled word, and was incorrectly looking for icrun.dll instead of icrun32.dll. 2. Under Windows, some SP2 and FormPrint fixes. See readsp2.txt for more information. Changes and New features in 5.09 -------------------------------- 1. Two new builtin calls were added: IC_LEFT and IC_RIGHT. The IC_LEFT builtin trims leading and trailing white space from the source argument and stores it left-justified in the destination argument, while the IC_RIGHT stores it right-justified in the destination argument. The syntax is: CALL "IC_LEFT" USING source, destination or CALL "IC_RIGHT" USING source, destination Where source is a PIC X(n) and holds the string to trimmed and moved. destination is a PIC X(n) to receive the trimmed and justifed string. Use of either builtin requires version 5.09 or greater of the runtime. Any error will result in a non-zero exception status and the ON EXCEPTION clause, if present, to be executed. **** Revision 5.08 **** Bug Fixes in 5.08 ----------------- 1. The Windows runtime system would sometimes fail to start and return: Error: Access to the file or device is denied (oserr=5): Signal Event Changes and New features in 5.08 -------------------------------- 1. The Windows installer was changed to not install ICEXEC and ICSVCMGR when just the ODBC driver is installed. **** Revision 5.07 **** Bug Fixes in 5.07 ----------------- 1. ICPERMIT was not correctly returning license options for ICOBOL 4 client requests. This could be adversely effecting ICODBC. Changes and New features in 5.07 -------------------------------- None. **** Revision 5.06 **** Bug Fixes in 5.06 ----------------- 1. On 64-bit systems, the runtime was not properly resolving EXTERNAL data items with the result that changes to an external item were not reflected in all the programs that referenced the item. 2. The ICPCQDIR environment variable was not being processed correctly with the result that print files were being created in the current working directory rather than the directory specified by ICPCQDIR. Changes and New features in 5.06 -------------------------------- None. **** Revision 5.05 **** Bug Fixes in 5.05 ----------------- 1. Under Windows, ICPERMIT could not authorize via a parallel port device. Would get Device not found, errnum=0. 2. ICCREATE was setting the Relative flag on an Indexed create resulting in an unusable file. 3. ISQL with EXECUTE USING could use the wrong data length when setting column values. 4. ICODBCDR could cause a memory fault or crash when setting data into columns, e.g., with an INSERT that used parameters. This bug was introduced in 4.80 and 5.00. 5. Under Linux, ICRUNRS was not correctly cleaning up its device resources in the shared area, which could eventually lead to an inability to start new runtimes. Changes and New features in 5.05 -------------------------------- None. **** Revision 5.04 **** Bug Fixes in 5.04 ----------------- 1. When using an ICOBOL 2 .cx files loading a 3-byte signed COMP value was not working. PIC S9(5) COMP, PIC S9(6) COMP 2. Fixes to ICREORG for some conversions from and to rev 5 and 6 files. Changes and New features in 5.04 -------------------------------- 1. ICREVUP has been enhanced to support converting ICISAM files version 5 and 6 to revision 7 or 8. (8 is the default). When provided an argument with a .xd extension, icrevup will first look to see if the file is a rev 5 or 6 file, then rename the file with a .bu extension as name.bu.xd/.nx. Then the file will be converted to a rev 7 or 8 file with the original name. Finally the .bu files will be renaned to .xd5/.nx5 or .xd6/.nx6. Linux hard links will be broken. Syntax: icrevup [option]... argument... -a[:aflag] Audit to icrevup.lg -A path[:aflag] Audit to path, or path\icrevup.lg if path is a directory -h | -? Display help text -q Quiet operation -r Always replace existing files (.cfi, .tdi, .pti files) -M cffile Use Master Console information from cf file when processing .td files -V 7|8 Target version for Indexed and Relative ISAM files default is version 8) arg Pathname (with extension) to the file to convert. Wildcards are allowed. Example: icrevup -V 7 *.xd would convert all rev5 and rev6 ICISAM files in the current directory to rev7 files and leave the old files as name.xd5/nx5 or name.xd6/nx6. **** Revision 5.03 **** Bug Fixes in 5.03 ----------------- 1. Minor updates in the Windows installer including handling upgrades from ICOBOL 2 and 3 properly. 2. Under Windows, ICINFO was not printing out disk space correctly for >1TB drives. 3. The sample Logon program was not showing disk space correctly for >1TB drives. 4. The runtime system was not correctly handling the EXTEND option for disk files associated with a PCQ. Changes and New features in 5.03 -------------------------------- 1. The IC_SEND_MAIL builtin has been enhanced to support email addresses as "Sample Name ". **** Revision 5.02 **** Bug Fixes in 5.02 ----------------- 1. The documentation for ICSDMODE was showing "drawlines" as an option instead of "linedraw". 2. Various fixes in ICCREATE, ICCHECK, and ICFIXUP for creating, detecting, and fixing isam files. Changes and New features in 5.02 -------------------------------- None. **** Revision 5.01 **** Bug Fixes in 5.01 ----------------- 1. ICCHECK could erroneously report "Node entry count is too big" on the .nx file and mark the file as unreliable. Changes and New features in 5.01 -------------------------------- None. **** Revision 5.00 **** Bug Fixes in 5.00 ----------------- 1. Fixed ICSTAT display information. 2. Under Windows, ICPERMIT could not always recognize a valid USB protection device. 3. The compiler was crashing when it saw a SET id without the UP, DOWN, TO syntax. 4. ICPERMIT was not always correctly showing connect time when the -O v -V t option was used. 5. When compiling a program with a large set of initial values an error "Insufficient Memory: Init Space" could have been given. 6. When displaying the values of EXTERNAL variables in the debugger, the value of the wrong item was sometimes displayed. Changes and New features in 5.00 -------------------------------- 1. The 64-bit Linux installic script checks that it is on a 64-bit os. 2. There is no 64-bit ICSP2 or ICQPRW. Use the 32-bit versions. Panels can be moved between 32-bit and 64-bit versions. 3. The ACCEPT FROM ENVIRONMENT has additional systems codes: 01 ENV-STRUCTURE. 02 SYSTEM-CODE PIC 99. 88 IC-AOSVS VALUE IS 01. 88 IC-AOSVSII VALUE IS 04. 88 IC-MSDOS VALUE IS 30. 88 IC-386UNIX VALUE IS 31. 88 IC-DGUX-88K VALUE IS 34. 88 IC-AIX-RS VALUE IS 39. 88 IC-SUN-SPARC VALUE IS 40. 88 IC-HPUX-PA-RISC VALUE IS 41. 88 IC-MOTOROLA-88K VALUE IS 43. 88 IC-STRATUS-860 VALUE IS 44. 88 IC-LINUX-INTEL32 VALUE IS 45. (old IC-LINUX-INTEL) 88 IC-DGUX-INTEL VALUE IS 47. 88 IC-SCO-UNIX-INTEL VALUE IS 48. 88 IC-UNIXWARE-INTEL VALUE IS 49. 88 IC-MACOSX VALUE IS 51. | 88 IC-LINUX-INTEL64 VALUE IS 52. 88 IC-WINDOWS-9X VALUE IS 60. 88 IC-WINDOWS-32 VALUE IS 61. (old IC-WINDOWS-NT-INTEL) | 88 IC-WINDOWS-64 VALUE IS 62. ... 4. Logon has been upgraded to support the new ENVIRONMENT codes. 5. Executables have a Windows (32-bit), Windows (64-bit), Linux (32-bit), or Linux (64-bit) headers. 6. The shared libraries (.so's/.dll's will have a 32 or 64 in them except for icodbc. Under Windows there will still be icodbcsu and icodbc32 for both versions. 7. On Linux, when ICNETD starts a surrogate it will be the same flavor (32 or 64-bit) as itself as the default. Both ICRUNRC and starting isqls have options to start in either flavor. Please see further down items 21 and 22. 8. There is no 64-bit Windows ICIDE, the 32-bit version will be installed. 9. Revision 8 ICISAM is implemented for INDEXED and RELATIVE files. Revision 8 files are limited to 4 giga-records instead of by the byte size of the file. Revision 8 files are NOT transportable back to previous ICOBOL versions. All ISAM utilities support revision 8 files. Revision 8 ICISAM is the default for newly created ICISAM files. ICREORG can be used to convert older files to revision 8 files and vice versa. (ICREVUP in 5.04 and up also.) 10. Newly created Revision 7 files will be 7.10. These are transportable back to ICOBOL 4. 11. Revision 5 and 6 ISAM files are ONLY supported by ICREORG (and ICREVUP in 5.04 and up). 12. ICCHECK and ICFIXUP have been overhauled. 13. Updated Linux ICINFO and TELL_SEM to show 32-bit or 64-bit in the header line. Under Windows, ICINFO now has a new option: -F exefile Shows the binary file type of the executable exefile. (Either Windows 32 bit or 64 bit.) The option is mutually exclusive with the -G and -N options. 14. The Indexed API has been renamed from icuser to icapi and is available as an option from Envyr. This library is either 32-bit or 64-bit in accordance with the bit width of the release that is installed. 15. The Linux install scripts have been overhauled. The new default directory layout attempts to follow current Linux conventions for component placement. The init.d script has also been designed to work with the "service" utility that is found in many Linux distributions. The scripts also create additional separation between the installed components that change from revision to revision and user-modified components (such as the configuration file) that should carry forward from revision to revision. 16. ICSORT and the internal sort/merge facilities can now handle sequential files > 4GB. For ICSORT, the -M memory size allows much larger sizes. 17. Sequential disk files can now be larger than 4GB. 18. Enhanced the create PDF capability. In the pdf config, when you enable a background form (i.e. you enter a value for Background Form) there are a couple of new entries that appear. UseOnce: Y/N Y=use the background form one time (i.e., like a cover page - even though it can be a multiple page form) N=old behavior (MultiPart field appears) (Default) When UseOnce is Y, the ReuseLastPage field appears and the MultiPart field is hidden or greyed out. ReuseLastPage: Y/N Y=once the form has been used, reuse the last page of the form for all the remaining pages. When used with a 1-page form, the effect is the same as UseOnce=N. N=once the form is used, print remaining pages with no form. ReuseLastPage is useful to have a unique first page. Example: a 2 page form where the first page has company info at the top then the lines to create a table with columns for printing order entries. The second page (and any following pages) just has the table outline. Note that the print subdirectory under ICROOT is no longer used to find .pdf forms files. Either ICCONFIGDIR or the working directory is used. All .pdf form examples can now be found in the examples/print directory. 19. The ICWEBMSG utility is now part of the standard installation. Under Linux, ICWEBMSG does not use the icsys shared object, so it can be run on a system without a full ICOBOL installation. Under Windows, ICWEBMSG does require icsysNN.dll, iclibeayNN.dll, and icssleayNN.dll, where NN is 32 or 64 depending on the system. 20. IC_SEND_MAIL has been enhanced to support SSL connections. Set the ICSMTPSSLPORT environment entry to the mail server's SSL port to enable this feature. If the SSL port cannot be opened it will try using the standard port as set by ICSMTPPORT. Additional errors: 2127 The secure mail server port was not valid (ICSMTPSSLPORT environment variable) 2128 The STARTTLS command failed because TSL was temporarily unavailable 2129 The smtp/pop3 server connection could not be secured with SLL or TLS 2130 SMTP Authorization doesn't support the available methods If you get an error 2129 and you are using the ICSMTPSSLPORT entry try removing that entry and using the standard ICSMTPPORT entry as the SMTP port may be using STARTTLS to switch into SSL/TLS mode. 21. ICRUNRC has been enhanced to allow for a specifc 32 or 64-bit surrogate when connecting to a capable icnetd. The -B 32 or -B 64 switch can be used. 22. For an isqls connection use @icnet32 or @icnet64 to access the appropriate version of the isql surrogate. 23. Updated Windows and Utilities documentation. 24. Under Windows, using the /r (Record) switch to the Installer will start the installer in Record mode. This works like a fresh (new) install and steps thru the install screens. At the end it prompts for a location to save the recorded steps. The defaults are the current users Documents folder. The default names are: MasterSettings.ini, RuntimeSettings.ini, or ThinClientSettings.ini. Using the command line /S: will execute the installer silently with the provided recorded steps. Use of the Start /wait will cause a command prompt to wait for the installer to finish. 25. Implemented password-protected PDFs using extended open options: filename [,x=pdf[,f=][,p=userpw[|ownerpw]] When the password option is specified, resulting pdf file is marked as a secure pdf and and encrypted. A password must be used to open the .pdf file. When only the user password is supplied, it is also used for the owner password, so when the pdf is opened, the user will have total access. When both passwords are supplied, the rights are controlled by which password is used. The owner password has all rights, which includes the ability to change the passwords. When a password is given Document Security is set in the .PDF with Security Method set to Password Security. Security Method: Password Security The user password has the following set of rights: Printing: Yes Changing the Document: No Document Assembly: No Content Copying: Yes Content Copying for Accessibility: Yes Page Extraction: No Commenting: Yes Filling Form Fields: Yes Signing: Yes Creation of Template Pages: No The maximum password is 32 bytes and the minimum password is 5 bytes, otherwise a exception 133 "The parameter string is not valid for this object" will be given". 26. Licensing changes for ICOBOL 5 licenses. All licenses will be ANYWHERE licenses, licenses can be used across environments. (no cross option) All runtimes support pdf/icsql. (no pdf option bit, no separate icsql license) All client/server conections (ICNET) require a Network Server license. (no separate iclogs, icsqls, icrunrs licenses) icruncgi requires only an icrun license. (no icruncgi license) 27. Compiler (ICOBOL) now has a -R 7 option to generate ICOBOL 5 .cx files. USAGE IS POINTER now is an 8-byte entry when the -R 7 or greater switch is given. Previous USAGE IS POINTER variables will work when running in 32-bit mode but will fail when running on a 64-bit runtime. Revision 7 .cx files require ICOBOL 5.xx to run. 28. The IC_PDF_PRINT builtin has been enhanced with an optional third argument that can be used to specify the passwords to be used to protect the content of the file. See 25 above for more on password-protected pdf. ********************************************************** NOTICE: Previous ICOBOL 5 Beta versions should be uninstalled before installing a final ICOBOL 5. ********************************************************** Enhanced Auditing ----------------- All runtime executables and some others (ICNETD) support the following Enhanced Audting capabilities. (Added in 4.41 and updated in subsequent releases) 1. Complete Enhanced Auditing syntax. Enhanced auditing supports the following options: Syntax is: -a[:[aflag][:tflag][,tflag]...] Audit to .lg -A path[:[aflag][:tflag][,tflag]...] Audit to path, or path/.lg if path is a directory aflag is a|b|d|da|db|p|pa|pb|t|ta|tb|u|ua|ub a=append, b=backup, d=datestamp, p=process-id, t=timestamp, u=username tflag is ALL|ICNETD|IND|MPX|NET|PDF|PGM|REL|SEQ|SP2|SQL|SYSERRS|WEB ALL enables all sub-system enhanced tracing options. FILE provides statistics and tracing for lower level file operations (this is very verbose and mostly only useful when requested by Support) ICNETD provides enhanced tracing for ICNETD IND provides Indexed i/o statistics and open/close tracing MPX provides enhanced tracing when using network multiplex i/o from the runtime, iclogs, icrunrc, icodbcdr (any program that uses the network) NET provides for enhanced network tracing for any network traffic PDF provides enhanced tracing when using the PDF facility from the runtime PGM provides CALL/EXIT/CANCEL tracing, (including builtins) REL provides relative i/o statistics and open/close tracing SEQ provides sequential i/o statistics and open/close tracing SP2 provides enhanced tracing when using SP2 or QPR from the runtime or icrunrc SQL provides enhanced tracing when using ISQL from the runtime SYSERRS provides enhanced tracing for System errors WEB provides enhanced tracing when using any internet type facility like email from the runtime These trace flags for enhanced auditing should be used when requested by support or to track down a real problem as the logs can be very verbose. End of Readic5