comparison src/eval.c @ 10259:a09db7a4afe0 v8.0.0027

commit https://github.com/vim/vim/commit/dc0ccaee68ca24d10050117fbec757ad33590a17 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Oct 9 17:28:01 2016 +0200 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)
author Christian Brabandt <cb@256bit.org>
date Sun, 09 Oct 2016 17:30:04 +0200
parents ad6851687158
children 66f1b5bf3fa6
comparison
equal deleted inserted replaced
10258:a99c7e02b61a 10259:a09db7a4afe0
5620 } 5620 }
5621 } 5621 }
5622 else if (tv->v_type == VAR_CHANNEL) 5622 else if (tv->v_type == VAR_CHANNEL)
5623 { 5623 {
5624 channel_T *ch =tv->vval.v_channel; 5624 channel_T *ch =tv->vval.v_channel;
5625 int part; 5625 ch_part_T part;
5626 typval_T dtv; 5626 typval_T dtv;
5627 jsonq_T *jq; 5627 jsonq_T *jq;
5628 cbq_T *cq; 5628 cbq_T *cq;
5629 5629
5630 if (ch != NULL && ch->ch_copyID != copyID) 5630 if (ch != NULL && ch->ch_copyID != copyID)
5631 { 5631 {
5632 ch->ch_copyID = copyID; 5632 ch->ch_copyID = copyID;
5633 for (part = PART_SOCK; part <= PART_IN; ++part) 5633 for (part = PART_SOCK; part < PART_COUNT; ++part)
5634 { 5634 {
5635 for (jq = ch->ch_part[part].ch_json_head.jq_next; jq != NULL; 5635 for (jq = ch->ch_part[part].ch_json_head.jq_next; jq != NULL;
5636 jq = jq->jq_next) 5636 jq = jq->jq_next)
5637 set_ref_in_item(jq->jq_value, copyID, ht_stack, list_stack); 5637 set_ref_in_item(jq->jq_value, copyID, ht_stack, list_stack);
5638 for (cq = ch->ch_part[part].ch_cb_head.cq_next; cq != NULL; 5638 for (cq = ch->ch_part[part].ch_cb_head.cq_next; cq != NULL;