vim-patch:8.1.1711: listener callback called at the wrong moment

Problem:    Listener callback called at the wrong moment
Solution:   Invoke listeners before calling ml_delete_int(). (closes vim/vim#4657)

acf7544cf6

Co-authored-by: Bram Moolenaar <Bram@vim.org>
This commit is contained in:
Jan Edmund Lazo
2025-08-10 19:17:22 -04:00
parent c9b35360ac
commit 750c350be8

View File

@@ -2543,6 +2543,10 @@ int ml_replace_buf(buf_T *buf, linenr_T lnum, char *line, bool copy, bool noallo
int ml_delete(linenr_T lnum, bool message) int ml_delete(linenr_T lnum, bool message)
{ {
ml_flush_line(curbuf, false); ml_flush_line(curbuf, false);
if (lnum < 1 || lnum > curbuf->b_ml.ml_line_count) {
return FAIL;
}
return ml_delete_int(curbuf, lnum, message); return ml_delete_int(curbuf, lnum, message);
} }
@@ -2561,10 +2565,6 @@ int ml_delete_buf(buf_T *buf, linenr_T lnum, bool message)
static int ml_delete_int(buf_T *buf, linenr_T lnum, bool message) static int ml_delete_int(buf_T *buf, linenr_T lnum, bool message)
{ {
if (lnum < 1 || lnum > buf->b_ml.ml_line_count) {
return FAIL;
}
if (lowest_marked && lowest_marked > lnum) { if (lowest_marked && lowest_marked > lnum) {
lowest_marked--; lowest_marked--;
} }