gbranden pushed a commit to branch master in repository groff. commit 613e384e5072edf8d455710be40a4d94d4b27809 Author: G. Branden Robinson <g.branden.robin...@gmail.com> AuthorDate: Tue Mar 4 08:33:21 2025 -0600
[troff]: Implement recursive node dumping (8e/9). Derive class `break_char_node` from struct `container_node`. * src/roff/troff/node.h (class break_char_node): Do it. Drop pointer-to-node member variable and declaration of destructor. * src/roff/troff/node.cpp (break_char_node::break_char_node): Migrate constructors to use new base class. (break_char_node::~break_char_node): Drop; our base class handles destruction of contained node(s). Changes `pline` request output as follows. -{"type": "break_char_node", "diversion level": 0, "is_special_node": false, "break code before": 2, "break code after": 0, "terminal_color": "default"}, +{"type": "break_char_node", "diversion level": 0, "is_special_node": false, "break code before": 2, "break code after": 0, "terminal_color": "default", "contents": [{"type": "glyph_node", "diversion level": 0, "is_special_node": false, "character": "-"}]}, --- ChangeLog | 12 ++++++++++++ src/roff/troff/node.cpp | 15 +++------------ 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index 65f58d14f..59a9e00d1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2025-03-04 G. Branden Robinson <g.branden.robin...@gmail.com> + + [troff]: Derive class `break_char_node` from struct + `container_node`. + + * src/roff/troff/node.h (class break_char_node): Do it. Drop + pointer-to-node member variable and declaration of destructor. + * src/roff/troff/node.cpp (break_char_node::break_char_node): + Migrate constructors to use new base class. + (break_char_node::~break_char_node): Drop; our base class + handles destruction of contained node(s). + 2025-03-04 G. Branden Robinson <g.branden.robin...@gmail.com> [troff]: Derive class `italic_corrected_node` from struct diff --git a/src/roff/troff/node.cpp b/src/roff/troff/node.cpp index 398d4abab..d33d7c3b4 100644 --- a/src/roff/troff/node.cpp +++ b/src/roff/troff/node.cpp @@ -2915,9 +2915,7 @@ int italic_corrected_node::character_type() return nodes->character_type(); } -// TODO: Derive from abstract class `container_node`. -class break_char_node : public node { - node *nodes; +class break_char_node : public container_node { char break_code; char prev_break_code; color *col; @@ -2925,7 +2923,6 @@ public: break_char_node(node *, int, int, color *, node * = 0 /* nullptr */); break_char_node(node *, int, int, color *, statem *, int, node * = 0 /* nullptr */); - ~break_char_node(); node *copy(); hunits width(); vunits vertical_width(); @@ -2952,14 +2949,13 @@ public: }; break_char_node::break_char_node(node *n, int bc, int pbc, color *c, node *x) -: node(x), nodes(n), break_code(bc), prev_break_code(pbc), col(c) +: container_node(x, n), break_code(bc), prev_break_code(pbc), col(c) { } break_char_node::break_char_node(node *n, int bc, int pbc, color *c, statem *s, int divlevel, node *x) -: node(x, s, divlevel), nodes(n), break_code(bc), prev_break_code(pbc), - col(c) +: container_node(x, s, divlevel, n), break_code(bc), prev_break_code(pbc), col(c) { } @@ -2973,11 +2969,6 @@ void break_char_node::dump_properties() fflush(stderr); } -break_char_node::~break_char_node() -{ - delete nodes; -} - node *break_char_node::copy() { return new break_char_node(nodes->copy(), break_code, prev_break_code, _______________________________________________ groff-commit mailing list groff-commit@gnu.org https://lists.gnu.org/mailman/listinfo/groff-commit