From: Johannes Sixt Date: Mon, 09 Jun 2008 14:23:07 GMT Subject: Re: [PATCH] cat-file --batch / --batch-check: do not exit if hashes are missing Message-ID: <484D3CCB.1000508@viscovery.net> In-Reply-To: <1212967717-5165-1-git-send-email-LeWiemann@gmail.com> Lea Wiemann schrieb: > Previously, cat-file --batch / --batch-check would silently exit if it > was passed a non-existent SHA1 on stdin. Now it prints " > missing" as in all other cases (and as advertised in the > documentation). Makes sense! > diff --git a/builtin-cat-file.c b/builtin-cat-file.c > index f8b3160..112b9db 100644 > --- a/builtin-cat-file.c > +++ b/builtin-cat-file.c > @@ -168,8 +168,11 @@ static int batch_one_object(const char *obj_name, int print_contents) > else > type = sha1_object_info(sha1, &size); > > - if (type <= 0) > - return 1; > + if (type <= 0) { > + printf("%s missing\n", obj_name); > + fflush(stdout); > + return 0; > + } With this change an invalid name and a non-existing SHA1 are treated as "missing". But an empty name is still an error, which we don't see here because it's outside the hunk's context: It is the first thing that the function checks, and there it exits with return 1. Why is this case still special? -- Hannes