PARSE SOURCE TOS ZED ; IF TOS == "WindowsNT" THEN TOS = "WNT"
TOS = TRANSLATE(LEFT(TOS,3))
TPIN = FIXS("\U\E\SPFPRO\PROFILES\COBOL.CLR")
CALL GETPROFILE
DO WC = 1 TO KW.0.0
DO CNT = 1 TO KW.WC.0
SAY 'KW.'WC'.'CNT' = 'KW.WC.CNT
END; SAY 'KW.'WC'.0 = 'KW.WC.0' <<<'
END; SAY "SPF PARMS: "; DO ICNT = 1 TO SPFI.0; SAY SPFI.ICNT; END
PULL Z
EXIT
GETPROFILE: ;
WC = 0; I. = ''; ICNT = 0; SPFI.0 = 0
DO WHILE LINES(TPIN) <> 0
TR = LINEIN(TPIN); TR1 = WORD(TR,1)
IF TR1 == "CASE" |
TR1 == "COLOR_CASE_SENSE" |
TR1 == "STRING_DELIMITERS" |
TR1 == "COLOR_DELIMTERS" |
TR1 == "COLOR_BLANK_IS_DELIMITER" |
TR1 == "BLOCK_COMMENT" |
TR1 == "COLOR_BEGEND" |
TR1 == "LINE_COMMENT" |
TR1 == "COLOR_TO_END" |
TR1 == "COLOR_COL_TO__END" |
TR1 == "SPECIAL_CHARS" |
TR1 == "NO_BREAK_CHAR" THEN DO
ICNT = ICNT + 1; SPFI.ICNT = TR; SPFI.0 = ICNT
END
IF WORD(TR,1) == "COLOR_WORD_SET" THEN DO
WC = WC + 1; KW.0.0 = WC; KW.WC.0 = 0
DO CNT = 1 TO 2000
TR = LINEIN(TPIN)
IF WORDS(TR) > 0 THEN DO
P = ''; PARSE VALUE TR WITH . P ; KW.WC.CNT = P ; END
ELSE LEAVE CNT
KW.WC.0 = CNT ;
END ;
END
IF LEFT(WORD(TR,1),7) == "WORD_CO" THEN DO
WC = WC + 1 ; KW.0.0 = WC; KW.WC.0 = 0
DO CNT = 1 TO 2000
TR = LINEIN(TPIN)
IF WORDS(TR) > 0 THEN DO
P = '';PARSE VALUE TR WITH . '"'P'"' . ; KW.WC.CNT = P ; END
ELSE LEAVE CNT
KW.WC.0 = CNT ;
END ;
END
END;
RETURN
FIXS: PROCEDURE EXPOSE TOS
PARSE ARG FSPEC
SELECT
WHEN POS(TOS, "UNI LIN") > 0 THEN FSPEC = "/mnt/home"||TRANSLATE(FSPEC,"/","\")
WHEN POS(TOS, "DOS MSD PCD") > 0 THEN FSPEC = "C:"||TRANSLATE(FSPEC,"\","/")
WHEN POS(TOS, "WIN WNT") > 0 THEN FSPEC = "Z:\MNT\HOME"||TRANSLATE(FSPEC,"\","/")
OTHERWISE NOP
END
RETURN FSPEC