Looks this patch causes a test31 failure against the small build, which
we've been seeing on the Travis CI result of the GitHub repo.

2016-01-03 6:26 GMT+09:00 Bram Moolenaar <[email protected]>:

>
> Patch 7.4.1037
> Problem:    Using "q!" when there is a modified hidden buffer does not
> unload
>             the current buffer, resulting in the need to abandon it again.
> Solution:   When using "q!" unload the current buffer when needed.
> (Yasuhiro
>             Matsumoto, Hirohito Higashi)
> Files:      src/testdir/test31.in, src/testdir/test31.ok,
>             runtime/doc/editing.txt, src/ex_cmds2.c, src/ex_docmd.c,
>             src/gui.c, src/gui_gtk_x11.c, src/os_unix.c,
>             src/proto/ex_cmds2.pro
>
>
> *** ../vim-7.4.1036/src/testdir/test31.in       2012-02-12
> 23:57:42.000000000 +0100
> --- src/testdir/test31.in       2016-01-02 22:13:18.166838164 +0100
> ***************
> *** 69,74 ****
> --- 69,94 ----
>   GA 4 :all!
>   :1wincmd w
>   :w >>test.out
> + :"
> + :" test ":q!" and hidden buffer.
> + :bw! Xtest1 Xtest2 Xtest3 Xtest4
> + :sp Xtest1
> + :wincmd w
> + :bw!
> + :set modified
> + :bot sp Xtest2
> + :set modified
> + :bot sp Xtest3
> + :set modified
> + :wincmd t
> + :hide
> + :q!
> + :w >>test.out
> + :q!
> + :w >>test.out
> + :q!
> + :call append(line('$'), "Oh, Not finished yet.")
> + :w >>test.out
>   :qa!
>   ENDTEST
>
> *** ../vim-7.4.1036/src/testdir/test31.ok       2012-02-13
> 00:00:13.000000000 +0100
> --- src/testdir/test31.ok       2016-01-02 22:13:18.166838164 +0100
> ***************
> *** 10,12 ****
> --- 10,14 ----
>   testtext 3 3 3
>   testtext 1
>   testtext 2 2 2
> + testtext 3
> + testtext 1
> *** ../vim-7.4.1036/runtime/doc/editing.txt     2015-09-08
> 18:46:04.337233673 +0200
> --- runtime/doc/editing.txt     2016-01-02 22:15:50.757167261 +0100
> ***************
> *** 1091,1100 ****
>                         the last file in the argument list has not been
>                         edited.  See |:confirm| and 'confirm'.  {not in Vi}
>
> ! :q[uit]!              Quit without writing, also when currently visible
> !                       buffers have changes.  Does not exit when this is
> the
> !                       last window and there is a changed hidden buffer.
> !                       In this case, the first changed hidden buffer
> becomes
>                         the current buffer.
>                         Use ":qall!" to exit always.
>
> --- 1105,1114 ----
>                         the last file in the argument list has not been
>                         edited.  See |:confirm| and 'confirm'.  {not in Vi}
>
> ! :q[uit]!              Quit without writing, also when currentl buffer has
> !                       changes.  If this is the last window and there is a
> !                       modified hidden buffer, the current buffer is
> !                       abandoned and the first changed hidden buffer
> becomes
>                         the current buffer.
>                         Use ":qall!" to exit always.
>
> *** ../vim-7.4.1036/src/ex_cmds2.c      2015-09-09 22:35:25.792564584 +0200
> --- src/ex_cmds2.c      2016-01-02 22:18:39.275322271 +0100
> ***************
> *** 1636,1645 ****
>   /*
>    * Return TRUE if any buffer was changed and cannot be abandoned.
>    * That changed buffer becomes the current buffer.
>    */
>       int
> ! check_changed_any(hidden)
>       int               hidden;         /* Only check hidden buffers */
>   {
>       int               ret = FALSE;
>       buf_T     *buf;
> --- 1636,1648 ----
>   /*
>    * Return TRUE if any buffer was changed and cannot be abandoned.
>    * That changed buffer becomes the current buffer.
> +  * When "unload" is true the current buffer is unloaded instead of
> making it
> +  * hidden.  This is used for ":q!".
>    */
>       int
> ! check_changed_any(hidden, unload)
>       int               hidden;         /* Only check hidden buffers */
> +     int               unload;
>   {
>       int               ret = FALSE;
>       buf_T     *buf;
> ***************
> *** 1750,1756 ****
>
>       /* Open the changed buffer in the current window. */
>       if (buf != curbuf)
> !       set_curbuf(buf, DOBUF_GOTO);
>
>   theend:
>       vim_free(bufnrs);
> --- 1753,1759 ----
>
>       /* Open the changed buffer in the current window. */
>       if (buf != curbuf)
> !       set_curbuf(buf, unload ? DOBUF_UNLOAD : DOBUF_GOTO);
>
>   theend:
>       vim_free(bufnrs);
> *** ../vim-7.4.1036/src/ex_docmd.c      2016-01-02 21:40:46.600201059 +0100
> --- src/ex_docmd.c      2016-01-02 22:13:48.710503680 +0100
> ***************
> *** 7143,7149 ****
>                                        | (eap->forceit ? CCGD_FORCEIT : 0)
>                                        | CCGD_EXCMD))
>             || check_more(TRUE, eap->forceit) == FAIL
> !           || (only_one_window() && check_changed_any(eap->forceit)))
>       {
>         not_exiting();
>       }
> --- 7143,7149 ----
>                                        | (eap->forceit ? CCGD_FORCEIT : 0)
>                                        | CCGD_EXCMD))
>             || check_more(TRUE, eap->forceit) == FAIL
> !           || (only_one_window() && check_changed_any(eap->forceit,
> TRUE)))
>       {
>         not_exiting();
>       }
> ***************
> *** 7214,7220 ****
>   #endif
>
>       exiting = TRUE;
> !     if (eap->forceit || !check_changed_any(FALSE))
>         getout(0);
>       not_exiting();
>   }
> --- 7214,7220 ----
>   #endif
>
>       exiting = TRUE;
> !     if (eap->forceit || !check_changed_any(FALSE, FALSE))
>         getout(0);
>       not_exiting();
>   }
> ***************
> *** 7609,7615 ****
>                     || curbufIsChanged())
>                 && do_write(eap) == FAIL)
>             || check_more(TRUE, eap->forceit) == FAIL
> !           || (only_one_window() && check_changed_any(eap->forceit)))
>       {
>         not_exiting();
>       }
> --- 7609,7615 ----
>                     || curbufIsChanged())
>                 && do_write(eap) == FAIL)
>             || check_more(TRUE, eap->forceit) == FAIL
> !           || (only_one_window() && check_changed_any(eap->forceit,
> FALSE)))
>       {
>         not_exiting();
>       }
> *** ../vim-7.4.1036/src/gui.c   2015-11-10 14:35:14.308069835 +0100
> --- src/gui.c   2016-01-02 22:13:48.714503636 +0100
> ***************
> *** 825,831 ****
>   # endif
>       /* If there are changed buffers, present the user with a dialog if
>        * possible, otherwise give an error message. */
> !     if (!check_changed_any(FALSE))
>         getout(0);
>
>       exiting = FALSE;
> --- 825,831 ----
>   # endif
>       /* If there are changed buffers, present the user with a dialog if
>        * possible, otherwise give an error message. */
> !     if (!check_changed_any(FALSE, FALSE))
>         getout(0);
>
>       exiting = FALSE;
> *** ../vim-7.4.1036/src/gui_gtk_x11.c   2015-12-29 18:52:33.348054385 +0100
> --- src/gui_gtk_x11.c   2016-01-02 22:13:48.714503636 +0100
> ***************
> *** 2003,2009 ****
>        * If there are changed buffers, present the user with
>        * a dialog if possible, otherwise give an error message.
>        */
> !     shutdown_cancelled = check_changed_any(FALSE);
>
>       exiting = FALSE;
>       cmdmod = save_cmdmod;
> --- 2003,2009 ----
>        * If there are changed buffers, present the user with
>        * a dialog if possible, otherwise give an error message.
>        */
> !     shutdown_cancelled = check_changed_any(FALSE, FALSE);
>
>       exiting = FALSE;
>       cmdmod = save_cmdmod;
> *** ../vim-7.4.1036/src/os_unix.c       2015-12-31 21:26:50.649266887 +0100
> --- src/os_unix.c       2016-01-02 22:13:48.718503593 +0100
> ***************
> *** 7132,7138 ****
>
>       save_cmdmod = cmdmod;
>       cmdmod.confirm = TRUE;
> !     if (check_changed_any(FALSE))
>         /* Mustn't logout */
>         cancel_shutdown = True;
>       cmdmod = save_cmdmod;
> --- 7132,7138 ----
>
>       save_cmdmod = cmdmod;
>       cmdmod.confirm = TRUE;
> !     if (check_changed_any(FALSE, FALSE))
>         /* Mustn't logout */
>         cancel_shutdown = True;
>       cmdmod = save_cmdmod;
> *** ../vim-7.4.1036/src/proto/ex_cmds2.pro      2013-11-09
> 03:31:45.000000000 +0100
> --- src/proto/ex_cmds2.pro      2016-01-02 22:13:48.718503593 +0100
> ***************
> *** 39,45 ****
>   void browse_save_fname __ARGS((buf_T *buf));
>   void dialog_changed __ARGS((buf_T *buf, int checkall));
>   int can_abandon __ARGS((buf_T *buf, int forceit));
> ! int check_changed_any __ARGS((int hidden));
>   int check_fname __ARGS((void));
>   int buf_write_all __ARGS((buf_T *buf, int forceit));
>   int get_arglist __ARGS((garray_T *gap, char_u *str));
> --- 39,45 ----
>   void browse_save_fname __ARGS((buf_T *buf));
>   void dialog_changed __ARGS((buf_T *buf, int checkall));
>   int can_abandon __ARGS((buf_T *buf, int forceit));
> ! int check_changed_any __ARGS((int hidden, int unload));
>   int check_fname __ARGS((void));
>   int buf_write_all __ARGS((buf_T *buf, int forceit));
>   int get_arglist __ARGS((garray_T *gap, char_u *str));
> *** ../vim-7.4.1036/src/version.c       2016-01-02 22:02:56.201651969 +0100
> --- src/version.c       2016-01-02 22:12:44.887202623 +0100
> ***************
> *** 743,744 ****
> --- 743,746 ----
>   {   /* Add new patch number below this line */
> + /**/
> +     1037,
>   /**/
>
> --
> An indication you must be a manager:
> You feel sorry for Dilbert's boss.
>
>  /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net
>  \\\
> ///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/
> \\\
> \\\  an exciting new programming language -- http://www.Zimbu.org
> ///
>  \\\            help me help AIDS victims -- http://ICCF-Holland.org
> ///
>
> --
> --
> You received this message from the "vim_dev" maillist.
> Do not top-post! Type your reply below the text you are replying to.
> For more information, visit http://www.vim.org/maillist.php
>
> ---
> You received this message because you are subscribed to the Google Groups
> "vim_dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui