From: Junio C Hamano Date: Fri, 5 Jun 2015 19:00:09 +0000 (-0700) Subject: Merge branch 'jk/add-e-kill-editor' into maint X-Git-Tag: v2.4.3~20 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/8d5ef5a0d1da18a2eb55c976720a8e96642c1b0b?hp=-c Merge branch 'jk/add-e-kill-editor' into maint "git add -e" did not allow the user to abort the operation by killing the editor. * jk/add-e-kill-editor: add: check return value of launch_editor --- 8d5ef5a0d1da18a2eb55c976720a8e96642c1b0b diff --combined builtin/add.c index 3390933d68,1c7436589e..4bd98b799e --- a/builtin/add.c +++ b/builtin/add.c @@@ -5,7 -5,6 +5,7 @@@ */ #include "cache.h" #include "builtin.h" +#include "lockfile.h" #include "dir.h" #include "pathspec.h" #include "exec_cmd.h" @@@ -19,7 -18,7 +19,7 @@@ #include "argv-array.h" static const char * const builtin_add_usage[] = { - N_("git add [options] [--] ..."), + N_("git add [] [--] ..."), NULL }; static int patch_interactive, add_interactive, edit_interactive; @@@ -181,7 -180,7 +181,7 @@@ static int edit_patch(int argc, const c char *file = git_pathdup("ADD_EDIT.patch"); const char *apply_argv[] = { "apply", "--recount", "--cached", NULL, NULL }; - struct child_process child; + struct child_process child = CHILD_PROCESS_INIT; struct rev_info rev; int out; struct stat st; @@@ -208,13 -207,15 +208,14 @@@ if (run_diff_files(&rev, 0)) die(_("Could not write patch")); - launch_editor(file, NULL, NULL); + if (launch_editor(file, NULL, NULL)) + die(_("editing patch failed")); if (stat(file, &st)) die_errno(_("Could not stat '%s'"), file); if (!st.st_size) die(_("Empty patch. Aborted.")); - memset(&child, 0, sizeof(child)); child.git_cmd = 1; child.argv = apply_argv; if (run_command(&child)) @@@ -284,7 -285,7 +285,7 @@@ static int add_files(struct dir_struct for (i = 0; i < dir->ignored_nr; i++) fprintf(stderr, "%s\n", dir->ignored[i]->name); fprintf(stderr, _("Use -f if you really want to add them.\n")); - die(_("no files added")); + exit_status = 1; } for (i = 0; i < dir->nr; i++) @@@ -299,6 -300,7 +300,6 @@@ int cmd_add(int argc, const char **argv, const char *prefix) { int exit_status = 0; - int newfd; struct pathspec pathspec; struct dir_struct dir; int flags; @@@ -344,7 -346,7 +345,7 @@@ add_new_files = !take_worktree_changes && !refresh_only; require_pathspec = !take_worktree_changes; - newfd = hold_locked_index(&lock_file, 1); + hold_locked_index(&lock_file, 1); flags = ((verbose ? ADD_CACHE_VERBOSE : 0) | (show_only ? ADD_CACHE_PRETEND : 0) | @@@ -442,7 -444,8 +443,7 @@@ finish: if (active_cache_changed) { - if (write_cache(newfd, active_cache, active_nr) || - commit_locked_index(&lock_file)) + if (write_locked_index(&the_index, &lock_file, COMMIT_LOCK)) die(_("Unable to write new index file")); }