diff --git a/7.4.678 b/7.4.678 new file mode 100644 index 0000000..2410306 --- /dev/null +++ b/7.4.678 @@ -0,0 +1,120 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.678 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.678 +Problem: When using --remote the directory may end up being wrong. +Solution: Use localdir() to find out what to do. (Xaizek) +Files: src/main.c + + +*** ../vim-7.4.677/src/main.c 2015-02-10 19:26:58.918748560 +0100 +--- src/main.c 2015-03-24 16:39:38.547390528 +0100 +*************** +*** 3914,3919 **** +--- 3914,3920 ---- + int i; + char_u *inicmd = NULL; + char_u *p; ++ char_u *cdp; + char_u *cwd; + + if (filec > 0 && filev[0][0] == '+') +*************** +*** 3935,3941 **** + vim_free(cwd); + return NULL; + } +! p = vim_strsave_escaped_ext(cwd, + #ifdef BACKSLASH_IN_FILENAME + "", /* rem_backslash() will tell what chars to escape */ + #else +--- 3936,3942 ---- + vim_free(cwd); + return NULL; + } +! cdp = vim_strsave_escaped_ext(cwd, + #ifdef BACKSLASH_IN_FILENAME + "", /* rem_backslash() will tell what chars to escape */ + #else +*************** +*** 3943,3954 **** + #endif + '\\', TRUE); + vim_free(cwd); +! if (p == NULL) + return NULL; + ga_init2(&ga, 1, 100); + ga_concat(&ga, (char_u *)":cd "); +! ga_concat(&ga, p); +! vim_free(p); + + /* Call inputsave() so that a prompt for an encryption key works. */ + ga_concat(&ga, (char_u *)":if exists('*inputsave')|call inputsave()|endif|"); +--- 3944,3954 ---- + #endif + '\\', TRUE); + vim_free(cwd); +! if (cdp == NULL) + return NULL; + ga_init2(&ga, 1, 100); + ga_concat(&ga, (char_u *)":cd "); +! ga_concat(&ga, cdp); + + /* Call inputsave() so that a prompt for an encryption key works. */ + ga_concat(&ga, (char_u *)":if exists('*inputsave')|call inputsave()|endif|"); +*************** +*** 3984,3991 **** + + /* 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()"); +--- 3984,4004 ---- + + /* 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. With line breaks and spaces: +! * if !exists('+acd') || !&acd +! * if haslocaldir() +! * cd - +! * lcd - +! * elseif getcwd() ==# "current path" +! * cd - +! * endif +! * endif +! */ +! ga_concat(&ga, (char_u *)":if !exists('+acd')||!&acd|if haslocaldir()|"); +! ga_concat(&ga, (char_u *)"cd -|lcd -|elseif getcwd() ==# \""); +! ga_concat(&ga, cdp); +! ga_concat(&ga, (char_u *)"\"|cd -|endif|endif"); +! vim_free(cdp); + + if (sendReply) + ga_concat(&ga, (char_u *)":call SetupRemoteReplies()"); +*** ../vim-7.4.677/src/version.c 2015-03-24 15:14:19.189039146 +0100 +--- src/version.c 2015-03-24 16:32:25.535659083 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 678, + /**/ + +-- +Michael: There is no such thing as a dump question. +Bernard: Sure there is. For example "what is a core dump?" + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org ///