fakevim: fix 'ddp'

Was broken recently during the yank/paste rework.
This commit is contained in:
hjk
2009-08-18 09:46:42 +02:00
parent ec2b2330aa
commit 06140f9c7a
2 changed files with 21 additions and 7 deletions

View File

@@ -954,12 +954,15 @@ EventResult FakeVimHandler::Private::handleCommandMode(int key, int unmodified,
setDotCommand("%1cc", count());
finishMovement();
} else if (m_submode == DeleteSubMode && key == 'd') { // tested
moveToStartOfLine();
setTargetColumn();
setAnchor();
moveDown(count());
m_movetype = MoveLineWise;
int endPos = firstPositionInLine(lineForPosition(position()) + count() - 1);
Range range(position(), endPos, RangeLineMode);
yankText(range);
removeText(range);
setDotCommand("%1dd", count());
m_submode = NoSubMode;
moveToFirstNonBlankOnLine();
setTargetColumn();
finishMovement();
} else if (m_submode == YankSubMode && key == 'y') {
m_movetype = MoveLineWise;

View File

@@ -58,6 +58,7 @@ private slots:
// command mode
void command_cc();
void command_dd();
void command_dd_2();
void command_dollar();
void command_down();
void command_dfx_down();
@@ -277,13 +278,23 @@ void tst_FakeVim::command_dd()
move("j", "@" + l[1]);
check("dd", l[0] + "\n@" + lmid(2));
check(".", l[0] + "\n@" + lmid(3));
check("3dd", l[0] + "\n@" + lmid(6));
check("8l", l[0] + "\n QApp@lication app(argc, argv);\n" + lmid(7));
check("3dd", l[0] + "\n @QApplication app(argc, argv);\n" + lmid(7));
check("4l", l[0] + "\n QApp@lication app(argc, argv);\n" + lmid(7));
check("dd", l[0] + "\n@" + lmid(7));
check(".", l[0] + "\n@" + lmid(8));
check(".", l[0] + "\n @return app.exec();\n" + lmid(9));
check("dd", l[0] + "\n@" + lmid(9));
}
void tst_FakeVim::command_dd_2()
{
setup();
move("j", "@" + l[1]);
check("dd", l[0] + "\n@" + lmid(2));
check("p", l[0] + "\n" + l[2] + "\n@" + l[1] + "\n" + lmid(3));
return; // FIXME
check("u", l[0] + "\n@" + lmid(2));
}
void tst_FakeVim::command_dollar()
{
setup();