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

Patch 7.3.789

Expand Messages
  • Bram Moolenaar
    Patch 7.3.789 (after 7.3.776) Problem: k in regexp does not work in other window. Solution: Use the right buffer. (Yukihiro Nakadaira) Files:
    Message 1 of 1 , Jan 30, 2013
    • 0 Attachment
      Patch 7.3.789 (after 7.3.776)
      Problem: "\k" in regexp does not work in other window.
      Solution: Use the right buffer. (Yukihiro Nakadaira)
      Files: src/mbyte.c, src/proto/mbyte.pro, src/regexp.c


      *** ../vim-7.3.788/src/mbyte.c 2013-01-23 16:19:17.000000000 +0100
      --- src/mbyte.c 2013-01-30 13:53:07.000000000 +0100
      ***************
      *** 869,879 ****
      mb_get_class(p)
      char_u *p;
      {
      if (MB_BYTE2LEN(p[0]) == 1)
      {
      if (p[0] == NUL || vim_iswhite(p[0]))
      return 0;
      ! if (vim_iswordc(p[0]))
      return 2;
      return 1;
      }
      --- 869,887 ----
      mb_get_class(p)
      char_u *p;
      {
      + return mb_get_class_buf(p, curbuf);
      + }
      +
      + int
      + mb_get_class_buf(p, buf)
      + char_u *p;
      + buf_T *buf;
      + {
      if (MB_BYTE2LEN(p[0]) == 1)
      {
      if (p[0] == NUL || vim_iswhite(p[0]))
      return 0;
      ! if (vim_iswordc_buf(p[0], buf))
      return 2;
      return 1;
      }
      *** ../vim-7.3.788/src/proto/mbyte.pro 2011-08-10 13:21:30.000000000 +0200
      --- src/proto/mbyte.pro 2013-01-30 13:53:27.000000000 +0100
      ***************
      *** 4,9 ****
      --- 4,10 ----
      int bomb_size __ARGS((void));
      void remove_bom __ARGS((char_u *s));
      int mb_get_class __ARGS((char_u *p));
      + int mb_get_class_buf __ARGS((char_u *p, buf_T *buf));
      int dbcs_class __ARGS((unsigned lead, unsigned trail));
      int latin_char2len __ARGS((int c));
      int latin_char2bytes __ARGS((int c, char_u *buf));
      *** ../vim-7.3.788/src/regexp.c 2013-01-25 20:10:58.000000000 +0100
      --- src/regexp.c 2013-01-30 13:55:39.000000000 +0100
      ***************
      *** 4013,4020 ****
      reg_prev_class()
      {
      if (reginput > regline)
      ! return mb_get_class(reginput - 1
      ! - (*mb_head_off)(regline, reginput - 1));
      return -1;
      }

      --- 4013,4020 ----
      reg_prev_class()
      {
      if (reginput > regline)
      ! return mb_get_class_buf(reginput - 1
      ! - (*mb_head_off)(regline, reginput - 1), reg_buf);
      return -1;
      }

      ***************
      *** 4304,4310 ****
      int this_class;

      /* Get class of current and previous char (if it exists). */
      ! this_class = mb_get_class(reginput);
      if (this_class <= 1)
      status = RA_NOMATCH; /* not on a word at all */
      else if (reg_prev_class() == this_class)
      --- 4304,4310 ----
      int this_class;

      /* Get class of current and previous char (if it exists). */
      ! this_class = mb_get_class_buf(reginput, reg_buf);
      if (this_class <= 1)
      status = RA_NOMATCH; /* not on a word at all */
      else if (reg_prev_class() == this_class)
      ***************
      *** 4328,4334 ****
      int this_class, prev_class;

      /* Get class of current and previous char (if it exists). */
      ! this_class = mb_get_class(reginput);
      prev_class = reg_prev_class();
      if (this_class == prev_class
      || prev_class == 0 || prev_class == 1)
      --- 4328,4334 ----
      int this_class, prev_class;

      /* Get class of current and previous char (if it exists). */
      ! this_class = mb_get_class_buf(reginput, reg_buf);
      prev_class = reg_prev_class();
      if (this_class == prev_class
      || prev_class == 0 || prev_class == 1)
      ***************
      *** 4365,4378 ****
      break;

      case KWORD:
      ! if (!vim_iswordp(reginput))
      status = RA_NOMATCH;
      else
      ADVANCE_REGINPUT();
      break;

      case SKWORD:
      ! if (VIM_ISDIGIT(*reginput) || !vim_iswordp(reginput))
      status = RA_NOMATCH;
      else
      ADVANCE_REGINPUT();
      --- 4365,4378 ----
      break;

      case KWORD:
      ! if (!vim_iswordp_buf(reginput, reg_buf))
      status = RA_NOMATCH;
      else
      ADVANCE_REGINPUT();
      break;

      case SKWORD:
      ! if (VIM_ISDIGIT(*reginput) || !vim_iswordp_buf(reginput, reg_buf))
      status = RA_NOMATCH;
      else
      ADVANCE_REGINPUT();
      ***************
      *** 5734,5740 ****
      case SKWORD + ADD_NL:
      while (count < maxcount)
      {
      ! if (vim_iswordp(scan) && (testval || !VIM_ISDIGIT(*scan)))
      {
      mb_ptr_adv(scan);
      }
      --- 5734,5741 ----
      case SKWORD + ADD_NL:
      while (count < maxcount)
      {
      ! if (vim_iswordp_buf(scan, reg_buf)
      ! && (testval || !VIM_ISDIGIT(*scan)))
      {
      mb_ptr_adv(scan);
      }
      *** ../vim-7.3.788/src/version.c 2013-01-30 12:50:50.000000000 +0100
      --- src/version.c 2013-01-30 13:58:07.000000000 +0100
      ***************
      *** 727,728 ****
      --- 727,730 ----
      { /* Add new patch number below this line */
      + /**/
      + 789,
      /**/

      --
      MARTHA'S WAY: Don't throw out all that leftover wine. Freeze into ice cubes
      for future use in casseroles and sauces.
      MY WAY: What leftover wine?

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

      ---
      You received this message because you are subscribed to the Google Groups "vim_dev" group.
      To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscribe@....
      For more options, visit https://groups.google.com/groups/opt_out.
    Your message has been successfully submitted and would be delivered to recipients shortly.