summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Nguyễn Thái Ngọc Duy <pclouds@gmail.com>2013-07-14 15:35:29 +0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2013-07-15 10:56:06 -0700
commitd2ce1331953e9f4306e00f5edf3a6ce6e3330e9e (patch)
tree40d58e49adae53d99dbd55e4be6785b368e5a73b
parentadd parse_pathspec() that converts cmdline args to struct pathspec (diff)
downloadtgif-d2ce1331953e9f4306e00f5edf3a6ce6e3330e9e.tar.xz
parse_pathspec: save original pathspec for reporting
We usually use pathspec_item's match field for pathspec error reporting. However "match" (or "raw") does not show the magic part, which will play more important role later on. Preserve exact user input for reporting. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--dir.c1
-rw-r--r--pathspec.c2
-rw-r--r--pathspec.h1
3 files changed, 4 insertions, 0 deletions
diff --git a/dir.c b/dir.c
index 5f86e467c4..308028e5b1 100644
--- a/dir.c
+++ b/dir.c
@@ -1599,6 +1599,7 @@ int init_pathspec(struct pathspec *pathspec, const char **paths)
const char *path = paths[i];
item->match = path;
+ item->original = path;
item->len = strlen(path);
item->flags = 0;
if (limit_pathspec_to_literal()) {
diff --git a/pathspec.c b/pathspec.c
index ce942dbccf..f94beb6075 100644
--- a/pathspec.c
+++ b/pathspec.c
@@ -203,6 +203,7 @@ static unsigned prefix_pathspec(struct pathspec_item *item,
else
match = prefix_path(prefix, prefixlen, copyfrom);
*raw = item->match = match;
+ item->original = elt;
item->len = strlen(item->match);
if (limit_pathspec_to_literal())
item->nowildcard_len = item->len;
@@ -277,6 +278,7 @@ void parse_pathspec(struct pathspec *pathspec,
pathspec->items = item = xmalloc(sizeof(*item));
memset(item, 0, sizeof(*item));
item->match = prefix;
+ item->original = prefix;
item->nowildcard_len = item->len = strlen(prefix);
raw[0] = prefix;
raw[1] = NULL;
diff --git a/pathspec.h b/pathspec.h
index 937ec91a0d..cc5841b77f 100644
--- a/pathspec.h
+++ b/pathspec.h
@@ -16,6 +16,7 @@ struct pathspec {
int max_depth;
struct pathspec_item {
const char *match;
+ const char *original;
unsigned magic;
int len;
int nowildcard_len;