parse-options: allow ll_callback with OPTION_CALLBACK
OPTION_CALLBACK is much simpler/safer to use, but parse_opt_cb does not allow access to parse_opt_ctx_t, which sometimes is useful (e.g. to obtain the prefix). Extending parse_opt_cb to take parse_opt_cb could result in a lot of changes. Instead let's just allow ll_callback to be used with OPTION_CALLBACK. The user will have to be careful, not to change anything in ctx, or return wrong result code. But that's the price for ll_callback. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
f41179f16b
commit
3ebbe28989
@ -50,7 +50,8 @@ typedef int parse_opt_cb(const struct option *, const char *arg, int unset);
|
||||
|
||||
struct parse_opt_ctx_t;
|
||||
typedef enum parse_opt_result parse_opt_ll_cb(struct parse_opt_ctx_t *ctx,
|
||||
const struct option *opt, int unset);
|
||||
const struct option *opt,
|
||||
const char *arg, int unset);
|
||||
|
||||
/*
|
||||
* `type`::
|
||||
@ -267,7 +268,7 @@ int parse_opt_commits(const struct option *, const char *, int);
|
||||
int parse_opt_tertiary(const struct option *, const char *, int);
|
||||
int parse_opt_string_list(const struct option *, const char *, int);
|
||||
int parse_opt_noop_cb(const struct option *, const char *, int);
|
||||
int parse_opt_unknown_cb(struct parse_opt_ctx_t *ctx, const struct option *, int);
|
||||
int parse_opt_unknown_cb(struct parse_opt_ctx_t *ctx, const struct option *, const char *, int);
|
||||
int parse_opt_passthru(const struct option *, const char *, int);
|
||||
int parse_opt_passthru_argv(const struct option *, const char *, int);
|
||||
|
||||
|
Reference in New Issue
Block a user