diff options
author | Stephen Boyd <bebarino@gmail.com> | 2009-05-23 11:53:13 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-05-25 01:07:33 -0700 |
commit | df217ed6430efe444a09fffdafd39720ae3f9864 (patch) | |
tree | dc87087a7cff7332fb9de36c7d3cad6e37b5df9c /test-parse-options.c | |
parent | 377829201783b8a648e07af6ce7d747e0f45dc19 (diff) | |
download | git-df217ed6430efe444a09fffdafd39720ae3f9864.tar.gz |
parse-opts: add OPT_FILENAME and transition builtins
Commit dbd0f5c (Files given on the command line are relative to $cwd,
2008-08-06) introduced parse_options_fix_filename() as a minimal fix.
OPT_FILENAME is intended to be a more robust fix for the same issue.
OPT_FILENAME and its associated enum OPTION_FILENAME are used to
represent filename options within the parse options API.
This option is similar to OPTION_STRING. If --no is prefixed to the
option the filename is unset. If no argument is given and the default
value is set, the filename is set to the default value. The difference
is that the filename is prefixed with the prefix passed to
parse_options() (or parse_options_start()).
Update git-apply, git-commit, git-fmt-merge-msg, and git-tag to use
OPT_FILENAME with their filename options. Also, rename
parse_options_fix_filename() to fix_filename() as it is no longer
extern.
Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'test-parse-options.c')
-rw-r--r-- | test-parse-options.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/test-parse-options.c b/test-parse-options.c index da3d6581d3..a90bc3003d 100644 --- a/test-parse-options.c +++ b/test-parse-options.c @@ -7,6 +7,7 @@ static unsigned long timestamp; static int abbrev = 7; static int verbose = 0, dry_run = 0, quiet = 0; static char *string = NULL; +static char *file = NULL; int length_callback(const struct option *opt, const char *arg, int unset) { @@ -27,6 +28,7 @@ int number_callback(const struct option *opt, const char *arg, int unset) int main(int argc, const char **argv) { + const char *prefix = "prefix/"; const char *usage[] = { "test-parse-options <options>", NULL @@ -43,6 +45,7 @@ int main(int argc, const char **argv) OPT_DATE('t', NULL, ×tamp, "get timestamp of <time>"), OPT_CALLBACK('L', "length", &integer, "str", "get length of <str>", length_callback), + OPT_FILENAME('F', "file", &file, "set file to <FILE>"), OPT_GROUP("String options"), OPT_STRING('s', "string", &string, "string", "get a string"), OPT_STRING(0, "string2", &string, "str", "get another string"), @@ -65,7 +68,7 @@ int main(int argc, const char **argv) }; int i; - argc = parse_options(argc, argv, NULL, options, usage, 0); + argc = parse_options(argc, argv, prefix, options, usage, 0); printf("boolean: %d\n", boolean); printf("integer: %u\n", integer); @@ -75,6 +78,7 @@ int main(int argc, const char **argv) printf("verbose: %d\n", verbose); printf("quiet: %s\n", quiet ? "yes" : "no"); printf("dry run: %s\n", dry_run ? "yes" : "no"); + printf("file: %s\n", file ? file : "(not set)"); for (i = 0; i < argc; i++) printf("arg %02d: %s\n", i, argv[i]); |