On Sun, Apr 24, 2016 at 9:33 AM, Christian Couder <christian.couder@xxxxxxxxx> wrote: > To libify `git apply` functionality we have to signal errors > to the caller instead of die()ing. > > As a first step in this direction, let's make apply_patch() return > -1 in case of errors instead of dying. For now its only caller > apply_all_patches() will exit(1) when apply_patch() return -1. > > In a later patch, apply_all_patches() will return -1 too instead of > exiting. > > Signed-off-by: Christian Couder <chriscool@xxxxxxxxxxxxx> > --- > diff --git a/builtin/apply.c b/builtin/apply.c > @@ -4522,6 +4522,14 @@ static int write_out_results(struct apply_state *state, struct patch *list) > static int apply_patch(struct apply_state *state, > int fd, > const char *filename, > @@ -4564,7 +4572,7 @@ static int apply_patch(struct apply_state *state, > } > > if (!list && !skipped_patch) > - die(_("unrecognized input")); > + return error(_("unrecognized input")); > > if (state->whitespace_error && (state->ws_error_action == die_on_ws_error)) > state->apply = 0; > @@ -4575,19 +4583,17 @@ static int apply_patch(struct apply_state *state, > hold_locked_index(state->lock_file, 1); > } > > - if (state->check_index) { > - if (read_cache() < 0) > - die(_("unable to read index file")); > - } > + if (state->check_index && read_cache() < 0) > + return error(_("unable to read index file")); > > if ((state->check || state->apply) && > check_patch_list(state, list) < 0 && > !state->apply_with_reject) > - exit(1); > + return -1; > > if (state->apply && write_out_results(state, list)) { > if (state->apply_with_reject) > - exit(1); > + return -1; > /* with --3way, we still need to write the index out */ > return 1; > } Are these new 'returns' leaking 'list', 'buf', and 'fn_table' which otherwise get released at the end of the function? -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html