From d7cd7e2677a8199c1f6e8a76c0d51fe23de69d62 Mon Sep 17 00:00:00 2001 From: Celine Mercier Date: Mon, 13 Apr 2020 11:59:09 +0200 Subject: [PATCH] Made sequence parsing more robust (issue with arm64 systems) --- libfasta/sequence.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/libfasta/sequence.c b/libfasta/sequence.c index 2cf3d10..15382e9 100755 --- a/libfasta/sequence.c +++ b/libfasta/sequence.c @@ -162,19 +162,24 @@ void seq_fillSeqOnlyATGC(char *seq, fastaSeqPtr seqElem, int seqLen) { char* seqTemp; char c; - int32_t index = 0, seqIndex = 0, len = strlen(seq); + int32_t index = 1, seqIndex = 0, len = strlen(seq); char* seqAlphabets = "acgtACGT"; int notAllATGC = 0; + int goOnParsing = 1; seqTemp = (char*) util_malloc(seqLen*sizeof(char), __FILE__, __LINE__); - while (index < len) + while (goOnParsing) { c = seq[index++]; if (strchr(seqAlphabets, c) != NULL) seqTemp[seqIndex++] = tolower(c); + else if ((c == '\n') && (seq[index+1]=='\0')) + goOnParsing = 0; //End of line character terminating the sequence has been reached. else if (c != '\n') notAllATGC = 1; + if (index == len) + goOnParsing = 0; } if (notAllATGC)