mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	vim-patch:8.1.0425: ml_get error and crash with appendbufline()
Problem: ml_get error and crash with appendbufline(). (Masashi Iizuka) Solution: Set per-window buffer info. (Hirohito Higashi, closes vim/vim#3455)9cea87c577Co-authored-by: Bram Moolenaar <Bram@vim.org> (cherry picked from commitc6f0a19206)
This commit is contained in:
		 zeertzjq
					zeertzjq
				
			
				
					committed by
					
						![github-actions[bot]](/assets/img/avatar_default.png) github-actions[bot]
						github-actions[bot]
					
				
			
			
				
	
			
			
			![github-actions[bot]](/assets/img/avatar_default.png) github-actions[bot]
						github-actions[bot]
					
				
			
						parent
						
							30db74de66
						
					
				
				
					commit
					a65c4be2de
				
			| @@ -1728,6 +1728,9 @@ void enter_buffer(buf_T *buf) | ||||
|   // mark cursor position as being invalid | ||||
|   curwin->w_valid = 0; | ||||
|  | ||||
|   buflist_setfpos(curbuf, curwin, curbuf->b_last_cursor.mark.lnum, | ||||
|                   curbuf->b_last_cursor.mark.col, true); | ||||
|  | ||||
|   // Make sure the buffer is loaded. | ||||
|   if (curbuf->b_ml.ml_mfp == NULL) {    // need to load the file | ||||
|     // If there is no filetype, allow for detecting one.  Esp. useful for | ||||
|   | ||||
| @@ -158,6 +158,33 @@ func Test_appendbufline() | ||||
|   exe "bwipe! " . b | ||||
| endfunc | ||||
|  | ||||
| func Test_appendbufline_no_E315() | ||||
|   let after = [ | ||||
|     \ 'set stl=%f ls=2', | ||||
|     \ 'new', | ||||
|     \ 'let buf = bufnr("%")', | ||||
|     \ 'quit', | ||||
|     \ 'vsp', | ||||
|     \ 'exec "buffer" buf', | ||||
|     \ 'wincmd w', | ||||
|     \ 'call appendbufline(buf, 0, "abc")', | ||||
|     \ 'redraw', | ||||
|     \ 'while getbufline(buf, 1)[0] =~ "^\\s*$"', | ||||
|     \ '  sleep 10m', | ||||
|     \ 'endwhile', | ||||
|     \ 'au VimLeavePre * call writefile([v:errmsg], "Xerror")', | ||||
|     \ 'au VimLeavePre * call writefile(["done"], "Xdone")', | ||||
|     \ 'qall!', | ||||
|     \ ] | ||||
|   if !RunVim([], after, '--clean') | ||||
|     return | ||||
|   endif | ||||
|   call assert_notmatch("^E315:", readfile("Xerror")[0]) | ||||
|   call assert_equal("done", readfile("Xdone")[0]) | ||||
|   call delete("Xerror") | ||||
|   call delete("Xdone") | ||||
| endfunc | ||||
|  | ||||
| func Test_deletebufline() | ||||
|   new | ||||
|   let b = bufnr('%') | ||||
|   | ||||
		Reference in New Issue
	
	Block a user