On Wed, 7 Sep 2016, Junio C Hamano wrote:
> Jeff King <p...@peff.net> writes:
> > What happens to those poor souls on systems without REG_STARTEND? Do
> > they get to keep segfaulting?
> > I think the solution is to push them into setting NO_REGEX. So looking
> > at this versus a "regexecn", it seems:
> > - this lets people keep using their native regexec if it supports
> > STARTEND
> > - this is a bit more clunky to use at the callsites (though we could
> > _create_ a portable regexecn wrapper that uses this technique on top
> > of the native regex library)
> > But I much prefer this approach to copying the data just to add a NUL.
> I first thought "push them to NO_REGEX" to mean "they live with
> crippled Git that does not do regexp" and went "Huh?", but it merely
> means "let's avoid platform regex library and use on from the
> compat/ hierarchy", which would solve the STARTEND portability issue
> for everybody.
> Which is very good.
> The idea to create a thin regexecn() wrapper also sounds like a good
> idea, too. The changes to the callsites in the demonstration patch
> does look a bit clunky to me, too.
The demonstration patch was only meant as a mere demonstration where this
leads us. I DRY'd it up quite a bit (which was my plan all along, but it
was faster to make the changes in place, to avoid a full-sale
recompilation due to a central header change; you might not care because
you use Linux with its native POSIX, while I have to use MSYS2, making
even my builds slower).
And I really do not think that it would be a good idea to use
compat/regex/ for everybody, even if they already have a working regex.h
on their system.