| ?section ADD^LIST routine |
| [#IF [#ARGUMENT /VALUE item/ WORD/SPACE/]] |
| #APPEND bin ADD * FROM [item] |
| #SET itime [#FILEINFO /MODIFICATION/ [item]] |
| [#IF itime > ntime |THEN| #SETV ntime itime] |
| |
| ?section BBZIPLIB MACRO |
| #FRAME |
| #push bin item ntime itime libtime |
| #SET ntime 0 |
| |
| #OUTPUT Building [lib] |
| #APPEND bin CLEAR |
| add^list CRC32O |
| add^list CRYPTO |
| add^list DEFLATEO |
| add^list FILEIOO |
| add^list GLOBALSO |
| add^list TANDEMO |
| add^list TANZIPO |
| add^list TREESO |
| add^list TTYIOO |
| add^list UTILO |
| add^list ZIPFILEO |
| add^list ZIPUPO |
| #APPEND bin INFO UNRESOLVED * |
| #APPEND bin BUILD [lib] ! , LIST * OFF |
| |
| #SET libtime [#FILEINFO /MODIFICATION/ [lib]] |
| [#IF libtime < ntime |
| |THEN| |
| #OUTPUT [lib] needs re-building |
| BIND /NAME,INV BIN/ |
| [#CASE [tacl^completioncode] |
| | 0 | #OUTPUT Bound [lib] OK |
| | 1 | #OUTPUT [lib]: BIND Failed with Warnings |
| | OTHERWISE | #OUTPUT [lib]: BIND Failed with ERRORS ! |
| ] |
| |ELSE| |
| #OUTPUT [lib] is up to date |
| ] |
| |
| #UNFRAME |
| |
| ?section BBZIP MACRO |
| #FRAME |
| #push bin ziptime build |
| #SET build 0 |
| #OUTPUT Building %1% with %2% memory model |
| #APPEND bin CLEAR |
| #APPEND bin ADD * FROM ZIPO |
| #APPEND bin select search ($system.system.c%2%, [lib]) |
| #APPEND bin select runnable object on |
| #APPEND bin select list * off |
| #APPEND bin set heap 20 pages |
| #APPEND bin set symbols on |
| #APPEND bin set saveabend on |
| #APPEND bin set inspect on |
| #APPEND bin info unresolved * |
| #APPEND bin BUILD %1% ! |
| |
| #SET ziptime [#FILEINFO /MODIFICATION/ %1%] |
| [#IF ziptime < [#FILEINFO /MODIFICATION/ ZIPO] |THEN| |
| #OUTPUT %1% is older than ZIPO |
| #SET build -1 |
| ] |
| [#IF ziptime < [#FILEINFO /MODIFICATION/ [lib]] |THEN| |
| #OUTPUT %1% is older than [lib] |
| #SET build -1 |
| ] |
| [#IF build |
| |THEN| |
| #OUTPUT %1% is out of date, re-building |
| BIND /NAME,INV BIN/ |
| [#CASE [tacl^completioncode] |
| | 0 | #OUTPUT Bound %1% OK |
| | 1 | #OUTPUT %1%: BIND Failed with Warnings |
| | OTHERWISE | #OUTPUT %1%: BIND Failed with ERRORS ! |
| ] |
| |ELSE| |
| #OUTPUT %1% is up to date, no re-build required |
| ] |
| |
| #UNFRAME |
| |
| ?section BBANY MACRO |
| #FRAME |
| #push bin memory anytime build |
| #SET build 0 |
| #SETMANY memory, %2% LARGE |
| #OUTPUT Building %1% with [memory] memory model |
| #APPEND bin CLEAR |
| #APPEND bin ADD * FROM %1%O |
| #APPEND bin select search ($system.system.c[memory],[lib]) |
| #APPEND bin select runnable object on |
| #APPEND bin select list * off |
| #APPEND bin set heap 20 pages |
| #APPEND bin set symbols on |
| #APPEND bin set saveabend on |
| #APPEND bin set inspect on |
| #APPEND bin info unresolved * |
| #APPEND bin BUILD %1% ! |
| |
| #SET anytime [#FILEINFO /MODIFICATION/ %1%] |
| [#IF anytime < [#FILEINFO /MODIFICATION/ %1%O] |THEN| |
| #OUTPUT %1% is older than %1%O |
| #SET build -1 |
| ] |
| [#IF anytime < [#FILEINFO /MODIFICATION/ [lib]] |THEN| |
| #OUTPUT %1% is older than [lib] |
| #SET build -1 |
| ] |
| [#IF build |
| |THEN| |
| #OUTPUT %1% is out of date, re-building |
| BIND /NAME,INV BIN/ |
| [#CASE [tacl^completioncode] |
| | 0 | #OUTPUT Bound %1% OK |
| | 1 | #OUTPUT %1%: BIND Failed with Warnings |
| | OTHERWISE | #OUTPUT %1%: BIND Failed with ERRORS ! |
| ] |
| |ELSE| |
| #OUTPUT %1% is up to date, no re-build required |
| ] |
| |
| #UNFRAME |
| |
| |
| ?section BBUNZIPLIB MACRO |
| #FRAME |
| #push bin item ntime itime libtime |
| #SET ntime 0 |
| |
| #OUTPUT Building [lib] |
| #APPEND bin CLEAR |
| add^list CRC32O |
| add^list CRYPTO |
| add^list ENVARGSO |
| add^list EXPLODEO |
| add^list EXTRACTO |
| add^list FILEIOO |
| add^list GLOBALSO |
| add^list INFLATEO |
| add^list LISTO |
| add^list MATCHO |
| add^list PROCESSO |
| add^list TANDEMO |
| add^list TANUNZO |
| add^list TTYIOO |
| add^list UNSHRINO |
| add^list ZIPINFOO |
| #APPEND bin INFO UNRESOLVED * |
| #APPEND bin BUILD [lib] ! , LIST * OFF |
| |
| #SET libtime [#FILEINFO /MODIFICATION/ [lib]] |
| [#IF libtime < ntime |
| |THEN| |
| #OUTPUT [lib] needs re-building |
| BIND /NAME,INV BIN/ |
| [#CASE [tacl^completioncode] |
| | 0 | #OUTPUT Bound [lib] OK |
| | 1 | #OUTPUT [lib]: BIND Failed with Warnings |
| | OTHERWISE | #OUTPUT [lib]: BIND Failed with ERRORS ! |
| ] |
| |ELSE| |
| #OUTPUT [lib] is up to date |
| ] |
| |
| #UNFRAME |
| |
| ?section BBUNZIP MACRO |
| #FRAME |
| #push bin ziptime build |
| #SET build 0 |
| #OUTPUT Building %1% with %2% memory model |
| #APPEND bin CLEAR |
| #APPEND bin ADD * FROM UNZIPO |
| #APPEND bin select search ($system.system.c%2%,[lib]) |
| #APPEND bin select runnable object on |
| #APPEND bin select list * off |
| #APPEND bin set heap 20 pages |
| #APPEND bin set symbols on |
| #APPEND bin set saveabend on |
| #APPEND bin set inspect on |
| #APPEND bin info unresolved * |
| #APPEND bin BUILD %1% ! |
| |
| #SET ziptime [#FILEINFO /MODIFICATION/ %1%] |
| [#IF ziptime < [#FILEINFO /MODIFICATION/ UNZIPO] |THEN| |
| #OUTPUT %1% is older than UNZIPO |
| #SET build -1 |
| ] |
| [#IF ziptime < [#FILEINFO /MODIFICATION/ [lib]] |THEN| |
| #OUTPUT %1% is older than [lib] |
| #SET build -1 |
| ] |
| [#IF build |
| |THEN| |
| #OUTPUT %1% is out of date, re-building |
| BIND /NAME,INV BIN/ |
| [#CASE [tacl^completioncode] |
| | 0 | #OUTPUT Bound %1% OK |
| | 1 | #OUTPUT %1%: BIND Failed with Warnings |
| | OTHERWISE | #OUTPUT %1%: BIND Failed with ERRORS ! |
| ] |
| |ELSE| |
| #OUTPUT %1% is up to date, no re-build required |
| ] |
| |
| #UNFRAME |
| |
| ?section BBSFXLIB MACRO |
| #FRAME |
| #push bin item ntime itime libtime |
| #SET ntime 0 |
| |
| #OUTPUT Building [lib] |
| #APPEND bin CLEAR |
| add^list CRC32O |
| add^list EXTRACTX |
| add^list FILEIOX |
| add^list GLOBALSX |
| add^list INFLATEX |
| add^list MATCHX |
| add^list PROCESSX |
| add^list TANDEMX |
| add^list TANUNZX |
| add^list TTYIOX |
| #APPEND bin INFO UNRESOLVED * |
| #APPEND bin BUILD [lib] ! , LIST * OFF |
| |
| #SET libtime [#FILEINFO /MODIFICATION/ [lib]] |
| [#IF libtime < ntime |
| |THEN| |
| #OUTPUT [lib] needs re-building |
| BIND /NAME,INV BIN/ |
| [#CASE [tacl^completioncode] |
| | 0 | #OUTPUT Bound [lib] OK |
| | 1 | #OUTPUT [lib]: BIND Failed with Warnings |
| | OTHERWISE | #OUTPUT [lib]: BIND Failed with ERRORS ! |
| ] |
| |ELSE| |
| #OUTPUT [lib] is up to date |
| ] |
| |
| #UNFRAME |
| |
| ?section BBSFX MACRO |
| #FRAME |
| #push bin ziptime build |
| #SET build 0 |
| #OUTPUT Building %1% with %2% memory model |
| #APPEND bin CLEAR |
| #APPEND bin ADD * FROM UNZIPX |
| #APPEND bin select search ($system.system.c%2%,[lib]) |
| #APPEND bin select runnable object on |
| #APPEND bin select list * off |
| #APPEND bin set heap 20 pages |
| #APPEND bin set symbols on |
| #APPEND bin set saveabend on |
| #APPEND bin set inspect on |
| #APPEND bin info unresolved * |
| #APPEND bin BUILD %1% ! |
| |
| #SET ziptime [#FILEINFO /MODIFICATION/ %1%] |
| [#IF ziptime < [#FILEINFO /MODIFICATION/ UNZIPX] |THEN| |
| #OUTPUT %1% is older than UNZIPX |
| #SET build -1 |
| ] |
| [#IF ziptime < [#FILEINFO /MODIFICATION/ [lib]] |THEN| |
| #OUTPUT %1% is older than [lib] |
| #SET build -1 |
| ] |
| [#IF build |
| |THEN| |
| #OUTPUT %1% is out of date, re-building |
| BIND /NAME,INV BIN/ |
| [#CASE [tacl^completioncode] |
| | 0 | #OUTPUT Bound %1% OK |
| | 1 | #OUTPUT %1%: BIND Failed with Warnings |
| | OTHERWISE | #OUTPUT %1%: BIND Failed with ERRORS ! |
| ] |
| |ELSE| |
| #OUTPUT %1% is up to date, no re-build required |
| ] |
| |
| #UNFRAME |
| |
| ?section accel^file MACRO |
| #FRAME |
| #PUSH buf |
| [#IF [#FILEINFO /MODIFICATION/ %1%] |
| > [#FILEINFO /MODIFICATION/ %2%] |
| |THEN| |
| #OUTPUT %2% is older than %1% |
| #OUTPUT Accelerating %1% to %2% |
| AXCEL /OUTV buf/ %1%,%2% |
| #OUTPUTV buf |
| [#CASE [tacl^completioncode] |
| | 0 | #OUTPUT Accelerated %2% OK |
| | 1 | #OUTPUT %2%: AXCEL Failed with Warnings |
| | OTHERWISE | #OUTPUT %2%: AXCEL Failed with ERRORS ! |
| ] |
| |ELSE| |
| #OUTPUT %2% is up to date |
| ] |
| |
| #UNFRAME |
| |
| ?section fup^license ROUTINE |
| #FRAME |
| #PUSH #DEFAULTS filename old^user current^user |
| |
| [#IF [#ARGUMENT /VALUE filename/ FILENAME]] |
| |
| #SET old^user [#USERNAME [#PROCESSINFO /PAID/]] |
| #SETV current^user old^user |
| [#LOOP |WHILE| current^user '<>' "SUPER.SUPER" |
| AND NOT [#INPUTEOF] |
| |DO| |
| #OUTPUT Please log on as SUPER.SUPER (CTRL-Y aborts) |
| logon SUPER.SUPER |
| #SET current^user [#USERNAME [#PROCESSINFO /PAID/]] |
| #OUTPUT |
| ] |
| |
| [#IF current^user '=' "SUPER.SUPER" |THEN| |
| #OUTPUT Licensing [filename] |
| $SYSTEM.SYSTEM.FUP LICENSE [filename] |
| ] |
| |
| [#LOOP |WHILE| current^user '<>' old^user |
| AND NOT [#INPUTEOF] |
| |DO| |
| #OUTPUT Please log on as [old^user] (CTRL-Y aborts) |
| logon [old^user] |
| #SET current^user [#USERNAME [#PROCESSINFO /PAID/]] |
| #OUTPUT |
| ] |
| |
| #UNFRAME |
| |
| |
| ?section CODE routine |
| #FRAME |
| #PUSH delta arg |
| |
| #SET /TYPE delta/ DELTA |
| |
| [#LOOP |WHILE| [#COMPUTE [#ARGUMENT /VALUE arg/ NUMBER END] = 1 ] |
| |DO| |
| #APPEND DELTA [arg]I |
| ] |
| |
| #RESULT [#DELTA /COMMANDS DELTA/] |
| |
| #UNFRAME |
| |
| |
| ?section TACL^COMPLETIONCODE routine |
| #RESULT [_completion:completioncode] |
| |
| ?SECTION INCREMENT routine |
| #FRAME |
| #PUSH increment_variable increment_value |
| |
| [#IF [#ARGUMENT /VALUE increment_variable/ VARIABLE]] |
| [#IF [#EMPTYV [increment_variable]]|THEN|#SET [increment_variable] 0] |
| [#IF [#MORE] |
| |THEN| |
| [#IF [#ARGUMENT /VALUE increment_value/ NUMBER]] |
| |ELSE| |
| #SET increment_value 1 |
| ] |
| [#IF [#ARGUMENT END]] |
| |
| #SET [increment_variable] [#COMPUTE [increment_variable] + [increment_value]] |
| |
| #UNFRAME |
| |
| ?section ERROR^IN^FUP^OUTPUT routine |
| #FRAME |
| #PUSH err output last line type |
| |
| #SETMANY err output, 0 0 |
| |
| [#LOOP |WHILE| NOT [#EMPTYV fup^out] |
| |DO| |
| #EXTRACTV fup^out line |
| [#SETMANY type, [#CHARGET line 1 TO 7] .] |
| [#CASE [type] |
| | ERROR | #SETMANY output err, -1 -1 |
| | WARNING | #SET output -1 |
| | OTHERWISE | |
| ] |
| [#IF output |THEN| |
| #OUTPUTV last |
| #OUTPUTV line |
| #SET output 0 |
| #EXTRACTV fup^out line |
| ] |
| #SETV last line |
| ] |
| |
| #RESULT [err] |
| |
| #UNFRAME |
| |
| ?section SECURE^FILE routine |
| #FRAME |
| |
| [#DEF fup^out TEXT |BODY|] |
| [#DEF fup^buf TEXT |BODY|] |
| |
| [#DEF fup^cmd MACRO |BODY| |
| FUP /OUTV fup^out/ %*% |
| #SETV fup^buf fup^out |
| [#IF [error^in^fup^output] |
| |THEN| |
| #OUTPUT Error detected in FUP output, ABORTING !! |
| #OUTPUT .............................................................. |
| #OUTPUTV fup^buf |
| #OUTPUT .............................................................. |
| #RAISE _BREAK |
| ] |
| ] |
| |
| [#DEF display^action MACRO |BODY| |
| [#IF NOT action |THEN| |
| #OUTPUT /HOLD/ Updating [file] ... |
| #SET action -1 |
| #SET count 0 |
| ] |
| #OUTPUT /COLUMN 3/ ... %*% |
| ] |
| |
| [#DEF display^noaction MACRO |BODY| |
| [#IF count |
| |THEN| |
| increment count |
| |ELSE| |
| #OUTPUT |
| #SET count 1 |
| ] |
| [#IF count |THEN| |
| #OUTPUT /COLUMN [count]/ [code 27]A. |
| [#IF count > 75 |
| |THEN| |
| #SET count 0 |
| ] |
| ] |
| ] |
| |
| [#DEF process^file TEXT |BODY| |
| #SET action 0 |
| #SETMANY cur^owner cur^security cur^license cur^progid, & |
| [#FILEINFO /OWNER, SECURITY, LICENSED, PROGID/ [file]] |
| |
| #SET cur^owner [#USERNAME [cur^owner]] |
| |
| [#IF NOT [#EMPTYV owner] |
| |THEN| |
| [#IF owner '<>' cur^owner |
| |THEN| |
| display^action giving to [owner] (was [cur^owner]) |
| fup^cmd GIVE [file], [owner] |
| [#IF cur^progid |
| |THEN| |
| #OUTPUT /COLUMN 3/... WARNING! Loss of PROGID flag |
| #SET cur^progid 0 |
| ] |
| ] |
| ] |
| [#IF NOT [#EMPTYV security] |
| |THEN| |
| [#IF security '<>' cur^security |
| |THEN| |
| display^action securing to [security] (was [cur^security]) |
| fup^cmd SECURE [file], [security] |
| ] |
| ] |
| [#IF license |THEN| |
| [#IF NOT cur^license |
| |THEN| |
| display^action licensed |
| fup^cmd LICENSE [file] |
| ] |
| ] |
| [#IF progid |THEN| |
| [#IF NOT cur^progid |
| |THEN| |
| display^action PROGID flag set |
| fup^cmd SECURE [file],, PROGID |
| ] |
| ] |
| [#IF action |
| |THEN| |
| fup^cmd INFO [file] |
| |ELSE| |
| [#IF tflag |
| |THEN| |
| display^noaction |
| |ELSE| |
| #OUTPUT /HOLD/ Unchanged : [file] |
| [#IF cur^progid |THEN| #OUTPUT /COLUMN 39,HOLD/ P] |
| [#IF cur^license |THEN| #OUTPUT /COLUMN 40,HOLD/ L] |
| #OUTPUTV /COLUMN 43,HOLD/ cur^security |
| #OUTPUTV /COLUMN 50,HOLD/ cur^owner |
| #OUTPUT |
| ] |
| ] |
| ] |
| |
| #PUSH arg template file security owner progid license prev action count tflag |
| #PUSH cur^security cur^owner cur^license cur^progid |
| |
| #SETMANY license progid, 0 0 |
| #SET count 0 |
| #SET tflag 0 |
| |
| [#LOOP |WHILE| [#MORE] |
| |DO| |
| [#CASE [#ARGUMENT /VALUE arg/ FILENAME |
| USER /USERNAME/ |
| USER |
| SECURITY |
| KEYWORD /WORDLIST LICENSE/ |
| KEYWORD /WORDLIST PROGID/ |
| TEMPLATE |
| ] |
| | 1 | #SETV file arg |
| | 2 | #SETV owner arg |
| | 3 | #SET owner [#USERNAME [arg]] |
| | 4 | #SETV security arg |
| | 5 | #SET license -1 |
| | 6 | #SET progid -1 |
| | 7 | #SETV template arg |
| ] |
| ] |
| [#IF [#ARGUMENT END]] |
| |
| |
| [#IF [#EMPTYV template] |
| |THEN| |
| #SETV template file |
| |ELSE| |
| #SET tflag -1 |
| #OUTPUT /HOLD/ Template : [template] |
| [#IF progid |THEN| #OUTPUT /COLUMN 39,HOLD/ P] |
| [#IF license |THEN| #OUTPUT /COLUMN 40,HOLD/ L] |
| [#IF NOT [#EMPTYV security] |THEN| #OUTPUTV /HOLD/ " "[security]""] |
| [#IF NOT [#EMPTYV owner] |THEN| #OUTPUTV /HOLD/ " [owner]"] |
| #OUTPUT |
| ] |
| |
| [#IF [#EMPTYV template] |
| |THEN| |
| #OUTPUT ERROR! No filename specified |
| #RESET FRAMES |
| #RETURN |
| |ELSE| |
| #SET file [#FILENAMES /MAXIMUM 1/ [template]] |
| [#LOOP |WHILE| NOT [#EMPTYV file] |
| |DO| |
| process^file |
| #SETV prev file |
| #SET file [#FILENAMES /MAXIMUM 1, PREVIOUS [prev]/ [template]] |
| ] |
| ] |
| |
| #UNFRAME |