summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/slre.h1
-rw-r--r--lib/slre.c13
2 files changed, 3 insertions, 11 deletions
diff --git a/include/slre.h b/include/slre.h
index 4b41a4b276f..af5b1302d9c 100644
--- a/include/slre.h
+++ b/include/slre.h
@@ -63,7 +63,6 @@ struct slre {
int code_size;
int data_size;
int num_caps; /* Number of bracket pairs */
- int anchored; /* Must match from string start */
const char *err_str; /* Error string */
};
diff --git a/lib/slre.c b/lib/slre.c
index 277a59a03a7..4f455400d3a 100644
--- a/lib/slre.c
+++ b/lib/slre.c
@@ -413,10 +413,7 @@ int
slre_compile(struct slre *r, const char *re)
{
r->err_str = NULL;
- r->code_size = r->data_size = r->num_caps = r->anchored = 0;
-
- if (*re == '^')
- r->anchored++;
+ r->code_size = r->data_size = r->num_caps = 0;
emit(r, OPEN); /* This will capture what matches full RE */
emit(r, 0);
@@ -650,13 +647,9 @@ slre_match(const struct slre *r, const char *buf, int len,
{
int i, ofs = 0, res = 0;
- if (r->anchored) {
+ for (i = 0; i <= len && res == 0; i++) {
+ ofs = i;
res = match(r, 0, buf, len, &ofs, caps);
- } else {
- for (i = 0; i < len && res == 0; i++) {
- ofs = i;
- res = match(r, 0, buf, len, &ofs, caps);
- }
}
return res;