diff --git a/config.c b/config.c
index 4183f80262ea9f24e286295a2295f93459548b78..fc27913c3bb3646a6fd6592356be6a979e9cc7d2 100644 (file)
--- a/config.c
+++ b/config.c
for (;;) {
int c = get_next_char();
if (c == '\n') {
for (;;) {
int c = get_next_char();
if (c == '\n') {
- if (quote)
+ if (quote) {
+ cf->linenr--;
return NULL;
return NULL;
+ }
return cf->value.buf;
}
if (comment)
return cf->value.buf;
}
if (comment)
{
do {
if (c == '\n')
{
do {
if (c == '\n')
- return -1;
+ goto error_incomplete_line;
c = get_next_char();
} while (isspace(c));
c = get_next_char();
} while (isspace(c));
for (;;) {
int c = get_next_char();
if (c == '\n')
for (;;) {
int c = get_next_char();
if (c == '\n')
- return -1;
+ goto error_incomplete_line;
if (c == '"')
break;
if (c == '\\') {
c = get_next_char();
if (c == '\n')
if (c == '"')
break;
if (c == '\\') {
c = get_next_char();
if (c == '\n')
- return -1;
+ goto error_incomplete_line;
}
name[baselen++] = c;
if (baselen > MAXNAME / 2)
}
name[baselen++] = c;
if (baselen > MAXNAME / 2)
if (get_next_char() != ']')
return -1;
return baselen;
if (get_next_char() != ']')
return -1;
return baselen;
+error_incomplete_line:
+ cf->linenr--;
+ return -1;
}
static int get_base_var(char *name)
}
static int get_base_var(char *name)
return 0;
}
return 0;
}
+ if (!strcmp(var, "core.attributesfile"))
+ return git_config_pathname(&git_attributes_file, var, value);
+
if (!strcmp(var, "core.bare")) {
is_bare_repository_cfg = git_config_bool(var, value);
return 0;
if (!strcmp(var, "core.bare")) {
is_bare_repository_cfg = git_config_bool(var, value);
return 0;