1
0
forked from aniani/vim

patch 8.0.0227: crash with ff=dos when first line in file has no CR

Problem:    Crash when 'fileformat' is forced to "dos" and the first line in
            the file is empty and does not have a CR character.
Solution:   Don't check for CR before the start of the buffer.
This commit is contained in:
Bram Moolenaar
2017-01-24 15:46:48 +01:00
parent 1695f99d08
commit 2aa5f696b9
3 changed files with 5 additions and 2 deletions

View File

@@ -2251,8 +2251,9 @@ rewind_retry:
len = (colnr_T)(ptr - line_start + 1);
if (fileformat == EOL_DOS)
{
if (ptr[-1] == CAR) /* remove CR */
if (ptr > line_start && ptr[-1] == CAR)
{
/* remove CR before NL */
ptr[-1] = NUL;
--len;
}

View File

@@ -17,7 +17,7 @@ func Test_fileformat_after_bw()
endfunc
func Test_fileformat_autocommand()
let filecnt = ["\<CR>", "foobar\<CR>", "eins\<CR>", "\<CR>", "zwei\<CR>", "drei", "vier", "fünf", ""]
let filecnt = ["", "foobar\<CR>", "eins\<CR>", "\<CR>", "zwei\<CR>", "drei", "vier", "fünf", ""]
let ffs = &ffs
call writefile(filecnt, 'Xfile', 'b')
au BufReadPre Xfile set ffs=dos ff=dos

View File

@@ -764,6 +764,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
227,
/**/
226,
/**/