From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: linux-media@vger.kernel.org,
Jacopo Mondi <jacopo.mondi@ideasonboard.com>,
Mehdi Djait <mehdi.djait@linux.intel.com>,
Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Subject: Re: [raw2rgbpnm PATCH v4 04/11] Support long options and improve help text
Date: Mon, 16 Mar 2026 16:41:51 +0200 [thread overview]
Message-ID: <20260316144151.GF31604@killaraus.ideasonboard.com> (raw)
In-Reply-To: <20260310084615.1183141-5-sakari.ailus@linux.intel.com>
On Tue, Mar 10, 2026 at 10:46:10AM +0200, Sakari Ailus wrote:
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> raw2rgbpnm.c | 34 +++++++++++++++++++++++++---------
> 1 file changed, 25 insertions(+), 9 deletions(-)
>
> diff --git a/raw2rgbpnm.c b/raw2rgbpnm.c
> index 14cfa7e7a46c..16ef64e984b9 100644
> --- a/raw2rgbpnm.c
> +++ b/raw2rgbpnm.c
> @@ -24,6 +24,7 @@
> */
>
> #include <ctype.h>
> +#include <getopt.h>
> #include <stdio.h>
> #include <stdint.h>
> #include <stdlib.h>
> @@ -836,6 +837,17 @@ static int parse_format(const char *p, int *w, int *h)
> return 0;
> }
>
> +static struct option options[] = {
> + { "algo", required_argument, NULL, 'a', },
> + { "brightness", required_argument, NULL, 'b', },
> + { "format", required_argument, NULL, 'f', },
> + { "help", no_argument, NULL, 'h', },
> + { "high-bits", no_argument, NULL, 'g', },
> + { "size", required_argument, NULL, 's', },
> + { "swap-rb", no_argument, NULL, 'w', },
> + { 0 },
> +};
> +
> int main(int argc, char *argv[])
> {
> FILE *f;
> @@ -849,7 +861,7 @@ int main(int argc, char *argv[])
> int width = -1;
>
> for (;;) {
> - int c = getopt(argc, argv, "a:b:f:ghs:w");
> + int c = getopt_long(argc, argv, "a:b:f:ghs:w", options, NULL);
> if (c==-1) break;
> switch (c) {
> case 'a':
> @@ -889,14 +901,18 @@ int main(int argc, char *argv[])
> break;
> case 'h':
> printf("%s - Convert headerless raw image to RGB file (PNM)\n"
> - "Usage: %s [-h] [-w] [-s XxY] <inputfile> <outputfile>\n"
> - "-a <algo> Select algorithm, use \"-a ?\" for a list\n"
> - "-b <bright> Set brightness (multiplier) to output image (float, default 1.0)\n"
> - "-f <format> Specify input file format format (-f ? for list, default UYVY)\n"
> - "-g Use high bits for Bayer RAW 10 data\n"
> - "-h Show this help\n"
> - "-s <XxY> Specify image size\n"
> - "-w Swap R and B channels\n", progname, argv[0]);
> + "Usage: %s [--algo|-a <algo>] [--brightness|-b <brightness>]\n"
> + " [--format|-f <format>] [--help|-h] [--high-bits|-g] [--size|-s XxY]\n"
> + " [--swap-rb|-w] <inputfile> <outputfile>\n\n"
That won't scale nicely, but I don't want to implement an options
handling framework in C right now :-)
> + "--algo, -a <algo> Select algorithm, use \"-a ?\" for a list\n"
> + "--brightness, -b <bright> Set brightness (multiplier) to output image\n"
> + " (float, default 1.0)\n"
Do you know if this option is used by anyone ? It seems a bit out of
place. Not an issue with this patch of course.
> + "--format, -f <format> Specify input file format format\n"
> + " (-f ? for list, default UYVY)\n"
> + "--help, -h Show this help\n"
> + "--high-bits, -g Use high bits for Bayer RAW 10 data\n"
> + "--size, -s <XxY> Specify image size\n"
> + "--swap-rb, -w Swap R and B channels\n", progname, argv[0]);
I'd add a line break before progname.
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> exit(0);
> case 's':
> if (parse_format(optarg, &width, &height) < 0) {
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2026-03-16 14:41 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-10 8:46 [raw2rgbpnm PATCH v4 00/11] 10-bit packed raw support, other fixes and improvements Sakari Ailus
2026-03-10 8:46 ` [raw2rgbpnm PATCH v4 01/11] Add explicit switch fallthrough notation Sakari Ailus
2026-03-10 8:46 ` [raw2rgbpnm PATCH v4 02/11] Add compiler options to avoid warnings Sakari Ailus
2026-03-16 14:28 ` Laurent Pinchart
2026-03-10 8:46 ` [raw2rgbpnm PATCH v4 03/11] Add 10-bit CSI-2 packed format support Sakari Ailus
2026-03-16 14:38 ` Laurent Pinchart
2026-03-16 19:00 ` Sakari Ailus
2026-03-10 8:46 ` [raw2rgbpnm PATCH v4 04/11] Support long options and improve help text Sakari Ailus
2026-03-16 14:41 ` Laurent Pinchart [this message]
2026-03-17 9:49 ` Sakari Ailus
2026-03-17 10:49 ` Laurent Pinchart
2026-03-17 13:17 ` Sakari Ailus
2026-03-10 8:46 ` [raw2rgbpnm PATCH v4 05/11] Add "help" for listing formats and de-Bayering algos, document it Sakari Ailus
2026-03-16 14:44 ` Laurent Pinchart
2026-03-10 8:46 ` [raw2rgbpnm PATCH v4 06/11] The program has been called raw2rgbpnm, not yuv_to_rgbpnm awhile now Sakari Ailus
2026-03-16 14:46 ` Laurent Pinchart
2026-03-10 8:46 ` [raw2rgbpnm PATCH v4 07/11] Arrange headers alphabetically Sakari Ailus
2026-03-16 14:47 ` Laurent Pinchart
2026-03-10 8:46 ` [raw2rgbpnm PATCH v4 08/11] Add --stride (-S) option for setting stride Sakari Ailus
2026-03-16 14:50 ` Laurent Pinchart
2026-03-10 8:46 ` [raw2rgbpnm PATCH v4 09/11] Improve input validation Sakari Ailus
2026-03-16 14:54 ` Laurent Pinchart
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260316144151.GF31604@killaraus.ideasonboard.com \
--to=laurent.pinchart@ideasonboard.com \
--cc=jacopo.mondi@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=mehdi.djait@linux.intel.com \
--cc=sakari.ailus@linux.intel.com \
--cc=tomi.valkeinen@ideasonboard.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox