libc: regex: partial revert of r368358

Part of the libregex functionality leaked into the tests it shares with
the standard regex(3). Introduce a P flag to set the REG_POSIX cflag to
indicate that libc regex should effectively do nothing while libregex should
specifically run it in non-extended mode.

This unbreaks the libc/regex test run.

Reported by:	Jenkins
This commit is contained in:
Kyle Evans 2020-12-05 14:38:46 +00:00
parent 68225a196f
commit 4f1efa309c
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=368371
3 changed files with 6 additions and 2 deletions

View file

@ -28,6 +28,7 @@ The full list of flags:
$ REG_NOTEOL
# REG_STARTEND (see below)
p REG_PEND
P REG_POSIX
For REG_STARTEND, the start/end offsets are those of the substring
enclosed in ().

View file

@ -5,7 +5,7 @@ a\*c & a*c a*c
a\\b & a\b a\b
a\\\*b & a\*b a\*b
# Begin FreeBSD
a\bc & abc
a\bc &CP EESCAPE
# End FreeBSD
a\ &C EESCAPE
a\\bc & a\bc a\bc

View file

@ -338,7 +338,7 @@ options(int type, char *s)
{
char *p;
int o = (type == 'c') ? copts : eopts;
const char *legal = (type == 'c') ? "bisnmp" : "^$#tl";
const char *legal = (type == 'c') ? "bisnmpP" : "^$#tl";
for (p = s; *p != '\0'; p++)
if (strchr(legal, *p) != NULL)
@ -362,6 +362,9 @@ options(int type, char *s)
case 'p':
o |= REG_PEND;
break;
case 'P':
o |= REG_POSIX;
break;
case '^':
o |= REG_NOTBOL;
break;