diff options
author | Junio C Hamano <gitster@pobox.com> | 2012-05-08 13:35:21 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-07-09 14:36:26 -0700 |
commit | 37b9c903eb825ca741ea0eddc942309f892b682f (patch) | |
tree | 5e2ba19918cea774bf2c314bb6a5336737b2f275 | |
parent | f4c66eeddd37d3e5f4043df89c2679fbadeb57bd (diff) | |
download | git-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.c | 15 |
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. */ |