Ejemplo n.º 1
0
/*
 * CheckCurrentColumn - check state of current column, return true if need to
 *                      redisplay page
 */
bool CheckCurrentColumn( void )
{
    int     clen, vcp;
    bool    dispall = false;

    clen = VirtualLineLen( CurrentLine->data );
    if( clen == 0 ) {
        clen = 1;
    }
    ValidateCurrentColumn();

    vcp = VirtualColumnOnCurrentLine( CurrentPos.column );

    if( vcp != VirtualColumnDesired ) {
        if( clen >= VirtualColumnDesired ) {
            CurrentPos.column = RealColumnOnCurrentLine( VirtualColumnDesired );
        } else {
            if( EditFlags.InsertModeActive || EditFlags.Modeless ) {
                CurrentPos.column = CurrentLine->len + 1;
            } else {
                CurrentPos.column = CurrentLine->len;
            }
        }
        ValidateCurrentColumn();
        dispall = !CheckLeftColumn();
        /* changed CurrentPos.column - update horiz scrollbar
        */
        PositionHorizontalScrollThumb( current_window_id, LeftTopPos.column );
    }
    VarAddGlobalLong( "C", (long) CurrentPos.column );
    return( dispall );

} /* CheckCurrentColumn */
Ejemplo n.º 2
0
/*
 * RestoreCurrentFilePos
 */
void RestoreCurrentFilePos( void )
{
    vi_rc   rc;

    CurrentFile = oldFile[stackDepth];
    CurrentPos = oldCurrentPos[stackDepth];
    LeftTopPos = oldLeftTopPos[stackDepth];

    if( CurrentFile != NULL ) {
        rc = CGimmeLinePtr( CurrentPos.line, &CurrentFcb, &CurrentLine );
        if( rc == ERR_NO_SUCH_LINE ) {
            if( CurrentFile->fcbs.tail != NULL ) {
                CurrentPos.line = CurrentFile->fcbs.tail->end_line;
                CGimmeLinePtr( CurrentPos.line, &CurrentFcb, &CurrentLine );
            }
        }
    } else {
        CurrentFcb = NULL;
        CurrentLine = NULL;
    }

    ValidateCurrentColumn();
    VarAddRandC();
    stackDepth--;

} /* RestoreCurrentFilePos */
Ejemplo n.º 3
0
/*
 * SelectEnd - update selected region, moving to end of line
 */
vi_rc SelectEnd( void )
{
    if( !EditFlags.Dragging ) {
        startSelectedRegion( FALSE );
    }
    CurrentPos.column = MAX_INPUT_LINE;
    ValidateCurrentColumn();
    return( GoToColumnOnCurrentLine( CurrentPos.column ) );

} /* SelectEnd */