/* * DeleteBlockFromCurrentLine - remove chars from line, leave result in work line */ vi_rc DeleteBlockFromCurrentLine( int scol, int ecol, int saveb_flag ) { int i; /* * check if we can do this on the current line */ if( scol > ecol ) { i = scol; scol = ecol; ecol = i; } if( scol < 0 || ecol >= CurrentLine->len ) { return( ERR_CANNOT_DELETE_CHAR ); } if( saveb_flag ) { AddLineToSavebuf( CurrentLine->data, scol, ecol ); } /* * remove chars */ GetCurrentLine(); for( i = ecol + 1; i <= CurrentLine->len; i++ ) { WorkLine->data[scol + (i - (ecol + 1))] = WorkLine->data[i]; } WorkLine->len -= ecol - scol + 1; return( ERR_NO_ERR ); } /* DeleteBlockFromCurrentLine */
vi_rc Yank( range *r ) { vi_rc rc; if( r->line_based ) { rc = YankLineRange( r->start.line, r->end.line ); } else if( r->start.line == r->end.line ) { assert( CurrentPos.line == r->start.line ); AddLineToSavebuf( CurrentLine->data, r->start.column, r->end.column ); #ifdef __WIN__ if( LastSavebuf == 0 ) { Message1( "%d characters copied into the clipboard", r->end.column - r->start.column + 1 ); } else { #endif Message1( "%d %s yanked into buffer %c", r->end.column - r->start.column + 1, MSG_CHARACTERS, LastSavebuf ); #ifdef __WIN__ } #endif rc = DO_NOT_CLEAR_MESSAGE_WINDOW; } else { rc = Cut( r->start.line, r->start.column, r->end.line, r->end.column, false ); } if( rc != ERR_NO_ERR ) { rc = DO_NOT_CLEAR_MESSAGE_WINDOW; } return( rc ); } /* Yank */