From 36de1e40a26abedc85506dfb3918663e42a941fa Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Fri, 17 Oct 2025 15:06:20 -0400 Subject: [PATCH] fix bool opt parsing Signed-off-by: Kent Overstreet --- c_src/libbcachefs.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/c_src/libbcachefs.c b/c_src/libbcachefs.c index 507ec5ea..c1254805 100644 --- a/c_src/libbcachefs.c +++ b/c_src/libbcachefs.c @@ -736,7 +736,7 @@ const struct bch_option *bch2_cmdline_opt_parse(int argc, char *argv[], return NULL; char *optstr = strdup(argv[optind] + 2); - optarg = argv[optind + 1]; + optarg = NULL; char *eq = strchr(optstr, '='); if (eq) { @@ -744,10 +744,6 @@ const struct bch_option *bch2_cmdline_opt_parse(int argc, char *argv[], optarg = eq + 1; } - if (!optarg) - optarg = "1"; - - int optid = bch2_opt_lookup(optstr); if (optid < 0) goto noopt; @@ -758,11 +754,11 @@ const struct bch_option *bch2_cmdline_opt_parse(int argc, char *argv[], optind++; - if (opt->type != BCH_OPT_BOOL) { - if (optarg == argv[optind]) - optind++; - } else { - optarg = NULL; + if (!optarg) { + if (opt->type != BCH_OPT_BOOL) + optarg = argv[optind++]; + else + optarg = "1"; } return opt;