diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-05-10 21:23:41 +0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-05-10 21:23:41 +0400 |
commit | 6d9429271013898df103f7e77ed0736cdfab01b8 (patch) | |
tree | f05e5e3d198fda2079c0c4a5ebb0d8f6d1877b43 | |
parent | d0546e2d488b1ba185c430b638619ab1d91af509 (diff) |
Revert "magic pathspec: add ":(icase)path" to match case insensitively"
This reverts commit d0546e2d488b1ba185c430b638619ab1d91af509, which
was only meant to be a Proof-of-concept used during the discussion.
The real implementation of the feature needs to wait until we migrate
all the code to use "struct pathspec", not "char **", to represent
richer semantics given to pathspec.
-rw-r--r-- | Documentation/glossary-content.txt | 7 | ||||
-rw-r--r-- | setup.c | 31 |
2 files changed, 6 insertions, 32 deletions
diff --git a/Documentation/glossary-content.txt b/Documentation/glossary-content.txt index 0ca029b738..e51d7e60eb 100644 --- a/Documentation/glossary-content.txt +++ b/Documentation/glossary-content.txt @@ -319,13 +319,10 @@ top `/`;; The magic word `top` (mnemonic: `/`) makes the pattern match from the root of the working tree, even when you are running the command from inside a subdirectory. -icase;; - The magic word `icase` (there is no mnemonic for it) makes the - pattern match case insensitively. E.g. `:(icase)makefile` matches - both `Makefile` and `makefile`. -- + -It is envisioned that we will support more types of magic in later +Currently only the slash `/` is recognized as the "magic signature", +but it is envisioned that we will support more types of magic in later versions of git. [[def_parent]]parent:: @@ -136,12 +136,12 @@ void verify_non_filename(const char *prefix, const char *arg) * Possible future magic semantics include stuff like: * * { PATHSPEC_NOGLOB, '!', "noglob" }, + * { PATHSPEC_ICASE, '\0', "icase" }, * { PATHSPEC_RECURSIVE, '*', "recursive" }, * { PATHSPEC_REGEXP, '\0', "regexp" }, * */ #define PATHSPEC_FROMTOP (1<<0) -#define PATHSPEC_ICASE (1<<1) struct pathspec_magic { unsigned bit; @@ -149,7 +149,6 @@ struct pathspec_magic { const char *name; } pathspec_magic[] = { { PATHSPEC_FROMTOP, '/', "top" }, - { PATHSPEC_ICASE, '\0', "icase" }, }; /* @@ -169,8 +168,7 @@ const char *prefix_pathspec(const char *prefix, int prefixlen, const char *elt) { unsigned magic = 0; const char *copyfrom = elt; - const char *retval; - int i, free_source = 0; + int i; if (elt[0] != ':') { ; /* nothing to do */ @@ -224,31 +222,10 @@ const char *prefix_pathspec(const char *prefix, int prefixlen, const char *elt) copyfrom++; } - if (magic & PATHSPEC_ICASE) { - struct strbuf sb = STRBUF_INIT; - for (i = 0; copyfrom[i]; i++) { - int ch = copyfrom[i]; - if (('a' <= ch && ch <= 'z') || - ('A' <= ch && ch <= 'Z')) { - strbuf_addf(&sb, "[%c%c]", - tolower(ch), toupper(ch)); - } else { - strbuf_addch(&sb, ch); - } - } - if (sb.len) { - free_source = 1; - copyfrom = strbuf_detach(&sb, NULL); - } - } - if (magic & PATHSPEC_FROMTOP) - retval = xstrdup(copyfrom); + return xstrdup(copyfrom); else - retval = prefix_path(prefix, prefixlen, copyfrom); - if (free_source) - free((char *)copyfrom); - return retval; + return prefix_path(prefix, prefixlen, copyfrom); } const char **get_pathspec(const char *prefix, const char **pathspec) |