parse-options: add precision handling for PARSE_OPT_CMDMODE
Build on 09705696f7 (parse-options: introduce precision handling for
`OPTION_INTEGER`, 2025-04-17) to support value variables of different
sizes for PARSE_OPT_CMDMODE options. Do that by requiring their
"precision" to be set and casting their "value" pointer accordingly.
Call the function that does the raw casting do_get_int_value() to
reserve the name get_int_value() for a more friendly wrapper we're
going to introduce in one of the next patches.
Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
369e6d94b2
commit
0d3e045b34
@@ -148,9 +148,16 @@ int cmd__parse_options(int argc, const char **argv)
|
||||
OPT_SET_INT(0, "set23", &integer, "set integer to 23", 23),
|
||||
OPT_CMDMODE(0, "mode1", &integer, "set integer to 1 (cmdmode option)", 1),
|
||||
OPT_CMDMODE(0, "mode2", &integer, "set integer to 2 (cmdmode option)", 2),
|
||||
OPT_CALLBACK_F(0, "mode34", &integer, "(3|4)",
|
||||
"set integer to 3 or 4 (cmdmode option)",
|
||||
PARSE_OPT_CMDMODE, mode34_callback),
|
||||
{
|
||||
.type = OPTION_CALLBACK,
|
||||
.long_name = "mode34",
|
||||
.value = &integer,
|
||||
.precision = sizeof(integer),
|
||||
.argh = "(3|4)",
|
||||
.help = "set integer to 3 or 4 (cmdmode option)",
|
||||
.flags = PARSE_OPT_CMDMODE,
|
||||
.callback = mode34_callback,
|
||||
},
|
||||
OPT_CALLBACK('L', "length", &integer, "str",
|
||||
"get length of <str>", length_callback),
|
||||
OPT_FILENAME('F', "file", &file, "set file to <file>"),
|
||||
|
||||
Reference in New Issue
Block a user