CVTRPGFREE takes the following parameters:
| Parameter | Description | Notes |
|---|---|---|
| FROMMBR | The source member to convert FROM | |
| FROMFILE | The qualified source file to convert FROM | |
| TOFILE | The qualified source file to convert TO | |
| TOMBR | The source member to convert TO | |
| INDINC | Indentation increment | The number of spaces to indent code by (2, 3, or 4) - defaults to 3 |
| INDCMT | Indent comments? | Whether to indent the start of the comments to correspond to the indentation of the source, or to leave them aligned as they are in the original source. |
| RETBLKCMT | Retain blank comment markers? | Whether to keep a comment marker for comment lines without any actual comments. N will remove the comment marker, leaving just a blank line. |
| RMVNONPRT | Remove non-printable characters? | Whether to remove non-printing characters from comments (previously used to change colours and highlight lines in SEU) |
| DIRECTIVES | Use '/Free' directives | Whether or not to insert /Free, /End-Free directives when switching between fixed and free-form RPG code. |
| CNVMOVE | Convert MOVE statements | Whether or not to convert MOVE statements to their free-form versions (see below) |
| CNVKLIST | Convert KLIST statements | Whether or not to convert KLIST (and KFLD) statements (see below) |
| SUPCNVMSGS | Suppress conversion messages | CVTRPGFREE inserts a message into the source for every line that cannot be converted, explaining the reason for the non-conversion. Setting this parameter to 'Y' suppresses those messages. |
If MOVE statements have been requested to be converted, the utility will convert the following:
All other MOVEs are deemed to be too dangerous to convert as they may be between variables of difference sizes and/or types, so are left for the developer to resolve manually.
If KLIST statements have been requested to be converted, a pre-pass of the original source is made, scanning for KLISTs, and recording the key fields that are used for each,
During the subsequent conversion process, whenever a KLIST name that is known to the utility is encountered, the KLIST name is substituted with the list of key fields instead.
When a KLIST that has been scanned and recorded is encountered, it is simply commented out and is left in as a reference.
NB: KLISTs with a field conditioning indicator in Factor 2 of any of the KFLD definitions is not converted.