[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[groff] 08/21: [troff]: Add `readonly_boolean_register` class.
From: |
G. Branden Robinson |
Subject: |
[groff] 08/21: [troff]: Add `readonly_boolean_register` class. |
Date: |
Sat, 16 Sep 2023 18:39:38 -0400 (EDT) |
gbranden pushed a commit to branch master
in repository groff.
commit 6d47271fa9871e30250cf480b9771038b31ef18d
Author: G. Branden Robinson <g.branden.robinson@gmail.com>
AuthorDate: Thu Sep 14 23:16:03 2023 -0500
[troff]: Add `readonly_boolean_register` class.
[troff]: Add class for Boolean-valued read-only registers.
Their values have been stored variously in `readonly_register`,
which has full `int` range, and in normal string registers, as
with `.A`.
* src/roff/troff/reg.h (class readonly_boolean_register): Add.
* src/roff/troff/input.cpp
(readonly_boolean_register::readonly_boolean_register)
(readonly_boolean_register::get_string): Define.
---
ChangeLog | 12 ++++++++++++
src/roff/troff/input.cpp | 9 +++++++++
src/roff/troff/reg.h | 9 +++++++++
3 files changed, 30 insertions(+)
diff --git a/ChangeLog b/ChangeLog
index e4a67966e..4ec010a9a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2023-09-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Add class for Boolean-valued read-only registers.
+ Their values have been stored variously in `readonly_register`,
+ which has full `int` range, and in normal string registers, as
+ with `.A`.
+
+ * src/roff/troff/reg.h (class readonly_boolean_register): Add.
+ * src/roff/troff/input.cpp
+ (readonly_boolean_register::readonly_boolean_register)
+ (readonly_boolean_register::get_string): Define.
+
2023-09-14 G. Branden Robinson <g.branden.robinson@gmail.com>
* src/roff/troff/input.cpp: Trivially refactor. Rename some
diff --git a/src/roff/troff/input.cpp b/src/roff/troff/input.cpp
index dfbe9c6c8..47daf483d 100644
--- a/src/roff/troff/input.cpp
+++ b/src/roff/troff/input.cpp
@@ -7683,6 +7683,15 @@ const char *readonly_register::get_string()
return i_to_a(*p);
}
+readonly_boolean_register::readonly_boolean_register(bool *q): p(q)
+{
+}
+
+const char *readonly_boolean_register::get_string()
+{
+ return i_to_a(*p);
+}
+
void abort_request()
{
int c;
diff --git a/src/roff/troff/reg.h b/src/roff/troff/reg.h
index 1ee3a4ee0..415c4160f 100644
--- a/src/roff/troff/reg.h
+++ b/src/roff/troff/reg.h
@@ -29,6 +29,8 @@ public:
virtual void set_value(units);
};
+// TODO: Use template to parameterize class in the pointed-to data type?
+
class readonly_register : public reg {
int *p;
public:
@@ -36,6 +38,13 @@ public:
const char *get_string();
};
+class readonly_boolean_register : public reg {
+ bool *p;
+public:
+ readonly_boolean_register(bool *);
+ const char *get_string();
+};
+
class general_reg : public reg {
char format;
int width;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [groff] 08/21: [troff]: Add `readonly_boolean_register` class.,
G. Branden Robinson <=