Trailing-Edge
-
PDP-10 Archives
-
steco_19840320_1er_E35
-
10,5676/teco/macros/runcon.tco
There is 1 other file named runcon.tco in the archive. Click here to see a list.
!;RUNCON -- Table of Contents Generator for RUNOFF output files !
!;Author: C. Dawson -- Univ. of Texas at Austin -- 27-Feb-79 !
!;Editor: !
!; R. McQueen -- Stevens Institute of Technology !
!;This macro will currently only handle RUNOFF documents which !
!;have made use of .HL command, but not the .CHAPTER command. !
!;Also, it uses absolute page numbers rather than numbers !
!;appearing in the file itself. !
!;To use, type: !
!; .R TECO !
!; *EIRUNCON$$ !
!;The table of contents will be placed in Q-register C, enabling!
!;you to edit the RUNOFF source file and place the table within !
!;a literal block, for example. !
[1[2[3[4[5[6[a[m[t[x[y[z[7
EOU7 3EO$
^A"?" for help^A !;Type greeting!
!;Read in a file name!
!start! HK I:ER$ .U1
^A
File: ^A
!getch! ^TUt
Qt-^o77 "E ^A
Type the file name of the RUNOFF output file that you want
a table of contents for. End with a <CR>.^A Ostart$ '
Qt-^o10 "E Q1-."E Ostart$ ' ^A ^A :^o10,1^T -D Ogetch$ '
Qt-^o177"E Q1-."E Ostart$ ' .-1,.T -D Ogetch$ '
Qt-^o25 "E ^A^U^A :^o15,1^T :^o12,1^T Ostart$ '
Qt-^o22 "E ^A^A :^o15,1^T :^o12,1^T Q1,.T Ogetch$ '
Qt-^o15 "N QtI$ Ogetch$ '
^T$ I/NODEFAULT/MODE:ASCII^R$$
HXt Mt"F ^AFile not found.^A Ostart$ '
^A[Working] ^A
HK HXc 0Uy
!loop!
!;Search for a line that looks like a .HEADER LEVEL!
:S^E<12>^E[^ES,^Ed]$ !;LF (<blanks> or digit)!
"S 0A-32"E 1A"D Ook$' Oloop$' !;If <blanks>, make sure digit follows!
!ok! <.,.+1s^Ed$;> !;digits!
:.,.+2s.^Ed$ !;period digit!
"S <.,.+1s^E[^Ed,.]$;> !;periods & digits!
:.,.+3s ^N $ !;blank blank non-blank!
"S !;We have found a title!
0L Xa .U1 ZJ ZU5 Ga !;Move line to the end of the buffer!
Q5J S.$ .U6 Q5J 4-Q6+Q5<I $> !;Put in leading spaces!
S.$ S $ 10-.+Q5<I $> !;Spaces after sec. number!
0U2 <.,Q5S.$; R %2> !;Count levels!
S.$ S $ Q2*2<I $> !;Indent accordingly!
Q2-1"G !;If HL 3 or greater...!
:S - $"S 3R K !;Remove all text after a "-"!
13I$ 10I$'' !;Restore crlf!
Q5J :S.0 $ !;See if major section!
"S -3D Q5J 13I$ 10I$' !;Blank line before major sections!
.U2 L 2R .-Q2Um !;Get length of line!
Qm-66"G 66-QmD 66Um ' !;Truncate long lines!
Qm/2*2-Qm"NI.$ %m' !;If odd length, add a dot!
66-Qm/2<I .$> !;Dots....!
QxU3 !;Get page number!
0U2 Q3-9"G %2
Q3-99"G %2
Q3-999"G %2''' !;Count number of digits!
3-Q2<I $> Q3\ !;Insert page number!
Q5J Gc Q5,ZXc Q5,ZK Q1J !;Append line to Q-reg C!
'
'
Oloop$
'
!;Read in a page!
Qx-Qy"N ^o40,Qx= ^A^A QxUy ' !;Type page number to show progress!
^N"E EY <-1-^N; -1-^E; A> !;Read in entire page!
^YUx ^E"E %x' !;Get page number. Add 1 if no FF read!
Oloop$ !;Loop back till done!
' !;We're finished!
!done!
HK Q7EO ]7]z]y]x]t]m]a]6]5]4]3]2]1 EC
^A
[Finished. Table of Contents is in Q-register C]
^A