/* ------------------------------------------------------------------ */ /* ConvIni - convert an INI file to a REXX program */ /* */ /* (c) Copyright Bernd Schemmer 1996 */ /* */ /* Author: */ /* Bernd Schemmer */ /* Stalburgstr. 14 */ /* D-60318 Frankfurt am Main */ /* Germany */ /* Bernd.Schemmer@gmx.de */ /* */ /* History: */ /* 02.11.1996 /bs v1.00 */ /* - initial release */ /* */ /* Distribution: */ /* This code may be distributed freely and used in other programs. */ /* Please give credit where credit is due. */ /* If you need further help, feel free to contact me at the address */ /* noted above. */ /* */ /* Description: */ /* Convert an INI file or parts of it to a REXX program to recreate */ /* the INI file or parts of it */ /* */ /* */ /* Usage: */ /* ConvIni iniFile rexxPrg [{app1} {...} {app#} |#1-#2] */ /* {/L:logfile} {/H} {/Silent} {/NoSound} {/NoAnsi} */ /* {/Trace} */ /* */ /* Where: */ /* IniFile - fully qualified name of the INI file */ /* or 'USER' for the file OS2.INI */ /* or 'SYSTEM' for the file OS2SYS.INI */ /* */ /* rexxPrg - fully qualified name of the output REXX program */ /* ConvIni does not override an existing program! */ /* */ /* app1... app# */ /* - Application entries to write to the REXX program */ /* (surround entries with imbedded blanks with " or ') */ /* or #1-#2 where #1 is the number of the first */ /* application to convert and #2 is the number of the */ /* last application to convert. Use -1 for #2 to match */ /* the number of applications in the file. */ /* This parameter is optional, if it is ommitted, */ /* ConvIni writes the data of all applications to */ /* the output file. */ /* */ /* /L:logFile - logfile is the name of the logfile :-) */ /* This parameter is case-sensitive! */ /* def.: do not use a logfile */ /* */ /* /H - show usage, you may also use */ /* /h, /?, /HELP, -h, -H, -HELP or -? */ /* */ /* /Silent - suppress all messages (except error messages) */ /* You should also use the parameter /L:logfile if you */ /* use this parameter! */ /* You may also set the environment variable SILENT to */ /* "1" to suppress all messages. */ /* */ /* /NoSound - suppress all sounds. You may also set the */ /* environment variable SOUND to "0" to suppress the */ /* sounds. */ /* */ /* /NoAnsi - do not use ANSI codes. You may also set the */ /* environment variable ANSI to "0" to suppress the */ /* use of ANSI codes. */ /* */ /* /Trace - turn TRACE on before calling MAIN. You may also */ /* set the environment variable RXTTRACE to ON to */ /* turn the TRACE mode for MAIN on. */ /* */ /* */ /* returncodes: */ /* 0 - execution okay */ /* 1 - parameter missing */ /* 2 - ini file not found */ /* 3 - REXX program already exist */ /* 4 - Error reading the ini file */ /* */ /* 240 ... 252 */ /* reserved for the runtime system */ /* 253 - syntax help called (parameter /h) */ /* 254 - user break (CTRL-C) */ /* 255 - internal runtime system error */ /* */ /* Notes: */ /* Ensure that no othter application uses the INI file to convert */ /* while ConvIni is running! */ /* */ /* To speed up the program I strongly suggest that you use an INI */ /* file on a RAM Disk! */ /* */ /* Be aware, that the size of the REXX program to recreate the */ /* OS2.INI can be 3 MB and greater! */ /* */ /* Due to a bug in the SysIni function it may not be possible to */ /* convert a big INI file with one call. */ /* In this case you may use more than one call to ConvIni and merge */ /* the resulting CMD files. */ /* */ /* Example: */ /* You have an INI file called myfile.ini with 500 applications. */ /* To convert it use the following calls */ /* */ /* ConvIni myfile.ini myPrg1.cmd 1-200 */ /* ConvIni myfile.ini myPrg2.cmd 201-400 */ /* ConvIni myfile.ini myPrg3.cmd 401-500 */ /* */ /* Now merge the stems from myPrg1.cmd, myPrg2.cmd and myPrg3.cmd */ /* into one stem. */ /* Note that you must use a new session for every call to */ /* ConvIni. */ /* */ /* */ /* Based on TEMPLATE.CMD v3.05, TEMPLATE is (c) 1996 Bernd Schemmer, */ /* Stalburgstr 14, 60318 Frankfurt, Germany, Bernd.Schemmer@gmx.de */ /* ------------------------------------------------------------------ */ call trace 'off' /* turn interactive trace off */ global. = '' /* init the stem global. with '' */ /*** change the following values to your need ***/ global.__Version = 1.0 /* Version of YOUR program */ global.__SignOnMsg = 1 /* set to 0 if you do not want the */ /* program start and end messages */ global.__NeedCID = 0 /* set to 1 if you need CID support */ global.__NeedColors = 1 /* set to 1 if you want colored msgs */ global.__NeedPatchCheck = 0 /* set to 1 if you want the program */ /* to search for a patched version of */ /* this program */ /* set default values for EXPOSELIST if necessary */ /* exposeList = '' */ /* name of the routine for the message handling */ /* Note: Use '' for hardcoded messages */ /* global.__GetMsg = '' */ /* base number for the message numbers (def.: 1000) */ /* global.__BaseMsgNo = 1000 */ /* parameter for convini (used in ShowUsage) */ global.__MyParms = 'iniFile rexxPrg [{app1} {...} {app#} | #1-#2]' /* note: set the variable prog.__STDOUT to "STDERR:" */ /* or "NUL" if your program is a filter program! */ prog.__STDOUT = 'STDOUT' /* necessary for Object REXX */ prog.__STDERR = 'STDOUT' /* necessary for Object REXX */ /*!*/ /*** End of variables to change ***/ /* HINT: The further program code is in the function MAIN */ /*** End of Part 1 of the source code of TEMPLATE.CMD ***/