[libcamera-devel] [PATCH v3 14/33] cam: options: Fail parsing when non-option arguments are found
Jacopo Mondi
jacopo at jmondi.org
Thu Jul 22 14:56:23 CEST 2021
Hi Laurent,
On Fri, Jul 16, 2021 at 12:14:40AM +0300, Laurent Pinchart wrote:
> 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.
I've been fooled by that a few times :)
Reviewed-by: Jacopo Mondi <jacopo at jmondi.org>
Thanks
j
>
> 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