changeset 6838:0229cfffc560 v7.4.740

patch 7.4.740 Problem: ":1quit" works like ":.quit". (Bohr Shaw) Solution: Don't exit Vim when a range is specified. (Christian Brabandt)
author Bram Moolenaar <bram@vim.org>
date Fri, 19 Jun 2015 12:43:07 +0200
parents 1b360286379d
children ef1bb1f160c5
files src/ex_docmd.c src/testdir/test13.in src/testdir/test13.ok src/version.c
diffstat 4 files changed, 17 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -7092,7 +7092,14 @@ ex_quit(eap)
     else
     {
 #ifdef FEAT_WINDOWS
-	if (only_one_window())	    /* quit last window */
+	/* quit last window
+	 * Note: only_one_window() returns true, even so a help window is
+	 * still open. In that case only quit, if no address has been
+	 * specified. Example:
+	 * :h|wincmd w|1q     - don't quit
+	 * :h|wincmd w|q      - quit
+	 */
+	if (only_one_window() && (firstwin == lastwin || eap->addr_count == 0))
 #endif
 	    getout(0);
 #ifdef FEAT_WINDOWS
--- a/src/testdir/test13.in
+++ b/src/testdir/test13.in
@@ -48,6 +48,12 @@ otestje3
 :au BufWipeout Xtestje1 buf Xtestje1
 :bwipe
 :w >>test.out
+:only
+:help
+:wincmd w
+:1quit
+:$put ='Final line'
+:$w >>test.out
 :qa!
 ENDTEST
 
--- a/src/testdir/test13.ok
+++ b/src/testdir/test13.ok
@@ -28,3 +28,4 @@ testje1
 	contents
 	contents
 end of testfile
+Final line
--- 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 */
 /**/
+    740,
+/**/
     739,
 /**/
     738,