gbranden pushed a commit to branch master in repository groff. commit cdb50249e92622a7f34e04b180d80059847b1edd Author: G. Branden Robinson <g.branden.robin...@gmail.com> AuthorDate: Mon Mar 3 03:49:06 2025 -0600
[troff]: Implement recursive node dumping (5m/9). * src/roff/troff/node.h (class device_extension_node): Specialize {override} `dump_properties()` for this class. * src/roff/troff/node.cpp (device_extension_node::dump_properties): New member function reports values of `tfont`, `stroke_color`, and `fill_color` properties. Changes `pline` request output as follows. -{"type": "device_extension_node", "diversion level": 0, "is_special_node": true}, +{"type": "device_extension_node", "diversion level": 0, "is_special_node": true, "tfont": "TR", "stroke_color": "default", "fill_color": "default"}, --- ChangeLog | 9 +++++++++ src/roff/troff/node.cpp | 13 +++++++++++++ src/roff/troff/node.h | 1 + 3 files changed, 23 insertions(+) diff --git a/ChangeLog b/ChangeLog index 797fe7104..7928e4771 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2025-03-03 G. Branden Robinson <g.branden.robin...@gmail.com> + + * src/roff/troff/node.h (class device_extension_node): + Specialize {override} `dump_properties()` for this class. + * src/roff/troff/node.cpp + (device_extension_node::dump_properties): New member function + reports values of `tfont`, `stroke_color`, and `fill_color` + properties. + 2025-03-03 G. Branden Robinson <g.branden.robin...@gmail.com> * src/roff/troff/node.h (class bracket_node): Specialize diff --git a/src/roff/troff/node.cpp b/src/roff/troff/node.cpp index 51dfb458a..83df3e903 100644 --- a/src/roff/troff/node.cpp +++ b/src/roff/troff/node.cpp @@ -4073,6 +4073,19 @@ device_extension_node::device_extension_node(const macro &m, tfont *t, { } +void device_extension_node::dump_properties() +{ + node::dump_properties(); + // TODO: Implement `macro::dump()` and call it on `mac` from here. + fputs(", \"tfont\": ", stderr); + tf->get_name().json_dump(); + fputs(", \"stroke_color\": ", stderr); + gcol->nm.json_dump(); + fputs(", \"fill_color\": ", stderr); + fcol->nm.json_dump(); + fflush(stderr); +} + bool device_extension_node::is_same_as(node *n) { return ((mac == static_cast<device_extension_node *>(n)->mac) diff --git a/src/roff/troff/node.h b/src/roff/troff/node.h index 3a3f85f1d..f4a527999 100644 --- a/src/roff/troff/node.h +++ b/src/roff/troff/node.h @@ -594,6 +594,7 @@ public: bool is_tag(); int ends_sentence(); tfont *get_tfont(); + void dump_properties(); }; class suppress_node : public node { _______________________________________________ groff-commit mailing list groff-commit@gnu.org https://lists.gnu.org/mailman/listinfo/groff-commit