4141#include <string.h>
4242#include <stdlib.h>
4343#include <limits.h>
44+ #include <stdint.h>
45+ #include <inttypes.h>
4446
4547#include <htslib/hts.h>
4648#include <htslib/sam.h>
4749
4850void reg_expected (bam_hdr_t * hdr , const char * reg , int flags ,
49- char * reg_exp , int tid_exp , int beg_exp , int end_exp ) {
51+ char * reg_exp , int tid_exp , int64_t beg_exp , int64_t end_exp ) {
5052 const char * reg_out ;
51- int tid_out = -1 , beg_out = -1 , end_out = -1 ;
53+ int tid_out = -1 ;
54+ int64_t beg_out = -1 , end_out = -1 ;
5255
5356 reg_out = sam_parse_region (hdr , reg , & tid_out , & beg_out , & end_out , flags );
5457
@@ -57,16 +60,12 @@ void reg_expected(bam_hdr_t *hdr, const char *reg, int flags,
5760 (reg_exp && tid_out != tid_exp ) ||
5861 (reg_exp && beg_out != beg_exp ) ||
5962 (reg_exp && end_out != end_exp )) {
60- fprintf (stderr , "Parsing \"%s\" expected return \"%s\", %d:%d-%d , "
61- "but got \"%s\", %d:%d-%d \n" ,
63+ fprintf (stderr , "Parsing \"%s\" expected return \"%s\", %d:%" PRId64 "-%" PRId64 " , "
64+ "but got \"%s\", %d:%" PRId64 "-%" PRId64 " \n" ,
6265 reg ,
6366 reg_exp ?reg_exp :"(null)" , tid_exp , beg_exp , end_exp ,
6467 reg_out ?reg_out :"(null)" , tid_out , beg_out , end_out );
6568 exit (1 );
66- // } else {
67- // fprintf(stderr, "%s parsed as expected result: \"%s\" %d:%d-%d\n",
68- // reg,
69- // reg_out?reg_out:"(null)", tid_out, beg_out, end_out);
7069 }
7170}
7271
@@ -88,6 +87,7 @@ int reg_test(char *fn) {
8887 // 5 chr1,chr3
8988
9089 // Check range extensions.
90+ // NB: fix INT_MAX once we merge the 64-bit pos code.
9191 reg_expected (hdr , "chr1" , 0 , "" , 0 , 0 , INT_MAX );
9292 reg_expected (hdr , "chr1:50" , 0 , "" , 0 , 49 , INT_MAX );
9393 reg_expected (hdr , "chr1:50" , HTS_PARSE_ONE_COORD , "" , 0 , 49 , 50 );
@@ -186,13 +186,14 @@ int main(int argc, char **argv) {
186186
187187 const char * reg = argv [2 ];
188188 while (* reg ) {
189- int tid , beg , end ;
189+ int tid ;
190+ int64_t beg , end ;
190191 reg = sam_parse_region (hdr , reg , & tid , & beg , & end , flags );
191192 if (!reg ) {
192193 fprintf (stderr , "Failed to parse region\n" );
193194 exit (1 );
194195 }
195- printf ("%-20s %12d %12d \n" ,
196+ printf ("%-20s %12" PRId64 " %12" PRId64 " \n" ,
196197 tid == -1 ? "*" : hdr -> target_name [tid ],
197198 beg , end );
198199 }
0 commit comments