git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>,
	"Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Subject: [PATCH 31/45] Convert refresh_index to take struct pathspec
Date: Sun,  9 Jun 2013 13:26:04 +0700	[thread overview]
Message-ID: <1370759178-1709-32-git-send-email-pclouds@gmail.com> (raw)
In-Reply-To: <1370759178-1709-1-git-send-email-pclouds@gmail.com>


Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/add.c    | 15 +++++++--------
 builtin/commit.c |  2 +-
 builtin/rm.c     |  2 +-
 cache.h          |  2 +-
 read-cache.c     |  5 +++--
 5 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/builtin/add.c b/builtin/add.c
index d039fc9..f5d6a33 100644
--- a/builtin/add.c
+++ b/builtin/add.c
@@ -226,19 +226,18 @@ static char *prune_directory(struct dir_struct *dir, const char **pathspec,
 	return seen;
 }
 
-static void refresh(int verbose, const char **pathspec)
+static void refresh(int verbose, const struct pathspec *pathspec)
 {
 	char *seen;
-	int i, specs;
+	int i;
 
-	for (specs = 0; pathspec[specs];  specs++)
-		/* nothing */;
-	seen = xcalloc(specs, 1);
+	seen = xcalloc(pathspec->nr, 1);
 	refresh_index(&the_index, verbose ? REFRESH_IN_PORCELAIN : REFRESH_QUIET,
 		      pathspec, seen, _("Unstaged changes after refreshing the index:"));
-	for (i = 0; i < specs; i++) {
+	for (i = 0; i < pathspec->nr; i++) {
 		if (!seen[i])
-			die(_("pathspec '%s' did not match any files"), pathspec[i]);
+			die(_("pathspec '%s' did not match any files"),
+			    pathspec->items[i].match);
 	}
         free(seen);
 }
@@ -524,7 +523,7 @@ int cmd_add(int argc, const char **argv, const char *prefix)
 	}
 
 	if (refresh_only) {
-		refresh(verbose, pathspec.raw);
+		refresh(verbose, &pathspec);
 		goto finish;
 	}
 	if (implicit_dot && prefix)
diff --git a/builtin/commit.c b/builtin/commit.c
index e5a3bb5..56bc7be 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -1200,7 +1200,7 @@ int cmd_status(int argc, const char **argv, const char *prefix)
 		       prefix, argv);
 
 	read_cache_preload(&s.pathspec);
-	refresh_index(&the_index, REFRESH_QUIET|REFRESH_UNMERGED, s.pathspec.raw, NULL, NULL);
+	refresh_index(&the_index, REFRESH_QUIET|REFRESH_UNMERGED, &s.pathspec, NULL, NULL);
 
 	fd = hold_locked_index(&index_lock, 0);
 	if (0 <= fd)
diff --git a/builtin/rm.c b/builtin/rm.c
index 0b38de3..9afc1c5 100644
--- a/builtin/rm.c
+++ b/builtin/rm.c
@@ -251,7 +251,7 @@ int cmd_rm(int argc, const char **argv, const char *prefix)
 	}
 
 	parse_pathspec(&pathspec, 0, PATHSPEC_PREFER_CWD, prefix, argv);
-	refresh_index(&the_index, REFRESH_QUIET, pathspec.raw, NULL, NULL);
+	refresh_index(&the_index, REFRESH_QUIET, &pathspec, NULL, NULL);
 
 	seen = NULL;
 	seen = xcalloc(pathspec.nr, 1);
diff --git a/cache.h b/cache.h
index f978e88..25410b9 100644
--- a/cache.h
+++ b/cache.h
@@ -499,7 +499,7 @@ extern void fill_stat_cache_info(struct cache_entry *ce, struct stat *st);
 #define REFRESH_IGNORE_MISSING	0x0008	/* ignore non-existent */
 #define REFRESH_IGNORE_SUBMODULES	0x0010	/* ignore submodules */
 #define REFRESH_IN_PORCELAIN	0x0020	/* user friendly output, not "needs update" */
