Patch 7.3.433
Problem:    Using continued lines in a Vim script can be slow.
Solution:   Instead of reallocating for every line use a growarray. (Yasuhiro
            Matsumoto)
Files:      src/ex_cmds2.c


*** ../vim-7.3.432/src/ex_cmds2.c       2012-02-04 21:57:44.000000000 +0100
--- src/ex_cmds2.c      2012-02-05 23:06:31.000000000 +0100
***************
*** 3439,3460 ****
      {
        /* compensate for the one line read-ahead */
        --sourcing_lnum;
!       for (;;)
        {
!           sp->nextline = get_one_sourceline(sp);
!           if (sp->nextline == NULL)
!               break;
!           p = skipwhite(sp->nextline);
!           if (*p != '\\')
!               break;
!           s = alloc((unsigned)(STRLEN(line) + STRLEN(p)));
!           if (s == NULL)      /* out of memory */
!               break;
!           STRCPY(s, line);
!           STRCAT(s, p + 1);
            vim_free(line);
!           line = s;
!           vim_free(sp->nextline);
        }
      }
  
--- 3439,3470 ----
      {
        /* compensate for the one line read-ahead */
        --sourcing_lnum;
! 
!       /* Get the next line and concatenate it when it starts with a
!        * backslash. We always need to read the next line, keep it in
!        * sp->nextline. */
!       sp->nextline = get_one_sourceline(sp);
!       if (sp->nextline != NULL && *(p = skipwhite(sp->nextline)) == '\\')
        {
!           garray_T    ga;
! 
!           ga_init2(&ga, (int)sizeof(char_u), 200);
!           ga_concat(&ga, line);
!           ga_concat(&ga, p + 1);
!           for (;;)
!           {
!               vim_free(sp->nextline);
!               sp->nextline = get_one_sourceline(sp);
!               if (sp->nextline == NULL)
!                   break;
!               p = skipwhite(sp->nextline);
!               if (*p != '\\')
!                   break;
!               ga_concat(&ga, p + 1);
!           }
!           ga_append(&ga, NUL);
            vim_free(line);
!           line = ga.ga_data;
        }
      }
  
*** ../vim-7.3.432/src/version.c        2012-02-05 22:51:27.000000000 +0100
--- src/version.c       2012-02-05 23:09:21.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
  {   /* Add new patch number below this line */
+ /**/
+     433,
  /**/

-- 
Due knot trussed yore spell chequer two fined awl miss steaks.

 /// Bram Moolenaar -- [email protected] -- 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

Raspunde prin e-mail lui