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

Patch 7.2.078

Expand Messages
  • Bram Moolenaar
    Patch 7.2.078 Problem: When deleting a fold that is specified with markers the cursor position may be wrong. Folds may not be displayed properly after a
    Message 1 of 1 , Jan 6, 2009
    • 0 Attachment
      Patch 7.2.078
      Problem: When deleting a fold that is specified with markers the cursor
      position may be wrong. Folds may not be displayed properly after
      a delete. Wrong fold may be deleted.
      Solution: Fix the problems. (mostly by Lech Lorens)
      Files: src/fold.c


      *** ../vim-7.2.077/src/fold.c Fri Nov 28 21:26:50 2008
      --- src/fold.c Tue Jan 6 14:53:26 2009
      ***************
      *** 740,746 ****
      garray_T *found_ga;
      fold_T *found_fp = NULL;
      linenr_T found_off = 0;
      ! int use_level = FALSE;
      int maybe_small = FALSE;
      int level = 0;
      linenr_T lnum = start;
      --- 740,746 ----
      garray_T *found_ga;
      fold_T *found_fp = NULL;
      linenr_T found_off = 0;
      ! int use_level;
      int maybe_small = FALSE;
      int level = 0;
      linenr_T lnum = start;
      ***************
      *** 757,762 ****
      --- 757,763 ----
      gap = &curwin->w_folds;
      found_ga = NULL;
      lnum_off = 0;
      + use_level = FALSE;
      for (;;)
      {
      if (!foldFind(gap, lnum - lnum_off, &fp))
      ***************
      *** 783,802 ****
      else
      {
      lnum = found_fp->fd_top + found_fp->fd_len + found_off;
      - did_one = TRUE;

      if (foldmethodIsManual(curwin))
      deleteFoldEntry(found_ga,
      (int)(found_fp - (fold_T *)found_ga->ga_data), recursive);
      else
      {
      ! if (found_fp->fd_top + found_off < first_lnum)
      ! first_lnum = found_fp->fd_top;
      ! if (lnum > last_lnum)
      last_lnum = lnum;
      ! parseMarker(curwin);
      deleteFoldMarkers(found_fp, recursive, found_off);
      }

      /* redraw window */
      changed_window_setting();
      --- 784,804 ----
      else
      {
      lnum = found_fp->fd_top + found_fp->fd_len + found_off;

      if (foldmethodIsManual(curwin))
      deleteFoldEntry(found_ga,
      (int)(found_fp - (fold_T *)found_ga->ga_data), recursive);
      else
      {
      ! if (first_lnum > found_fp->fd_top + found_off)
      ! first_lnum = found_fp->fd_top + found_off;
      ! if (last_lnum < lnum)
      last_lnum = lnum;
      ! if (!did_one)
      ! parseMarker(curwin);
      deleteFoldMarkers(found_fp, recursive, found_off);
      }
      + did_one = TRUE;

      /* redraw window */
      changed_window_setting();
      ***************
      *** 811,816 ****
      --- 813,822 ----
      redraw_curbuf_later(INVERTED);
      #endif
      }
      + else
      + /* Deleting markers may make cursor column invalid. */
      + check_cursor_col();
      +
      if (last_lnum > 0)
      changed_lines(first_lnum, (colnr_T)0, last_lnum, 0L);
      }
      *** ../vim-7.2.077/src/version.c Wed Dec 31 16:20:54 2008
      --- src/version.c Tue Jan 6 15:00:36 2009
      ***************
      *** 678,679 ****
      --- 678,681 ----
      { /* Add new patch number below this line */
      + /**/
      + 78,
      /**/

      --
      Looking at Perl through Lisp glasses, Perl looks atrocious.

      /// 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.