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