From 2d4a37ebab354afb94dfe600b302d8a2b1f2d889 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Sat, 29 Jun 2019 21:03:38 +0200 Subject: :ls : show "R", "F" for terminal-jobs #10370 This matches Vim behavior. From `:help :ls` : R a terminal buffer with a running job F a terminal buffer with a finished job ? a terminal buffer without a job: `:terminal NONE` TODO: implement `:terminal NONE`. ref #10349 --- src/nvim/buffer.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/nvim/buffer.c') diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c index 043ae420cd..5678f518f5 100644 --- a/src/nvim/buffer.c +++ b/src/nvim/buffer.c @@ -29,6 +29,7 @@ #include "nvim/api/vim.h" #include "nvim/ascii.h" #include "nvim/assert.h" +#include "nvim/channel.h" #include "nvim/vim.h" #include "nvim/buffer.h" #include "nvim/charset.h" @@ -2608,9 +2609,10 @@ void buflist_list(exarg_T *eap) const int changed_char = (buf->b_flags & BF_READERR) ? 'x' : (bufIsChanged(buf) ? '+' : ' '); - const int ro_char = !MODIFIABLE(buf) - ? '-' - : (buf->b_p_ro ? '=' : ' '); + int ro_char = !MODIFIABLE(buf) ? '-' : (buf->b_p_ro ? '=' : ' '); + if (buf->terminal) { + ro_char = channel_job_running((uint64_t)buf->b_p_channel) ? 'R' : 'F'; + } msg_putchar('\n'); len = vim_snprintf( -- cgit