diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-09-04 20:34:19 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-09-04 20:34:19 +0200 |
commit | 9d954207e2cc807b475bb04f8b59ef5bb3772d99 (patch) | |
tree | 1cc786e3355baa912671ab3b54ae8da5de43ae8b /src/evalfunc.c | |
parent | e88fc7a574263fd399c6815378bcd8fd228d8b54 (diff) |
patch 8.0.1053: setline() does not work on startupv8.0.1053
Problem: setline() does not work on startup. (Manuel Ortega)
Solution: Do not check for ml_mfp to be set for the current buffer.
(Christian Brabandt)
Diffstat (limited to 'src/evalfunc.c')
-rw-r--r-- | src/evalfunc.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/evalfunc.c b/src/evalfunc.c index 2692de61f4..cf9c8d8ec3 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -9885,7 +9885,10 @@ set_buffer_lines(buf_T *buf, linenr_T lnum, typval_T *lines, typval_T *rettv) buf_T *curbuf_save; int is_curbuf = buf == curbuf; - if (buf == NULL || buf->b_ml.ml_mfp == NULL || lnum < 1) + /* When using the current buffer ml_mfp will be set if needed. Useful when + * setline() is used on startup. For other buffers the buffer must be + * loaded. */ + if (buf == NULL || (!is_curbuf && buf->b_ml.ml_mfp == NULL) || lnum < 1) { rettv->vval.v_number = 1; /* FAIL */ return; |