@@ -339,7 +339,7 @@ static void destroy_data(args_t *args)
339339static void init_region (args_t * args , char * line )
340340{
341341 char * ss , * se = line ;
342- while ( * se && !isspace (* se ) && * se != ':' ) se ++ ;
342+ while ( * se && !isspace_c (* se ) && * se != ':' ) se ++ ;
343343 hts_pos_t from = 0 , to = 0 ;
344344 char tmp = 0 , * tmp_ptr = NULL ;
345345 if ( * se )
@@ -353,7 +353,7 @@ static void init_region(args_t *args, char *line)
353353 from -- ;
354354 ss = ++ se ;
355355 to = strtol (ss ,& se ,10 );
356- if ( ss == se || (* se && !isspace (* se )) ) { from = 0 ; to = 0 ; }
356+ if ( ss == se || (* se && !isspace_c (* se )) ) { from = 0 ; to = 0 ; }
357357 else to -- ;
358358 }
359359 }
@@ -411,6 +411,7 @@ static bcf1_t **next_vcf_line(args_t *args)
411411 }
412412 return & args -> files -> readers [0 ].buffer [0 ];
413413 }
414+ if ( args -> files -> errnum ) error ("Error: %s\n" , bcf_sr_strerror (args -> files -> errnum ));
414415 return NULL ;
415416}
416417static void unread_vcf_line (args_t * args , bcf1_t * * rec_ptr )
@@ -500,9 +501,9 @@ static void mark_ins(char *ref, char *alt, char mark)
500501{
501502 int i , nref = strlen (ref ), nalt = strlen (alt );
502503 if ( mark == TO_LOWER )
503- for (i = nref ; i < nalt ; i ++ ) alt [i ] = tolower (alt [i ]);
504+ for (i = nref ; i < nalt ; i ++ ) alt [i ] = tolower_c (alt [i ]);
504505 else if ( mark == TO_UPPER )
505- for (i = nref ; i < nalt ; i ++ ) alt [i ] = toupper (alt [i ]);
506+ for (i = nref ; i < nalt ; i ++ ) alt [i ] = toupper_c (alt [i ]);
506507 else if ( mark )
507508 for (i = nref ; i < nalt ; i ++ ) alt [i ] = mark ;
508509}
@@ -513,22 +514,17 @@ static void mark_snv(char *ref, char *alt, char mark)
513514 if ( mark == TO_LOWER )
514515 {
515516 for (i = 0 ; i < n ; i ++ )
516- if ( tolower (ref [i ])!= tolower (alt [i ]) ) alt [i ] = tolower (alt [i ]);
517+ if ( tolower_c (ref [i ])!= tolower_c (alt [i ]) ) alt [i ] = tolower_c (alt [i ]);
517518 }
518519 else if ( mark == TO_UPPER )
519520 {
520521 for (i = 0 ; i < n ; i ++ )
521- if ( tolower (ref [i ])!= tolower (alt [i ]) ) alt [i ] = toupper (alt [i ]);
522- }
523- else if ( mark == TO_UPPER )
524- {
525- for (i = 0 ; i < n ; i ++ )
526- if ( tolower (ref [i ])!= tolower (alt [i ]) ) alt [i ] = toupper (alt [i ]);
522+ if ( tolower_c (ref [i ])!= tolower_c (alt [i ]) ) alt [i ] = toupper_c (alt [i ]);
527523 }
528524 else if ( mark )
529525 {
530526 for (i = 0 ; i < n ; i ++ )
531- if ( tolower (ref [i ])!= tolower (alt [i ]) ) alt [i ] = mark ;
527+ if ( tolower_c (ref [i ])!= tolower_c (alt [i ]) ) alt [i ] = mark ;
532528 }
533529}
534530static void iupac_init (args_t * args , bcf1_t * rec )
@@ -943,7 +939,7 @@ static void apply_variant(args_t *args, bcf1_t *rec)
943939 // one base overlap
944940
945941 int fail = 1 ;
946- if ( args -> prev_base_pos == rec -> pos && toupper (ref_allele [0 ])== toupper (args -> prev_base ) )
942+ if ( args -> prev_base_pos == rec -> pos && toupper_c (ref_allele [0 ])== toupper_c (args -> prev_base ) )
947943 {
948944 if ( rec -> rlen == 1 ) fail = 0 ;
949945 else if ( !strncasecmp (ref_allele + 1 ,args -> fa_buf .s + idx + 1 ,rec -> rlen - 1 ) ) fail = 0 ;
@@ -992,11 +988,11 @@ static void apply_variant(args_t *args, bcf1_t *rec)
992988 }
993989
994990 int safe_idx = idx < 0 ? 0 : idx ; // idx can be negative in case of overlapping deletion
995- args -> fa_case = toupper (args -> fa_buf .s [safe_idx ])== args -> fa_buf .s [safe_idx ] ? TO_UPPER : TO_LOWER ;
991+ args -> fa_case = toupper_c (args -> fa_buf .s [safe_idx ])== args -> fa_buf .s [safe_idx ] ? TO_UPPER : TO_LOWER ;
996992 if ( args -> fa_case == TO_UPPER )
997- for (i = 0 ; i < alen ; i ++ ) alt_allele [i ] = toupper (alt_allele [i ]);
993+ for (i = 0 ; i < alen ; i ++ ) alt_allele [i ] = toupper_c (alt_allele [i ]);
998994 else
999- for (i = 0 ; i < alen ; i ++ ) alt_allele [i ] = tolower (alt_allele [i ]);
995+ for (i = 0 ; i < alen ; i ++ ) alt_allele [i ] = tolower_c (alt_allele [i ]);
1000996
1001997 if ( args -> mark_ins && len_diff > 0 )
1002998 mark_ins (ref_allele , alt_allele , args -> mark_ins );
@@ -1080,9 +1076,9 @@ static void mask_region(args_t *args, char *seq, int len)
10801076 if ( idx_start < 0 ) idx_start = 0 ;
10811077 if ( idx_end >= len ) idx_end = len - 1 ;
10821078 if ( mask -> with == MASK_UC )
1083- for (j = idx_start ; j <=idx_end ; j ++ ) seq [j ] = toupper (seq [j ]);
1079+ for (j = idx_start ; j <=idx_end ; j ++ ) seq [j ] = toupper_c (seq [j ]);
10841080 else if ( mask -> with == MASK_LC )
1085- for (j = idx_start ; j <=idx_end ; j ++ ) seq [j ] = tolower (seq [j ]);
1081+ for (j = idx_start ; j <=idx_end ; j ++ ) seq [j ] = tolower_c (seq [j ]);
10861082 else
10871083 for (j = idx_start ; j <=idx_end ; j ++ ) seq [j ] = mask -> with ;
10881084 }
@@ -1124,7 +1120,7 @@ static void consensus(args_t *args)
11241120 args -> fa_src_pos += str .l ;
11251121
11261122 // determine if uppercase or lowercase is used in this fasta file
1127- if ( args -> fa_case == -1 ) args -> fa_case = toupper (str .s [0 ])== str .s [0 ] ? 1 : 0 ;
1123+ if ( args -> fa_case == -1 ) args -> fa_case = toupper_c (str .s [0 ])== str .s [0 ] ? 1 : 0 ;
11281124
11291125 if ( args -> mask ) mask_region (args , str .s , str .l );
11301126 kputs (str .s , & args -> fa_buf );
0 commit comments