We can currently die() or error(), but there's not yet any
way for callers to ask us just to quietly return an error.
Let's give them one.

Signed-off-by: Jeff King <p...@peff.net>
---
 config.c | 3 +++
 config.h | 1 +
 2 files changed, 4 insertions(+)

diff --git a/config.c b/config.c
index b5c23369d0..0797e284f4 100644
--- a/config.c
+++ b/config.c
@@ -818,6 +818,9 @@ static int git_parse_source(config_fn_t fn, void *data,
        case CONFIG_ERROR_ERROR:
                error_return = error("%s", error_msg);
                break;
+       case CONFIG_ERROR_SILENT:
+               error_return = -1;
+               break;
        case CONFIG_ERROR_UNSET:
                BUG("config error action unset");
        }
diff --git a/config.h b/config.h
index ce75bf1e5c..c02809ffdc 100644
--- a/config.h
+++ b/config.h
@@ -58,6 +58,7 @@ struct config_options {
                CONFIG_ERROR_UNSET = 0, /* use source-specific default */
                CONFIG_ERROR_DIE, /* die() on error */
                CONFIG_ERROR_ERROR, /* error() on error, return -1 */
+               CONFIG_ERROR_SILENT, /* return -1 */
        } error_action;
 };
 
-- 
2.18.0.604.g8c4f59c959

Reply via email to