- /* XXX: We do some ugly mode heuristics here.
- * It seems not worth it to read each file just to get this
- * and the file size. -- pasky@ucw.cz
- * ... that is, when we are not recursive -- junkio@cox.net
- */
- eltbuf = (recursive ? read_sha1_file(sha1, elttype, &eltsize) :
- NULL);
- if (! eltbuf) {
- if (recursive)
- error("cannot read %s", sha1_to_hex(sha1));
- type = S_ISDIR(mode) ? "tree" : "blob";
- }
- else
- type = elttype;
-
- printf("%03o\t%s\t%s\t", mode, type, sha1_to_hex(sha1));
+ printf("%06o\t%s\t%s\t", mode,
+ S_ISDIR(mode) ? "tree" : "blob",
+ sha1_to_hex(sha1));