summaryrefslogtreecommitdiff
path: root/attr.c
diff options
context:
space:
mode:
authorLukas Fleischer <git@cryptocrack.de>2013-04-13 13:28:30 (GMT)
committerJunio C Hamano <gitster@pobox.com>2013-04-17 16:49:11 (GMT)
commit29fb37b272debaf4f5f6eb7cf476de9274492930 (patch)
treeed6827f948d726bec9fadb0b0f292146e27a28a6 /attr.c
parent04a74b6cfa5ef4870263f84ac94a488d9f2ef14a (diff)
downloadgit-29fb37b272debaf4f5f6eb7cf476de9274492930.zip
git-29fb37b272debaf4f5f6eb7cf476de9274492930.tar.gz
git-29fb37b272debaf4f5f6eb7cf476de9274492930.tar.bz2
attr.c: extract read_index_data() as read_blob_data_from_index()
Extract the read_index_data() function from attr.c and move it to read-cache.c; rename it to read_blob_data_from_index() and update the function signature of it to align better with index/cache API functions. This allows for reusing the function in convert.c later. Signed-off-by: Lukas Fleischer <git@cryptocrack.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'attr.c')
-rw-r--r--attr.c35
1 files changed, 1 insertions, 34 deletions
diff --git a/attr.c b/attr.c
index 23be4ab..243d60f 100644
--- a/attr.c
+++ b/attr.c
@@ -381,46 +381,13 @@ static struct attr_stack *read_attr_from_file(const char *path, int macro_ok)
return res;
}
-static void *read_index_data(const char *path)
-{
- int pos, len;
- unsigned long sz;
- enum object_type type;
- void *data;
- struct index_state *istate = use_index ? use_index : &the_index;
-
- len = strlen(path);
- pos = index_name_pos(istate, path, len);
- if (pos < 0) {
- /*
- * We might be in the middle of a merge, in which
- * case we would read stage #2 (ours).
- */
- int i;
- for (i = -pos - 1;
- (pos < 0 && i < istate->cache_nr &&
- !strcmp(istate->cache[i]->name, path));
- i++)
- if (ce_stage(istate->cache[i]) == 2)
- pos = i;
- }
- if (pos < 0)
- return NULL;
- data = read_sha1_file(istate->cache[pos]->sha1, &type, &sz);
- if (!data || type != OBJ_BLOB) {
- free(data);
- return NULL;
- }
- return data;
-}
-
static struct attr_stack *read_attr_from_index(const char *path, int macro_ok)
{
struct attr_stack *res;
char *buf, *sp;
int lineno = 0;
- buf = read_index_data(path);
+ buf = read_blob_data_from_index(use_index ? use_index : &the_index, path);
if (!buf)
return NULL;