X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=cat-file.c;h=7413feed78f20feb635ad55f098c59a2afc2a54c;hb=d9635e9c539465792b1920437b52fa8792a71650;hp=761111eb0f1f3266fe6bd0e9e561ee3d3d6c21d4;hpb=65b5e41e24dd76e9cc272399f458857d5b13d63e;p=git.git diff --git a/cat-file.c b/cat-file.c index 761111eb..7413feed 100644 --- a/cat-file.c +++ b/cat-file.c @@ -5,6 +5,8 @@ */ #include "cache.h" #include "exec_cmd.h" +#include "tag.h" +#include "tree.h" static void flush_buffer(const char *buf, unsigned long size) { @@ -101,8 +103,10 @@ int main(int argc, char **argv) setup_git_directory(); git_config(git_default_config); - if (argc != 3 || get_sha1(argv[2], sha1)) + if (argc != 3) usage("git-cat-file [-t|-s|-e|-p|] "); + if (get_sha1(argv[2], sha1)) + die("Not a valid object name %s", argv[2]); opt = 0; if ( argv[1][0] == '-' ) { @@ -131,18 +135,17 @@ int main(int argc, char **argv) return !has_sha1_file(sha1); case 'p': - if (get_sha1(argv[2], sha1) || - sha1_object_info(sha1, type, NULL)) + if (sha1_object_info(sha1, type, NULL)) die("Not a valid object name %s", argv[2]); /* custom pretty-print here */ - if (!strcmp(type, "tree")) + if (!strcmp(type, tree_type)) return execl_git_cmd("ls-tree", argv[2], NULL); buf = read_sha1_file(sha1, type, &size); if (!buf) die("Cannot read object %s", argv[2]); - if (!strcmp(type, "tag")) + if (!strcmp(type, tag_type)) return pprint_tag(sha1, buf, size); /* otherwise just spit out the data */