diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/eval.lua | 16 | ||||
-rw-r--r-- | src/nvim/eval/buffer.c | 5 |
2 files changed, 11 insertions, 10 deletions
diff --git a/src/nvim/eval.lua b/src/nvim/eval.lua index f6ccc803c0..886887dedb 100644 --- a/src/nvim/eval.lua +++ b/src/nvim/eval.lua @@ -141,7 +141,8 @@ M.funcs = { {lnum} can be zero to insert a line before the first one. {lnum} is used like with |getline()|. Returns 1 for failure ({lnum} out of range or out of memory), - 0 for success. Example: >vim + 0 for success. When {text} is an empty list zero is returned, + no matter the value of {lnum}. Example: >vim let failed = append(line('$'), "# THE END") let failed = append(0, ["Chapter 1", "the beginning"]) < @@ -173,7 +174,8 @@ M.funcs = { If {buf} is not a valid buffer or {lnum} is not valid, an error message is given. Example: >vim let failed = appendbufline(13, 0, "# THE START") - < + <However, when {text} is an empty list then no error is given + for an invalid {lnum}, since {lnum} isn't actually used. ]=], name = 'appendbufline', @@ -8871,9 +8873,10 @@ M.funcs = { To insert lines use |appendbufline()|. - {text} can be a string to set one line, or a list of strings - to set multiple lines. If the list extends below the last - line then those lines are added. + {text} can be a string to set one line, or a List of strings + to set multiple lines. If the List extends below the last + line then those lines are added. If the List is empty then + nothing is changed and zero is returned. For the use of {buf}, see |bufname()| above. @@ -9117,7 +9120,8 @@ M.funcs = { When {lnum} is just below the last line the {text} will be added below the last line. {text} can be any type or a List of any type, each item is - converted to a String. + converted to a String. When {text} is an empty List then + nothing is changed and FALSE is returned. If this succeeds, FALSE is returned. If this fails (most likely because {lnum} is invalid) TRUE is returned. diff --git a/src/nvim/eval/buffer.c b/src/nvim/eval/buffer.c index 0fe3f5444c..256adfd44f 100644 --- a/src/nvim/eval/buffer.c +++ b/src/nvim/eval/buffer.c @@ -160,10 +160,7 @@ static void set_buffer_lines(buf_T *buf, linenr_T lnum_arg, bool append, typval_ if (lines->v_type == VAR_LIST) { l = lines->vval.v_list; if (l == NULL || tv_list_len(l) == 0) { - // set proper return code - if (lnum > curbuf->b_ml.ml_line_count) { - rettv->vval.v_number = 1; // FAIL - } + // not appending anything always succeeds goto cleanup; } li = tv_list_first(l); |