=("Initialize_GetTitle") CALL Rxfuncadd 'SysLoadFuncs','RexxUtil','SysLoadFuncs' CALL SysLoadFuncs env = 'OS2ENVIRONMENT' TRUE = (1 = 1) FALSE = (0 = 1) CrLf = '0d0a'x Redirection = '> NUL 2>&1' GlobalVars = 'env TRUE FALSE CrLf Redirection' NepmdIni = '' RootDir = '' UserDir = '' GlobalVars = GlobalVars 'NepmdIni RootDir UserDir' DO 1 CALL FindInstallDirs CALL FindNepmdIni MainTitle = '%MAIN_TITLE_PREFIX%%STRING_VERSION_NEPMD%%MAIN_TITLE_SUFFIX%' /* Set state for tools packages to SELECT if not found in PATH */ Md5Exe = FindInPath( 'md5sum.exe') IF Md5Exe = '' THEN Md5Exe = FindInPath( 'md5suml.exe') IF Md5Exe = '' THEN Md5Exe = FindInPath( 'md5.exe') IF Md5Exe = '' THEN CALL SetVar 'Md5Select', 'SELECT' ELSE CALL SetVar 'Md5Select', '' LxliteExe = FindInPath( 'lxlite.exe') UnlockExe = FindInPath( 'unlock.exe') IF LxliteExe = '' | UnlockExe = '' THEN CALL SetVar 'LxliteSelect', 'SELECT' ELSE CALL SetVar 'LxliteSelect', '' WptoolsDll = FindLibPath( 'wptools.dll') IF WptoolsDll = '' THEN CALL SetVar 'WptoolsSelect', 'SELECT' ELSE CALL SetVar 'WptoolsSelect', '' Etke603Dll = FindLibPath( 'etke603.dll') IF ETke603Dll = '' THEN CALL SetVar 'OldBinsSelect', 'SELECT' ELSE CALL SetVar 'OldBinsSelect', '' /* Query settings from NEPMD.INI or defaults.cfg */ next = GetConfigValue( '\NEPMD\User\ProgramObjects\OpenSameWindow') IF next = '' THEN next = 1 OptionRVal = '' IF next = 1 THEN OptionRVal = '/r' CALL SetVar 'OptionR', OptionRVal next = GetConfigValue( '\NEPMD\User\ProgramObjects\OmitOpenBox') IF next = '' THEN next = 1 OptionOVal = '' IF next = 1 THEN OptionOVal = '/o' CALL SetVar 'OptionO', OptionOVal next = GetConfigValue( '\NEPMD\User\ProgramObjects\StartupDir') IF next = '' THEN next = '?:\' StartupDirVal = next CALL SetVar 'StartupDir', StartupDirVal /* Assemble program object strings (concatenating strings and vars is not possible with WarpIN) */ OptionROVal = strip( OptionRVal OptionOVal) Setup = , "PROGTYPE=PM;EXENAME=?:\OS2\EPM.EXE;PARAMETERS="OptionROVal";STARTUPDIR="StartupDirVal";" ||, "ASSOCTYPE=Plain Text,Command File,DOS Command File,C Code;" ||, "ASSOCFILTER=*.CMD,*.DAT,*.DOC,*.INI,*.TXT,CONFIG.SYS;" ||, "HELPLIBRARY=$(1)\netlabs\help\nefld%NLS%.hlp;HELPPANEL=101;" ||, "OBJECTID=;" NepmdEpm = , 'CREATEOBJECT="WPProgram|%TITLE_NEPMD_EPM%||'Setup'"' CALL SetVar 'NepmdEpm', NepmdEpm Setup = , "PROGTYPE=PM;EXENAME=?:\OS2\EPM.EXE;PARAMETERS="OptionOVal";STARTUPDIR="StartupDirVal";" ||, "HELPLIBRARY=$(1)\netlabs\help\nefld%NLS%.hlp;HELPPANEL=101;" ||, "OBJECTID=;" NepmdEpmNewWindow = , 'CREATEOBJECT="WPProgram|%TITLE_NEPMD_EPM_NEW_WINDOW%||'Setup'"' CALL SetVar 'NepmdEpmNewWindow', NepmdEpmNewWindow Setup = , "PROGTYPE=PROG_WINDOWABLEVIO;EXENAME=$(1)\netlabs\bin\epmshell.cmd;PARAMETERS="OptionOVal";" ||, "MINIMIZED=YES;HELPLIBRARY=$(1)\netlabs\help\nefld%NLS%.hlp;HELPPANEL=101;" ||, "OBJECTID=;" NepmdEpmShell = , 'CREATEOBJECT="WPProgram|%TITLE_NEPMD_EPM_SHELL%||'Setup'"' CALL SetVar 'NepmdEpmShell', NepmdEpmShell Setup = , "PROGTYPE=PM;EXENAME=?:\OS2\EPM.EXE;PARAMETERS=/i "OptionOVal";STARTUPDIR="StartupDirVal";" ||, "HELPLIBRARY=$(1)\netlabs\help\nefld%NLS%.hlp;HELPPANEL=101;" ||, "OBJECTID=;" NepmdEpmTurbo = , 'CREATEOBJECT="WPProgram|%TITLE_NEPMD_EPM_TURBO%||'Setup'"' CALL SetVar 'NepmdEpmTurbo', NepmdEpmTurbo Setup = , "PROGTYPE=PM;EXENAME=?:\OS2\EPM.EXE;PARAMETERS="OptionROVal";STARTUPDIR="StartupDirVal";" ||, "ASSOCFILTER=*.E;HELPLIBRARY=$(1)\netlabs\help\nefld%NLS%.hlp;HELPPANEL=101;" ||, "OBJECTID=;" NepmdEpmE = , 'CREATEOBJECT="WPProgram|%TITLE_NEPMD_EPM_E%||'Setup'"' CALL SetVar 'NepmdEpmE', NepmdEpmE Setup = , "PROGTYPE=PM;EXENAME=?:\OS2\EPM.EXE;PARAMETERS="OptionROVal" 'editmacrofile %*';STARTUPDIR="StartupDirVal";" ||, "ASSOCTYPE=EX File;ASSOCFILTER=*.EX;" ||, "HELPLIBRARY=$(1)\netlabs\help\nefld%NLS%.hlp;HELPPANEL=101;" ||, "OBJECTID=;" NepmdEpmEditMacroFile = , 'CREATEOBJECT="WPProgram|%TITLE_NEPMD_EPM_EDIT_MACROFILE%||'Setup'"' CALL SetVar 'NepmdEpmEditMacroFile', NepmdEpmEditMacroFile Setup = , "PROGTYPE=PM;EXENAME=?:\OS2\EPM.EXE;PARAMETERS="OptionROVal";STARTUPDIR="StartupDirVal";" ||, "ASSOCFILTER=*.ERX;HELPLIBRARY=$(1)\netlabs\help\nefld%NLS%.hlp;HELPPANEL=101;" ||, "OBJECTID=;" NepmdEpmErx = , 'CREATEOBJECT="WPProgram|%TITLE_NEPMD_EPM_ERX%||'Setup'"' CALL SetVar 'NepmdEpmErx', NepmdEpmErx Setup = , "PROGTYPE=PM;EXENAME=?:\OS2\EPM.EXE;PARAMETERS="OptionROVal";STARTUPDIR="StartupDirVal";" ||, "ASSOCFILTER=*.TEX,*.LTX,*.DTX;HELPLIBRARY=$(1)\netlabs\help\nefld%NLS%.hlp;HELPPANEL=101;" ||, "OBJECTID=;" NepmdEpmTex = , 'CREATEOBJECT="WPProgram|%TITLE_NEPMD_EPM_TEX%||'Setup'"' CALL SetVar 'NepmdEpmTex', NepmdEpmTex Setup = , "PROGTYPE=PM;EXENAME=?:\OS2\EPM.EXE;PARAMETERS="OptionOVal" 'binedit %*';STARTUPDIR="StartupDirVal";" ||, "ASSOCTYPE=Executable;HELPLIBRARY=$(1)\netlabs\help\nefld%NLS%.hlp;HELPPANEL=101;" ||, "OBJECTID=;" NepmdEpmBin = , 'CREATEOBJECT="WPProgram|%TITLE_NEPMD_EPM_BIN%||'Setup'"' CALL SetVar 'NepmdEpmBin', NepmdEpmBin /* Conditional object creation */ /* Default values are empty. That means: don't create an object. */ ShellShadowInPrompts = '' ShellShadowInXwpPrompts = '' IF ObjectExists( '') THEN ShellShadowInPrompts = , 'CREATEOBJECT="WPShadow|.||' ||, 'SHADOWID=;OBJECTID=;"' CALL SetVar 'ShellShadowInPrompts', ShellShadowInPrompts IF ObjectExists( '') THEN ShellShadowInXwpPrompts = , 'CREATEOBJECT="WPShadow|.||' ||, 'SHADOWID=;OBJECTID=;"' CALL SetVar 'ShellShadowInXwpPrompts', ShellShadowInXwpPrompts END RETURN( MainTitle) /* Returns 1 if a WPS object exists, otherwise 0 */ ObjectExists: PROCEDURE EXPOSE (GlobalVars) PARSE ARG Object IF Object = '' THEN RETURN( 0) rcx = SysSetObjectData( Object, '') RETURN( rcx) /* FileExists */ FileExists: PROCEDURE EXPOSE (GlobalVars) PARSE ARG Filename IF FileName = '' THEN RETURN( 0) ELSE RETURN( STREAM( Filename, 'C', 'QUERY EXISTS') <> '') /* FindInPath */ FindInPath: PROCEDURE EXPOSE (GlobalVars) PARSE ARG File IF File = '' THEN RETURN( '') /* Add extension, if missing */ lp = LASTPOS( '.', File) if \(lp > 1) then File = File'.exe' FoundFile = SysSearchPath( 'PATH', File) RETURN( FoundFile) /* GetBootDrive */ GetBootDrive: PROCEDURE EXPOSE (GlobalVars) IF \RxFuncQuery( 'SysBootDrive') THEN BootDrive = SysBootDrive() ELSE PARSE UPPER VALUE VALUE( 'PATH',, env) WITH ':\OS2\SYSTEM' -1 BootDrive +2 RETURN( BootDrive) /* This is used here for CONFIG.SYS and DEFAULTS.CFG parsing */ GetTextIniValue: PROCEDURE EXPOSE (GlobalVars) PARSE ARG File, ApplicationList, Key Entry = '' IF ApplicationList = '' THEN ApplicationList = 'ALL:' Application = '' next = STREAM( File, 'C', 'OPEN READ') DO WHILE CHARS( File) > 0 line = LINEIN( File) SELECT WHEN LEFT( line, 1) = ';' THEN NOP WHEN STRIP( line) = '' THEN NOP WHEN LEFT( line, 1) = '[' THEN DO p2 = POS( ']', line) IF p2 > 0 THEN DO nextApplication = SUBSTR( line, 2, p2 - 2) IF WORDPOS( nextApplication, ApplicationList) > 0 | ApplicationList = 'ALL:' THEN Application = nextApplication ELSE Application = '' /* nextApplication is other, reset Application */ END END OTHERWISE PARSE VALUE line WITH nextKey '=' nextEntry /* it must be a 'Key = Entry' line */ nextKey = STRIP( nextKey) nextEntry = STRIP( nextEntry) IF ApplicationList <> 'ALL:' & Application = '' THEN ITERATE IF nextKey = '' THEN ITERATE IF nextKey = Key THEN DO Entry = nextEntry LEAVE /* key found */ END END END rc = STREAM( File, 'C', 'CLOSE') RETURN( Entry) /* FindLibPath */ FindLibPath: PROCEDURE EXPOSE (GlobalVars) PARSE ARG DllName DllFullName = '' BootDrive = GetBootDrive() LibpathDirs = GetTextIniValue( BootDrive'\config.sys', '', 'LIBPATH') fFunctionFound = 0 IF \RxFuncQuery( 'SYSQUERYEXTLIBPATH') THEN fFunctionFound = 1 IF fFunctionFound = 1 THEN BeginLibpathDirs = SysQueryExtLIBPATH( 'B') ELSE DO 'CALL RXQUEUE /CLEAR' 'SET BEGINLIBPATH|RXQUEUE /FIFO' PARSE PULL BeginLibpathDirs PARSE VALUE BeginLibpathDirs WITH . '=' BeginLibpathDirs END IF BeginLibpathDirs = '(null)' THEN BeginLibpathDirs = '' IF fFunctionFound = 1 THEN EndLibpathDirs = SysQueryExtLIBPATH( 'E') ELSE DO 'CALL RXQUEUE /CLEAR' 'SET ENDLIBPATH|RXQUEUE /FIFO' PARSE PULL EndLibpathDirs PARSE VALUE EndLibpathDirs WITH . '=' EndLibpathDirs END IF EndLibpathDirs = '(null)' THEN EndLibpathDirs = '' IF \(fFunctionFound = 1) THEN 'CALL RXQUEUE /CLEAR' IF BeginLibpathDirs > '' THEN LibpathDirs = STRIP( BeginLibpathDirs, 'T', ';')';'LibpathDirs IF EndLibpathDirs > '' THEN LibpathDirs = STRIP( LibpathDirs, 'T', ';')';'EndLibpathDirs rest = LibpathDirs DO WHILE rest <> '' PARSE VALUE rest WITH Dir';'rest next = Dir'\'DllName IF FileExists( next) THEN DO DllFullName = next LEAVE END END RETURN( DllFullName) GetConfigValue: PROCEDURE EXPOSE (GlobalVars) PARSE ARG KeyPath KeyVal = '' /* Search in NEPMD.INI -> RegKeys */ IF NepmdIni <> '' THEN DO 1 next = SysIni( NepmdIni, 'RegKeys', KeyPath) IF next = 'ERROR:' THEN LEAVE KeyVal = strip( next, 't', '00'x ) END /* Search in defaults.cfg */ IF KeyVal = '' & RootDir <> '' THEN DO 1 DefaultsCfg = STRIP( RootDir, 't', '\')'\netlabs\bin\defaults.cfg' KeyVal = GetTextIniValue( DefaultsCfg, '', KeyPath) END RETURN( KeyVal) FindInstallDirs: PROCEDURE EXPOSE (GlobalVars) /* UserDir and RootDir are global vars */ DO 1 next = SysIni( 'USER', 'NEPMD', 'UserDir') IF next = 'ERROR:' THEN LEAVE UserDir = strip( next, 't', '00'x ) END DO 1 next = SysIni( 'USER', 'NEPMD', 'RootDir') IF next = 'ERROR:' THEN LEAVE RootDir = STRIP( next, 't', '00'x ) END RETURN('') FindNepmdIni: PROCEDURE EXPOSE (GlobalVars) /* UserDir, RootDir and NepmdIni are global vars */ IF UserDir <> '' THEN NepmdIni = STRIP( UserDir, 't', '\')'\bin\NEPMD.INI' ELSE DO IF RootDir <> '' THEN NepmdIni = STRIP( RootDir, 't', '\')'\myepm\bin\NEPMD.INI' END RETURN('') /* Makes variable available to procedures, */ /* WarpIN macro space and external programs */ SetVar: PROCEDURE EXPOSE (GlobalVars) PARSE ARG Varname, VarValue rc = WirexxPutEnv( Varname, VarValue) EnvVarName = TRANSLATE( 'WI_VAR_'VarName) rcx = VALUE( EnvVarName, VarValue, 'OS2ENVIRONMENT') RETURN('') PARSE ARG Varname VarValue = WirexxGetEnv( VarName) IF (0) THEN DO SAY '--------------------' SAY VarName SAY VarValue END RETURN( WirexxGetEnv( VarName)) %BUTTON_NEXT% %BUTTON_NEXT% %BUTTON_NEXT% %BUTTON_NEXT% %BUTTON_NEXT%