Loading ...
Sorry, an error occurred while loading the content.

Patch 7.2.370

Expand Messages
  • Bram Moolenaar
    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)
    Message 1 of 1 , Feb 24, 2010
    • 0 Attachment
      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@... -- 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 ///

      --
      You received this message from the "vim_dev" maillist.
      For more information, visit http://www.vim.org/maillist.php
    Your message has been successfully submitted and would be delivered to recipients shortly.