mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
patch 9.0.0819
This commit is contained in:
@@ -790,6 +790,8 @@ buf_clear_file(buf_T *buf)
|
|||||||
buf->b_ml.ml_line_count = 1;
|
buf->b_ml.ml_line_count = 1;
|
||||||
unchanged(buf, TRUE, TRUE);
|
unchanged(buf, TRUE, TRUE);
|
||||||
buf->b_shortname = FALSE;
|
buf->b_shortname = FALSE;
|
||||||
|
buf->b_p_eof = FALSE;
|
||||||
|
buf->b_start_eof = FALSE;
|
||||||
buf->b_p_eol = TRUE;
|
buf->b_p_eol = TRUE;
|
||||||
buf->b_start_eol = TRUE;
|
buf->b_start_eol = TRUE;
|
||||||
buf->b_p_bomb = FALSE;
|
buf->b_p_bomb = FALSE;
|
||||||
|
@@ -921,6 +921,7 @@ unchanged(buf_T *buf, int ff, int always_inc_changedtick)
|
|||||||
save_file_ff(buf_T *buf)
|
save_file_ff(buf_T *buf)
|
||||||
{
|
{
|
||||||
buf->b_start_ffc = *buf->b_p_ff;
|
buf->b_start_ffc = *buf->b_p_ff;
|
||||||
|
buf->b_start_eof = buf->b_p_eof;
|
||||||
buf->b_start_eol = buf->b_p_eol;
|
buf->b_start_eol = buf->b_p_eol;
|
||||||
buf->b_start_bomb = buf->b_p_bomb;
|
buf->b_start_bomb = buf->b_p_bomb;
|
||||||
|
|
||||||
@@ -955,7 +956,9 @@ file_ff_differs(buf_T *buf, int ignore_empty)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
if (buf->b_start_ffc != *buf->b_p_ff)
|
if (buf->b_start_ffc != *buf->b_p_ff)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
if ((buf->b_p_bin || !buf->b_p_fixeol) && buf->b_start_eol != buf->b_p_eol)
|
if ((buf->b_p_bin || !buf->b_p_fixeol)
|
||||||
|
&& (buf->b_start_eof != buf->b_p_eof
|
||||||
|
|| buf->b_start_eol != buf->b_p_eol))
|
||||||
return TRUE;
|
return TRUE;
|
||||||
if (!buf->b_p_bin && buf->b_start_bomb != buf->b_p_bomb)
|
if (!buf->b_p_bin && buf->b_start_bomb != buf->b_p_bomb)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
10
src/fileio.c
10
src/fileio.c
@@ -589,8 +589,9 @@ readfile(
|
|||||||
// correctly set when reading stdin.
|
// correctly set when reading stdin.
|
||||||
if (!read_buffer)
|
if (!read_buffer)
|
||||||
{
|
{
|
||||||
curbuf->b_p_eol = TRUE;
|
|
||||||
curbuf->b_p_eof = FALSE;
|
curbuf->b_p_eof = FALSE;
|
||||||
|
curbuf->b_start_eof = FALSE;
|
||||||
|
curbuf->b_p_eol = TRUE;
|
||||||
curbuf->b_start_eol = TRUE;
|
curbuf->b_start_eol = TRUE;
|
||||||
}
|
}
|
||||||
curbuf->b_p_bomb = FALSE;
|
curbuf->b_p_bomb = FALSE;
|
||||||
@@ -2278,15 +2279,18 @@ failed:
|
|||||||
if (!error
|
if (!error
|
||||||
&& !got_int
|
&& !got_int
|
||||||
&& linerest != 0
|
&& linerest != 0
|
||||||
|
// TODO: should we handle CTRL-Z differently here for 'endoffile'?
|
||||||
&& !(!curbuf->b_p_bin
|
&& !(!curbuf->b_p_bin
|
||||||
&& fileformat == EOL_DOS))
|
&& fileformat == EOL_DOS
|
||||||
|
&& *line_start == Ctrl_Z
|
||||||
|
&& ptr == line_start + 1))
|
||||||
{
|
{
|
||||||
// remember for when writing
|
// remember for when writing
|
||||||
if (set_options)
|
if (set_options)
|
||||||
{
|
{
|
||||||
curbuf->b_p_eol = FALSE;
|
curbuf->b_p_eol = FALSE;
|
||||||
if (*line_start == Ctrl_Z && ptr == line_start + 1)
|
if (*line_start == Ctrl_Z && ptr == line_start + 1)
|
||||||
curbuf->b_p_eof = FALSE;
|
curbuf->b_p_eof = TRUE;
|
||||||
}
|
}
|
||||||
*ptr = NUL;
|
*ptr = NUL;
|
||||||
len = (colnr_T)(ptr - line_start + 1);
|
len = (colnr_T)(ptr - line_start + 1);
|
||||||
|
@@ -3150,6 +3150,7 @@ struct file_buffer
|
|||||||
linenr_T b_no_eol_lnum; // non-zero lnum when last line of next binary
|
linenr_T b_no_eol_lnum; // non-zero lnum when last line of next binary
|
||||||
// write should not have an end-of-line
|
// write should not have an end-of-line
|
||||||
|
|
||||||
|
int b_start_eof; // last line had eof (CTRL-Z) when it was read
|
||||||
int b_start_eol; // last line had eol when it was read
|
int b_start_eol; // last line had eol when it was read
|
||||||
int b_start_ffc; // first char of 'ff' when edit started
|
int b_start_ffc; // first char of 'ff' when edit started
|
||||||
char_u *b_start_fenc; // 'fileencoding' when edit started or NULL
|
char_u *b_start_fenc; // 'fileencoding' when edit started or NULL
|
||||||
|
@@ -34,10 +34,10 @@ func Test_fixeol()
|
|||||||
w >>XXTestEol
|
w >>XXTestEol
|
||||||
w >>XXTestNoEol
|
w >>XXTestNoEol
|
||||||
|
|
||||||
call assert_equal(['with eol', 'END'], readfile('XXEol'))
|
call assert_equal(['with eol or eof', 'END'], readfile('XXEol'))
|
||||||
call assert_equal(['without eolEND'], readfile('XXNoEol'))
|
call assert_equal(['without eol or eofEND'], readfile('XXNoEol'))
|
||||||
call assert_equal(['with eol', 'stays eol', 'END'], readfile('XXTestEol'))
|
call assert_equal(['with eol or eof', 'stays eol', 'END'], readfile('XXTestEol'))
|
||||||
call assert_equal(['without eol', 'stays withoutEND'],
|
call assert_equal(['without eol or eof', 'stays withoutEND'],
|
||||||
\ readfile('XXTestNoEol'))
|
\ readfile('XXTestNoEol'))
|
||||||
|
|
||||||
call delete('XXEol')
|
call delete('XXEol')
|
||||||
|
@@ -695,6 +695,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
819,
|
||||||
/**/
|
/**/
|
||||||
818,
|
818,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user