mirror of
https://github.com/git/git.git
synced 2026-01-10 10:13:33 +00:00
Merge branch 'rs/parse-options-precision'
Define .precision to more canned parse-options type to avoid bugs coming from using a variable with a wrong type to capture the parsed values. * rs/parse-options-precision: parse-options: add precision handling for OPTION_COUNTUP parse-options: add precision handling for OPTION_BITOP parse-options: add precision handling for OPTION_NEGBIT parse-options: add precision handling for OPTION_BIT parse-options: add precision handling for OPTION_SET_INT parse-options: add precision handling for PARSE_OPT_CMDMODE parse-options: require PARSE_OPT_NOARG for OPTION_BITOP
This commit is contained in:
@@ -131,6 +131,7 @@ int cmd__parse_options(int argc, const char **argv)
|
||||
.short_name = 'B',
|
||||
.long_name = "no-fear",
|
||||
.value = &boolean,
|
||||
.precision = sizeof(boolean),
|
||||
.help = "be brave",
|
||||
.flags = PARSE_OPT_NOARG | PARSE_OPT_NONEG,
|
||||
.defval = 1,
|
||||
@@ -148,9 +149,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>"),
|
||||
@@ -170,6 +178,7 @@ int cmd__parse_options(int argc, const char **argv)
|
||||
.type = OPTION_COUNTUP,
|
||||
.short_name = '+',
|
||||
.value = &boolean,
|
||||
.precision = sizeof(boolean),
|
||||
.help = "same as -b",
|
||||
.flags = PARSE_OPT_NOARG | PARSE_OPT_NONEG | PARSE_OPT_NODASH,
|
||||
},
|
||||
@@ -177,6 +186,7 @@ int cmd__parse_options(int argc, const char **argv)
|
||||
.type = OPTION_COUNTUP,
|
||||
.long_name = "ambiguous",
|
||||
.value = &ambiguous,
|
||||
.precision = sizeof(ambiguous),
|
||||
.help = "positive ambiguity",
|
||||
.flags = PARSE_OPT_NOARG | PARSE_OPT_NONEG,
|
||||
},
|
||||
@@ -184,6 +194,7 @@ int cmd__parse_options(int argc, const char **argv)
|
||||
.type = OPTION_COUNTUP,
|
||||
.long_name = "no-ambiguous",
|
||||
.value = &ambiguous,
|
||||
.precision = sizeof(ambiguous),
|
||||
.help = "negative ambiguity",
|
||||
.flags = PARSE_OPT_NOARG | PARSE_OPT_NONEG,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user