gbranden pushed a commit to branch master
in repository groff.
commit 1ecabc49dd2119c2cbf2f5b21812078007d15c86
Author: G. Branden Robinson <[email protected]>
AuthorDate: Thu Dec 7 18:52:33 2023 -0600
[troff]: Improve hyphenation diagnostics.
* src/roff/troff/env.cpp (select_hyphenation_language): Demote missing
argument diagnostic from error to warning.
(add_hyphenation_exceptions, hyphenation_patterns_file)
(hyphenation_patterns_file_append): Throw warning in category
`missing` if given no arguments.
---
ChangeLog | 8 ++++++++
src/roff/troff/env.cpp | 22 +++++++++++++++++++++-
2 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/ChangeLog b/ChangeLog
index 5093883d7..fa734e5a3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2023-12-07 G. Branden Robinson <[email protected]>
+
+ * src/roff/troff/env.cpp (select_hyphenation_language): Demote
+ missing argument diagnostic from error to warning.
+ (add_hyphenation_exceptions, hyphenation_patterns_file)
+ (hyphenation_patterns_file_append): Throw warning in category
+ `missing` if given no arguments.
+
2023-12-02 G. Branden Robinson <[email protected]>
[libgroff]: Drop unused function parameter.
diff --git a/src/roff/troff/env.cpp b/src/roff/troff/env.cpp
index 5d844ed20..6930c1045 100644
--- a/src/roff/troff/env.cpp
+++ b/src/roff/troff/env.cpp
@@ -3599,7 +3599,8 @@ hyphenation_language *current_language = 0;
static void select_hyphenation_language()
{
if (!has_arg()) {
- error("hyphenation language selection request requires argument");
+ warning(WARN_MISSING, "hyphenation language selection request"
+ " expects argument");
skip_line();
return;
}
@@ -3619,6 +3620,12 @@ const int WORD_MAX = 256; // we use unsigned char
for offsets in
static void add_hyphenation_exceptions()
{
+ if (!has_arg()) {
+ warning(WARN_MISSING, "hyphenation exception request expects one or"
+ " more arguments");
+ skip_line();
+ return;
+ }
if (!current_language) {
error("cannot add hyphenation exceptions when no hyphenation"
" language is set");
@@ -4160,6 +4167,7 @@ void hyphenate(hyphen_list *h, unsigned flags)
static void do_hyphenation_patterns_file(bool append)
{
+ // TODO: Read a file name, not a groff identifier.
symbol name = get_long_name(true /* required */);
if (!name.is_null()) {
if (!current_language)
@@ -4174,11 +4182,23 @@ static void do_hyphenation_patterns_file(bool append)
static void hyphenation_patterns_file()
{
+ if (!has_arg()) {
+ warning(WARN_MISSING, "hyphenation pattern load request expects"
+ " argument");
+ skip_line();
+ return;
+ }
do_hyphenation_patterns_file(false /* append */);
}
static void hyphenation_patterns_file_append()
{
+ if (!has_arg()) {
+ warning(WARN_MISSING, "hyphenation pattern appendment request"
+ " expects argument");
+ skip_line();
+ return;
+ }
do_hyphenation_patterns_file(true /* append */);
}
_______________________________________________
Groff-commit mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit