39
39
bool KateViReplaceMode::commandInsertFromLine( int offset )
41
KTextEditor::Cursor c( m_view->cursorPosition() );
42
KTextEditor::Cursor c2( c.line(), c.column()+1 );
41
KTextEditor::Cursor c(m_view->cursorPosition());
42
KTextEditor::Cursor c2(c.line(), c.column() + 1);
44
if ( c.line()+offset > doc()->lines() || c.line()+offset < 0 ) {
44
if (c.line() + offset >= doc()->lines() || c.line() + offset < 0) {
48
QString line = doc()->line( c.line()+offset );
48
QString line = doc()->line(c.line() + offset);
49
49
int tabWidth = doc()->config()->tabWidth();
50
QChar ch = getCharAtVirtualColumn( line, m_view->virtualCursorColumn(), tabWidth );
51
QChar removed = doc()->line( c.line() ).at( c.column() );
50
QChar ch = getCharAtVirtualColumn(line, m_view->virtualCursorColumn(), tabWidth);
53
if ( ch == QChar::Null ) {
52
if (ch == QChar::Null) {
57
if ( doc()->replaceText( KTextEditor::Range( c, c2 ), ch ) ) {
58
overwrittenChar( removed );
56
if (c.column() == doc()->lineLength(c.line())) {
57
return doc()->insertText(c, ch);
60
QChar removed = doc()->line(c.line()).at(c.column());
61
if (doc()->replaceText(KTextEditor::Range(c, c2), ch)) {
62
overwrittenChar(removed);