3 .\" Load this before a macro package that you want to trace.
18 . do !!substring !!!inc 0 0
20 . do tm1 "\*[!!!sp]*** .nr \$* (-> \n[\$1])
29 . do tm1 "\*[!!!sp]*** .ds \$^
34 . do tm1 "\*[!!!sp]*** .ds1 \$^
39 . do tm1 "\*[!!!sp]*** .as \$^
44 . do tm1 "\*[!!!sp]*** .as1 \$^
55 . do ie \\n[.br] .!!ds !!!br .\"
56 . el .do !!ds !!!br '\"
57 . ie "\$1"\\$0" .do tm1 "\\*[!!!sp]*** de trace enter: \\*[!!!br]\\$0 \\$@
58 . el .do tm1 "\\*[!!!sp]*** de trace enter \$1: \\*[!!!br]\\$0 \\$@
60 . do ie \\n[.br] .do !!\\$0 \\$@
62 . do !!substring !!!sp 1
63 . do ie \\n[.br] .!!ds !!!br .\"
64 . el .do !!ds !!!br '\"
65 . ie "\$1"\\$0" .do tm1 "\\*[!!!sp]*** trace exit: \\*[!!!br]\\$0 \\$@
66 . el .do tm1 "\\*[!!!sp]*** trace exit \$1: \\*[!!!br]\\$0 \\$@
80 . do ie \\n[.br] .!!ds !!!br .\"
81 . el .do !!ds !!!br '\"
82 . ie "\$1"\\$0" .do tm1 "\\*[!!!sp]*** de1 trace enter: \\*[!!!br]\\$0 \\$@
83 . el .do tm1 "\\*[!!!sp]*** de1 trace enter \$1: \\*[!!!br]\\$0 \\$@
85 . do ie \\n[.br] .do !!\\$0 \\$@
87 . do !!substring !!!sp 1
88 . do ie \\n[.br] .!!ds !!!br .\"
89 . el .do !!ds !!!br '\"
90 . ie "\$1"\\$0" .do tm1 "\\*[!!!sp]*** trace exit: \\*[!!!br]\\$0 \\$@
91 . el .do tm1 "\\*[!!!sp]*** trace exit \$1: \\*[!!!br]\\$0 \\$@
108 . do ie \\n[.br] .!!ds !!!br .\"
109 . el .do !!ds !!!br '\"
110 . ie "\$1"\\$0" .do tm1 "\\*[!!!sp]*** am trace enter: \\*[!!!br]\\$0 \\$@
111 . el .do tm1 "\\*[!!!sp]*** am trace enter \$1: \\*[!!!br]\\$0 \\$@
113 . do ie \\n[.br] .do !!\\$0 \\$@
115 . do !!substring !!!sp 1
116 . do ie \\n[.br] .!!ds !!!br .\"
117 . el .do !!ds !!!br '\"
118 . ie "\$1"\\$0" .do tm1 "\\*[!!!sp]*** trace exit: \\*[!!!br]\\$0 \\$@
119 . el .do tm1 "\\*[!!!sp]*** trace exit \$1: \\*[!!!br]\\$0 \\$@
133 . do ie \\n[.br] .!!ds !!!br .\"
134 . el .do !!ds !!!br '\"
135 . ie "\$1"\\$0" .do tm1 "\\*[!!!sp]*** am1 trace enter: \\*[!!!br]\\$0 \\$@
136 . el .do tm1 "\\*[!!!sp]*** am1 trace enter \$1: \\*[!!!br]\\$0 \\$@
138 . do ie \\n[.br] .do !!\\$0 \\$@
140 . do !!substring !!!sp 1
141 . do ie \\n[.br] .!!ds !!!br .\"
142 . el .do !!ds !!!br '\"
143 . ie "\$1"\\$0" .do tm1 "\\*[!!!sp]*** trace exit: \\*[!!!br]\\$0 \\$@
144 . el .do tm1 "\\*[!!!sp]*** trace exit \$1: \\*[!!!br]\\$0 \\$@
157 . tm1 "\*[!!!sp]*** return
161 .rn substring !!substring
165 . tm1 "\*[!!!sp]*** .substring \$* (-> `\*[\$1]')
174 . tm1 "\*[!!!sp]*** .als \$1 \$2