summaryrefslogtreecommitdiff
path: root/tmac/trace.tmac
diff options
context:
space:
mode:
authorwlemb <wlemb>2002-02-03 21:38:45 +0000
committerwlemb <wlemb>2002-02-03 21:38:45 +0000
commitc86a7e2260cb1395fd10cf0efd645f98ec4f7f3c (patch)
treed17af735e393aa019fbcb5730217d9f177bdf9bd /tmac/trace.tmac
parentd7c0243c3078cc4c8294ab7f93e94077e1077237 (diff)
downloadgroff-c86a7e2260cb1395fd10cf0efd645f98ec4f7f3c.tar.gz
Added three new requests `ds1', `as1', and `ami'. The former two
are equivalent to `ds' and `as' with the difference that compatibility mode is saved on entry, switched off during string expansion, and restored on exit. The latter is the pendant to `dei' for `am'. (do_define_string): Use `define_mode' and `calling mode'. Insert COMPATIBLE_SAVE and COMPATIBLE_RESTORE at the beginning and end of string, respectively. (define_string, append_string): Use `calling_mode'. (define_nocomp_string, append_nocomp_string, define_string_indirect): New functions. (init_input_requests): Updated. * NEWS, man/groff_diff.man, man/groff.man: Document it. * src/preproc/eqn/box.cc (box::top_level, box::extra_space): Use `as1' for assigning LINE_STRING (this is `10' usually). Sun's mm macro package accesses this string register directly. * src/preproc/eqn/main.cc (inline_equation): Use `as1'. * tmac/trace.tmac: Trace calls to `am' also. Make it work in compatibility mode.
Diffstat (limited to 'tmac/trace.tmac')
-rw-r--r--tmac/trace.tmac43
1 files changed, 34 insertions, 9 deletions
diff --git a/tmac/trace.tmac b/tmac/trace.tmac
index 143f9540..7019f030 100644
--- a/tmac/trace.tmac
+++ b/tmac/trace.tmac
@@ -2,28 +2,53 @@
.\"
.\" Load this before a macro package that you want to trace.
.
+.nr _C \n(.C
+.cp 0
+.
.eo
.
.rn de !!de
.
.!!de de
-. ecs
+. do ecs
. ec
-. !!de \$1
-. ie "\$1"\\$0" .tm *** trace enter: \\$0 \\$@
-. el .tm *** trace enter \$1: \\$0 \\$@
-. nop \\*[!!\$1]\\
+. do !!de \$1
+. ie "\$1"\\$0" .tm *** de trace enter: \\$0 \\$@
+. el .tm *** de trace enter \$1: \\$0 \\$@
+. do nop \\*[!!\$1]\\
. ie "\$1"\\$0" .tm *** trace exit: \\$0 \\$@
. el .tm *** trace exit \$1: \\$0 \\$@
\..
.
-. ds !!d1 !!\$1
-. ds !!d2 \$2
+. do ds !!d1 !!\$1
+. do ds !!d2 \$2
.
-. ecr
-. dei !!d1 !!d2
+. do ecr
+. do dei !!d1 !!d2
+..
+.
+.rn am !!am
+.
+.!!am am
+. do ecs
+. ec
+. do !!am \$1
+. ie "\$1"\\$0" .tm *** am trace enter: \\$0 \\$@
+. el .tm *** am trace enter \$1: \\$0 \\$@
+. do nop \\*[!!\$1]\\
+. ie "\$1"\\$0" .tm *** trace exit: \\$0 \\$@
+. el .tm *** trace exit \$1: \\$0 \\$@
+\..
+.
+. do ds !!a1 !!\$1
+. do ds !!a2 \$2
+.
+. do ecr
+. do ami !!a1 !!a2
..
.
.ec
.
+.cp \n(_C
+.
.\" EOF