From 6cb3f6b28294cb2b3766370f42a570fb46ba4e97 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Sat, 10 Apr 2010 00:11:53 -0700 Subject: [PATCH] wt-status: collect ignored files Signed-off-by: Junio C Hamano --- wt-status.c | 16 ++++++++++++++++ wt-status.h | 2 ++ 2 files changed, 18 insertions(+) diff --git a/wt-status.c b/wt-status.c index c88159ad0..f13c7da64 100644 --- a/wt-status.c +++ b/wt-status.c @@ -42,6 +42,7 @@ void wt_status_prepare(struct wt_status *s) s->index_file = get_index_file(); s->change.strdup_strings = 1; s->untracked.strdup_strings = 1; + s->ignored.strdup_strings = 1; } static void wt_status_print_unmerged_header(struct wt_status *s) @@ -382,6 +383,21 @@ static void wt_status_collect_untracked(struct wt_status *s) free(ent); } + if (s->show_ignored_files) { + dir.nr = 0; + dir.flags = DIR_SHOW_IGNORED | DIR_SHOW_OTHER_DIRECTORIES; + fill_directory(&dir, s->pathspec); + for (i = 0; i < dir.nr; i++) { + struct dir_entry *ent = dir.entries[i]; + if (!cache_name_is_other(ent->name, ent->len)) + continue; + if (!match_pathspec(s->pathspec, ent->name, ent->len, 0, NULL)) + continue; + string_list_insert(ent->name, &s->ignored); + free(ent); + } + } + free(dir.entries); } diff --git a/wt-status.h b/wt-status.h index 2c49f465f..1093e65ae 100644 --- a/wt-status.h +++ b/wt-status.h @@ -41,6 +41,7 @@ struct wt_status { int use_color; int relative_paths; int submodule_summary; + int show_ignored_files; enum untracked_status_type show_untracked_files; char color_palette[WT_STATUS_UNMERGED+1][COLOR_MAXLEN]; @@ -52,6 +53,7 @@ struct wt_status { const char *prefix; struct string_list change; struct string_list untracked; + struct string_list ignored; }; void wt_status_prepare(struct wt_status *s); -- 2.26.2