summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2012-05-08 13:35:21 -0700
committerJunio C Hamano <gitster@pobox.com>2012-07-09 14:36:26 -0700
commit37b9c903eb825ca741ea0eddc942309f892b682f (patch)
tree5e2ba19918cea774bf2c314bb6a5336737b2f275
parentf4c66eeddd37d3e5f4043df89c2679fbadeb57bd (diff)
downloadgit-37b9c903eb825ca741ea0eddc942309f892b682f.tar.gz
apply: split load_preimage() helper function out
Given a patch for a single path, the function apply_data() reads the preimage in core, and applies the change represented in the patch. Separate out the first part that reads the preimage into a separate helper function load_preimage(). Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--builtin/apply.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/builtin/apply.c b/builtin/apply.c
index 487e4034a5..4d2546f5e1 100644
--- a/builtin/apply.c
+++ b/builtin/apply.c
@@ -3046,10 +3046,10 @@ static int checkout_target(struct cache_entry *ce, struct stat *st)
return 0;
}
-static int apply_data(struct patch *patch, struct stat *st, struct cache_entry *ce)
+static int load_preimage(struct image *image,
+ struct patch *patch, struct stat *st, struct cache_entry *ce)
{
struct strbuf buf = STRBUF_INIT;
- struct image image;
size_t len;
char *img;
struct patch *tpatch;
@@ -3086,7 +3086,16 @@ static int apply_data(struct patch *patch, struct stat *st, struct cache_entry *
}
img = strbuf_detach(&buf, &len);
- prepare_image(&image, img, len, !patch->is_binary);
+ prepare_image(image, img, len, !patch->is_binary);
+ return 0;
+}
+
+static int apply_data(struct patch *patch, struct stat *st, struct cache_entry *ce)
+{
+ struct image image;
+
+ if (load_preimage(&image, patch, st, ce) < 0)
+ return -1;
if (apply_fragments(&image, patch) < 0)
return -1; /* note with --reject this succeeds. */