svn commit: r223983 - user/gabor/tre-integration/contrib/tre/lib
Gabor Kovesdan
gabor at FreeBSD.org
Wed Jul 13 17:38:43 UTC 2011
Author: gabor
Date: Wed Jul 13 17:38:42 2011
New Revision: 223983
URL: http://svn.freebsd.org/changeset/base/223983
Log:
- Fix REG_STARTEND
Modified:
user/gabor/tre-integration/contrib/tre/lib/regexec.c
user/gabor/tre-integration/contrib/tre/lib/tre-compile.c
user/gabor/tre-integration/contrib/tre/lib/tre.h
Modified: user/gabor/tre-integration/contrib/tre/lib/regexec.c
==============================================================================
--- user/gabor/tre-integration/contrib/tre/lib/regexec.c Wed Jul 13 17:09:15 2011 (r223982)
+++ user/gabor/tre-integration/contrib/tre/lib/regexec.c Wed Jul 13 17:38:42 2011 (r223983)
@@ -155,10 +155,11 @@ tre_match(const tre_tnfa_t *tnfa, const
{
reg_errcode_t status;
int *tags = NULL, eo;
+ int ret;
/* Check if we can cheat with a fixed string */
if (shortcut != NULL)
- return tre_fastexec(shortcut, string, len, type, nmatch, pmatch);
+ return tre_fastexec(shortcut, string, len, type, nmatch, pmatch);
if (tnfa->num_tags > 0 && nmatch > 0)
{
@@ -230,9 +231,11 @@ tre_regnexec(const regex_t *preg, const
str = &str[offset];
int ret = tre_match(tnfa, str, slen, type, nmatch, pmatch, eflags,
preg->shortcut);
+ pmatch[0].rm_so += offset;
+ pmatch[0].rm_eo += offset;
if (!(eflags & REG_NOSUB))
{
- for (unsigned i = 0; i < nmatch; i++)
+ for (unsigned i = 1; i < nmatch; i++)
{
pmatch[i].rm_so += offset;
pmatch[i].rm_eo += offset;
@@ -270,6 +273,8 @@ tre_regwnexec(const regex_t *preg, const
str = &str[offset];
int ret = tre_match(tnfa, str, slen, STR_WIDE, nmatch, pmatch, eflags,
preg->shortcut);
+ pmatch[0].rm_so += offset;
+ pmatch[0].rm_eo += offset;
if (!(eflags & REG_NOSUB))
{
for (unsigned i = 0; i < nmatch; i++)
Modified: user/gabor/tre-integration/contrib/tre/lib/tre-compile.c
==============================================================================
--- user/gabor/tre-integration/contrib/tre/lib/tre-compile.c Wed Jul 13 17:09:15 2011 (r223982)
+++ user/gabor/tre-integration/contrib/tre/lib/tre-compile.c Wed Jul 13 17:38:42 2011 (r223983)
@@ -1876,8 +1876,8 @@ tre_compile(regex_t *preg, const tre_cha
if (!shortcut)
return REG_ESPACE;
ret = (cflags & REG_LITERAL)
- ? tre_fastcomp_literal(shortcut, regex, n, cflags)
- : tre_fastcomp(shortcut, regex, n, cflags);
+ ? tre_fastcomp_literal(shortcut, regex, n)
+ : tre_fastcomp(shortcut, regex, n);
if (!ret)
{
preg->shortcut = shortcut;
Modified: user/gabor/tre-integration/contrib/tre/lib/tre.h
==============================================================================
--- user/gabor/tre-integration/contrib/tre/lib/tre.h Wed Jul 13 17:09:15 2011 (r223982)
+++ user/gabor/tre-integration/contrib/tre/lib/tre.h Wed Jul 13 17:38:42 2011 (r223983)
@@ -93,11 +93,11 @@ typedef enum {
/* POSIX tre_regexec() flags. */
#define REG_NOTBOL 1
#define REG_NOTEOL (REG_NOTBOL << 1)
-#define REG_STARTEND (REG_NOTEOL << 1)
/* Extra tre_regexec() flags. */
#define REG_APPROX_MATCHER (REG_NOTEOL << 1)
#define REG_BACKTRACKING_MATCHER (REG_APPROX_MATCHER << 1)
+#define REG_STARTEND (REG_BACKTRACKING_MATCHER << 1)
/* REG_NOSPEC and REG_LITERAL mean the same thing. */
#if defined(REG_LITERAL) && !defined(REG_NOSPEC)
More information about the svn-src-user
mailing list