Beispiel #1
0
extern void     GlobMenuItem( a_window *wnd, unsigned id, int row, int piece )
{
    glob_window *glob = WndGlob( wnd );
    address     addr;
    char        buff[TXT_LEN];

    piece=piece;
    addr = NameListAddr( NameList( glob ), row );
    switch( id ) {
    case MENU_INITIALIZE:
        if( IS_NIL_ADDR( addr ) ) {
            WndMenuGrayAll( wnd );
        } else {
            WndMenuEnableAll( wnd );
        }
        WndMenuEnable( wnd, MENU_GLOB_D2_ONLY, TRUE );
        WndMenuCheck( wnd, MENU_GLOB_D2_ONLY, glob->d2_only );
        break;
    case MENU_GLOB_INSPECT_MEMORY:
        WndAddrInspect( addr );
        break;
    case MENU_GLOB_WATCH:
        NameListName( NameList( glob ), row, buff, SN_QUALIFIED );
        WndVarInspect( buff );
        break;
    case MENU_GLOB_D2_ONLY:
        glob->d2_only = !glob->d2_only;
        GlobInit( wnd );
        break;
    default:
        break;
    }
}
Beispiel #2
0
static  bool    FuncGetLine( a_window *wnd, int row, int piece,
                             wnd_line_piece *line )
{
    address     addr;
    func_window *func = WndFunc( wnd );

    if( row >= NameListNumRows( NameList( func ) ) ) return( FALSE );
    addr = NameListAddr( NameList( func ), row );
    switch( piece ) {
    case PIECE_BREAK:
        FileBreakGadget( wnd, line, FALSE, FindBreak( addr ) );
        return( TRUE );
    case PIECE_NAME:
        line->indent = MaxGadgetLength;
        line->text = TxtBuff;
        line->extent = WND_MAX_EXTEND;
        FuncGetSourceName( wnd, row );
        return( TRUE );
    case PIECE_DEMANGLED:
        if( NameListName( NameList( func ), row, TxtBuff, SN_DEMANGLED ) == 0 ) {
            return( FALSE );
        }
        line->text = TxtBuff;
        line->use_prev_attr = TRUE;
        line->indent = MaxGadgetLength + func->max_name + 2 * WndAvgCharX( wnd );
        return( TRUE );
    default:
        return( FALSE );
    }
}
Beispiel #3
0
extern void SymCompMatches( name_list *list, char *match, unsigned *pfirst, unsigned *plast )
{
    unsigned            first,last;
    unsigned            len;

    len = strlen( match );
    for( first = 0; first < NameListNumRows( list ); ++first ) {
        NameListName( list, first, TxtBuff, SN_SOURCE );
        if( strnicmp( match, TxtBuff, len ) == 0 ) break;
    }
    for( last = first; last < NameListNumRows( list ); ++last ) {
        NameListName( list, last, TxtBuff, SN_SOURCE );
        if( strnicmp( match, TxtBuff, len ) != 0 ) break;
    }
    *pfirst = first;
    *plast = last;
}
Beispiel #4
0
bool    GlobGetLine( a_window *wnd, int row, int piece, wnd_line_piece *line )
{
    glob_window *glob = WndGlob( wnd );

    if( row >= NameListNumRows( NameList( glob ) ) ) return( false );
    switch( piece ) {
    case PIECE_NAME:
        NameListName( NameList( glob ), row, TxtBuff, SN_QUALIFIED );
        line->text = TxtBuff;
        return( true );
    default:
        return( false );
    }
}
Beispiel #5
0
static void FuncGetSourceName( a_window *wnd, int row )
{
    func_window *func = WndFunc( wnd );

    NameListName( NameList( func ), row, TxtBuff, SN_QUALIFIED );
}