diff src/buffer.c @ 9149:18bbf31015c2 v7.4.1858

commit https://github.com/vim/vim/commit/b127cfd75f59e82580df395b6e2c009774644b16 Author: Bram Moolenaar <Bram@vim.org> Date: Sun May 29 16:24:50 2016 +0200 patch 7.4.1858 Problem: When a channel writes to a buffer it doesn't find a buffer by the short name but re-uses it anyway. Solution: Find buffer also by the short name.
author Christian Brabandt <cb@256bit.org>
date Sun, 29 May 2016 16:30:07 +0200
parents 97a9538c37ff
children ea504064c996
line wrap: on
line diff
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1649,6 +1649,7 @@ do_autochdir(void)
  * If (flags & BLN_CURBUF) is TRUE, may use current buffer.
  * If (flags & BLN_LISTED) is TRUE, add new buffer to buffer list.
  * If (flags & BLN_DUMMY) is TRUE, don't count it as a real buffer.
+ * If (flags & BLN_NEW) is TRUE, don't use an existing buffer.
  * This is the ONLY way to create a new buffer.
  */
 static int  top_file_num = 1;		/* highest file number */
@@ -1676,7 +1677,7 @@ buflist_new(
     if (sfname == NULL || mch_stat((char *)sfname, &st) < 0)
 	st.st_dev = (dev_T)-1;
 #endif
-    if (ffname != NULL && !(flags & BLN_DUMMY) && (buf =
+    if (ffname != NULL && !(flags & (BLN_DUMMY | BLN_NEW)) && (buf =
 #ifdef UNIX
 		buflist_findname_stat(ffname, &st)
 #else