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

Patch 7.3.756

Expand Messages
  • Bram Moolenaar
    Patch 7.3.756 Problem: A location list can get a wrong count in :lvimgrep. Solution: Check if the list was changed by autocommands. (mostly by Christian
    Message 1 of 1 , Dec 12, 2012
    • 0 Attachment
      Patch 7.3.756
      Problem: A location list can get a wrong count in :lvimgrep.
      Solution: Check if the list was changed by autocommands. (mostly by
      Christian Brabandt)
      Files: src/quickfic.c


      *** ../vim-7.3.755/src/quickfix.c 2012-12-05 15:16:42.000000000 +0100
      --- src/quickfix.c 2012-12-12 15:50:08.000000000 +0100
      ***************
      *** 3109,3114 ****
      --- 3109,3117 ----
      char_u *p;
      int fi;
      qf_info_T *qi = &ql_info;
      + #ifdef FEAT_AUTOCMD
      + qfline_T *cur_qf_start;
      + #endif
      qfline_T *prevp = NULL;
      long lnum;
      buf_T *buf;
      ***************
      *** 3218,3223 ****
      --- 3221,3232 ----
      * ":lcd %:p:h" changes the meaning of short path names. */
      mch_dirname(dirname_start, MAXPATHL);

      + #ifdef FEAT_AUTOCMD
      + /* Remeber the value of qf_start, so that we can check for autocommands
      + * changing the current quickfix list. */
      + cur_qf_start = qi->qf_lists[qi->qf_curlist].qf_start;
      + #endif
      +
      seconds = (time_t)0;
      for (fi = 0; fi < fcount && !got_int && tomatch > 0; ++fi)
      {
      ***************
      *** 3273,3278 ****
      --- 3282,3309 ----
      /* Use existing, loaded buffer. */
      using_dummy = FALSE;

      + #ifdef FEAT_AUTOCMD
      + if (cur_qf_start != qi->qf_lists[qi->qf_curlist].qf_start)
      + {
      + int idx;
      +
      + /* Autocommands changed the quickfix list. Find the one we were
      + * using and restore it. */
      + for (idx = 0; idx < LISTCOUNT; ++idx)
      + if (cur_qf_start == qi->qf_lists[idx].qf_start)
      + {
      + qi->qf_curlist = idx;
      + break;
      + }
      + if (idx == LISTCOUNT)
      + {
      + /* List cannot be found, create a new one. */
      + qf_new_list(qi, *eap->cmdlinep);
      + cur_qf_start = qi->qf_lists[qi->qf_curlist].qf_start;
      + }
      + }
      + #endif
      +
      if (buf == NULL)
      {
      if (!got_int)
      ***************
      *** 3324,3329 ****
      --- 3355,3363 ----
      if (got_int)
      break;
      }
      + #ifdef FEAT_AUTOCMD
      + cur_qf_start = qi->qf_lists[qi->qf_curlist].qf_start;
      + #endif

      if (using_dummy)
      {
      *** ../vim-7.3.755/src/version.c 2012-12-12 14:25:01.000000000 +0100
      --- src/version.c 2012-12-12 15:35:58.000000000 +0100
      ***************
      *** 727,728 ****
      --- 727,730 ----
      { /* Add new patch number below this line */
      + /**/
      + 756,
      /**/

      --
      hundred-and-one symptoms of being an internet addict:
      146. You experience ACTUAL physical withdrawal symptoms when away
      from your 'puter and the net.

      /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
      /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
      \\\ an exciting new programming language -- http://www.Zimbu.org ///
      \\\ help me help AIDS victims -- http://ICCF-Holland.org ///

      --
      You received this message from the "vim_dev" maillist.
      Do not top-post! Type your reply below the text you are replying to.
      For more information, visit http://www.vim.org/maillist.php
    Your message has been successfully submitted and would be delivered to recipients shortly.