diff options
author | Junio C Hamano <gitster@pobox.com> | 2013-04-21 18:39:45 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-04-21 18:39:45 -0700 |
commit | 4b35b007a6bd8b76bd37589fa397c12265935029 (patch) | |
tree | 23b3c8432d49afea63efdedeab721b753a5e1eda /convert.c | |
parent | d2949c7b3c8a2f0d2cb5c61d99017a1a85a46264 (diff) | |
parent | 4982fd78f61db69504f91151f94fce9914d610b6 (diff) | |
download | git-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.c | 27 |
1 files changed, 2 insertions, 25 deletions
@@ -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; |