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