summaryrefslogtreecommitdiff
path: root/archive-tar.c
diff options
context:
space:
mode:
authorRené Scharfe <rene.scharfe@lsrfire.ath.cx>2008-07-14 21:22:12 +0200
committerJunio C Hamano <gitster@pobox.com>2008-07-15 07:17:59 -0700
commit671f0707212c929533dc6ec9e032faee328e4602 (patch)
treedbee94a8ff126713d0bb3f72321392e38a66c55e /archive-tar.c
parent34533004b27df4f34e18d9e26832fcc956a39fca (diff)
downloadgit-671f0707212c929533dc6ec9e032faee328e4602.tar.gz
add context pointer to read_tree_recursive()
Add a pointer parameter to read_tree_recursive(), which is passed to the callback function. This allows callers of read_tree_recursive() to share data with the callback without resorting to global variables. All current callers pass NULL. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'archive-tar.c')
-rw-r--r--archive-tar.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/archive-tar.c b/archive-tar.c
index 99db58f1cf..6eaf59eb01 100644
--- a/archive-tar.c
+++ b/archive-tar.c
@@ -234,9 +234,9 @@ static int git_tar_config(const char *var, const char *value, void *cb)
return git_default_config(var, value, cb);
}
-static int write_tar_entry(const unsigned char *sha1,
- const char *base, int baselen,
- const char *filename, unsigned mode, int stage)
+static int write_tar_entry(const unsigned char *sha1, const char *base,
+ int baselen, const char *filename, unsigned mode, int stage,
+ void *context)
{
static struct strbuf path = STRBUF_INIT;
void *buffer;
@@ -286,11 +286,12 @@ int write_tar_archive(struct archiver_args *args)
while (baselen > 0 && base[baselen - 1] == '/')
base[--baselen] = '\0';
- write_tar_entry(args->tree->object.sha1, "", 0, base, 040777, 0);
+ write_tar_entry(args->tree->object.sha1, "", 0, base, 040777,
+ 0, NULL);
free(base);
}
read_tree_recursive(args->tree, args->base, plen, 0,
- args->pathspec, write_tar_entry);
+ args->pathspec, write_tar_entry, NULL);
write_trailer();
return 0;