Re: [PATCH 1/4] config: factor out config file stack management
- From
Jeff King <peff@peff.net>
- Date
- Feb 26, 2013, 19:54 UTC
- Message-ID
- <20130226195449.GA13830@sigill.intra.peff.net>
- In-Reply-To
- <20130226193850.GB22756@sandbox-ub>
On Tue, Feb 26, 2013 at 08:38:50PM +0100, Heiko Voigt wrote:
Show 11 quoted lines
> Because a config callback may start parsing a new file, the > global context regarding the current config file is stored > as a stack. Currently we only need to manage that stack from > git_config_from_file. Let's factor it out to allow new > sources of config data. > > Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net> > --- > > Peff, I hope you do not mind that I totally copied your commit message > here.
I don't mind at all.
Show 5 quoted lines
> The patch takes a different approach though. If you like we can add a > > Commit-Message-by: Jeff King <peff@peff.net> > > here :-)
I think my name is plastered all over "git log" enough as it is.
Show 21 quoted lines
> +static int do_config_from(struct config_file *top, config_fn_t fn, void *data)
> +{
> + int ret;
> +
> + /* push config-file parsing state stack */
> + top->prev = cf;
> + top->linenr = 1;
> + top->eof = 0;
> + strbuf_init(&top->value, 1024);
> + strbuf_init(&top->var, 1024);
> + cf = top;
> +
> + ret = git_parse_file(fn, data);
> +
> + /* pop config-file parsing state stack */
> + strbuf_release(&top->value);
> + strbuf_release(&top->var);
> + cf = top->prev;
> +
> + return ret;
> +}This function name is a bit weird. I would have thought the "from" here was going to be a file, or a string, or whatever. But the filename setup happens outside this function (and yet this function depends on it being set up, as it calls git_parse_file). But maybe it will get less confusing with the other patches on top...
-Peff