Start preparing for 1.8.2.2
[gitweb.git] / attr.c
diff --git a/attr.c b/attr.c
index 4d620bc52a1e18ab3cf1f93c74551f38e484f472..689bc2a8961fac72a01e615764af53f49d01c3ec 100644 (file)
--- a/attr.c
+++ b/attr.c
@@ -255,9 +255,11 @@ static struct match_attr *parse_attr_line(const char *line, const char *src,
                                      &res->u.pat.patternlen,
                                      &res->u.pat.flags,
                                      &res->u.pat.nowildcardlen);
-               if (res->u.pat.flags & EXC_FLAG_NEGATIVE)
-                       die(_("Negative patterns are forbidden in git attributes\n"
-                             "Use '\\!' for literal leading exclamation."));
+               if (res->u.pat.flags & EXC_FLAG_NEGATIVE) {
+                       warning(_("Negative patterns are ignored in git attributes\n"
+                                 "Use '\\!' for literal leading exclamation."));
+                       return NULL;
+               }
        }
        res->is_macro = is_macro;
        res->num_attr = num_attr;
@@ -284,7 +286,7 @@ static struct match_attr *parse_attr_line(const char *line, const char *src,
  * (reading the file from top to bottom), .gitattribute of the root
  * directory (again, reading the file from top to bottom) down to the
  * current directory, and then scan the list backwards to find the first match.
- * This is exactly the same as what excluded() does in dir.c to deal with
+ * This is exactly the same as what is_excluded() does in dir.c to deal with
  * .gitignore
  */
 
@@ -691,7 +693,7 @@ static int fill_one(const char *what, struct match_attr *a, int rem)
 
                if (*n == ATTR__UNKNOWN) {
                        debug_set(what,
-                                 a->is_macro ? a->u.attr->name : a->u.pattern,
+                                 a->is_macro ? a->u.attr->name : a->u.pat.pattern,
                                  attr, v);
                        *n = v;
                        rem--;