summaryrefslogtreecommitdiff
path: root/src/eval.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-04-26 19:01:05 +0200
committerBram Moolenaar <Bram@vim.org>2016-04-26 19:01:05 +0200
commit437905c25d4cedfa16d0f87392e4a000d22362b7 (patch)
tree76d9b43fe93964d1510c7de864cebcf5c91a7fb4 /src/eval.c
parentc7baa43fdb3f5b001ba3e6eb05bf6e199698eeea (diff)
downloadvim-git-437905c25d4cedfa16d0f87392e4a000d22362b7.tar.gz
patch 7.4.1789v7.4.1789
Problem: Cannot use ch_read() in the close callback. Solution: Do not discard the channel if there is readahead. Do not discard readahead if there is a close callback.
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/eval.c b/src/eval.c
index 63ff2a029..7abb62be8 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -10305,7 +10305,7 @@ f_ceil(typval_T *argvars, typval_T *rettv)
static void
f_ch_close(typval_T *argvars, typval_T *rettv UNUSED)
{
- channel_T *channel = get_channel_arg(&argvars[0], TRUE);
+ channel_T *channel = get_channel_arg(&argvars[0], TRUE, FALSE, 0);
if (channel != NULL)
{
@@ -10320,7 +10320,7 @@ f_ch_close(typval_T *argvars, typval_T *rettv UNUSED)
static void
f_ch_getbufnr(typval_T *argvars, typval_T *rettv)
{
- channel_T *channel = get_channel_arg(&argvars[0], TRUE);
+ channel_T *channel = get_channel_arg(&argvars[0], FALSE, FALSE, 0);
rettv->vval.v_number = -1;
if (channel != NULL)
@@ -10347,7 +10347,7 @@ f_ch_getbufnr(typval_T *argvars, typval_T *rettv)
static void
f_ch_getjob(typval_T *argvars, typval_T *rettv)
{
- channel_T *channel = get_channel_arg(&argvars[0], TRUE);
+ channel_T *channel = get_channel_arg(&argvars[0], FALSE, FALSE, 0);
if (channel != NULL)
{
@@ -10364,7 +10364,7 @@ f_ch_getjob(typval_T *argvars, typval_T *rettv)
static void
f_ch_info(typval_T *argvars, typval_T *rettv UNUSED)
{
- channel_T *channel = get_channel_arg(&argvars[0], TRUE);
+ channel_T *channel = get_channel_arg(&argvars[0], FALSE, FALSE, 0);
if (channel != NULL && rettv_dict_alloc(rettv) != FAIL)
channel_info(channel, rettv->vval.v_dict);
@@ -10380,7 +10380,7 @@ f_ch_log(typval_T *argvars, typval_T *rettv UNUSED)
channel_T *channel = NULL;
if (argvars[1].v_type != VAR_UNKNOWN)
- channel = get_channel_arg(&argvars[1], TRUE);
+ channel = get_channel_arg(&argvars[1], FALSE, FALSE, 0);
ch_log(channel, (char *)msg);
}
@@ -10476,7 +10476,7 @@ f_ch_setoptions(typval_T *argvars, typval_T *rettv UNUSED)
channel_T *channel;
jobopt_T opt;
- channel = get_channel_arg(&argvars[0], TRUE);
+ channel = get_channel_arg(&argvars[0], FALSE, FALSE, 0);
if (channel == NULL)
return;
clear_job_options(&opt);
@@ -10498,7 +10498,7 @@ f_ch_status(typval_T *argvars, typval_T *rettv)
rettv->v_type = VAR_STRING;
rettv->vval.v_string = NULL;
- channel = get_channel_arg(&argvars[0], FALSE);
+ channel = get_channel_arg(&argvars[0], FALSE, FALSE, 0);
rettv->vval.v_string = vim_strsave((char_u *)channel_status(channel));
}
#endif