X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=mailinfo.c;h=890e3487adf65b937f9a9d1ec82d59c746bf62de;hb=562051809589574576971c53c23aad93f8c395d9;hp=6d8c93360fe084a4209277312a99fbb40d1c04bc;hpb=650e4be59b9f385f56e5829d97d09e8440f174b8;p=git.git diff --git a/mailinfo.c b/mailinfo.c index 6d8c9336..890e3487 100644 --- a/mailinfo.c +++ b/mailinfo.c @@ -8,6 +8,7 @@ #include #include #include +#include "cache.h" #ifdef NO_STRCASESTR extern char *gitstrcasestr(const char *haystack, const char *needle); @@ -716,29 +717,29 @@ static void handle_body(void) } static const char mailinfo_usage[] = - "git-mailinfo [-k] [-u] msg patch info"; - -static void usage(void) { - fprintf(stderr, "%s\n", mailinfo_usage); - exit(1); -} + "git-mailinfo [-k] [-u | --encoding=] msg patch info"; int main(int argc, char **argv) { + /* NEEDSWORK: might want to do the optional .git/ directory + * discovery + */ + git_config(git_default_config); + while (1 < argc && argv[1][0] == '-') { if (!strcmp(argv[1], "-k")) keep_subject = 1; else if (!strcmp(argv[1], "-u")) - metainfo_charset = "utf-8"; - else if (!strncmp(argv[1], "-u=", 3)) - metainfo_charset = argv[1] + 3; + metainfo_charset = git_commit_encoding; + else if (!strncmp(argv[1], "--encoding=", 11)) + metainfo_charset = argv[1] + 11; else - usage(); + usage(mailinfo_usage); argc--; argv++; } if (argc != 3) - usage(); + usage(mailinfo_usage); cmitmsg = fopen(argv[1], "w"); if (!cmitmsg) { perror(argv[1]);