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