rc_t init_ref_regions( BSTree * tree, Args * args ) { uint32_t count; rc_t rc; BSTreeInit( tree ); rc = ArgsOptionCount( args, OPTION_REF, &count ); if ( rc != 0 ) { LOGERR( klogInt, rc, "ArgsOptionCount() failed" ); } else { uint32_t i; for ( i = 0; i < count && rc == 0; ++i ) { const char * s; rc = ArgsOptionValue( args, OPTION_REF, i, &s ); if ( rc != 0 ) LOGERR( klogInt, rc, "ArgsOptionValue() failed" ); else rc = parse_and_add_region( tree, s ); } } return rc; }
static rc_t gather_region_options( Args * args, samdump_opts * opts ) { uint32_t count; rc_t rc = ArgsOptionCount( args, OPT_REGION, &count ); if ( rc != 0 ) { (void)PLOGERR( klogErr, ( klogErr, rc, "error counting comandline option '$(t)'", "t=%s", OPT_REGION ) ); } else if ( count > 0 ) { uint32_t i; BSTreeInit( &opts->regions ); for ( i = 0; i < count && rc == 0; ++i ) { const char * s; rc = ArgsOptionValue( args, OPT_REGION, i, &s ); if ( rc != 0 ) { (void)PLOGERR( klogErr, ( klogErr, rc, "error retrieving comandline option '$(t)'", "t=%s", OPT_REGION ) ); } else rc = parse_and_add_region( &opts->regions, s ); } if ( rc == 0 ) { check_ref_regions( &opts->regions ); opts->region_count = count_ref_regions( &opts->regions ); } } return rc; }
rc_t ref_walker_parse_and_add_range( struct ref_walker * self, const char * range ) { rc_t rc = 0; if ( self == NULL ) rc = RC( rcApp, rcNoTarg, rcConstructing, rcParam, rcNull ); else rc = parse_and_add_region( &self->regions, range ); return rc; }