3 .\" Load this before a macro package that you want to trace.
20 . do tm1 "\*[!!!sp]*** .nr \$* (-> \n[\$1])
32 . do tm1 "\*[!!!sp]*** .ds \$^
40 . do tm1 "\*[!!!sp]*** .ds1 \$^
48 . do tm1 "\*[!!!sp]*** .as \$^
56 . do tm1 "\*[!!!sp]*** .as1 \$^
68 . do ie \\n[.br] .!!ds !!!br .\"
69 . el .do !!ds !!!br '\"
70 . ie "\$1"\\$0" .do tm1 "\\*[!!!sp]*** de trace enter: \\*[!!!br]\\$0 \\$@
71 . el .do tm1 "\\*[!!!sp]*** de trace enter \$1: \\*[!!!br]\\$0 \\$@
73 . do ie \\n[.br] .do !!\\$0 \\$@
75 . do !!substring !!!sp 1
76 . do ie \\n[.br] .!!ds !!!br .\"
77 . el .do !!ds !!!br '\"
78 . ie "\$1"\\$0" .do tm1 "\\*[!!!sp]*** trace exit: \\*[!!!br]\\$0 \\$@
79 . el .do tm1 "\\*[!!!sp]*** trace exit \$1: \\*[!!!br]\\$0 \\$@
93 . do ie \\n[.br] .!!ds !!!br .\"
94 . el .do !!ds !!!br '\"
95 . ie "\$1"\\$0" .do tm1 "\\*[!!!sp]*** de1 trace enter: \\*[!!!br]\\$0 \\$@
96 . el .do tm1 "\\*[!!!sp]*** de1 trace enter \$1: \\*[!!!br]\\$0 \\$@
98 . do ie \\n[.br] .do !!\\$0 \\$@
100 . do !!substring !!!sp 1
101 . do ie \\n[.br] .!!ds !!!br .\"
102 . el .do !!ds !!!br '\"
103 . ie "\$1"\\$0" .do tm1 "\\*[!!!sp]*** trace exit: \\*[!!!br]\\$0 \\$@
104 . el .do tm1 "\\*[!!!sp]*** trace exit \$1: \\*[!!!br]\\$0 \\$@
121 . do ie \\n[.br] .!!ds !!!br .\"
122 . el .do !!ds !!!br '\"
123 . ie "\$1"\\$0" .do tm1 "\\*[!!!sp]*** am trace enter: \\*[!!!br]\\$0 \\$@
124 . el .do tm1 "\\*[!!!sp]*** am trace enter \$1: \\*[!!!br]\\$0 \\$@
126 . do ie \\n[.br] .do !!\\$0 \\$@
128 . do !!substring !!!sp 1
129 . do ie \\n[.br] .!!ds !!!br .\"
130 . el .do !!ds !!!br '\"
131 . ie "\$1"\\$0" .do tm1 "\\*[!!!sp]*** trace exit: \\*[!!!br]\\$0 \\$@
132 . el .do tm1 "\\*[!!!sp]*** trace exit \$1: \\*[!!!br]\\$0 \\$@
146 . do ie \\n[.br] .!!ds !!!br .\"
147 . el .do !!ds !!!br '\"
148 . ie "\$1"\\$0" .do tm1 "\\*[!!!sp]*** am1 trace enter: \\*[!!!br]\\$0 \\$@
149 . el .do tm1 "\\*[!!!sp]*** am1 trace enter \$1: \\*[!!!br]\\$0 \\$@
151 . do ie \\n[.br] .do !!\\$0 \\$@
153 . do !!substring !!!sp 1
154 . do ie \\n[.br] .!!ds !!!br .\"
155 . el .do !!ds !!!br '\"
156 . ie "\$1"\\$0" .do tm1 "\\*[!!!sp]*** trace exit: \\*[!!!br]\\$0 \\$@
157 . el .do tm1 "\\*[!!!sp]*** trace exit \$1: \\*[!!!br]\\$0 \\$@
170 . tm1 "\*[!!!sp]*** return
174 .rn substring !!substring
180 . tm1 "\*[!!!sp]*** .substring \$* (-> `\*[\$1]')
190 . tm1 "\*[!!!sp]*** .als \$1 \$2
199 . tm1 "\*[!!!sp]*** .rn \$1 \$2