source: unzip/vendor/current/tandem/macros@ 200

Last change on this file since 200 was 200, checked in by Yuri Dario, 14 years ago

zip: initial unzip 6.0 import.

File size: 12.6 KB
Line 
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
14add^list CRC32O
15add^list CRYPTO
16add^list DEFLATEO
17add^list FILEIOO
18add^list GLOBALSO
19add^list TANDEMO
20add^list TANZIPO
21add^list TREESO
22add^list TTYIOO
23add^list UTILO
24add^list ZIPFILEO
25add^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
136add^list CRC32O
137add^list CRYPTO
138add^list ENVARGSO
139add^list EXPLODEO
140add^list EXTRACTO
141add^list FILEIOO
142add^list GLOBALSO
143add^list INFLATEO
144add^list LISTO
145add^list MATCHO
146add^list PROCESSO
147add^list TANDEMO
148add^list TANUNZO
149add^list TTYIOO
150add^list UNSHRINO
151add^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
219add^list CRC32O
220add^list EXTRACTX
221add^list FILEIOX
222add^list GLOBALSX
223add^list INFLATEX
224add^list MATCHX
225add^list PROCESSX
226add^list TANDEMX
227add^list TANUNZX
228add^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
Note: See TracBrowser for help on using the repository browser.