]> git.mikk.net Git - liburl/commitdiff
Fix usage of pcre_dfa_exec and pcre_copy_substring.
authorchris mikkelson <chris@mikk.net>
Sat, 13 Mar 2010 04:41:18 +0000 (22:41 -0600)
committerchris mikkelson <chris@mikk.net>
Sat, 13 Mar 2010 04:41:18 +0000 (22:41 -0600)
re_stream.c
re_stream.h

index 4c54f1d32a860ad7ae0f62620b2e52b2ca900bd1..4a57355c0abc8500d36dcc3d6050f789e4d5b614 100644 (file)
@@ -71,8 +71,8 @@ re_stream_exec(struct stream_re *sre, char *sub, int slen)
        }
 
        match = pcre_dfa_exec(sre->re, 0, sub, slen, 0, sre->flags | flags,
-                       sre->ovec, sizeof(sre->ovec),
-                       sre->wspace, sizeof(sre->wspace));
+                       sre->ovec, SRE_OVEC_COUNT,
+                       sre->wspace, SRE_WSPACE_COUNT);
 
        if (match < 0 && match != PCRE_ERROR_PARTIAL) {
                sre->result[0] = sre->rlen = 0;
@@ -105,8 +105,8 @@ re_stream_exec(struct stream_re *sre, char *sub, int slen)
                sre->result = reallocf(sre->result, sre->ralloc);
                if (!sre->result) return -1;
        }
-       pcre_copy_substring(sub, sre->ovec, sizeof(sre->ovec),
-                               0, sre->result + sre->rlen, 
+       pcre_copy_substring(sub, sre->ovec, match, 0,
+                               sre->result + sre->rlen, 
                                sre->ralloc - sre->rlen);
        sre->rlen = newlen;
 
index 2bd413b445101cc2f511812c23a2b8805b6be278..411f92270c50c83c23eb9b6ea5151eb5bc893d9b 100644 (file)
@@ -3,12 +3,15 @@
  * All Rights Reserved, for now.
  */
 
+#define SRE_OVEC_COUNT 30
+#define SRE_WSPACE_COUNT 50
+
 /* Stream-based regexp matching layer */
 struct stream_re {
         pcre *re;
         int rlen, ralloc, flags, state;
         char *result;
-        int ovec[30], wspace[50];
+        int ovec[SRE_OVEC_COUNT], wspace[SRE_WSPACE_COUNT];
 };
 
 struct stream_re *re_stream_start(struct stream_re *, pcre *, int);