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

Patch 7.3.535

Expand Messages
  • Bram Moolenaar
    Patch 7.3.535 Problem: Many #ifdefs for MB_MAXBYTES. Solution: Also define MB_MAXBYTES without the +multi_byte feature. Fix places where the buffer
    Message 1 of 1 , Jun 1, 2012
    • 0 Attachment
      Patch 7.3.535
      Problem: Many #ifdefs for MB_MAXBYTES.
      Solution: Also define MB_MAXBYTES without the +multi_byte feature. Fix
      places where the buffer didn't include space for a NUL byte.
      Files: src/arabic.c, src/edit.c, src/eval.c, src/getchar.c, src/mbyte.c,
      src/misc1.c, src/screen.c, src/spell.c, src/vim.h


      *** ../vim-7.3.534/src/arabic.c 2010-08-15 21:57:28.000000000 +0200
      --- src/arabic.c 2012-06-01 14:59:37.000000000 +0200
      ***************
      *** 1066,1072 ****

      if (curr_c != c && ccp != NULL)
      {
      ! char_u buf[MB_MAXBYTES];

      /* Update the first byte of the character. */
      (*mb_char2bytes)(curr_c, buf);
      --- 1066,1072 ----

      if (curr_c != c && ccp != NULL)
      {
      ! char_u buf[MB_MAXBYTES + 1];

      /* Update the first byte of the character. */
      (*mb_char2bytes)(curr_c, buf);
      *** ../vim-7.3.534/src/edit.c 2012-06-01 14:57:47.000000000 +0200
      --- src/edit.c 2012-06-01 15:01:49.000000000 +0200
      ***************
      *** 1648,1658 ****
      #define PC_STATUS_RIGHT 1 /* right halve of double-wide char */
      #define PC_STATUS_LEFT 2 /* left halve of double-wide char */
      #define PC_STATUS_SET 3 /* pc_bytes was filled */
      - #ifdef FEAT_MBYTE
      static char_u pc_bytes[MB_MAXBYTES + 1]; /* saved bytes */
      - #else
      - static char_u pc_bytes[2]; /* saved bytes */
      - #endif
      static int pc_attr;
      static int pc_row;
      static int pc_col;
      --- 1648,1654 ----
      ***************
      *** 6819,6829 ****
      char_u *s;

      vim_free(last_insert);
      - #ifdef FEAT_MBYTE
      last_insert = alloc(MB_MAXBYTES * 3 + 5);
      - #else
      - last_insert = alloc(6);
      - #endif
      if (last_insert != NULL)
      {
      s = last_insert;
      --- 6815,6821 ----
      ***************
      *** 6861,6867 ****
      char_u *s;
      {
      #ifdef FEAT_MBYTE
      ! char_u temp[MB_MAXBYTES];
      int i;
      int len;

      --- 6853,6859 ----
      char_u *s;
      {
      #ifdef FEAT_MBYTE
      ! char_u temp[MB_MAXBYTES + 1];
      int i;
      int len;

      ***************
      *** 7423,7429 ****
      int cc;
      {
      int n;
      ! char_u buf[MB_MAXBYTES];
      int i;
      int c;

      --- 7415,7421 ----
      int cc;
      {
      int n;
      ! char_u buf[MB_MAXBYTES + 1];
      int i;
      int c;

      ***************
      *** 10109,10119 ****
      int c;
      {
      char_u *res;
      - #ifdef FEAT_MBYTE
      char_u buf[MB_MAXBYTES + 1];
      - #else
      - char_u buf[2];
      - #endif

      /* Return quickly when there is nothing to do. */
      if (!has_insertcharpre())
      --- 10101,10107 ----
      *** ../vim-7.3.534/src/eval.c 2012-05-18 18:34:15.000000000 +0200
      --- src/eval.c 2012-06-01 15:02:08.000000000 +0200
      ***************
      *** 19170,19180 ****
      set_vim_var_char(c)
      int c;
      {
      ! #ifdef FEAT_MBYTE
      ! char_u buf[MB_MAXBYTES];
      ! #else
      ! char_u buf[2];
      ! #endif

      #ifdef FEAT_MBYTE
      if (has_mbyte)
      --- 19170,19176 ----
      set_vim_var_char(c)
      int c;
      {
      ! char_u buf[MB_MAXBYTES + 1];

      #ifdef FEAT_MBYTE
      if (has_mbyte)
      *** ../vim-7.3.534/src/getchar.c 2012-04-05 16:07:01.000000000 +0200
      --- src/getchar.c 2012-06-01 15:03:51.000000000 +0200
      ***************
      *** 723,729 ****
      int c;
      #ifdef FEAT_MBYTE
      int n;
      ! char_u buf[MB_MAXBYTES];
      int i;
      #endif

      --- 723,729 ----
      int c;
      #ifdef FEAT_MBYTE
      int n;
      ! char_u buf[MB_MAXBYTES + 1];
      int i;
      #endif

      ***************
      *** 1072,1078 ****
      int c;
      {
      #ifdef FEAT_MBYTE
      ! char_u buf[MB_MAXBYTES];
      #else
      char_u buf[4];
      #endif
      --- 1072,1078 ----
      int c;
      {
      #ifdef FEAT_MBYTE
      ! char_u buf[MB_MAXBYTES + 1];
      #else
      char_u buf[4];
      #endif
      ***************
      *** 1547,1553 ****
      int c, c2;
      #ifdef FEAT_MBYTE
      int n;
      ! char_u buf[MB_MAXBYTES];
      int i;
      #endif

      --- 1547,1553 ----
      int c, c2;
      #ifdef FEAT_MBYTE
      int n;
      ! char_u buf[MB_MAXBYTES + 1];
      int i;
      #endif

      ***************
      *** 4335,4345 ****
      int scol; /* starting column of the abbr. */
      int j;
      char_u *s;
      - #ifdef FEAT_MBYTE
      char_u tb[MB_MAXBYTES + 4];
      - #else
      - char_u tb[4];
      - #endif
      mapblock_T *mp;
      #ifdef FEAT_LOCALMAP
      mapblock_T *mp2;
      --- 4335,4341 ----
      *** ../vim-7.3.534/src/mbyte.c 2012-03-07 19:38:52.000000000 +0100
      --- src/mbyte.c 2012-06-01 15:04:27.000000000 +0200
      ***************
      *** 708,714 ****
      */
      n = (i & 0x80) ? 2 : 1;
      # else
      ! char buf[MB_MAXBYTES];
      # ifdef X_LOCALE
      # ifndef mblen
      # define mblen _Xmblen
      --- 708,714 ----
      */
      n = (i & 0x80) ? 2 : 1;
      # else
      ! char buf[MB_MAXBYTES + 1];
      # ifdef X_LOCALE
      # ifndef mblen
      # define mblen _Xmblen
      ***************
      *** 1953,1959 ****
      /*
      * Convert the character at screen position "off" to a sequence of bytes.
      * Includes the composing characters.
      ! * "buf" must at least have the length MB_MAXBYTES.
      * Only to be used when ScreenLinesUC[off] != 0.
      * Returns the produced number of bytes.
      */
      --- 1953,1959 ----
      /*
      * Convert the character at screen position "off" to a sequence of bytes.
      * Includes the composing characters.
      ! * "buf" must at least have the length MB_MAXBYTES + 1.
      * Only to be used when ScreenLinesUC[off] != 0.
      * Returns the produced number of bytes.
      */
      *** ../vim-7.3.534/src/misc1.c 2012-04-30 21:09:38.000000000 +0200
      --- src/misc1.c 2012-06-01 15:04:56.000000000 +0200
      ***************
      *** 1932,1938 ****
      int c;
      {
      #if defined(FEAT_MBYTE) || defined(PROTO)
      ! char_u buf[MB_MAXBYTES];
      int n;

      n = (*mb_char2bytes)(c, buf);
      --- 1932,1938 ----
      int c;
      {
      #if defined(FEAT_MBYTE) || defined(PROTO)
      ! char_u buf[MB_MAXBYTES + 1];
      int n;

      n = (*mb_char2bytes)(c, buf);
      *** ../vim-7.3.534/src/screen.c 2012-03-23 16:25:13.000000000 +0100
      --- src/screen.c 2012-06-01 15:06:03.000000000 +0200
      ***************
      *** 6621,6636 ****
      int row, col;
      int attr;
      {
      - #ifdef FEAT_MBYTE
      char_u buf[MB_MAXBYTES + 1];

      ! buf[(*mb_char2bytes)(c, buf)] = NUL;
      ! #else
      ! char_u buf[2];
      !
      ! buf[0] = c;
      ! buf[1] = NUL;
      #endif
      screen_puts(buf, row, col, attr);
      }

      --- 6621,6637 ----
      int row, col;
      int attr;
      {
      char_u buf[MB_MAXBYTES + 1];

      ! #ifdef FEAT_MBYTE
      ! if (has_mbyte)
      ! buf[(*mb_char2bytes)(c, buf)] = NUL;
      ! else
      #endif
      + {
      + buf[0] = c;
      + buf[1] = NUL;
      + }
      screen_puts(buf, row, col, attr);
      }

      *** ../vim-7.3.534/src/spell.c 2012-05-18 18:07:57.000000000 +0200
      --- src/spell.c 2012-06-01 15:06:30.000000000 +0200
      ***************
      *** 13694,13700 ****
      {
      int m1, m2;
      #ifdef FEAT_MBYTE
      ! char_u buf[MB_MAXBYTES];
      hashitem_T *hi;

      if (c1 >= 256)
      --- 13694,13700 ----
      {
      int m1, m2;
      #ifdef FEAT_MBYTE
      ! char_u buf[MB_MAXBYTES + 1];
      hashitem_T *hi;

      if (c1 >= 256)
      *** ../vim-7.3.534/src/vim.h 2012-04-30 18:48:38.000000000 +0200
      --- src/vim.h 2012-06-01 14:59:28.000000000 +0200
      ***************
      *** 1703,1708 ****
      --- 1703,1710 ----
      * character of up to 6 bytes, or one 16-bit character of up to three bytes
      * plus six following composing characters of three bytes each. */
      # define MB_MAXBYTES 21
      + #else
      + # define MB_MAXBYTES 1
      #endif

      #if (defined(FEAT_PROFILE) || defined(FEAT_RELTIME)) && !defined(PROTO)
      ***************
      *** 2017,2022 ****
      --- 2019,2025 ----
      #pragma warning(disable : 4312)
      #endif

      + /* Note: a NULL argument for vim_realloc() is not portable, don't use it. */
      #if defined(MEM_PROFILE)
      # define vim_realloc(ptr, size) mem_realloc((ptr), (size))
      #else
      *** ../vim-7.3.534/src/version.c 2012-06-01 14:57:47.000000000 +0200
      --- src/version.c 2012-06-01 15:08:20.000000000 +0200
      ***************
      *** 716,717 ****
      --- 716,719 ----
      { /* Add new patch number below this line */
      + /**/
      + 535,
      /**/

      --
      Me? A skeptic? I trust you have proof.

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