merge-recur: do not call git-write-tree
[gitweb.git] / builtin-rm.c
index 4d56a1f07065e6e8ebaa95fdfe843cffb6283af3..92d205a7153a7cc5267ea9cf774bc1e4fac887d4 100644 (file)
@@ -43,11 +43,10 @@ static int remove_file(const char *name)
 
 static struct lock_file lock_file;
 
-int cmd_rm(int argc, const char **argv, char **envp)
+int cmd_rm(int argc, const char **argv, const char *prefix)
 {
        int i, newfd;
        int verbose = 0, show_only = 0, force = 0;
-       const char *prefix = setup_git_directory();
        const char **pathspec;
        char *seen;
 
@@ -90,8 +89,7 @@ int cmd_rm(int argc, const char **argv, char **envp)
        seen = NULL;
        for (i = 0; pathspec[i] ; i++)
                /* nothing */;
-       seen = xmalloc(i);
-       memset(seen, 0, i);
+       seen = xcalloc(i, 1);
 
        for (i = 0; i < active_nr; i++) {
                struct cache_entry *ce = active_cache[i];
@@ -129,7 +127,7 @@ int cmd_rm(int argc, const char **argv, char **envp)
         * workspace. If we fail to remove the first one, we
         * abort the "git rm" (but once we've successfully removed
         * any file at all, we'll go ahead and commit to it all:
-        * by then we've already committed ourself and can't fail
+        * by then we've already committed ourselves and can't fail
         * in the middle)
         */
        if (force) {
@@ -147,7 +145,7 @@ int cmd_rm(int argc, const char **argv, char **envp)
 
        if (active_cache_changed) {
                if (write_cache(newfd, active_cache, active_nr) ||
-                   commit_lock_file(&lock_file))
+                   close(newfd) || commit_lock_file(&lock_file))
                        die("Unable to write new index file");
        }