diff options
Diffstat (limited to 'src/fileio.c')
-rw-r--r-- | src/fileio.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/fileio.c b/src/fileio.c index ab867b7c8f..bca827152a 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -589,8 +589,9 @@ readfile( // correctly set when reading stdin. if (!read_buffer) { - curbuf->b_p_eol = TRUE; curbuf->b_p_eof = FALSE; + curbuf->b_start_eof = FALSE; + curbuf->b_p_eol = TRUE; curbuf->b_start_eol = TRUE; } curbuf->b_p_bomb = FALSE; @@ -2278,15 +2279,18 @@ failed: if (!error && !got_int && linerest != 0 + // TODO: should we handle CTRL-Z differently here for 'endoffile'? && !(!curbuf->b_p_bin - && fileformat == EOL_DOS)) + && fileformat == EOL_DOS + && *line_start == Ctrl_Z + && ptr == line_start + 1)) { // remember for when writing if (set_options) { curbuf->b_p_eol = FALSE; if (*line_start == Ctrl_Z && ptr == line_start + 1) - curbuf->b_p_eof = FALSE; + curbuf->b_p_eof = TRUE; } *ptr = NUL; len = (colnr_T)(ptr - line_start + 1); |