-extern int refresh_index(struct index_state *, unsigned int flags, const char **pathspec, char *seen, const char *header_msg);
+extern int refresh_index(struct index_state *, unsigned int flags, const struct pathspec *pathspec, char *seen, const char *header_msg);
 
 struct lock_file {
 	struct lock_file *next;
diff --git a/read-cache.c b/read-cache.c
index 04ed561..27bbc35 100644
--- a/read-cache.c
+++ b/read-cache.c
@@ -1097,7 +1097,8 @@ static void show_file(const char * fmt, const char * name, int in_porcelain,
 	printf(fmt, name);
 }
 
-int refresh_index(struct index_state *istate, unsigned int flags, const char **pathspec,
+int refresh_index(struct index_state *istate, unsigned int flags,
+		  const struct pathspec *pathspec,
 		  char *seen, const char *header_msg)
 {
 	int i;
@@ -1132,7 +1133,7 @@ int refresh_index(struct index_state *istate, unsigned int flags, const char **p
 			continue;
 
 		if (pathspec &&
-		    !match_pathspec(pathspec, ce->name, ce_namelen(ce), 0, seen))
+		    !match_pathspec_depth(pathspec, ce->name, ce_namelen(ce), 0, seen))
 			filtered = 1;
 
 		if (ce_stage(ce)) {
-- 
1.8.2.83.gc99314b

  parent reply	other threads:[~2013-06-09  6:28 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-09  6:25 [PATCH 00/45] "struct pathspec" conversion and :(glob) Nguyễn Thái Ngọc Duy
2013-06-09  6:25 ` [PATCH 01/45] clean: remove unused variable "seen" Nguyễn Thái Ngọc Duy
2013-06-09  6:25 ` [PATCH 02/45] Move struct pathspec and related functions to pathspec.[ch] Nguyễn Thái Ngọc Duy
2013-06-09  6:25 ` [PATCH 03/45] pathspec: i18n-ize error strings in pathspec parsing code Nguyễn Thái Ngọc Duy
2013-06-09  6:25 ` [PATCH 04/45] pathspec: add copy_pathspec Nguyễn Thái Ngọc Duy
2013-06-09  7:58   ` Eric Sunshine
2013-06-12 18:07     ` Junio C Hamano
2013-06-09  6:25 ` [PATCH 05/45] Add parse_pathspec() that converts cmdline args to struct pathspec Nguyễn Thái Ngọc Duy
2013-06-10  1:24   ` Eric Sunshine
2013-06-09  6:25 ` [PATCH 06/45] parse_pathspec: save original pathspec for reporting Nguyễn Thái Ngọc Duy
2013-06-09  6:25 ` [PATCH 07/45] parse_pathspec: add PATHSPEC_PREFER_{CWD,FULL} Nguyễn Thái Ngọc Duy
2013-06-10  1:29   ` Eric Sunshine
2013-06-09  6:25 ` [PATCH 08/45] Convert some get_pathspec() calls to parse_pathspec() Nguyễn Thái Ngọc Duy
2013-06-09  6:25 ` [PATCH 09/45] parse_pathspec: a special flag for max_depth feature Nguyễn Thái Ngọc Duy
2013-06-10  1:34   ` Eric Sunshine
2013-06-09  6:25 ` [PATCH 10/45] parse_pathspec: support stripping submodule trailing slashes Nguyễn Thái Ngọc Duy
2013-06-10  1:36   ` Eric Sunshine
2013-06-09  6:25 ` [PATCH 11/45] parse_pathspec: support stripping/checking submodule paths Nguyễn Thái Ngọc Duy
2013-06-09  6:25 ` [PATCH 12/45] parse_pathspec: support prefixing original patterns Nguyễn Thái Ngọc Duy
2013-06-10  1:41   ` Eric Sunshine
2013-06-09  6:25 ` [PATCH 13/45] Guard against new pathspec magic in pathspec matching code Nguyễn Thái Ngọc Duy
2013-06-10  1:53   ` Eric Sunshine
2013-06-09  6:25 ` [PATCH 14/45] clean: convert to use parse_pathspec Nguyễn Thái Ngọc Duy
2013-06-09  6:25 ` [PATCH 15/45] commit: " Nguyễn Thái Ngọc Duy
2013-06-09  6:25 ` [PATCH 16/45] status: " Nguyễn Thái Ngọc Duy
2013-06-09  6:25 ` [PATCH 17/45] rerere: " Nguyễn Thái Ngọc Duy
2013-06-09  6:25 ` [PATCH 18/45] checkout: " Nguyễn Thái Ngọc Duy
2013-06-09  6:25 ` [PATCH 19/45] rm: " Nguyễn Thái Ngọc Duy
2013-06-09  6:25 ` [PATCH 20/45] ls-files: " Nguyễn Thái Ngọc Duy
2013-06-09  6:25 ` [PATCH 21/45] archive: " Nguyễn Thái Ngọc Duy
2013-06-09  6:25 ` [PATCH 22/45] check-ignore: " Nguyễn Thái Ngọc Duy
2013-06-09  6:25 ` [PATCH 23/45] add: " Nguyễn Thái Ngọc Duy
2013-06-09  6:25 ` [PATCH 24/45] reset: " Nguyễn Thái Ngọc Duy
2013-06-09  6:25 ` [PATCH 25/45] line-log: " Nguyễn Thái Ngọc Duy
2013-06-09  6:25 ` [PATCH 26/45] Convert read_cache_preload() to take struct pathspec Nguyễn Thái Ngọc Duy
2013-06-09  6:26 ` [PATCH 27/45] Convert run_add_interactive to use " Nguyễn Thái Ngọc Duy
2013-06-09  6:26 ` [PATCH 28/45] Convert unmerge_cache to take " Nguyễn Thái Ngọc Duy
2013-06-09  6:26 ` [PATCH 29/45] checkout: convert read_tree_some " Nguyễn Thái Ngọc Duy
2013-06-09  6:26 ` [PATCH 30/45] Convert report_path_error " Nguyễn Thái Ngọc Duy
2013-06-09  6:26 ` Nguyễn Thái Ngọc Duy [this message]
2013-06-09  6:26 ` [PATCH 32/45] Convert {read,fill}_directory " Nguyễn Thái Ngọc Duy
2013-06-09  6:26 ` [PATCH 33/45] Convert add_files_to_cache " Nguyễn Thái Ngọc Duy
2013-06-09  6:26 ` [PATCH 34/45] Convert common_prefix() to use " Nguyễn Thái Ngọc Duy
2013-06-09  6:26 ` [PATCH 35/45] Remove diff_tree_{setup,release}_paths Nguyễn Thái Ngọc Duy
2013-06-09  6:26 ` [PATCH 36/45] Remove init_pathspec() in favor of parse_pathspec() Nguyễn Thái Ngọc Duy
2013-06-09  6:26 ` [PATCH 37/45] Remove match_pathspec() in favor of match_pathspec_depth() Nguyễn Thái Ngọc Duy
2013-06-09  6:26 ` [PATCH 38/45] tree-diff: remove the use of pathspec's raw[] in follow-rename codepath Nguyễn Thái Ngọc Duy
2013-06-09  6:26 ` [PATCH 39/45] parse_pathspec: make sure the prefix part is wildcard-free Nguyễn Thái Ngọc Duy
2013-06-09  6:26 ` [PATCH 40/45] parse_pathspec: preserve prefix length via PATHSPEC_PREFIX_ORIGIN Nguyễn Thái Ngọc Duy
2013-06-09  6:26 ` [PATCH 41/45] Kill limit_pathspec_to_literal() as it's only used by parse_pathspec() Nguyễn Thái Ngọc Duy
2013-06-09  6:26 ` [PATCH 42/45] pathspec: support :(literal) syntax for noglob pathspec Nguyễn Thái Ngọc Duy
2013-06-09  6:26 ` [PATCH 43/45] pathspec: make --literal-pathspecs disable pathspec magic Nguyễn Thái Ngọc Duy
2013-06-09  6:26 ` [PATCH 44/45] pathspec: support :(glob) syntax Nguyễn Thái Ngọc Duy
2013-06-09  6:26 ` [PATCH 45/45] Rename field "raw" to "_raw" in struct pathspec Nguyễn Thái Ngọc Duy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1370759178-1709-32-git-send-email-pclouds@gmail.com \
    --to=pclouds@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).