gbranden pushed a commit to branch master
in repository groff.

commit c6ccf9ea7297f7d7cbe5edb3332e82556d28bdc7
Author: G. Branden Robinson <g.branden.robin...@gmail.com>
AuthorDate: Mon Mar 3 03:25:06 2025 -0600

    [troff]: Implement recursive node dumping (5l/9).
    
    * src/roff/troff/node.h (class bracket_node): Specialize (override)
      `dump_properties()` for this class.
    
    * src/roff/troff/node.cpp (bracket_node::dump_properties): New member
      function reports value of `max_width` property.
    
    Changes `pline` request output as follows.
    
    -{"type": "bracket_node", "diversion level": 0, "is_special_node": false},
    +{"type": "bracket_node", "diversion level": 0, "is_special_node": false, 
"max_width": 5640},
---
 ChangeLog               | 7 +++++++
 src/roff/troff/node.cpp | 7 +++++++
 src/roff/troff/node.h   | 2 ++
 3 files changed, 16 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 9b85fc47e..797fe7104 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2025-03-03  G. Branden Robinson <g.branden.robin...@gmail.com>
+
+       * src/roff/troff/node.h (class bracket_node): Specialize
+       {override} `dump_properties()` for this class.
+       * src/roff/troff/node.cpp (bracket_node::dump_properties):
+       New member function reports value of `max_width` property.
+
 2025-03-03  G. Branden Robinson <g.branden.robin...@gmail.com>
 
        * src/roff/troff/node.h (class overstrike_node): Specialize
diff --git a/src/roff/troff/node.cpp b/src/roff/troff/node.cpp
index f4a8d589e..51dfb458a 100644
--- a/src/roff/troff/node.cpp
+++ b/src/roff/troff/node.cpp
@@ -3287,6 +3287,13 @@ bracket_node::bracket_node(statem *s, int divlevel)
 {
 }
 
+void bracket_node::dump_properties()
+{
+  node::dump_properties();
+  fprintf(stderr, ", \"max_width\": %d", max_width.to_units());
+  fflush(stderr);
+}
+
 bracket_node::~bracket_node()
 {
   delete_node_list(nodes);
diff --git a/src/roff/troff/node.h b/src/roff/troff/node.h
index 4ab5e3aa8..3a3f85f1d 100644
--- a/src/roff/troff/node.h
+++ b/src/roff/troff/node.h
@@ -551,6 +551,7 @@ public:
   void dump_properties();
 };
 
+// TODO: Derive from abstract class `container_node`.
 class bracket_node : public node {
   node *nodes;
   hunits max_width;
@@ -566,6 +567,7 @@ public:
   const char *type();
   bool causes_tprint();
   bool is_tag();
+  void dump_properties();
 };
 
 class device_extension_node : public node {

_______________________________________________
groff-commit mailing list
groff-commit@gnu.org
https://lists.gnu.org/mailman/listinfo/groff-commit

Reply via email to