aboutsummaryrefslogtreecommitdiffstats
path: root/helpers/testdfa.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2014-01-12 20:42:08 +0200
committerArnold D. Robbins <arnold@skeeve.com>2014-01-12 20:42:08 +0200
commit624d70844fe63068132adb7c66ea3f8a231e56a7 (patch)
tree79781e2b0e24b5e478804001c83fcde64602f502 /helpers/testdfa.c
parentda83b6857bf0a67b15fc75d31a0b6802ac9baffe (diff)
parentf934f2192779db0091d1706d97d1fd43cb26dc9a (diff)
downloadegawk-624d70844fe63068132adb7c66ea3f8a231e56a7.tar.gz
egawk-624d70844fe63068132adb7c66ea3f8a231e56a7.tar.bz2
egawk-624d70844fe63068132adb7c66ea3f8a231e56a7.zip
Merge branch 'master' into comment
Diffstat (limited to 'helpers/testdfa.c')
-rw-r--r--helpers/testdfa.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/helpers/testdfa.c b/helpers/testdfa.c
index c644fb04..813acaab 100644
--- a/helpers/testdfa.c
+++ b/helpers/testdfa.c
@@ -76,7 +76,6 @@ int main(int argc, char **argv)
size_t len;
const char *pattern;
const char *rerr;
- int infd;
char *data;
reg_syntax_t dfa_syn;
bool ignorecase = false;
@@ -180,7 +179,7 @@ int main(int argc, char **argv)
/* run the regex matcher */
ret = re_search(& pat, data, len, 0, len, NULL);
- printf("re_search returned %d (%s)\n", ret, (ret != 0) ? "true" : "false");
+ printf("re_search returned position %d (%s)\n", ret, (ret >= 0) ? "true" : "false");
/* run the dfa matcher */
/*
@@ -202,6 +201,8 @@ int main(int argc, char **argv)
free(regs.end);
dfafree(dfareg);
free(dfareg);
+
+ return 0;
}
/* genflags2str --- general routine to convert a flag value to a string */
@@ -366,12 +367,15 @@ setup_pattern(const char *pattern, size_t len)
{
size_t is_multibyte = 0;
int c, c2;
- size_t buflen;
+ size_t buflen = 0;
mbstate_t mbs;
bool has_anchor = false;
- char *buf, *dest;
+ char *buf = NULL;
+ char *dest;
const char *src, *end;
+ memset(& mbs, 0, sizeof(mbs));
+
src = pattern;
end = pattern + len;