filter-branch: make sure orig_namespace ends with a single slash.
[gitweb.git] / wt-status.c
index a25632bc87867748016e32a4ba4652918c8705a3..52054201c2a8729e036a5d97337a5f85bcafc782 100644 (file)
@@ -22,6 +22,7 @@ static const char use_add_rm_msg[] =
 "use \"git add/rm <file>...\" to update what will be committed";
 static const char use_add_to_include_msg[] =
 "use \"git add <file>...\" to include in what will be committed";
+static const char *excludes_file;
 
 static int parse_status_slot(const char *var, int offset)
 {
@@ -197,7 +198,7 @@ static void wt_read_cache(struct wt_status *s)
        read_cache();
 }
 
-void wt_status_print_initial(struct wt_status *s)
+static void wt_status_print_initial(struct wt_status *s)
 {
        int i;
        char buf[PATH_MAX];
@@ -259,8 +260,10 @@ static void wt_status_print_untracked(struct wt_status *s)
        x = git_path("info/exclude");
        if (file_exists(x))
                add_excludes_from_file(&dir, x);
+       if (excludes_file && file_exists(excludes_file))
+               add_excludes_from_file(&dir, excludes_file);
 
-       read_directory(&dir, ".", "", 0);
+       read_directory(&dir, ".", "", 0, NULL);
        for(i = 0; i < dir.nr; i++) {
                /* check for matching entry, which is unmerged; lifted from
                 * builtin-ls-files:show_other_files */
@@ -356,5 +359,11 @@ int git_status_config(const char *k, const char *v)
                int slot = parse_status_slot(k, 13);
                color_parse(v, k, wt_status_colors[slot]);
        }
+       if (!strcmp(k, "core.excludesfile")) {
+               if (!v)
+                       die("core.excludesfile without value");
+               excludes_file = xstrdup(v);
+               return 0;
+       }
        return git_default_config(k, v);
 }