From b8fc4b030a6ee2b7c92c364f19eb7ab7ae6dd83a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Jan 28 2013 11:11:17 +0000 Subject: - patchlevel 753 --- diff --git a/7.3.753 b/7.3.753 new file mode 100644 index 0000000..f6ae230 --- /dev/null +++ b/7.3.753 @@ -0,0 +1,103 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.753 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.753 +Problem: When there is a QuitPre autocommand using ":q" twice does not work + for exiting when there are more files to edit. +Solution: Do not decrement quitmore in an autocommand. (Techlive Zheng) +Files: src/ex_docmd.c, src/fileio.c, src/proto/fileio.pro + + +*** ../vim-7.3.752/src/ex_docmd.c 2012-11-28 23:03:02.000000000 +0100 +--- src/ex_docmd.c 2012-12-05 19:07:01.000000000 +0100 +*************** +*** 1729,1739 **** + ++ex_nesting_level; + #endif + +! /* when not editing the last file :q has to be typed twice */ + if (quitmore + #ifdef FEAT_EVAL + /* avoid that a function call in 'statusline' does this */ + && !getline_equal(fgetline, cookie, get_func_line) + #endif + ) + --quitmore; +--- 1729,1741 ---- + ++ex_nesting_level; + #endif + +! /* When the last file has not been edited :q has to be typed twice. */ + if (quitmore + #ifdef FEAT_EVAL + /* avoid that a function call in 'statusline' does this */ + && !getline_equal(fgetline, cookie, get_func_line) ++ /* avoid that an autocommand, e.g. QuitPre, does this */ ++ && !getline_equal(fgetline, cookie, getnextac) + #endif + ) + --quitmore; +*** ../vim-7.3.752/src/fileio.c 2012-08-29 18:50:50.000000000 +0200 +--- src/fileio.c 2012-12-05 19:08:17.000000000 +0100 +*************** +*** 7774,7780 **** + static int event_ignored __ARGS((event_T event)); + static int au_get_grouparg __ARGS((char_u **argp)); + static int do_autocmd_event __ARGS((event_T event, char_u *pat, int nested, char_u *cmd, int forceit, int group)); +- static char_u *getnextac __ARGS((int c, void *cookie, int indent)); + static int apply_autocmds_group __ARGS((event_T event, char_u *fname, char_u *fname_io, int force, int group, buf_T *buf, exarg_T *eap)); + static void auto_next_pat __ARGS((AutoPatCmd *apc, int stop_at_last)); + +--- 7774,7779 ---- +*************** +*** 9613,9619 **** + * Called by do_cmdline() to get the next line for ":if". + * Returns allocated string, or NULL for end of autocommands. + */ +! static char_u * + getnextac(c, cookie, indent) + int c UNUSED; + void *cookie; +--- 9612,9618 ---- + * Called by do_cmdline() to get the next line for ":if". + * Returns allocated string, or NULL for end of autocommands. + */ +! char_u * + getnextac(c, cookie, indent) + int c UNUSED; + void *cookie; +*** ../vim-7.3.752/src/proto/fileio.pro 2012-02-29 18:22:03.000000000 +0100 +--- src/proto/fileio.pro 2012-12-05 19:08:24.000000000 +0100 +*************** +*** 47,52 **** +--- 47,53 ---- + int has_insertcharpre __ARGS((void)); + void block_autocmds __ARGS((void)); + void unblock_autocmds __ARGS((void)); ++ char_u *getnextac __ARGS((int c, void *cookie, int indent)); + int has_autocmd __ARGS((event_T event, char_u *sfname, buf_T *buf)); + char_u *get_augroup_name __ARGS((expand_T *xp, int idx)); + char_u *set_context_in_autocmd __ARGS((expand_T *xp, char_u *arg, int doautocmd)); +*** ../vim-7.3.752/src/version.c 2012-12-05 19:00:03.000000000 +0100 +--- src/version.c 2012-12-05 19:08:34.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 753, + /**/ + +-- +Laughing helps. It's like jogging on the inside. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 ///