xref: /plan9/sys/src/cmd/upas/send/regtest.c (revision 3e12c5d1bb89fc02707907988834ef147769ddaf)
1*3e12c5d1SDavid du Colombier #include <u.h>
2*3e12c5d1SDavid du Colombier #include <libc.h>
3*3e12c5d1SDavid du Colombier #include <regexp.h>
4*3e12c5d1SDavid du Colombier #include <bio.h>
5*3e12c5d1SDavid du Colombier 
main(void)6*3e12c5d1SDavid du Colombier main(void)
7*3e12c5d1SDavid du Colombier {
8*3e12c5d1SDavid du Colombier 	char *re;
9*3e12c5d1SDavid du Colombier 	char *line;
10*3e12c5d1SDavid du Colombier 	Reprog *prog;
11*3e12c5d1SDavid du Colombier 	char *cp;
12*3e12c5d1SDavid du Colombier 	Biobuf in;
13*3e12c5d1SDavid du Colombier 
14*3e12c5d1SDavid du Colombier 	Binit(&in, 0, OREAD);
15*3e12c5d1SDavid du Colombier 	print("re> ");
16*3e12c5d1SDavid du Colombier 	while(re = Brdline(&in, '\n')){
17*3e12c5d1SDavid du Colombier 		re[Blinelen(&in)-1] = 0;
18*3e12c5d1SDavid du Colombier 		if(*re == 0)
19*3e12c5d1SDavid du Colombier 			break;
20*3e12c5d1SDavid du Colombier 		prog = regcomp(re);
21*3e12c5d1SDavid du Colombier 		print("> ");
22*3e12c5d1SDavid du Colombier 		while(line = Brdline(&in, '\n')){
23*3e12c5d1SDavid du Colombier 			line[Blinelen(&in)-1] = 0;
24*3e12c5d1SDavid du Colombier 			if(cp = strchr(line, '\n'))
25*3e12c5d1SDavid du Colombier 				*cp = 0;
26*3e12c5d1SDavid du Colombier 			if(*line == 0)
27*3e12c5d1SDavid du Colombier 				break;
28*3e12c5d1SDavid du Colombier 			if(regexec(prog, line, 0))
29*3e12c5d1SDavid du Colombier 				print("yes\n");
30*3e12c5d1SDavid du Colombier 			else
31*3e12c5d1SDavid du Colombier 				print("no\n");
32*3e12c5d1SDavid du Colombier 			print("> ");
33*3e12c5d1SDavid du Colombier 		}
34*3e12c5d1SDavid du Colombier 		print("re> ");
35*3e12c5d1SDavid du Colombier 	}
36*3e12c5d1SDavid du Colombier }
37