Skip to content

Commit

Permalink
branch: add read_branch_desc() helper function
Browse files Browse the repository at this point in the history
This will be used by various callers that make use of the branch
description throughout the system, so that if we need to update
the implementation the callers do not have to be modified.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Junio C Hamano committed Oct 5, 2011
1 parent 3bcad5a commit 6f9a332
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 0 deletions.
31 changes: 31 additions & 0 deletions branch.c
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,37 @@ static int setup_tracking(const char *new_ref, const char *orig_ref,
return 0;
}

struct branch_desc_cb {
const char *config_name;
const char *value;
};

static int read_branch_desc_cb(const char *var, const char *value, void *cb)
{
struct branch_desc_cb *desc = cb;
if (strcmp(desc->config_name, var))
return 0;
free((char *)desc->value);
return git_config_string(&desc->value, var, value);
}

int read_branch_desc(struct strbuf *buf, const char *branch_name)
{
struct branch_desc_cb cb;
struct strbuf name = STRBUF_INIT;
strbuf_addf(&name, "branch.%s.description", branch_name);
cb.config_name = name.buf;
cb.value = NULL;
if (git_config(read_branch_desc_cb, &cb) < 0) {
strbuf_release(&name);
return -1;
}
if (cb.value)
strbuf_addstr(buf, cb.value);
strbuf_release(&name);
return 0;
}

int validate_new_branchname(const char *name, struct strbuf *ref,
int force, int attr_only)
{
Expand Down
5 changes: 5 additions & 0 deletions branch.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,4 +46,9 @@ void remove_branch_state(void);
#define BRANCH_CONFIG_VERBOSE 01
extern void install_branch_config(int flag, const char *local, const char *origin, const char *remote);

/*
* Read branch description
*/
extern int read_branch_desc(struct strbuf *, const char *branch_name);

#endif

0 comments on commit 6f9a332

Please sign in to comment.