mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
move del_char, del_chars
This commit is contained in:
parent
75598927f2
commit
0b3ee2e8ac
@ -672,46 +672,40 @@ void ins_str(char_u *s)
|
|||||||
curwin->w_cursor.col += newlen;
|
curwin->w_cursor.col += newlen;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
// Delete one character under the cursor.
|
||||||
* Delete one character under the cursor.
|
// If "fixpos" is true, don't leave the cursor on the NUL after the line.
|
||||||
* If "fixpos" is TRUE, don't leave the cursor on the NUL after the line.
|
// Caller must have prepared for undo.
|
||||||
* Caller must have prepared for undo.
|
//
|
||||||
*
|
// return FAIL for failure, OK otherwise
|
||||||
* return FAIL for failure, OK otherwise
|
int del_char(bool fixpos)
|
||||||
*/
|
|
||||||
int
|
|
||||||
del_char(int fixpos)
|
|
||||||
{
|
{
|
||||||
if (has_mbyte)
|
if (has_mbyte) {
|
||||||
{
|
// Make sure the cursor is at the start of a character.
|
||||||
// Make sure the cursor is at the start of a character.
|
mb_adjust_cursor();
|
||||||
mb_adjust_cursor();
|
if (*get_cursor_pos_ptr() == NUL)
|
||||||
if (*ml_get_cursor() == NUL)
|
return FAIL;
|
||||||
return FAIL;
|
return del_chars(1L, fixpos);
|
||||||
return del_chars(1L, fixpos);
|
}
|
||||||
}
|
return del_bytes(1, fixpos, true);
|
||||||
return del_bytes(1L, fixpos, TRUE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Like del_bytes(), but delete characters instead of bytes.
|
* Like del_bytes(), but delete characters instead of bytes.
|
||||||
*/
|
*/
|
||||||
int
|
int del_chars(long count, int fixpos)
|
||||||
del_chars(long count, int fixpos)
|
|
||||||
{
|
{
|
||||||
long bytes = 0;
|
int bytes = 0;
|
||||||
long i;
|
long i;
|
||||||
char_u *p;
|
char_u *p;
|
||||||
int l;
|
int l;
|
||||||
|
|
||||||
p = ml_get_cursor();
|
p = get_cursor_pos_ptr();
|
||||||
for (i = 0; i < count && *p != NUL; ++i)
|
for (i = 0; i < count && *p != NUL; ++i) {
|
||||||
{
|
l = (*mb_ptr2len)(p);
|
||||||
l = (*mb_ptr2len)(p);
|
bytes += l;
|
||||||
bytes += l;
|
p += l;
|
||||||
p += l;
|
}
|
||||||
}
|
return del_bytes(bytes, fixpos, TRUE);
|
||||||
return del_bytes(bytes, fixpos, TRUE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1398,42 +1398,6 @@ void ins_char(int c)
|
|||||||
ins_char_bytes(buf, n);
|
ins_char_bytes(buf, n);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete one character under the cursor.
|
|
||||||
// If "fixpos" is true, don't leave the cursor on the NUL after the line.
|
|
||||||
// Caller must have prepared for undo.
|
|
||||||
//
|
|
||||||
// return FAIL for failure, OK otherwise
|
|
||||||
int del_char(bool fixpos)
|
|
||||||
{
|
|
||||||
if (has_mbyte) {
|
|
||||||
/* Make sure the cursor is at the start of a character. */
|
|
||||||
mb_adjust_cursor();
|
|
||||||
if (*get_cursor_pos_ptr() == NUL)
|
|
||||||
return FAIL;
|
|
||||||
return del_chars(1L, fixpos);
|
|
||||||
}
|
|
||||||
return del_bytes(1, fixpos, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Like del_bytes(), but delete characters instead of bytes.
|
|
||||||
*/
|
|
||||||
int del_chars(long count, int fixpos)
|
|
||||||
{
|
|
||||||
int bytes = 0;
|
|
||||||
long i;
|
|
||||||
char_u *p;
|
|
||||||
int l;
|
|
||||||
|
|
||||||
p = get_cursor_pos_ptr();
|
|
||||||
for (i = 0; i < count && *p != NUL; ++i) {
|
|
||||||
l = (*mb_ptr2len)(p);
|
|
||||||
bytes += l;
|
|
||||||
p += l;
|
|
||||||
}
|
|
||||||
return del_bytes(bytes, fixpos, TRUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Delete "count" bytes under the cursor.
|
/// Delete "count" bytes under the cursor.
|
||||||
/// If "fixpos" is true, don't leave the cursor on the NUL after the line.
|
/// If "fixpos" is true, don't leave the cursor on the NUL after the line.
|
||||||
/// Caller must have prepared for undo.
|
/// Caller must have prepared for undo.
|
||||||
|
Loading…
Reference in New Issue
Block a user