gbranden pushed a commit to branch master in repository groff. commit 6469e004b219f35786e02d886d56808bba846cee Author: G. Branden Robinson <g.branden.robin...@gmail.com> AuthorDate: Sun Mar 16 09:35:30 2025 -0500
[troff]: Fix logic error. * src/roff/troff/node.cpp (suppress_node::dump_properties): JSON-encode `position` member variable of this node type. (draw_node::dump_properties): JSON-encode `gcol` and `fcol` member variables of this node type. Problem introduced yesterday with landing of new JSON encoding feature. --- ChangeLog | 10 ++++++++++ src/roff/troff/node.cpp | 21 +++++++++++++++------ 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index b072ea14a..da7ce7e94 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2025-03-16 G. Branden Robinson <g.branden.robin...@gmail.com> + + * src/roff/troff/node.cpp (suppress_node::dump_properties): + JSON-encode `position` member variable of this node type. + (draw_node::dump_properties): JSON-encode `gcol` and `fcol` + member variables of this node type. + + Problem introduced yesterday with landing of new JSON encoding + feature. + 2025-03-16 G. Branden Robinson <g.branden.robin...@gmail.com> [libgroff]: Fix logic error when encoding characters ", \, and / diff --git a/src/roff/troff/node.cpp b/src/roff/troff/node.cpp index b02ce00b9..de5c8e4c3 100644 --- a/src/roff/troff/node.cpp +++ b/src/roff/troff/node.cpp @@ -4246,10 +4246,17 @@ void suppress_node::dump_properties() fprintf(stderr, ", \"is_on\": %d", is_on); fprintf(stderr, ", \"emit_limits\": %s", emit_limits ? "true" : "false"); - if (filename.contents() != 0 /* nullptr */) - fprintf(stderr, ", \"filename\": \"%s\"", filename.contents()); - if (position != '\0') - fprintf(stderr, ", \"position\": \"%c\"", position); + if (filename.contents() != 0 /* nullptr */) { + fputs(", \"filename\": ", stderr); + filename.json_dump(); + } + fputs(", \"position\": \"", stderr); + json_char jc = json_encode_char(position); + // Write out its JSON representation by character by character to + // keep libc string functions from interpreting C escape sequences. + for (size_t i = 0; i < jc.len; i++) + fputc(jc.buf[i], stderr); + fputc('\"', stderr); fprintf(stderr, ", \"image_id\": %d", image_id); fflush(stderr); } @@ -4875,8 +4882,10 @@ void draw_node::dump_properties() fprintf(stderr, ", \"code\": \"%c\"", code); fprintf(stderr, ", \"npoints\": %d", npoints); fprintf(stderr, ", \"font_size\": %d", sz.to_units()); - fprintf(stderr, ", \"stroke_color\": \"%s\"", gcol->nm.contents()); - fprintf(stderr, ", \"fill_color\": \"%s\"", fcol->nm.contents()); + fputs(", \"stroke color\": ", stderr); + gcol->nm.json_dump(); + fputs(", \"fill color\": ", stderr); + fcol->nm.json_dump(); fprintf(stderr, ", \"point\": \"(%d, %d)\"", point->h.to_units(), point->v.to_units()); fflush(stderr); _______________________________________________ groff-commit mailing list groff-commit@gnu.org https://lists.gnu.org/mailman/listinfo/groff-commit