gbranden pushed a commit to branch master
in repository groff.
commit 98cdb206dc6c72799984af9e464dd3548c080af3
Author: G. Branden Robinson <[email protected]>
AuthorDate: Mon Apr 27 15:12:53 2026 -0500
[troff]: Stop reporting read-only regs' formats.
Stop reporting number format for read-only registers.
* src/roff/troff/reg.h (class reg, class general_reg): Define new public
member function `has_format()` returning `bool`.
* src/roff/troff/reg.cpp (reg::has_format): Return `false`.
(general_reg::has_format): Return `true`.
(dump_register): Report register format only if register's
`has_format()` member function returns `true`.
---
ChangeLog | 11 +++++++++++
src/roff/troff/reg.cpp | 20 ++++++++++++++++----
src/roff/troff/reg.h | 2 ++
3 files changed, 29 insertions(+), 4 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index df2328a21..ff24d3eba 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2026-04-27 G. Branden Robinson <[email protected]>
+
+ [troff]: Stop reporting number format for read-only registers.
+
+ * src/roff/troff/reg.h (class reg, class general_reg): Define
+ new public member function `has_format()` returning `bool`.
+ * src/roff/troff/reg.cpp (reg::has_format): Return `false`.
+ (general_reg::has_format): Return `true`.
+ (dump_register): Report register format only if register's
+ `has_format()` member function returns `true`.
+
2026-04-27 G. Branden Robinson <[email protected]>
* src/roff/troff/input.cpp (init_input_requests): Make `.O`
diff --git a/src/roff/troff/reg.cpp b/src/roff/troff/reg.cpp
index 88e571c7a..561039ae1 100644
--- a/src/roff/troff/reg.cpp
+++ b/src/roff/troff/reg.cpp
@@ -88,6 +88,11 @@ bool reg::can_autoincrement() const
return false;
}
+bool reg::has_format() const
+{
+ return false;
+}
+
general_reg::general_reg() : format('1'), width(0), inc(0)
{
}
@@ -280,6 +285,11 @@ bool general_reg::can_autoincrement() const
return true;
}
+bool general_reg::has_format() const
+{
+ return true;
+}
+
void general_reg::alter_format(char f, int w)
{
format = f;
@@ -577,10 +587,12 @@ static void dump_register(symbol *id, reg *r)
(void) snprintf(inc, sz, "%+d", r->get_increment());
errprint("\t%1", inc);
}
- const char *f = r->get_format();
- assert(f != 0 /* nullptr */);
- if (f != 0 /* nullptr*/)
- errprint("\t%1", f);
+ if (r->has_format()) {
+ const char *f = r->get_format();
+ assert(f != 0 /* nullptr */);
+ if (f != 0 /* nullptr*/)
+ errprint("\t%1", f);
+ }
}
else {
const char *s = r->get_string();
diff --git a/src/roff/troff/reg.h b/src/roff/troff/reg.h
index b004b45d0..26e96cc56 100644
--- a/src/roff/troff/reg.h
+++ b/src/roff/troff/reg.h
@@ -29,6 +29,7 @@ public:
virtual const char *get_format();
virtual void set_value(units);
virtual bool can_autoincrement() const;
+ virtual bool has_format() const;
};
// TODO: Use template to parameterize class in the pointed-to data type?
@@ -60,6 +61,7 @@ public:
void set_increment(units);
int get_increment() const;
bool can_autoincrement() const;
+ bool has_format() const;
const char *get_format();
void add_value(units);
_______________________________________________
groff-commit mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit