diff --git a/7.3.392 b/7.3.392 new file mode 100644 index 0000000..a603d90 --- /dev/null +++ b/7.3.392 @@ -0,0 +1,115 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.392 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.392 +Problem: When setting 'undofile' while the file is already loaded but + unchanged, try reading the undo file. (Andy Wokula) +Solution: Compute a checksum of the text when 'undofile' is set. (Christian + Brabandt) +Files: src/option.c, src/testdir/test72.in, src/testdir/test72.ok + + +*** ../vim-7.3.391/src/option.c 2011-11-30 11:31:25.000000000 +0100 +--- src/option.c 2012-01-04 19:34:11.000000000 +0100 +*************** +*** 7516,7521 **** +--- 7516,7545 ---- + compatible_set(); + } + ++ #ifdef FEAT_PERSISTENT_UNDO ++ /* 'undofile' */ ++ else if ((int *)varp == &curbuf->b_p_udf || (int *)varp == &p_udf) ++ { ++ char_u hash[UNDO_HASH_SIZE]; ++ buf_T *save_curbuf = curbuf; ++ ++ for (curbuf = firstbuf; curbuf != NULL; curbuf = curbuf->b_next) ++ { ++ /* When 'undofile' is set globally: for every buffer, otherwise ++ * only for the current buffer: Try to read in the undofile, if ++ * one exists and the buffer wasn't changed. */ ++ if ((curbuf == save_curbuf ++ || (opt_flags & OPT_GLOBAL) || opt_flags == 0) ++ && !curbufIsChanged()) ++ { ++ u_compute_hash(hash); ++ u_read_undo(NULL, hash, curbuf->b_fname); ++ } ++ } ++ curbuf = save_curbuf; ++ } ++ #endif ++ + /* 'list', 'number' */ + else if ((int *)varp == &curwin->w_p_list + || (int *)varp == &curwin->w_p_nu +*** ../vim-7.3.391/src/testdir/test72.in 2010-08-15 21:57:29.000000000 +0200 +--- src/testdir/test72.in 2012-01-04 19:04:17.000000000 +0100 +*************** +*** 51,56 **** +--- 51,62 ---- + :e Xtestfile + uuu:w >>test.out + :" ++ :" Test that reading the undofiles when setting undofile works ++ :set noundofile ul=0 ++ i ++ u:e! Xtestfile ++ :set undofile ul=100 ++ uuuuuu:w >>test.out + :" And now with encryption, cryptmethod=zip + :e! Xtestfile + :set undofile cm=zip +*** ../vim-7.3.391/src/testdir/test72.ok 2010-08-15 21:57:29.000000000 +0200 +--- src/testdir/test72.ok 2012-01-04 19:04:17.000000000 +0100 +*************** +*** 7,12 **** +--- 7,22 ---- + eight + nine + ten ++ one ++ two ++ three ++ four ++ five ++ six ++ seven ++ eight ++ nine ++ ten + monday + wednesday + thursday +*** ../vim-7.3.391/src/version.c 2012-01-04 14:35:31.000000000 +0100 +--- src/version.c 2012-01-04 19:33:41.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 392, + /**/ + +-- +BROTHER MAYNARD: Armaments Chapter Two Verses Nine to Twenty One. +ANOTHER MONK: And St. Attila raised his hand grenade up on high saying "O + Lord bless this thy hand grenade that with it thou mayest + blow thine enemies to tiny bits, in thy mercy. "and the Lord + did grin and people did feast upon the lambs and sloths and + carp and anchovies and orang-utans and breakfast cereals and + fruit bats and... +BROTHER MAYNARD: Skip a bit brother ... + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 ///