summaryrefslogtreecommitdiff
path: root/regex.c
diff options
context:
space:
mode:
Diffstat (limited to 'regex.c')
-rw-r--r--regex.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/regex.c b/regex.c
new file mode 100644
index 0000000..46cfe37
--- /dev/null
+++ b/regex.c
@@ -0,0 +1,30 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <regex.h>
+#include <locale.h>
+
+size_t b_regex_compile(void *s)
+{
+ regex_t re;
+ size_t i;
+ setlocale(LC_CTYPE, "");
+ for (i=0; i<1000; i++) {
+ regcomp(&re, s, REG_EXTENDED);
+ regfree(&re);
+ }
+}
+
+size_t b_regex_search(void *s)
+{
+ char buf[260000];
+ regex_t re;
+ size_t i;
+ setlocale(LC_CTYPE, "");
+ memset(buf, 'a', sizeof(buf)-2);
+ buf[sizeof buf - 2] = 'b';
+ buf[sizeof buf - 1] = 0;
+ regcomp(&re, s, REG_EXTENDED);
+ regexec(&re, buf, 0, 0, 0);
+ regfree(&re);
+}