summaryrefslogtreecommitdiff
path: root/refs.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2005-07-05 18:31:32 (GMT)
committerLinus Torvalds <torvalds@g5.osdl.org>2005-07-05 18:31:32 (GMT)
commit723c31fea2f1c4994de837bda9022ffa8b6de1bb (patch)
tree4c8c636dd58a7489cf033f3ac8682aeab453385d /refs.c
parent7a662e896bcd391265477e304d7af6e5d2ca1deb (diff)
downloadgit-723c31fea2f1c4994de837bda9022ffa8b6de1bb.zip
git-723c31fea2f1c4994de837bda9022ffa8b6de1bb.tar.gz
git-723c31fea2f1c4994de837bda9022ffa8b6de1bb.tar.bz2
Add "git_path()" and "head_ref()" helper functions.
"git_path()" returns a static pathname pointer into the git directory using a printf-like format specifier. "head_ref()" works like "for_each_ref()", except for just the HEAD.
Diffstat (limited to 'refs.c')
-rw-r--r--refs.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/refs.c b/refs.c
index 7ccd721..6ca04d3 100644
--- a/refs.c
+++ b/refs.c
@@ -68,6 +68,15 @@ static int do_for_each_ref(const char *base, int (*fn)(const char *path, const u
return retval;
}
+int head_ref(int (*fn)(const char *path, const unsigned char *sha1))
+{
+ unsigned char sha1[20];
+ const char *headpath = git_path("HEAD");
+ if (!read_ref(headpath, sha1))
+ fn(headpath, sha1);
+ return do_for_each_ref(get_refs_directory(), fn);
+}
+
int for_each_ref(int (*fn)(const char *path, const unsigned char *sha1))
{
return do_for_each_ref(get_refs_directory(), fn);