[libcamera-devel] [PATCH v3 14/33] cam: options: Fail parsing when non-option arguments are found
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Thu Jul 15 23:14:40 CEST 2021
The options parser currently ignores non-option arguments silently,
which is confusing. It's a common error to run 'cam -c1 -C 10' and
expect only 10 frames to be captured. As the -C option takes an optional
argument, the number 10 is interpreted as a non-option argument instead
of the argument to the -C option.
Fail parsing with an appropriate message and print usage information
when a non-option argument is found. The parser may be extended later to
accept non-option arguments when the application has a use for them.
Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
src/cam/options.cpp | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/cam/options.cpp b/src/cam/options.cpp
index 6e0d802cb986..33bc512e6571 100644
--- a/src/cam/options.cpp
+++ b/src/cam/options.cpp
@@ -945,6 +945,13 @@ OptionsParser::Options OptionsParser::parse(int argc, char **argv)
}
}
+ if (optind < argc) {
+ std::cerr << "Invalid non-option argument '" << argv[optind]
+ << "'" << std::endl;
+ usage();
+ return options;
+ }
+
options.valid_ = true;
return options;
}
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list