Patch 7.0.223
Problem:    Unprintable characters in completion text mess up the popup menu.
            (Gombault Damien)
Solution:   Use strtrans() to make the text printable.
Files:      src/charset.c, src/popupmnu.c


*** ../vim-7.0.222/src/charset.c        Tue Apr 18 00:04:40 2006
--- src/charset.c       Sat Mar 24 21:10:37 2007
***************
*** 317,323 ****
      }
  }
  
! #if defined(FEAT_EVAL) || defined(FEAT_TITLE) || defined(PROTO)
  /*
   * Translate a string into allocated memory, replacing special chars with
   * printable chars.  Returns NULL when out of memory.
--- 317,324 ----
      }
  }
  
! #if defined(FEAT_EVAL) || defined(FEAT_TITLE) || defined(FEAT_INS_EXPAND) \
!       || defined(PROTO)
  /*
   * Translate a string into allocated memory, replacing special chars with
   * printable chars.  Returns NULL when out of memory.
*** ../vim-7.0.222/src/popupmnu.c       Tue Aug 22 21:51:18 2006
--- src/popupmnu.c      Sat Mar 24 21:07:39 2007
***************
*** 280,287 ****
                    w = ptr2cells(p);
                    if (*p == NUL || *p == TAB || totwidth + w > pum_width)
                    {
!                       /* Display the text that fits or comes before a Tab. */
!                       screen_puts_len(s, (int)(p - s), row, col, attr);
                        col += width;
  
                        if (*p != TAB)
--- 280,299 ----
                    w = ptr2cells(p);
                    if (*p == NUL || *p == TAB || totwidth + w > pum_width)
                    {
!                       /* Display the text that fits or comes before a Tab.
!                        * First convert it to printable characters. */
!                       char_u *st;
!                       int  saved = *p;
! 
!                       *p = NUL;
!                       st = transstr(s);
!                       *p = saved;
!                       if (st != NULL)
!                       {
!                           screen_puts_len(st, (int)STRLEN(st), row, col,
!                                                                       attr);
!                           vim_free(st);
!                       }
                        col += width;
  
                        if (*p != TAB)
*** ../vim-7.0.222/src/version.c        Tue Mar 27 11:00:43 2007
--- src/version.c       Tue Mar 27 12:42:15 2007
***************
*** 668,669 ****
--- 668,671 ----
  {   /* Add new patch number below this line */
+ /**/
+     223,
  /**/

-- 
Violators can be fined, arrested or jailed for making ugly faces at a dog.
                [real standing law in Oklahoma, United States of America]

 /// Bram Moolenaar -- [EMAIL PROTECTED] -- 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    ///

Reply via email to