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