gbranden pushed a commit to branch master
in repository groff.
commit 875dc87033627d3bb695ec06b1b5e2937f509a45
Author: G. Branden Robinson <[email protected]>
AuthorDate: Sat Mar 15 01:52:14 2025 -0500
[troff]: Implement recursive node dumping (8f/9).
Derive class `left_italic_corrected_node` from struct `container_node`.
* src/roff/troff/node.h (class left_italic_corrected_node): Do it. Drop
pointer-to-node member variable and declaration of destructor.
* src/roff/troff/node.cpp
(left_italic_corrected_node::left_italic_corrected_node): Migrate
constructors to use new base class.
(left_italic_corrected_node::~left_italic_corrected_node): Drop; our
base class handles destruction of contained node(s).
Changes `pline` request output as follows.
-{"type": "left_italic_corrected_node", "diversion level": 0,
"is_special_node": false, "hunits": 1970},
+{"type": "left_italic_corrected_node", "diversion level": 0,
"is_special_node": false, "hunits": 1970, "contents": [{"type": "glyph_node",
"diversion level": 0, "is_special_node": false, "character": "f"}]},
---
ChangeLog | 14 ++++++++++++++
src/roff/troff/node.cpp | 9 ++-------
src/roff/troff/node.h | 5 +----
3 files changed, 17 insertions(+), 11 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 59a9e00d1..21b3700b2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2025-03-15 G. Branden Robinson <[email protected]>
+
+ [troff]: Derive class `left_italic_corrected_node` from struct
+ `container_node`.
+
+ * src/roff/troff/node.h (class left_italic_corrected_node): Do
+ it. Drop pointer-to-node member variable and declaration of
+ destructor.
+ * src/roff/troff/node.cpp
+ (left_italic_corrected_node::left_italic_corrected_node):
+ Migrate constructors to use new base class.
+ (left_italic_corrected_node::~left_italic_corrected_node): Drop;
+ our base class handles destruction of contained node(s).
+
2025-03-04 G. Branden Robinson <[email protected]>
[troff]: Derive class `break_char_node` from struct
diff --git a/src/roff/troff/node.cpp b/src/roff/troff/node.cpp
index d33d7c3b4..0e899dcb4 100644
--- a/src/roff/troff/node.cpp
+++ b/src/roff/troff/node.cpp
@@ -5816,14 +5816,14 @@ bool italic_corrected_node::is_tag()
}
left_italic_corrected_node::left_italic_corrected_node(node *xx)
-: node(xx), nodes(0 /* nullptr */)
+: container_node(xx)
{
}
left_italic_corrected_node::left_italic_corrected_node(statem *s,
int divlevel,
node *xx)
-: node(xx, s, divlevel), nodes(0 /* nullptr */)
+: container_node(xx, s, divlevel)
{
}
@@ -5834,11 +5834,6 @@ void left_italic_corrected_node::dump_properties()
fflush(stderr);
}
-left_italic_corrected_node::~left_italic_corrected_node()
-{
- delete nodes;
-}
-
node *left_italic_corrected_node::merge_glyph_node(glyph_node *gn)
{
if (0 /* nullptr */ == nodes) {
diff --git a/src/roff/troff/node.h b/src/roff/troff/node.h
index ec7c7e9bc..88ac5278a 100644
--- a/src/roff/troff/node.h
+++ b/src/roff/troff/node.h
@@ -502,15 +502,12 @@ public:
void vertical_extent(vunits *, vunits *);
};
-// TODO: Derive from abstract class `container_node`.
-class left_italic_corrected_node : public node {
- node *nodes;
+class left_italic_corrected_node : public container_node {
hunits x;
public:
left_italic_corrected_node(node * /* xx */ = 0 /* nullptr */);
left_italic_corrected_node(statem *, int,
node * /* xx */ = 0 /* nullptr */);
- ~left_italic_corrected_node();
void tprint(troff_output_file *);
void ascii_print(ascii_output_file *);
void asciify(macro *);
_______________________________________________
groff-commit mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit