diff options
author | Junio C Hamano <gitster@pobox.com> | 2014-03-25 11:07:36 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-03-25 11:07:36 -0700 |
commit | d4c6e9fb6f0db328a40905a3555f8f41d37aaec5 (patch) | |
tree | a2a2df7ccf5d3bcb7f8c170756b2541a1307a52c /builtin | |
parent | Merge branch 'mh/remove-subtree-long-pathname-fix' (diff) | |
parent | rev-list: disable object/refname ambiguity check with --stdin (diff) | |
download | tgif-d4c6e9fb6f0db328a40905a3555f8f41d37aaec5.tar.xz |
Merge branch 'jk/warn-on-object-refname-ambiguity'
* jk/warn-on-object-refname-ambiguity:
rev-list: disable object/refname ambiguity check with --stdin
cat-file: restore warn_on_object_refname_ambiguity flag
cat-file: fix a minor memory leak in batch_objects
cat-file: refactor error handling of batch_objects
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/cat-file.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/builtin/cat-file.c b/builtin/cat-file.c index d5a93e0e91..707330499f 100644 --- a/builtin/cat-file.c +++ b/builtin/cat-file.c @@ -269,6 +269,8 @@ static int batch_objects(struct batch_options *opt) { struct strbuf buf = STRBUF_INIT; struct expand_data data; + int save_warning; + int retval = 0; if (!opt->format) opt->format = "%(objectname) %(objecttype) %(objectsize)"; @@ -297,11 +299,10 @@ static int batch_objects(struct batch_options *opt) * warn) ends up dwarfing the actual cost of the object lookups * themselves. We can work around it by just turning off the warning. */ + save_warning = warn_on_object_refname_ambiguity; warn_on_object_refname_ambiguity = 0; while (strbuf_getline(&buf, stdin, '\n') != EOF) { - int error; - if (data.split_on_whitespace) { /* * Split at first whitespace, tying off the beginning @@ -316,12 +317,14 @@ static int batch_objects(struct batch_options *opt) data.rest = p; } - error = batch_one_object(buf.buf, opt, &data); - if (error) - return error; + retval = batch_one_object(buf.buf, opt, &data); + if (retval) + break; } - return 0; + strbuf_release(&buf); + warn_on_object_refname_ambiguity = save_warning; + return retval; } static const char * const cat_file_usage[] = { |