Skip to content

Commit

Permalink
Merge remote-tracking branch 'vim/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
splhack committed Jan 14, 2017
2 parents 0bdef25 + 9b73c4a commit 40bc4e9
Show file tree
Hide file tree
Showing 9 changed files with 43 additions and 12 deletions.
13 changes: 8 additions & 5 deletions src/buffer.c
Expand Up @@ -113,16 +113,19 @@ read_buffer(
* it can be changed there. */
if (!readonlymode && !bufempty())
changed();
else if (retval != FAIL)
else if (retval == OK)
unchanged(curbuf, FALSE);

#ifdef FEAT_AUTOCMD
if (retval == OK)
{
# ifdef FEAT_EVAL
apply_autocmds_retval(EVENT_STDINREADPOST, NULL, NULL, FALSE,
apply_autocmds_retval(EVENT_STDINREADPOST, NULL, NULL, FALSE,
curbuf, &retval);
# else
apply_autocmds(EVENT_STDINREADPOST, NULL, NULL, FALSE, curbuf);
apply_autocmds(EVENT_STDINREADPOST, NULL, NULL, FALSE, curbuf);
# endif
}
#endif
}
return retval;
Expand Down Expand Up @@ -294,7 +297,7 @@ open_buffer(
#endif
)
changed();
else if (retval != FAIL && !read_stdin && !read_fifo)
else if (retval == OK && !read_stdin && !read_fifo)
unchanged(curbuf, FALSE);
save_file_ff(curbuf); /* keep this fileformat */

Expand Down Expand Up @@ -328,7 +331,7 @@ open_buffer(
# endif
#endif

if (retval != FAIL)
if (retval == OK)
{
#ifdef FEAT_AUTOCMD
/*
Expand Down
2 changes: 1 addition & 1 deletion src/ex_cmds.c
Expand Up @@ -1313,7 +1313,7 @@ do_filter(
if (otmp != NULL)
{
if (readfile(otmp, NULL, line2, (linenr_T)0, (linenr_T)MAXLNUM,
eap, READ_FILTER) == FAIL)
eap, READ_FILTER) != OK)
{
#if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
if (!aborting())
Expand Down
2 changes: 1 addition & 1 deletion src/ex_docmd.c
Expand Up @@ -8876,7 +8876,7 @@ ex_read(exarg_T *eap)
eap->line2, (linenr_T)0, (linenr_T)MAXLNUM, eap, 0);

}
if (i == FAIL)
if (i != OK)
{
#if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
if (!aborting())
Expand Down
11 changes: 8 additions & 3 deletions src/fileio.c
Expand Up @@ -210,7 +210,7 @@ filemess(
* READ_KEEP_UNDO don't clear undo info or read it from a file
* READ_FIFO read from fifo/socket instead of a file
*
* return FAIL for failure, OK otherwise
* return FAIL for failure, NOTDONE for directory (failure), or OK
*/
int
readfile(
Expand Down Expand Up @@ -450,13 +450,18 @@ readfile(
# endif
)
{
int retval = FAIL;

if (S_ISDIR(perm))
{
filemess(curbuf, fname, (char_u *)_("is a directory"), 0);
retval = NOTDONE;
}
else
filemess(curbuf, fname, (char_u *)_("is not a file"), 0);
msg_end();
msg_scroll = msg_save;
return FAIL;
return retval;
}
#endif
#if defined(MSWIN)
Expand Down Expand Up @@ -7174,7 +7179,7 @@ buf_reload(buf_T *buf, int orig_mode)
#endif
if (readfile(buf->b_ffname, buf->b_fname, (linenr_T)0,
(linenr_T)0,
(linenr_T)MAXLNUM, &ea, flags) == FAIL)
(linenr_T)MAXLNUM, &ea, flags) != OK)
{
#if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
if (!aborting())
Expand Down
2 changes: 1 addition & 1 deletion src/memline.c
Expand Up @@ -1519,7 +1519,7 @@ ml_recover(void)
line_count = pp->pb_pointer[idx].pe_line_count;
if (readfile(curbuf->b_ffname, NULL, lnum,
pp->pb_pointer[idx].pe_old_lnum - 1,
line_count, NULL, 0) == FAIL)
line_count, NULL, 0) != OK)
cannot_open = TRUE;
else
lnum += line_count;
Expand Down
1 change: 1 addition & 0 deletions src/testdir/Make_all.mak
Expand Up @@ -144,6 +144,7 @@ NEW_TESTS = test_arglist.res \
test_channel.res \
test_charsearch.res \
test_cmdline.res \
test_command_count.res \
test_crypt.res \
test_cscope.res \
test_diffmode.res \
Expand Down
1 change: 0 additions & 1 deletion src/testdir/test_alot.vim
Expand Up @@ -3,7 +3,6 @@

source test_assign.vim
source test_autocmd.vim
source test_command_count.vim
source test_cursor_func.vim
source test_delete.vim
source test_execute_func.vim
Expand Down
19 changes: 19 additions & 0 deletions src/testdir/test_autocmd.vim
Expand Up @@ -322,3 +322,22 @@ func Test_three_windows()
call delete('Xtestje2')
call delete('Xtestje3')
endfunc

func Test_BufEnter()
au! BufEnter
au Bufenter * let val = val . '+'
let g:val = ''
split NewFile
call assert_equal('+', g:val)
bwipe!
call assert_equal('++', g:val)

" Also get BufEnter when editing a directory
call mkdir('Xdir')
split Xdir
call assert_equal('+++', g:val)
bwipe!

call delete('Xdir', 'd')
au! BufEnter
endfunc
4 changes: 4 additions & 0 deletions src/version.c
Expand Up @@ -779,6 +779,10 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
178,
/**/
177,
/**/
176,
/**/
Expand Down

0 comments on commit 40bc4e9

Please sign in to comment.