aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCalvin Morrison <mutantturkey@gmail.com>2014-04-07 15:02:24 -0400
committerCalvin Morrison <mutantturkey@gmail.com>2014-04-07 15:02:24 -0400
commit5ec3ac48a80b4ebdf8a895bfa744218d70a15159 (patch)
treef815f126cf8a278090ddadfd124526983b23e2c1
parent0ff852452621030cb90c36c0884b4f03a6f45319 (diff)
fix stream counting so it doesn't count over
-rw-r--r--src/strstream.c10
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++;
}