From 09ee9107d88b352b1e601d38fd5ae72d9a67fdb6 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Apr 07 2014 11:13:10 +0000 Subject: - patchlevel 213 --- diff --git a/7.4.213 b/7.4.213 new file mode 100644 index 0000000..1d0f55c --- /dev/null +++ b/7.4.213 @@ -0,0 +1,211 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.213 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.213 +Problem: It's not possible to open a new buffer without creating a swap + file. +Solution: Add the ":noswapfile" modifier. (Christian Brabandt) +Files: runtime/doc/recover.txt, src/ex_cmds.h, src/ex_docmd.c, + src/memline.c, src/structs.h + + +*** ../vim-7.4.212/runtime/doc/recover.txt 2013-08-10 13:25:00.000000000 +0200 +--- runtime/doc/recover.txt 2014-03-23 16:01:59.655309841 +0100 +*************** +*** 81,87 **** + 'maxmemtot'. And when making a change to a read-only file, the swap file is + created anyway. + +! The 'swapfile' option can be reset to avoid creating a swapfile. + + + Detecting an existing swap file ~ +--- 81,94 ---- + 'maxmemtot'. And when making a change to a read-only file, the swap file is + created anyway. + +! The 'swapfile' option can be reset to avoid creating a swapfile. And the +! |:noswapfile| modifier can be used to not create a swapfile for a new buffer. +! +! :noswap[file] {command} *:noswap* *:noswapfile* +! Execute {command}. If it contains a command that loads a new +! buffer, it will be loaded without creating a swapfile and the +! 'swapfile' option will be reset. If a buffer already had a +! swapfile it is not removed and 'swapfile' is not reset. + + + Detecting an existing swap file ~ +*** ../vim-7.4.212/src/ex_cmds.h 2014-03-22 13:29:57.693846167 +0100 +--- src/ex_cmds.h 2014-03-23 15:36:42.399286592 +0100 +*************** +*** 655,660 **** +--- 655,662 ---- + EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_noremenu, "noremenu", ex_menu, + RANGE|NOTADR|ZEROR|BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), ++ EX(CMD_noswapfile, "noswapfile", ex_wrongmodifier, ++ NEEDARG|EXTRA|NOTRLCOM), + EX(CMD_normal, "normal", ex_normal, + RANGE|BANG|EXTRA|NEEDARG|NOTRLCOM|USECTRLV|SBOXOK|CMDWIN), + EX(CMD_number, "number", ex_print, +*** ../vim-7.4.212/src/ex_docmd.c 2014-03-23 15:12:29.919264336 +0100 +--- src/ex_docmd.c 2014-03-23 15:44:42.335293946 +0100 +*************** +*** 1874,1891 **** + #endif + continue; + +! case 'n': if (!checkforcmd(&ea.cmd, "noautocmd", 3)) +! break; +! #ifdef FEAT_AUTOCMD +! if (cmdmod.save_ei == NULL) + { +! /* Set 'eventignore' to "all". Restore the +! * existing option value later. */ +! cmdmod.save_ei = vim_strsave(p_ei); +! set_string_option_direct((char_u *)"ei", -1, + (char_u *)"all", OPT_FREE, SID_NONE); +! } + #endif + continue; + + case 'r': if (!checkforcmd(&ea.cmd, "rightbelow", 6)) +--- 1874,1896 ---- + #endif + continue; + +! case 'n': if (checkforcmd(&ea.cmd, "noautocmd", 3)) + { +! #ifdef FEAT_AUTOCMD +! if (cmdmod.save_ei == NULL) +! { +! /* Set 'eventignore' to "all". Restore the +! * existing option value later. */ +! cmdmod.save_ei = vim_strsave(p_ei); +! set_string_option_direct((char_u *)"ei", -1, + (char_u *)"all", OPT_FREE, SID_NONE); +! } + #endif ++ continue; ++ } ++ if (!checkforcmd(&ea.cmd, "noswapfile", 6)) ++ break; ++ cmdmod.noswapfile = TRUE; + continue; + + case 'r': if (!checkforcmd(&ea.cmd, "rightbelow", 6)) +*************** +*** 2596,2601 **** +--- 2601,2608 ---- + case CMD_lua: + case CMD_match: + case CMD_mzscheme: ++ case CMD_noautocmd: ++ case CMD_noswapfile: + case CMD_perl: + case CMD_psearch: + case CMD_python: +*************** +*** 3099,3104 **** +--- 3106,3112 ---- + {"leftabove", 5, FALSE}, + {"lockmarks", 3, FALSE}, + {"noautocmd", 3, FALSE}, ++ {"noswapfile", 3, FALSE}, + {"rightbelow", 6, FALSE}, + {"sandbox", 3, FALSE}, + {"silent", 3, FALSE}, +*************** +*** 3611,3616 **** +--- 3619,3626 ---- + case CMD_keeppatterns: + case CMD_leftabove: + case CMD_lockmarks: ++ case CMD_noautocmd: ++ case CMD_noswapfile: + case CMD_rightbelow: + case CMD_sandbox: + case CMD_silent: +*** ../vim-7.4.212/src/memline.c 2014-02-11 15:23:27.942123631 +0100 +--- src/memline.c 2014-03-23 15:48:05.679297062 +0100 +*************** +*** 289,294 **** +--- 289,297 ---- + buf->b_ml.ml_chunksize = NULL; + #endif + ++ if (cmdmod.noswapfile) ++ buf->b_p_swf = FALSE; ++ + /* + * When 'updatecount' is non-zero swap file may be opened later. + */ +*************** +*** 606,612 **** + * When 'updatecount' is 0 and 'noswapfile' there is no swap file. + * For help files we will make a swap file now. + */ +! if (p_uc != 0) + ml_open_file(buf); /* create a swap file */ + return; + } +--- 609,615 ---- + * When 'updatecount' is 0 and 'noswapfile' there is no swap file. + * For help files we will make a swap file now. + */ +! if (p_uc != 0 && !cmdmod.noswapfile) + ml_open_file(buf); /* create a swap file */ + return; + } +*************** +*** 719,725 **** + char_u *dirp; + + mfp = buf->b_ml.ml_mfp; +! if (mfp == NULL || mfp->mf_fd >= 0 || !buf->b_p_swf) + return; /* nothing to do */ + + #ifdef FEAT_SPELL +--- 722,728 ---- + char_u *dirp; + + mfp = buf->b_ml.ml_mfp; +! if (mfp == NULL || mfp->mf_fd >= 0 || !buf->b_p_swf || cmdmod.noswapfile) + return; /* nothing to do */ + + #ifdef FEAT_SPELL +*** ../vim-7.4.212/src/structs.h 2014-03-23 15:12:29.943264337 +0100 +--- src/structs.h 2014-03-23 15:36:42.407286592 +0100 +*************** +*** 545,550 **** +--- 545,551 ---- + int keepjumps; /* TRUE when ":keepjumps" was used */ + int lockmarks; /* TRUE when ":lockmarks" was used */ + int keeppatterns; /* TRUE when ":keeppatterns" was used */ ++ int noswapfile; /* TRUE when ":noswapfile" was used */ + # ifdef FEAT_AUTOCMD + char_u *save_ei; /* saved value of 'eventignore' */ + # endif +*** ../vim-7.4.212/src/version.c 2014-03-23 15:12:29.943264337 +0100 +--- src/version.c 2014-03-23 16:02:16.519310100 +0100 +*************** +*** 736,737 **** +--- 736,739 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 213, + /**/ + +-- +Looking at Perl through Lisp glasses, Perl looks atrocious. + + /// 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 ///