diff options
author | wl <wl> | 2006-04-04 20:20:03 +0000 |
---|---|---|
committer | wl <wl> | 2006-04-04 20:20:03 +0000 |
commit | dbc2938995b9724fb06930dcd7f4b4af833793bf (patch) | |
tree | e0b0a8988ac64baf2a07d2e8451293596e3e604c /tmac/trace.tmac | |
parent | 8de88e49f386e53ed293ee62a48d66fd8c67ccbe (diff) | |
download | groff-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.tmac | 82 |
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 .. . |