=("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%