summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-05-30 20:30:46 +0200
committerBram Moolenaar <Bram@vim.org>2020-05-30 20:30:46 +0200
commitca70c07b72c24aae3d141e67d08f50361f051af5 (patch)
tree98b26c267d6924c2a7464e08dc9fcacdd94d771f
parentd6cd5ffade84a1054fed23079133af3b837033bf (diff)
downloadvim-git-ca70c07b72c24aae3d141e67d08f50361f051af5.tar.gz
patch 8.2.0853: ml_delete() often called with FALSE argumentv8.2.0853
Problem: ml_delete() often called with FALSE argument. Solution: Use ml_delete_flags(x, ML_DEL_MESSAGE) when argument is TRUE.
-rw-r--r--src/buffer.c4
-rw-r--r--src/change.c2
-rw-r--r--src/diff.c4
-rw-r--r--src/evalbuffer.c2
-rw-r--r--src/ex_cmds.c10
-rw-r--r--src/ex_docmd.c2
-rw-r--r--src/fileio.c8
-rw-r--r--src/if_lua.c2
-rw-r--r--src/if_mzsch.c6
-rw-r--r--src/if_perl.xs4
-rw-r--r--src/if_py_both.h6
-rw-r--r--src/if_ruby.c2
-rw-r--r--src/if_tcl.c4
-rw-r--r--src/memline.c8
-rw-r--r--src/normal.c2
-rw-r--r--src/popupmenu.c4
-rw-r--r--src/popupwin.c4
-rw-r--r--src/proto/memline.pro2
-rw-r--r--src/quickfix.c4
-rw-r--r--src/spell.c2
-rw-r--r--src/terminal.c18
-rw-r--r--src/version.c2
22 files changed, 52 insertions, 50 deletions
diff --git a/src/buffer.c b/src/buffer.c
index a657e7242..df92ecdbd 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -103,13 +103,13 @@ read_buffer(
{
// 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 45d67044e..3a823b629 100644
--- a/src/change.c
+++ b/src/change.c
@@ -2317,7 +2317,7 @@ del_lines(long nlines, int undo)
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 16389fd92..88dc8a653 100644
--- a/src/diff.c
+++ b/src/diff.c
@@ -2764,7 +2764,7 @@ ex_diffgetput(exarg_T *eap)
{
// 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 @@ ex_diffgetput(exarg_T *eap)
// 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 adbbca3f7..df5270a95 100644
--- a/src/evalbuffer.c
+++ b/src/evalbuffer.c
@@ -513,7 +513,7 @@ f_deletebufline(typval_T *argvars, typval_T *rettv)
}
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 777f1490c..ac55c268a 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -633,7 +633,7 @@ ex_sort(exarg_T *eap)
// 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 @@ do_move(linenr_T line1, linenr_T line2, linenr_T dest)
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 @@ ex_append(exarg_T *eap)
if (empty)
{
- ml_delete(2L, FALSE);
+ ml_delete(2L);
empty = FALSE;
}
}
@@ -3331,7 +3331,7 @@ ex_change(exarg_T *eap)
{
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 @@ skip:
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 a4db3c844..7b53e6c6a 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -6557,7 +6557,7 @@ ex_read(exarg_T *eap)
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 613f92359..32af14c4d 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -862,7 +862,7 @@ retry:
}
// 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 @@ failed:
#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 @@ move_lines(buf_T *frombuf, buf_T *tobuf)
{
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 @@ buf_reload(buf_T *buf, int orig_mode)
// 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 9a3081bb4..3ecedaf7d 100644
--- a/src/if_lua.c
+++ b/src/if_lua.c
@@ -1341,7 +1341,7 @@ luaV_buffer_newindex(lua_State *L)
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 8cc2e2145..bfcdbea97 100644
--- a/src/if_mzsch.c
+++ b/src/if_mzsch.c
@@ -2468,7 +2468,7 @@ set_buffer_line(void *data, int argc, Scheme_Object **argv)
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 @@ set_buffer_line_list(void *data, int argc, Scheme_Object **argv)
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 @@ set_buffer_line_list(void *data, int argc, Scheme_Object **argv)
*/
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 015189cc0..ef0273047 100644
--- a/src/if_perl.xs
+++ b/src/if_perl.xs
@@ -1067,7 +1067,7 @@ replace_line(linenr_T *line, linenr_T *end)
}
else
{
- ml_delete(*line, FALSE);
+ ml_delete(*line);
deleted_lines_mark(*line, 1L);
--(*end);
--(*line);
@@ -1862,7 +1862,7 @@ Delete(vimbuf, ...)
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 9f563f0af..e262d1f75 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -4399,7 +4399,7 @@ SetBufferLine(buf_T *buf, PyInt n, PyObject *line, PyInt *len_change)
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 @@ SetBufferLineList(
{
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 @@ SetBufferLineList(
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 6773a2a38..2480ee4d1 100644
--- a/src/if_ruby.c
+++ b/src/if_ruby.c
@@ -1442,7 +1442,7 @@ buffer_delete(VALUE self, VALUE num)
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 17e20ee38..c274b2675 100644
--- a/src/if_tcl.c
+++ b/src/if_tcl.c
@@ -735,7 +735,7 @@ bufselfcmd(
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 @@ bufselfcmd(
}
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 3379a3965..73db42f98 100644
--- a/src/memline.c
+++ b/src/memline.c
@@ -1386,7 +1386,7 @@ ml_recover(int checkext)
* 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 @@ ml_recover(int checkext)
*/
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 @@ theend:
* 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 a39b1d4e2..f4001411d 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -7413,7 +7413,7 @@ nv_put_opt(cmdarg_T *cap, int fix_indent)
// 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 2fe4cff40..197cdca76 100644
--- a/src/popupmenu.c
+++ b/src/popupmenu.c
@@ -817,7 +817,7 @@ pum_set_selected(int n, int repeat UNUSED)
{
// 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 @@ pum_set_selected(int n, int repeat UNUSED)
}
}
// 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 cee848a13..fbda48bf7 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -1537,7 +1537,7 @@ popup_set_buffer_text(buf_T *buf, typval_T text)
// 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 @@ popup_set_buffer_text(buf_T *buf, typval_T text)
// 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 de11868e5..364f0aae2 100644
--- a/src/proto/memline.pro
+++ b/src/proto/memline.pro
@@ -26,7 +26,7 @@ int ml_append_flags(linenr_T lnum, char_u *line, colnr_T len, int flags);
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 4b3f16400..f3ad4cde2 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -4499,7 +4499,7 @@ qf_fill_buffer(qf_list_T *qfl, buf_T *buf, qfline_T *old_last)
// 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 @@ qf_fill_buffer(qf_list_T *qfl, buf_T *buf, qfline_T *old_last)
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 dab6aeaf4..20826f3fe 100644
--- a/src/spell.c
+++ b/src/spell.c
@@ -3810,7 +3810,7 @@ ex_spelldump(exarg_T *eap)
// 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 59bf03995..86a1a0fc3 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -1609,7 +1609,7 @@ add_scrollback_line_to_buffer(term_T *term, char_u *text, int len)
{
// 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 @@ cleanup_scrollback(term_T *term)
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 @@ limit_scrollback(term_T *term, garray_T *gap, int update_buffer)
{
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 @@ term_load_dump(typval_T *argvars, typval_T *rettv, int do_diff)
{
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 @@ term_load_dump(typval_T *argvars, typval_T *rettv, int do_diff)
}
// 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 @@ term_swap_diff()
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 @@ term_swap_diff()
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 @@ term_swap_diff()
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 f60d1a491..3bd012bcc 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 853,
+/**/
852,
/**/
851,