Skip to content

Commit

Permalink
cat-file: stop returning value from batch_one_object
Browse files Browse the repository at this point in the history
If batch_one_object returns an error code, we stop reading
input.  However, it will only do so if we feed it NULL,
which cannot happen; we give it the "buf" member of a
strbuf, which is always non-NULL.

We did originally stop on other errors (like a missing
object), but this was changed in 3c076db (cat-file --batch /
--batch-check: do not exit if hashes are missing,
2008-06-09). These days we keep going for any per-object
error (and print "missing" when necessary).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Jeff King authored and Junio C Hamano committed Jun 22, 2015
1 parent fc4937c commit 8233095
Showing 1 changed file with 6 additions and 12 deletions.
18 changes: 6 additions & 12 deletions builtin/cat-file.c
Original file line number Diff line number Diff line change
Expand Up @@ -251,17 +251,14 @@ static void print_object_or_die(struct batch_options *opt, struct expand_data *d
}
}

static int batch_one_object(const char *obj_name, struct batch_options *opt,
struct expand_data *data)
static void batch_one_object(const char *obj_name, struct batch_options *opt,
struct expand_data *data)
{
struct strbuf buf = STRBUF_INIT;
struct object_context ctx;
int flags = opt->follow_symlinks ? GET_SHA1_FOLLOW_SYMLINKS : 0;
enum follow_symlinks_result result;

if (!obj_name)
return 1;

result = get_sha1_with_context(obj_name, flags, data->sha1, &ctx);
if (result != FOUND) {
switch (result) {
Expand All @@ -286,21 +283,21 @@ static int batch_one_object(const char *obj_name, struct batch_options *opt,
break;
}
fflush(stdout);
return 0;
return;
}

if (ctx.mode == 0) {
printf("symlink %"PRIuMAX"\n%s\n",
(uintmax_t)ctx.symlink_path.len,
ctx.symlink_path.buf);
fflush(stdout);
return 0;
return;
}

if (sha1_object_info_extended(data->sha1, &data->info, LOOKUP_REPLACE_OBJECT) < 0) {
printf("%s missing\n", obj_name);
fflush(stdout);
return 0;
return;
}

strbuf_expand(&buf, opt->format, expand_format, data);
Expand All @@ -312,7 +309,6 @@ static int batch_one_object(const char *obj_name, struct batch_options *opt,
print_object_or_die(opt, data);
batch_write(opt, "\n", 1);
}
return 0;
}

static int batch_objects(struct batch_options *opt)
Expand Down Expand Up @@ -367,9 +363,7 @@ static int batch_objects(struct batch_options *opt)
data.rest = p;
}

retval = batch_one_object(buf.buf, opt, &data);
if (retval)
break;
batch_one_object(buf.buf, opt, &data);
}

strbuf_release(&buf);
Expand Down

0 comments on commit 8233095

Please sign in to comment.