Signed-off-by: Stefan Beller <[email protected]>
---
 archive.c                                  |  3 ++-
 builtin/commit.c                           | 17 +++++++++++------
 builtin/fmt-merge-msg.c                    |  2 +-
 builtin/notes.c                            |  3 ++-
 builtin/shortlog.c                         |  5 +++--
 contrib/coccinelle/submodule_reading.cocci | 10 ++++++++++
 log-tree.c                                 |  2 +-
 notes-cache.c                              |  2 +-
 pretty.c                                   |  5 +++--
 pretty.h                                   |  4 +++-
 sha1_name.c                                |  3 ++-
 submodule.c                                |  5 +++--
 t/helper/test-revision-walking.c           |  2 +-
 13 files changed, 43 insertions(+), 20 deletions(-)

diff --git a/archive.c b/archive.c
index 6f38a5cf55..cb0b1d595c 100644
--- a/archive.c
+++ b/archive.c
@@ -56,7 +56,8 @@ static void format_subst(const struct commit *commit,
                strbuf_add(&fmt, b + 8, c - b - 8);
 
                strbuf_add(buf, src, b - src);
-               format_commit_message(commit, fmt.buf, buf, &ctx);
+               format_commit_message(the_repository, commit, fmt.buf, buf,
+                                     &ctx);
                len -= c + 1 - src;
                src  = c + 1;
        }
diff --git a/builtin/commit.c b/builtin/commit.c
index c903893767..a6ddf6dd23 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -696,7 +696,8 @@ static int prepare_to_commit(const char *index_file, const 
char *prefix,
                        if (!c)
                                die(_("could not lookup commit %s"), 
squash_message);
                        ctx.output_encoding = get_commit_output_encoding();
-                       format_commit_message(c, "squash! %s\n\n", &sb,
+                       format_commit_message(the_repository, c,
+                                             "squash! %s\n\n", &sb,
                                              &ctx);
                }
        }
