mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
Simplify edit.c functions replace_{push,pop}.
* Replace xmalloc (+memmove) with xrealloc * Code style adjustments. * Remove obsolete TODO comment
This commit is contained in:
parent
4464732503
commit
49306cfa02
@ -6242,37 +6242,33 @@ static int echeck_abbr(int c)
|
|||||||
* For a newline, there are two NUL headed lists. One contains the characters
|
* For a newline, there are two NUL headed lists. One contains the characters
|
||||||
* that the NL replaced. The extra one stores the characters after the cursor
|
* that the NL replaced. The extra one stores the characters after the cursor
|
||||||
* that were deleted (always white space).
|
* that were deleted (always white space).
|
||||||
*
|
|
||||||
* Replace_offset is normally 0, in which case replace_push will add a new
|
|
||||||
* character at the end of the stack. If replace_offset is not 0, that many
|
|
||||||
* characters will be left on the stack above the newly inserted character.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static char_u *replace_stack = NULL;
|
static char_u *replace_stack = NULL;
|
||||||
static ssize_t replace_stack_nr = 0; /* next entry in replace stack */
|
static ssize_t replace_stack_nr = 0; /* next entry in replace stack */
|
||||||
static ssize_t replace_stack_len = 0; /* max. number of entries */
|
static ssize_t replace_stack_len = 0; /* max. number of entries */
|
||||||
|
|
||||||
void
|
/// Push character that is replaced onto the the replace stack.
|
||||||
replace_push (
|
///
|
||||||
int c /* character that is replaced (NUL is none) */
|
/// replace_offset is normally 0, in which case replace_push will add a new
|
||||||
)
|
/// character at the end of the stack. If replace_offset is not 0, that many
|
||||||
|
/// characters will be left on the stack above the newly inserted character.
|
||||||
|
///
|
||||||
|
/// @param c character that is replaced (NUL is none)
|
||||||
|
void replace_push(int c)
|
||||||
{
|
{
|
||||||
if (replace_stack_nr < replace_offset) /* nothing to do */
|
if (replace_stack_nr < replace_offset) { // nothing to do
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// TODO(philix): use xrealloc in replace_push()
|
|
||||||
if (replace_stack_len <= replace_stack_nr) {
|
if (replace_stack_len <= replace_stack_nr) {
|
||||||
replace_stack_len += 50;
|
replace_stack_len += 50;
|
||||||
void *aux = xmalloc(replace_stack_len);
|
replace_stack = xrealloc(replace_stack, replace_stack_len);
|
||||||
if (replace_stack != NULL) {
|
|
||||||
memmove(aux, replace_stack, replace_stack_nr);
|
|
||||||
free(replace_stack);
|
|
||||||
}
|
|
||||||
replace_stack = aux;
|
|
||||||
}
|
}
|
||||||
char_u *p = replace_stack + replace_stack_nr - replace_offset;
|
char_u *p = replace_stack + replace_stack_nr - replace_offset;
|
||||||
if (replace_offset)
|
if (replace_offset) {
|
||||||
memmove(p + 1, p, replace_offset);
|
memmove(p + 1, p, replace_offset);
|
||||||
|
}
|
||||||
*p = (char_u)c;
|
*p = (char_u)c;
|
||||||
++replace_stack_nr;
|
++replace_stack_nr;
|
||||||
}
|
}
|
||||||
@ -6292,16 +6288,12 @@ int replace_push_mb(char_u *p)
|
|||||||
return l;
|
return l;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/// Pop one item from the replace stack.
|
||||||
* Pop one item from the replace stack.
|
///
|
||||||
* return -1 if stack empty
|
/// @return -1 if stack is empty, replaced character or NUL otherwise
|
||||||
* return replaced character or NUL otherwise
|
|
||||||
*/
|
|
||||||
static int replace_pop(void)
|
static int replace_pop(void)
|
||||||
{
|
{
|
||||||
if (replace_stack_nr == 0)
|
return (replace_stack_nr == 0) ? -1 : (int)replace_stack[--replace_stack_nr];
|
||||||
return -1;
|
|
||||||
return (int)replace_stack[--replace_stack_nr];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user