Code

Merge git://git.kernel.org/pub/scm/gitk/gitk
[git.git] / builtin-log.c
index bbadbc0de2fe1a2c85f3488420172a4db2ab6b4a..d983cbc7bc98f1b28332c18946e5111a6dcba9ab 100644 (file)
@@ -20,6 +20,7 @@
 
 static int default_show_root = 1;
 static const char *fmt_patch_subject_prefix = "PATCH";
+static const char *fmt_pretty;
 
 static void add_name_decoration(const char *prefix, const char *name, struct object *obj)
 {
@@ -54,6 +55,8 @@ static void cmd_log_init(int argc, const char **argv, const char *prefix,
 
        rev->abbrev = DEFAULT_ABBREV;
        rev->commit_format = CMIT_FMT_DEFAULT;
+       if (fmt_pretty)
+               rev->commit_format = get_commit_format(fmt_pretty);
        rev->verbose_header = 1;
        DIFF_OPT_SET(&rev->diffopt, RECURSIVE);
        rev->show_root_diff = default_show_root;
@@ -221,6 +224,8 @@ static int cmd_log_walk(struct rev_info *rev)
 
 static int git_log_config(const char *var, const char *value)
 {
+       if (!strcmp(var, "format.pretty"))
+               return git_config_string(&fmt_pretty, var, value);
        if (!strcmp(var, "format.subjectprefix")) {
                if (!value)
                        config_error_nonbool(var);
@@ -683,6 +688,10 @@ static void make_cover_letter(struct rev_info *rev, int use_stdout,
        strbuf_release(&sb);
 
        shortlog_init(&log);
+       log.wrap_lines = 1;
+       log.wrap = 72;
+       log.in1 = 2;
+       log.in2 = 4;
        for (i = 0; i < nr; i++)
                shortlog_add_commit(&log, list[i]);
 
@@ -694,8 +703,8 @@ static void make_cover_letter(struct rev_info *rev, int use_stdout,
        if (!origin)
                return;
 
-       diff_setup(&opts);
-       opts.output_format |= DIFF_FORMAT_SUMMARY | DIFF_FORMAT_DIFFSTAT;
+       memcpy(&opts, &rev->diffopt, sizeof(opts));
+       opts.output_format = DIFF_FORMAT_SUMMARY | DIFF_FORMAT_DIFFSTAT;
 
        diff_setup_done(&opts);