コード例 #1
0
/*
 * GetCurrentTag - get current tag word and hunt for it
 */
vi_rc GetCurrentTag( void )
{
    vi_rc       rc;
    char        tag[MAX_STR];

    rc = GimmeCurrentWord( tag, sizeof( tag ) - 1, FALSE );
    if( rc != ERR_NO_ERR ) {
        return( rc );
    }
    rc = TagHunt( tag );
    return( rc );

} /* GetCurrentTag */
コード例 #2
0
ファイル: readstr.c プロジェクト: bhanug/open-watcom-v2
/*
 * GetTextForSpecialKey - get text for ^D,^E,^W, ALT_L, ^L, ^R
 */
bool GetTextForSpecialKey( int str_max, vi_key event, char *tmp )
{
    int         i, l;

    switch( event ) {
    case VI_KEY( CTRL_E ):
    case VI_KEY( CTRL_W ):
        tmp[0] = '\0';
        GimmeCurrentWord( tmp, str_max, event == VI_KEY( CTRL_E ) );
        tmp[str_max] = '\0';
        break;
    case VI_KEY( ALT_L ):
        if( CurrentLine == NULL ) {
            break;
        }
        i = CurrentPos.column - 1;
        if( i < 0 )
            i = 0;
        ExpandTabsInABuffer( &CurrentLine->data[i], CurrentLine->len - i, tmp, str_max );
        break;
    case VI_KEY( CTRL_L ):
        if( CurrentLine == NULL ) {
            break;
        }
        ExpandTabsInABuffer( &CurrentLine->data[0], CurrentLine->len, tmp, str_max );
        break;
    case VI_KEY( CTRL_R ):
        if( CurrentLine == NULL ) {
            break;
        }
        if( SelRgn.lines ) {
            assert( SelRgn.start.line == SelRgn.end.line );
            i = 1;
            l = CurrentLine->len + 1;
        } else {
            if( SelRgn.start.column < SelRgn.end.column ) {
                i = SelRgn.start.column;
                l = SelRgn.end.column - SelRgn.start.column + 1;
            } else {
                i = SelRgn.end.column;
                l = SelRgn.start.column - SelRgn.end.column + 1;
            }
        }
        ExpandTabsInABuffer( &CurrentLine->data[i - 1], l, tmp, str_max );
        tmp[l] = '\0';
    default:
        return( false );
    }
    return( true );

} /* GetTextForSpecialKey */
コード例 #3
0
/*
 * GetTextForSpecialKey - get text for ^D,^E,^W, ALT_L, ^L, ^R
 */
bool GetTextForSpecialKey( vi_key event, char *buff, int buffsize )
{
    int         i;
    int         len;

    if( buffsize > 0 )
        buff[0] = '\0';
    switch( event ) {
    case VI_KEY( CTRL_E ):
    case VI_KEY( CTRL_W ):
        GimmeCurrentWord( buff, buffsize, event == VI_KEY( CTRL_E ) );
        break;
    case VI_KEY( ALT_L ):
        if( CurrentLine != NULL ) {
            i = CurrentPos.column - 1;
            if( i < 0 )
                i = 0;
            ExpandTabsInABuffer( &CurrentLine->data[i], CurrentLine->len - i, buff, buffsize );
        }
        break;
    case VI_KEY( CTRL_L ):
        if( CurrentLine != NULL ) {
            ExpandTabsInABuffer( &CurrentLine->data[0], CurrentLine->len, buff, buffsize );
        }
        break;
    case VI_KEY( CTRL_R ):
        if( CurrentLine != NULL ) {
            if( SelRgn.lines ) {
                assert( SelRgn.start.line == SelRgn.end.line );
                i = 1;
                len = CurrentLine->len + 1;
            } else {
                if( SelRgn.start.column < SelRgn.end.column ) {
                    i = SelRgn.start.column;
                    len = SelRgn.end.column - SelRgn.start.column + 1;
                } else {
                    i = SelRgn.end.column;
                    len = SelRgn.start.column - SelRgn.end.column + 1;
                }
            }
            ExpandTabsInABuffer( &CurrentLine->data[i - 1], len, buff, buffsize );
        }
        break;
    default:
        return( false );
    }
    return( true );

} /* GetTextForSpecialKey */