diff options
author | Bram Moolenaar <bram@vim.org> | 2010-08-14 14:32:54 +0200 |
---|---|---|
committer | Bram Moolenaar <bram@vim.org> | 2010-08-14 14:32:54 +0200 |
commit | a4c517ca951192d1cddc44de038545f43cf16dae (patch) | |
tree | 68027c1addea32603b8cc610c85406a3bd5b3cbd | |
parent | 22abf31da59646984d5bf4de723f8cd2967fdfe6 (diff) | |
download | vim-a4c517ca951192d1cddc44de038545f43cf16dae.tar.gz |
Fix: in compatible mode, in an empty buffer, ":r file" triggered an error
message.
-rw-r--r-- | src/fileio.c | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/src/fileio.c b/src/fileio.c index 368fd7ad..b6127d9d 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -317,20 +317,14 @@ readfile(fname, sfname, from, lines_to_skip, lines_to_read, eap, flags) char_u conv_rest[CONV_RESTLEN]; int conv_restlen = 0; /* nr of bytes in conv_rest[] */ #endif - #ifdef FEAT_AUTOCMD - /* Remember the initial values of curbuf, curbuf->b_ffname and - * curbuf->b_fname to detect whether they are altered as a result of - * executing nasty autocommands. Also check if "fname" and "sfname" - * point to one of these values. */ - buf_T *old_curbuf = curbuf; - char_u *old_b_ffname = curbuf->b_ffname; - char_u *old_b_fname = curbuf->b_fname; - int using_b_ffname = (fname == curbuf->b_ffname) - || (sfname == curbuf->b_ffname); - int using_b_fname = (fname == curbuf->b_fname) - || (sfname == curbuf->b_fname); + buf_T *old_curbuf; + char_u *old_b_ffname; + char_u *old_b_fname; + int using_b_ffname; + int using_b_fname; #endif + write_no_eol_lnum = 0; /* in case it was set by the previous read */ /* @@ -349,6 +343,19 @@ readfile(fname, sfname, from, lines_to_skip, lines_to_read, eap, flags) return FAIL; } +#ifdef FEAT_AUTOCMD + /* Remember the initial values of curbuf, curbuf->b_ffname and + * curbuf->b_fname to detect whether they are altered as a result of + * executing nasty autocommands. Also check if "fname" and "sfname" + * point to one of these values. */ + old_curbuf = curbuf; + old_b_ffname = curbuf->b_ffname; + old_b_fname = curbuf->b_fname; + using_b_ffname = (fname == curbuf->b_ffname) + || (sfname == curbuf->b_ffname); + using_b_fname = (fname == curbuf->b_fname) || (sfname == curbuf->b_fname); +#endif + /* After reading a file the cursor line changes but we don't want to * display the line. */ ex_no_reprint = TRUE; |