[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[groff] 14/34: [libgroff]: Refactor `font::scan_papersize()`.
From: |
G. Branden Robinson |
Subject: |
[groff] 14/34: [libgroff]: Refactor `font::scan_papersize()`. |
Date: |
Thu, 2 Sep 2021 02:48:33 -0400 (EDT) |
gbranden pushed a commit to branch master
in repository groff.
commit 8b2e692af9493d7201667485ef7ee2632cdafa5c
Author: G. Branden Robinson <g.branden.robinson@gmail.com>
AuthorDate: Tue Aug 24 22:07:40 2021 +1000
[libgroff]: Refactor `font::scan_papersize()`.
* src/libs/libgroff/font.cpp (font::scan_papersize): Ensure successful
return value of `fgets()` before attempting to parse string for paper
format. Convert `test_file` to Boolean and rename to
`attempt_file_open`. Quiets GCC `-Wunused-result` warning.
---
ChangeLog | 10 ++++++++++
src/libs/libgroff/font.cpp | 20 +++++++++++---------
2 files changed, 21 insertions(+), 9 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index cba8f90..2d6f551 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2021-08-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Refactor `font::scan_papersize()`.
+
+ * src/libs/libgroff/font.cpp (font::scan_papersize): Ensure
+ successful return value of `fgets()` before attempting to parse
+ string for paper format. Convert `test_file` to Boolean and
+ rename to `attempt_file_open`. Quiets GCC `-Wunused-result`
+ warning.
+
2021-08-23 G. Branden Robinson <g.branden.robinson@gmail.com>
[tests]: Apply naming convention.
diff --git a/src/libs/libgroff/font.cpp b/src/libs/libgroff/font.cpp
index eb28048..46547ab 100644
--- a/src/libs/libgroff/font.cpp
+++ b/src/libs/libgroff/font.cpp
@@ -709,7 +709,7 @@ int font::scan_papersize(const char *p,
double l, w;
char lu[2], wu[2];
const char *pp = p;
- int test_file = 1;
+ bool attempt_file_open = true;
char line[255];
again:
if (csdigit(*pp)) {
@@ -737,17 +737,19 @@ again:
*size = papersizes[i].name;
return 1;
}
- if (test_file) {
+ if (attempt_file_open) {
FILE *f = fopen(p, "r");
if (f) {
- fgets(line, 254, f);
+ if (fgets(line, 254, f)) {
+ // Don't recurse on file names.
+ attempt_file_open = false;
+ char *linep = strchr(line, '\0');
+ // skip final newline, if any
+ if (*(--linep) == '\n')
+ *linep = '\0';
+ pp = line;
+ }
fclose(f);
- test_file = 0;
- char *linep = strchr(line, '\0');
- // skip final newline, if any
- if (*(--linep) == '\n')
- *linep = '\0';
- pp = line;
goto again;
}
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [groff] 14/34: [libgroff]: Refactor `font::scan_papersize()`.,
G. Branden Robinson <=