aboutsummaryrefslogtreecommitdiff
path: root/convert.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2013-04-21 18:39:45 -0700
committerJunio C Hamano <gitster@pobox.com>2013-04-21 18:39:45 -0700
commit4b35b007a6bd8b76bd37589fa397c12265935029 (patch)
tree23b3c8432d49afea63efdedeab721b753a5e1eda /convert.c
parentd2949c7b3c8a2f0d2cb5c61d99017a1a85a46264 (diff)
parent4982fd78f61db69504f91151f94fce9914d610b6 (diff)
downloadgit-4b35b007a6bd8b76bd37589fa397c12265935029.tar.gz
git-4b35b007a6bd8b76bd37589fa397c12265935029.tar.xz
Merge branch 'lf/read-blob-data-from-index'
Reduce duplicated code between convert.c and attr.c. * lf/read-blob-data-from-index: convert.c: remove duplicate code read_blob_data_from_index(): optionally return the size of blob data attr.c: extract read_index_data() as read_blob_data_from_index()
Diffstat (limited to 'convert.c')
-rw-r--r--convert.c27
1 files changed, 2 insertions, 25 deletions
diff --git a/convert.c b/convert.c
index 3520252d3..2a2e46c20 100644
--- a/convert.c
+++ b/convert.c
@@ -153,36 +153,13 @@ static void check_safe_crlf(const char *path, enum crlf_action crlf_action,
static int has_cr_in_index(const char *path)
{
- int pos, len;
unsigned long sz;
- enum object_type type;
void *data;
int has_cr;
- struct index_state *istate = &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)
+ data = read_blob_data_from_cache(path, &sz);
+ if (!data)
return 0;
- data = read_sha1_file(istate->cache[pos]->sha1, &type, &sz);
- if (!data || type != OBJ_BLOB) {
- free(data);
- return 0;
- }
-
has_cr = memchr(data, '\r', sz) != NULL;
free(data);
return has_cr;