gbranden pushed a commit to branch master
in repository groff.

commit 5a7f55c3dc68f171c233c2ad78cfb825ce37d15e
Author: G. Branden Robinson <g.branden.robin...@gmail.com>
AuthorDate: Sun Mar 16 23:23:19 2025 -0500

    Revert "[troff]: Trivially refactor."
    
    Turns out I need `dump_node_list_in_reverse()` in node.cpp after all,
    because `composite_node`s essentially embed output lines within
    themselves, which means the node list they contain is in reverse.
    
    This reverts commit 3336497f15ba63b1a91a11afe692f1ab2fe470f4.
---
 ChangeLog               |  8 --------
 src/roff/troff/env.cpp  | 27 +--------------------------
 src/roff/troff/node.cpp | 28 ++++++++++++++++++++++++++++
 3 files changed, 29 insertions(+), 34 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index be2460620..91872a259 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -67,14 +67,6 @@
        `char_list` `cl` member variable's elements, calling
        `json_encode_char()` on each one.
 
-2025-03-15  G. Branden Robinson <g.branden.robin...@gmail.com>
-
-       [troff]: Trivially refactor.
-
-       * src/roff/troff/node.cpp: Relocate `dump_node_list_in_reverse`
-       function from here...
-       * src/roff/troff/env.cpp: ...to here.
-
 2025-03-15  G. Branden Robinson <g.branden.robin...@gmail.com>
 
        * src/roff/troff/node.cpp (class kern_pair_node): Add
diff --git a/src/roff/troff/env.cpp b/src/roff/troff/env.cpp
index fb81a1dc9..37dd7954c 100644
--- a/src/roff/troff/env.cpp
+++ b/src/roff/troff/env.cpp
@@ -2418,32 +2418,7 @@ void environment::dump_troff_state()
 #undef SPACES
 }
 
-static void dump_node_list_in_reverse(node *nlist)
-{
-  // It's stored in reverse order already; this puts it forward again.
-  std::stack<node *> reversed_node_list;
-  node *n = nlist;
-
-  while (n != 0 /* nullptr */) {
-    reversed_node_list.push(n);
-    n = n->next;
-  }
-  fputc('[', stderr);
-  bool need_comma = false;
-  while (!reversed_node_list.empty()) {
-    if (need_comma)
-      fputs(",\n", stderr);
-    reversed_node_list.top()->dump_node();
-    reversed_node_list.pop();
-    need_comma = true;
-  }
-  // !need_comma implies that the list was empty.  JSON convention is to
-  // put a space between an empty pair of square brackets.
-  if (!need_comma)
-    fputc(' ', stderr);
-  fputs("]\n", stderr);
-  fflush(stderr);
-}
+extern void dump_node_list_in_reverse(node *);
 
 void environment::dump_pending_nodes()
 {
diff --git a/src/roff/troff/node.cpp b/src/roff/troff/node.cpp
index de5c8e4c3..6bbd1e915 100644
--- a/src/roff/troff/node.cpp
+++ b/src/roff/troff/node.cpp
@@ -2742,6 +2742,34 @@ void container_node::dump_node()
   fflush(stderr);
 }
 
+// TODO: Move this into env.cpp.
+void dump_node_list_in_reverse(node *nlist)
+{
+  // It's stored in reverse order already; this puts it forward again.
+  std::stack<node *> reversed_node_list;
+  node *n = nlist;
+
+  while (n != 0 /* nullptr */) {
+    reversed_node_list.push(n);
+    n = n->next;
+  }
+  fputc('[', stderr);
+  bool need_comma = false;
+  while (!reversed_node_list.empty()) {
+    if (need_comma)
+      fputs(",\n", stderr);
+    reversed_node_list.top()->dump_node();
+    reversed_node_list.pop();
+    need_comma = true;
+  }
+  // !need_comma implies that the list was empty.  JSON convention is to
+  // put a space between an empty pair of square brackets.
+  if (!need_comma)
+    fputc(' ', stderr);
+  fputs("]\n", stderr);
+  fflush(stderr);
+}
+
 hunits kern_pair_node::width()
 {
   return n1->width() + n2->width() + amount;

_______________________________________________
groff-commit mailing list
groff-commit@gnu.org
https://lists.gnu.org/mailman/listinfo/groff-commit

Reply via email to