Similar to the previous patch, this is about better error messages when .gitattributes happens to be a directory. FWIW .gitignore code is also checked. There open() is used instead and open("dir") does not fail on Linux. But the next read should fail with EISDIR, which is a pretty good clue already. No idea how open() on Windows behaves. --- attr.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/attr.c b/attr.c index 5493bff224..34b6a6b9a8 100644 --- a/attr.c +++ b/attr.c @@ -703,11 +703,17 @@ void git_attr_set_direction(enum git_attr_direction new_direction, static struct attr_stack *read_attr_from_file(const char *path, int macro_ok) { - FILE *fp = fopen(path, "r"); + FILE *fp; struct attr_stack *res; char buf[2048]; int lineno = 0; + if (is_not_file(path)) { + warning(_("'%s' is not a file"), path); + return NULL; + } + + fp = fopen(path, "r"); if (!fp) { if (errno != ENOENT && errno != ENOTDIR) warn_on_inaccessible(path); -- 2.11.0.157.gd943d85