X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=config.c;h=34584f62b40ef256d1d0f75e2ee16ed30b1c11fa;hb=706fe6ae03e2c1452d59892944701c56237b903f;hp=5cc853508ac3ccd29a7142a032eae9df196d79ea;hpb=3a2f2bb354d920e3f1b7f4334d3656c77e9fb423;p=git.git diff --git a/config.c b/config.c index 5cc85350..34584f62 100644 --- a/config.c +++ b/config.c @@ -11,6 +11,7 @@ #define MAXNAME (256) static FILE *config_file; +static const char *config_file_name; static int config_linenr; static int get_next_char(void) { @@ -186,7 +187,7 @@ static int git_parse_file(config_fn_t fn) if (get_value(fn, var, baselen+1) < 0) break; } - die("bad config file line %d", config_linenr); + die("bad config file line %d in %s", config_linenr, config_file_name); } int git_config_int(const char *name, const char *value) @@ -197,7 +198,7 @@ int git_config_int(const char *name, const char *value) if (!*end) return val; } - die("bad config value for '%s'", name); + die("bad config value for '%s' in %s", name, config_file_name); } int git_config_bool(const char *name, const char *value) @@ -236,25 +237,37 @@ int git_default_config(const char *var, const char *value) return 0; } + if (!strcmp(var, "i18n.commitencoding")) { + strncpy(git_commit_encoding, value, sizeof(git_commit_encoding)); + return 0; + } + /* Add other config variables here.. */ return 0; } -int git_config(config_fn_t fn) +int git_config_from_file(config_fn_t fn, const char *filename) { int ret; - FILE *f = fopen(git_path("config"), "r"); + FILE *f = fopen(filename, "r"); ret = -1; if (f) { config_file = f; + config_file_name = filename; config_linenr = 1; ret = git_parse_file(fn); fclose(f); + config_file_name = NULL; } return ret; } +int git_config(config_fn_t fn) +{ + return git_config_from_file(fn, git_path("config")); +} + /* * Find all the stuff for git_config_set() below. */