Changeset: ffce6d518698 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ffce6d518698
Modified Files:
        sql/backends/monet5/bam/bamloader.c
Branch: DVframework_bam
Log Message:

Fixed bug in parser for alignment strings


diffs (33 lines):

diff --git a/sql/backends/monet5/bam/bamloader.c 
b/sql/backends/monet5/bam/bamloader.c
--- a/sql/backends/monet5/bam/bamloader.c
+++ b/sql/backends/monet5/bam/bamloader.c
@@ -761,19 +761,24 @@ str process_bam_alignment(str filepath, 
     return MAL_SUCCEED;
 }
 
-int parse_alignment_str(str *sam_alig, str *dest)
+static int 
+_parse_alignment_str(str *sam_alig, str *dest)
 {
-    if(read_string_until_delim(sam_alig, dest, "\t", 1) > 0)
+    if(_read_string_until_delim(sam_alig, dest, "\t\n\0", 3) > 0)
     {
-        while(**sam_alig == '\t') (*sam_alig)++;
+        /* At this moment we're looking at either a tab or one of \n\0. We 
just want to skip tabs. \n or \0 however,
+           indicate the end of this alignment, so we want to keep them. In 
case we didn't finish all mandatory fields
+           in the alignment yet, the next call  to this function will return 
FALSE. */
+        while(**sam_alig == '\t') (*sam_alig)++; 
         return TRUE;
     }
     return FALSE;
 }
 
-int parse_alignment_lng(str *sam_alig, lng *dest)
+static int 
+_parse_alignment_lng(str *sam_alig, lng *dest)
 {
-    if(parse_lng(sam_alig, dest))
+    if(_parse_lng(sam_alig, dest))
     {
         while(**sam_alig == '\t') (*sam_alig)++;
         return TRUE;
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to