cat-file: introduce batch_mode enum to replace print_contents
A future patch introduces a new --batch-command flag. Including --batch and --batch-check, we will have a total of three batch modes. print_contents is the only boolean on the batch_options sturct used to distinguish between the different modes. This makes the code harder to read. To reduce potential confusion, replace print_contents with an enum to help readability and clarity. Helped-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: John Cai <johncai86@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
a2c75526d2
commit
ac4e58cab9
@ -17,10 +17,15 @@
|
|||||||
#include "object-store.h"
|
#include "object-store.h"
|
||||||
#include "promisor-remote.h"
|
#include "promisor-remote.h"
|
||||||
|
|
||||||
|
enum batch_mode {
|
||||||
|
BATCH_MODE_CONTENTS,
|
||||||
|
BATCH_MODE_INFO,
|
||||||
|
};
|
||||||
|
|
||||||
struct batch_options {
|
struct batch_options {
|
||||||
int enabled;
|
int enabled;
|
||||||
int follow_symlinks;
|
int follow_symlinks;
|
||||||
int print_contents;
|
enum batch_mode batch_mode;
|
||||||
int buffer_output;
|
int buffer_output;
|
||||||
int all_objects;
|
int all_objects;
|
||||||
int unordered;
|
int unordered;
|
||||||
@ -386,7 +391,7 @@ static void batch_object_write(const char *obj_name,
|
|||||||
strbuf_addch(scratch, '\n');
|
strbuf_addch(scratch, '\n');
|
||||||
batch_write(opt, scratch->buf, scratch->len);
|
batch_write(opt, scratch->buf, scratch->len);
|
||||||
|
|
||||||
if (opt->print_contents) {
|
if (opt->batch_mode == BATCH_MODE_CONTENTS) {
|
||||||
print_object_or_die(opt, data);
|
print_object_or_die(opt, data);
|
||||||
batch_write(opt, "\n", 1);
|
batch_write(opt, "\n", 1);
|
||||||
}
|
}
|
||||||
@ -536,7 +541,7 @@ static int batch_objects(struct batch_options *opt)
|
|||||||
* If we are printing out the object, then always fill in the type,
|
* If we are printing out the object, then always fill in the type,
|
||||||
* since we will want to decide whether or not to stream.
|
* since we will want to decide whether or not to stream.
|
||||||
*/
|
*/
|
||||||
if (opt->print_contents)
|
if (opt->batch_mode == BATCH_MODE_CONTENTS)
|
||||||
data.info.typep = &data.type;
|
data.info.typep = &data.type;
|
||||||
|
|
||||||
if (opt->all_objects) {
|
if (opt->all_objects) {
|
||||||
@ -635,7 +640,14 @@ static int batch_option_callback(const struct option *opt,
|
|||||||
}
|
}
|
||||||
|
|
||||||
bo->enabled = 1;
|
bo->enabled = 1;
|
||||||
bo->print_contents = !strcmp(opt->long_name, "batch");
|
|
||||||
|
if (!strcmp(opt->long_name, "batch"))
|
||||||
|
bo->batch_mode = BATCH_MODE_CONTENTS;
|
||||||
|
else if (!strcmp(opt->long_name, "batch-check"))
|
||||||
|
bo->batch_mode = BATCH_MODE_INFO;
|
||||||
|
else
|
||||||
|
BUG("%s given to batch-option-callback", opt->long_name);
|
||||||
|
|
||||||
bo->format = arg;
|
bo->format = arg;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user