@@ -361,11 +361,11 @@ function! s:current_compiler(...) abort
361
361
return get ((empty (&l: makeprg ) ? g: : b: ), ' current_compiler' , a: 0 ? a: 1 : ' ' )
362
362
endfunction
363
363
364
- function ! s: set_current_compiler (name) abort
365
- if empty (a: name )
364
+ function ! s: set_current_compiler (name, ... ) abort
365
+ if empty (a: name ) && ( ! a: 0 || a: 1 == # bufnr ( ' ' ))
366
366
unlet ! b: current_compiler
367
367
else
368
- let b: current_compiler = a: name
368
+ call setbufvar ( a: bufnr , ' current_compiler' , a: name)
369
369
endif
370
370
endfunction
371
371
@@ -925,6 +925,7 @@ function! dispatch#compile_command(bang, args, count, mods, ...) abort
925
925
let compiler = get (b: , ' current_compiler' , ' ' )
926
926
let after = ' '
927
927
let cd = s: cd_command ()
928
+ let bufnr = bufnr (' ' )
928
929
try
929
930
call s: set_current_compiler (get (request, ' compiler' , ' ' ))
930
931
let v: lnum = a: count > 0 ? a: count : 0
@@ -980,9 +981,9 @@ function! dispatch#compile_command(bang, args, count, mods, ...) abort
980
981
finally
981
982
exe s: doautocmd (' QuickFixCmdPost dispatch-make' )
982
983
let v: lnum = lnum
983
- let & l: efm = efm
984
- let & l: makeprg = makeprg
985
- call s: set_current_compiler (compiler )
984
+ call setbufvar ( bufnr , ' & efm' , efm )
985
+ call setbufvar ( bufnr , ' & makeprg' , makeprg )
986
+ call s: set_current_compiler (compiler , bufnr )
986
987
if exists (' cwd' )
987
988
execute cd dispatch#fnameescape (cwd)
988
989
endif
0 commit comments