[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[groff] 21/35: [troff]: Make environment::set_font return a bool.
From: |
G. Branden Robinson |
Subject: |
[groff] 21/35: [troff]: Make environment::set_font return a bool. |
Date: |
Tue, 21 Jun 2022 14:26:30 -0400 (EDT) |
gbranden pushed a commit to branch master
in repository groff.
commit cbe4cd192766c8730a31336589f007df51232f0b
Author: G. Branden Robinson <g.branden.robinson@gmail.com>
AuthorDate: Mon Jun 20 14:10:30 2022 -0500
[troff]: Make environment::set_font return a bool.
[troff]: Revise `environment::set_font` to return Boolean value
indicating success of font selection operation.
* src/roff/troff/env.cpp (environment::set_font):
* src/roff/troff/env.h (environment::set_font): Do it.
This prepares the way for a fix for Savannah #62656.
---
ChangeLog | 10 ++++++++++
src/roff/troff/env.cpp | 20 ++++++++++++--------
src/roff/troff/env.h | 4 ++--
3 files changed, 24 insertions(+), 10 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 72c9e3e6..3b814ab4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2022-06-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Revise `environment::set_font` to return Boolean value
+ indicating success of font selection operation.
+
+ * src/roff/troff/env.cpp (environment::set_font):
+ * src/roff/troff/env.h (environment::set_font): Do it.
+
+ This prepares the way for a fix for Savannah #62656.
+
2022-06-20 G. Branden Robinson <g.branden.robinson@gmail.com>
* src/roff/groff/groff.cpp: Use single exit path, freeing
diff --git a/src/roff/troff/env.cpp b/src/roff/troff/env.cpp
index d6a9e982..7aeb5bd2 100644
--- a/src/roff/troff/env.cpp
+++ b/src/roff/troff/env.cpp
@@ -496,13 +496,13 @@ static node *do_underline_special(bool
do_underline_spaces)
return new special_node(m, 1);
}
-void environment::set_font(symbol nm)
+bool environment::set_font(symbol nm)
{
if (interrupted)
- return;
+ return true; // "no operation" is successful
if (nm == symbol("P") || nm.is_empty()) {
if (family->make_definite(prev_fontno) < 0)
- return;
+ return false;
int tem = fontno;
fontno = prev_fontno;
prev_fontno = tem;
@@ -513,10 +513,10 @@ void environment::set_font(symbol nm)
if (n < 0) {
n = next_available_font_position();
if (!mount_font(n, nm))
- return;
+ return false;
}
if (family->make_definite(n) < 0)
- return;
+ return false;
fontno = n;
}
if (underline_spaces && fontno != prev_fontno) {
@@ -525,18 +525,22 @@ void environment::set_font(symbol nm)
if (prev_fontno == get_underline_fontno())
add_node(do_underline_special(false));
}
+ return true;
}
-void environment::set_font(int n)
+bool environment::set_font(int n)
{
if (interrupted)
- return;
+ return false;
if (is_good_fontno(n)) {
prev_fontno = fontno;
fontno = n;
}
- else
+ else {
warning(WARN_FONT, "no font mounted at position %1", n);
+ return false;
+ }
+ return true;
}
void environment::set_family(symbol fam)
diff --git a/src/roff/troff/env.h b/src/roff/troff/env.h
index dddf1a17..c7c6e203 100644
--- a/src/roff/troff/env.h
+++ b/src/roff/troff/env.h
@@ -322,8 +322,8 @@ public:
node *extract_output_line();
void width_registers();
void wrap_up_tab();
- void set_font(int);
- void set_font(symbol);
+ bool set_font(int);
+ bool set_font(symbol);
void set_family(symbol);
void set_size(int);
void set_char_height(int);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [groff] 21/35: [troff]: Make environment::set_font return a bool.,
G. Branden Robinson <=