summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-01-24 16:27:46 +0100
committerBram Moolenaar <Bram@vim.org>2019-01-24 16:27:46 +0100
commit091806d6f0f0481b88daa7d3a24006e54c25cd6f (patch)
treeed1848741ac3469d35d35457ee7a809a434752f3
parent9e79ccbe9ce6fce18939c7ac2e5ad059a3bd1951 (diff)
patch 8.1.0808: MS-Windows: build error with GUIv8.1.0808
Problem: MS-Windows: build error with GUI. Solution: Remove "static".
-rw-r--r--src/gui_w32.c2
-rw-r--r--src/version.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/src/gui_w32.c b/src/gui_w32.c
index 197c8f4d19..c5e58790d2 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -3552,7 +3552,7 @@ convert_filterW(char_u *s)
* initdir - directory in which to open the browser (NULL = current dir)
* filter - Filter for matched files to choose from.
*/
- static char_u *
+ char_u *
gui_mch_browse(
int saving,
char_u *title,
diff --git a/src/version.c b/src/version.c
index da4b43c776..da248974b7 100644
--- a/src/version.c
+++ b/src/version.c
@@ -792,6 +792,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 808,
+/**/
807,
/**/
806,
tty_name;
+ if (name1 != NULL)
+ *name1 = NULL;
+ if (name2 != NULL)
+ *name2 = NULL;
+
*pty_master_fd = mch_openpty(&tty_name); // open pty
if (*pty_master_fd >= 0)
{
@@ -4219,8 +4225,13 @@ open_pty(int *pty_master_fd, int *pty_slave_fd, char_u **namep)
close(*pty_master_fd);
*pty_master_fd = -1;
}
- else if (namep != NULL)
- *namep = vim_strsave((char_u *)tty_name);
+ else
+ {
+ if (name1 != NULL)
+ *name1 = vim_strsave((char_u *)tty_name);
+ if (name2 != NULL)
+ *name2 = vim_strsave((char_u *)tty_name);
+ }
}
}
#endif
@@ -4513,7 +4524,7 @@ mch_call_shell_fork(
* If the slave can't be opened, close the master pty.
*/
if (p_guipty && !(options & (SHELL_READ|SHELL_WRITE)))
- open_pty(&pty_master_fd, &pty_slave_fd, NULL);
+ open_pty(&pty_master_fd, &pty_slave_fd, NULL, NULL);
/*
* If not opening a pty or it didn't work, try using pipes.
*/
@@ -5352,13 +5363,10 @@ mch_job_start(char **argv, job_T *job, jobopt_T *options, int is_terminal)
if (options->jo_pty
&& (!(use_file_for_in || use_null_for_in)
- || !(use_file_for_in || use_null_for_out)
+ || !(use_file_for_out || use_null_for_out)
|| !(use_out_for_err || use_file_for_err || use_null_for_err)))
- {
- open_pty(&pty_master_fd, &pty_slave_fd, &job->jv_tty_out);
- if (job->jv_tty_out != NULL)
- job->jv_tty_in = vim_strsave(job->jv_tty_out);
- }
+ open_pty(&pty_master_fd, &pty_slave_fd,
+ &job->jv_tty_out, &job->jv_tty_in);
/* TODO: without the channel feature connect the child to /dev/null? */
/* Open pipes for stdin, stdout, stderr. */
@@ -5834,9 +5842,7 @@ mch_create_pty_channel(job_T *job, jobopt_T *options)
int pty_slave_fd = -1;
channel_T *channel;
- open_pty(&pty_master_fd, &pty_slave_fd, &job->jv_tty_out);
- if (job->jv_tty_out != NULL)
- job->jv_tty_in = vim_strsave(job->jv_tty_out);
+ open_pty(&pty_master_fd, &pty_slave_fd, &job->jv_tty_out, &job->jv_tty_in);
close(pty_slave_fd);
channel = add_channel();
diff --git a/src/testdir/test_channel.vim b/src/testdir/test_channel.vim
index becd5484f9..e263115392 100644
--- a/src/testdir/test_channel.vim
+++ b/src/testdir/test_channel.vim
@@ -2040,3 +2040,55 @@ func Test_job_exitval_and_termsig()
call assert_equal(-1, info.exitval)
call assert_equal("term", info.termsig)
endfunc
+
+func Test_job_tty_in_out()
+ if !has('job') || !has('unix')
+ return
+ endif
+
+ call writefile(['test'], 'Xtestin')
+ let in_opts = [{},
+ \ {'in_io': 'null'},
+ \ {'in_io': 'file', 'in_name': 'Xtestin'}]
+ let out_opts = [{},
+ \ {'out_io': 'null'},
+ \ {'out_io': 'file', 'out_name': 'Xtestout'}]
+ let err_opts = [{},
+ \ {'err_io': 'null'},
+ \ {'err_io': 'file', 'err_name': 'Xtesterr'},
+ \ {'err_io': 'out'}]
+ let opts = []
+
+ for in_opt in in_opts
+ let x = copy(in_opt)
+ for out_opt in out_opts
+ call extend(x, out_opt)
+ for err_opt in err_opts
+ call extend(x, err_opt)
+ let opts += [extend({'pty': 1}, x)]
+ endfor
+ endfor
+ endfor
+
+ for opt in opts
+ let job = job_start('echo', opt)
+ let info = job_info(job)
+ let msg = printf('option={"in_io": "%s", "out_io": "%s", "err_io": "%s"}',
+ \ get(opt, 'in_io', 'tty'),
+ \ get(opt, 'out_io', 'tty'),
+ \ get(opt, 'err_io', 'tty'))
+
+ if !has_key(opt, 'in_io') || !has_key(opt, 'out_io') || !has_key(opt, 'err_io')
+ call assert_notequal('', info.tty_in, msg)
+ else
+ call assert_equal('', info.tty_in, msg)
+ endif
+ call assert_equal(info.tty_in, info.tty_out, msg)
+
+ call WaitForAssert({-> assert_equal('dead', job_status(job))})
+ endfor
+
+ call delete('Xtestin')
+ call delete('Xtestout')
+ call delete('Xtesterr')
+endfunc
diff --git a/src/version.c b/src/version.c
index a990f2c3c1..c865fc0b13 100644
--- a/src/version.c
+++ b/src/version.c
@@ -784,6 +784,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 890,
+/**/
889,
/**/
888,