patch 8.2.0853: ml_delete() often called with FALSE argument
Problem: ml_delete() often called with FALSE argument.
Solution: Use ml_delete_flags(x, ML_DEL_MESSAGE) when argument is TRUE.
diff --git a/src/buffer.c b/src/buffer.c
index a657e72..df92ecd 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -103,13 +103,13 @@
{
// Delete the binary lines.
while (--line_count >= 0)
- ml_delete((linenr_T)1, FALSE);
+ ml_delete((linenr_T)1);
}
else
{
// Delete the converted lines.
while (curbuf->b_ml.ml_line_count > line_count)
- ml_delete(line_count, FALSE);
+ ml_delete(line_count);
}
// Put the cursor on the first line.
curwin->w_cursor.lnum = 1;
diff --git a/src/change.c b/src/change.c
index 45d6704..3a823b6 100644
--- a/src/change.c
+++ b/src/change.c
@@ -2317,7 +2317,7 @@
if (curbuf->b_ml.ml_flags & ML_EMPTY) // nothing to delete
break;
- ml_delete(first, TRUE);
+ ml_delete_flags(first, ML_DEL_MESSAGE);
++n;
// If we delete the last line in the file, stop
diff --git a/src/diff.c b/src/diff.c
index 16389fd..88dc8a6 100644
--- a/src/diff.c
+++ b/src/diff.c
@@ -2764,7 +2764,7 @@
{
// remember deleting the last line of the buffer
buf_empty = curbuf->b_ml.ml_line_count == 1;
- ml_delete(lnum, FALSE);
+ ml_delete(lnum);
--added;
}
for (i = 0; i < dp->df_count[idx_from] - start_skip - end_skip; ++i)
@@ -2786,7 +2786,7 @@
// Added the first line into an empty buffer, need to
// delete the dummy empty line.
buf_empty = FALSE;
- ml_delete((linenr_T)2, FALSE);
+ ml_delete((linenr_T)2);
}
}
}
diff --git a/src/evalbuffer.c b/src/evalbuffer.c
index adbbca3..df5270a 100644
--- a/src/evalbuffer.c
+++ b/src/evalbuffer.c
@@ -513,7 +513,7 @@
}
for (lnum = first; lnum <= last; ++lnum)
- ml_delete(first, TRUE);
+ ml_delete_flags(first, ML_DEL_MESSAGE);
FOR_ALL_TAB_WINDOWS(tp, wp)
if (wp->w_buffer == buf)
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 777f149..ac55c26 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -633,7 +633,7 @@
// delete the original lines if appending worked
if (i == count)
for (i = 0; i < count; ++i)
- ml_delete(eap->line1, FALSE);
+ ml_delete(eap->line1);
else
count = 0;
@@ -779,7 +779,7 @@
return FAIL;
for (l = line1; l <= line2; l++)
- ml_delete(line1 + extra, TRUE);
+ ml_delete_flags(line1 + extra, ML_DEL_MESSAGE);
if (!global_busy && num_lines > p_report)
smsg(NGETTEXT("%ld line moved", "%ld lines moved", num_lines),
@@ -3280,7 +3280,7 @@
if (empty)
{
- ml_delete(2L, FALSE);
+ ml_delete(2L);
empty = FALSE;
}
}
@@ -3331,7 +3331,7 @@
{
if (curbuf->b_ml.ml_flags & ML_EMPTY) // nothing to delete
break;
- ml_delete(eap->line1, FALSE);
+ ml_delete(eap->line1);
}
// make sure the cursor is not beyond the end of the file now
@@ -4531,7 +4531,7 @@
if (u_savedel(lnum, nmatch_tl) != OK)
break;
for (i = 0; i < nmatch_tl; ++i)
- ml_delete(lnum, (int)FALSE);
+ ml_delete(lnum);
mark_adjust(lnum, lnum + nmatch_tl - 1,
(long)MAXLNUM, -nmatch_tl);
if (subflags.do_ask)
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index a4db3c8..7b53e6c 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -6557,7 +6557,7 @@
lnum = 1;
if (*ml_get(lnum) == NUL && u_savedel(lnum, 1L) == OK)
{
- ml_delete(lnum, FALSE);
+ ml_delete(lnum);
if (curwin->w_cursor.lnum > 1
&& curwin->w_cursor.lnum >= lnum)
--curwin->w_cursor.lnum;
diff --git a/src/fileio.c b/src/fileio.c
index 613f923..32af14c 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -862,7 +862,7 @@
}
// Delete the previously read lines.
while (lnum > from)
- ml_delete(lnum--, FALSE);
+ ml_delete(lnum--);
file_rewind = FALSE;
if (set_options)
{
@@ -2292,7 +2292,7 @@
#ifdef FEAT_NETBEANS_INTG
netbeansFireChanges = 0;
#endif
- ml_delete(curbuf->b_ml.ml_line_count, FALSE);
+ ml_delete(curbuf->b_ml.ml_line_count);
#ifdef FEAT_NETBEANS_INTG
netbeansFireChanges = 1;
#endif
@@ -3933,7 +3933,7 @@
{
curbuf = frombuf;
for (lnum = curbuf->b_ml.ml_line_count; lnum > 0; --lnum)
- if (ml_delete(lnum, FALSE) == FAIL)
+ if (ml_delete(lnum) == FAIL)
{
// Oops! We could try putting back the saved lines, but that
// might fail again...
@@ -4329,7 +4329,7 @@
// Put the text back from the save buffer. First
// delete any lines that readfile() added.
while (!BUFEMPTY())
- if (ml_delete(buf->b_ml.ml_line_count, FALSE) == FAIL)
+ if (ml_delete(buf->b_ml.ml_line_count) == FAIL)
break;
(void)move_lines(savebuf, buf);
}
diff --git a/src/if_lua.c b/src/if_lua.c
index 9a3081b..3ecedaf 100644
--- a/src/if_lua.c
+++ b/src/if_lua.c
@@ -1341,7 +1341,7 @@
curbuf = buf;
luaL_error(L, "cannot save undo information");
}
- else if (ml_delete(n, FALSE) == FAIL)
+ else if (ml_delete(n) == FAIL)
{
curbuf = buf;
luaL_error(L, "cannot delete line");
diff --git a/src/if_mzsch.c b/src/if_mzsch.c
index 8cc2e21..bfcdbea 100644
--- a/src/if_mzsch.c
+++ b/src/if_mzsch.c
@@ -2468,7 +2468,7 @@
curbuf = savebuf;
raise_vim_exn(_("cannot save undo information"));
}
- else if (ml_delete((linenr_T)n, FALSE) == FAIL)
+ else if (ml_delete((linenr_T)n) == FAIL)
{
curbuf = savebuf;
raise_vim_exn(_("cannot delete line"));
@@ -2597,7 +2597,7 @@
else
{
for (i = 0; i < old_len; i++)
- if (ml_delete((linenr_T)lo, FALSE) == FAIL)
+ if (ml_delete((linenr_T)lo) == FAIL)
{
curbuf = savebuf;
raise_vim_exn(_("cannot delete line"));
@@ -2665,7 +2665,7 @@
*/
for (i = 0; i < old_len - new_len; ++i)
{
- if (ml_delete((linenr_T)lo, FALSE) == FAIL)
+ if (ml_delete((linenr_T)lo) == FAIL)
{
curbuf = savebuf;
free_array(array);
diff --git a/src/if_perl.xs b/src/if_perl.xs
index 015189c..ef02730 100644
--- a/src/if_perl.xs
+++ b/src/if_perl.xs
@@ -1067,7 +1067,7 @@
}
else
{
- ml_delete(*line, FALSE);
+ ml_delete(*line);
deleted_lines_mark(*line, 1L);
--(*end);
--(*line);
@@ -1862,7 +1862,7 @@
if (u_savedel(lnum, 1) == OK)
{
- ml_delete(lnum, 0);
+ ml_delete(lnum);
check_cursor();
deleted_lines_mark(lnum, 1L);
}
diff --git a/src/if_py_both.h b/src/if_py_both.h
index 9f563f0..e262d1f 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -4399,7 +4399,7 @@
if (u_savedel((linenr_T)n, 1L) == FAIL)
RAISE_UNDO_FAIL;
- else if (ml_delete((linenr_T)n, FALSE) == FAIL)
+ else if (ml_delete((linenr_T)n) == FAIL)
RAISE_DELETE_LINE_FAIL;
else
{
@@ -4512,7 +4512,7 @@
{
for (i = 0; i < n; ++i)
{
- if (ml_delete((linenr_T)lo, FALSE) == FAIL)
+ if (ml_delete((linenr_T)lo) == FAIL)
{
RAISE_DELETE_LINE_FAIL;
break;
@@ -4588,7 +4588,7 @@
if (!PyErr_Occurred())
{
for (i = 0; i < old_len - new_len; ++i)
- if (ml_delete((linenr_T)lo, FALSE) == FAIL)
+ if (ml_delete((linenr_T)lo) == FAIL)
{
RAISE_DELETE_LINE_FAIL;
break;
diff --git a/src/if_ruby.c b/src/if_ruby.c
index 6773a2a..2480ee4 100644
--- a/src/if_ruby.c
+++ b/src/if_ruby.c
@@ -1442,7 +1442,7 @@
if (u_savedel(n, 1) == OK)
{
- ml_delete(n, 0);
+ ml_delete(n);
// Changes to non-active buffers should properly refresh
// SegPhault - 01/09/05
diff --git a/src/if_tcl.c b/src/if_tcl.c
index 17e20ee..c274b26 100644
--- a/src/if_tcl.c
+++ b/src/if_tcl.c
@@ -735,7 +735,7 @@
i = n;
do
{
- if (ml_delete((linenr_T)i, FALSE) != OK)
+ if (ml_delete((linenr_T)i) != OK)
goto setListError;
++n;
} while (n <= val2);
@@ -783,7 +783,7 @@
}
for (i = 0; i < n; i++)
{
- ml_delete((linenr_T)val1, FALSE);
+ ml_delete((linenr_T)val1);
err = vimerror(interp);
if (err != TCL_OK)
break;
diff --git a/src/memline.c b/src/memline.c
index 3379a39..73db42f 100644
--- a/src/memline.c
+++ b/src/memline.c
@@ -1386,7 +1386,7 @@
* contents of the current buffer.
*/
while (!(curbuf->b_ml.ml_flags & ML_EMPTY))
- ml_delete((linenr_T)1, FALSE);
+ ml_delete((linenr_T)1);
/*
* Try reading the original file to obtain the values of 'fileformat',
@@ -1664,7 +1664,7 @@
*/
while (curbuf->b_ml.ml_line_count > lnum
&& !(curbuf->b_ml.ml_flags & ML_EMPTY))
- ml_delete(curbuf->b_ml.ml_line_count, FALSE);
+ ml_delete(curbuf->b_ml.ml_line_count);
curbuf->b_flags |= BF_RECOVERED;
recoverymode = FALSE;
@@ -3705,9 +3705,9 @@
* return FAIL for failure, OK otherwise
*/
int
-ml_delete(linenr_T lnum, int message)
+ml_delete(linenr_T lnum)
{
- return ml_delete_flags(lnum, message ? ML_DEL_MESSAGE : 0);
+ return ml_delete_flags(lnum, 0);
}
/*
diff --git a/src/normal.c b/src/normal.c
index a39b1d4..f400141 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -7413,7 +7413,7 @@
// line that needs to be deleted now.
if (empty && *ml_get(curbuf->b_ml.ml_line_count) == NUL)
{
- ml_delete(curbuf->b_ml.ml_line_count, TRUE);
+ ml_delete_flags(curbuf->b_ml.ml_line_count, ML_DEL_MESSAGE);
deleted_lines(curbuf->b_ml.ml_line_count + 1, 1);
// If the cursor was in that line, move it to the end of the last
diff --git a/src/popupmenu.c b/src/popupmenu.c
index 2fe4cff..197cdca 100644
--- a/src/popupmenu.c
+++ b/src/popupmenu.c
@@ -817,7 +817,7 @@
{
// Already a "wipeout" buffer, make it empty.
while (!BUFEMPTY())
- ml_delete((linenr_T)1, FALSE);
+ ml_delete((linenr_T)1);
}
else
{
@@ -860,7 +860,7 @@
}
}
// delete the empty last line
- ml_delete(curbuf->b_ml.ml_line_count, FALSE);
+ ml_delete(curbuf->b_ml.ml_line_count);
// Increase the height of the preview window to show the
// text, but no more than 'previewheight' lines.
diff --git a/src/popupwin.c b/src/popupwin.c
index cee848a..fbda48b 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -1537,7 +1537,7 @@
// Clear the buffer, then replace the lines.
curbuf = buf;
for (lnum = buf->b_ml.ml_line_count; lnum > 0; --lnum)
- ml_delete(lnum, FALSE);
+ ml_delete(lnum);
curbuf = curwin->w_buffer;
// Add text to the buffer.
@@ -1563,7 +1563,7 @@
// delete the line that was in the empty buffer
curbuf = buf;
- ml_delete(buf->b_ml.ml_line_count, FALSE);
+ ml_delete(buf->b_ml.ml_line_count);
curbuf = curwin->w_buffer;
}
diff --git a/src/proto/memline.pro b/src/proto/memline.pro
index de11868..364f0aa 100644
--- a/src/proto/memline.pro
+++ b/src/proto/memline.pro
@@ -26,7 +26,7 @@
int ml_append_buf(buf_T *buf, linenr_T lnum, char_u *line, colnr_T len, int newfile);
int ml_replace(linenr_T lnum, char_u *line, int copy);
int ml_replace_len(linenr_T lnum, char_u *line_arg, colnr_T len_arg, int has_props, int copy);
-int ml_delete(linenr_T lnum, int message);
+int ml_delete(linenr_T lnum);
int ml_delete_flags(linenr_T lnum, int flags);
void ml_setmarked(linenr_T lnum);
linenr_T ml_firstmarked(void);
diff --git a/src/quickfix.c b/src/quickfix.c
index 4b3f164..f3ad4cd 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -4499,7 +4499,7 @@
// delete all existing lines
while ((curbuf->b_ml.ml_flags & ML_EMPTY) == 0)
- (void)ml_delete((linenr_T)1, FALSE);
+ (void)ml_delete((linenr_T)1);
}
// Check if there is anything to display
@@ -4533,7 +4533,7 @@
if (old_last == NULL)
// Delete the empty line which is now at the end
- (void)ml_delete(lnum + 1, FALSE);
+ (void)ml_delete(lnum + 1);
}
// correct cursor position
diff --git a/src/spell.c b/src/spell.c
index dab6aea..20826f3 100644
--- a/src/spell.c
+++ b/src/spell.c
@@ -3810,7 +3810,7 @@
// Delete the empty line that we started with.
if (curbuf->b_ml.ml_line_count > 1)
- ml_delete(curbuf->b_ml.ml_line_count, FALSE);
+ ml_delete(curbuf->b_ml.ml_line_count);
redraw_later(NOT_VALID);
}
diff --git a/src/terminal.c b/src/terminal.c
index 59bf039..86a1a0f 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -1609,7 +1609,7 @@
{
// Delete the empty line that was in the empty buffer.
curbuf = buf;
- ml_delete(1, FALSE);
+ ml_delete(1);
curbuf = curwin->w_buffer;
}
}
@@ -1683,7 +1683,7 @@
while (curbuf->b_ml.ml_line_count > term->tl_scrollback_scrolled
&& gap->ga_len > 0)
{
- ml_delete(curbuf->b_ml.ml_line_count, FALSE);
+ ml_delete(curbuf->b_ml.ml_line_count);
line = (sb_line_T *)gap->ga_data + gap->ga_len - 1;
vim_free(line->sb_cells);
--gap->ga_len;
@@ -3142,7 +3142,7 @@
{
vim_free(((sb_line_T *)gap->ga_data + i)->sb_cells);
if (update_buffer)
- ml_delete(1, FALSE);
+ ml_delete(1);
}
curbuf = curwin->w_buffer;
@@ -5148,7 +5148,7 @@
{
buf = curbuf;
while (!(curbuf->b_ml.ml_flags & ML_EMPTY))
- ml_delete((linenr_T)1, FALSE);
+ ml_delete((linenr_T)1);
free_scrollback(curbuf->b_term);
redraw_later(NOT_VALID);
}
@@ -5183,7 +5183,7 @@
}
// Delete the empty line that was in the empty buffer.
- ml_delete(1, FALSE);
+ ml_delete(1);
// For term_dumpload() we are done here.
if (!do_diff)
@@ -5374,7 +5374,7 @@
if (p == NULL)
return OK;
ml_append(bot_start, p, 0, FALSE);
- ml_delete(1, FALSE);
+ ml_delete(1);
vim_free(p);
}
@@ -5384,7 +5384,7 @@
p = vim_strsave(ml_get(bot_start + lnum));
if (p == NULL)
return OK;
- ml_delete(bot_start + lnum, FALSE);
+ ml_delete(bot_start + lnum);
ml_append(lnum - 1, p, 0, FALSE);
vim_free(p);
}
@@ -5394,14 +5394,14 @@
if (p == NULL)
return OK;
ml_append(line_count - top_rows - 1, p, 0, FALSE);
- ml_delete(bot_rows + 1, FALSE);
+ ml_delete(bot_rows + 1);
vim_free(p);
// move bottom title to top
p = vim_strsave(ml_get(line_count - top_rows));
if (p == NULL)
return OK;
- ml_delete(line_count - top_rows, FALSE);
+ ml_delete(line_count - top_rows);
ml_append(bot_rows, p, 0, FALSE);
vim_free(p);
diff --git a/src/version.c b/src/version.c
index f60d1a4..3bd012b 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 853,
+/**/
852,
/**/
851,