move load_ref_decorations() to log-tree.c and export it
log-tree.c is the ideal place for load_ref_decorations() and its helper functions to live in, because the variable name_decoration they're operating on is already located there, so move them thither. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
5e9bf11c1a
commit
cab4feb67d
|
@ -14,7 +14,6 @@
|
||||||
#include "tag.h"
|
#include "tag.h"
|
||||||
#include "reflog-walk.h"
|
#include "reflog-walk.h"
|
||||||
#include "patch-ids.h"
|
#include "patch-ids.h"
|
||||||
#include "refs.h"
|
|
||||||
#include "run-command.h"
|
#include "run-command.h"
|
||||||
#include "shortlog.h"
|
#include "shortlog.h"
|
||||||
|
|
||||||
|
@ -25,40 +24,6 @@ static int default_show_root = 1;
|
||||||
static const char *fmt_patch_subject_prefix = "PATCH";
|
static const char *fmt_patch_subject_prefix = "PATCH";
|
||||||
static const char *fmt_pretty;
|
static const char *fmt_pretty;
|
||||||
|
|
||||||
static void add_name_decoration(const char *prefix, const char *name, struct object *obj)
|
|
||||||
{
|
|
||||||
int plen = strlen(prefix);
|
|
||||||
int nlen = strlen(name);
|
|
||||||
struct name_decoration *res = xmalloc(sizeof(struct name_decoration) + plen + nlen);
|
|
||||||
memcpy(res->name, prefix, plen);
|
|
||||||
memcpy(res->name + plen, name, nlen + 1);
|
|
||||||
res->next = add_decoration(&name_decoration, obj, res);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int add_ref_decoration(const char *refname, const unsigned char *sha1, int flags, void *cb_data)
|
|
||||||
{
|
|
||||||
struct object *obj = parse_object(sha1);
|
|
||||||
if (!obj)
|
|
||||||
return 0;
|
|
||||||
add_name_decoration("", refname, obj);
|
|
||||||
while (obj->type == OBJ_TAG) {
|
|
||||||
obj = ((struct tag *)obj)->tagged;
|
|
||||||
if (!obj)
|
|
||||||
break;
|
|
||||||
add_name_decoration("tag: ", refname, obj);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void load_ref_decorations(void)
|
|
||||||
{
|
|
||||||
static int loaded;
|
|
||||||
if (!loaded) {
|
|
||||||
loaded = 1;
|
|
||||||
for_each_ref(add_ref_decoration, NULL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void cmd_log_init(int argc, const char **argv, const char *prefix,
|
static void cmd_log_init(int argc, const char **argv, const char *prefix,
|
||||||
struct rev_info *rev)
|
struct rev_info *rev)
|
||||||
{
|
{
|
||||||
|
|
36
log-tree.c
36
log-tree.c
|
@ -1,12 +1,48 @@
|
||||||
#include "cache.h"
|
#include "cache.h"
|
||||||
#include "diff.h"
|
#include "diff.h"
|
||||||
#include "commit.h"
|
#include "commit.h"
|
||||||
|
#include "tag.h"
|
||||||
#include "graph.h"
|
#include "graph.h"
|
||||||
#include "log-tree.h"
|
#include "log-tree.h"
|
||||||
#include "reflog-walk.h"
|
#include "reflog-walk.h"
|
||||||
|
#include "refs.h"
|
||||||
|
|
||||||
struct decoration name_decoration = { "object names" };
|
struct decoration name_decoration = { "object names" };
|
||||||
|
|
||||||
|
static void add_name_decoration(const char *prefix, const char *name, struct object *obj)
|
||||||
|
{
|
||||||
|
int plen = strlen(prefix);
|
||||||
|
int nlen = strlen(name);
|
||||||
|
struct name_decoration *res = xmalloc(sizeof(struct name_decoration) + plen + nlen);
|
||||||
|
memcpy(res->name, prefix, plen);
|
||||||
|
memcpy(res->name + plen, name, nlen + 1);
|
||||||
|
res->next = add_decoration(&name_decoration, obj, res);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int add_ref_decoration(const char *refname, const unsigned char *sha1, int flags, void *cb_data)
|
||||||
|
{
|
||||||
|
struct object *obj = parse_object(sha1);
|
||||||
|
if (!obj)
|
||||||
|
return 0;
|
||||||
|
add_name_decoration("", refname, obj);
|
||||||
|
while (obj->type == OBJ_TAG) {
|
||||||
|
obj = ((struct tag *)obj)->tagged;
|
||||||
|
if (!obj)
|
||||||
|
break;
|
||||||
|
add_name_decoration("tag: ", refname, obj);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void load_ref_decorations(void)
|
||||||
|
{
|
||||||
|
static int loaded;
|
||||||
|
if (!loaded) {
|
||||||
|
loaded = 1;
|
||||||
|
for_each_ref(add_ref_decoration, NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void show_parents(struct commit *commit, int abbrev)
|
static void show_parents(struct commit *commit, int abbrev)
|
||||||
{
|
{
|
||||||
struct commit_list *p;
|
struct commit_list *p;
|
||||||
|
|
|
@ -17,5 +17,6 @@ void log_write_email_headers(struct rev_info *opt, const char *name,
|
||||||
const char **subject_p,
|
const char **subject_p,
|
||||||
const char **extra_headers_p,
|
const char **extra_headers_p,
|
||||||
int *need_8bit_cte_p);
|
int *need_8bit_cte_p);
|
||||||
|
void load_ref_decorations(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue