diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-11-29 20:09:07 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2022-11-29 20:25:42 +0800 |
commit | 273358651af6b6d172944cd1b1b41a9869d53b10 (patch) | |
tree | b0a6640b7a6f05a35dfdf601efa703ef109520b4 /src | |
parent | 89f0987bde8124f8fcbbcbf8320dbdabe0d69ba9 (diff) | |
download | rneovim-273358651af6b6d172944cd1b1b41a9869d53b10.tar.gz rneovim-273358651af6b6d172944cd1b1b41a9869d53b10.tar.bz2 rneovim-273358651af6b6d172944cd1b1b41a9869d53b10.zip |
refactor: buffer_ensure_loaded()
Cherry-picked from Vim patch 8.1.1612.
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/buffer.c | 13 | ||||
-rw-r--r-- | src/nvim/eval/buffer.c | 9 |
2 files changed, 15 insertions, 7 deletions
diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c index 6cb171978b..1ac19a4699 100644 --- a/src/nvim/buffer.c +++ b/src/nvim/buffer.c @@ -175,6 +175,19 @@ static int read_buffer(int read_stdin, exarg_T *eap, int flags) 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 /// memory. /// diff --git a/src/nvim/eval/buffer.c b/src/nvim/eval/buffer.c index 4816a955a8..72eb0f8d67 100644 --- a/src/nvim/eval/buffer.c +++ b/src/nvim/eval/buffer.c @@ -302,13 +302,8 @@ void f_bufload(typval_T *argvars, typval_T *unused, EvalFuncData fptr) { buf_T *buf = get_buf_arg(&argvars[0]); - if (buf != NULL && 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); + if (buf != NULL) { + buffer_ensure_loaded(buf); } } |