gbranden pushed a commit to branch master
in repository groff.

commit a38381dc75bfd082592334fd708c33c7ec92f2b7
Author: G. Branden Robinson <g.branden.robin...@gmail.com>
AuthorDate: Mon Mar 3 09:05:25 2025 -0600

    [troff]: Implement recursive node dumping (5r/9).
    
    * src/roff/troff/node.h (class kern_pair_node): Specialize (override)
      `dump_properties()` for this class.
    
    * src/roff/troff/node.cpp (kern_pair_node::dump_properties): New member
      function reports value of `amount` property.
    
    Changes `pline` request output as follows.
    
    -{"type": "dbreak_node", "none": {"type": "glyph_node", "diversion level": 
0, "is_special_node": false, "character": "r"}, "pre": {"type": 
"kern_pair_node", "diversion level": 0, "is_special_node": false}, "diversion 
level": 0, "is_special_node": false},
    +{"type": "dbreak_node", "none": {"type": "glyph_node", "diversion level": 
0, "is_special_node": false, "character": "r"}, "pre": {"type": 
"kern_pair_node", "diversion level": 0, "is_special_node": false, "amount": 
-200}, "diversion level": 0, "is_special_node": false},
    -{"type": "kern_pair_node", "diversion level": 0, "is_special_node": false},
    +{"type": "kern_pair_node", "diversion level": 0, "is_special_node": false, 
"amount": -100},
---
 ChangeLog               | 7 +++++++
 src/roff/troff/node.cpp | 8 ++++++++
 2 files changed, 15 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index fd9398e2c..b1f9b11e4 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 kern_pair_node): Specialize
+       {override} `dump_properties()` for this class.
+       * src/roff/troff/node.cpp (kern_pair_node::dump_properties): New
+       member function reports value of `amount` property.
+
 2025-03-03  G. Branden Robinson <g.branden.robin...@gmail.com>
 
        * src/roff/troff/node.h (class tag_node): Specialize (override)
diff --git a/src/roff/troff/node.cpp b/src/roff/troff/node.cpp
index 423fb69e0..3abb6b0aa 100644
--- a/src/roff/troff/node.cpp
+++ b/src/roff/troff/node.cpp
@@ -2014,6 +2014,7 @@ public:
   bool causes_tprint();
   bool is_tag();
   void vertical_extent(vunits *, vunits *);
+  void dump_properties();
 };
 
 class dbreak_node : public node {
@@ -2298,6 +2299,13 @@ kern_pair_node::kern_pair_node(hunits n, node *first, 
node *second,
 {
 }
 
+void kern_pair_node::dump_properties()
+{
+  node::dump_properties();
+  fprintf(stderr, ", \"amount\": %d", amount.to_units());
+  fflush(stderr);
+}
+
 dbreak_node::dbreak_node(node *n, node *p, statem *s, int divlevel,
                         node *x)
 : node(x, s, divlevel), none(n), pre(p), post(0 /* nullptr */)

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

Reply via email to