1 ! Read in segment. !
 2 ]n qn,1"l :t/Usage:  teco$macro newet name
 3 / eq'
 4 ]n gn zj z,3"l i/.et/ :' 3r :"m/.et/ zj i/.et/''
 5 hxn hk eiqn
 6 
 7 ! Macros to strip trailing and leading blanks. !
 8 :is/<:"m| | 0;' 1d>/
 9 :it/<0a,40."n 0;' -1d>/
10 
11 ! Macro to delete comment fields. !
12 :im#"m|/*| .u1 s|*/| q1,.k -1 :' 0 '#
13 
14 ! Macro to find and skip message body. !
15 :ip/<mm "m|,| s|;| 0;
16 :' 1c '>/
17 
18 ! Delete all comments. !
19 j <.-z;
20 mm "m|:| 1c mp
21 :' 1c '>
22 
23 ! Delete all tabs. !
24 j <:s/    /; -1d>
25 
26 ! Double double quotes. !
27 j <:s/"/; i/"/>
28 
29 ! Remove all extraneous newlines and white space. !
30 j <:s/
31 /; -1d>
32 j <:s/;/; i/
33 / ms >
34 
35 ! Determine if system error table. !
36 j 0uy
37 :s/system;/"n %y$ 0kk '
38 
39 ! Remove end statement. !
40 s/
41 end;/ 0kk
42 
43 ! Insert beginning lines. !
44 ji/
45           include   et_macros
46 
47 ^L
48 
49           et        / gn -3d qy,1"e i/,system/ ' i/
50 
51 ^L
52 
53 / -1l
54 
55 ! Have at it. !
56 <1l .-z;
57 i/ec  /
58 s/,/ -1d mt ms i/
59 / -1l
60 0ul
61 <1,1:s/:/;
62 -1d mt i/,/ ms %l$>
63 ql,1"g -1c i/)/ 0l s/  / -1di/(/ '
64 :l i/,/
65 1li/      (/ :l -1di/)/>
66 
67 ! Insert end statement. !
68 
69 i/
70 
71           end
72 /$
73 
74 ! Write out segment and exit. !
75 .u1 gn zj -3d i/.alm/ q1,zxn 0k
76 eoqn eq