This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE_NO_SUB thread-safety (was Re: A little more regex.h pedantry)


On 07/31/2010 12:52 AM, Eric Blake wrote:
>  The code in re_compile_pattern says:
>
>     /* And GNU code determines whether or not to get register information
>        by passing null for the REGS argument to re_match, etc., not by
>        setting no_sub, unless RE_NO_SUB is set.  */
>     bufp->no_sub = !!(re_syntax_options & RE_NO_SUB);
>
>  It doesn't seem to be conditional on grouping.

Aha. The answer, then, is that you used to be able to supply no_sub prior to compilation; but nowadays you have the flag RE_NO_SUB to do the job instead. So I agree with documenting that no_sub is private (by not listing it as public).

This is unfortunate because it is not thread safe. I never noticed this problem with the GNU API, but it is quite bad.


Glibc people, would you agree with adding a re_compile_pattern_with_syntax function (which would likely be a good idea anyway)?

Paolo


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]