patch 8.0.0027
Problem: A channel is closed when reading on stderr or stdout fails, but
there may still be something to read on another part.
Solution: Turn ch_to_be_closed into a bitfield. (Ozaki Kiichi)
diff --git a/src/eval.c b/src/eval.c
index 3b5abe9..18eb879 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -5622,7 +5622,7 @@
else if (tv->v_type == VAR_CHANNEL)
{
channel_T *ch =tv->vval.v_channel;
- int part;
+ ch_part_T part;
typval_T dtv;
jsonq_T *jq;
cbq_T *cq;
@@ -5630,7 +5630,7 @@
if (ch != NULL && ch->ch_copyID != copyID)
{
ch->ch_copyID = copyID;
- for (part = PART_SOCK; part <= PART_IN; ++part)
+ for (part = PART_SOCK; part < PART_COUNT; ++part)
{
for (jq = ch->ch_part[part].ch_json_head.jq_next; jq != NULL;
jq = jq->jq_next)