summaryrefslogtreecommitdiff
path: root/tmac/trace.tmac
diff options
context:
space:
mode:
authorwl <wl>2006-04-04 20:20:03 +0000
committerwl <wl>2006-04-04 20:20:03 +0000
commitdbc2938995b9724fb06930dcd7f4b4af833793bf (patch)
treee0b0a8988ac64baf2a07d2e8451293596e3e604c /tmac/trace.tmac
parent8de88e49f386e53ed293ee62a48d66fd8c67ccbe (diff)
downloadgroff-dbc2938995b9724fb06930dcd7f4b4af833793bf.tar.gz
Implement new number register `.br' which is set to 1 if a macro has
been called as .foo and to 0 if called as 'bar. This is useful for -mtrace so that requests can be reliably traced too. * src/roff/troff/input.cpp (input_iterator): Add virtual function `get_break_flag'. (macro_iterator): Add `with_break' member and `get_break_flag' function. Update constructors. (input_stack): Add function `get_break_flag'. (break_flag_reg): New number register class. (input_init_requests): Register `.br'. * src/roff/troff/TODO: Updated. * tmac/trace.tmac: s/!!sp/!!!sp/. Modify definitions of `de', `de1', `am', and `am1' to use \n[.br]. * docs/groff.texinfo, man/groff.man, man/groff_diff.man, NEWS: Document it.
Diffstat (limited to 'tmac/trace.tmac')
-rw-r--r--tmac/trace.tmac82
1 files changed, 51 insertions, 31 deletions
diff --git a/tmac/trace.tmac b/tmac/trace.tmac
index 286c605b..fbe295fd 100644
--- a/tmac/trace.tmac
+++ b/tmac/trace.tmac
@@ -5,7 +5,7 @@
.nr _C \n(.C
.cp 0
.
-.do ds !!sp " \"
+.do ds !!!sp " \"
.
.eo
.
@@ -17,13 +17,18 @@
. do ecs
. ec
. do !!de \$1
-. ie "\$1"\\$0" .do tm1 "\\*[!!sp]*** de trace enter: \\$0 \\$@
-. el .do tm1 "\\*[!!sp]*** de trace enter \$1: \\$0 \\$@
-. do as !!sp " \"
-. do nop \\*[!!\$1]\\
-. do substring !!sp 1
-. ie "\$1"\\$0" .do tm1 "\\*[!!sp]*** trace exit: \\$0 \\$@
-. el .do tm1 "\\*[!!sp]*** trace exit \$1: \\$0 \\$@
+. do ie \\n[.br] .ds !!!br .\"
+. el .do ds !!!br '\"
+. ie "\$1"\\$0" .do tm1 "\\*[!!!sp]*** de trace enter: \\*[!!!br]\\$0 \\$@
+. el .do tm1 "\\*[!!!sp]*** de trace enter \$1: \\*[!!!br]\\$0 \\$@
+. do as !!!sp " \"
+. do ie \\n[.br] .do !!\$1 \\$@
+. el 'do !!\$1 \\$@
+. do substring !!!sp 1
+. do ie \\n[.br] .ds !!!br .\"
+. el .do ds !!!br '\"
+. ie "\$1"\\$0" .do tm1 "\\*[!!!sp]*** trace exit: \\*[!!!br]\\$0 \\$@
+. el .do tm1 "\\*[!!!sp]*** trace exit \$1: \\*[!!!br]\\$0 \\$@
\..
.
. do ds !!d1 !!\$1
@@ -37,13 +42,18 @@
. do ecs
. ec
. do !!de \$1
-. ie "\$1"\\$0" .do tm1 "\\*[!!sp]*** de1 trace enter: \\$0 \\$@
-. el .do tm1 "\\*[!!sp]*** de1 trace enter \$1: \\$0 \\$@
-. do as !!sp " \"
-. do nop \\*[!!\$1]\\
-. do substring !!sp 1
-. ie "\$1"\\$0" .do tm1 "\\*[!!sp]*** trace exit: \\$0 \\$@
-. el .do tm1 "\\*[!!sp]*** trace exit \$1: \\$0 \\$@
+. do ie \\n[.br] .ds !!!br .\"
+. el .do ds !!!br '\"
+. ie "\$1"\\$0" .do tm1 "\\*[!!!sp]*** de1 trace enter: \\*[!!!br]\\$0 \\$@
+. el .do tm1 "\\*[!!!sp]*** de1 trace enter \$1: \\*[!!!br]\\$0 \\$@
+. do as !!!sp " \"
+. do ie \\n[.br] .di !!\$1 \\$@
+. el 'do !!\$1 \\$@
+. do substring !!!sp 1
+. do ie \\n[.br] .ds !!!br .\"
+. el .do ds !!!br '\"
+. ie "\$1"\\$0" .do tm1 "\\*[!!!sp]*** trace exit: \\$0 \\$@
+. el .do tm1 "\\*[!!!sp]*** trace exit \$1: \\$0 \\$@
\..
.
. do ds !!d1 !!\$1
@@ -60,13 +70,18 @@
. do ecs
. ec
. do !!de \$1
-. ie "\$1"\\$0" .do tm1 "\\*[!!sp]*** am trace enter: \\$0 \\$@
-. el .do tm1 "\\*[!!sp]*** am trace enter \$1: \\$0 \\$@
-. do as !!sp " \"
-. do nop \\*[!!\$1]\\
-. do substring !!sp 1
-. ie "\$1"\\$0" .do tm1 "\\*[!!sp]*** trace exit: \\$0 \\$@
-. el .do tm1 "\\*[!!sp]*** trace exit \$1: \\$0 \\$@
+. do ie \\n[.br] .ds !!!br .\"
+. el .do ds !!!br '\"
+. ie "\$1"\\$0" .do tm1 "\\*[!!!sp]*** am trace enter: \\*[!!!br]\\$0 \\$@
+. el .do tm1 "\\*[!!!sp]*** am trace enter \$1: \\*[!!!br]\\$0 \\$@
+. do as !!!sp " \"
+. do ie \\n[.br] .do !!\$1 \\$@
+. el 'do !!\$1 \\$@
+. do substring !!!sp 1
+. do ie \\n[.br] .ds !!!br .\"
+. el .do ds !!!br '\"
+. ie "\$1"\\$0" .do tm1 "\\*[!!!sp]*** trace exit: \\*[!!!br]\\$0 \\$@
+. el .do tm1 "\\*[!!!sp]*** trace exit \$1: \\*[!!!br]\\$0 \\$@
\..
.
. do ds !!a1 !!\$1
@@ -80,13 +95,18 @@
. do ecs
. ec
. do !!de \$1
-. ie "\$1"\\$0" .do tm1 "\\*[!!sp]*** am1 trace enter: \\$0 \\$@
-. el .do tm1 "\\*[!!sp]*** am1 trace enter \$1: \\$0 \\$@
-. do as !!sp " \"
-. do nop \\*[!!\$1]\\
-. do substring !!sp 1
-. ie "\$1"\\$0" .do tm1 "\\*[!!sp]*** trace exit: \\$0 \\$@
-. el .do tm1 "\\*[!!sp]*** trace exit \$1: \\$0 \\$@
+. do ie \\n[.br] .ds !!!br .\"
+. el .do ds !!!br '\"
+. ie "\$1"\\$0" .do tm1 "\\*[!!!sp]*** am1 trace enter: \\*[!!!br]\\$0 \\$@
+. el .do tm1 "\\*[!!!sp]*** am1 trace enter \$1: \\*[!!!br]\\$0 \\$@
+. do as !!!sp " \"
+. do ie \\n[.br] .do !!\$1 \\$@
+. el 'do !!\$1 \\$@
+. do substring !!!sp 1
+. do ie \\n[.br] .ds !!!br .\"
+. el .do ds !!!br '\"
+. ie "\$1"\\$0" .do tm1 "\\*[!!!sp]*** trace exit: \\*[!!!br]\\$0 \\$@
+. el .do tm1 "\\*[!!!sp]*** trace exit \$1: \\*[!!!br]\\$0 \\$@
\..
.
. do ds !!a1 !!\$1
@@ -99,8 +119,8 @@
.rn return !!return
.
.!!de1 return
-. substring !!sp 1
-. tm1 "\*[!!sp]*** return
+. substring !!!sp 1
+. tm1 "\*[!!!sp]*** return
. !!return twice
..
.