gbranden pushed a commit to branch master in repository groff. commit 19a18bac52a9685bdc4a08ef1b24c22095da39ee Author: G. Branden Robinson <g.branden.robin...@gmail.com> AuthorDate: Thu May 9 19:06:31 2024 -0500
[troff]: Make `dbreak_node` class dump more info. * src/roff/troff/node.cpp (class dbreak_node): Add `dump_node` member function, overriding virtual function in `node` base class. (dbreak_node::dump_node): Disclose more information, namely the contents of any defined glyph nodes within. Now we can see where the missing "i" in "anti-" went. $ ./build/test-groff -Wbreak -Tutf8 EXPERIMENTS/hyphenated-dummy.groff {type: line_start_node, diversion level: 0}, {type: hyphen_inhibitor_node, diversion level: 0}, {type: glyph_node, character: "a", diversion level: 0}, {type: glyph_node, character: "n", diversion level: 0}, {type: glyph_node, character: "t", diversion level: 0}, {type: dbreak_node, diversion level: 0, none: {type: glyph_node, character: "i", diversion level: 0}, pre: {type: glyph_node, character: "\hy", diversion level: 0}}, {type: glyph_node, character: "d", diversion level: 0}, {type: glyph_node, character: "i", diversion level: 0}, {type: glyph_node, character: "s", diversion level: 0} {type: glyph_node, character: "i", diversion level: 0}, {type: glyph_node, character: "s", diversion level: 0}, {type: glyph_node, character: "m", diversion level: 0} anti‐ disestablishmen‐ tarian‐ ism --- ChangeLog | 8 ++++++++ src/roff/troff/node.cpp | 25 +++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/ChangeLog b/ChangeLog index 94c0b186e..babfd8e00 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2024-05-09 G. Branden Robinson <g.branden.robin...@gmail.com> + + * src/roff/troff/node.cpp (class dbreak_node): Add `dump_node` + member function, overriding virtual function in `node` base + class. + (dbreak_node::dump_node): Disclose more information, namely the + contents of any defined glyph nodes within. + 2024-05-09 G. Branden Robinson <g.branden.robin...@gmail.com> * src/roff/troff/node.cpp (glyph_node::dump_node) diff --git a/src/roff/troff/node.cpp b/src/roff/troff/node.cpp index d420490fd..b686b3b77 100644 --- a/src/roff/troff/node.cpp +++ b/src/roff/troff/node.cpp @@ -1992,6 +1992,7 @@ public: const char *type(); int force_tprint(); bool is_tag(); + void dump_node(); }; void *ligature_node::operator new(size_t n) @@ -5784,6 +5785,30 @@ bool dbreak_node::is_tag() return false; } +void dbreak_node::dump_node() +{ + fprintf(stderr, "{type: %s, ", type()); + if (push_state) + fprintf(stderr, "<push_state>, "); + if (state) + fprintf(stderr, "<state>, "); + fprintf(stderr, " diversion level: %d", div_nest_level); + if (none != 0 /* nullptr */) { + fputs(", none: ", stderr); + none->dump_node(); + } + if (pre != 0 /* nullptr */) { + fputs(", pre: ", stderr); + pre->dump_node(); + } + if (post != 0 /* nullptr */) { + fputs(", post: ", stderr); + post->dump_node(); + } + fprintf(stderr, "}"); + fflush(stderr); +} + bool break_char_node::is_same_as(node *nd) { return break_code == ((break_char_node *)nd)->break_code _______________________________________________ Groff-commit mailing list Groff-commit@gnu.org https://lists.gnu.org/mailman/listinfo/groff-commit