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

Reply via email to