summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlya Zakharevich <ilya@math.berkeley.edu>1998-07-01 23:49:32 -0400
committerGurusamy Sarathy <gsar@cpan.org>1998-07-04 05:20:52 +0000
commit411d5715b3cb26f927bf38fdb0914c2fef9fb906 (patch)
tree469e9ebc21cd9c68cbf97e2d589cf0d6448a852a
parentf5b3b617eb55282fb17cc7521936a9150dc99cb3 (diff)
downloadperl-411d5715b3cb26f927bf38fdb0914c2fef9fb906.tar.gz
allow a flags args to fbm_instr() for future needs
Message-Id: <199807020749.DAA12379@monk.mps.ohio-state.edu> Subject: [PATCH 5.004_68] mORE FBM_ CHANGES FOR FUTURE p4raw-id: //depot/perl@1297
-rw-r--r--pod/perlguts.pod4
-rw-r--r--pp.c4
-rw-r--r--pp_hot.c4
-rw-r--r--proto.h2
-rw-r--r--regexec.c4
-rw-r--r--util.c2
6 files changed, 10 insertions, 10 deletions
diff --git a/pod/perlguts.pod b/pod/perlguts.pod
index fb52ecfcb7..eb298bfb31 100644
--- a/pod/perlguts.pod
+++ b/pod/perlguts.pod
@@ -1647,7 +1647,7 @@ Used to extend the argument stack for an XSUB's return values.
Analyses the string in order to make fast searches on it using fbm_instr() --
the Boyer-Moore algorithm.
- void fbm_compile(SV* sv)
+ void fbm_compile(SV* sv, U32 flags)
=item fbm_instr
@@ -1656,7 +1656,7 @@ C<strend>. It returns C<Nullch> if the string can't be found. The
C<sv> does not have to be fbm_compiled, but the search will not be as
fast then.
- char* fbm_instr(char *str, char *strend, SV *sv)
+ char* fbm_instr(char *str, char *strend, SV *sv, U32 flags)
=item FREETMPS
diff --git a/pp.c b/pp.c
index a927b3ddc0..b5a184a4b9 100644
--- a/pp.c
+++ b/pp.c
@@ -1996,7 +1996,7 @@ PP(pp_index)
else if (offset > biglen)
offset = biglen;
if (!(tmps2 = fbm_instr((unsigned char*)tmps + offset,
- (unsigned char*)tmps + biglen, little)))
+ (unsigned char*)tmps + biglen, little, 0)))
retval = -1 + arybase;
else
retval = tmps2 - tmps + arybase;
@@ -4327,7 +4327,7 @@ PP(pp_split)
#ifndef lint
while (s < strend && --limit &&
(m=fbm_instr((unsigned char*)s, (unsigned char*)strend,
- rx->check_substr)) )
+ rx->check_substr, 0)) )
#endif
{
dstr = NEWSV(31, m-s);
diff --git a/pp_hot.c b/pp_hot.c
index b81ec56423..7234f15fdd 100644
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -872,7 +872,7 @@ play_it_again:
}
else if (!(s = fbm_instr((unsigned char*)s + rx->check_offset_min,
(unsigned char*)strend,
- rx->check_substr)))
+ rx->check_substr, 0)))
goto nope;
else if ((rx->reganch & ROPT_CHECK_ALL) && !sawampersand)
goto yup;
@@ -1562,7 +1562,7 @@ PP(pp_subst)
}
else if (!(s = fbm_instr((unsigned char*)s + rx->check_offset_min,
(unsigned char*)strend,
- rx->check_substr)))
+ rx->check_substr, 0)))
goto nope;
if (s && rx->check_offset_max < s - m) {
++BmUSEFUL(rx->check_substr);
diff --git a/proto.h b/proto.h
index 5bbde48039..d5aeb00d4e 100644
--- a/proto.h
+++ b/proto.h
@@ -136,7 +136,7 @@ VIRTUAL void dump_pm _((PMOP* pm));
VIRTUAL void dump_packsubs _((HV* stash));
VIRTUAL void dump_sub _((GV* gv));
VIRTUAL void fbm_compile _((SV* sv, U32 flags));
-VIRTUAL char* fbm_instr _((unsigned char* big, unsigned char* bigend, SV* littlesv));
+VIRTUAL char* fbm_instr _((unsigned char* big, unsigned char* bigend, SV* littlesv, U32 flags));
VIRTUAL char* find_script _((char *scriptname, bool dosearch, char **search_ext, I32 flags));
#ifdef USE_THREADS
VIRTUAL PADOFFSET find_threadsv _((char *name));
diff --git a/regexec.c b/regexec.c
index 107d68bcae..d5d94612b7 100644
--- a/regexec.c
+++ b/regexec.c
@@ -258,7 +258,7 @@ regexec_flags(register regexp *prog, char *stringarg, register char *strend, cha
else
s = fbm_instr((unsigned char*)s + start_shift,
(unsigned char*)strend - end_shift,
- prog->check_substr);
+ prog->check_substr, 0);
if (!s) {
++BmUSEFUL(prog->check_substr); /* hooray */
goto phooey; /* not present */
@@ -359,7 +359,7 @@ regexec_flags(register regexp *prog, char *stringarg, register char *strend, cha
? (s = screaminstr(screamer, must, s + back_min - strbeg,
end_shift, &scream_pos, 0))
: (s = fbm_instr((unsigned char*)s + back_min,
- (unsigned char*)strend, must))) ) {
+ (unsigned char*)strend, must, 0))) ) {
if (s - back_max > last1) {
last1 = s - back_min;
s = s - back_max;
diff --git a/util.c b/util.c
index 96a9bb8164..1ce9872fb5 100644
--- a/util.c
+++ b/util.c
@@ -938,7 +938,7 @@ fbm_compile(SV *sv, U32 flags /* not used yet */)
}
char *
-fbm_instr(unsigned char *big, register unsigned char *bigend, SV *littlestr)
+fbm_instr(unsigned char *big, register unsigned char *bigend, SV *littlestr, U32 flags)
{
register unsigned char *s;
register I32 tmp;