gbranden pushed a commit to branch master
in repository groff.
commit 9f7c1329559fe92b68c483cdcb859182f93de166
Author: G. Branden Robinson <[email protected]>
AuthorDate: Fri Nov 29 17:19:15 2024 -0600
[refer]: Handle invalid `-l` option better.
* src/preproc/refer/refer.cpp (main): Skip rest of argument to `-l`
option when encountering garbage, preventing the enclosing loop from
attempting to interpret the garbage as more options.
Before:
$ echo | refer -l1,2,3
refer: error: argument to 'l' option not of form 'm,n'
refer: error: unrecognized option ',3'
usage: refer [-bCenPRS] [-aN] [-cXYZ] [-fN] [-iXYZ] [-kX] [-lM,N] [-p
db-file] [-sXYZ] [-tN] [-Bl.m] [file ...]
usage: refer {-v | --version}
usage: refer --help
Now:
$ echo | ./build/refer -l1,2,3
./build/refer: error: argument to 'l' option not of form 'm,n'
.lf 1 -
---
ChangeLog | 6 ++++++
src/preproc/refer/refer.cpp | 6 +++++-
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/ChangeLog b/ChangeLog
index 9203d24dc..5d3073f7c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2024-11-29 G. Branden Robinson <[email protected]>
+
+ * src/preproc/refer/refer.cpp (main): Skip rest of argument to
+ `-l` option when encountering garbage, preventing the enclosing
+ loop from attempting to interpret the garbage as more options.
+
2024-11-29 G. Branden Robinson <[email protected]>
[preconv]: Align with modern groff conventions.
diff --git a/src/preproc/refer/refer.cpp b/src/preproc/refer/refer.cpp
index cd240c149..811d19a2d 100644
--- a/src/preproc/refer/refer.cpp
+++ b/src/preproc/refer/refer.cpp
@@ -287,8 +287,12 @@ int main(int argc, char **argv)
n = 0;
sprintf(strchr(buf, '\0'), "-%ld", n);
opt = ptr;
- if (*opt != '\0')
+ if (*opt != '\0') {
error("argument to 'l' option not of form 'm,n'");
+ while ((*opt != '\0') && (*opt != ' '))
+ opt++;
+ break;
+ }
}
strcat(buf, "%a");
if (!set_label_spec(buf))
_______________________________________________
groff-commit mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit