aboutsummaryrefslogtreecommitdiff
path: root/parse-options.h
diff options
context:
space:
mode:
authorCharles Bailey <cbailey32@bloomberg.net>2015-06-21 19:25:44 +0100
committerJunio C Hamano <gitster@pobox.com>2015-06-22 15:07:21 -0700
commit2a514ed8058e35841d3d7b05a898991b83e5eaf0 (patch)
treeeb121b83543970a0f21988d5f301743692e788b3 /parse-options.h
parent81a48cc08033a453bcb884ec0838a8f064a6611e (diff)
downloadgit-2a514ed8058e35841d3d7b05a898991b83e5eaf0.tar.gz
git-2a514ed8058e35841d3d7b05a898991b83e5eaf0.tar.xz
parse-options: move unsigned long option parsing out of pack-objects.c
The unsigned long option parsing (including 'k'/'m'/'g' suffix parsing) is more widely applicable. Add support for OPT_MAGNITUDE to parse-options.h and change pack-objects.c use this support. The error behavior on parse errors follows that of OPT_INTEGER. The name of the option that failed to parse is reported with a brief message describing the expect format for the option argument and then the full usage message for the command invoked. This differs from the previous behavior for OPT_ULONG used in pack-objects for --max-pack-size and --window-memory which used to display the value supplied in the error message and did not display the full usage message. Signed-off-by: Charles Bailey <cbailey32@bloomberg.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'parse-options.h')
-rw-r--r--parse-options.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/parse-options.h b/parse-options.h
index c71e9da4f..ca865f66d 100644
--- a/parse-options.h
+++ b/parse-options.h
@@ -16,6 +16,7 @@ enum parse_opt_type {
/* options with arguments (usually) */
OPTION_STRING,
OPTION_INTEGER,
+ OPTION_MAGNITUDE,
OPTION_CALLBACK,
OPTION_LOWLEVEL_CALLBACK,
OPTION_FILENAME
@@ -129,6 +130,8 @@ struct option {
#define OPT_CMDMODE(s, l, v, h, i) { OPTION_CMDMODE, (s), (l), (v), NULL, \
(h), PARSE_OPT_NOARG|PARSE_OPT_NONEG, NULL, (i) }
#define OPT_INTEGER(s, l, v, h) { OPTION_INTEGER, (s), (l), (v), N_("n"), (h) }
+#define OPT_MAGNITUDE(s, l, v, h) { OPTION_MAGNITUDE, (s), (l), (v), \
+ N_("n"), (h), PARSE_OPT_NONEG }
#define OPT_STRING(s, l, v, a, h) { OPTION_STRING, (s), (l), (v), (a), (h) }
#define OPT_STRING_LIST(s, l, v, a, h) \
{ OPTION_CALLBACK, (s), (l), (v), (a), \