git-diff: complain about >=8 consecutive spaces in initial indent
[gitweb.git] / builtin-blame.c
index 16c0ca82063b35651cacc56b20ebd73c3526acfb..8432b823e6ef6020a897838e7a561c3919c31f0b 100644 (file)
@@ -2002,7 +2002,6 @@ static struct commit *fake_working_tree_commit(const char *path, const char *con
        unsigned char head_sha1[20];
        struct strbuf buf;
        const char *ident;
-       int fd;
        time_t now;
        int size, len;
        struct cache_entry *ce;
@@ -2041,11 +2040,8 @@ static struct commit *fake_working_tree_commit(const char *path, const char *con
                mode = canon_mode(st.st_mode);
                switch (st.st_mode & S_IFMT) {
                case S_IFREG:
-                       fd = open(read_from, O_RDONLY);
-                       if (fd < 0)
-                               die("cannot open %s", read_from);
-                       if (strbuf_read(&buf, fd, 0) != xsize_t(st.st_size))
-                               die("cannot read %s", read_from);
+                       if (strbuf_read_file(&buf, read_from, st.st_size) != st.st_size)
+                               die("cannot open or read %s", read_from);
                        break;
                case S_IFLNK:
                        if (readlink(read_from, buf.buf, buf.alloc) != fin_size)
@@ -2063,6 +2059,7 @@ static struct commit *fake_working_tree_commit(const char *path, const char *con
                if (strbuf_read(&buf, 0, 0) < 0)
                        die("read error %s from stdin", strerror(errno));
        }
+       convert_to_git(path, buf.buf, buf.len, &buf);
        origin->file.ptr = buf.buf;
        origin->file.size = buf.len;
        pretend_sha1_file(buf.buf, buf.len, OBJ_BLOB, origin->blob_sha1);