gbranden pushed a commit to branch master
in repository groff.
commit 5a7f55c3dc68f171c233c2ad78cfb825ce37d15e
Author: G. Branden Robinson <[email protected]>
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 <[email protected]>
-
- [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 <[email protected]>
* 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
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit