gbranden pushed a commit to branch master in repository groff. commit fa89cbcb4e16d618d562c7a8118daa9d2b98e1e9 Author: G. Branden Robinson <g.branden.robin...@gmail.com> AuthorDate: Sun Mar 2 22:46:57 2025 -0600
[troff]: Implement recursive node dumping (5a/9). * src/roff/troff/node.h (class space_node): Specialize (override) `dump_properties()` for this class. * src/roff/troff/node.cpp (space_node::dump_properties): New member function reports value of `hunits` property. Changes `pline` request output as follows. -{"type": "word_space_node", "diversion level": 0, "is_special_node": false, "hunits": 2500}] +{"type": "word_space_node", "diversion level": 0, "is_special_node": false, "hunits": 2500, "undiscardable": false, "is hyphenless breakpoint": false, "terminal_color": "default"}] -{"type": "space_node", "diversion level": 0, "is_special_node": false}, +{"type": "space_node", "diversion level": 0, "is_special_node": false, "hunits": 0}, -{"type": "space_node", "diversion level": 0, "is_special_node": false}, +{"type": "space_node", "diversion level": 0, "is_special_node": false, "hunits": 0, "undiscardable": true, "is hyphenless breakpoint": true, "terminal_color": "default"}, --- ChangeLog | 7 +++++++ src/roff/troff/node.cpp | 12 ++++++++++++ src/roff/troff/node.h | 1 + 3 files changed, 20 insertions(+) diff --git a/ChangeLog b/ChangeLog index 0da838c93..43b70b7af 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2025-03-02 G. Branden Robinson <g.branden.robin...@gmail.com> + + * src/roff/troff/node.h (class space_node): Specialize + {override} `dump_properties()` for this class. + * src/roff/troff/node.cpp (space_node::dump_properties): New + member function reports value of `hunits` property. + 2025-03-02 G. Branden Robinson <g.branden.robin...@gmail.com> * src/roff/troff/node.cpp (class charinfo_node): Declare diff --git a/src/roff/troff/node.cpp b/src/roff/troff/node.cpp index dfc451ba6..76ad72331 100644 --- a/src/roff/troff/node.cpp +++ b/src/roff/troff/node.cpp @@ -3293,6 +3293,18 @@ space_node::space_node(hunits nn, int s, int flag, color *c, statem *st, { } +void space_node::dump_properties() +{ + node::dump_properties(); + fprintf(stderr, ", \"hunits\": %d", n.to_units()); + fprintf(stderr, ", \"undiscardable\": %s", set ? "true" : "false"); + fprintf(stderr, ", \"is hyphenless breakpoint\": %s", + was_escape_colon ? "true" : "false"); + fputs(", \"terminal_color\": ", stderr); + col->nm.json_dump(); + fflush(stderr); +} + #if 0 space_node::~space_node() { diff --git a/src/roff/troff/node.h b/src/roff/troff/node.h index 2af7662b0..1cad968cf 100644 --- a/src/roff/troff/node.h +++ b/src/roff/troff/node.h @@ -220,6 +220,7 @@ public: bool causes_tprint(); bool is_tag(); hyphenation_type get_hyphenation_type(); + void dump_properties(); }; struct width_list { _______________________________________________ groff-commit mailing list groff-commit@gnu.org https://lists.gnu.org/mailman/listinfo/groff-commit