gbranden pushed a commit to branch master
in repository groff.
commit 424b8e453aab357323984e4f6a4bad537784d54d
Author: G. Branden Robinson <[email protected]>
AuthorDate: Tue Mar 4 07:26:41 2025 -0600
[troff]: Implement recursive node dumping (8d/9).
Derive class `italic_corrected_node` from struct `container_node`.
* src/roff/troff/node.h (class italic_corrected_node): Do it. Drop
pointer-to-node member variable and declaration of destructor.
* src/roff/troff/node.cpp
(italic_corrected_node::italic_corrected_node): Migrate constructors
to use new base class.
(italic_corrected_node::~italic_corrected_node): Drop; our base class
handles destruction of contained node(s).
Changes `pline` request output as follows.
-{"type": "italic_corrected_node", "diversion level": 0, "is_special_node":
false, "hunits": 1960},
+{"type": "italic_corrected_node", "diversion level": 0, "is_special_node":
false, "hunits": 1960, "contents": [{"type": "glyph_node", "diversion level":
0, "is_special_node": false, "character": "f"}]},
---
ChangeLog | 14 ++++++++++++++
src/roff/troff/node.cpp | 12 ++----------
2 files changed, 16 insertions(+), 10 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 7094d2080..65f58d14f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2025-03-04 G. Branden Robinson <[email protected]>
+
+ [troff]: Derive class `italic_corrected_node` from struct
+ `container_node`.
+
+ * src/roff/troff/node.h (class italic_corrected_node): Do it.
+ Drop pointer-to-node member variable and declaration of
+ destructor.
+ * src/roff/troff/node.cpp
+ (italic_corrected_node::italic_corrected_node): Migrate
+ constructors to use new base class.
+ (italic_corrected_node::~italic_corrected_node): Drop; our base
+ class handles destruction of contained node(s).
+
2025-03-04 G. Branden Robinson <[email protected]>
[troff]: Derive class `zero_width_node` from struct
diff --git a/src/roff/troff/node.cpp b/src/roff/troff/node.cpp
index 58c89e97d..398d4abab 100644
--- a/src/roff/troff/node.cpp
+++ b/src/roff/troff/node.cpp
@@ -2771,14 +2771,11 @@ hunits dbreak_node::subscript_correction()
return none ? none->subscript_correction() : H0;
}
-// TODO: Derive from abstract class `container_node`.
-class italic_corrected_node : public node {
- node *nodes;
+class italic_corrected_node : public container_node {
hunits x;
public:
italic_corrected_node(node *, hunits, statem *, int,
node * = 0 /* nullptr */);
- ~italic_corrected_node();
node *copy();
void ascii_print(ascii_output_file *);
void asciify(macro *);
@@ -2818,7 +2815,7 @@ node *node::add_italic_correction(hunits *wd)
italic_corrected_node::italic_corrected_node(node *nn, hunits xx, statem *s,
int divlevel, node *p)
-: node(p, s, divlevel), nodes(nn), x(xx)
+: container_node(p, s, divlevel, nn), x(xx)
{
assert(nodes != 0 /* nullptr */);
}
@@ -2830,11 +2827,6 @@ void italic_corrected_node::dump_properties()
fflush(stderr);
}
-italic_corrected_node::~italic_corrected_node()
-{
- delete nodes;
-}
-
node *italic_corrected_node::copy()
{
return new italic_corrected_node(nodes->copy(), x, state,
_______________________________________________
groff-commit mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit