Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
Allow '-' in config variable names
author
Linus Torvalds
<torvalds@osdl.org>
Mon, 30 Oct 2006 16:25:36 +0000
(08:25 -0800)
committer
Junio C Hamano
<junkio@cox.net>
Tue, 31 Oct 2006 03:39:12 +0000
(19:39 -0800)
I need this in order to allow aliases of the same form as "ls-tree",
"rev-parse" etc, so that I can use
[alias]
my-cat=--paginate cat-file -p
to add a "git my-cat" command.
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
config.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
83877f8
)
diff --git
a/config.c
b/config.c
index e8f0caf7cf674ff44b23e0182420988e9672cc69..3cae3901aa9b50e8d04a8ce2633a1a1ef8ed0f6c 100644
(file)
--- a/
config.c
+++ b/
config.c
@@
-103,6
+103,11
@@
static char *parse_value(void)
}
}
}
}
+static inline int iskeychar(int c)
+{
+ return isalnum(c) || c == '-';
+}
+
static int get_value(config_fn_t fn, char *name, unsigned int len)
{
int c;
static int get_value(config_fn_t fn, char *name, unsigned int len)
{
int c;
@@
-113,7
+118,7
@@
static int get_value(config_fn_t fn, char *name, unsigned int len)
c = get_next_char();
if (c == EOF)
break;
c = get_next_char();
if (c == EOF)
break;
- if (!is
alnum
(c))
+ if (!is
keychar
(c))
break;
name[len++] = tolower(c);
if (len >= MAXNAME)
break;
name[len++] = tolower(c);
if (len >= MAXNAME)
@@
-181,7
+186,7
@@
static int get_base_var(char *name)
return baselen;
if (isspace(c))
return get_extended_base_var(name, baselen, c);
return baselen;
if (isspace(c))
return get_extended_base_var(name, baselen, c);
- if (!is
alnum
(c) && c != '.')
+ if (!is
keychar
(c) && c != '.')
return -1;
if (baselen > MAXNAME / 2)
return -1;
return -1;
if (baselen > MAXNAME / 2)
return -1;
@@
-573,7
+578,7
@@
int git_config_set_multivar(const char* key, const char* value,
dot = 1;
/* Leave the extended basename untouched.. */
if (!dot || i > store.baselen) {
dot = 1;
/* Leave the extended basename untouched.. */
if (!dot || i > store.baselen) {
- if (!is
alnum
(c) || (i == store.baselen+1 && !isalpha(c))) {
+ if (!is
keychar
(c) || (i == store.baselen+1 && !isalpha(c))) {
fprintf(stderr, "invalid key: %s\n", key);
free(store.key);
ret = 1;
fprintf(stderr, "invalid key: %s\n", key);
free(store.key);
ret = 1;