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

patch 7.0.207

Expand Messages
  • Bram Moolenaar
    Patch 7.0.207 Problem: After patch 2.0.203 CSI and K_SPECIAL characters are escaped when recorded and then again when the register is executed. Solution:
    Message 1 of 1 , Mar 5 1:56 PM
    • 0 Attachment
      Patch 7.0.207
      Problem: After patch 2.0.203 CSI and K_SPECIAL characters are escaped when
      recorded and then again when the register is executed.
      Solution: Remove escaping before putting the recorded characters in a
      register. (Yukihiro Nakadaira)
      Files: src/getchar.c, src/ops.c, src/proto/getchar.pro


      *** ../vim-7.0.206/src/getchar.c Tue Feb 27 23:06:44 2007
      --- src/getchar.c Sun Mar 4 21:19:50 2007
      ***************
      *** 4438,4443 ****
      --- 4442,4476 ----
      *d = NUL;
      }
      return res;
      + }
      +
      + /*
      + * Remove escaping from CSI and K_SPECIAL characters. Reverse of
      + * vim_strsave_escape_csi(). Works in-place.
      + */
      + void
      + vim_unescape_csi(p)
      + char_u *p;
      + {
      + char_u *s = p, *d = p;
      +
      + while (*s != NUL)
      + {
      + if (s[0] == K_SPECIAL && s[1] == KS_SPECIAL && s[2] == KE_FILLER)
      + {
      + *d++ = K_SPECIAL;
      + s += 3;
      + }
      + else if ((s[0] == K_SPECIAL || s[0] == CSI)
      + && s[1] == KS_EXTRA && s[2] == (int)KE_CSI)
      + {
      + *d++ = CSI;
      + s += 3;
      + }
      + else
      + *d++ = *s++;
      + }
      + *d = NUL;
      }

      /*
      *** ../vim-7.0.206/src/ops.c Tue Feb 27 17:25:28 2007
      --- src/ops.c Sun Mar 4 21:23:47 2007
      ***************
      *** 1042,1047 ****
      --- 1042,1050 ----
      retval = FAIL;
      else
      {
      + /* Remove escaping for CSI and K_SPECIAL in multi-byte chars. */
      + vim_unescape_csi(p);
      +
      /*
      * We don't want to change the default register here, so save and
      * restore the current register name.
      *** ../vim-7.0.206/src/proto/getchar.pro Sun Apr 30 20:38:15 2006
      --- src/proto/getchar.pro Sun Mar 4 21:19:41 2007
      ***************
      *** 56,61 ****
      --- 56,62 ----
      extern int ExpandMappings __ARGS((regmatch_T *regmatch, int *num_file, char_u ***file));
      extern int check_abbr __ARGS((int c, char_u *ptr, int col, int mincol));
      extern char_u *vim_strsave_escape_csi __ARGS((char_u *p));
      + extern void vim_unescape_csi __ARGS((char_u *p));
      extern int makemap __ARGS((FILE *fd, buf_T *buf));
      extern int put_escstr __ARGS((FILE *fd, char_u *strstart, int what));
      extern void check_map_keycodes __ARGS((void));
      *** ../vim-7.0.206/src/version.c Fri Mar 2 20:00:06 2007
      --- src/version.c Sun Mar 4 21:24:26 2007
      ***************
      *** 668,669 ****
      --- 668,671 ----
      { /* Add new patch number below this line */
      + /**/
      + 207,
      /**/

      --
      hundred-and-one symptoms of being an internet addict:
      251. You've never seen your closest friends who usually live WAY too far away.

      /// 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 ///
    Your message has been successfully submitted and would be delivered to recipients shortly.