changeset 6318:5e998fc610d5 v7.4.492

updated for version 7.4.492 Problem: In Insert mode, after inserting a newline that inserts a comment leader, CTRL-O moves to the right. (ZyX) Issue 57. Solution: Correct the condition for moving the cursor back to the NUL. (Christian Brabandt)
author Bram Moolenaar <bram@vim.org>
date Fri, 31 Oct 2014 19:20:36 +0100
parents 7bcb17fdf87a
children 6524c7a6ab2c
files src/edit.c src/testdir/test4.in src/testdir/test4.ok src/version.c
diffstat 4 files changed, 14 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/edit.c
+++ b/src/edit.c
@@ -6916,8 +6916,12 @@ stop_insert(end_insert_pos, esc, nomove)
 	    }
 	    if (curwin->w_cursor.lnum != tpos.lnum)
 		curwin->w_cursor = tpos;
-	    else if (cc != NUL)
-		++curwin->w_cursor.col;	/* put cursor back on the NUL */
+	    else
+	    {
+		tpos.col++;
+		if (cc != NUL && gchar_pos(&tpos) == NUL)
+		    ++curwin->w_cursor.col;	/* put cursor back on the NUL */
+	    }
 
 	    /* <C-S-Right> may have started Visual mode, adjust the position for
 	     * deleted characters. */
--- a/src/testdir/test4.in
+++ b/src/testdir/test4.in
@@ -17,6 +17,9 @@ othis should be auto-indented
 G?this is a
 othis should be in column 1:wq " append text without autoindent to Xxx
 G:r Xxx             " include Xxx in the current file
+:set fo+=r          " issue #57 do not move cursor on <c-o> when autoindent is set
+Go# abcdef2hi
+d0o# abcdef2hid0
 :?startstart?,$w! test.out
 :qa!
 ENDTEST
--- a/src/testdir/test4.ok
+++ b/src/testdir/test4.ok
@@ -15,3 +15,6 @@ vim: set noai :
 	this is a test
 this should be in column 1
 end of test file Xxx
+# abc
+def
+def
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    492,
+/**/
     491,
 /**/
     490,