mirror of
git://slackware.nl/current.git
synced 2025-01-14 08:01:11 +01:00
157 lines
4.3 KiB
Text
157 lines
4.3 KiB
Text
|
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
|
|||
|
+ zOj: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 ///
|