mirror of
https://github.com/neovim/neovim.git
synced 2025-09-06 03:18:16 +00:00
vim-patch:8.2.3252: duplicated code for adding buffer lines
Problem: Duplicated code for adding buffer lines.
Solution: Move code to a common function. Also move map functions to map.c.
(Yegappan Lakshmanan, closes vim/vim#8665)
4a15504e91
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
This commit is contained in:
@@ -370,18 +370,24 @@ static void f_append(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
|
|||||||
set_buffer_lines(curbuf, lnum, true, &argvars[1], rettv);
|
set_buffer_lines(curbuf, lnum, true, &argvars[1], rettv);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// "appendbufline(buf, lnum, string/list)" function
|
/// Set or append lines to a buffer.
|
||||||
static void f_appendbufline(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
|
static void buf_set_append_line(typval_T *argvars, typval_T *rettv, bool append)
|
||||||
{
|
{
|
||||||
buf_T *const buf = tv_get_buf(&argvars[0], false);
|
buf_T *const buf = tv_get_buf(&argvars[0], false);
|
||||||
if (buf == NULL) {
|
if (buf == NULL) {
|
||||||
rettv->vval.v_number = 1; // FAIL
|
rettv->vval.v_number = 1; // FAIL
|
||||||
} else {
|
} else {
|
||||||
const linenr_T lnum = tv_get_lnum_buf(&argvars[1], buf);
|
const linenr_T lnum = tv_get_lnum_buf(&argvars[1], buf);
|
||||||
set_buffer_lines(buf, lnum, true, &argvars[2], rettv);
|
set_buffer_lines(buf, lnum, append, &argvars[2], rettv);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// "appendbufline(buf, lnum, string/list)" function
|
||||||
|
static void f_appendbufline(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
|
||||||
|
{
|
||||||
|
buf_set_append_line(argvars, rettv, true);
|
||||||
|
}
|
||||||
|
|
||||||
/// "atan2()" function
|
/// "atan2()" function
|
||||||
static void f_atan2(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
|
static void f_atan2(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
|
||||||
{
|
{
|
||||||
@@ -7501,16 +7507,7 @@ static void f_serverstop(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
|
|||||||
/// "setbufline()" function
|
/// "setbufline()" function
|
||||||
static void f_setbufline(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
|
static void f_setbufline(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
|
||||||
{
|
{
|
||||||
linenr_T lnum;
|
buf_set_append_line(argvars, rettv, false);
|
||||||
buf_T *buf;
|
|
||||||
|
|
||||||
buf = tv_get_buf(&argvars[0], false);
|
|
||||||
if (buf == NULL) {
|
|
||||||
rettv->vval.v_number = 1; // FAIL
|
|
||||||
} else {
|
|
||||||
lnum = tv_get_lnum_buf(&argvars[1], buf);
|
|
||||||
set_buffer_lines(buf, lnum, false, &argvars[2], rettv);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Set the cursor or mark position.
|
/// Set the cursor or mark position.
|
||||||
|
Reference in New Issue
Block a user