X-Git-Url: http://git.thejh.net/?p=detour.git;a=blobdiff_plain;f=pulsehunter.c;fp=pulsehunter.c;h=f3a0de589cad69797b3a5c24ea188e79683dec7b;hp=0000000000000000000000000000000000000000;hb=b6172a42cb1cc9e60c23696f20f5cdbd86e64cec;hpb=b2a2f3d5cc67240d1450c48700a20f07270a42c2 diff --git a/pulsehunter.c b/pulsehunter.c new file mode 100644 index 0000000..f3a0de5 --- /dev/null +++ b/pulsehunter.c @@ -0,0 +1,27 @@ +#include "common.c" + +int main(int argc, char **argv) { + if (argc != 2) puts("invocation: ./pulsehunter "), exit(1); + char *bits = argv[1]; + int nbits = strlen(bits); + + if (chdir("out")) perror("unable to enter directory 'out'"), exit(1); + DIR *d = opendir("."); + if (!d) perror("unable to open directory 'out'"), exit(1); + for (struct dirent *e = (errno=0,readdir(d)); e; e = (errno=0,readdir(d))) { + if (e->d_name[0] == '.') continue; + size_t len; + char *data = slurp_file(e->d_name, &len); + if (!data) { perror("error while slurping dirent"); continue; } + int maxbits = 0; + for (int i=0; i<((int)len)-nbits; i++) { + int matching = 0; + for (int j=0; j maxbits) maxbits = matching; + } + printf("%d\t%s\n", maxbits, e->d_name); + free(data); + } + if (errno) perror("error while reading directory 'out'"), exit(1); + return 0; +} \ No newline at end of file