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

Reply via email to