static unsigned get_tix_code( unsigned char *buff ) /*************************************************/ { if( get_tix_token( (char *)buff ) != TT_CODE ) { tix_error( "expecting code" ); return( ~0U ); } return( buff[0] + (buff[1] << 8) ); }
static unsigned get_tix_code( char *buff ) /****************************************/ { if( get_tix_token( buff ) != TT_CODE ) { tix_error( "expecting code" ); return( TC_ERROR ); } return( *(unsigned char *)buff + ( *(unsigned char *)( buff + 1 ) << 8 ) ); }
static int do_parse( void ) /*************************/ { char buff[80]; char input[80]; tix_token tok; unsigned code; char c; tok = get_tix_token( buff ); for( ;; ) { if( tok == TT_EOF ) break; if( tok != TT_STRING ) { tix_error( "expecting directive" ); return( 0 ); } if( strcasecmp( buff, "display" ) == 0 ) { code = get_tix_code( (unsigned char *)buff ); if( code == ~0U ) return( 0 ); tok = get_tix_token( buff ); if( tok == TT_EOF ) break; if( tok == TT_STRING ) { if( strcasecmp( buff, "alt" ) != 0 ) { tix_error( "expecting alt" ); return( 0 ); } tok = get_tix_token( buff ); if( tok == TT_EOF ) break; c = find_acs_map( buff[0], acs_chars ); if( c != '\0' ) { ti_alt_map_set( code ); } else { c = find_acs_map( buff[0], acs_default ); if( c == '\0' ) { c = buff[0]; ti_alt_map_set( code ); } } buff[0] = c; } if( tok != TT_CODE ) { tix_error( "expecting display code" ); return( 0 ); } ti_char_map[code][0] = buff[0]; tok = get_tix_token( buff ); } else if( strcasecmp( buff, "key" ) == 0 ) { code = get_tix_code( (unsigned char *)buff ); if( code == ~0U ) return( 0 ); input[0] = '\0'; for( ;; ) { tok = get_tix_token( buff ); if( tok != TT_CODE ) break; strcat( input, buff ); } TrieAdd( code, input ); } else { tix_error( "unknown directive" ); } } return( 1 ); }