mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
patch 8.2.4685: when a swap file is found for a popup there is no dialog
Problem: When a swap file is found for a popup there is no dialog and the buffer is loaded anyway. Solution: Silently load the buffer read-only. (closes #10073)
This commit is contained in:
@@ -150,7 +150,8 @@ buffer_ensure_loaded(buf_T *buf)
|
||||
aco_save_T aco;
|
||||
|
||||
aucmd_prepbuf(&aco, buf);
|
||||
swap_exists_action = SEA_NONE;
|
||||
if (swap_exists_action != SEA_READONLY)
|
||||
swap_exists_action = SEA_NONE;
|
||||
open_buffer(FALSE, NULL, 0);
|
||||
aucmd_restbuf(&aco);
|
||||
}
|
||||
@@ -1053,10 +1054,12 @@ goto_buffer(
|
||||
int count)
|
||||
{
|
||||
bufref_T old_curbuf;
|
||||
int save_sea = swap_exists_action;
|
||||
|
||||
set_bufref(&old_curbuf, curbuf);
|
||||
|
||||
swap_exists_action = SEA_DIALOG;
|
||||
if (swap_exists_action == SEA_NONE)
|
||||
swap_exists_action = SEA_DIALOG;
|
||||
(void)do_buffer(*eap->cmd == 's' ? DOBUF_SPLIT : DOBUF_GOTO,
|
||||
start, dir, count, eap->forceit);
|
||||
if (swap_exists_action == SEA_QUIT && *eap->cmd == 's')
|
||||
@@ -1071,7 +1074,7 @@ goto_buffer(
|
||||
|
||||
// Quitting means closing the split window, nothing else.
|
||||
win_close(curwin, TRUE);
|
||||
swap_exists_action = SEA_NONE;
|
||||
swap_exists_action = save_sea;
|
||||
swap_exists_did_quit = TRUE;
|
||||
|
||||
#if defined(FEAT_EVAL)
|
||||
|
Reference in New Issue
Block a user