}
}
+static void usage(void)
+{
+ fprintf(stderr, "Usage: rexel -itvB pattern target\n");
+ fprintf(stderr, " : rexel -itvB -f pattern file\n");
+ fprintf(stderr, " : rexel -T # run tests\n");
+ fprintf(stderr, " : -i=ignore case, -t=trace -v=verbatim pattern, -B=backtrack\n");
+}
+
int main(int argc, char *argv[])
{
unsigned short *rxl;
int ccnt = 0;
int ignore_case = 0;
int verbatim = 0;
+ int backtrack = 0;
int opt;
int trace = False;
const char *patn, *target, *t;
char prefix[100];
int plen;
- while ((opt = getopt(argc, argv, "itvlTf")) > 0)
+ while ((opt = getopt(argc, argv, "itvTfB")) > 0)
switch (opt) {
case 'f':
use_file = 1; break;
verbatim = 1; break;
case 't':
trace = True; break;
+ case 'B':
+ backtrack = RXLF_BACKTRACK; break;
case 'T':
run_tests(trace);
printf("All tests passed successfully\n");
exit(0);
default:
- fprintf(stderr, "Usage: rexel -itvl pattern target\n");
- fprintf(stderr, " : rexel -itvl -f pattern file\n");
- fprintf(stderr, " : rexel -T\n");
+ usage();
exit(1);
}
if (optind + 2 != argc) {
- fprintf(stderr,
- "Usage: rexel -ivl pattern target\n"
- " or: rexel -T\n");
+ usage();
exit(1);
}
patn = argv[optind];
else
printf("No static prefix\n");
- st = rxl_prepare(rxl, 0);
+ st = rxl_prepare(rxl, backtrack);
st->trace = trace;
t = target;
flags = RXL_SOL|RXL_SOD;