#define USE_THE_REPOSITORY_VARIABLE
#include "git-compat-util.h"
#include "config.h"
#include "environment.h"
#include "refs.h"
#include "object-name.h"
#include "object-store-ll.h"
#include "diff.h"
#include "diff-merges.h"
#include "hex.h"
#include "revision.h"
#include "tag.h"
#include "string-list.h"
#include "branch.h"
#include "fmt-merge-msg.h"
#include "commit-reach.h"
#include "gpg-interface.h"
#include "wildmatch.h"
static int use_branch_desc;
static int suppress_dest_pattern_seen;
static struct string_list suppress_dest_patterns = …;
int fmt_merge_msg_config(const char *key, const char *value,
const struct config_context *ctx, void *cb)
{ … }
struct src_data { … };
struct origin_data { … };
static void init_src_data(struct src_data *data)
{ … }
static struct string_list srcs = …;
static struct string_list origins = …;
struct merge_parents { … };
static struct merge_parent *find_merge_parent(struct merge_parents *table,
struct object_id *given,
struct object_id *commit)
{ … }
static void add_merge_parent(struct merge_parents *table,
struct object_id *given,
struct object_id *commit)
{ … }
static int handle_line(char *line, struct merge_parents *merge_parents)
{ … }
static void print_joined(const char *singular, const char *plural,
struct string_list *list, struct strbuf *out)
{ … }
static void add_branch_desc(struct strbuf *out, const char *name)
{ … }
#define util_as_integral(elem) …
static void record_person_from_buf(int which, struct string_list *people,
const char *buffer)
{ … }
static void record_person(int which, struct string_list *people,
struct commit *commit)
{ … }
static int cmp_string_list_util_as_integral(const void *a_, const void *b_)
{ … }
static void add_people_count(struct strbuf *out, struct string_list *people)
{ … }
static void credit_people(struct strbuf *out,
struct string_list *them,
int kind)
{ … }
static void add_people_info(struct strbuf *out,
struct string_list *authors,
struct string_list *committers)
{ … }
static void shortlog(const char *name,
struct origin_data *origin_data,
struct commit *head,
struct rev_info *rev,
struct fmt_merge_msg_opts *opts,
struct strbuf *out)
{ … }
static int dest_suppressed(const char *dest_branch)
{ … }
static void fmt_merge_msg_title(struct strbuf *out,
const char *current_branch)
{ … }
static void fmt_tag_signature(struct strbuf *tagbuf,
struct strbuf *sig,
const char *buf,
unsigned long len)
{ … }
static void fmt_merge_msg_sigs(struct strbuf *out)
{ … }
static void find_merge_parents(struct merge_parents *result,
struct strbuf *in, struct object_id *head)
{ … }
int fmt_merge_msg(struct strbuf *in, struct strbuf *out,
struct fmt_merge_msg_opts *opts)
{ … }