home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / patches / 7.2 / 7.2.370 < prev    next >
Encoding:
Internet Message Format  |  2010-02-23  |  4.3 KB

  1. To: vim-dev@vim.org
  2. Subject: Patch 7.2.370
  3. Fcc: outbox
  4. From: Bram Moolenaar <Bram@moolenaar.net>
  5. Mime-Version: 1.0
  6. Content-Type: text/plain; charset=UTF-8
  7. Content-Transfer-Encoding: 8bit
  8. ------------
  9.  
  10. Patch 7.2.370 (after 7.2.356)
  11. Problem:    A redraw may cause folds to be closed.
  12. Solution:   Revert part of the previous patch.  Add a test. (Lech Lorens)
  13. Files:        src/diff.c, src/fold.c, src/option.c, src/testdir/test45.in,
  14.         src/testdir/test45.ok
  15.  
  16.  
  17. *** ../vim-7.2.369/src/diff.c    2009-07-22 16:22:33.000000000 +0200
  18. --- src/diff.c    2010-02-24 14:31:12.000000000 +0100
  19. ***************
  20. *** 1117,1142 ****
  21.       win_T    *wp;
  22.       int        addbuf;        /* Add buffer to diff. */
  23.   {
  24.       wp->w_p_diff = TRUE;
  25.       wp->w_p_scb = TRUE;
  26.       wp->w_p_wrap = FALSE;
  27.   # ifdef FEAT_FOLDING
  28. !     {
  29. !     win_T        *old_curwin = curwin;
  30. !     curwin = wp;
  31. !     curbuf = curwin->w_buffer;
  32. !     set_string_option_direct((char_u *)"fdm", -1, (char_u *)"diff",
  33.                                  OPT_LOCAL|OPT_FREE, 0);
  34. !     curwin = old_curwin;
  35. !     curbuf = curwin->w_buffer;
  36. !     wp->w_p_fdc = diff_foldcolumn;
  37. !     wp->w_p_fen = TRUE;
  38. !     wp->w_p_fdl = 0;
  39. !     foldUpdateAll(wp);
  40. !     /* make sure topline is not halfway a fold */
  41. !     changed_window_setting_win(wp);
  42. !     }
  43.   # endif
  44.   #ifdef FEAT_SCROLLBIND
  45.       if (vim_strchr(p_sbo, 'h') == NULL)
  46. --- 1117,1147 ----
  47.       win_T    *wp;
  48.       int        addbuf;        /* Add buffer to diff. */
  49.   {
  50. + # ifdef FEAT_FOLDING
  51. +     win_T *old_curwin = curwin;
  52. +     /* close the manually opened folds */
  53. +     curwin = wp;
  54. +     newFoldLevel();
  55. +     curwin = old_curwin;
  56. + # endif
  57.       wp->w_p_diff = TRUE;
  58.       wp->w_p_scb = TRUE;
  59.       wp->w_p_wrap = FALSE;
  60.   # ifdef FEAT_FOLDING
  61. !     curwin = wp;
  62. !     curbuf = curwin->w_buffer;
  63. !     set_string_option_direct((char_u *)"fdm", -1, (char_u *)"diff",
  64.                                  OPT_LOCAL|OPT_FREE, 0);
  65. !     curwin = old_curwin;
  66. !     curbuf = curwin->w_buffer;
  67. !     wp->w_p_fdc = diff_foldcolumn;
  68. !     wp->w_p_fen = TRUE;
  69. !     wp->w_p_fdl = 0;
  70. !     foldUpdateAll(wp);
  71. !     /* make sure topline is not halfway a fold */
  72. !     changed_window_setting_win(wp);
  73.   # endif
  74.   #ifdef FEAT_SCROLLBIND
  75.       if (vim_strchr(p_sbo, 'h') == NULL)
  76. *** ../vim-7.2.369/src/fold.c    2010-02-03 18:14:41.000000000 +0100
  77. --- src/fold.c    2010-02-24 13:09:04.000000000 +0100
  78. ***************
  79. *** 854,865 ****
  80.           && fp->fd_top < bot)
  81.       {
  82.       fp->fd_small = MAYBE;
  83. -     /* Not sure if this is the right place to reset fd_flags (suggested by
  84. -      * Lech Lorens). */
  85. -         if (wp->w_foldinvalid)
  86. -             fp->fd_flags = FD_LEVEL;
  87.       ++fp;
  88.       }
  89.   
  90. --- 854,859 ----
  91. *** ../vim-7.2.369/src/option.c    2010-02-11 17:02:04.000000000 +0100
  92. --- src/option.c    2010-02-24 13:09:44.000000000 +0100
  93. ***************
  94. *** 6586,6592 ****
  95. --- 6586,6596 ----
  96.           || *curwin->w_p_fdm == NUL)
  97.           errmsg = e_invarg;
  98.       else
  99. +     {
  100.           foldUpdateAll(curwin);
  101. +         if (foldmethodIsDiff(curwin))
  102. +         newFoldLevel();
  103. +     }
  104.       }
  105.   # ifdef FEAT_EVAL
  106.       /* 'foldexpr' */
  107. *** ../vim-7.2.369/src/testdir/test45.in    2009-11-03 14:46:35.000000000 +0100
  108. --- src/testdir/test45.in    2010-02-24 13:02:39.000000000 +0100
  109. ***************
  110. *** 36,41 ****
  111. --- 36,43 ----
  112.   k:call append("$", getline("."))
  113.   jAcommentstart  Acommentend:set fdl=1
  114.   3j:call append("$", getline("."))
  115. + :set fdl=0
  116. + zO j:call append("$", getline("."))
  117.   :" test expression folding
  118.   :fun Flvl()
  119.     let l = getline(v:lnum)
  120. *** ../vim-7.2.369/src/testdir/test45.ok    2009-11-03 14:46:35.000000000 +0100
  121. --- src/testdir/test45.ok    2010-02-24 12:58:55.000000000 +0100
  122. ***************
  123. *** 11,16 ****
  124. --- 11,17 ----
  125.   folding 9 ii
  126.       3 cc
  127.   7 gg
  128. + 8 hh
  129.   expr 2
  130.   1
  131.   2
  132. *** ../vim-7.2.369/src/version.c    2010-02-24 13:59:09.000000000 +0100
  133. --- src/version.c    2010-02-24 14:28:20.000000000 +0100
  134. ***************
  135. *** 683,684 ****
  136. --- 683,686 ----
  137.   {   /* Add new patch number below this line */
  138. + /**/
  139. +     370,
  140.   /**/
  141.  
  142. -- 
  143. MAN:    Fetchez la vache!
  144. GUARD:  Quoi?
  145. MAN:    Fetchez la vache!
  146.                  "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
  147.  
  148.  /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
  149. ///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
  150. \\\        download, build and distribute -- http://www.A-A-P.org        ///
  151.  \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
  152.