move del_lines

This commit is contained in:
Daniel Hahler 2019-06-10 15:06:37 +02:00
parent 41fa6079b2
commit f7fac33a1f
2 changed files with 26 additions and 66 deletions

View File

@ -1777,37 +1777,38 @@ void truncate_line(int fixpos)
* Delete "nlines" lines at the cursor. * Delete "nlines" lines at the cursor.
* Saves the lines for undo first if "undo" is TRUE. * Saves the lines for undo first if "undo" is TRUE.
*/ */
void void del_lines (
del_lines(long nlines, int undo) long nlines, /* number of lines to delete */
int undo /* if TRUE, prepare for undo */
)
{ {
long n; long n;
linenr_T first = curwin->w_cursor.lnum; linenr_T first = curwin->w_cursor.lnum;
if (nlines <= 0) if (nlines <= 0)
return; return;
// save the deleted lines for undo /* save the deleted lines for undo */
if (undo && u_savedel(first, nlines) == FAIL) if (undo && u_savedel(first, nlines) == FAIL)
return; return;
for (n = 0; n < nlines; ) for (n = 0; n < nlines; ) {
{ if (curbuf->b_ml.ml_flags & ML_EMPTY) /* nothing to delete */
if (curbuf->b_ml.ml_flags & ML_EMPTY) // nothing to delete break;
break;
ml_delete(first, TRUE); ml_delete(first, true);
++n; n++;
// If we delete the last line in the file, stop /* If we delete the last line in the file, stop */
if (first > curbuf->b_ml.ml_line_count) if (first > curbuf->b_ml.ml_line_count)
break; break;
} }
// Correct the cursor position before calling deleted_lines_mark(), it may /* Correct the cursor position before calling deleted_lines_mark(), it may
// trigger a callback to display the cursor. * trigger a callback to display the cursor. */
curwin->w_cursor.col = 0; curwin->w_cursor.col = 0;
check_cursor_lnum(); check_cursor_lnum();
// adjust marks, mark the buffer as changed and prepare for displaying /* adjust marks, mark the buffer as changed and prepare for displaying */
deleted_lines_mark(first, n); deleted_lines_mark(first, n);
} }

View File

@ -525,47 +525,6 @@ void ins_char(int c)
ins_char_bytes(buf, n); ins_char_bytes(buf, n);
} }
/*
* Delete "nlines" lines at the cursor.
* Saves the lines for undo first if "undo" is TRUE.
*/
void
del_lines (
long nlines, /* number of lines to delete */
int undo /* if TRUE, prepare for undo */
)
{
long n;
linenr_T first = curwin->w_cursor.lnum;
if (nlines <= 0)
return;
/* save the deleted lines for undo */
if (undo && u_savedel(first, nlines) == FAIL)
return;
for (n = 0; n < nlines; ) {
if (curbuf->b_ml.ml_flags & ML_EMPTY) /* nothing to delete */
break;
ml_delete(first, true);
n++;
/* If we delete the last line in the file, stop */
if (first > curbuf->b_ml.ml_line_count)
break;
}
/* Correct the cursor position before calling deleted_lines_mark(), it may
* trigger a callback to display the cursor. */
curwin->w_cursor.col = 0;
check_cursor_lnum();
/* adjust marks, mark the buffer as changed and prepare for displaying */
deleted_lines_mark(first, n);
}
int gchar_pos(pos_T *pos) int gchar_pos(pos_T *pos)
FUNC_ATTR_NONNULL_ARG(1) FUNC_ATTR_NONNULL_ARG(1)
{ {