diff options
author | Junio C Hamano <gitster@pobox.com> | 2016-11-23 11:23:17 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-11-23 11:23:17 -0800 |
commit | c34a7daad74b0f7b0dc72de131dbb9e919b0ab32 (patch) | |
tree | 1d2770d0c868cc2be228028e4865724cb860e48d /builtin | |
parent | 6a2b569c2fec49cc213e0218f1251749771044d6 (diff) | |
parent | eb0224c617ba6b4299f2a9f85d6c4b3b5e10abc0 (diff) | |
download | git-c34a7daad74b0f7b0dc72de131dbb9e919b0ab32.tar.gz git-c34a7daad74b0f7b0dc72de131dbb9e919b0ab32.tar.xz |
Merge branch 'jc/setup-cleanup-fix'
"git archive" and "git mailinfo" stopped reading from local
configuration file with a recent update.
* jc/setup-cleanup-fix:
archive: read local configuration
mailinfo: read local configuration
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/archive.c | 6 | ||||
-rw-r--r-- | builtin/mailinfo.c | 19 | ||||
-rw-r--r-- | builtin/upload-archive.c | 2 |
3 files changed, 19 insertions, 8 deletions
diff --git a/builtin/archive.c b/builtin/archive.c index 49f491413..f863465a0 100644 --- a/builtin/archive.c +++ b/builtin/archive.c @@ -85,8 +85,8 @@ int cmd_archive(int argc, const char **argv, const char *prefix) const char *output = NULL; const char *remote = NULL; struct option local_opts[] = { - OPT_STRING('o', "output", &output, N_("file"), - N_("write the archive to this file")), + OPT_FILENAME('o', "output", &output, + N_("write the archive to this file")), OPT_STRING(0, "remote", &remote, N_("repo"), N_("retrieve the archive from remote repository <repo>")), OPT_STRING(0, "exec", &exec, N_("command"), @@ -105,5 +105,5 @@ int cmd_archive(int argc, const char **argv, const char *prefix) setvbuf(stderr, NULL, _IOLBF, BUFSIZ); - return write_archive(argc, argv, prefix, 1, output, 0); + return write_archive(argc, argv, prefix, output, 0); } diff --git a/builtin/mailinfo.c b/builtin/mailinfo.c index f6df27411..e3b62f2fc 100644 --- a/builtin/mailinfo.c +++ b/builtin/mailinfo.c @@ -11,15 +11,20 @@ static const char mailinfo_usage[] = "git mailinfo [-k | -b] [-m | --message-id] [-u | --encoding=<encoding> | -n] [--scissors | --no-scissors] <msg> <patch> < mail >info"; +static char *prefix_copy(const char *prefix, const char *filename) +{ + if (!prefix || is_absolute_path(filename)) + return xstrdup(filename); + return xstrdup(prefix_filename(prefix, strlen(prefix), filename)); +} + int cmd_mailinfo(int argc, const char **argv, const char *prefix) { const char *def_charset; struct mailinfo mi; int status; + char *msgfile, *patchfile; - /* NEEDSWORK: might want to do the optional .git/ directory - * discovery - */ setup_mailinfo(&mi); def_charset = get_commit_output_encoding(); @@ -54,8 +59,14 @@ int cmd_mailinfo(int argc, const char **argv, const char *prefix) mi.input = stdin; mi.output = stdout; - status = !!mailinfo(&mi, argv[1], argv[2]); + + msgfile = prefix_copy(prefix, argv[1]); + patchfile = prefix_copy(prefix, argv[2]); + + status = !!mailinfo(&mi, msgfile, patchfile); clear_mailinfo(&mi); + free(msgfile); + free(patchfile); return status; } diff --git a/builtin/upload-archive.c b/builtin/upload-archive.c index dc872f6a9..cde06977b 100644 --- a/builtin/upload-archive.c +++ b/builtin/upload-archive.c @@ -43,7 +43,7 @@ int cmd_upload_archive_writer(int argc, const char **argv, const char *prefix) } /* parse all options sent by the client */ - return write_archive(sent_argv.argc, sent_argv.argv, prefix, 0, NULL, 1); + return write_archive(sent_argv.argc, sent_argv.argv, prefix, NULL, 1); } __attribute__((format (printf, 1, 2))) |