Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. ?section ADD^LIST routine
  2. [#IF [#ARGUMENT /VALUE item/ WORD/SPACE/]]
  3. #APPEND bin ADD * FROM [item]
  4. #SET itime [#FILEINFO /MODIFICATION/ [item]]
  5. [#IF itime > ntime |THEN| #SETV ntime itime]
  6.  
  7. ?section BBZIPLIB MACRO
  8. #FRAME
  9. #push bin item ntime itime libtime
  10. #SET ntime 0
  11.  
  12. #OUTPUT Building [lib]
  13. #APPEND bin CLEAR
  14. add^list CRC32O
  15. add^list CRYPTO
  16. add^list DEFLATEO
  17. add^list FILEIOO
  18. add^list GLOBALSO
  19. add^list TANDEMO
  20. add^list TANZIPO
  21. add^list TREESO
  22. add^list TTYIOO
  23. add^list UTILO
  24. add^list ZIPFILEO
  25. add^list ZIPUPO
  26. #APPEND bin INFO UNRESOLVED *
  27. #APPEND bin BUILD [lib] ! , LIST * OFF
  28.  
  29. #SET libtime [#FILEINFO /MODIFICATION/ [lib]]
  30. [#IF libtime < ntime
  31. |THEN|
  32.   #OUTPUT [lib] needs re-building
  33.   BIND /NAME,INV BIN/
  34.   [#CASE [tacl^completioncode]
  35.   | 0         | #OUTPUT Bound [lib] OK
  36.   | 1         | #OUTPUT [lib]: BIND Failed with Warnings
  37.   | OTHERWISE | #OUTPUT [lib]: BIND Failed with ERRORS !
  38.   ]
  39. |ELSE|
  40.   #OUTPUT [lib] is up to date
  41. ]
  42.  
  43. #UNFRAME
  44.  
  45. ?section BBZIP MACRO
  46. #FRAME
  47. #push bin ziptime build
  48. #SET build 0
  49. #OUTPUT Building %1% with %2% memory model
  50. #APPEND bin CLEAR
  51. #APPEND bin ADD * FROM ZIPO
  52. #APPEND bin select search ($system.system.c%2%, [lib])
  53. #APPEND bin select runnable object on
  54. #APPEND bin select list * off
  55. #APPEND bin set heap 20 pages
  56. #APPEND bin set symbols on
  57. #APPEND bin set saveabend on
  58. #APPEND bin set inspect on
  59. #APPEND bin info unresolved *
  60. #APPEND bin BUILD %1%   !
  61.  
  62. #SET ziptime [#FILEINFO /MODIFICATION/ %1%]
  63. [#IF ziptime < [#FILEINFO /MODIFICATION/ ZIPO] |THEN|
  64.   #OUTPUT %1% is older than ZIPO
  65.   #SET build -1
  66. ]
  67. [#IF ziptime < [#FILEINFO /MODIFICATION/ [lib]] |THEN|
  68.   #OUTPUT %1% is older than [lib]
  69.   #SET build -1
  70. ]
  71. [#IF build
  72. |THEN|
  73.   #OUTPUT %1% is out of date, re-building
  74.   BIND /NAME,INV BIN/
  75.   [#CASE [tacl^completioncode]
  76.   | 0         | #OUTPUT Bound %1% OK
  77.   | 1         | #OUTPUT %1%: BIND Failed with Warnings
  78.   | OTHERWISE | #OUTPUT %1%: BIND Failed with ERRORS !
  79.   ]
  80. |ELSE|
  81.   #OUTPUT %1% is up to date, no re-build required
  82. ]
  83.  
  84. #UNFRAME
  85.  
  86. ?section BBANY MACRO
  87. #FRAME
  88. #push bin memory anytime build
  89. #SET build 0
  90. #SETMANY memory, %2% LARGE
  91. #OUTPUT Building %1% with [memory] memory model
  92. #APPEND bin CLEAR
  93. #APPEND bin ADD * FROM %1%O
  94. #APPEND bin select search ($system.system.c[memory],[lib])
  95. #APPEND bin select runnable object on
  96. #APPEND bin select list * off
  97. #APPEND bin set heap 20 pages
  98. #APPEND bin set symbols on
  99. #APPEND bin set saveabend on
  100. #APPEND bin set inspect on
  101. #APPEND bin info unresolved *
  102. #APPEND bin BUILD %1%   !
  103.  
  104. #SET anytime [#FILEINFO /MODIFICATION/ %1%]
  105. [#IF anytime < [#FILEINFO /MODIFICATION/ %1%O] |THEN|
  106.   #OUTPUT %1% is older than %1%O
  107.   #SET build -1
  108. ]
  109. [#IF anytime < [#FILEINFO /MODIFICATION/ [lib]] |THEN|
  110.   #OUTPUT %1% is older than [lib]
  111.   #SET build -1
  112. ]
  113. [#IF build
  114. |THEN|
  115.   #OUTPUT %1% is out of date, re-building
  116.   BIND /NAME,INV BIN/
  117.   [#CASE [tacl^completioncode]
  118.   | 0         | #OUTPUT Bound %1% OK
  119.   | 1         | #OUTPUT %1%: BIND Failed with Warnings
  120.   | OTHERWISE | #OUTPUT %1%: BIND Failed with ERRORS !
  121.   ]
  122. |ELSE|
  123.   #OUTPUT %1% is up to date, no re-build required
  124. ]
  125.  
  126. #UNFRAME
  127.  
  128.  
  129. ?section BBUNZIPLIB MACRO
  130. #FRAME
  131. #push bin item ntime itime libtime
  132. #SET ntime 0
  133.  
  134. #OUTPUT Building [lib]
  135. #APPEND bin CLEAR
  136. add^list CRC32O
  137. add^list CRYPTO
  138. add^list ENVARGSO
  139. add^list EXPLODEO
  140. add^list EXTRACTO
  141. add^list FILEIOO
  142. add^list GLOBALSO
  143. add^list INFLATEO
  144. add^list LISTO
  145. add^list MATCHO
  146. add^list PROCESSO
  147. add^list TANDEMO
  148. add^list TANUNZO
  149. add^list TTYIOO
  150. add^list UNSHRINO
  151. add^list ZIPINFOO
  152. #APPEND bin INFO UNRESOLVED *
  153. #APPEND bin BUILD [lib] ! , LIST * OFF
  154.  
  155. #SET libtime [#FILEINFO /MODIFICATION/ [lib]]
  156. [#IF libtime < ntime
  157. |THEN|
  158.   #OUTPUT [lib] needs re-building
  159.   BIND /NAME,INV BIN/
  160.   [#CASE [tacl^completioncode]
  161.   | 0         | #OUTPUT Bound [lib] OK
  162.   | 1         | #OUTPUT [lib]: BIND Failed with Warnings
  163.   | OTHERWISE | #OUTPUT [lib]: BIND Failed with ERRORS !
  164.   ]
  165. |ELSE|
  166.   #OUTPUT [lib] is up to date
  167. ]
  168.  
  169. #UNFRAME
  170.  
  171. ?section BBUNZIP MACRO
  172. #FRAME
  173. #push bin ziptime build
  174. #SET build 0
  175. #OUTPUT Building %1% with %2% memory model
  176. #APPEND bin CLEAR
  177. #APPEND bin ADD * FROM UNZIPO
  178. #APPEND bin select search ($system.system.c%2%,[lib])
  179. #APPEND bin select runnable object on
  180. #APPEND bin select list * off
  181. #APPEND bin set heap 20 pages
  182. #APPEND bin set symbols on
  183. #APPEND bin set saveabend on
  184. #APPEND bin set inspect on
  185. #APPEND bin info unresolved *
  186. #APPEND bin BUILD %1%   !
  187.  
  188. #SET ziptime [#FILEINFO /MODIFICATION/ %1%]
  189. [#IF ziptime < [#FILEINFO /MODIFICATION/ UNZIPO] |THEN|
  190.   #OUTPUT %1% is older than UNZIPO
  191.   #SET build -1
  192. ]
  193. [#IF ziptime < [#FILEINFO /MODIFICATION/ [lib]] |THEN|
  194.   #OUTPUT %1% is older than [lib]
  195.   #SET build -1
  196. ]
  197. [#IF build
  198. |THEN|
  199.   #OUTPUT %1% is out of date, re-building
  200.   BIND /NAME,INV BIN/
  201.   [#CASE [tacl^completioncode]
  202.   | 0         | #OUTPUT Bound %1% OK
  203.   | 1         | #OUTPUT %1%: BIND Failed with Warnings
  204.   | OTHERWISE | #OUTPUT %1%: BIND Failed with ERRORS !
  205.   ]
  206. |ELSE|
  207.   #OUTPUT %1% is up to date, no re-build required
  208. ]
  209.  
  210. #UNFRAME
  211.  
  212. ?section BBSFXLIB MACRO
  213. #FRAME
  214. #push bin item ntime itime libtime
  215. #SET ntime 0
  216.  
  217. #OUTPUT Building [lib]
  218. #APPEND bin CLEAR
  219. add^list CRC32O
  220. add^list EXTRACTX
  221. add^list FILEIOX
  222. add^list GLOBALSX
  223. add^list INFLATEX
  224. add^list MATCHX
  225. add^list PROCESSX
  226. add^list TANDEMX
  227. add^list TANUNZX
  228. add^list TTYIOX
  229. #APPEND bin INFO UNRESOLVED *
  230. #APPEND bin BUILD [lib] ! , LIST * OFF
  231.  
  232. #SET libtime [#FILEINFO /MODIFICATION/ [lib]]
  233. [#IF libtime < ntime
  234. |THEN|
  235.   #OUTPUT [lib] needs re-building
  236.   BIND /NAME,INV BIN/
  237.   [#CASE [tacl^completioncode]
  238.   | 0         | #OUTPUT Bound [lib] OK
  239.   | 1         | #OUTPUT [lib]: BIND Failed with Warnings
  240.   | OTHERWISE | #OUTPUT [lib]: BIND Failed with ERRORS !
  241.   ]
  242. |ELSE|
  243.   #OUTPUT [lib] is up to date
  244. ]
  245.  
  246. #UNFRAME
  247.  
  248. ?section BBSFX MACRO
  249. #FRAME
  250. #push bin ziptime build
  251. #SET build 0
  252. #OUTPUT Building %1% with %2% memory model
  253. #APPEND bin CLEAR
  254. #APPEND bin ADD * FROM UNZIPX
  255. #APPEND bin select search ($system.system.c%2%,[lib])
  256. #APPEND bin select runnable object on
  257. #APPEND bin select list * off
  258. #APPEND bin set heap 20 pages
  259. #APPEND bin set symbols on
  260. #APPEND bin set saveabend on
  261. #APPEND bin set inspect on
  262. #APPEND bin info unresolved *
  263. #APPEND bin BUILD %1%   !
  264.  
  265. #SET ziptime [#FILEINFO /MODIFICATION/ %1%]
  266. [#IF ziptime < [#FILEINFO /MODIFICATION/ UNZIPX] |THEN|
  267.   #OUTPUT %1% is older than UNZIPX
  268.   #SET build -1
  269. ]
  270. [#IF ziptime < [#FILEINFO /MODIFICATION/ [lib]] |THEN|
  271.   #OUTPUT %1% is older than [lib]
  272.   #SET build -1
  273. ]
  274. [#IF build
  275. |THEN|
  276.   #OUTPUT %1% is out of date, re-building
  277.   BIND /NAME,INV BIN/
  278.   [#CASE [tacl^completioncode]
  279.   | 0         | #OUTPUT Bound %1% OK
  280.   | 1         | #OUTPUT %1%: BIND Failed with Warnings
  281.   | OTHERWISE | #OUTPUT %1%: BIND Failed with ERRORS !
  282.   ]
  283. |ELSE|
  284.   #OUTPUT %1% is up to date, no re-build required
  285. ]
  286.  
  287. #UNFRAME
  288.  
  289. ?section accel^file MACRO
  290. #FRAME
  291. #PUSH buf
  292. [#IF [#FILEINFO /MODIFICATION/ %1%]
  293.    > [#FILEINFO /MODIFICATION/ %2%]
  294. |THEN|
  295.   #OUTPUT %2% is older than %1%
  296.   #OUTPUT Accelerating %1% to %2%
  297.   AXCEL /OUTV buf/ %1%,%2%
  298.   #OUTPUTV buf
  299.   [#CASE [tacl^completioncode]
  300.   | 0         | #OUTPUT Accelerated %2% OK
  301.   | 1         | #OUTPUT %2%: AXCEL Failed with Warnings
  302.   | OTHERWISE | #OUTPUT %2%: AXCEL Failed with ERRORS !
  303.   ]
  304. |ELSE|
  305.   #OUTPUT %2% is up to date
  306. ]
  307.  
  308. #UNFRAME
  309.  
  310. ?section fup^license ROUTINE
  311. #FRAME
  312. #PUSH #DEFAULTS filename old^user current^user
  313.  
  314. [#IF [#ARGUMENT /VALUE filename/ FILENAME]]
  315.  
  316. #SET old^user [#USERNAME [#PROCESSINFO /PAID/]]
  317. #SETV current^user old^user
  318. [#LOOP |WHILE| current^user '<>' "SUPER.SUPER"
  319.                AND NOT [#INPUTEOF]
  320. |DO|
  321.   #OUTPUT Please log on as SUPER.SUPER (CTRL-Y aborts)
  322.   logon SUPER.SUPER
  323.   #SET current^user [#USERNAME [#PROCESSINFO /PAID/]]
  324.   #OUTPUT
  325. ]
  326.  
  327. [#IF current^user '=' "SUPER.SUPER" |THEN|
  328.   #OUTPUT Licensing [filename]
  329.   $SYSTEM.SYSTEM.FUP LICENSE [filename]
  330. ]
  331.  
  332. [#LOOP |WHILE| current^user '<>' old^user
  333.                AND NOT [#INPUTEOF]
  334. |DO|
  335.   #OUTPUT Please log on as [old^user] (CTRL-Y aborts)
  336.   logon [old^user]
  337.   #SET current^user [#USERNAME [#PROCESSINFO /PAID/]]
  338.   #OUTPUT
  339. ]
  340.  
  341. #UNFRAME
  342.  
  343.  
  344. ?section CODE routine
  345. #FRAME
  346. #PUSH delta arg
  347.  
  348. #SET /TYPE delta/ DELTA
  349.  
  350. [#LOOP |WHILE| [#COMPUTE [#ARGUMENT /VALUE arg/ NUMBER END] = 1 ]
  351. |DO|
  352.   #APPEND DELTA [arg]I
  353. ]
  354.  
  355. #RESULT [#DELTA /COMMANDS DELTA/]
  356.  
  357. #UNFRAME
  358.  
  359.  
  360. ?section TACL^COMPLETIONCODE routine
  361. #RESULT [_completion:completioncode]
  362.  
  363. ?SECTION INCREMENT routine
  364. #FRAME
  365. #PUSH increment_variable increment_value
  366.  
  367. [#IF [#ARGUMENT /VALUE increment_variable/ VARIABLE]]
  368. [#IF [#EMPTYV [increment_variable]]|THEN|#SET [increment_variable] 0]
  369. [#IF [#MORE]
  370.   |THEN|
  371.     [#IF [#ARGUMENT /VALUE increment_value/ NUMBER]]
  372.   |ELSE|
  373.     #SET increment_value 1
  374. ]
  375. [#IF [#ARGUMENT END]]
  376.  
  377. #SET [increment_variable] [#COMPUTE [increment_variable] + [increment_value]]
  378.  
  379. #UNFRAME
  380.  
  381. ?section ERROR^IN^FUP^OUTPUT routine
  382. #FRAME
  383. #PUSH err output last line type
  384.  
  385. #SETMANY err output, 0 0
  386.  
  387. [#LOOP |WHILE| NOT [#EMPTYV fup^out]
  388. |DO|
  389.    #EXTRACTV fup^out line
  390.    [#SETMANY type, [#CHARGET line 1 TO 7] .]
  391.    [#CASE [type]
  392.      | ERROR     | #SETMANY output err, -1 -1
  393.      | WARNING   | #SET output -1
  394.      | OTHERWISE |
  395.    ]
  396.    [#IF output |THEN|
  397.      #OUTPUTV last
  398.      #OUTPUTV line
  399.      #SET output 0
  400.      #EXTRACTV fup^out line
  401.    ]
  402.    #SETV last line
  403. ]
  404.  
  405. #RESULT [err]
  406.  
  407. #UNFRAME
  408.  
  409. ?section SECURE^FILE routine
  410. #FRAME
  411.  
  412. [#DEF fup^out TEXT |BODY|]
  413. [#DEF fup^buf TEXT |BODY|]
  414.  
  415. [#DEF fup^cmd MACRO |BODY|
  416.   FUP /OUTV fup^out/ %*%
  417.   #SETV fup^buf fup^out
  418.   [#IF [error^in^fup^output]
  419.   |THEN|
  420.     #OUTPUT Error detected in FUP output, ABORTING !!
  421.     #OUTPUT ..............................................................
  422.     #OUTPUTV fup^buf
  423.     #OUTPUT ..............................................................
  424.     #RAISE _BREAK
  425.   ]
  426. ]
  427.  
  428. [#DEF display^action MACRO |BODY|
  429.   [#IF NOT action |THEN|
  430.     #OUTPUT /HOLD/ Updating [file] ...
  431.     #SET action -1
  432.     #SET count 0
  433.   ]
  434.   #OUTPUT /COLUMN 3/ ... %*%
  435. ]
  436.  
  437. [#DEF display^noaction MACRO |BODY|
  438.   [#IF count
  439.   |THEN|
  440.     increment count
  441.   |ELSE|
  442.     #OUTPUT
  443.     #SET count 1
  444.   ]
  445.   [#IF count |THEN|
  446.     #OUTPUT /COLUMN [count]/ [code 27]A.
  447.     [#IF count > 75
  448.     |THEN|
  449.       #SET count 0
  450.     ]
  451.   ]
  452. ]
  453.  
  454. [#DEF process^file TEXT |BODY|
  455.   #SET action 0
  456.   #SETMANY cur^owner cur^security cur^license cur^progid, &
  457.     [#FILEINFO /OWNER, SECURITY, LICENSED, PROGID/ [file]]
  458.  
  459.   #SET cur^owner [#USERNAME [cur^owner]]
  460.  
  461.   [#IF NOT [#EMPTYV owner]
  462.   |THEN|
  463.     [#IF owner '<>' cur^owner
  464.     |THEN|
  465.       display^action giving to [owner]  (was [cur^owner])
  466.       fup^cmd GIVE [file], [owner]
  467.       [#IF cur^progid
  468.       |THEN|
  469.         #OUTPUT /COLUMN 3/... WARNING!  Loss of PROGID flag
  470.         #SET cur^progid 0
  471.       ]
  472.     ]
  473.   ]
  474.   [#IF NOT [#EMPTYV security]
  475.   |THEN|
  476.     [#IF security '<>' cur^security
  477.     |THEN|
  478.       display^action securing to [security] (was [cur^security])
  479.       fup^cmd SECURE [file], [security]
  480.     ]
  481.   ]
  482.   [#IF license |THEN|
  483.     [#IF NOT cur^license
  484.     |THEN|
  485.       display^action licensed
  486.       fup^cmd LICENSE [file]
  487.     ]
  488.   ]
  489.   [#IF progid |THEN|
  490.     [#IF NOT cur^progid
  491.     |THEN|
  492.       display^action PROGID flag set
  493.       fup^cmd SECURE [file],, PROGID
  494.     ]
  495.   ]
  496.   [#IF action
  497.   |THEN|
  498.     fup^cmd INFO [file]
  499.   |ELSE|
  500.     [#IF tflag
  501.     |THEN|
  502.       display^noaction
  503.     |ELSE|
  504.       #OUTPUT  /HOLD/ Unchanged : [file]
  505.       [#IF cur^progid  |THEN| #OUTPUT /COLUMN 39,HOLD/ P]
  506.       [#IF cur^license |THEN| #OUTPUT /COLUMN 40,HOLD/ L]
  507.       #OUTPUTV /COLUMN 43,HOLD/ cur^security
  508.       #OUTPUTV /COLUMN 50,HOLD/ cur^owner
  509.       #OUTPUT
  510.     ]
  511.  ]
  512. ]
  513.  
  514. #PUSH arg template file security owner progid license prev action count tflag
  515. #PUSH cur^security cur^owner cur^license cur^progid
  516.  
  517. #SETMANY license progid, 0 0
  518. #SET count 0
  519. #SET tflag 0
  520.  
  521. [#LOOP |WHILE| [#MORE]
  522. |DO|
  523.   [#CASE [#ARGUMENT /VALUE arg/ FILENAME
  524.                                 USER /USERNAME/
  525.                                 USER
  526.                                 SECURITY
  527.                                 KEYWORD /WORDLIST LICENSE/
  528.                                 KEYWORD /WORDLIST PROGID/
  529.                                 TEMPLATE
  530.          ]
  531.   | 1 | #SETV file     arg
  532.   | 2 | #SETV owner    arg
  533.   | 3 | #SET  owner [#USERNAME [arg]]
  534.   | 4 | #SETV security arg
  535.   | 5 | #SET  license  -1
  536.   | 6 | #SET  progid   -1
  537.   | 7 | #SETV template arg
  538.   ]
  539. ]
  540. [#IF [#ARGUMENT END]]
  541.  
  542.  
  543. [#IF [#EMPTYV template]
  544. |THEN|
  545.   #SETV template file
  546. |ELSE|
  547.   #SET tflag -1
  548.   #OUTPUT /HOLD/ Template : [template]
  549.   [#IF progid  |THEN| #OUTPUT /COLUMN 39,HOLD/ P]
  550.   [#IF license |THEN| #OUTPUT /COLUMN 40,HOLD/ L]
  551.   [#IF NOT [#EMPTYV security] |THEN| #OUTPUTV /HOLD/ "  "[security]""]
  552.   [#IF NOT [#EMPTYV owner]    |THEN| #OUTPUTV /HOLD/ "  [owner]"]
  553.   #OUTPUT
  554. ]
  555.  
  556. [#IF [#EMPTYV template]
  557. |THEN|
  558.   #OUTPUT ERROR!  No filename specified
  559.   #RESET FRAMES
  560.   #RETURN
  561. |ELSE|
  562.   #SET file [#FILENAMES /MAXIMUM 1/ [template]]
  563.   [#LOOP |WHILE| NOT [#EMPTYV file]
  564.   |DO|
  565.     process^file
  566.     #SETV prev file
  567.     #SET file [#FILENAMES /MAXIMUM 1, PREVIOUS [prev]/ [template]]
  568.   ]
  569. ]
  570.  
  571. #UNFRAME
  572.