diff options
author | Calvin Morrison <mutantturkey@gmail.com> | 2014-04-07 15:02:24 -0400 |
---|---|---|
committer | Calvin Morrison <mutantturkey@gmail.com> | 2014-04-07 15:02:24 -0400 |
commit | 5ec3ac48a80b4ebdf8a895bfa744218d70a15159 (patch) | |
tree | f815f126cf8a278090ddadfd124526983b23e2c1 /src | |
parent | 0ff852452621030cb90c36c0884b4f03a6f45319 (diff) |
fix stream counting so it doesn't count over
Diffstat (limited to 'src')
-rw-r--r-- | src/strstream.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/strstream.c b/src/strstream.c index d1ceb65..3701c92 100644 --- a/src/strstream.c +++ b/src/strstream.c @@ -46,9 +46,9 @@ char **load_mers_from_file(FILE *fh, ssize_t *len) { int main(int argc, char **argv){ - char buffer[BUFSIZ] = { 0 }; + char buffer[BUFSIZ + 1] = { 0 }; char *buf, *start; - ssize_t len = 0; + size_t len = 0; ssize_t mer_len = 0; int save_size = 0; @@ -96,9 +96,13 @@ int main(int argc, char **argv){ // read into "start" (buf + cpy) from tdin while((len = fread(start, 1, cpy_size, stdin)) != 0) { + // strstr isn't smart, and fread doesn't set a '\0', so manually set end of string + if(len < cpy_size) + start[len] = '\0'; + for(i = 0; i < mer_len; i++) { char *p = buffer; - while((p = strstr(p, mers[i])) != NULL) { + while((p = strstr(p, mers[i])) != NULL) { printf("%d %llu\n", i, pos + (p - buffer)); p++; } |