mirror of
https://github.com/neovim/neovim.git
synced 2025-12-17 03:45:42 +00:00
refactor: buffer_ensure_loaded()
Cherry-picked from Vim patch 8.1.1612.
This commit is contained in:
@@ -175,6 +175,19 @@ static int read_buffer(int read_stdin, exarg_T *eap, int flags)
|
|||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Ensure buffer "buf" is loaded. Does not trigger the swap-exists action.
|
||||||
|
void buffer_ensure_loaded(buf_T *buf)
|
||||||
|
{
|
||||||
|
if (buf->b_ml.ml_mfp == NULL) {
|
||||||
|
aco_save_T aco;
|
||||||
|
|
||||||
|
aucmd_prepbuf(&aco, buf);
|
||||||
|
swap_exists_action = SEA_NONE;
|
||||||
|
open_buffer(false, NULL, 0);
|
||||||
|
aucmd_restbuf(&aco);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Open current buffer, that is: open the memfile and read the file into
|
/// Open current buffer, that is: open the memfile and read the file into
|
||||||
/// memory.
|
/// memory.
|
||||||
///
|
///
|
||||||
|
|||||||
@@ -302,13 +302,8 @@ void f_bufload(typval_T *argvars, typval_T *unused, EvalFuncData fptr)
|
|||||||
{
|
{
|
||||||
buf_T *buf = get_buf_arg(&argvars[0]);
|
buf_T *buf = get_buf_arg(&argvars[0]);
|
||||||
|
|
||||||
if (buf != NULL && buf->b_ml.ml_mfp == NULL) {
|
if (buf != NULL) {
|
||||||
aco_save_T aco;
|
buffer_ensure_loaded(buf);
|
||||||
|
|
||||||
aucmd_prepbuf(&aco, buf);
|
|
||||||
swap_exists_action = SEA_NONE;
|
|
||||||
open_buffer(false, NULL, 0);
|
|
||||||
aucmd_restbuf(&aco);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user