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 | bb3d5dc320f93dcd28a2be72af6e750599490f13 (patch) | |
tree | b738794cd3ed77b69d19ea4bf10dfd32b4825a56 | |
parent | cda000e97f44631a0ed19a5a7e3aed28532e05c9 (diff) |
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 368fd7adfe..b6127d9dd4 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; |