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.
diff --git a/src/buffer.c b/src/buffer.c
index b0e3a22..0bbb1f4 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1649,6 +1649,7 @@
* 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 @@
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