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 ///