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

Patch 7.2.224

Expand Messages
  • Bram Moolenaar
    Patch 7.2.224 Problem: Crash when using completefunc . (Ingo Karkat) Solution: Disallow entering edit() recursively when doing completion. Files:
    Message 1 of 1 , Jul 9, 2009
    • 0 Attachment
      Patch 7.2.224
      Problem: Crash when using 'completefunc'. (Ingo Karkat)
      Solution: Disallow entering edit() recursively when doing completion.
      Files: src/edit.c


      *** ../vim-7.2.223/src/edit.c 2009-05-26 11:01:43.000000000 +0200
      --- src/edit.c 2009-07-09 18:01:49.000000000 +0200
      ***************
      *** 114,119 ****
      --- 114,123 ----
      * FALSE the word to be completed must be located. */
      static int compl_started = FALSE;

      + /* Set when doing something for completion that may call edit() recursively,
      + * which is not allowed. */
      + static int compl_busy = FALSE;
      +
      static int compl_matches = 0;
      static char_u *compl_pattern = NULL;
      static int compl_direction = FORWARD;
      ***************
      *** 346,352 ****

      #ifdef FEAT_INS_EXPAND
      /* Don't allow recursive insert mode when busy with completion. */
      ! if (compl_started || pum_visible())
      {
      EMSG(_(e_secure));
      return FALSE;
      --- 350,356 ----

      #ifdef FEAT_INS_EXPAND
      /* Don't allow recursive insert mode when busy with completion. */
      ! if (compl_started || compl_busy || pum_visible())
      {
      EMSG(_(e_secure));
      return FALSE;
      ***************
      *** 1340,1347 ****
      --- 1344,1353 ----
      goto normalchar;

      docomplete:
      + compl_busy = TRUE;
      if (ins_complete(c) == FAIL)
      compl_cont_status = 0;
      + compl_busy = FALSE;
      break;
      #endif /* FEAT_INS_EXPAND */

      ***************
      *** 3172,3177 ****
      --- 3178,3184 ----
      vim_free(match);
      } while (compl_curr_match != NULL && compl_curr_match != compl_first_match);
      compl_first_match = compl_curr_match = NULL;
      + compl_shown_match = NULL;
      }

      static void
      *** ../vim-7.2.223/src/version.c 2009-07-09 15:55:34.000000000 +0200
      --- src/version.c 2009-07-09 18:14:16.000000000 +0200
      ***************
      *** 678,679 ****
      --- 678,681 ----
      { /* Add new patch number below this line */
      + /**/
      + 224,
      /**/

      --
      hundred-and-one symptoms of being an internet addict:
      77. The phone company asks you to test drive their new PBX system

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