Hi Junio, On Wed, 7 Sep 2016, Junio C Hamano wrote: > Jeff King <peff@xxxxxxxx> 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. Ciao, Dscho