]> git.pld-linux.org Git - packages/vim.git/commitdiff
- new auto/th/vim-7_2_356-1
authorAdam Gołębiowski <adamg@pld-linux.org>
Tue, 9 Feb 2010 08:20:43 +0000 (08:20 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    7.2.345 -> 1.1
    7.2.346 -> 1.1
    7.2.347 -> 1.1
    7.2.348 -> 1.1
    7.2.349 -> 1.1
    7.2.350 -> 1.1
    7.2.351 -> 1.1
    7.2.352 -> 1.1
    7.2.353 -> 1.1
    7.2.354 -> 1.1
    7.2.355 -> 1.1
    7.2.356 -> 1.1

12 files changed:
7.2.345 [new file with mode: 0644]
7.2.346 [new file with mode: 0644]
7.2.347 [new file with mode: 0644]
7.2.348 [new file with mode: 0644]
7.2.349 [new file with mode: 0644]
7.2.350 [new file with mode: 0644]
7.2.351 [new file with mode: 0644]
7.2.352 [new file with mode: 0644]
7.2.353 [new file with mode: 0644]
7.2.354 [new file with mode: 0644]
7.2.355 [new file with mode: 0644]
7.2.356 [new file with mode: 0644]

diff --git a/7.2.345 b/7.2.345
new file mode 100644 (file)
index 0000000..a3b7acf
--- /dev/null
+++ b/7.2.345
@@ -0,0 +1,47 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.345
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.345
+Problem:    Tab line is not updated when the value of 'bt' is changed.
+Solution:   Call redraw_titles(). (Lech Lorens)
+Files:     src/option.c
+
+
+*** ../vim-7.2.344/src/option.c        2009-09-11 15:20:22.000000000 +0200
+--- src/option.c       2010-01-27 15:52:45.000000000 +0100
+***************
+*** 6410,6415 ****
+--- 6410,6418 ----
+           }
+  # endif
+           curbuf->b_help = (curbuf->b_p_bt[0] == 'h');
++ # ifdef FEAT_TITLE
++          redraw_titles();
++ # endif
+       }
+      }
+  #endif
+*** ../vim-7.2.344/src/version.c       2010-01-20 21:41:40.000000000 +0100
+--- src/version.c      2010-01-27 15:57:06.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+  {   /* Add new patch number below this line */
++ /**/
++     345,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+154. You fondle your mouse.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.2.346 b/7.2.346
new file mode 100644 (file)
index 0000000..479aac6
--- /dev/null
+++ b/7.2.346
@@ -0,0 +1,110 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.346
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.346
+Problem:    Repeating a command with @: causes a mapping to be applied twice.
+Solution:   Do not remap characters inserted in the typeahead buffer. (Kana
+           Natsuno)
+Files:     src/ops.c
+
+
+*** ../vim-7.2.345/src/ops.c   2010-01-19 14:59:14.000000000 +0100
+--- src/ops.c  2010-01-19 13:04:46.000000000 +0100
+***************
+*** 1301,1310 ****
+      }
+  }
+  
+      static int
+  put_in_typebuf(s, esc, colon, silent)
+      char_u   *s;
+!     int              esc;        /* Escape CSI characters */
+      int              colon;      /* add ':' before the line */
+      int              silent;
+  {
+--- 1301,1316 ----
+      }
+  }
+  
++ /*
++  * Insert register contents "s" into the typeahead buffer, so that it will be
++  * executed again.
++  * When "esc" is TRUE it is to be taken literally: Escape CSI characters and
++  * no remapping.
++  */
+      static int
+  put_in_typebuf(s, esc, colon, silent)
+      char_u   *s;
+!     int              esc;
+      int              colon;      /* add ':' before the line */
+      int              silent;
+  {
+***************
+*** 1312,1318 ****
+  
+      put_reedit_in_typebuf(silent);
+      if (colon)
+!      retval = ins_typebuf((char_u *)"\n", REMAP_YES, 0, TRUE, silent);
+      if (retval == OK)
+      {
+       char_u  *p;
+--- 1318,1324 ----
+  
+      put_reedit_in_typebuf(silent);
+      if (colon)
+!      retval = ins_typebuf((char_u *)"\n", REMAP_NONE, 0, TRUE, silent);
+      if (retval == OK)
+      {
+       char_u  *p;
+***************
+*** 1324,1335 ****
+       if (p == NULL)
+           retval = FAIL;
+       else
+!          retval = ins_typebuf(p, REMAP_YES, 0, TRUE, silent);
+       if (esc)
+           vim_free(p);
+      }
+      if (colon && retval == OK)
+!      retval = ins_typebuf((char_u *)":", REMAP_YES, 0, TRUE, silent);
+      return retval;
+  }
+  
+--- 1330,1342 ----
+       if (p == NULL)
+           retval = FAIL;
+       else
+!          retval = ins_typebuf(p, esc ? REMAP_NONE : REMAP_YES,
+!                                                           0, TRUE, silent);
+       if (esc)
+           vim_free(p);
+      }
+      if (colon && retval == OK)
+!      retval = ins_typebuf((char_u *)":", REMAP_NONE, 0, TRUE, silent);
+      return retval;
+  }
+  
+*** ../vim-7.2.345/src/version.c       2010-01-27 15:57:17.000000000 +0100
+--- src/version.c      2010-01-27 16:25:55.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+  {   /* Add new patch number below this line */
++ /**/
++     346,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+155. You forget to eat because you're too busy surfing the net.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.2.347 b/7.2.347
new file mode 100644 (file)
index 0000000..e5fa17d
--- /dev/null
+++ b/7.2.347
@@ -0,0 +1,138 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.347
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.347
+Problem:    Crash when executing <expr> mapping redefines that same mapping.
+Solution:   Save the values used before evaluating the expression.
+Files:     src/getchar.c
+
+
+*** ../vim-7.2.346/src/getchar.c       2009-11-11 16:23:37.000000000 +0100
+--- src/getchar.c      2010-01-27 17:30:42.000000000 +0100
+***************
+*** 2389,2394 ****
+--- 2389,2405 ----
+                   /* complete match */
+                   if (keylen >= 0 && keylen <= typebuf.tb_len)
+                   {
++ #ifdef FEAT_EVAL
++                      int save_m_expr;
++                      int save_m_noremap;
++                      int save_m_silent;
++                      char_u *save_m_keys;
++                      char_u *save_m_str;
++ #else
++ # define save_m_noremap mp->m_noremap
++ # define save_m_silent mp->m_silent
++ #endif
++ 
+                       /* write chars to script file(s) */
+                       if (keylen > typebuf.tb_maplen)
+                           gotchars(typebuf.tb_buf + typebuf.tb_off
+***************
+*** 2431,2436 ****
+--- 2442,2457 ----
+  #endif
+  
+  #ifdef FEAT_EVAL
++                      /* Copy the values from *mp that are used, because
++                       * evaluating the expression may invoke a function
++                       * that redefines the mapping, thereby making *mp
++                       * invalid. */
++                      save_m_expr = mp->m_expr;
++                      save_m_noremap = mp->m_noremap;
++                      save_m_silent = mp->m_silent;
++                      save_m_keys = NULL;  /* only saved when needed */
++                      save_m_str = NULL;  /* only saved when needed */
++ 
+                       /*
+                        * Handle ":map <expr>": evaluate the {rhs} as an
+                        * expression.  Save and restore the typeahead so that
+***************
+*** 2446,2452 ****
+                           if (tabuf.typebuf_valid)
+                           {
+                               vgetc_busy = 0;
+!                              s = eval_map_expr(mp->m_str, NUL);
+                               vgetc_busy = save_vgetc_busy;
+                           }
+                           else
+--- 2467,2475 ----
+                           if (tabuf.typebuf_valid)
+                           {
+                               vgetc_busy = 0;
+!                              save_m_keys = vim_strsave(mp->m_keys);
+!                              save_m_str = vim_strsave(mp->m_str);
+!                              s = eval_map_expr(save_m_str, NUL);
+                               vgetc_busy = save_vgetc_busy;
+                           }
+                           else
+***************
+*** 2470,2486 ****
+                       else
+                       {
+                           i = ins_typebuf(s,
+!                                  mp->m_noremap != REMAP_YES
+!                                          ? mp->m_noremap
+!                                          : STRNCMP(s, mp->m_keys,
+                                                         (size_t)keylen) != 0
+                                                    ? REMAP_YES : REMAP_SKIP,
+!                              0, TRUE, cmd_silent || mp->m_silent);
+  #ifdef FEAT_EVAL
+!                          if (mp->m_expr)
+                               vim_free(s);
+  #endif
+                       }
+                       if (i == FAIL)
+                       {
+                           c = -1;
+--- 2493,2517 ----
+                       else
+                       {
+                           i = ins_typebuf(s,
+!                                  save_m_noremap != REMAP_YES
+!                                          ? save_m_noremap
+!                                          : STRNCMP(s,
+! #ifdef FEAT_EVAL
+!                                         save_m_keys != NULL ? save_m_keys :
+! #endif
+!                                                    mp->m_keys,
+                                                         (size_t)keylen) != 0
+                                                    ? REMAP_YES : REMAP_SKIP,
+!                              0, TRUE, cmd_silent || save_m_silent);
+  #ifdef FEAT_EVAL
+!                          if (save_m_expr)
+                               vim_free(s);
+  #endif
+                       }
++ #ifdef FEAT_EVAL
++                      vim_free(save_m_keys);
++                      vim_free(save_m_str);
++ #endif
+                       if (i == FAIL)
+                       {
+                           c = -1;
+*** ../vim-7.2.346/src/version.c       2010-01-27 16:31:00.000000000 +0100
+--- src/version.c      2010-01-27 17:27:32.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+  {   /* Add new patch number below this line */
++ /**/
++     347,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+156. You forget your friend's name but not her e-mail address.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.2.348 b/7.2.348
new file mode 100644 (file)
index 0000000..5f4ffbd
--- /dev/null
+++ b/7.2.348
@@ -0,0 +1,254 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.348 (after 7.2.330)
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.348 (after 7.2.330)
+Problem:    Unicode double-width characters are not up-to date.
+Solution:   Produce the double-width table like the others.
+Files:     runtime/tools/unicode.vim, src/mbyte.c
+
+
+*** ../vim-7.2.347/runtime/tools/unicode.vim   2010-01-12 19:48:57.000000000 +0100
+--- runtime/tools/unicode.vim  2010-01-27 17:57:17.000000000 +0100
+***************
+*** 187,202 ****
+    wincmd p
+  endfunc
+  
+! " Build the ambiguous table in a new buffer.
+  " Uses s:widthprops and s:dataprops.
+! func! BuildAmbiguousTable()
+    let start = -1
+    let end = -1
+    let ranges = []
+    let dataidx = 0
+    for p in s:widthprops
+!     if p[1][0] == 'A'
+!       let n = ('0x' . p[0]) + 0
+        " Find this char in the data table.
+        while 1
+       let dn = ('0x' . s:dataprops[dataidx][0]) + 0
+--- 187,213 ----
+    wincmd p
+  endfunc
+  
+! " Build the double width or ambiguous width table in a new buffer.
+  " Uses s:widthprops and s:dataprops.
+! func! BuildWidthTable(pattern, tableName)
+    let start = -1
+    let end = -1
+    let ranges = []
+    let dataidx = 0
+    for p in s:widthprops
+!     if p[1][0] =~ a:pattern
+!       if p[0] =~ '\.\.'
+!      " It is a range.  we don't check for composing char then.
+!      let rng = split(p[0], '\.\.')
+!      if len(rng) != 2
+!        echoerr "Cannot parse range: '" . p[0] . "' in width table"
+!      endif
+!      let n = ('0x' . rng[0]) + 0
+!      let n_last =  ('0x' . rng[1]) + 0
+!       else
+!      let n = ('0x' . p[0]) + 0
+!      let n_last = n
+!       endif
+        " Find this char in the data table.
+        while 1
+       let dn = ('0x' . s:dataprops[dataidx][0]) + 0
+***************
+*** 205,231 ****
+       endif
+       let dataidx += 1
+        endwhile
+!       if dn != n
+       echoerr "Cannot find character " . n . " in data table"
+        endif
+        " Only use the char when it's not a composing char.
+        let dp = s:dataprops[dataidx]
+!       if dp[2] != 'Mn' && dp[2] != 'Mc' && dp[2] != 'Me'
+       if start >= 0 && end + 1 == n
+         " continue with same range.
+-        let end = n
+       else
+         if start >= 0
+           " produce previous range
+           call add(ranges, printf("\t{0x%04x, 0x%04x},", start, end))
+         endif
+         let start = n
+-        if p[0] =~ '\.\.'
+-          let end = ('0x' . substitute(p[0], '.*\.\.', '', '')) + 0
+-        else
+-          let end = n
+-        endif
+       endif
+        endif
+      endif
+    endfor
+--- 216,238 ----
+       endif
+       let dataidx += 1
+        endwhile
+!       if dn != n && n_last == n
+       echoerr "Cannot find character " . n . " in data table"
+        endif
+        " Only use the char when it's not a composing char.
++       " But use all chars from a range.
+        let dp = s:dataprops[dataidx]
+!       if n_last > n || (dp[2] != 'Mn' && dp[2] != 'Mc' && dp[2] != 'Me')
+       if start >= 0 && end + 1 == n
+         " continue with same range.
+       else
+         if start >= 0
+           " produce previous range
+           call add(ranges, printf("\t{0x%04x, 0x%04x},", start, end))
+         endif
+         let start = n
+       endif
++      let end = n_last
+        endif
+      endif
+    endfor
+***************
+*** 235,242 ****
+  
+    " New buffer to put the result in.
+    new
+!   file ambiguous
+!   call setline(1, "    static struct interval ambiguous[] =")
+    call setline(2, "    {")
+    call append('$', ranges)
+    call setline('$', getline('$')[:-2])  " remove last comma
+--- 242,249 ----
+  
+    " New buffer to put the result in.
+    new
+!   exe "file " . a:tableName
+!   call setline(1, "    static struct interval " . a:tableName . "[] =")
+    call setline(2, "    {")
+    call append('$', ranges)
+    call setline('$', getline('$')[:-2])  " remove last comma
+***************
+*** 276,280 ****
+  " Parse each line, create a list of lists.
+  call ParseWidthProps()
+  
+! " Build the ambiguous table.
+! call BuildAmbiguousTable()
+--- 283,290 ----
+  " Parse each line, create a list of lists.
+  call ParseWidthProps()
+  
+! " Build the double width table.
+! call BuildWidthTable('[WF]', 'doublewidth')
+! 
+! " Build the ambiguous width table.
+! call BuildWidthTable('A', 'ambiguous')
+*** ../vim-7.2.347/src/mbyte.c 2010-01-12 19:48:57.000000000 +0100
+--- src/mbyte.c        2010-01-27 18:06:35.000000000 +0100
+***************
+*** 1200,1205 ****
+--- 1200,1248 ----
+  utf_char2cells(c)
+      int              c;
+  {
++     /* Sorted list of non-overlapping intervals of East Asian double width
++      * characters, generated with ../runtime/tools/unicode.vim. */
++     static struct interval doublewidth[] =
++     {
++      {0x1100, 0x115f},
++      {0x11a3, 0x11a7},
++      {0x11fa, 0x11ff},
++      {0x2329, 0x232a},
++      {0x2e80, 0x2e99},
++      {0x2e9b, 0x2ef3},
++      {0x2f00, 0x2fd5},
++      {0x2ff0, 0x2ffb},
++      {0x3000, 0x3029},
++      {0x3030, 0x303e},
++      {0x3041, 0x3096},
++      {0x309b, 0x30ff},
++      {0x3105, 0x312d},
++      {0x3131, 0x318e},
++      {0x3190, 0x31b7},
++      {0x31c0, 0x31e3},
++      {0x31f0, 0x321e},
++      {0x3220, 0x3247},
++      {0x3250, 0x32fe},
++      {0x3300, 0x4dbf},
++      {0x4e00, 0xa48c},
++      {0xa490, 0xa4c6},
++      {0xa960, 0xa97c},
++      {0xac00, 0xd7a3},
++      {0xd7b0, 0xd7c6},
++      {0xd7cb, 0xd7fb},
++      {0xf900, 0xfaff},
++      {0xfe10, 0xfe19},
++      {0xfe30, 0xfe52},
++      {0xfe54, 0xfe66},
++      {0xfe68, 0xfe6b},
++      {0xff01, 0xff60},
++      {0xffe0, 0xffe6},
++      {0x1f200, 0x1f200},
++      {0x1f210, 0x1f231},
++      {0x1f240, 0x1f248},
++      {0x20000, 0x2fffd},
++      {0x30000, 0x3fffd}
++     };
+      /* Sorted list of non-overlapping intervals of East Asian Ambiguous
+       * characters, generated with ../runtime/tools/unicode.vim. */
+      static struct interval ambiguous[] =
+***************
+*** 1403,1422 ****
+  #else
+       if (!utf_printable(c))
+           return 6;           /* unprintable, displays <xxxx> */
+!      if (c >= 0x1100
+!          && (c <= 0x115f                     /* Hangul Jamo */
+!              || c == 0x2329
+!              || c == 0x232a
+!              || (c >= 0x2e80 && c <= 0xa4cf
+!                  && c != 0x303f)             /* CJK ... Yi */
+!              || (c >= 0xac00 && c <= 0xd7a3) /* Hangul Syllables */
+!              || (c >= 0xf900 && c <= 0xfaff) /* CJK Compatibility
+!                                                 Ideographs */
+!              || (c >= 0xfe30 && c <= 0xfe6f) /* CJK Compatibility Forms */
+!              || (c >= 0xff00 && c <= 0xff60) /* Fullwidth Forms */
+!              || (c >= 0xffe0 && c <= 0xffe6)
+!              || (c >= 0x20000 && c <= 0x2fffd)
+!              || (c >= 0x30000 && c <= 0x3fffd)))
+           return 2;
+  #endif
+      }
+--- 1446,1452 ----
+  #else
+       if (!utf_printable(c))
+           return 6;           /* unprintable, displays <xxxx> */
+!      if (intable(doublewidth, sizeof(doublewidth), c))
+           return 2;
+  #endif
+      }
+*** ../vim-7.2.347/src/version.c       2010-01-27 17:31:38.000000000 +0100
+--- src/version.c      2010-01-27 18:25:50.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+  {   /* Add new patch number below this line */
++ /**/
++     348,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+157. You fum through a magazine, you first check to see if it has a web
+     address.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.2.349 b/7.2.349
new file mode 100644 (file)
index 0000000..7d0be02
--- /dev/null
+++ b/7.2.349
@@ -0,0 +1,53 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.349
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.349
+Problem:    CTRL-W gf doesn't put the new tab in the same place as "tab split"
+           and "gf". (Tony Mechelynck)
+Solution:   Store the tab number in cmdmod.tab.
+Files:     src/window.c
+
+
+*** ../vim-7.2.348/src/window.c        2009-06-24 17:31:27.000000000 +0200
+--- src/window.c       2010-01-27 20:23:22.000000000 +0100
+***************
+*** 626,632 ****
+  #ifdef FEAT_SEARCHPATH
+                   case 'f':       /* CTRL-W gf: "gf" in a new tab page */
+                   case 'F':       /* CTRL-W gF: "gF" in a new tab page */
+!                      cmdmod.tab = TRUE;
+                       nchar = xchar;
+                       goto wingotofile;
+  #endif
+--- 626,632 ----
+  #ifdef FEAT_SEARCHPATH
+                   case 'f':       /* CTRL-W gf: "gf" in a new tab page */
+                   case 'F':       /* CTRL-W gF: "gF" in a new tab page */
+!                      cmdmod.tab = tabpage_index(curtab) + 1;
+                       nchar = xchar;
+                       goto wingotofile;
+  #endif
+*** ../vim-7.2.348/src/version.c       2010-01-27 18:29:21.000000000 +0100
+--- src/version.c      2010-01-27 20:25:43.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+  {   /* Add new patch number below this line */
++ /**/
++     349,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+159. You get excited whenever discussing your hard drive.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.2.350 b/7.2.350
new file mode 100644 (file)
index 0000000..7715eb3
--- /dev/null
+++ b/7.2.350
@@ -0,0 +1,86 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.350
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.350
+Problem:    Win32: When changing font the window may jump from the secondary
+           to the primary screen. (Michael Wookey)
+Solution:   When the screen position was negative don't correct it to zero.
+Files:     src/gui.c
+
+
+*** ../vim-7.2.349/src/gui.c   2009-09-23 18:14:13.000000000 +0200
+--- src/gui.c  2010-01-27 21:02:32.000000000 +0100
+***************
+*** 1390,1395 ****
+--- 1390,1396 ----
+      int              un_maximize = mustset;
+      int         did_adjust = 0;
+  #endif
++     int              x = -1, y = -1;
+  
+      if (!gui.shell_created)
+       return;
+***************
+*** 1406,1411 ****
+--- 1407,1416 ----
+  
+      base_width = gui_get_base_width();
+      base_height = gui_get_base_height();
++     if (fit_to_display)
++      /* Remember the original window position. */
++      gui_mch_get_winpos(&x, &y);
++ 
+  #ifdef USE_SUN_WORKSHOP
+      if (!mustset && usingSunWorkShop
+                               && workshop_get_width_height(&width, &height))
+***************
+*** 1473,1483 ****
+  
+      gui_mch_set_shellsize(width, height, min_width, min_height,
+                                         base_width, base_height, direction);
+-     if (fit_to_display)
+-     {
+-      int         x, y;
+  
+!      /* Some window managers put the Vim window left of/above the screen. */
+       gui_mch_update();
+       if (gui_mch_get_winpos(&x, &y) == OK && (x < 0 || y < 0))
+           gui_mch_set_winpos(x < 0 ? 0 : x, y < 0 ? 0 : y);
+--- 1478,1489 ----
+  
+      gui_mch_set_shellsize(width, height, min_width, min_height,
+                                         base_width, base_height, direction);
+  
+!     if (fit_to_display && x >= 0 && y >= 0)
+!     {
+!      /* Some window managers put the Vim window left of/above the screen.
+!       * Only change the position if it wasn't already negative before
+!       * (happens on MS-Windows with a secondary monitor). */
+       gui_mch_update();
+       if (gui_mch_get_winpos(&x, &y) == OK && (x < 0 || y < 0))
+           gui_mch_set_winpos(x < 0 ? 0 : x, y < 0 ? 0 : y);
+*** ../vim-7.2.349/src/version.c       2010-01-27 20:26:41.000000000 +0100
+--- src/version.c      2010-01-27 21:03:41.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+  {   /* Add new patch number below this line */
++ /**/
++     350,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+160. You get in the elevator and double-click the button for the floor
+     you want.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.2.351 b/7.2.351
new file mode 100644 (file)
index 0000000..55b28f6
--- /dev/null
+++ b/7.2.351
@@ -0,0 +1,78 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.351 (after 7.2.347)
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.351 (after 7.2.347)
+Problem:    Can't build with some compilers.
+Solution:   Move the #ifdef outside of a macro.  Cleanup the code.
+Files:     src/getchar.c
+
+
+*** ../vim-7.2.350/src/getchar.c       2010-01-27 17:31:38.000000000 +0100
+--- src/getchar.c      2010-01-28 22:42:22.000000000 +0100
+***************
+*** 2492,2508 ****
+                           i = FAIL;
+                       else
+                       {
+!                          i = ins_typebuf(s,
+!                                  save_m_noremap != REMAP_YES
+!                                          ? save_m_noremap
+!                                          : STRNCMP(s,
+  #ifdef FEAT_EVAL
+!                                         save_m_keys != NULL ? save_m_keys :
+  #endif
+!                                                    mp->m_keys,
+!                                                        (size_t)keylen) != 0
+!                                                   ? REMAP_YES : REMAP_SKIP,
+!                              0, TRUE, cmd_silent || save_m_silent);
+  #ifdef FEAT_EVAL
+                           if (save_m_expr)
+                               vim_free(s);
+--- 2492,2515 ----
+                           i = FAIL;
+                       else
+                       {
+!                          int noremap;
+! 
+!                          if (save_m_noremap != REMAP_YES)
+!                              noremap = save_m_noremap;
+!                          else if (
+  #ifdef FEAT_EVAL
+!                              STRNCMP(s, save_m_keys != NULL
+!                                                 ? save_m_keys : mp->m_keys,
+!                                                       (size_t)keylen)
+! #else
+!                              STRNCMP(s, mp->m_keys, (size_t)keylen)
+  #endif
+!                                 != 0)
+!                              noremap = REMAP_YES;
+!                          else
+!                              noremap = REMAP_SKIP;
+!                          i = ins_typebuf(s, noremap,
+!                                      0, TRUE, cmd_silent || save_m_silent);
+  #ifdef FEAT_EVAL
+                           if (save_m_expr)
+                               vim_free(s);
+*** ../vim-7.2.350/src/version.c       2010-01-27 21:04:58.000000000 +0100
+--- src/version.c      2010-01-28 22:50:53.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+  {   /* Add new patch number below this line */
++ /**/
++     351,
+  /**/
+
+-- 
+"Hit any key to continue" it said, but nothing happened after F sharp.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.2.352 b/7.2.352
new file mode 100644 (file)
index 0000000..d2e22f2
--- /dev/null
+++ b/7.2.352
@@ -0,0 +1,62 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.352
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.352
+Problem:    Win64: Vim doesn't work when cross-compiled with MingW libraries.
+Solution:   Always return TRUE for the WM_NCCREATE message. (Andy Kittner)
+Files:     src/gui_w48.c
+
+
+*** ../vim-7.2.351/src/gui_w48.c       2009-01-28 21:22:20.000000000 +0100
+--- src/gui_w48.c      2010-02-03 12:07:11.000000000 +0100
+***************
+*** 1084,1092 ****
+       case WM_NOTIFY: Handle_WM_Notify(hwnd, (LPNMHDR)lParam);
+           return TRUE;
+  #endif
+  
+!     default:
+!      return MyWindowProc(hwnd, uMsg, wParam, lParam);
+      }
+  }
+  
+--- 1084,1098 ----
+       case WM_NOTIFY: Handle_WM_Notify(hwnd, (LPNMHDR)lParam);
+           return TRUE;
+  #endif
++      /* Workaround for the problem that MyWindowProc() returns FALSE on 64
++       * bit windows when cross-compiled using Mingw libraries. (Andy
++       * Kittner) */
++      case WM_NCCREATE:
++          MyWindowProc(hwnd, uMsg, wParam, lParam);
++          return TRUE;
+  
+!      default:
+!          return MyWindowProc(hwnd, uMsg, wParam, lParam);
+      }
+  }
+  
+*** ../vim-7.2.351/src/version.c       2010-01-28 22:58:10.000000000 +0100
+--- src/version.c      2010-02-03 12:16:30.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+  {   /* Add new patch number below this line */
++ /**/
++     352,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+185. You order fast food over the Internet
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.2.353 b/7.2.353
new file mode 100644 (file)
index 0000000..06f9f17
--- /dev/null
+++ b/7.2.353
@@ -0,0 +1,173 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.353
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.353
+Problem:    No command line completion for ":profile".
+Solution:   Complete the subcommand and file name.
+Files:     src/ex_docmd.c, src/ex_cmds2.c, src/ex_getln.c,
+           src/proto/ex_cmds2.pro, src/vim.h
+
+
+*** ../vim-7.2.352/src/ex_docmd.c      2009-11-03 12:38:50.000000000 +0100
+--- src/ex_docmd.c     2010-02-03 14:40:14.000000000 +0100
+***************
+*** 3804,3809 ****
+--- 3804,3814 ----
+               xp->xp_context = EXPAND_NOTHING;
+           break;
+  #endif
++ #if defined(FEAT_PROFILE)
++      case CMD_profile:
++          set_context_in_profile_cmd(xp, arg);
++          break;
++ #endif
+  
+  #endif /* FEAT_CMDL_COMPL */
+  
+*** ../vim-7.2.352/src/ex_cmds2.c      2010-01-20 21:41:40.000000000 +0100
+--- src/ex_cmds2.c     2010-02-03 14:50:08.000000000 +0100
+***************
+*** 1115,1120 ****
+--- 1115,1193 ----
+      }
+  }
+  
++ /* Command line expansion for :profile. */
++ static enum
++ {
++     PEXP_SUBCMD,     /* expand :profile sub-commands */
++     PEXP_FUNC,               /* expand :profile func {funcname} */
++ } pexpand_what;
++ 
++ static char *pexpand_cmds[] = {
++                      "start",
++ #define PROFCMD_START        0
++                      "pause",
++ #define PROFCMD_PAUSE        1
++                      "continue",
++ #define PROFCMD_CONTINUE 2
++                      "func",
++ #define PROFCMD_FUNC 3
++                      "file",
++ #define PROFCMD_FILE 4
++                      NULL
++ #define PROFCMD_LAST 5
++ };
++ 
++ /*
++  * Function given to ExpandGeneric() to obtain the profile command
++  * specific expansion.
++  */
++     char_u *
++ get_profile_name(xp, idx)
++     expand_T *xp UNUSED;
++     int              idx;
++ {
++     switch (pexpand_what)
++     {
++     case PEXP_SUBCMD:
++      return (char_u *)pexpand_cmds[idx];
++     /* case PEXP_FUNC: TODO */
++     default:
++      return NULL;
++     }
++ }
++ 
++ /*
++  * Handle command line completion for :profile command.
++  */
++     void
++ set_context_in_profile_cmd(xp, arg)
++     expand_T *xp;
++     char_u   *arg;
++ {
++     char_u   *end_subcmd;
++     int              len;
++ 
++     /* Default: expand subcommands. */
++     xp->xp_context = EXPAND_PROFILE;
++     pexpand_what = PEXP_SUBCMD;
++     xp->xp_pattern = arg;
++ 
++     end_subcmd = skiptowhite(arg);
++     if (*end_subcmd == NUL)
++      return;
++ 
++     len = end_subcmd - arg;
++     if (len == 5 && STRNCMP(arg, "start", 5) == 0)
++     {
++      xp->xp_context = EXPAND_FILES;
++      xp->xp_pattern = skipwhite(end_subcmd);
++      return;
++     }
++ 
++     /* TODO: expand function names after "func" */
++     xp->xp_context = EXPAND_NOTHING;
++ }
++ 
+  /*
+   * Dump the profiling info.
+   */
+*** ../vim-7.2.352/src/ex_getln.c      2010-01-19 14:59:14.000000000 +0100
+--- src/ex_getln.c     2010-02-03 14:38:43.000000000 +0100
+***************
+*** 4522,4527 ****
+--- 4522,4530 ----
+  #ifdef FEAT_SIGNS
+           {EXPAND_SIGN, get_sign_name, TRUE},
+  #endif
++ #ifdef FEAT_PROFILE
++          {EXPAND_PROFILE, get_profile_name, TRUE},
++ #endif
+  #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
+       && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
+           {EXPAND_LANGUAGE, get_lang_arg, TRUE},
+*** ../vim-7.2.352/src/proto/ex_cmds2.pro      2008-01-06 20:07:25.000000000 +0100
+--- src/proto/ex_cmds2.pro     2010-02-03 14:43:12.000000000 +0100
+***************
+*** 24,29 ****
+--- 24,31 ----
+  int profile_equal __ARGS((proftime_T *tm1, proftime_T *tm2));
+  int profile_cmp __ARGS((proftime_T *tm1, proftime_T *tm2));
+  void ex_profile __ARGS((exarg_T *eap));
++ char_u *get_profile_name __ARGS((expand_T *xp, int idx));
++ void set_context_in_profile_cmd __ARGS((expand_T *xp, char_u *arg));
+  void profile_dump __ARGS((void));
+  void script_prof_save __ARGS((proftime_T *tm));
+  void script_prof_restore __ARGS((proftime_T *tm));
+*** ../vim-7.2.352/src/vim.h   2009-06-16 11:08:13.000000000 +0200
+--- src/vim.h  2010-02-03 14:40:42.000000000 +0100
+***************
+*** 718,723 ****
+--- 718,724 ----
+  #define EXPAND_SHELLCMD              32
+  #define EXPAND_CSCOPE                33
+  #define EXPAND_SIGN          34
++ #define EXPAND_PROFILE               35
+  
+  /* Values for exmode_active (0 is no exmode) */
+  #define EXMODE_NORMAL                1
+*** ../vim-7.2.352/src/version.c       2010-02-03 12:23:16.000000000 +0100
+--- src/version.c      2010-02-03 15:07:26.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+  {   /* Add new patch number below this line */
++ /**/
++     353,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+188. You purchase a laptop so you can surf while sitting on the can.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.2.354 b/7.2.354
new file mode 100644 (file)
index 0000000..b4f5066
--- /dev/null
+++ b/7.2.354
@@ -0,0 +1,78 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.354
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.354
+Problem:    Japanese single-width double-byte characters not handled correctly.
+Solution:   Put 0x8e in ScreenLines[] and the second byte in ScreenLines2[].
+           (partly by Kikuchan)
+Files:     src/screen.c
+
+
+*** ../vim-7.2.353/src/screen.c        2010-01-19 17:40:39.000000000 +0100
+--- src/screen.c       2010-02-03 15:47:19.000000000 +0100
+***************
+*** 2335,2347 ****
+               if (cells > 1)
+                   ScreenLines[idx + 1] = 0;
+           }
+!          else if (cells > 1)     /* double-byte character */
+!          {
+!              if (enc_dbcs == DBCS_JPNU && *p == 0x8e)
+!                  ScreenLines2[idx] = p[1];
+!              else
+!                  ScreenLines[idx + 1] = p[1];
+!          }
+           col += cells;
+           idx += cells;
+           p += c_len;
+--- 2335,2346 ----
+               if (cells > 1)
+                   ScreenLines[idx + 1] = 0;
+           }
+!          else if (enc_dbcs == DBCS_JPNU && *p == 0x8e)
+!              /* double-byte single width character */
+!              ScreenLines2[idx] = p[1];
+!          else if (cells > 1)
+!              /* double-width character */
+!              ScreenLines[idx + 1] = p[1];
+           col += cells;
+           idx += cells;
+           p += c_len;
+***************
+*** 4631,4637 ****
+--- 4630,4640 ----
+           ScreenLines[off] = c;
+  #ifdef FEAT_MBYTE
+           if (enc_dbcs == DBCS_JPNU)
++          {
++              if ((mb_c & 0xff00) == 0x8e00)
++                  ScreenLines[off] = 0x8e;
+               ScreenLines2[off] = mb_c & 0xff;
++          }
+           else if (enc_utf8)
+           {
+               if (mb_utf8)
+*** ../vim-7.2.353/src/version.c       2010-02-03 15:14:15.000000000 +0100
+--- src/version.c      2010-02-03 15:43:43.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+  {   /* Add new patch number below this line */
++ /**/
++     354,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+189. You put your e-mail address in the upper left-hand corner of envelopes.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.2.355 b/7.2.355
new file mode 100644 (file)
index 0000000..b23d44a
--- /dev/null
+++ b/7.2.355
@@ -0,0 +1,88 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.355
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.355
+Problem:    Computing the cursor column in validate_cursor_col() is wrong when
+           line numbers are used and 'n' is not in 'cpoptions', causing the
+           popup menu to be positioned wrong.
+Solution:   Correctly use the offset. (partly by Dominique Pelle)
+Files:     src/move.c
+
+
+*** ../vim-7.2.354/src/move.c  2009-11-03 16:22:59.000000000 +0100
+--- src/move.c 2010-02-03 17:15:16.000000000 +0100
+***************
+*** 889,894 ****
+--- 889,895 ----
+  {
+      colnr_T off;
+      colnr_T col;
++     int     width;
+  
+      validate_virtcol();
+      if (!(curwin->w_valid & VALID_WCOL))
+***************
+*** 896,910 ****
+       col = curwin->w_virtcol;
+       off = curwin_col_off();
+       col += off;
+  
+       /* long line wrapping, adjust curwin->w_wrow */
+       if (curwin->w_p_wrap
+               && col >= (colnr_T)W_WIDTH(curwin)
+!              && W_WIDTH(curwin) - off + curwin_col_off2() > 0)
+!      {
+!          col -= W_WIDTH(curwin);
+!          col = col % (W_WIDTH(curwin) - off + curwin_col_off2());
+!      }
+       if (col > (int)curwin->w_leftcol)
+           col -= curwin->w_leftcol;
+       else
+--- 897,910 ----
+       col = curwin->w_virtcol;
+       off = curwin_col_off();
+       col += off;
++      width = W_WIDTH(curwin) - off + curwin_col_off2();
+  
+       /* long line wrapping, adjust curwin->w_wrow */
+       if (curwin->w_p_wrap
+               && col >= (colnr_T)W_WIDTH(curwin)
+!              && width > 0)
+!          /* use same formula as what is used in curs_columns() */
+!          col -= ((col - W_WIDTH(curwin)) / width + 1) * width;
+       if (col > (int)curwin->w_leftcol)
+           col -= curwin->w_leftcol;
+       else
+***************
+*** 1041,1046 ****
+--- 1041,1047 ----
+       /* long line wrapping, adjust curwin->w_wrow */
+       if (curwin->w_wcol >= W_WIDTH(curwin))
+       {
++          /* this same formula is used in validate_cursor_col() */
+           n = (curwin->w_wcol - W_WIDTH(curwin)) / width + 1;
+           curwin->w_wcol -= n * width;
+           curwin->w_wrow += n;
+*** ../vim-7.2.354/src/version.c       2010-02-03 15:47:59.000000000 +0100
+--- src/version.c      2010-02-03 17:40:39.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+  {   /* Add new patch number below this line */
++ /**/
++     355,
+  /**/
+
+-- 
+I'm in shape.  Round IS a shape.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.2.356 b/7.2.356
new file mode 100644 (file)
index 0000000..51b646c
--- /dev/null
+++ b/7.2.356
@@ -0,0 +1,69 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.356
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.356
+Problem:    When 'foldmethod' is changed not all folds are closed as expected.
+Solution:   In foldUpdate() correct the start position and reset fd_flags when
+           w_foldinvalid is set. (Lech Lorens)
+Files:     src/fold.c
+
+
+*** ../vim-7.2.355/src/fold.c  2010-01-19 17:24:20.000000000 +0100
+--- src/fold.c 2010-02-03 18:08:11.000000000 +0100
+***************
+*** 849,859 ****
+      fold_T   *fp;
+  
+      /* Mark all folds from top to bot as maybe-small. */
+!     (void)foldFind(&curwin->w_folds, curwin->w_cursor.lnum, &fp);
+      while (fp < (fold_T *)curwin->w_folds.ga_data + curwin->w_folds.ga_len
+           && fp->fd_top < bot)
+      {
+       fp->fd_small = MAYBE;
+       ++fp;
+      }
+  
+--- 849,865 ----
+      fold_T   *fp;
+  
+      /* Mark all folds from top to bot as maybe-small. */
+!     (void)foldFind(&curwin->w_folds, top, &fp);
+      while (fp < (fold_T *)curwin->w_folds.ga_data + curwin->w_folds.ga_len
+           && fp->fd_top < bot)
+      {
+       fp->fd_small = MAYBE;
++ 
++      /* Not sure if this is the right place to reset fd_flags (suggested by
++       * Lech Lorens). */
++         if (wp->w_foldinvalid)
++             fp->fd_flags = FD_LEVEL;
++ 
+       ++fp;
+      }
+  
+*** ../vim-7.2.355/src/version.c       2010-02-03 17:42:59.000000000 +0100
+--- src/version.c      2010-02-03 18:12:34.000000000 +0100
+***************
+*** 683,684 ****
+--- 683,686 ----
+  {   /* Add new patch number below this line */
++ /**/
++     356,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+190. You quickly hand over your wallet, leather jacket, and car keys
+     during a mugging, then proceed to beat the crap out of your
+     assailant when he asks for your laptop.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
This page took 0.079221 seconds and 4 git commands to generate.