1 #include <r_search.h>
2 
3 //static char *buffer = "helloworldlibisniceandcoolib2loblubljb";
4 char *buffer = "helloworldlibisnlizbiceandcoolib2loblubljb";
5 
hit(RSearchKeyword * kw,void * user,ut64 addr)6 static int hit(RSearchKeyword *kw, void *user, ut64 addr) {
7 	//const ut8 *buf = (ut8*)user;
8 	printf ("HIT %d AT %"PFMT64d" (%s)\n", kw->count, addr, buffer+addr);
9 	return 1;
10 }
11 
main(int argc,char ** argv)12 int main(int argc, char **argv) {
13 	RSearch *rs = r_search_new (R_SEARCH_KEYWORD);
14 	r_search_kw_add (rs,
15 		r_search_keyword_new_str ("lib", "", NULL, 0));
16 	r_search_set_callback (rs, &hit, buffer);
17 	r_search_set_distance (rs, 0);
18 	printf ("Distance: %d\n", rs->distance);
19 	r_search_begin (rs);
20 	printf ("Searching for '%s' in '%s'\n", "lib", buffer);
21 	r_search_update_i (rs, 0LL, (ut8*)buffer, strlen(buffer));
22 
23 	printf("--\n");
24 
25 	r_search_set_distance (rs, 4);
26 	printf ("Distance: %d\n", rs->distance);
27 	r_search_begin (rs);
28 	printf ("Searching for '%s' in '%s'\n", "lib", buffer);
29 	r_search_update_i (rs, 0LL, (ut8*)buffer, strlen(buffer));
30 	rs = r_search_free (rs);
31 
32 	printf("--\n");
33 
34 	/* test binmask */
35 	rs = r_search_new (R_SEARCH_KEYWORD);
36 	{
37 		RSearchKeyword *kw = r_search_keyword_new_str ("lib", "ff00ff", NULL, 0);
38 		printf ("Keyword (%02x %02x %02x)\n", kw->bin_binmask[0],
39 			kw->bin_binmask[1], kw->bin_binmask[2]);
40 		r_search_kw_add (rs, kw);
41 	}
42 	r_search_set_callback (rs, &hit, buffer);
43 	r_search_begin (rs);
44 	printf ("Searching for '%s' with binmask 'ff00ff' in '%s'\n", "lib", buffer);
45 	r_search_update_i (rs, 0LL, (ut8*)buffer, strlen(buffer));
46 	rs = r_search_free (rs);
47 	return 0;
48 }
49