svn commit: r222573 - user/gabor/tre-integration/contrib/tre/lib

Gabor Kovesdan gabor at FreeBSD.org
Wed Jun 1 17:17:03 UTC 2011


Author: gabor
Date: Wed Jun  1 17:17:02 2011
New Revision: 222573
URL: http://svn.freebsd.org/changeset/base/222573

Log:
  - Add support for BSD-specific REG_PEND
  
  Obtained from:	The NetBSD Project

Modified:
  user/gabor/tre-integration/contrib/tre/lib/regcomp.c

Modified: user/gabor/tre-integration/contrib/tre/lib/regcomp.c
==============================================================================
--- user/gabor/tre-integration/contrib/tre/lib/regcomp.c	Wed Jun  1 16:54:33 2011	(r222572)
+++ user/gabor/tre-integration/contrib/tre/lib/regcomp.c	Wed Jun  1 17:17:02 2011	(r222573)
@@ -102,7 +102,18 @@ tre_regncomp(regex_t *preg, const char *
 int
 tre_regcomp(regex_t *preg, const char *regex, int cflags)
 {
-  return tre_regncomp(preg, regex, regex ? strlen(regex) : 0, cflags);
+ size_t len;
+
+ if (cflags & REG_PEND)
+   {
+     if (preg->re_endp >= regex)
+       len = preg->re_endp - regex;
+     else
+       len = 0;
+     return tre_regncomp(preg, regex, len, cflags);
+   }
+  else
+    return tre_regncomp(preg, regex, regex ? strlen(regex) : 0, cflags);
 }
 
 
@@ -116,7 +127,18 @@ tre_regwncomp(regex_t *preg, const wchar
 int
 tre_regwcomp(regex_t *preg, const wchar_t *regex, int cflags)
 {
-  return tre_compile(preg, regex, regex ? wcslen(regex) : 0, cflags);
+ size_t len;
+
+ if (cflags & REG_PEND)
+   {
+     if (preg->re_endp >= regex)
+       len = preg->re_endp - regex;
+     else
+       len = 0;
+     return tre_compilepreg, regex, len, cflags);
+   }
+  else
+    return tre_compile(preg, regex, regex ? wcslen(regex) : 0, cflags);
 }
 #endif /* TRE_WCHAR */
 


More information about the svn-src-user mailing list