gbranden pushed a commit to branch master
in repository groff.
commit 1983fe71fbf5df81ec66358edea945b95b89b533
Author: G. Branden Robinson <[email protected]>
AuthorDate: Sun Dec 21 12:31:35 2025 -0600
[troff]: Refactor (2/2).
Move page offset access from language parser logic into "engine" logic.
* src/roff/troff/div.h: Drop unnecessary declaration of `page_offset()`
returning `void`. This concealed a latent symbol visibility problem.
(class top_level_diversion): Declare new member function
`get_previous_page_offset()`, giving it a simple inline definition
akin to the existing `get_page_offset()`.
* src/roff/troff/div.cpp (page_offset): Make request handler use
accessor member functions instead of retrieving the diversion's
properties directly.
---
ChangeLog | 15 +++++++++++++++
src/roff/troff/div.cpp | 4 ++--
src/roff/troff/div.h | 2 +-
3 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 48ad2340a..47b1078d5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2025-12-21 G. Branden Robinson <[email protected]>
+
+ [troff]: Refactor. Move page offset access from language
+ parser logic into "engine" logic.
+
+ * src/roff/troff/div.h: Drop unnecessary declaration of
+ `page_offset()` returning `void`. This concealed a latent
+ symbol visibility problem.
+ (class top_level_diversion): Declare new member function
+ `get_previous_page_offset()`, giving it a simple inline
+ definition akin to the existing `get_page_offset()`.
+ * src/roff/troff/div.cpp (page_offset): Make request handler
+ use accessor member functions instead of retrieving the
+ diversion's properties directly.
+
2025-12-21 G. Branden Robinson <[email protected]>
[troff]: Refactor. Move page offset updates from language
diff --git a/src/roff/troff/div.cpp b/src/roff/troff/div.cpp
index 98251851c..c99ecb34a 100644
--- a/src/roff/troff/div.cpp
+++ b/src/roff/troff/div.cpp
@@ -741,8 +741,8 @@ void page_offset()
// The troff manual says that the default scaling indicator is v,
// but it is in fact m: v wouldn't make sense for a horizontally
// oriented request.
- if (!has_arg() || !read_hunits(&n, 'm', topdiv->page_offset))
- n = topdiv->prev_page_offset;
+ if (!has_arg() || !read_hunits(&n, 'm', topdiv->get_page_offset()))
+ n = topdiv->get_previous_page_offset();
topdiv->set_page_offset(n);
topdiv->modified_tag.incl(MTSM_PO);
skip_line();
diff --git a/src/roff/troff/div.h b/src/roff/troff/div.h
index e43a56292..912b43d0c 100644
--- a/src/roff/troff/div.h
+++ b/src/roff/troff/div.h
@@ -18,7 +18,6 @@ along with this program. If not, see
<http://www.gnu.org/licenses/>. */
void do_divert(bool /* appending */, bool /* boxing */);
void end_diversions();
-void page_offset();
class diversion {
friend void do_divert(bool /* appending */, bool /* boxing */);
@@ -125,6 +124,7 @@ public:
void vjustify(symbol);
#endif /* COLUMN */
hunits get_page_offset() { return page_offset; }
+ hunits get_previous_page_offset() { return prev_page_offset; }
void set_page_offset(hunits /* h */);
vunits get_page_length() { return page_length; }
vunits distance_to_next_trap();
_______________________________________________
groff-commit mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit