Merge branch 'rh/peeling-tag-to-tag'
[gitweb.git] / builtin / add.c
index 1dab2464f6bd4c848b3068c3e12df378b0540197..226f758869358444ad1c39e5e0a05c961fb76859 100644 (file)
@@ -270,13 +270,7 @@ int interactive_add(int argc, const char **argv, const char *prefix, int patch)
 {
        struct pathspec pathspec;
 
-       /*
-        * git-add--interactive itself does not parse pathspec. It
-        * simply passes the pathspec to other builtin commands. Let's
-        * hope all of them support all magic, or we'll need to limit
-        * the magic here.
-        */
-       parse_pathspec(&pathspec, PATHSPEC_ALL_MAGIC & ~PATHSPEC_FROMTOP,
+       parse_pathspec(&pathspec, 0,
                       PATHSPEC_PREFER_FULL |
                       PATHSPEC_SYMLINK_LEADING_PATH |
                       PATHSPEC_PREFIX_ORIGIN,
@@ -302,21 +296,22 @@ static int edit_patch(int argc, const char **argv, const char *prefix)
        git_config(git_diff_basic_config, NULL); /* no "diff" UI options */
 
        if (read_cache() < 0)
-               die (_("Could not read the index"));
+               die(_("Could not read the index"));
 
        init_revisions(&rev, prefix);
        rev.diffopt.context = 7;
 
        argc = setup_revisions(argc, argv, &rev, NULL);
        rev.diffopt.output_format = DIFF_FORMAT_PATCH;
+       rev.diffopt.use_color = 0;
        DIFF_OPT_SET(&rev.diffopt, IGNORE_DIRTY_SUBMODULES);
        out = open(file, O_CREAT | O_WRONLY, 0666);
        if (out < 0)
-               die (_("Could not open '%s' for writing."), file);
+               die(_("Could not open '%s' for writing."), file);
        rev.diffopt.file = xfdopen(out, "w");
        rev.diffopt.close_file = 1;
        if (run_diff_files(&rev, 0))
-               die (_("Could not write patch"));
+               die(_("Could not write patch"));
 
        launch_editor(file, NULL, NULL);
 
@@ -329,7 +324,7 @@ static int edit_patch(int argc, const char **argv, const char *prefix)
        child.git_cmd = 1;
        child.argv = apply_argv;
        if (run_command(&child))
-               die (_("Could not apply '%s'"), file);
+               die(_("Could not apply '%s'"), file);
 
        unlink(file);
        free(file);
@@ -544,12 +539,14 @@ int cmd_add(int argc, const char **argv, const char *prefix)
                GUARD_PATHSPEC(&pathspec,
                               PATHSPEC_FROMTOP |
                               PATHSPEC_LITERAL |
-                              PATHSPEC_GLOB);
+                              PATHSPEC_GLOB |
+                              PATHSPEC_ICASE);
 
                for (i = 0; i < pathspec.nr; i++) {
                        const char *path = pathspec.items[i].match;
                        if (!seen[i] &&
-                           ((pathspec.items[i].magic & PATHSPEC_GLOB) ||
+                           ((pathspec.items[i].magic &
+                             (PATHSPEC_GLOB | PATHSPEC_ICASE)) ||
                             !file_exists(path))) {
                                if (ignore_missing) {
                                        int dtype = DT_UNKNOWN;
@@ -585,7 +582,7 @@ int cmd_add(int argc, const char **argv, const char *prefix)
 
        unplug_bulk_checkin();
 
- finish:
+finish:
        if (active_cache_changed) {
                if (write_cache(newfd, active_cache, active_nr) ||
                    commit_locked_index(&lock_file))