mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	vim-patch:8.2.4513: window-local directory is not applied if 'acd' fails
Problem:    Window-local directory is not applied if 'acd' fails.
Solution:   Don't call do_autochdir(). (closes vim/vim#9891)
b29ae15977
			
			
This commit is contained in:
		| @@ -90,22 +90,27 @@ func Test_verbose_pwd() | ||||
|   set acd | ||||
|   wincmd w | ||||
|   call assert_match('\[autochdir\].*testdir$', execute('verbose pwd')) | ||||
|   execute 'lcd' cwd | ||||
|   call assert_match('\[window\].*testdir$', execute('verbose pwd')) | ||||
|   execute 'tcd' cwd | ||||
|   call assert_match('\[tabpage\].*testdir$', execute('verbose pwd')) | ||||
|   execute 'cd' cwd | ||||
|   call assert_match('\[global\].*testdir$', execute('verbose pwd')) | ||||
|   execute 'lcd' cwd | ||||
|   call assert_match('\[window\].*testdir$', execute('verbose pwd')) | ||||
|   edit | ||||
|   call assert_match('\[autochdir\].*testdir$', execute('verbose pwd')) | ||||
|   enew | ||||
|   wincmd w | ||||
|   call assert_match('\[autochdir\].*testdir[/\\]Xautodir', execute('verbose pwd')) | ||||
|   wincmd w | ||||
|   call assert_match('\[window\].*testdir$', execute('verbose pwd')) | ||||
|   wincmd w | ||||
|   call assert_match('\[autochdir\].*testdir[/\\]Xautodir', execute('verbose pwd')) | ||||
|   set noacd | ||||
|   call assert_match('\[autochdir\].*testdir[/\\]Xautodir', execute('verbose pwd')) | ||||
|   wincmd w | ||||
|   call assert_match('\[autochdir\].*testdir[/\\]Xautodir', execute('verbose pwd')) | ||||
|   call assert_match('\[window\].*testdir$', execute('verbose pwd')) | ||||
|   execute 'cd' cwd | ||||
|   call assert_match('\[global\].*testdir', execute('verbose pwd')) | ||||
|   call assert_match('\[global\].*testdir$', execute('verbose pwd')) | ||||
|   wincmd w | ||||
|   call assert_match('\[window\].*testdir[/\\]Xautodir', execute('verbose pwd')) | ||||
|  | ||||
|   | ||||
| @@ -4680,10 +4680,6 @@ static void win_enter_ext(win_T *const wp, const int flags) | ||||
| /// Used after making another window the current one: change directory if needed. | ||||
| void fix_current_dir(void) | ||||
| { | ||||
|   if (p_acd) { | ||||
|     do_autochdir(); | ||||
|     return; | ||||
|   } | ||||
|   // New directory is either the local directory of the window, tab or NULL. | ||||
|   char *new_dir = (char *)(curwin->w_localdir | ||||
|                            ? curwin->w_localdir : curtab->tp_localdir); | ||||
|   | ||||
| @@ -64,7 +64,7 @@ describe('autochdir behavior', function() | ||||
|   it('win_execute() does not change directory', function() | ||||
|     local subdir = 'Xfile' | ||||
|     command('cd '..dir) | ||||
|     command('set autochdir') | ||||
|     command('set acd') | ||||
|     call('mkdir', subdir) | ||||
|     local winid = eval('win_getid()') | ||||
|     command('new '..subdir..'/file') | ||||
| @@ -85,23 +85,28 @@ describe('autochdir behavior', function() | ||||
|     command('split '..subdir..'/local.txt') | ||||
|     command('lcd '..subdir) | ||||
|     matches('%[window%].*'..dir..'[/\\]'..subdir, exec_capture('verbose pwd')) | ||||
|     command('set autochdir') | ||||
|     command('set acd') | ||||
|     command('wincmd w') | ||||
|     matches('%[autochdir%].*'..dir, exec_capture('verbose pwd')) | ||||
|     command('lcd '..cwd) | ||||
|     matches('%[window%].*'..dir, exec_capture('verbose pwd')) | ||||
|     command('tcd '..cwd) | ||||
|     matches('%[tabpage%].*'..dir, exec_capture('verbose pwd')) | ||||
|     command('cd '..cwd) | ||||
|     matches('%[global%].*'..dir, exec_capture('verbose pwd')) | ||||
|     command('lcd '..cwd) | ||||
|     matches('%[window%].*'..dir, exec_capture('verbose pwd')) | ||||
|     command('edit') | ||||
|     matches('%[autochdir%].*'..dir, exec_capture('verbose pwd')) | ||||
|     command('enew') | ||||
|     command('wincmd w') | ||||
|     matches('%[autochdir%].*'..dir..'[/\\]'..subdir, exec_capture('verbose pwd')) | ||||
|     command('set noautochdir') | ||||
|     matches('%[autochdir%].*'..dir..'[/\\]'..subdir, exec_capture('verbose pwd')) | ||||
|     command('wincmd w') | ||||
|     matches('%[window%].*'..dir, exec_capture('verbose pwd')) | ||||
|     command('wincmd w') | ||||
|     matches('%[autochdir%].*'..dir..'[/\\]'..subdir, exec_capture('verbose pwd')) | ||||
|     command('set noacd') | ||||
|     matches('%[autochdir%].*'..dir..'[/\\]'..subdir, exec_capture('verbose pwd')) | ||||
|     command('wincmd w') | ||||
|     matches('%[window%].*'..dir, exec_capture('verbose pwd')) | ||||
|     command('cd '..cwd) | ||||
|     matches('%[global%].*'..dir, exec_capture('verbose pwd')) | ||||
|     command('wincmd w') | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 zeertzjq
					zeertzjq