Merge branch 'sb/more-repo-in-api'
The in-core repository instances are passed through more codepaths.
* sb/more-repo-in-api: (23 commits)
t/helper/test-repository: celebrate independence from the_repository
path.h: make REPO_GIT_PATH_FUNC repository agnostic
commit: prepare free_commit_buffer and release_commit_memory for any repo
commit-graph: convert remaining functions to handle any repo
submodule: don't add submodule as odb for push
submodule: use submodule repos for object lookup
pretty: prepare format_commit_message to handle arbitrary repositories
commit: prepare logmsg_reencode to handle arbitrary repositories
commit: prepare repo_unuse_commit_buffer to handle any repo
commit: prepare get_commit_buffer to handle any repo
commit-reach: prepare in_merge_bases[_many] to handle any repo
commit-reach: prepare get_merge_bases to handle any repo
commit-reach.c: allow get_merge_bases_many_0 to handle any repo
commit-reach.c: allow remove_redundant to handle any repo
commit-reach.c: allow merge_bases_many to handle any repo
commit-reach.c: allow paint_down_to_common to handle any repo
commit: allow parse_commit* to handle any repo
object: parse_object to honor its repository argument
object-store: prepare has_{sha1, object}_file to handle any repo
object-store: prepare read_object_file to deal with any repo
...
This commit is contained in:
28
pretty.c
28
pretty.c
@ -595,14 +595,15 @@ static char *replace_encoding_header(char *buf, const char *encoding)
|
||||
return strbuf_detach(&tmp, NULL);
|
||||
}
|
||||
|
||||
const char *logmsg_reencode(const struct commit *commit,
|
||||
char **commit_encoding,
|
||||
const char *output_encoding)
|
||||
const char *repo_logmsg_reencode(struct repository *r,
|
||||
const struct commit *commit,
|
||||
char **commit_encoding,
|
||||
const char *output_encoding)
|
||||
{
|
||||
static const char *utf8 = "UTF-8";
|
||||
const char *use_encoding;
|
||||
char *encoding;
|
||||
const char *msg = get_commit_buffer(commit, NULL);
|
||||
const char *msg = repo_get_commit_buffer(r, commit, NULL);
|
||||
char *out;
|
||||
|
||||
if (!output_encoding || !*output_encoding) {
|
||||
@ -630,7 +631,7 @@ const char *logmsg_reencode(const struct commit *commit,
|
||||
* the cached copy from get_commit_buffer, we need to duplicate it
|
||||
* to avoid munging the cached copy.
|
||||
*/
|
||||
if (msg == get_cached_commit_buffer(the_repository, commit, NULL))
|
||||
if (msg == get_cached_commit_buffer(r, commit, NULL))
|
||||
out = xstrdup(msg);
|
||||
else
|
||||
out = (char *)msg;
|
||||
@ -644,7 +645,7 @@ const char *logmsg_reencode(const struct commit *commit,
|
||||
*/
|
||||
out = reencode_string(msg, output_encoding, use_encoding);
|
||||
if (out)
|
||||
unuse_commit_buffer(commit, msg);
|
||||
repo_unuse_commit_buffer(r, commit, msg);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1527,9 +1528,10 @@ void userformat_find_requirements(const char *fmt, struct userformat_want *w)
|
||||
strbuf_release(&dummy);
|
||||
}
|
||||
|
||||
void format_commit_message(const struct commit *commit,
|
||||
const char *format, struct strbuf *sb,
|
||||
const struct pretty_print_context *pretty_ctx)
|
||||
void repo_format_commit_message(struct repository *r,
|
||||
const struct commit *commit,
|
||||
const char *format, struct strbuf *sb,
|
||||
const struct pretty_print_context *pretty_ctx)
|
||||
{
|
||||
struct format_commit_context context;
|
||||
const char *output_enc = pretty_ctx->output_encoding;
|
||||
@ -1543,9 +1545,9 @@ void format_commit_message(const struct commit *commit,
|
||||
* convert a commit message to UTF-8 first
|
||||
* as far as 'format_commit_item' assumes it in UTF-8
|
||||
*/
|
||||
context.message = logmsg_reencode(commit,
|
||||
&context.commit_encoding,
|
||||
utf8);
|
||||
context.message = repo_logmsg_reencode(r, commit,
|
||||
&context.commit_encoding,
|
||||
utf8);
|
||||
|
||||
strbuf_expand(sb, format, format_commit_item, &context);
|
||||
rewrap_message_tail(sb, &context, 0, 0, 0);
|
||||
@ -1569,7 +1571,7 @@ void format_commit_message(const struct commit *commit,
|
||||
}
|
||||
|
||||
free(context.commit_encoding);
|
||||
unuse_commit_buffer(commit, context.message);
|
||||
repo_unuse_commit_buffer(r, commit, context.message);
|
||||
}
|
||||
|
||||
static void pp_header(struct pretty_print_context *pp,
|
||||
|
||||
Reference in New Issue
Block a user