summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-12-27 19:00:24 +0100
committerBram Moolenaar <Bram@vim.org>2020-12-27 19:00:24 +0100
commite4862a0fe62261754daf476866ef2aa8586b716c (patch)
tree6c4e1bc963b5063852d6319ff0b4b013569f6593
parent179eb567b15a2ed5cf25b45d95d06c7a729d50bc (diff)
downloadvim-git-e4862a0fe62261754daf476866ef2aa8586b716c.tar.gz
patch 8.2.2231: when "--remote file" is used "file" is not reloadedv8.2.2231
Problem: When "--remote file" is used "file" is not reloaded. Solution: When a :drop command is used for a file that is already displayed in a window and it has not been changed, check if it needs to be reloaded. (closes #7560)
-rw-r--r--src/ex_cmds.c9
-rw-r--r--src/testdir/test_clientserver.vim9
-rw-r--r--src/version.c2
3 files changed, 20 insertions, 0 deletions
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index a2b60c988..734949c33 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -5171,6 +5171,15 @@ ex_drop(exarg_T *eap)
{
goto_tabpage_win(tp, wp);
curwin->w_arg_idx = 0;
+ if (!bufIsChanged(curbuf))
+ {
+ int save_ar = curbuf->b_p_ar;
+
+ // reload the file if it is newer
+ curbuf->b_p_ar = TRUE;
+ buf_check_timestamp(curbuf, FALSE);
+ curbuf->b_p_ar = save_ar;
+ }
return;
}
}
diff --git a/src/testdir/test_clientserver.vim b/src/testdir/test_clientserver.vim
index 604318421..bfad1b28d 100644
--- a/src/testdir/test_clientserver.vim
+++ b/src/testdir/test_clientserver.vim
@@ -73,6 +73,15 @@ func Test_client_server()
call assert_fails('call remote_send("XXX", ":let testvar = ''yes''\<CR>")', 'E241:')
+ call writefile(['one'], 'Xclientfile')
+ let cmd = GetVimProg() .. ' --servername ' .. name .. ' --remote Xclientfile'
+ call system(cmd)
+ call WaitForAssert({-> assert_equal('Xclientfile', remote_expr(name, "bufname()", "", 2))})
+ call WaitForAssert({-> assert_equal('one', remote_expr(name, "getline(1)", "", 2))})
+ call writefile(['one', 'two'], 'Xclientfile')
+ call system(cmd)
+ call WaitForAssert({-> assert_equal('two', remote_expr(name, "getline(2)", "", 2))})
+
" Expression evaluated locally.
if v:servername == ''
eval 'MYSELF'->remote_startserver()
diff --git a/src/version.c b/src/version.c
index 51a9e4299..02d03b734 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2231,
+/**/
2230,
/**/
2229,