| To: vim_dev@googlegroups.com |
| Subject: Patch 7.4.678 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| 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 |
| |
| |
| |
| |
| |
| *** 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 *)"<C-\\><C-N>:cd "); |
| ! ga_concat(&ga, p); |
| ! vim_free(p); |
| |
| /* Call inputsave() so that a prompt for an encryption key works. */ |
| ga_concat(&ga, (char_u *)"<CR>: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 *)"<C-\\><C-N>:cd "); |
| ! ga_concat(&ga, cdp); |
| |
| /* Call inputsave() so that a prompt for an encryption key works. */ |
| ga_concat(&ga, (char_u *)"<CR>: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<CR>"); |
| |
| if (sendReply) |
| ga_concat(&ga, (char_u *)":call SetupRemoteReplies()<CR>"); |
| --- 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<CR>"); |
| ! vim_free(cdp); |
| |
| if (sendReply) |
| ga_concat(&ga, (char_u *)":call SetupRemoteReplies()<CR>"); |
| |
| |
| |
| *** 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 /// |