X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=unpack-file.c;h=d24acc2a67c4b7ba112bd192680b137f30a06003;hb=8860fd42fcf5a7853f7d7c2198793183320293ff;hp=07303f8bb3ef2b93f3e7c9bbe116aef9660584d5;hpb=5e80092f7e6db09a40a62e837ca3f74f0bc5ad73;p=git.git diff --git a/unpack-file.c b/unpack-file.c index 07303f8bb..d24acc2a6 100644 --- a/unpack-file.c +++ b/unpack-file.c @@ -1,4 +1,5 @@ #include "cache.h" +#include "blob.h" static char *create_temp_file(unsigned char *sha1) { @@ -9,14 +10,14 @@ static char *create_temp_file(unsigned char *sha1) int fd; buf = read_sha1_file(sha1, type, &size); - if (!buf || strcmp(type, "blob")) + if (!buf || strcmp(type, blob_type)) die("unable to read blob object %s", sha1_to_hex(sha1)); strcpy(path, ".merge_file_XXXXXX"); fd = mkstemp(path); if (fd < 0) die("unable to create temp-file"); - if (write(fd, buf, size) != size) + if (write_in_full(fd, buf, size) != size) die("unable to write temp-file"); close(fd); return path; @@ -26,10 +27,13 @@ int main(int argc, char **argv) { unsigned char sha1[20]; - if (argc != 2 || get_sha1(argv[1], sha1)) + if (argc != 2) usage("git-unpack-file "); + if (get_sha1(argv[1], sha1)) + die("Not a valid object name %s", argv[1]); setup_git_directory(); + git_config(git_default_config); puts(create_temp_file(sha1)); return 0;