@@ -729,7 +730,7 @@ static int prepare_to_commit(const char *index_file, const 
char *prefix,
                if (!commit)
                        die(_("could not lookup commit %s"), fixup_message);
                ctx.output_encoding = get_commit_output_encoding();
-               format_commit_message(commit, "fixup! %s\n\n",
+               format_commit_message(the_repository, commit, "fixup! %s\n\n",
                                      &sb, &ctx);
                hook_arg1 = "message";
        } else if (!stat(git_path_merge_msg(the_repository), &statbuf)) {
@@ -1069,7 +1070,8 @@ static const char *find_author_by_nickname(const char 
*name)
                struct pretty_print_context ctx = {0};
                ctx.date_mode.type = DATE_NORMAL;
                strbuf_release(&buf);
-               format_commit_message(commit, "%aN <%aE>", &buf, &ctx);
+               format_commit_message(the_repository, commit, "%aN <%aE>",
+                                     &buf, &ctx);
                clear_mailmap(&mailmap);
                return strbuf_detach(&buf, NULL);
        }
@@ -1472,15 +1474,18 @@ static void print_summary(const char *prefix, const 
struct object_id *oid,
 
        strbuf_addstr(&format, "format:%h] %s");
 
-       format_commit_message(commit, "%an <%ae>", &author_ident, &pctx);
-       format_commit_message(commit, "%cn <%ce>", &committer_ident, &pctx);
+       format_commit_message(the_repository, commit, "%an <%ae>",
+                             &author_ident, &pctx);
+       format_commit_message(the_repository, commit, "%cn <%ce>",
+                             &committer_ident, &pctx);
        if (strbuf_cmp(&author_ident, &committer_ident)) {
                strbuf_addstr(&format, "\n Author: ");
                strbuf_addbuf_percentquote(&format, &author_ident);
        }
        if (author_date_is_interesting()) {
                struct strbuf date = STRBUF_INIT;
-               format_commit_message(commit, "%ad", &date, &pctx);
+               format_commit_message(the_repository, commit, "%ad", &date,
+                                     &pctx);
                strbuf_addstr(&format, "\n Date: ");
                strbuf_addbuf_percentquote(&format, &date);
                strbuf_release(&date);
diff --git a/builtin/fmt-merge-msg.c b/builtin/fmt-merge-msg.c
index 6dedb92d61..591cf95346 100644
--- a/builtin/fmt-merge-msg.c
+++ b/builtin/fmt-merge-msg.c
@@ -374,7 +374,7 @@ static void shortlog(const char *name,
                if (subjects.nr > limit)
                        continue;
 
-               format_commit_message(commit, "%s", &sb, &ctx);
+               format_commit_message(the_repository, commit, "%s", &sb, &ctx);
                strbuf_ltrim(&sb);
 
                if (!sb.len)
diff --git a/builtin/notes.c b/builtin/notes.c
index 9100ac5ce0..8633da1d5e 100644
--- a/builtin/notes.c
+++ b/builtin/notes.c
@@ -736,7 +736,8 @@ static int merge_commit(struct notes_merge_options *o)
 
        /* Reuse existing commit message in reflog message */
        memset(&pretty_ctx, 0, sizeof(pretty_ctx));
-       format_commit_message(partial, "%s", &msg, &pretty_ctx);
+       format_commit_message(the_repository, partial, "%s", &msg,
+                             &pretty_ctx);
        strbuf_trim(&msg);
        strbuf_insert(&msg, 0, "notes: ", 7);
        update_ref(msg.buf, o->local_ref, &oid,
diff --git a/builtin/shortlog.c b/builtin/shortlog.c
index e29875b843..61a8c9a6e9 100644
--- a/builtin/shortlog.c
+++ b/builtin/shortlog.c
@@ -169,12 +169,13 @@ void shortlog_add_commit(struct shortlog *log, struct 
commit *commit)
                (log->email ? "%cN <%cE>" : "%cN") :
                (log->email ? "%aN <%aE>" : "%aN");
 
-       format_commit_message(commit, fmt, &author, &ctx);
+       format_commit_message(the_repository, commit, fmt, &author, &ctx);
        if (!log->summary) {
                if (log->user_format)
                        pretty_print_commit(&ctx, commit, &oneline);
                else
-                       format_commit_message(commit, "%s", &oneline, &ctx);
+                       format_commit_message(the_repository, commit, "%s",
+                                             &oneline, &ctx);
        }
 
        insert_one_record(log, author.buf, oneline.len ? oneline.buf : 
"<none>");
diff --git a/contrib/coccinelle/submodule_reading.cocci 
b/contrib/coccinelle/submodule_reading.cocci
index b3e3d88626..30935ac21d 100644
--- a/contrib/coccinelle/submodule_reading.cocci
+++ b/contrib/coccinelle/submodule_reading.cocci
@@ -14,3 +14,13 @@ expression G;
  logmsg_reencode(
 +the_repository,
  E, F, G)
+
+@@
+expression E;
+expression F;
+expression G;
+expression H;
+@@
+ format_commit_message(
++the_repository,
+ E, F, G, H)
diff --git a/log-tree.c b/log-tree.c
index c6d2883190..e32a2fe71c 100644
--- a/log-tree.c
+++ b/log-tree.c
@@ -341,7 +341,7 @@ void fmt_output_commit(struct strbuf *filename,
        struct pretty_print_context ctx = {0};
        struct strbuf subject = STRBUF_INIT;
 
-       format_commit_message(commit, "%f", &subject, &ctx);
+       format_commit_message(the_repository, commit, "%f", &subject, &ctx);
        fmt_output_subject(filename, subject.buf, info);
        strbuf_release(&subject);
 }
diff --git a/notes-cache.c b/notes-cache.c
index a4a6ccab97..89c2284192 100644
--- a/notes-cache.c
+++ b/notes-cache.c
@@ -21,7 +21,7 @@ static int notes_cache_match_validity(const char *ref, const 
char *validity)
                return 0;
 
        memset(&pretty_ctx, 0, sizeof(pretty_ctx));
-       format_commit_message(commit, "%s", &msg, &pretty_ctx);
+       format_commit_message(the_repository, commit, "%s", &msg, &pretty_ctx);
        strbuf_trim(&msg);
 
        ret = !strcmp(msg.buf, validity);
diff --git a/pretty.c b/pretty.c
index a0c95280f6..30d53369b5 100644
--- a/pretty.c
+++ b/pretty.c
@@ -1503,7 +1503,7 @@ void userformat_find_requirements(const char *fmt, struct 
userformat_want *w)
        strbuf_release(&dummy);
 }
 
-void format_commit_message(const struct commit *commit,
+void format_commit_message_the_repository(const struct commit *commit,
                           const char *format, struct strbuf *sb,
                           const struct pretty_print_context *pretty_ctx)
 {
@@ -1796,7 +1796,8 @@ void pretty_print_commit(struct pretty_print_context *pp,
        int need_8bit_cte = pp->need_8bit_cte;
 
        if (pp->fmt == CMIT_FMT_USERFORMAT) {
-               format_commit_message(commit, user_format, sb, pp);
+               format_commit_message(the_repository, commit, user_format, sb,
+                                     pp);
                return;
        }
 
diff --git a/pretty.h b/pretty.h
index 5c85d94e33..14af7df4e8 100644
--- a/pretty.h
+++ b/pretty.h
@@ -99,7 +99,9 @@ void pp_remainder(struct pretty_print_context *pp, const char 
**msg_p,
  * Put the result to "sb".
  * Please use this function for custom formats.
  */
-void format_commit_message(const struct commit *commit,
+#define format_commit_message(r, c, f, s, p) \
+       format_commit_message_##r(c, f, s, p)
+void format_commit_message_the_repository(const struct commit *commit,
                        const char *format, struct strbuf *sb,
                        const struct pretty_print_context *context);
 
diff --git a/sha1_name.c b/sha1_name.c
index ee889daead..d6c2cf969f 100644
--- a/sha1_name.c
+++ b/sha1_name.c
@@ -378,7 +378,8 @@ static int show_ambiguous_object(const struct object_id 
*oid, void *data)
                if (commit) {
                        struct pretty_print_context pp = {0};
                        pp.date_mode.type = DATE_SHORT;
-                       format_commit_message(commit, " %ad - %s", &desc, &pp);
+                       format_commit_message(the_repository, commit,
+                                             " %ad - %s", &desc, &pp);
                }
        } else if (type == OBJ_TAG) {
                struct tag *tag = lookup_tag(the_repository, oid);
diff --git a/submodule.c b/submodule.c
index af4a1d2cea..b399cf46e4 100644
--- a/submodule.c
+++ b/submodule.c
@@ -452,7 +452,8 @@ static void print_submodule_summary(struct rev_info *rev, 
struct diff_options *o
                ctx.date_mode = rev->date_mode;
                ctx.output_encoding = get_log_output_encoding();
                strbuf_setlen(&sb, 0);
-               format_commit_message(commit, format, &sb, &ctx);
+               format_commit_message(the_repository, commit, format, &sb,
+                                     &ctx);
                strbuf_addch(&sb, '\n');
                if (commit->object.flags & SYMMETRIC_LEFT)
                        diff_emit_submodule_del(o, sb.buf);
@@ -1786,7 +1787,7 @@ static void print_commit(struct commit *commit)
        struct strbuf sb = STRBUF_INIT;
        struct pretty_print_context ctx = {0};
        ctx.date_mode.type = DATE_NORMAL;
-       format_commit_message(commit, " %h: %m %s", &sb, &ctx);
+       format_commit_message(the_repository, commit, " %h: %m %s", &sb, &ctx);
        fprintf(stderr, "%s\n", sb.buf);
        strbuf_release(&sb);
 }
diff --git a/t/helper/test-revision-walking.c b/t/helper/test-revision-walking.c
index b8e6fe1d00..59599410ce 100644
--- a/t/helper/test-revision-walking.c
+++ b/t/helper/test-revision-walking.c
@@ -18,7 +18,7 @@ static void print_commit(struct commit *commit)
        struct strbuf sb = STRBUF_INIT;
        struct pretty_print_context ctx = {0};
        ctx.date_mode.type = DATE_NORMAL;
-       format_commit_message(commit, " %m %s", &sb, &ctx);
+       format_commit_message(the_repository, commit, " %m %s", &sb, &ctx);
        printf("%s\n", sb.buf);
        strbuf_release(&sb);
 }
-- 
2.15.1.433.g936d1b9894.dirty

Reply via email to