From df2c805c733b97f1fbcd30a3ed340bb0ff47e453 Mon Sep 17 00:00:00 2001
From: hjk <qtc-committer@nokia.com>
Date: Wed, 29 Apr 2009 15:29:03 +0200
Subject: [PATCH] fakevim: fix 'dd' when cursor is not in the first column

Was seemingly broken by the target columns changes. Autotest is added
now, too.
---
 src/plugins/fakevim/fakevimhandler.cpp | 4 +++-
 tests/auto/fakevim/main.cpp            | 4 ++++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index 2550f88eb80..035fdb67928 100644
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -877,10 +877,12 @@ EventResult FakeVimHandler::Private::handleCommandMode(int key, int unmodified,
         finishMovement();
     } else if (m_submode == DeleteSubMode && key == 'd') { // tested
         moveToStartOfLine();
+        setTargetColumn(); 
         setAnchor();
         moveDown(count());
         m_moveType = MoveLineWise;
-        finishMovement("d");
+        setDotCommand("%1dd", count());
+        finishMovement();
     } else if (m_submode == YankSubMode && key == 'y') {
         moveToStartOfLine();
         setAnchor();
diff --git a/tests/auto/fakevim/main.cpp b/tests/auto/fakevim/main.cpp
index fd5b06f0931..9e931526f92 100644
--- a/tests/auto/fakevim/main.cpp
+++ b/tests/auto/fakevim/main.cpp
@@ -265,6 +265,10 @@ void tst_FakeVim::command_dd()
     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("dd",  l[0] + "\n@" + lmid(7));
+    check(".",   l[0] + "\n@" + lmid(8));
+    check("dd",  l[0] + "\n@" + lmid(9));
 }
 
 void tst_FakeVim::command_dollar()
-- 
GitLab