/*REXX*/ /* TRACE R */ /*---------------------------------------------------------------------------------------- This macro allows you to 'SUBMIT' the currently edit code for execution by typing SUB on the Command line. SUB determines how to execute the code based on the file extension i.e. ".html" Is currently Setup to work with: .ASM - Assembler - Sent to System OS (assumes there is a .com or .exe) .BAT - Batch(DOS) - Sent to OS command interpreter .c - C - Sent to SPFSE C interpreter .cs - C - Sent to System OS (assumes there is a .com or .exe) .CMD - REXX - Sent to PCDOS REXX Interpreter .FTP - FTP Script - Sent to Windows ftp engine .GIF - GIF Graphic - Sent to Internet Explorer .HTM - Sends page to Internet Explorer .HTML - Sends page to Internet Explorer .ISP - SPFPC/PRO REXX Editor Exec - Sent to SPFPC/PRO Interpreter .JPG - JPEG Graphic - Sent to Internet Explorer .JPEG - JPEG Graphic - Sent to Internet Explorer .JS - Javascript - Sent to Internet Explorer .LBS - Liberty BASIC - Sent to Liberty BASIC IDE .PAN - SPF/PCv3/4 ISPF Panels - Sent to SPFPC/SPFPRO .PBS - PowerBasic 3.5 - Sent to OS (assumes there is .com or .exe) .PBC - PowerBasic Concole Compiler (assumes there is .exe) .PDB - Palm Doc Book - Sent to DOCREADER .PDF - PDF Documents - Sent to Internet Explorer .PHP - PHP - Calls php page on web site .PRG - dBASE - Sent to dBase Interpreter .REX - REXX - Sent to OOREXX Interpreter .REXX - REXX - Sent to OOREXX Interpreter .SWF - ShockWave Flash - Sent to Internet Explorer .SPF - SPPPC/PRO REXX Macro - Sent to SPFPC/PRO Interpreter .ZBS - ZBASIC Interpiler(32 Bit Software) - Sent to OS (Assumes .COM) This SPFPRO/SPFPCv4 macro can be used by non-REXX integrated editors such as SPF/PC, SPFSE, SPFLite, XE. I suggest creating a batch program and passing parms to it. Example: @ECHO OFF ` REM ------------------------------------------------------------------- REM Call SUB.SPF - Presumes SUB.BAT is in command path somewhere REM ------------------------------------------------------------------- H:\U\PCDOS\REXX.EXE H:\U\SPFPC40\MACROS\SUB.SPF %1 %2 Examples: SPF/PC: TSO SUB c:\path\index.html SPFSE: You can use a User commnad or see SUB.C on SPF my web page. XE: DOS SUB c:\path\index.html This macro will work with OOREXX/R4 if you delete or comment out the SPF REXX specific code which would cause it to abort when scanned as OOREXX can not ignore the ISREDIT commands in SPF REXX. By Mark McDonald 04Jan2003 ----------------------------------------------------------------------------------------*/ /*--- Determine IF SPFPRO, SPFPC v4.x or Stand-alone REXX Interpreter ---*/ TSPF = XDETREXX() /*--- Determine Path of Browser for Interpreter ---*/ IF (TSPF = 0 | TSPF = 1 | TSPF = 4 )THEN TBROWSER = "H:\U\IE.EXE" /* USE FOR SPC/PC 4.x or Stand Alone REXX Interpreter*/ IF (TSPF = 5 | TSPF = 6 )THEN TBROWSER = "C:\Program Files\Internet Explorer\IEXPLORE.EXE " /* Use for SPFPRO/OOREXX */ /*--- Set vars ---*/ TDBASE = 'H:\U\DBASE\DBASE ' /*dBASE Interpreter*/ TDOCREADER = 'H:\U\DOCREADER.EXE ' /*PALM DOCReader*/ TJBASIC = "H:\U\JBASIC\JBASIC.EXE " /*JUST BASIC Interpreter*/ TLBASIC = "C:\LIBERTY\LIBERTY.EXE -R " /*LIBERTY BASIC Interpreter*/ TOOREXX = "H:\U\OOREXX\rexx.exe " /*OOREXX Interpreter*/ TR4 = "H:\U\R4\R4.EXE" /*R4 REXX Interpreter*/ TREXX = "H:\U\PCDOS\REXX.EXE " /*Classic REXX Interpreter*/ TSPFSE = 'H:\U\SPFSE\BIN\STANDARDEDITION60.EXE /S' /*SPFSE C Interpreter*/ TCHROME = 'C:\Documents and Settings\Compaq_Owner\Local Settings\Application Data\Google\Chrome\Application\chrome.exe ' /*--- This Section for SPFPRO/SPFPCv3/4 Only ---*/ IF (TSPF = 4 | TSPF = 5) THEN DO 'ISREDIT MACRO(PARMS)' 'ISREDIT (FILENAME) = DATASET' FULLNAME = TRANSLATE(FILENAME) 'ISREDIT (MEMBER) = MEMBER' 'ISREDIT (MODIFIED) = DATA_CHANGED' IF (MODIFIED=YES) THEN 'ISREDIT SAVE' END /*-- Retrieve Passed Prams if not SPFPRO/SPFPC REXX ---*/ IF (TSPF = 0 | TSPF = 1 | TSPF = 6) THEN DO PARSE UPPER ARG PARM1 PARMS FULLNAME = PARM1 END /*--- Breakout Filespec Info ---*/ FULLNAME = TRANSLATE(FULLNAME) MEMNAME = SUBSTR(FULLNAME,1,POS('.',FULLNAME) -1) MEMNAME = SUBSTR(MEMNAME,LASTPOS('\',MEMNAME)+1) TNAME = TRANSLATE(FILENAME,' ','\') EXENAME = SUBSTR(FULLNAME,1,LASTPOS('.',FULLNAME)-1) /*--- Get Extenstion of File Name ---*/ EXNT = TRANSLATE(SUBSTR(FULLNAME,POS('.',FULLNAME)+1,3)) /*--- Remove Source Extension From File Name ---*/ EXE = SUBSTR(FULLNAME,1,POS('.',FULLNAME) -1) /*--- Use internet browser to display? ---*/ IF POS(EXNT,"PHP") > 0 THEN DO SITEDATA.COUNCIL = "www.afge171.org" SITEDATA.DEFCON = "www.afgedefcon.org" SITEDATA.MANMRK = "www.manmrk.net" SITEDATA.3614 = "www.afge3614.org" SITEDATA.PWCAP = "www.pwcswy059.org" SITEDATA.MFE = "www.mcdonaldfamilyenterprises.com" SITEDATA.DENTAL = "www.andersondental.com" SITEDATA.EEOC = "www.afge216.org" SITEDATA.WYMC = "www.wymc.net" SITEDATA.3599 = "www.afge3599.org" SITEDATA.602 = "www.iam602.org" SITEDATA.WHEATLAND = "www.wheatlandtown.com" /*--- Determine Which Site I am Working ON (Note it does not matter how many sub directories down they are) ---*/ IF POS("\COUNCIL",TRANSLATE(FILENAME),1) > 1 THEN FTPSITE = "COUNCIL" IF POS("\DEFCON",TRANSLATE(FILENAME),1) > 1 THEN FTPSITE = "DEFCON" IF POS("\3614",TRANSLATE(FILENAME),1) > 1 THEN FTPSITE = "3614" IF POS("\602",TRANSLATE(FILENAME),1) > 1 THEN FTPSITE = "602" IF POS("\MANMRK",TRANSLATE(FILENAME),1) > 1 THEN FTPSITE = "MANMRK" IF POS("\MFE",TRANSLATE(FILENAME),1) > 1 THEN FTPSITE = "MFE" IF POS("\PWCAP",TRANSLATE(FILENAME),1) > 1 THEN FTPSITE = "PWCAP" IF POS("\ANDERSONDENTAL",TRANSLATE(FILENAME),1) > 1 THEN FTPSITE = "DENTAL" IF POS("\EEOC216",TRANSLATE(FILENAME),1) > 1 THEN FTPSITE = "EEOC" IF POS("\WYMC",TRANSLATE(FILENAME),1) > 1 THEN FTPSITE = "WYMC" IF POS("\3599",TRANSLATE(FILENAME),1) > 1 THEN FTPSITE = "3599" IF POS("\WHEATLAND",TRANSLATE(FILENAME),1) > 1 THEN FTPSITE = "WHEATLAND" /*--- Build URL ---*/ TWRDS = WORDS(TNAME) TWEBNAME = "http://"SITEDATA.FTPSITE DO CNT = 4 TO TWRDS BY 1 TWEBNAME = TWEBNAME"/"WORD(TNAME,CNT) END /*--- Pass URL to Browser --*/ TCMD = TBROWSER' 'TWEBNAME SIGNAL TEXEC END /*--- Use internet browser to display? ---*/ IF POS(EXNT,"HTML HTM PDF SWF JS JPG JPEG GIF") > 0 THEN DO TCMD = TBROWSER' 'FULLNAME SIGNAL TEXEC END /*---Just BASIC (JBS) Runtime? ---*/ IF EXNT = "BAS" THEN DO TCMD = TJBASIC' 'FULLNAME SIGNAL TEXEC END /*--- Liberty BASIC (LBS) Runtime? ---*/ IF EXNT = "LBS" THEN DO TCMD = TLBASIC' 'FULLNAME SIGNAL TEXEC END /*--- SPFSE C Macro? ---*/ IF (EXNT = "C" | EXNT = "DLG" ) & (TSPF = 4 | TSPF = 5) THEN DO TCMD = TSPFSE''MEMBER SIGNAL TEXEC END /*--- Classic REX? ---*/ IF EXNT = 'CMD' THEN DO TCMD = TREXX' 'FULLNAME' 'PARMS SIGNAL TEXEC END /*--- Display a SPFPC Panel? (SPFPRO/SPFPCv3/4 Only) ---*/ IF (EXNT = 'PAN' & (TSPF = 4 | TSPF = 5)) THEN DO 'ISPEXEC DISPLAY PANEL('MEMNAME')' EXIT 0 END /*--- Palm Doc? ---*/ IF EXNT = 'PDB' THEN DO TCMD = TDOCREADER' 'FULLNAME SIGNAL TEXEC END /*--- Power Basic Console Compiler? ---*/ IF EXNT = "PBC" THEN DO TCMD = FULLNAME".EXE" SIGNAL TEXEC END /*--- Executing a compiled program such as ZBASIC, PowerBasic(DOS), C, ASM? ---*/ IF POS(EXNT,'ZBS PBS CS ASM ',1) > 0 THEN DO TCMD = EXENAME' 'PARMS SIGNAL TEXEC END /*--- OOREXX Program? ---*/ IF (EXNT = 'REX' | EXNT = 'REXX') THEN DO TCMD = TOOREXX' 'FILENAME' 'PARMS SIGNAL TEXEC END /*--- Executing a DOS Batch Program? ---*/ IF EXNT = 'BAT' THEN DO TCMD = FILENAME' 'PARMS SIGNAL TEXEC END /*--- Executing a FTP Script ---*/ IF EXNT = 'FTP' THEN DO TCMD = 'FTP -s:'FILENAME SIGNAL TEXEC END /*--- Execute a Visual BASIC Module? ---*/ IF EXNT = 'VBS' THEN DO TCMD = 'C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\VB98\VB6.EXE 'FULLNAME' /runexit' IF WORDS(PARMS) > 0 THEN TCMD = TCMD ' /cmd' SIGNAL TEXEC END /*--- Executing a SPFPC REXX Program? -- This section will not work with OOREXX Comment it out ---*/ IF (TSPF = 4 | TSPF = 5) THEN DO IF EXNT = 'SPF' THEN DO FULLNAME PARMS EXIT END IF EXNT = 'ISP' THEN DO ADDRESS ISPEXEC 'select cmd('MEMNAME') parm('PARMS')' ADDRESS ISREDIT EXIT END END /*--- Executing a dBASE II/III/IV Program? ---*/ IF EXNT = 'PRG' THEN DO TCMD = TDBASE' 'FILENAME' 'PARMS SIGNAL TEXEC END /*--- Execute TCMD Command --*/ EXIT TEXEC: /*-- Pass Command to OS --------------------------------------------------*/ IF TSPF = 0 THEN ADDRESS COMMAND TCMD /*DOSREXX*/ IF (TSPF = 4 | TSPF = 5) THEN ADDRESS DOS TCMD /*SPFPC4/SPFPRO - Delete if using OOREXX*/ IF TSPF = 1 | TSPF = 6 THEN TCMD /*R4/OOREXX*/ EXIT 0 /*----------------------------------------------------------- Determines Version of REXX Interpreter -------------------------------------------------------------*/ XDETREXX: PROCEDURE parse version name level date1 date2 date3 /*--- Use this section to display REXX Interpreter Info ---*/ /* SAY name SAY level SAY date1 SAY date2 SAY date3 EXIT */ /*-- Determine which REXX interpreter is being used ---*/ TSPF = 0 /* Using a stand-alone REXX Interpreter DOSREXX*/ IF name = "REXXSAA" & date3 = "1994" THEN TSPF = 0 /* Using PCDOS REXX*/ IF name = "REXX-r4" THEN TSPF = 1 /* Using R4 */ IF name = "REXXPC88" & date3 = "1987" THEN TSPF = 2 /* Using REXXIBM (1987)*/ IF name = "REXX/Personal" & date3 = "1992" THEN TSPF = 3 /* Using Personal REXX v4*/ IF name = "REXX/2" & date3 = "1995" THEN TSPF = 4 /* Using SPFPC v4 */ IF name = "REXX/2" & date3 = "1996" THEN TSPF = 5 /* Using SPFPRO */ IF name = "REXX-ooRexx_3.2.0(MT)" THEN TSPF = 6 /* Using OOREXX */ RETURN (TSPF)