RPA Toolkit
Merge branch 'master' of ssh://git.rpatk.net/git/rpatk
[rpatk.git] / tests / testrex / rexregex.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 #include "rex/rexregex.h"
5
6 /*
7  * To build:
8  * gcc -o rexregex rexregex.c -I/usr/include/rpatk -lrex -lrlib
9  */
10
11 #define BUF_SIZE 0x10000
12
13 int main(int argc, char *argv[])
14 {
15         rexregex_t *regex;
16         char *buf, *end;
17         const char *where;
18         int line = 0;
19
20         if (argc < 2) {
21                 fprintf(stderr, "Usage:\n cat <file> | %s <regexp>\n", argv[0]);
22                 return 0;
23         }
24         regex = rex_regex_create_s(argv[1]);
25         buf = calloc(BUF_SIZE, 1);
26         while (fgets(buf, BUF_SIZE - 1, stdin)) {
27                 ++line;
28                 for (end = buf; *end; ++end);
29                 if (end > buf)
30                         *(end - 1) = '\0';
31                 if (rex_regex_scan(regex, REX_ENCODING_BYTE, buf, end, &where) > 0)
32                         printf("%d: %s\n", line, buf);
33         }
34         free(buf);
35         rex_regex_destroy(regex);
36         return 0;
37 }