changeset 12110:7b3a3af7cefb v8.0.0935

patch 8.0.0935: cannot recognize a terminal buffer in :ls output commit https://github.com/vim/vim/commit/304b64c9e6957fa3f552e0540ca786139b39a1c4 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Aug 13 20:43:48 2017 +0200 patch 8.0.0935: cannot recognize a terminal buffer in :ls output Problem: Cannot recognize a terminal buffer in :ls output. Solution: Use R for a running job and F for a finished job.
author Christian Brabandt <cb@256bit.org>
date Sun, 13 Aug 2017 20:45:04 +0200
parents b1f1b87b48d2
children feca91869d87
files src/buffer.c src/version.c
diffstat 2 files changed, 21 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -3034,6 +3034,8 @@ buflist_list(exarg_T *eap)
     buf_T	*buf;
     int		len;
     int		i;
+    int		ro_char;
+    int		changed_char;
 
     for (buf = firstbuf; buf != NULL && !got_int; buf = buf->b_next)
     {
@@ -3060,6 +3062,21 @@ buflist_list(exarg_T *eap)
 	if (message_filtered(NameBuff))
 	    continue;
 
+	changed_char = (buf->b_flags & BF_READERR) ? 'x'
+					     : (bufIsChanged(buf) ? '+' : ' ');
+#ifdef FEAT_TERMINAL
+	if (term_job_running(buf->b_term))
+	{
+	    ro_char = 'R';
+	    changed_char = ' ';  /* bufIsChanged() returns TRUE to avoid
+				  * closing, but it's not actually changed. */
+	}
+	else if (buf->b_term != NULL)
+	    ro_char = 'F';
+	else
+#endif
+	    ro_char = !buf->b_p_ma ? '-' : (buf->b_p_ro ? '=' : ' ');
+
 	msg_putchar('\n');
 	len = vim_snprintf((char *)IObuff, IOSIZE - 20, "%3d%c%c%c%c%c \"%s\"",
 		buf->b_fnum,
@@ -3068,9 +3085,8 @@ buflist_list(exarg_T *eap)
 			(curwin->w_alt_fnum == buf->b_fnum ? '#' : ' '),
 		buf->b_ml.ml_mfp == NULL ? ' ' :
 			(buf->b_nwindows == 0 ? 'h' : 'a'),
-		!buf->b_p_ma ? '-' : (buf->b_p_ro ? '=' : ' '),
-		(buf->b_flags & BF_READERR) ? 'x'
-					    : (bufIsChanged(buf) ? '+' : ' '),
+		ro_char,
+		changed_char,
 		NameBuff);
 	if (len > IOSIZE - 20)
 	    len = IOSIZE - 20;
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    935,
+/**/
     934,
 /**/
     933,