gbranden pushed a commit to branch master
in repository groff.

commit 0d47076347fc187321f3730085b899cb6ce7b46f
Author: G. Branden Robinson <[email protected]>
AuthorDate: Thu May 9 18:55:55 2024 -0500

    [troff]: Tweak `pline` output format.
    
    * src/roff/troff/node.cpp (glyph_node::dump_node, node::dump_node)
      (node::dump_node_list): Tweak output format.
    
    Exhibit:
    
    $ cat EXPERIMENTS/hyphenated-dummy.groff
    .ll 8n
    \%anti\%dis\c
    .pline
    establishmen\%tarianism
    .pline
    .if 0 \{
    .br
    \&\%antidis\c
    .pline
    establishmen\%tarianism
    .\}
    .pl \n(nlu
    
    Previously:
    
    $ ./build/test-groff -Wbreak -Tutf8 EXPERIMENTS/hyphenated-dummy.groff
    { line_start_node  nest level 0 }
    { hyphen_inhibitor_node  nest level 0 }
    { glyph_node [a nest level 0]}
    { glyph_node [n nest level 0]}
    { glyph_node [t nest level 0]}
    { dbreak_node  nest level 0 }
    { glyph_node [d nest level 0]}
    { glyph_node [i nest level 0]}
    { glyph_node [s nest level 0]}
    { glyph_node [i nest level 0]}
    { glyph_node [s nest level 0]}
    { glyph_node [m nest level 0]}
    anti‐
    disestablishmen‐
    tarian‐
    ism
    
    Now:
    
    $ ./build/test-groff -Wbreak -Tutf8 EXPERIMENTS/hyphenated-dummy.groff
    {type: line_start_node, diversion level: 0},
    {type: hyphen_inhibitor_node, diversion level: 0},
    {type: glyph_node, character: "a", diversion level: 0},
    {type: glyph_node, character: "n", diversion level: 0},
    {type: glyph_node, character: "t", diversion level: 0},
    {type: dbreak_node, diversion level: 0},
    {type: glyph_node, character: "d", diversion level: 0},
    {type: glyph_node, character: "i", diversion level: 0},
    {type: glyph_node, character: "s", diversion level: 0}
    {type: glyph_node, character: "i", diversion level: 0},
    {type: glyph_node, character: "s", diversion level: 0},
    {type: glyph_node, character: "m", diversion level: 0}
    anti‐
    disestablishmen‐
    tarian‐
    ism
---
 ChangeLog               |  5 +++++
 src/roff/troff/node.cpp | 29 ++++++++++++++++++-----------
 2 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 05198be40..94c0b186e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2024-05-09  G. Branden Robinson <[email protected]>
+
+       * src/roff/troff/node.cpp (glyph_node::dump_node)
+       (node::dump_node, node::dump_node_list): Tweak output format.
+
 2024-05-09  G. Branden Robinson <[email protected]>
 
        * tmac/doc.tmac (doc-empty-line):
diff --git a/src/roff/troff/node.cpp b/src/roff/troff/node.cpp
index 5cd34277e..d420490fd 100644
--- a/src/roff/troff/node.cpp
+++ b/src/roff/troff/node.cpp
@@ -2185,17 +2185,18 @@ void glyph_node::ascii_print(ascii_output_file *ascii)
 void glyph_node::dump_node()
 {
   unsigned char c = ci->get_ascii_code();
-  fprintf(stderr, "{ %s [", type());
+  fprintf(stderr, "{type: %s, character: ", type());
   if (c)
-    fprintf(stderr, "%c", c);
+    fprintf(stderr, "\"%c\"", c);
   else
-    fprintf(stderr, "%s", ci->nm.contents());
+    fprintf(stderr, "\"\\%s\"", ci->nm.contents());
+  fputs(", ", stderr);
   if (push_state)
-    fprintf(stderr, " <push_state>");
+    fprintf(stderr, "push_state, ");
   if (state)
     state->display_state();
-  fprintf(stderr, " nest level %d", div_nest_level);
-  fprintf(stderr, "]}\n");
+  fprintf(stderr, "diversion level: %d", div_nest_level);
+  fprintf(stderr, "}");
   fflush(stderr);
 }
 
@@ -2553,13 +2554,13 @@ units node::size()
 
 void node::dump_node()
 {
-  fprintf(stderr, "{ %s ", type());
+  fprintf(stderr, "{type: %s, ", type());
   if (push_state)
-    fprintf(stderr, " <push_state>");
+    fprintf(stderr, "<push_state>, ");
   if (state)
-    fprintf(stderr, " <state>");
-  fprintf(stderr, " nest level %d", div_nest_level);
-  fprintf(stderr, " }\n");
+    fprintf(stderr, "<state>, ");
+  fprintf(stderr, "diversion level: %d", div_nest_level);
+  fprintf(stderr, "}");
   fflush(stderr);
 }
 
@@ -2568,6 +2569,7 @@ void node::dump_node_list()
   // It's stored in reverse order already; this puts it forward again.
   std::stack<node *> reversed_node_list;
   node *n = next;
+  bool need_comma = false;
 
   assert(next != 0 /* nullptr */);
   do {
@@ -2575,9 +2577,14 @@ void node::dump_node_list()
     n = n->next;
   } while (n != 0 /* nullptr */);
   while (!reversed_node_list.empty()) {
+    if (need_comma)
+      fputs(",\n", stderr);
     reversed_node_list.top()->dump_node();
     reversed_node_list.pop();
+    need_comma = true;
   }
+  fputc('\n', stderr);
+  fflush(stderr);
 }
 
 hunits kern_pair_node::width()

_______________________________________________
Groff-commit mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit

Reply via email to