[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kate] /: vi-mode: fix crash when word lefting in insert mode
From:       Michal Humpula <michal.humpula () seznam ! cz>
Date:       2013-12-31 19:36:33
Message-ID: E1Vy57B-0006HY-AX () scm ! kde ! org
[Download RAW message or body]

Git commit adf91f91f5d4a93dfed3029196018818e025c559 by Michal Humpula.
Committed on 31/12/2013 at 19:34.
Pushed by michalhumpula into branch 'master'.

vi-mode: fix crash when word lefting in insert mode

M  +4    -0    part/vimode/kateviinsertmode.cpp
M  +1    -0    tests/vimode_test.cpp

http://commits.kde.org/kate/adf91f91f5d4a93dfed3029196018818e025c559

diff --git a/part/vimode/kateviinsertmode.cpp b/part/vimode/kateviinsertmode.cpp
index d7e55b1..e11eda5 100644
--- a/part/vimode/kateviinsertmode.cpp
+++ b/part/vimode/kateviinsertmode.cpp
@@ -183,6 +183,10 @@ bool KateViInsertMode::commandMoveOneWordLeft()
   Cursor c( m_view->cursorPosition() );
   c = findPrevWordStart( c.line(), c.column() );
 
+  if (!c.isValid()) {
+    c = Cursor(0,0);
+  }
+
   updateCursor( c );
   return true;
 }
diff --git a/tests/vimode_test.cpp b/tests/vimode_test.cpp
index 1087222..9bb6e1f 100644
--- a/tests/vimode_test.cpp
+++ b/tests/vimode_test.cpp
@@ -880,6 +880,7 @@ void ViModeTest::InsertModeTests() {
   // Testing ctrl-left and ctrl-right.
   DoTest("foo bar", "i\\ctrl-\\rightX\\esc", "foo Xbar");
   DoTest("foo bar", "i\\ctrl-\\right\\ctrl-\\rightX\\esc", "foo barX");
+  DoTest("foo", "\\endi\\ctrl-\\left\\ctrl-\\leftX", "Xfoo"); // we crashed here before
 
   // Enter/ Return.
   DoTest("", "ifoo\\enterbar", "foo\nbar");
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic