]> git.ipfire.org Git - thirdparty/git.git/blobdiff - builtin/log.c
notes: break set_display_notes() into smaller functions
[thirdparty/git.git] / builtin / log.c
index e43ee12fb1dd33c669056ae2b02c12ecc0b73d67..b6d43a4a47ebbc39e36c5552b3bd0fdc5ae44404 100644 (file)
@@ -202,7 +202,7 @@ static void cmd_log_init_finish(int argc, const char **argv, const char *prefix,
        if (!rev->show_notes_given && (!rev->pretty_given || w.notes))
                rev->show_notes = 1;
        if (rev->show_notes)
-               init_display_notes(&rev->notes_opt);
+               load_display_notes(&rev->notes_opt);
 
        if ((rev->diffopt.pickaxe_opts & DIFF_PICKAXE_KINDS_MASK) ||
            rev->diffopt.filter || rev->diffopt.flags.follow_renames)
@@ -769,6 +769,8 @@ static const char *signature = git_version_string;
 static const char *signature_file;
 static int config_cover_letter;
 static const char *config_output_directory;
+static int show_notes;
+static struct display_notes_opt notes_opt;
 
 enum {
        COVER_UNSET,
@@ -864,6 +866,16 @@ static int git_format_config(const char *var, const char *value, void *cb)
                        from = NULL;
                return 0;
        }
+       if (!strcmp(var, "format.notes")) {
+               int b = git_parse_maybe_bool(value);
+               if (b < 0)
+                       enable_ref_display_notes(&notes_opt, &show_notes, value);
+               else if (b)
+                       enable_default_display_notes(&notes_opt, &show_notes);
+               else
+                       disable_display_notes(&notes_opt, &show_notes);
+               return 0;
+       }
 
        return git_log_config(var, value, cb);
 }
@@ -1617,8 +1629,11 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
        extra_to.strdup_strings = 1;
        extra_cc.strdup_strings = 1;
        init_log_defaults();
+       init_display_notes(&notes_opt);
        git_config(git_format_config, NULL);
        repo_init_revisions(the_repository, &rev, prefix);
+       rev.show_notes = show_notes;
+       memcpy(&rev.notes_opt, &notes_opt, sizeof(notes_opt));
        rev.commit_format = CMIT_FMT_EMAIL;
        rev.expand_tabs_in_log_default = 0;
        rev.verbose_header = 1;
@@ -1731,7 +1746,7 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
                rev.diffopt.flags.binary = 1;
 
        if (rev.show_notes)
-               init_display_notes(&rev.notes_opt);
+               load_display_notes(&rev.notes_opt);
 
        if (!output_directory && !use_stdout)
                output_directory = config_output_directory;