@@ -517,9 +517,18 @@ fn bit_vote_parity(b0: u8, b1: u8, b2: u8) -> (u8, u32) {
517517//
518518// Allowed characters include the following ASCII:
519519// - Uppercase letters
520+ // - Lowercase letters
520521// - Numbers
521522// - Minus sign (`-`)
522523// - Plus sign (`+`)
524+ // - Question mark (`?`)
525+ // - Open parentheses (`(`)
526+ // - Close parentheses (`)`)
527+ // - Open brackets (`[`)
528+ // - Close brackets (`]`)
529+ // - Period (`.`)
530+ // - Underscore (`_`)
531+ // - Comma (`,`)
523532// - Slash (`/`)
524533// - Space (` `)(might be encountered in callsign field)
525534//
@@ -530,15 +539,33 @@ fn bit_vote_parity(b0: u8, b1: u8, b2: u8) -> (u8, u32) {
530539fn is_allowed_byte ( c : u8 ) -> bool {
531540 const MINUS : u8 = '-' as u8 ;
532541 const PLUS : u8 = '+' as u8 ;
542+ const QUESTION_MARK : u8 = '?' as u8 ;
543+ const OPEN_PARENTHESES : u8 = '(' as u8 ;
544+ const CLOSE_PARENTHESES : u8 = ')' as u8 ;
545+ const OPEN_BRACKETS : u8 = '[' as u8 ;
546+ const CLOSE_BRACKETS : u8 = ']' as u8 ;
547+ const PERIOD : u8 = '.' as u8 ;
548+ const UNDERSCORE : u8 = '_' as u8 ;
549+ const COMMA : u8 = ',' as u8 ;
533550 const SLASH : u8 = '/' as u8 ;
534551 const SPACE : u8 = ' ' as u8 ;
535552 const NUMBERS : [ u8 ; 2 ] = [ '0' as u8 , '9' as u8 ] ;
536553 const UPPER_ALPHA : [ u8 ; 2 ] = [ 'A' as u8 , 'Z' as u8 ] ;
554+ const LOWER_ALPHA : [ u8 ; 2 ] = [ 'a' as u8 , 'z' as u8 ] ;
537555
538556 c == MINUS
539557 || ( c >= NUMBERS [ 0 ] && c <= NUMBERS [ 1 ] )
540558 || ( c >= UPPER_ALPHA [ 0 ] && c <= UPPER_ALPHA [ 1 ] )
559+ || ( c >= LOWER_ALPHA [ 0 ] && c <= LOWER_ALPHA [ 1 ] )
541560 || c == SLASH
561+ || c == QUESTION_MARK
562+ || c == OPEN_PARENTHESES
563+ || c == CLOSE_PARENTHESES
564+ || c == OPEN_BRACKETS
565+ || c == CLOSE_BRACKETS
566+ || c == PERIOD
567+ || c == UNDERSCORE
568+ || c == COMMA
542569 || c == PLUS
543570 || c == SPACE
544571}
0 commit comments