@@ -371,7 +371,7 @@ int bcf_sr_add_reader(bcf_srs_t *files, const char *fname)
371371            if  ( !files -> regions  )
372372                files -> regions  =  _regions_init_string (names [i ]);
373373            else 
374-                 _regions_add (files -> regions , names [i ], -1 ,  -1 );
374+                 _regions_add (files -> regions , names [i ], CSI_COOR_EMPTY ,  CSI_COOR_EMPTY );
375375        }
376376        free (names );
377377        _regions_sort_and_merge (files -> regions );
@@ -555,7 +555,7 @@ static int _readers_next_region(bcf_srs_t *files)
555555    int  prev_iseq  =  files -> regions -> iseq ;
556556    hts_pos_t  prev_end  =  files -> regions -> end ;
557557    if  ( bcf_sr_regions_next (files -> regions )< 0  ) return  -1 ;
558-     files -> regions -> prev_end  =  prev_iseq == files -> regions -> iseq  ? prev_end  : -1 ;
558+     files -> regions -> prev_end  =  prev_iseq == files -> regions -> iseq  ? prev_end  : CSI_COOR_EMPTY ;
559559
560560    for  (i = 0 ; i < files -> nreaders ; i ++ )
561561        _reader_seek (& files -> readers [i ],files -> regions -> seq_names [files -> regions -> iseq ],files -> regions -> start ,files -> regions -> end );
@@ -616,7 +616,7 @@ static int _reader_fill_buffer(bcf_srs_t *files, bcf_sr_t *reader)
616616            {
617617                reader -> buffer [reader -> mbuffer - i ] =  bcf_init1 ();
618618                reader -> buffer [reader -> mbuffer - i ]-> max_unpack  =  files -> max_unpack ;
619-                 reader -> buffer [reader -> mbuffer - i ]-> pos  =  -1 ;    // for rare cases when VCF starts from 1 
619+                 reader -> buffer [reader -> mbuffer - i ]-> pos  =  CSI_COOR_EMPTY ;    // for rare cases when VCF starts from 1 or 0  
620620            }
621621        }
622622        if  ( files -> streaming  )
@@ -656,7 +656,6 @@ static int _reader_fill_buffer(bcf_srs_t *files, bcf_sr_t *reader)
656656            if  ( ret  <  0  ) break ; // no more lines or an error 
657657            bcf_subset_format (reader -> header ,reader -> buffer [reader -> nbuffer + 1 ]);
658658        }
659- 
660659        // Prevent creation of duplicates from records overlapping multiple regions 
661660        // and recognize true variant overlaps vs record overlaps (e.g. TA>T vs A>-) 
662661        if  ( files -> regions  )
@@ -676,7 +675,6 @@ static int _reader_fill_buffer(bcf_srs_t *files, bcf_sr_t *reader)
676675                hts_log_error ("This should never happen, just to keep clang compiler happy: %d" ,BCF_SR_AUX (files )-> targets_overlap );
677676                exit (1 );
678677            }
679- 
680678            if  ( beg  <= files -> regions -> prev_end  ||  end  <  files -> regions -> start  ||  beg  >  files -> regions -> end  ) continue ;
681679        }
682680
@@ -954,9 +952,9 @@ int bcf_sr_set_samples(bcf_srs_t *files, const char *fname, int is_file)
954952// inclusive. Sorting and merging step needed afterwards: qsort(..,cmp_regions) and merge_regions(). 
955953static  int  _regions_add (bcf_sr_regions_t  * reg , const  char  * chr , hts_pos_t  start , hts_pos_t  end )
956954{
957-     if  ( start == -1  &&  end == -1  )
955+     if  ( start == CSI_COOR_EMPTY  &&  end == CSI_COOR_EMPTY  )
958956    {
959-         start  =  0 ; end  =  MAX_CSI_COOR - 1 ;
957+         start  =  -1 ; end  =  MAX_CSI_COOR - 1 ;
960958    }
961959    else 
962960    {
@@ -1029,8 +1027,9 @@ void _regions_sort_and_merge(bcf_sr_regions_t *reg)
10291027static  bcf_sr_regions_t  * _regions_init_string (const  char  * str )
10301028{
10311029    bcf_sr_regions_t  * reg  =  (bcf_sr_regions_t  * ) calloc (1 , sizeof (bcf_sr_regions_t ));
1032-     reg -> start  =  reg -> end  =  -1 ;
1033-     reg -> prev_start  =  reg -> prev_end  =  reg -> prev_seq  =  -1 ;
1030+     reg -> start  =  reg -> end  =  CSI_COOR_EMPTY ;
1031+     reg -> prev_start  =  reg -> prev_end  =  CSI_COOR_EMPTY ;
1032+     reg -> prev_seq  =  -1 ;
10341033
10351034    kstring_t  tmp  =  {0 ,0 ,0 };
10361035    const  char  * sp  =  str , * ep  =  str ;
@@ -1075,7 +1074,7 @@ static bcf_sr_regions_t *_regions_init_string(const char *str)
10751074        }
10761075        else 
10771076        {
1078-             if  ( tmp .l  ) _regions_add (reg , tmp .s , -1 ,  -1 );
1077+             if  ( tmp .l  ) _regions_add (reg , tmp .s , CSI_COOR_EMPTY ,  CSI_COOR_EMPTY );
10791078            if  ( !* ep  ) break ;
10801079            sp  =  ++ ep ;
10811080        }
@@ -1157,8 +1156,9 @@ bcf_sr_regions_t *bcf_sr_regions_init(const char *regions, int is_file, int ichr
11571156    }
11581157
11591158    reg  =  (bcf_sr_regions_t  * ) calloc (1 , sizeof (bcf_sr_regions_t ));
1160-     reg -> start  =  reg -> end  =  -1 ;
1161-     reg -> prev_start  =  reg -> prev_end  =  reg -> prev_seq  =  -1 ;
1159+     reg -> start  =  reg -> end  =  CSI_COOR_EMPTY ;
1160+     reg -> prev_start  =  reg -> prev_end  =  CSI_COOR_EMPTY ;
1161+     reg -> prev_seq  =  -1 ;
11621162
11631163    reg -> file  =  hts_open (regions , "rb" );
11641164    if  ( !reg -> file  )
@@ -1253,7 +1253,8 @@ void bcf_sr_regions_destroy(bcf_sr_regions_t *reg)
12531253
12541254int  bcf_sr_regions_seek (bcf_sr_regions_t  * reg , const  char  * seq )
12551255{
1256-     reg -> iseq  =  reg -> start  =  reg -> end  =  -1 ;
1256+     reg -> iseq  =  -1 ;
1257+     reg -> start  =  reg -> end  =  CSI_COOR_EMPTY ;
12571258    if  ( khash_str2int_get (reg -> seq_hash , seq , & reg -> iseq ) <  0  ) return  -1 ;  // sequence seq not in regions 
12581259
12591260    // using in-memory regions 
@@ -1284,7 +1285,7 @@ static int advance_creg(region_t *reg)
12841285int  bcf_sr_regions_next (bcf_sr_regions_t  * reg )
12851286{
12861287    if  ( reg -> iseq < 0  ) return  -1 ;
1287-     reg -> start  =  reg -> end  =  -1 ;
1288+     reg -> start  =  reg -> end  =  CSI_COOR_EMPTY ;
12881289    reg -> nals  =  0 ;
12891290
12901291    // using in-memory regions 
@@ -1442,7 +1443,7 @@ static int _bcf_sr_regions_overlap(bcf_sr_regions_t *reg, const char *seq, hts_p
14421443            bcf_sr_regions_flush (reg );
14431444
14441445        bcf_sr_regions_seek (reg , seq );
1445-         reg -> start  =  reg -> end  =  -1 ;
1446+         reg -> start  =  reg -> end  =  CSI_COOR_EMPTY ;
14461447    }
14471448    if  ( reg -> prev_seq == iseq  &&  reg -> iseq != iseq  ) return  -2 ;    // no more regions on this chromosome 
14481449    reg -> prev_seq  =  reg -> iseq ;
0 commit comments