vim/7.2.370
2010-02-24 16:23:19 +00:00

157 lines
4.3 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

To: vim-dev@vim.org
Subject: Patch 7.2.370
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.2.370 (after 7.2.356)
Problem: A redraw may cause folds to be closed.
Solution: Revert part of the previous patch. Add a test. (Lech Lorens)
Files: src/diff.c, src/fold.c, src/option.c, src/testdir/test45.in,
src/testdir/test45.ok
*** ../vim-7.2.369/src/diff.c 2009-07-22 16:22:33.000000000 +0200
--- src/diff.c 2010-02-24 14:31:12.000000000 +0100
***************
*** 1117,1142 ****
win_T *wp;
int addbuf; /* Add buffer to diff. */
{
wp->w_p_diff = TRUE;
wp->w_p_scb = TRUE;
wp->w_p_wrap = FALSE;
# ifdef FEAT_FOLDING
! {
! win_T *old_curwin = curwin;
!
! curwin = wp;
! curbuf = curwin->w_buffer;
! set_string_option_direct((char_u *)"fdm", -1, (char_u *)"diff",
OPT_LOCAL|OPT_FREE, 0);
! curwin = old_curwin;
! curbuf = curwin->w_buffer;
! wp->w_p_fdc = diff_foldcolumn;
! wp->w_p_fen = TRUE;
! wp->w_p_fdl = 0;
! foldUpdateAll(wp);
! /* make sure topline is not halfway a fold */
! changed_window_setting_win(wp);
! }
# endif
#ifdef FEAT_SCROLLBIND
if (vim_strchr(p_sbo, 'h') == NULL)
--- 1117,1147 ----
win_T *wp;
int addbuf; /* Add buffer to diff. */
{
+ # ifdef FEAT_FOLDING
+ win_T *old_curwin = curwin;
+
+ /* close the manually opened folds */
+ curwin = wp;
+ newFoldLevel();
+ curwin = old_curwin;
+ # endif
+
wp->w_p_diff = TRUE;
wp->w_p_scb = TRUE;
wp->w_p_wrap = FALSE;
# ifdef FEAT_FOLDING
! curwin = wp;
! curbuf = curwin->w_buffer;
! set_string_option_direct((char_u *)"fdm", -1, (char_u *)"diff",
OPT_LOCAL|OPT_FREE, 0);
! curwin = old_curwin;
! curbuf = curwin->w_buffer;
! wp->w_p_fdc = diff_foldcolumn;
! wp->w_p_fen = TRUE;
! wp->w_p_fdl = 0;
! foldUpdateAll(wp);
! /* make sure topline is not halfway a fold */
! changed_window_setting_win(wp);
# endif
#ifdef FEAT_SCROLLBIND
if (vim_strchr(p_sbo, 'h') == NULL)
*** ../vim-7.2.369/src/fold.c 2010-02-03 18:14:41.000000000 +0100
--- src/fold.c 2010-02-24 13:09:04.000000000 +0100
***************
*** 854,865 ****
&& fp->fd_top < bot)
{
fp->fd_small = MAYBE;
-
- /* Not sure if this is the right place to reset fd_flags (suggested by
- * Lech Lorens). */
- if (wp->w_foldinvalid)
- fp->fd_flags = FD_LEVEL;
-
++fp;
}
--- 854,859 ----
*** ../vim-7.2.369/src/option.c 2010-02-11 17:02:04.000000000 +0100
--- src/option.c 2010-02-24 13:09:44.000000000 +0100
***************
*** 6586,6592 ****
--- 6586,6596 ----
|| *curwin->w_p_fdm == NUL)
errmsg = e_invarg;
else
+ {
foldUpdateAll(curwin);
+ if (foldmethodIsDiff(curwin))
+ newFoldLevel();
+ }
}
# ifdef FEAT_EVAL
/* 'foldexpr' */
*** ../vim-7.2.369/src/testdir/test45.in 2009-11-03 14:46:35.000000000 +0100
--- src/testdir/test45.in 2010-02-24 13:02:39.000000000 +0100
***************
*** 36,41 ****
--- 36,43 ----
k:call append("$", getline("."))
jAcommentstart Acommentend:set fdl=1
3j:call append("$", getline("."))
+ :set fdl=0
+ zO j:call append("$", getline("."))
:" test expression folding
:fun Flvl()
let l = getline(v:lnum)
*** ../vim-7.2.369/src/testdir/test45.ok 2009-11-03 14:46:35.000000000 +0100
--- src/testdir/test45.ok 2010-02-24 12:58:55.000000000 +0100
***************
*** 11,16 ****
--- 11,17 ----
folding 9 ii
3 cc
7 gg
+ 8 hh
expr 2
1
2
*** ../vim-7.2.369/src/version.c 2010-02-24 13:59:09.000000000 +0100
--- src/version.c 2010-02-24 14:28:20.000000000 +0100
***************
*** 683,684 ****
--- 683,686 ----
{ /* Add new patch number below this line */
+ /**/
+ 370,
/**/
--
MAN: Fetchez la vache!
GUARD: Quoi?
MAN: Fetchez la vache!
"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/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///