gbranden pushed a commit to branch master
in repository groff.
commit 6ec020c11f1d92b6063ae03dc8cb98576c182c8a
Author: G. Branden Robinson <[email protected]>
AuthorDate: Fri Mar 20 20:04:21 2026 -0500
src/roff/troff/input.cpp: Work on Savannah #67735.
* src/roff/troff/input.cpp: Improve type discipline with respect to
groff's internal character representation.
(macro::append): Append to macro contents using explicitly unsigned
character (integer) literal rather than a signed one, for conceptual
clarity. "groff characters" are, for now, unsigned bytes.
(macro_header::copy, string_iterator::fill, substring_request):
Compare character read from an groff string iterator to unsigned
character (integer) literal.
Continues the long process of fixing Savannah #67735.
---
ChangeLog | 14 ++++++++++++++
src/roff/troff/input.cpp | 13 +++++++------
2 files changed, 21 insertions(+), 6 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 06238f0a6..68b5367cb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2026-03-20 G. Branden Robinson <[email protected]>
+
+ * src/roff/troff/input.cpp: Improve type discipline with respect
+ to groff's internal character representation.
+ (macro::append): Append to macro contents using explicitly
+ unsigned character (integer) literal rather than a signed one,
+ for conceptual clarity. "groff characters" are, for now,
+ unsigned bytes.
+ (macro_header::copy, string_iterator::fill, substring_request):
+ Compare character read from an groff string iterator to unsigned
+ character {integer} literal.
+
+ Continues the long process of fixing Savannah #67735.
+
2026-03-20 G. Branden Robinson <[email protected]>
* src/roff/troff/input.cpp (composite_glyph_name)
diff --git a/src/roff/troff/input.cpp b/src/roff/troff/input.cpp
index dd90e5133..5f85c1c65 100644
--- a/src/roff/troff/input.cpp
+++ b/src/roff/troff/input.cpp
@@ -3823,6 +3823,7 @@ char_block::char_block()
{
}
+// TODO: grochar
class char_list {
public:
char_list();
@@ -4110,7 +4111,7 @@ void macro::append(node *n)
delete p;
p = tem;
}
- p->cl.append(0);
+ p->cl.append(0U); // TODO: grochar
p->nl.append(n);
++len;
is_empty_macro = false;
@@ -4213,7 +4214,7 @@ macro_header *macro_header::copy(int n)
}
unsigned char c = *ptr++;
p->cl.append(c);
- if (0 == c) {
+ if (0U == c) {
p->nl.append(nd->copy());
nd = nd->next;
}
@@ -4386,7 +4387,7 @@ int string_iterator::fill(node **np)
p++;
break;
}
- if ('\0' == c)
+ if (0U == c)
break;
p++;
}
@@ -5881,7 +5882,7 @@ void substring_request()
c = iter.get(0 /* nullptr */);
if (EOF == c)
break;
- if (0 == c)
+ if (0U == c)
mac.append(nd);
else
mac.append((unsigned char) c);
@@ -6588,9 +6589,9 @@ bool non_interpreted_node::interpret(macro *m)
node *n = 0 /* nullptr */;
for (;;) {
int c = si.get(&n);
- if (EOF == c)
+ if (EOF == c) // TODO: grochar
break;
- if (0 == c)
+ if (0U == c) // TODO: grochar
m->append(n);
else
m->append(c);
_______________________________________________
groff-commit mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit