# HG changeset patch # User Bram Moolenaar # Date 1289921151 -3600 # Node ID 266f9d9f5109421afcbc8169896b484ff7a19a8d # Parent 73dd10c18ec4eb2cc0857417fb8cc20f63dd42e1 updated for version 7.3.061 Problem: Remote ":drop" does not respect 'autochdir'. (Peter Odding) Solution: Don't restore the directory when 'autochdir' is set. (Benjamin Fritz) diff --git a/src/main.c b/src/main.c --- a/src/main.c +++ b/src/main.c @@ -3817,6 +3817,8 @@ build_drop_cmd(filec, filev, tabs, sendR /* Check if we have at least one argument. */ if (filec <= 0) mainerr_arg_missing((char_u *)filev[-1]); + + /* Temporarily cd to the current directory to handle relative file names. */ if (mch_dirname(cwd, MAXPATHL) != OK) return NULL; if ((p = vim_strsave_escaped_ext(cwd, @@ -3858,13 +3860,20 @@ build_drop_cmd(filec, filev, tabs, sendR ga_concat(&ga, p); vim_free(p); } + ga_concat(&ga, (char_u *)"|if exists('*inputrestore')|call inputrestore()|endif"); + /* The :drop commands goes to Insert mode when 'insertmode' is set, use * CTRL-\ CTRL-N again. */ - ga_concat(&ga, (char_u *)"|if exists('*inputrestore')|call inputrestore()|endif"); - ga_concat(&ga, (char_u *)":cd -"); + ga_concat(&ga, (char_u *)""); + + /* Switch back to the correct current directory (prior to temporary path + * switch) unless 'autochdir' is set, in which case it will already be + * correct after the :drop command. */ + ga_concat(&ga, (char_u *)":if !exists('+acd')||!&acd|cd -|endif"); + if (sendReply) - ga_concat(&ga, (char_u *)":call SetupRemoteReplies()"); - ga_concat(&ga, (char_u *)":"); + ga_concat(&ga, (char_u *)":call SetupRemoteReplies()"); + ga_concat(&ga, (char_u *)":"); if (inicmd != NULL) { /* Can't use after "inicmd", because an "startinsert" would cause diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -715,6 +715,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 61, +/**/ 60, /**/ 59,