fsck: give the error function a chance to see the fsck_options

We will need this in the next commit, where fsck will be taught to optionally name the objects when reporting issues about them. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Johannes Schindelin committed Jul 17, 2016 at 12:59 UTC 1cd772cc4124e43b14231dcaeae8a5dddf4ffdb9
3 files changed +9 -5
builtin/fsck.c
+2 -1
@@ -82,7 +82,8 @@ static int objerror(struct object *obj, const char *err)
82 return -1;
83 }
84
85 -static int fsck_error_func(struct object *obj, int type, const char *message)
85 +static int fsck_error_func(struct fsck_options *o,
86 + struct object *obj, int type, const char *message)
87 {
88 objreport(obj, (type == FSCK_WARN) ? "warning" : "error", message);
89 return (type == FSCK_WARN) ? 0 : 1;
fsck.c
+3 -2
@@ -291,7 +291,7 @@ static int report(struct fsck_options *options, struct object *object,
291
292 va_start(ap, fmt);
293 strbuf_vaddf(&sb, fmt, ap);
294 - result = options->error_func(object, msg_type, sb.buf);
294 + result = options->error_func(options, object, msg_type, sb.buf);
295 strbuf_release(&sb);
296 va_end(ap);
297
@@ -897,7 +897,8 @@ int fsck_object(struct object *obj, void *data, unsigned long size,
897 obj->type);
898 }
899
900 -int fsck_error_function(struct object *obj, int msg_type, const char *message)
900 +int fsck_error_function(struct fsck_options *o,
901 + struct object *obj, int msg_type, const char *message)
902 {
903 if (msg_type == FSCK_WARN) {
904 warning("object %s: %s", oid_to_hex(&obj->oid), message);
fsck.h
+4 -2
@@ -23,9 +23,11 @@ int is_valid_msg_type(const char *msg_id, const char *msg_type);
23 typedef int (*fsck_walk_func)(struct object *obj, int type, void *data, struct fsck_options *options);
24
25 /* callback for fsck_object, type is FSCK_ERROR or FSCK_WARN */
26 -typedef int (*fsck_error)(struct object *obj, int type, const char *message);
26 +typedef int (*fsck_error)(struct fsck_options *o,
27 + struct object *obj, int type, const char *message);
28
28 -int fsck_error_function(struct object *obj, int type, const char *message);
29 +int fsck_error_function(struct fsck_options *o,
30 + struct object *obj, int type, const char *message);
31
32 struct fsck_options {
33 fsck_walk_func walk;