Merge branch 'ik/userdiff-html-h-element-fix'
authorJunio C Hamano <gitster@pobox.com>
Thu, 28 Sep 2017 05:47:54 +0000 (14:47 +0900)
committerJunio C Hamano <gitster@pobox.com>
Thu, 28 Sep 2017 05:47:54 +0000 (14:47 +0900)
The built-in pattern to detect the "function header" for HTML did
not match <H1>..<H6> elements without any attributes, which has
been fixed.

* ik/userdiff-html-h-element-fix:
userdiff: fix HTML hunk header regexp

1  2 
userdiff.c
diff --combined userdiff.c
index 6321103ce25dea936eea84fdb2a0d6d636e1cddb,4a0e5202e489bc5254fa4c621ca470d362005748..dbfb4e13cddceaa44feee51016c9b837f7f4fce1
@@@ -1,5 -1,4 +1,5 @@@
  #include "cache.h"
 +#include "config.h"
  #include "userdiff.h"
  #include "attr.h"
  
@@@ -38,7 -37,7 +38,7 @@@ IPATTERN("fortran"
         "|//|\\*\\*|::|[/<>=]="),
  IPATTERN("fountain", "^((\\.[^.]|(int|ext|est|int\\.?/ext|i/e)[. ]).*)$",
         "[^ \t-]+"),
- PATTERNS("html", "^[ \t]*(<[Hh][1-6][ \t].*>.*)$",
+ PATTERNS("html", "^[ \t]*(<[Hh][1-6]([ \t].*)?>.*)$",
         "[^<>= \t]+"),
  PATTERNS("java",
         "!^[ \t]*(catch|do|for|if|instanceof|new|return|switch|throw|while)\n"
@@@ -263,22 -262,25 +263,22 @@@ struct userdiff_driver *userdiff_find_b
  
  struct userdiff_driver *userdiff_find_by_path(const char *path)
  {
 -      static struct git_attr *attr;
 -      struct git_attr_check check;
 -
 -      if (!attr)
 -              attr = git_attr("diff");
 -      check.attr = attr;
 +      static struct attr_check *check;
  
 +      if (!check)
 +              check = attr_check_initl("diff", NULL);
        if (!path)
                return NULL;
 -      if (git_check_attr(path, 1, &check))
 +      if (git_check_attr(path, check))
                return NULL;
  
 -      if (ATTR_TRUE(check.value))
 +      if (ATTR_TRUE(check->items[0].value))
                return &driver_true;
 -      if (ATTR_FALSE(check.value))
 +      if (ATTR_FALSE(check->items[0].value))
                return &driver_false;
 -      if (ATTR_UNSET(check.value))
 +      if (ATTR_UNSET(check->items[0].value))
                return NULL;
 -      return userdiff_find_by_name(check.value);
 +      return userdiff_find_by_name(check->items[0].value);
  }
  
  struct userdiff_driver *userdiff_get_textconv(struct userdiff_driver *driver)
                strbuf_addf(&name, "textconv/%s", driver->name);
                notes_cache_init(c, name.buf, driver->textconv);
                driver->textconv_cache = c;
 +              strbuf_release(&name);
        }
  
        return driver;