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

Patch 6.3.085

Expand Messages
  • Bram Moolenaar
    Patch 6.3.085 Problem: Crash in syntax highlighting code. (Marc Espie) Solution: Prevent current_col going past the end of the line. Files:
    Message 1 of 1 , Jul 24, 2005
    • 0 Attachment
      Patch 6.3.085
      Problem: Crash in syntax highlighting code. (Marc Espie)
      Solution: Prevent current_col going past the end of the line.
      Files: src/syntax.c


      *** ../vim-6.3.084/src/syntax.c Fri Jul 1 11:20:39 2005
      --- src/syntax.c Sun Jul 24 19:39:04 2005
      ***************
      *** 659,664 ****
      --- 659,665 ----
      linenr_T found_current_lnum = 0;
      int found_current_col= 0;
      lpos_T found_m_endpos;
      + colnr_T prev_current_col;

      /*
      * Clear any current state that might be hanging around.
      ***************
      *** 829,838 ****
      ++current_col;

      /* syn_current_attr() will have skipped the check for
      ! * an item that ends here, need to do that now. */
      ! ++current_col;
      check_state_ends();
      ! --current_col;
      }
      else
      break;
      --- 830,842 ----
      ++current_col;

      /* syn_current_attr() will have skipped the check for
      ! * an item that ends here, need to do that now. Be
      ! * careful not to go past the NUL. */
      ! prev_current_col = current_col;
      ! if (syn_getcurline()[current_col] != NUL)
      ! ++current_col;
      check_state_ends();
      ! current_col = prev_current_col;
      }
      else
      break;
      ***************
      *** 1635,1640 ****
      --- 1639,1645 ----
      int syncing; /* called for syncing */
      {
      stateitem_T *cur_si;
      + colnr_T prev_current_col;

      if (!current_finished)
      {
      ***************
      *** 1656,1665 ****
      return TRUE;

      /* syn_current_attr() will have skipped the check for an item
      ! * that ends here, need to do that now. */
      ! ++current_col;
      check_state_ends();
      ! --current_col;
      }
      ++current_col;
      }
      --- 1661,1673 ----
      return TRUE;

      /* syn_current_attr() will have skipped the check for an item
      ! * that ends here, need to do that now. Be careful not to go
      ! * past the NUL. */
      ! prev_current_col = current_col;
      ! if (syn_getcurline()[current_col] != NUL)
      ! ++current_col;
      check_state_ends();
      ! current_col = prev_current_col;
      }
      ++current_col;
      }
      ***************
      *** 2178,2184 ****
      if (!syncing)
      {
      check_state_ends();
      ! if (current_state.ga_len > 0)
      {
      ++current_col;
      check_state_ends();
      --- 2186,2193 ----
      if (!syncing)
      {
      check_state_ends();
      ! if (current_state.ga_len > 0
      ! && syn_getcurline()[current_col] != NUL)
      {
      ++current_col;
      check_state_ends();
      *** ../vim-6.3.084/src/version.c Thu Jul 21 13:49:11 2005
      --- src/version.c Sun Jul 24 19:42:30 2005
      ***************
      *** 643,644 ****
      --- 643,646 ----
      { /* Add new patch number below this line */
      + /**/
      + 85,
      /**/

      --
      BEDEVERE: How do you know so much about swallows?
      ARTHUR: Well you have to know these things when you're a king, you know.
      "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/ \\\
      \\\ Project leader for A-A-P -- http://www.A-A-P.org ///
      \\\ Buy LOTR 3 and help AIDS victims -- http://ICCF.nl/lotr.html ///
    Your message has been successfully submitted and would be delivered to recipients shortly.