Hi Peff,
On Fri, 30 Mar 2018, Jeff King wrote:
> On Fri, Mar 30, 2018 at 04:01:56PM +0200, Johannes Schindelin wrote:
>
> > You know what is *really* funny?
> >
> > -- snip --
> > static int git_config_from_stdin(config_fn_t fn, void *data)
> > {
> > return do_config_from_file(fn, CONFIG_ORIGIN_STDIN, "", NULL,
> > stdin, data, 0);
> > }
> >
> > int git_config_from_file(config_fn_t fn, const char *filename, void *data)
> > {
> > int ret = -1;
> > FILE *f;
> >
> > f = fopen_or_warn(filename, "r");
> > if (f) {
> > flockfile(f);
> > ret = do_config_from_file(fn, CONFIG_ORIGIN_FILE, filename,
> > filename, f, data, 0);
> > funlockfile(f);
> > fclose(f);
> > }
> > return ret;
> > }
> > -- snap --
> >
> > So the _stdin variant *goes out of its way not to flockfile()*...
>
> *facepalm* That's probably my fault, since git_config_from_stdin()
> existed already when I did the flockfile stuff.
>
> Probably the flockfile should go into do_config_from_file(), where we
> specify to use the unlocked variants.
Ah, that makes sense now! I am glad I could also help ;-)
> > But I guess all this will become moot when I start handing down the config
> > options. It does mean that I have to change the signatures in header
> > files, oh well ;-)
> >
> > But then I can drop this here patch and we can stop musing about
> > flockfile() ;-)
>
> Yeah, I'll wait to see how your refactor turns out.
I don't think I'll touch too much in that part of the code. My changes
should not cause merge conflicts with a patch moving the
flockfile()/funlockfile() calls to do_config_from_file().
Ciao,
Dscho