summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--src/roff/troff/env.cpp3
-rw-r--r--tmac/an-old.tmac20
3 files changed, 26 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index a14b14da..1556d7a2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2006-05-26 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-old.tmac (an-do-tag): Make margin characters work.
+
+ * src/roff/troff/env.cpp (environment::copy): Copy margin character
+ node.
+
2006-05-21 Werner LEMBERG <wl@gnu.org>
* tmac/trace.tmac (de1): Fix serious typo (.di -> .do) and minor
@@ -4400,7 +4407,7 @@ Version 1.19.1 released
(doc-str-Rv-std-suffix, doc-str-Rv-stds-suffix, doc-str-Rv-std0):
Use minus, not hyphen.
- * tmc/groff_mdoc.man: Updated.
+ * tmac/groff_mdoc.man: Updated.
2003-07-01 Werner LEMBERG <wl@gnu.org>
diff --git a/src/roff/troff/env.cpp b/src/roff/troff/env.cpp
index 117c610a..a24142c5 100644
--- a/src/roff/troff/env.cpp
+++ b/src/roff/troff/env.cpp
@@ -837,7 +837,8 @@ void environment::copy(const environment *e)
current_tab = TAB_NONE;
current_field = 0;
margin_character_flags = e->margin_character_flags;
- margin_character_node = e->margin_character_node;
+ if (e->margin_character_node)
+ margin_character_node = e->margin_character_node->copy();
margin_character_distance = e->margin_character_distance;
numbering_nodes = 0;
number_text_separation = e->number_text_separation;
diff --git a/tmac/an-old.tmac b/tmac/an-old.tmac
index b51f2e2f..5be56c70 100644
--- a/tmac/an-old.tmac
+++ b/tmac/an-old.tmac
@@ -417,10 +417,17 @@
. di
. nr an-div? 0
. ll
+. \" We must emit the diversion in a separate environment to
+. \" assure that a possible margin character is printed correctly.
. ie (\\n[dl] + \\n[an-tag-sep] > \\n[an-prevailing-indent]) \{\
+. ev 2
+. evc 0
+. mc
+. nf
. in \\n[an-margin]u
. ne (2v + 1u)
. an-div
+. ev
. in (\\n[an-margin]u + \\n[an-prevailing-indent]u)
. \}
. el \{\
@@ -428,12 +435,17 @@
. \" of the character cell, it is possible that the following combination
. \" of .in and .ti yields a different result as the .in request in
. \" the .ie part above.
-. in (\\n[an-margin]u + \\n[an-prevailing-indent]u)
-. ti -\\n[an-prevailing-indent]u
-. chop an-div
+. ev 2
+. evc 0
+. mc
+. nf
+. in \\n[an-margin]u
. ne (1v + 1u)
. DEVTAG-COL 1
-\\*[an-div]\\h'|\\n[an-prevailing-indent]u'\c
+. an-div
+. sp -1
+. ev
+. in (\\n[an-margin]u + \\n[an-prevailing-indent]u)
. DEVTAG-COL-NEXT 2
. \}
..