]> git.pld-linux.org Git - packages/vim.git/commitdiff
- new auto/th/vim-7_3_401-1 auto/ti/vim-7_3_401-1
authorAdam Gołębiowski <adamg@pld-linux.org>
Sun, 15 Jan 2012 01:27:44 +0000 (01:27 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    7.3.373 -> 1.1
    7.3.374 -> 1.1
    7.3.375 -> 1.1
    7.3.376 -> 1.1
    7.3.377 -> 1.1
    7.3.378 -> 1.1
    7.3.379 -> 1.1
    7.3.380 -> 1.1
    7.3.381 -> 1.1
    7.3.382 -> 1.1
    7.3.383 -> 1.1
    7.3.384 -> 1.1
    7.3.385 -> 1.1
    7.3.386 -> 1.1
    7.3.387 -> 1.1
    7.3.388 -> 1.1
    7.3.389 -> 1.1
    7.3.390 -> 1.1
    7.3.391 -> 1.1
    7.3.392 -> 1.1
    7.3.393 -> 1.1
    7.3.394 -> 1.1
    7.3.395 -> 1.1
    7.3.396 -> 1.1
    7.3.397 -> 1.1
    7.3.398 -> 1.1
    7.3.399 -> 1.1
    7.3.400 -> 1.1
    7.3.401 -> 1.1

29 files changed:
7.3.373 [new file with mode: 0644]
7.3.374 [new file with mode: 0644]
7.3.375 [new file with mode: 0644]
7.3.376 [new file with mode: 0644]
7.3.377 [new file with mode: 0644]
7.3.378 [new file with mode: 0644]
7.3.379 [new file with mode: 0644]
7.3.380 [new file with mode: 0644]
7.3.381 [new file with mode: 0644]
7.3.382 [new file with mode: 0644]
7.3.383 [new file with mode: 0644]
7.3.384 [new file with mode: 0644]
7.3.385 [new file with mode: 0644]
7.3.386 [new file with mode: 0644]
7.3.387 [new file with mode: 0644]
7.3.388 [new file with mode: 0644]
7.3.389 [new file with mode: 0644]
7.3.390 [new file with mode: 0644]
7.3.391 [new file with mode: 0644]
7.3.392 [new file with mode: 0644]
7.3.393 [new file with mode: 0644]
7.3.394 [new file with mode: 0644]
7.3.395 [new file with mode: 0644]
7.3.396 [new file with mode: 0644]
7.3.397 [new file with mode: 0644]
7.3.398 [new file with mode: 0644]
7.3.399 [new file with mode: 0644]
7.3.400 [new file with mode: 0644]
7.3.401 [new file with mode: 0644]

diff --git a/7.3.373 b/7.3.373
new file mode 100644 (file)
index 0000000..3e8937a
--- /dev/null
+++ b/7.3.373
@@ -0,0 +1,78 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.373
+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.3.373 (after 7.3.366)
+Problem:    A tags file with an extremely long name may cause an infinite loop.
+Solution:   When encountering a long name switch to linear search.
+Files:     src/tag.c
+
+
+*** ../vim-7.3.372/src/tag.c   2011-12-08 15:12:08.000000000 +0100
+--- src/tag.c  2011-12-14 14:13:28.000000000 +0100
+***************
+*** 1854,1860 ****
+  
+               if (state == TS_BINARY && orgpat.regmatch.rm_ic && !sortic)
+               {
+!                  /* binary search won't work for ignoring case, use linear
+                    * search. */
+                   linear = TRUE;
+                   state = TS_LINEAR;
+--- 1854,1860 ----
+  
+               if (state == TS_BINARY && orgpat.regmatch.rm_ic && !sortic)
+               {
+!                  /* Binary search won't work for ignoring case, use linear
+                    * search. */
+                   linear = TRUE;
+                   state = TS_LINEAR;
+***************
+*** 1922,1927 ****
+--- 1922,1940 ----
+                           MSG(_("Ignoring long line in tags file"));
+                           verbose_leave();
+                       }
++ #ifdef FEAT_TAG_BINS
++                      if (state != TS_LINEAR)
++                      {
++                          /* Avoid getting stuck. */
++                          linear = TRUE;
++                          state = TS_LINEAR;
++ # ifdef HAVE_FSEEKO
++                          fseeko(fp, search_info.low_offset, SEEK_SET);
++ # else
++                          fseek(fp, (long)search_info.low_offset, SEEK_SET);
++ # endif
++                      }
++ #endif
+                       continue;
+                   }
+  
+*** ../vim-7.3.372/src/version.c       2011-12-08 18:44:47.000000000 +0100
+--- src/version.c      2011-12-14 14:12:06.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     373,
+  /**/
+
+-- 
+ZOOT:  I'm afraid our life must seem very dull and quiet compared to yours.
+       We are but eightscore young blondes, all between sixteen and
+       nineteen-and-a-half, cut off in this castle, with no one to protect us.
+       Oooh.  It is a lonely life ... bathing ...  dressing ... undressing ...
+       making exciting underwear....
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.374 b/7.3.374
new file mode 100644 (file)
index 0000000..b312828
--- /dev/null
+++ b/7.3.374
@@ -0,0 +1,59 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.374
+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.3.374
+Problem:    ++encoding does not work properly.
+Solution:   Recognize ++encoding before ++enc. (Charles Cooper)
+Files:     src/ex_docmd.c
+
+
+*** ../vim-7.3.373/src/ex_docmd.c      2011-10-20 21:58:20.000000000 +0200
+--- src/ex_docmd.c     2011-12-14 14:46:05.000000000 +0100
+***************
+*** 4840,4851 ****
+  #ifdef FEAT_MBYTE
+      else if (STRNCMP(arg, "enc", 3) == 0)
+      {
+!      arg += 3;
+!      pp = &eap->force_enc;
+!     }
+!     else if (STRNCMP(arg, "encoding", 8) == 0)
+!     {
+!      arg += 8;
+       pp = &eap->force_enc;
+      }
+      else if (STRNCMP(arg, "bad", 3) == 0)
+--- 4840,4849 ----
+  #ifdef FEAT_MBYTE
+      else if (STRNCMP(arg, "enc", 3) == 0)
+      {
+!      if (STRNCMP(arg, "encoding", 8) == 0)
+!          arg += 8;
+!      else
+!          arg += 3;
+       pp = &eap->force_enc;
+      }
+      else if (STRNCMP(arg, "bad", 3) == 0)
+*** ../vim-7.3.373/src/version.c       2011-12-14 14:15:12.000000000 +0100
+--- src/version.c      2011-12-14 14:44:01.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     374,
+  /**/
+
+-- 
+Linux is just like a wigwam: no Windows, no Gates and an Apache inside.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.375 b/7.3.375
new file mode 100644 (file)
index 0000000..6f15fea
--- /dev/null
+++ b/7.3.375
@@ -0,0 +1,64 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.375
+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.3.375
+Problem:    Duplicate return statement.
+Solution:   Remove the superfluous one. (Dominique Pelle)
+Files:     src/gui_mac.c
+
+
+*** ../vim-7.3.374/src/gui_mac.c       2011-06-19 01:14:22.000000000 +0200
+--- src/gui_mac.c      2011-12-10 17:20:59.000000000 +0100
+***************
+*** 3216,3222 ****
+  {
+      /* TODO:
+       * This proc is called when Normal is set to a value
+!      * so what msut be done? I don't know
+       */
+  }
+  
+--- 3216,3222 ----
+  {
+      /* TODO:
+       * This proc is called when Normal is set to a value
+!      * so what must be done? I don't know
+       */
+  }
+  
+***************
+*** 3303,3309 ****
+      *x = bounds.left;
+      *y = bounds.top;
+      return OK;
+-     return FAIL;
+  }
+  
+  /*
+--- 3303,3308 ----
+*** ../vim-7.3.374/src/version.c       2011-12-14 14:49:41.000000000 +0100
+--- src/version.c      2011-12-14 15:06:01.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     375,
+  /**/
+
+-- 
+GALAHAD: No look, really, this isn't nescess ...
+PIGLET:  We must examine you.
+GALAHAD: There's nothing wrong with ... that.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.376 b/7.3.376
new file mode 100644 (file)
index 0000000..1e20743
--- /dev/null
+++ b/7.3.376
@@ -0,0 +1,57 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.376
+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.3.376
+Problem:    Win32: Toolbar repainting does not work when the mouse pointer
+           hovers over a button.
+Solution:   Call DefWindowProc() when not handling an event. (Sergiu Dotenco)
+Files:     src/gui_w32.c
+
+
+*** ../vim-7.3.375/src/gui_w32.c       2011-08-10 17:07:56.000000000 +0200
+--- src/gui_w32.c      2011-12-14 15:14:48.000000000 +0100
+***************
+*** 1101,1107 ****
+       return MyWindowProc(hwnd, uMsg, wParam, lParam);
+      }
+  
+!     return 1;
+  }
+  
+  /*
+--- 1101,1107 ----
+       return MyWindowProc(hwnd, uMsg, wParam, lParam);
+      }
+  
+!     return DefWindowProc(hwnd, uMsg, wParam, lParam);
+  }
+  
+  /*
+*** ../vim-7.3.375/src/version.c       2011-12-14 15:07:11.000000000 +0100
+--- src/version.c      2011-12-14 15:23:10.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     376,
+  /**/
+
+-- 
+   GALAHAD hurries to the door and pushes through it.  As he leaves the room
+   we CUT TO the reverse to show that he is now in a room full of bathing
+   and romping GIRLIES, all innocent, wide-eyed and beautiful.  They smile
+   enchantingly at him as he tries to keep walking without being diverted by
+   the lovely sights assaulting his eyeballs.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.377 b/7.3.377
new file mode 100644 (file)
index 0000000..1a2df1d
--- /dev/null
+++ b/7.3.377
@@ -0,0 +1,406 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.377
+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.3.377
+Problem:    No support for bitwise AND, OR, XOR and invert.
+Solution:   Add and(), or(), invert() and xor() functions.
+Files:     src/eval.c, src/testdir/test49.in, src/testdir/test65.in,
+           src/testdir/test65.ok, runtime/doc/eval.txt
+
+
+*** ../vim-7.3.376/src/eval.c  2011-11-30 15:19:25.000000000 +0100
+--- src/eval.c 2011-12-11 13:49:31.000000000 +0100
+***************
+*** 474,479 ****
+--- 474,480 ----
+  static void f_acos __ARGS((typval_T *argvars, typval_T *rettv));
+  #endif
+  static void f_add __ARGS((typval_T *argvars, typval_T *rettv));
++ static void f_and __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_append __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_argc __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_argidx __ARGS((typval_T *argvars, typval_T *rettv));
+***************
+*** 602,607 ****
+--- 603,609 ----
+  static void f_inputsave __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_inputsecret __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_insert __ARGS((typval_T *argvars, typval_T *rettv));
++ static void f_invert __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_isdirectory __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_islocked __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_items __ARGS((typval_T *argvars, typval_T *rettv));
+***************
+*** 640,645 ****
+--- 642,648 ----
+  #endif
+  static void f_nextnonblank __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_nr2char __ARGS((typval_T *argvars, typval_T *rettv));
++ static void f_or __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_pathshorten __ARGS((typval_T *argvars, typval_T *rettv));
+  #ifdef FEAT_FLOAT
+  static void f_pow __ARGS((typval_T *argvars, typval_T *rettv));
+***************
+*** 751,756 ****
+--- 754,760 ----
+  static void f_winsaveview __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_winwidth __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_writefile __ARGS((typval_T *argvars, typval_T *rettv));
++ static void f_xor __ARGS((typval_T *argvars, typval_T *rettv));
+  
+  static int list2fpos __ARGS((typval_T *arg, pos_T *posp, int *fnump));
+  static pos_T *var2fpos __ARGS((typval_T *varp, int dollar_lnum, int *fnum));
+***************
+*** 7715,7720 ****
+--- 7719,7725 ----
+      {"acos",         1, 1, f_acos},  /* WJMc */
+  #endif
+      {"add",          2, 2, f_add},
++     {"and",          2, 2, f_and},
+      {"append",               2, 2, f_append},
+      {"argc",         0, 0, f_argc},
+      {"argidx",               0, 0, f_argidx},
+***************
+*** 7850,7855 ****
+--- 7855,7861 ----
+      {"inputsave",    0, 0, f_inputsave},
+      {"inputsecret",  1, 2, f_inputsecret},
+      {"insert",               2, 3, f_insert},
++     {"invert",               1, 1, f_invert},
+      {"isdirectory",  1, 1, f_isdirectory},
+      {"islocked",     1, 1, f_islocked},
+      {"items",                1, 1, f_items},
+***************
+*** 7888,7893 ****
+--- 7894,7900 ----
+  #endif
+      {"nextnonblank", 1, 1, f_nextnonblank},
+      {"nr2char",              1, 1, f_nr2char},
++     {"or",           2, 2, f_or},
+      {"pathshorten",  1, 1, f_pathshorten},
+  #ifdef FEAT_FLOAT
+      {"pow",          2, 2, f_pow},
+***************
+*** 7999,8004 ****
+--- 8006,8012 ----
+      {"winsaveview",  0, 0, f_winsaveview},
+      {"winwidth",     1, 1, f_winwidth},
+      {"writefile",    2, 3, f_writefile},
++     {"xor",          2, 2, f_xor},
+  };
+  
+  #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
+***************
+*** 8572,8577 ****
+--- 8580,8597 ----
+  }
+  
+  /*
++  * "and(expr, expr)" function
++  */
++     static void
++ f_and(argvars, rettv)
++     typval_T *argvars;
++     typval_T *rettv;
++ {
++     rettv->vval.v_number = get_tv_number_chk(&argvars[0], NULL)
++                                      & get_tv_number_chk(&argvars[1], NULL);
++ }
++ 
++ /*
+   * "append(lnum, string/list)" function
+   */
+      static void
+***************
+*** 12958,12963 ****
+--- 12978,12994 ----
+  }
+  
+  /*
++  * "invert(expr)" function
++  */
++     static void
++ f_invert(argvars, rettv)
++     typval_T *argvars;
++     typval_T *rettv;
++ {
++     rettv->vval.v_number = ~get_tv_number_chk(&argvars[0], NULL);
++ }
++ 
++ /*
+   * "isdirectory()" function
+   */
+      static void
+***************
+*** 14108,14113 ****
+--- 14139,14156 ----
+  }
+  
+  /*
++  * "or(expr, expr)" function
++  */
++     static void
++ f_or(argvars, rettv)
++     typval_T *argvars;
++     typval_T *rettv;
++ {
++     rettv->vval.v_number = get_tv_number_chk(&argvars[0], NULL)
++                                      | get_tv_number_chk(&argvars[1], NULL);
++ }
++ 
++ /*
+   * "pathshorten()" function
+   */
+      static void
+***************
+*** 18394,18399 ****
+--- 18437,18455 ----
+  }
+  
+  /*
++  * "xor(expr, expr)" function
++  */
++     static void
++ f_xor(argvars, rettv)
++     typval_T *argvars;
++     typval_T *rettv;
++ {
++     rettv->vval.v_number = get_tv_number_chk(&argvars[0], NULL)
++                                      ^ get_tv_number_chk(&argvars[1], NULL);
++ }
++ 
++ 
++ /*
+   * Translate a String variable into a position.
+   * Returns NULL when there is an error.
+   */
+*** ../vim-7.3.376/src/testdir/test65.in       2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test65.in      2011-12-11 13:55:06.000000000 +0100
+***************
+*** 1,4 ****
+! Test for floating point.
+  
+  STARTTEST
+  :so small.vim
+--- 1,4 ----
+! Test for floating point and logical operators.
+  
+  STARTTEST
+  :so small.vim
+***************
+*** 72,77 ****
+--- 72,94 ----
+  :$put ='float2nr'
+  :$put =float2nr(123.456)
+  :$put =float2nr(-123.456)
++ :$put ='AND'
++ :$put =and(127, 127)
++ :$put =and(127, 16)
++ :$put =and(127, 128)
++ :$put ='OR'
++ :$put =or(16, 7)
++ :$put =or(8, 7)
++ :$put =or(0, 123)
++ :$put ='XOR'
++ :$put =xor(127, 127)
++ :$put =xor(127, 16)
++ :$put =xor(127, 128)
++ :$put ='invert'
++ :$put =and(invert(127), 65535)
++ :$put =and(invert(16), 65535)
++ :$put =and(invert(128), 65535)
++ :$put =invert(1.0)
+  :/^Results/,$wq! test.out
+  ENDTEST
+  
+*** ../vim-7.3.376/src/testdir/test65.ok       2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test65.ok      2011-12-11 13:55:30.000000000 +0100
+***************
+*** 54,56 ****
+--- 54,73 ----
+  float2nr
+  123
+  -123
++ AND
++ 127
++ 16
++ 0
++ OR
++ 23
++ 15
++ 123
++ XOR
++ 0
++ 111
++ 255
++ invert
++ 65408
++ 65519
++ 65407
++ 0
+*** ../vim-7.3.376/runtime/doc/eval.txt        2011-06-19 02:55:32.000000000 +0200
+--- runtime/doc/eval.txt       2011-12-14 15:28:23.000000000 +0100
+***************
+*** 798,808 ****
+  For |Lists| only "+" is possible and then both expr6 must be a list.  The
+  result is a new list with the two lists Concatenated.
+  
+! expr7 *       expr7 ..       number multiplication                   *expr-star*
+! expr7 /       expr7 ..       number division                         *expr-/*
+! expr7 %       expr7 ..       number modulo                           *expr-%*
+  
+  For all, except ".", Strings are converted to Numbers.
+  
+  Note the difference between "+" and ".":
+       "123" + "456" = 579
+--- 800,811 ----
+  For |Lists| only "+" is possible and then both expr6 must be a list.  The
+  result is a new list with the two lists Concatenated.
+  
+! expr7 *       expr7 ..       Number multiplication                   *expr-star*
+! expr7 /       expr7 ..       Number division                         *expr-/*
+! expr7 %       expr7 ..       Number modulo                           *expr-%*
+  
+  For all, except ".", Strings are converted to Numbers.
++ For bitwise operators see |and()|, |or()| and |xor()|.
+  
+  Note the difference between "+" and ".":
+       "123" + "456" = 579
+***************
+*** 1679,1684 ****
+--- 1688,1694 ----
+  abs( {expr})                 Float or Number  absolute value of {expr}
+  acos( {expr})                        Float   arc cosine of {expr}
+  add( {list}, {item})         List    append {item} to |List| {list}
++ and( {expr}, {expr})         Number  bitwise AND
+  append( {lnum}, {string})    Number  append {string} below line {lnum}
+  append( {lnum}, {list})              Number  append lines {list} below line {lnum}
+  argc()                               Number  number of files in the argument list
+***************
+*** 1817,1822 ****
+--- 1827,1833 ----
+  inputsave()                  Number  save and clear typeahead
+  inputsecret( {prompt} [, {text}]) String  like input() but hiding the text
+  insert( {list}, {item} [, {idx}]) List       insert {item} in {list} [before {idx}]
++ invert( {expr})                      Number  bitwise invert
+  isdirectory( {directory})    Number  TRUE if {directory} is a directory
+  islocked( {expr})            Number  TRUE if {expr} is locked
+  items( {dict})                       List    key-value pairs in {dict}
+***************
+*** 1856,1861 ****
+--- 1868,1874 ----
+  mzeval( {expr})                      any     evaluate |MzScheme| expression
+  nextnonblank( {lnum})                Number  line nr of non-blank line >= {lnum}
+  nr2char( {expr})             String  single char with ASCII value {expr}
++ or( {expr}, {expr})          Number  bitwise OR
+  pathshorten( {expr})         String  shorten directory names in a path
+  pow( {x}, {y})                       Float   {x} to the power of {y}
+  prevnonblank( {lnum})                Number  line nr of non-blank line <= {lnum}
+***************
+*** 1978,1983 ****
+--- 1992,1998 ----
+  winwidth( {nr})                      Number  width of window {nr}
+  writefile( {list}, {fname} [, {binary}])
+                               Number  write list of lines to file {fname}
++ xor( {expr}, {expr})         Number  bitwise XOR
+  
+  abs({expr})                                                  *abs()*
+               Return the absolute value of {expr}.  When {expr} evaluates to
+***************
+*** 2017,2022 ****
+--- 2032,2044 ----
+               Use |insert()| to add an item at another position.
+  
+  
++ and({expr}, {expr})                                  *and()*
++              Bitwise AND on the two arguments.  The arguments are converted
++              to a number.  A List, Dict or Float argument causes an error.
++              Example: >
++                      :let flag = and(bits, 0x80)
++ 
++ 
+  append({lnum}, {expr})                                       *append()*
+               When {expr} is a |List|: Append each item of the |List| as a
+               text line below line {lnum} in the current buffer.
+***************
+*** 3770,3775 ****
+--- 3798,3808 ----
+               Note that when {item} is a |List| it is inserted as a single
+               item.  Use |extend()| to concatenate |Lists|.
+  
++ invert({expr})                                               *invert()*
++              Bitwise invert.  The argument is converted to a number.  A
++              List, Dict or Float argument causes an error.  Example: >
++                      :let bits = invert(bits)
++ 
+  isdirectory({directory})                             *isdirectory()*
+               The result is a Number, which is non-zero when a directory
+               with the name {directory} exists.  If {directory} doesn't
+***************
+*** 4334,4339 ****
+--- 4368,4380 ----
+                       call setpos('.', save_cursor)
+  <            Also see |setpos()|.
+  
++ or({expr}, {expr})                                   *or()*
++              Bitwise OR on the two arguments.  The arguments are converted
++              to a number.  A List, Dict or Float argument causes an error.
++              Example: >
++                      :let bits = or(bits, 0x80)
++ 
++ 
+  pathshorten({expr})                                  *pathshorten()*
+               Shorten directory names in the path {expr} and return the
+               result.  The tail, the file name, is kept as-is.  The other
+***************
+*** 6097,6103 ****
+               To copy a file byte for byte: >
+                       :let fl = readfile("foo", "b")
+                       :call writefile(fl, "foocopy", "b")
+! <
+  
+                                                       *feature-list*
+  There are three types of features:
+--- 6149,6163 ----
+               To copy a file byte for byte: >
+                       :let fl = readfile("foo", "b")
+                       :call writefile(fl, "foocopy", "b")
+! 
+! 
+! xor({expr}, {expr})                                  *xor()*
+!              Bitwise XOR on the two arguments.  The arguments are converted
+!              to a number.  A List, Dict or Float argument causes an error.
+!              Example: >
+!                      :let bits = xor(bits, 0x80)
+! 
+! 
+  
+                                                       *feature-list*
+  There are three types of features:
+*** ../vim-7.3.376/src/version.c       2011-12-14 15:23:53.000000000 +0100
+--- src/version.c      2011-12-14 15:28:39.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     377,
+  /**/
+
+-- 
+DINGO: Wicked wicked Zoot ... she is a bad person and she must pay the
+       penalty.  And here in Castle Anthrax, we have but one punishment
+       ... you must tie her down on a bed ... and spank her.  Come!
+GIRLS: A spanking!  A spanking!
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.378 b/7.3.378
new file mode 100644 (file)
index 0000000..8ad3d70
--- /dev/null
+++ b/7.3.378
@@ -0,0 +1,71 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.378
+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.3.378
+Problem:    When cross-compiling the check for uint32_t fails.
+Solution:   Only give a warning message. (Maksim Melnikau)
+Files:      src/configure.in, src/auto/configure
+
+
+*** ../vim-7.3.377/src/configure.in    2011-12-08 15:17:28.000000000 +0100
+--- src/configure.in   2011-12-14 19:18:36.000000000 +0100
+***************
+*** 3283,3289 ****
+  }],
+  AC_MSG_RESULT(ok),
+  AC_MSG_ERROR([WRONG!  uint32_t not defined correctly.]),
+! AC_MSG_ERROR([could not compile program using uint32_t.]))
+  
+  dnl Check for memmove() before bcopy(), makes memmove() be used when both are
+  dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5.
+--- 3283,3289 ----
+  }],
+  AC_MSG_RESULT(ok),
+  AC_MSG_ERROR([WRONG!  uint32_t not defined correctly.]),
+! AC_MSG_WARN([cannot check uint32_t when cross-compiling.]))
+  
+  dnl Check for memmove() before bcopy(), makes memmove() be used when both are
+  dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5.
+*** ../vim-7.3.377/src/auto/configure  2011-12-08 15:17:28.000000000 +0100
+--- src/auto/configure 2011-12-14 19:20:55.000000000 +0100
+***************
+*** 11777,11783 ****
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking uint32_t is 32 bits" >&5
+  $as_echo_n "checking uint32_t is 32 bits... " >&6; }
+  if test "$cross_compiling" = yes; then :
+!   as_fn_error "could not compile program using uint32_t." "$LINENO" 5
+  else
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  /* end confdefs.h.  */
+--- 11777,11784 ----
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking uint32_t is 32 bits" >&5
+  $as_echo_n "checking uint32_t is 32 bits... " >&6; }
+  if test "$cross_compiling" = yes; then :
+!   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check uint32_t when cross-compiling." >&5
+! $as_echo "$as_me: WARNING: cannot check uint32_t when cross-compiling." >&2;}
+  else
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  /* end confdefs.h.  */
+*** ../vim-7.3.377/src/version.c       2011-12-14 15:32:44.000000000 +0100
+--- src/version.c      2011-12-14 19:21:08.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     378,
+  /**/
+
+-- 
+            ### Hiroshima 45, Chernobyl 86, Windows 95 ###
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.379 b/7.3.379
new file mode 100644 (file)
index 0000000..fd87f9a
--- /dev/null
+++ b/7.3.379
@@ -0,0 +1,112 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.379
+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.3.379
+Problem:    C-indenting wrong for static enum.
+Solution:   Skip over "static". (Lech Lorens)
+Files:     src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../vim-7.3.378/src/misc1.c 2011-11-30 17:20:18.000000000 +0100
+--- src/misc1.c        2011-12-14 19:37:48.000000000 +0100
+***************
+*** 5138,5143 ****
+--- 5138,5146 ----
+      if (STRNCMP(s, "typedef", 7) == 0 && !vim_isIDc(s[7]))
+       s = cin_skipcomment(s + 7);
+  
++     if (STRNCMP(s, "static", 6) == 0 && !vim_isIDc(s[6]))
++      s = cin_skipcomment(s + 6);
++ 
+      if (STRNCMP(s, "enum", 4) == 0 && !vim_isIDc(s[4]))
+       return TRUE;
+  
+*** ../vim-7.3.378/src/testdir/test3.in        2011-11-30 17:20:18.000000000 +0100
+--- src/testdir/test3.in       2011-12-14 20:03:11.000000000 +0100
+***************
+*** 299,316 ****
+  
+  enum soppie
+  {
+!      yes = 0,
+!      no,
+!      maybe
+  };
+  
+  typedef enum soppie
+  {
+!      yes = 0,
+!      no,
+!      maybe
+  };
+  
+  {
+       int a,
+               b;
+--- 299,323 ----
+  
+  enum soppie
+  {
+! yes = 0,
+! no,
+! maybe
+  };
+  
+  typedef enum soppie
+  {
+! yes = 0,
+! no,
+! maybe
+  };
+  
++ static enum
++ {
++ yes = 0,
++ no,
++ maybe
++ } soppie;
++ 
+  {
+       int a,
+               b;
+*** ../vim-7.3.378/src/testdir/test3.ok        2011-11-30 17:20:18.000000000 +0100
+--- src/testdir/test3.ok       2011-12-14 19:37:48.000000000 +0100
+***************
+*** 299,304 ****
+--- 299,311 ----
+       maybe
+  };
+  
++ static enum
++ {
++      yes = 0,
++      no,
++      maybe
++ } soppie;
++ 
+  {
+       int a,
+               b;
+*** ../vim-7.3.378/src/version.c       2011-12-14 19:22:29.000000000 +0100
+--- src/version.c      2011-12-14 20:02:19.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     379,
+  /**/
+
+-- 
+You cannot propel yourself forward by patting yourself on the back.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.380 b/7.3.380
new file mode 100644 (file)
index 0000000..a8f4bcf
--- /dev/null
+++ b/7.3.380
@@ -0,0 +1,318 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.380
+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.3.380
+Problem:    C-indenting wrong for a function header.
+Solution:   Skip to the start paren. (Lech Lorens)
+Files:     src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../vim-7.3.379/src/misc1.c 2011-12-14 20:05:17.000000000 +0100
+--- src/misc1.c        2011-12-14 20:16:43.000000000 +0100
+***************
+*** 4943,4949 ****
+  static int   cin_islinecomment __ARGS((char_u *));
+  static int   cin_isterminated __ARGS((char_u *, int, int));
+  static int   cin_isinit __ARGS((void));
+! static int   cin_isfuncdecl __ARGS((char_u **, linenr_T));
+  static int   cin_isif __ARGS((char_u *));
+  static int   cin_iselse __ARGS((char_u *));
+  static int   cin_isdo __ARGS((char_u *));
+--- 4943,4949 ----
+  static int   cin_islinecomment __ARGS((char_u *));
+  static int   cin_isterminated __ARGS((char_u *, int, int));
+  static int   cin_isinit __ARGS((void));
+! static int   cin_isfuncdecl __ARGS((char_u **, linenr_T, linenr_T, int, int));
+  static int   cin_isif __ARGS((char_u *));
+  static int   cin_iselse __ARGS((char_u *));
+  static int   cin_isdo __ARGS((char_u *));
+***************
+*** 5585,5605 ****
+   * "sp" points to a string with the line.  When looking at other lines it must
+   * be restored to the line.  When it's NULL fetch lines here.
+   * "lnum" is where we start looking.
+   */
+      static int
+! cin_isfuncdecl(sp, first_lnum)
+      char_u   **sp;
+      linenr_T first_lnum;
+  {
+      char_u   *s;
+      linenr_T lnum = first_lnum;
+      int              retval = FALSE;
+  
+      if (sp == NULL)
+       s = ml_get(lnum);
+      else
+       s = *sp;
+  
+      /* Ignore line starting with #. */
+      if (cin_ispreproc(s))
+       return FALSE;
+--- 5585,5621 ----
+   * "sp" points to a string with the line.  When looking at other lines it must
+   * be restored to the line.  When it's NULL fetch lines here.
+   * "lnum" is where we start looking.
++  * "min_lnum" is the line before which we will not be looking.
+   */
+      static int
+! cin_isfuncdecl(sp, first_lnum, min_lnum, ind_maxparen, ind_maxcomment)
+      char_u   **sp;
+      linenr_T first_lnum;
++     linenr_T min_lnum;
++     int              ind_maxparen;
++     int              ind_maxcomment;
+  {
+      char_u   *s;
+      linenr_T lnum = first_lnum;
+      int              retval = FALSE;
++     pos_T    *trypos;
++     int              just_started = TRUE;
+  
+      if (sp == NULL)
+       s = ml_get(lnum);
+      else
+       s = *sp;
+  
++     if (find_last_paren(s, '(', ')')
++      && (trypos = find_match_paren(ind_maxparen, ind_maxcomment)) != NULL)
++     {
++      lnum = trypos->lnum;
++      if (lnum < min_lnum)
++          return FALSE;
++ 
++      s = ml_get(lnum);
++     }
++ 
+      /* Ignore line starting with #. */
+      if (cin_ispreproc(s))
+       return FALSE;
+***************
+*** 5650,5662 ****
+           /* Require a comma at end of the line or a comma or ')' at the
+            * start of next line. */
+           s = skipwhite(s);
+!          if (!comma && *s != ',' && *s != ')')
+               break;
+       }
+       else if (cin_iscomment(s))      /* ignore comments */
+           s = cin_skipcomment(s);
+       else
+           ++s;
+      }
+  
+  done:
+--- 5666,5682 ----
+           /* Require a comma at end of the line or a comma or ')' at the
+            * start of next line. */
+           s = skipwhite(s);
+!          if (!just_started && (!comma && *s != ',' && *s != ')'))
+               break;
++          just_started = FALSE;
+       }
+       else if (cin_iscomment(s))      /* ignore comments */
+           s = cin_skipcomment(s);
+       else
++      {
+           ++s;
++          just_started = FALSE;
++      }
+      }
+  
+  done:
+***************
+*** 7158,7164 ****
+                        * (it's a variable declaration).
+                        */
+                       if (start_brace != BRACE_IN_COL0
+!                              || !cin_isfuncdecl(&l, curwin->w_cursor.lnum))
+                       {
+                           /* if the line is terminated with another ','
+                            * it is a continued variable initialization.
+--- 7178,7185 ----
+                        * (it's a variable declaration).
+                        */
+                       if (start_brace != BRACE_IN_COL0
+!                              || !cin_isfuncdecl(&l, curwin->w_cursor.lnum,
+!                                           0, ind_maxparen, ind_maxcomment))
+                       {
+                           /* if the line is terminated with another ','
+                            * it is a continued variable initialization.
+***************
+*** 8019,8025 ****
+               && vim_strchr(theline, '}') == NULL
+               && !cin_ends_in(theline, (char_u *)":", NULL)
+               && !cin_ends_in(theline, (char_u *)",", NULL)
+!              && cin_isfuncdecl(NULL, cur_curpos.lnum + 1)
+               && !cin_isterminated(theline, FALSE, TRUE))
+       {
+           amount = ind_func_type;
+--- 8040,8048 ----
+               && vim_strchr(theline, '}') == NULL
+               && !cin_ends_in(theline, (char_u *)":", NULL)
+               && !cin_ends_in(theline, (char_u *)",", NULL)
+!              && cin_isfuncdecl(NULL, cur_curpos.lnum + 1,
+!                                cur_curpos.lnum + 1,
+!                                ind_maxparen, ind_maxcomment)
+               && !cin_isterminated(theline, FALSE, TRUE))
+       {
+           amount = ind_func_type;
+***************
+*** 8125,8131 ****
+                * If the line looks like a function declaration, and we're
+                * not in a comment, put it the left margin.
+                */
+!              if (cin_isfuncdecl(NULL, cur_curpos.lnum))  /* XXX */
+                   break;
+               l = ml_get_curline();
+  
+--- 8148,8155 ----
+                * If the line looks like a function declaration, and we're
+                * not in a comment, put it the left margin.
+                */
+!              if (cin_isfuncdecl(NULL, cur_curpos.lnum, 0,
+!                                 ind_maxparen, ind_maxcomment))  /* XXX */
+                   break;
+               l = ml_get_curline();
+  
+***************
+*** 8173,8179 ****
+                * line (and the ones that follow) needs to be indented as
+                * parameters.
+                */
+!              if (cin_isfuncdecl(&l, curwin->w_cursor.lnum))
+               {
+                   amount = ind_param;
+                   break;
+--- 8197,8204 ----
+                * line (and the ones that follow) needs to be indented as
+                * parameters.
+                */
+!              if (cin_isfuncdecl(&l, curwin->w_cursor.lnum, 0,
+!                                 ind_maxparen, ind_maxcomment))
+               {
+                   amount = ind_param;
+                   break;
+*** ../vim-7.3.379/src/testdir/test3.in        2011-12-14 20:05:17.000000000 +0100
+--- src/testdir/test3.in       2011-12-14 20:11:24.000000000 +0100
+***************
+*** 1429,1435 ****
+  
+  STARTTEST
+  :set cino&
+! 2kdd=4][
+  ENDTEST
+  
+  void func(void)
+--- 1429,1435 ----
+  
+  STARTTEST
+  :set cino&
+! 2kdd=7][
+  ENDTEST
+  
+  void func(void)
+***************
+*** 1478,1484 ****
+       3, 4,
+       5, 6};
+  
+! printf("Don't you dare indent this line incorrectly!\n);
+  }
+  
+  STARTTEST
+--- 1478,1506 ----
+       3, 4,
+       5, 6};
+  
+! printf("Don't you dare indent this line incorrectly!\n");
+! }
+! 
+! void
+! func4(a, b,
+!              c)
+! int a;
+! int b;
+! int c;
+! {
+! }
+! 
+! void
+! func5(
+!              int a,
+!              int b)
+! {
+! }
+! 
+! void
+! func6(
+!              int a)
+! {
+  }
+  
+  STARTTEST
+*** ../vim-7.3.379/src/testdir/test3.ok        2011-12-14 20:05:17.000000000 +0100
+--- src/testdir/test3.ok       2011-12-14 20:11:24.000000000 +0100
+***************
+*** 1331,1337 ****
+               3, 4,
+               5, 6};
+  
+!      printf("Don't you dare indent this line incorrectly!\n);
+  }
+  
+  
+--- 1331,1359 ----
+               3, 4,
+               5, 6};
+  
+!      printf("Don't you dare indent this line incorrectly!\n");
+! }
+! 
+!      void
+! func4(a, b,
+!              c)
+!      int a;
+!      int b;
+!      int c;
+! {
+! }
+! 
+!      void
+! func5(
+!              int a,
+!              int b)
+! {
+! }
+! 
+!      void
+! func6(
+!              int a)
+! {
+  }
+  
+  
+*** ../vim-7.3.379/src/version.c       2011-12-14 20:05:17.000000000 +0100
+--- src/version.c      2011-12-14 20:20:50.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     380,
+  /**/
+
+-- 
+"Intelligence has much less practical application than you'd think."
+                 -- Scott Adams, Dilbert.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.381 b/7.3.381
new file mode 100644 (file)
index 0000000..b795737
--- /dev/null
+++ b/7.3.381
@@ -0,0 +1,260 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.381
+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.3.381
+Problem:    Configure silently skips interfaces that won't work.
+Solution:   Add the --enable-fail_if_missing argument. (Shlomi Fish)
+Files:     src/Makefile, src/configure.in, src/auto/configure
+
+
+*** ../vim-7.3.380/src/Makefile        2011-12-08 15:17:28.000000000 +0100
+--- src/Makefile       2011-12-14 20:49:26.000000000 +0100
+***************
+*** 389,394 ****
+--- 389,399 ----
+  #CONF_OPT_PLTHOME  = --with-plthome=/usr/local/drscheme
+  #CONF_OPT_PLTHOME  = --with-plthome=/home/me/mz
+  
++ # Uncomment the next line to fail if one of the requested language interfaces
++ # cannot be configured.  Without this Vim will be build anyway, without
++ # the failing interfaces.
++ #CONF_OPT_FAIL = --enable-fail-if-missing
++ 
+  # PERL
+  # Uncomment one of these when you want to include the Perl interface.
+  # First one is for static linking, second one for dynamic loading.
+***************
+*** 1648,1654 ****
+               CC="$(CC)" CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" \
+               LDFLAGS="$(LDFLAGS)" $(CONF_SHELL) srcdir="$(srcdir)" \
+               ./configure $(CONF_OPT_GUI) $(CONF_OPT_X) $(CONF_OPT_XSMP) \
+!              $(CONF_OPT_DARWIN) $(CONF_OPT_PERL) $(CONF_OPT_PYTHON) $(CONF_OPT_PYTHON3) \
+               $(CONF_OPT_TCL) $(CONF_OPT_RUBY) $(CONF_OPT_NLS) \
+               $(CONF_OPT_CSCOPE) $(CONF_OPT_MULTIBYTE) $(CONF_OPT_INPUT) \
+               $(CONF_OPT_OUTPUT) $(CONF_OPT_GPM) $(CONF_OPT_WORKSHOP) \
+--- 1653,1660 ----
+               CC="$(CC)" CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" \
+               LDFLAGS="$(LDFLAGS)" $(CONF_SHELL) srcdir="$(srcdir)" \
+               ./configure $(CONF_OPT_GUI) $(CONF_OPT_X) $(CONF_OPT_XSMP) \
+!              $(CONF_OPT_DARWIN) $(CONF_OPT_FAIL) \
+!              $(CONF_OPT_PERL) $(CONF_OPT_PYTHON) $(CONF_OPT_PYTHON3) \
+               $(CONF_OPT_TCL) $(CONF_OPT_RUBY) $(CONF_OPT_NLS) \
+               $(CONF_OPT_CSCOPE) $(CONF_OPT_MULTIBYTE) $(CONF_OPT_INPUT) \
+               $(CONF_OPT_OUTPUT) $(CONF_OPT_GPM) $(CONF_OPT_WORKSHOP) \
+*** ../vim-7.3.380/src/configure.in    2011-12-14 19:22:29.000000000 +0100
+--- src/configure.in   2011-12-14 20:46:36.000000000 +0100
+***************
+*** 28,33 ****
+--- 28,43 ----
+  AC_HEADER_STDC
+  AC_HEADER_SYS_WAIT
+  
++ dnl Check for the flag that fails if stuff are missing.
++ 
++ AC_MSG_CHECKING(--enable-fail-if-missing argument)
++ AC_ARG_ENABLE(fail_if_missing,
++      [  --enable-fail-if-missing    Fail if dependencies on additional features
++      specified on the command line are missing.], 
++      [fail_if_missing="yes"],
++      [fail_if_missing="no"])
++ AC_MSG_RESULT($fail_if_missing)
++ 
+  dnl Set default value for CFLAGS if none is defined or it's empty
+  if test -z "$CFLAGS"; then
+    CFLAGS="-O"
+***************
+*** 491,496 ****
+--- 501,509 ----
+        LUA_CFLAGS="-DDYNAMIC_LUA_DLL=\\\"liblua${vi_cv_version_lua}.so$LUA_SONAME\\\" $LUA_CFLAGS"
+      fi
+    fi
++   if test "$fail_if_missing" = "yes" -a -z "$LUA_SRC"; then
++     AC_MSG_ERROR([could not configure lua])
++   fi
+    AC_SUBST(LUA_SRC)
+    AC_SUBST(LUA_OBJ)
+    AC_SUBST(LUA_PRO)
+***************
+*** 781,786 ****
+--- 794,803 ----
+        PERL_CFLAGS="-DDYNAMIC_PERL_DLL=\\\"$libperl\\\" $PERL_CFLAGS"
+      fi
+    fi
++ 
++   if test "$fail_if_missing" = "yes" -a "$perl_ok" != "yes"; then
++     AC_MSG_ERROR([could not configure perl])
++   fi
+  fi
+  AC_SUBST(shrpenv)
+  AC_SUBST(PERL_SRC)
+***************
+*** 966,971 ****
+--- 983,992 ----
+        AC_MSG_RESULT(too old)
+      fi
+    fi
++ 
++   if test "$fail_if_missing" = "yes" -a "$python_ok" != "yes"; then
++     AC_MSG_ERROR([could not configure python])
++   fi
+  fi
+  
+  AC_SUBST(PYTHON_CONFDIR)
+***************
+*** 1389,1394 ****
+--- 1410,1418 ----
+        AC_MSG_RESULT(too old; need Tcl version 8.0 or later)
+      fi
+    fi
++   if test "$fail_if_missing" = "yes" -a -z "$TCL_SRC"; then
++     AC_MSG_ERROR([could not configure Tcl])
++   fi
+  fi
+  AC_SUBST(TCL_SRC)
+  AC_SUBST(TCL_OBJ)
+***************
+*** 1469,1474 ****
+--- 1493,1502 ----
+        AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
+      fi
+    fi
++ 
++   if test "$fail_if_missing" = "yes" -a -z "$RUBY_OBJ"; then
++     AC_MSG_ERROR([could not configure Ruby])
++   fi
+  fi
+  AC_SUBST(RUBY_SRC)
+  AC_SUBST(RUBY_OBJ)
+*** ../vim-7.3.380/src/auto/configure  2011-12-14 19:22:29.000000000 +0100
+--- src/auto/configure 2011-12-14 20:49:51.000000000 +0100
+***************
+*** 741,746 ****
+--- 741,747 ----
+  ac_subst_files=''
+  ac_user_opts='
+  enable_option_checking
++ enable_fail_if_missing
+  enable_darwin
+  with_mac_arch
+  with_developer_dir
+***************
+*** 1418,1423 ****
+--- 1419,1426 ----
+    --disable-option-checking  ignore unrecognized --enable/--with options
+    --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+    --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
++   --enable-fail-if-missing    Fail if dependencies on additional features
++      specified on the command line are missing.
+    --disable-darwin        Disable Darwin (Mac OS X) support.
+    --disable-selinux    Don't check for SELinux support.
+    --disable-xsmp          Disable XSMP session management
+***************
+*** 3949,3954 ****
+--- 3952,3970 ----
+  fi
+  
+  
++ 
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-fail-if-missing argument" >&5
++ $as_echo_n "checking --enable-fail-if-missing argument... " >&6; }
++ # Check whether --enable-fail_if_missing was given.
++ if test "${enable_fail_if_missing+set}" = set; then :
++   enableval=$enable_fail_if_missing; fail_if_missing="yes"
++ else
++   fail_if_missing="no"
++ fi
++ 
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fail_if_missing" >&5
++ $as_echo "$fail_if_missing" >&6; }
++ 
+  if test -z "$CFLAGS"; then
+    CFLAGS="-O"
+    test "$GCC" = yes && CFLAGS="-O2 -fno-strength-reduce -Wall"
+***************
+*** 4727,4732 ****
+--- 4743,4751 ----
+        LUA_CFLAGS="-DDYNAMIC_LUA_DLL=\\\"liblua${vi_cv_version_lua}.so$LUA_SONAME\\\" $LUA_CFLAGS"
+      fi
+    fi
++   if test "$fail_if_missing" = "yes" -a -z "$LUA_SRC"; then
++     as_fn_error "could not configure lua" "$LINENO" 5
++   fi
+  
+  
+  
+***************
+*** 5140,5145 ****
+--- 5159,5168 ----
+        PERL_CFLAGS="-DDYNAMIC_PERL_DLL=\\\"$libperl\\\" $PERL_CFLAGS"
+      fi
+    fi
++ 
++   if test "$fail_if_missing" = "yes" -a "$perl_ok" != "yes"; then
++     as_fn_error "could not configure perl" "$LINENO" 5
++   fi
+  fi
+  
+  
+***************
+*** 5429,5434 ****
+--- 5452,5461 ----
+  $as_echo "too old" >&6; }
+      fi
+    fi
++ 
++   if test "$fail_if_missing" = "yes" -a "$python_ok" != "yes"; then
++     as_fn_error "could not configure python" "$LINENO" 5
++   fi
+  fi
+  
+  
+***************
+*** 6216,6221 ****
+--- 6243,6251 ----
+  $as_echo "too old; need Tcl version 8.0 or later" >&6; }
+      fi
+    fi
++   if test "$fail_if_missing" = "yes" -a -z "$TCL_SRC"; then
++     as_fn_error "could not configure Tcl" "$LINENO" 5
++   fi
+  fi
+  
+  
+***************
+*** 6353,6358 ****
+--- 6383,6392 ----
+  $as_echo "too old; need Ruby version 1.6.0 or later" >&6; }
+      fi
+    fi
++ 
++   if test "$fail_if_missing" = "yes" -a -z "$RUBY_OBJ"; then
++     as_fn_error "could not configure Ruby" "$LINENO" 5
++   fi
+  fi
+  
+  
+*** ../vim-7.3.380/src/version.c       2011-12-14 20:21:29.000000000 +0100
+--- src/version.c      2011-12-14 20:50:42.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     381,
+  /**/
+
+-- 
+The psychic said, "God bless you."  I said, "I didn't sneeze."  She
+looked deep into my eyes and said, "You will, eventually."  And, damn
+if she wasn't right.  Two days later, I sneezed.  --Ellen Degeneres
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.382 b/7.3.382
new file mode 100644 (file)
index 0000000..7f344e7
--- /dev/null
+++ b/7.3.382
@@ -0,0 +1,173 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.382
+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.3.382 (after 7.3.376)
+Problem:    IME characters are inserted twice.
+Solution:   Do not call DefWindowProc() if the event was handled. (Yasuhiro
+           Matsumoto)
+Files:     src/gui_w32.c
+
+
+*** ../vim-7.3.381/src/gui_w32.c       2011-12-14 15:23:53.000000000 +0100
+--- src/gui_w32.c      2011-12-15 21:50:51.000000000 +0100
+***************
+*** 798,804 ****
+               if (pt.y < rect.top)
+               {
+                   show_tabline_popup_menu();
+!                  return 0;
+               }
+           }
+           return MyWindowProc(hwnd, uMsg, wParam, lParam);
+--- 798,804 ----
+               if (pt.y < rect.top)
+               {
+                   show_tabline_popup_menu();
+!                  return 0L;
+               }
+           }
+           return MyWindowProc(hwnd, uMsg, wParam, lParam);
+***************
+*** 828,834 ****
+--- 828,837 ----
+  
+      case WM_ENDSESSION:
+       if (wParam)     /* system only really goes down when wParam is TRUE */
++      {
+           _OnEndSession();
++          return 0L;
++      }
+       break;
+  
+      case WM_CHAR:
+***************
+*** 866,872 ****
+        * are received, mouse pointer remains hidden. */
+       return MyWindowProc(hwnd, uMsg, wParam, lParam);
+  #else
+!      return 0;
+  #endif
+  
+      case WM_SIZING:  /* HANDLE_MSG doesn't seem to handle this one */
+--- 869,875 ----
+        * are received, mouse pointer remains hidden. */
+       return MyWindowProc(hwnd, uMsg, wParam, lParam);
+  #else
+!      return 0L;
+  #endif
+  
+      case WM_SIZING:  /* HANDLE_MSG doesn't seem to handle this one */
+***************
+*** 874,880 ****
+  
+      case WM_MOUSEWHEEL:
+       _OnMouseWheel(hwnd, HIWORD(wParam));
+!      break;
+  
+       /* Notification for change in SystemParametersInfo() */
+      case WM_SETTINGCHANGE:
+--- 877,883 ----
+  
+      case WM_MOUSEWHEEL:
+       _OnMouseWheel(hwnd, HIWORD(wParam));
+!      return 0L;
+  
+       /* Notification for change in SystemParametersInfo() */
+      case WM_SETTINGCHANGE:
+***************
+*** 987,999 ****
+--- 990,1008 ----
+           case TCN_SELCHANGE:
+               if (gui_mch_showing_tabline()
+                                 && ((LPNMHDR)lParam)->hwndFrom == s_tabhwnd)
++              {
+                   send_tabline_event(TabCtrl_GetCurSel(s_tabhwnd) + 1);
++                  return 0L;
++              }
+               break;
+  
+           case NM_RCLICK:
+               if (gui_mch_showing_tabline()
+                       && ((LPNMHDR)lParam)->hwndFrom == s_tabhwnd)
++              {
+                   show_tabline_popup_menu();
++                  return 0L;
++              }
+               break;
+  # endif
+           default:
+***************
+*** 1037,1042 ****
+--- 1046,1052 ----
+               out_flush();
+               did_menu_tip = TRUE;
+           }
++          return 0L;
+       }
+       break;
+  #endif
+***************
+*** 1079,1096 ****
+      case WM_IME_NOTIFY:
+       if (!_OnImeNotify(hwnd, (DWORD)wParam, (DWORD)lParam))
+           return MyWindowProc(hwnd, uMsg, wParam, lParam);
+!      break;
+      case WM_IME_COMPOSITION:
+       if (!_OnImeComposition(hwnd, wParam, lParam))
+           return MyWindowProc(hwnd, uMsg, wParam, lParam);
+!      break;
+  #endif
+  
+      default:
+       if (uMsg == msh_msgmousewheel && msh_msgmousewheel != 0)
+       {   /* handle MSH_MOUSEWHEEL messages for Intellimouse */
+           _OnMouseWheel(hwnd, HIWORD(wParam));
+!          break;
+       }
+  #ifdef MSWIN_FIND_REPLACE
+       else if (uMsg == s_findrep_msg && s_findrep_msg != 0)
+--- 1089,1107 ----
+      case WM_IME_NOTIFY:
+       if (!_OnImeNotify(hwnd, (DWORD)wParam, (DWORD)lParam))
+           return MyWindowProc(hwnd, uMsg, wParam, lParam);
+!      return 1L;
+! 
+      case WM_IME_COMPOSITION:
+       if (!_OnImeComposition(hwnd, wParam, lParam))
+           return MyWindowProc(hwnd, uMsg, wParam, lParam);
+!      return 1L;
+  #endif
+  
+      default:
+       if (uMsg == msh_msgmousewheel && msh_msgmousewheel != 0)
+       {   /* handle MSH_MOUSEWHEEL messages for Intellimouse */
+           _OnMouseWheel(hwnd, HIWORD(wParam));
+!          return 0L;
+       }
+  #ifdef MSWIN_FIND_REPLACE
+       else if (uMsg == s_findrep_msg && s_findrep_msg != 0)
+*** ../vim-7.3.381/src/version.c       2011-12-14 20:51:19.000000000 +0100
+--- src/version.c      2011-12-15 21:48:49.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     382,
+  /**/
+
+-- 
+Even got a Datapoint 3600(?) with a DD50 connector instead of the
+usual DB25...  what a nightmare trying to figure out the pinout
+for *that* with no spex...
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.383 b/7.3.383
new file mode 100644 (file)
index 0000000..c0ce6d9
--- /dev/null
+++ b/7.3.383
@@ -0,0 +1,51 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.383
+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.3.383
+Problem:    For EBCDIC pound sign is defined as 't'.
+Solution:   Correctly define POUND.
+Files:     src/ascii.h
+
+
+*** ../vim-7.3.382/src/ascii.h 2011-09-02 14:18:14.000000000 +0200
+--- src/ascii.h        2011-12-17 21:38:36.000000000 +0100
+***************
+*** 123,129 ****
+  #define DCS          0x90    /* Device Control String */
+  #define STERM                0x9c    /* String Terminator */
+  
+! #define POUND                '\xA3'
+  
+  #define CTRL_F_STR   "\056"
+  #define CTRL_H_STR   "\026"
+--- 123,129 ----
+  #define DCS          0x90    /* Device Control String */
+  #define STERM                0x9c    /* String Terminator */
+  
+! #define POUND                0xB1
+  
+  #define CTRL_F_STR   "\056"
+  #define CTRL_H_STR   "\026"
+*** ../vim-7.3.382/src/version.c       2011-12-15 21:51:32.000000000 +0100
+--- src/version.c      2011-12-23 12:46:08.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     383,
+  /**/
+
+-- 
+Vim is like Emacs without all the typing.  (John "Johann" Spetz)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.384 b/7.3.384
new file mode 100644 (file)
index 0000000..f75ff40
--- /dev/null
+++ b/7.3.384
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.384
+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.3.384
+Problem:    Mapping CTRL-K in Insert mode breaks CTRL-X CTRL-K for dictionary
+           completion.
+Solution:   Add CTRL-K to the list of recognized keys. (James McCoy)
+Files:     src/edit.c
+
+
+*** ../vim-7.3.383/src/edit.c  2011-10-26 17:04:23.000000000 +0200
+--- src/edit.c 2011-12-23 12:36:22.000000000 +0100
+***************
+*** 2183,2189 ****
+                   || c == Ctrl_I || c == Ctrl_D || c == Ctrl_P
+                   || c == Ctrl_N || c == Ctrl_T || c == Ctrl_V
+                   || c == Ctrl_Q || c == Ctrl_U || c == Ctrl_O
+!                  || c == Ctrl_S || c == 's');
+       case CTRL_X_SCROLL:
+           return (c == Ctrl_Y || c == Ctrl_E);
+       case CTRL_X_WHOLE_LINE:
+--- 2183,2189 ----
+                   || c == Ctrl_I || c == Ctrl_D || c == Ctrl_P
+                   || c == Ctrl_N || c == Ctrl_T || c == Ctrl_V
+                   || c == Ctrl_Q || c == Ctrl_U || c == Ctrl_O
+!                  || c == Ctrl_S || c == Ctrl_K || c == 's');
+       case CTRL_X_SCROLL:
+           return (c == Ctrl_Y || c == Ctrl_E);
+       case CTRL_X_WHOLE_LINE:
+*** ../vim-7.3.383/src/version.c       2011-12-23 12:46:56.000000000 +0100
+--- src/version.c      2011-12-23 12:53:38.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     384,
+  /**/
+
+-- 
+Q: Is selling software the same as selling hardware?
+A: No, good hardware is sold new, good software has already been used by many.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.385 b/7.3.385
new file mode 100644 (file)
index 0000000..405a77f
--- /dev/null
+++ b/7.3.385
@@ -0,0 +1,69 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.385
+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.3.385
+Problem:    When using an expression mapping on the command line the cursor
+           ends up in the wrong place. (Yasuhiro Matsumoto)
+Solution:   Save and restore msg_col and msg_row when evaluating the
+           expression.
+Files:     src/getchar.
+
+
+*** ../vim-7.3.384/src/getchar.c       2011-10-12 22:02:07.000000000 +0200
+--- src/getchar.c      2011-12-14 18:37:52.000000000 +0100
+***************
+*** 4510,4515 ****
+--- 4510,4517 ----
+      char_u   *expr;
+      char_u   *save_cmd;
+      pos_T    save_cursor;
++     int              save_msg_col;
++     int              save_msg_row;
+  
+      /* Remove escaping of CSI, because "str" is in a format to be used as
+       * typeahead. */
+***************
+*** 4533,4544 ****
+--- 4535,4550 ----
+  #endif
+      set_vim_var_char(c);  /* set v:char to the typed character */
+      save_cursor = curwin->w_cursor;
++     save_msg_col = msg_col;
++     save_msg_row = msg_row;
+      p = eval_to_string(expr, NULL, FALSE);
+      --textlock;
+  #ifdef FEAT_EX_EXTRA
+      --ex_normal_lock;
+  #endif
+      curwin->w_cursor = save_cursor;
++     msg_col = save_msg_col;
++     msg_row = save_msg_row;
+  
+      restore_cmdline_alloc(save_cmd);
+      vim_free(expr);
+*** ../vim-7.3.384/src/version.c       2011-12-23 13:14:58.000000000 +0100
+--- src/version.c      2011-12-23 14:53:23.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     385,
+  /**/
+
+-- 
+`When any government, or any church for that matter, undertakes to say to
+ its subjects, "This you may not read, this you must not see, this you are
+ forbidden to know," the end result is tyranny and oppression no matter how
+ holy the motives' -- Robert A Heinlein, "If this goes on --"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.386 b/7.3.386
new file mode 100644 (file)
index 0000000..c903505
--- /dev/null
+++ b/7.3.386
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.386
+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.3.386
+Problem:    Test 83 fails when iconv does not support cp932. (raf)
+Solution:   Test if conversion works. (Yukihiro Nakadaira)
+Files:     src/testdir/test83.in
+
+
+*** ../vim-7.3.385/src/testdir/test83.in       2011-10-12 19:53:31.000000000 +0200
+--- src/testdir/test83.in      2011-12-21 21:01:44.000000000 +0100
+***************
+*** 2,8 ****
+  
+  STARTTEST
+  :so mbyte.vim
+! :if !has('iconv')
+  : e! test.ok
+  : w! test.out
+  : qa!
+--- 2,8 ----
+  
+  STARTTEST
+  :so mbyte.vim
+! :if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
+  : e! test.ok
+  : w! test.out
+  : qa!
+*** ../vim-7.3.385/src/version.c       2011-12-23 14:54:01.000000000 +0100
+--- src/version.c      2011-12-23 14:55:38.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     386,
+  /**/
+
+-- 
+WOMAN:   King of the who?
+ARTHUR:  The Britons.
+WOMAN:   Who are the Britons?
+ARTHUR:  Well, we all are. we're all Britons and I am your king.
+                                  The Quest for the Holy Grail (Monty Python)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.387 b/7.3.387
new file mode 100644 (file)
index 0000000..6b20a58
--- /dev/null
+++ b/7.3.387
@@ -0,0 +1,61 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.387
+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.3.387 (after 7.3.386)
+Problem:    Test 83 may fail for some encodings.
+Solution:   Set 'encoding' to utf-8 earlier.
+Files:     src/testdir/test83.in
+
+
+*** ../vim-7.3.386/src/testdir/test83.in       2011-12-23 14:56:24.000000000 +0100
+--- src/testdir/test83.in      2011-12-30 13:05:05.000000000 +0100
+***************
+*** 2,13 ****
+  
+  STARTTEST
+  :so mbyte.vim
+  :if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
+  : e! test.ok
+  : w! test.out
+  : qa!
+  :endif
+- :set enc=utf8
+  
+  :/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
+  :/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
+--- 2,13 ----
+  
+  STARTTEST
+  :so mbyte.vim
++ :set enc=utf8
+  :if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
+  : e! test.ok
+  : w! test.out
+  : qa!
+  :endif
+  
+  :/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
+  :/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
+*** ../vim-7.3.386/src/version.c       2011-12-23 14:56:24.000000000 +0100
+--- src/version.c      2011-12-30 13:06:17.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     387,
+  /**/
+
+-- 
+Mental Floss prevents moral decay!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.388 b/7.3.388
new file mode 100644 (file)
index 0000000..7a6df89
--- /dev/null
+++ b/7.3.388
@@ -0,0 +1,45 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.388
+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.3.388
+Problem:    Crash on exit when EXITFREE is defined and using tiny features.
+Solution:   Check for NULL window pointer. (Dominique Pelle)
+Files:     src/buffer.c
+
+
+*** ../vim-7.3.387/src/buffer.c        2011-11-30 15:40:51.000000000 +0100
+--- src/buffer.c       2011-12-30 13:35:26.000000000 +0100
+***************
+*** 419,424 ****
+--- 419,426 ----
+      if (
+  #ifdef FEAT_WINDOWS
+       win_valid(win) &&
++ #else
++      win != NULL &&
+  #endif
+                         win->w_buffer == buf)
+       win->w_buffer = NULL;  /* make sure we don't use the buffer now */
+*** ../vim-7.3.387/src/version.c       2011-12-30 13:09:15.000000000 +0100
+--- src/version.c      2011-12-30 13:37:23.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     388,
+  /**/
+
+-- 
+Be nice to your kids...  they'll be the ones choosing your nursing home.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.389 b/7.3.389
new file mode 100644 (file)
index 0000000..c8a968c
--- /dev/null
+++ b/7.3.389
@@ -0,0 +1,61 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.389
+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.3.389
+Problem:    After typing at a prompt the "MORE" message appears too soon.
+Solution:   reset lines_left in msg_end_prompt(). (Eswald)
+Files:     src/message.c
+
+
+*** ../vim-7.3.388/src/message.c       2011-09-14 15:39:26.000000000 +0200
+--- src/message.c      2011-12-30 14:08:05.000000000 +0100
+***************
+*** 85,91 ****
+   *               need_wait_return to be set.  This is a hack to make ":ts"
+   *               work without an extra prompt.
+   * lines_left            Number of lines available for messages before the
+!  *               more-prompt is to be given.
+   * need_wait_return TRUE when the hit-return prompt is needed.
+   *               Reset: After giving the hit-return prompt, when the user
+   *               has answered some other prompt.
+--- 85,91 ----
+   *               need_wait_return to be set.  This is a hack to make ":ts"
+   *               work without an extra prompt.
+   * lines_left            Number of lines available for messages before the
+!  *               more-prompt is to be given.  -1 when not set.
+   * need_wait_return TRUE when the hit-return prompt is needed.
+   *               Reset: After giving the hit-return prompt, when the user
+   *               has answered some other prompt.
+***************
+*** 855,860 ****
+--- 855,861 ----
+      cmdline_row = msg_row;
+      msg_col = 0;
+      msg_clr_eos();
++     lines_left = -1;
+  }
+  #endif
+  
+*** ../vim-7.3.388/src/version.c       2011-12-30 13:39:04.000000000 +0100
+--- src/version.c      2011-12-30 14:11:00.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     389,
+  /**/
+
+-- 
+Proofread carefully to see if you any words out.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.390 b/7.3.390
new file mode 100644 (file)
index 0000000..7199f8e
--- /dev/null
+++ b/7.3.390
@@ -0,0 +1,155 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.390
+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.3.390
+Problem:    Using NULL buffer pointer in a window.
+Solution:   Check for w_buffer being NULL in more places. (Bjorn Winckler)
+Files:     src/ex_cmds.c, src/quickfix.c, src/window.c
+
+
+*** ../vim-7.3.389/src/ex_cmds.c       2011-11-30 17:01:55.000000000 +0100
+--- src/ex_cmds.c      2011-12-30 14:59:57.000000000 +0100
+***************
+*** 3390,3395 ****
+--- 3390,3402 ----
+                                     (flags & ECMD_HIDE) ? 0 : DOBUF_UNLOAD);
+  
+  #ifdef FEAT_AUTOCMD
++              /* Autocommands may open a new window and leave oldwin open
++               * which leads to crashes since the above call sets
++               * oldwin->w_buffer to NULL. */
++              if (curwin != oldwin && oldwin != aucmd_win
++                           && win_valid(oldwin) && oldwin->w_buffer == NULL)
++                  win_close(oldwin, FALSE);
++ 
+  # ifdef FEAT_EVAL
+               if (aborting())     /* autocmds may abort script processing */
+               {
+*** ../vim-7.3.389/src/quickfix.c      2011-08-10 18:36:49.000000000 +0200
+--- src/quickfix.c     2011-12-30 14:45:19.000000000 +0100
+***************
+*** 2675,2681 ****
+  bt_quickfix(buf)
+      buf_T    *buf;
+  {
+!     return (buf->b_p_bt[0] == 'q');
+  }
+  
+  /*
+--- 2675,2681 ----
+  bt_quickfix(buf)
+      buf_T    *buf;
+  {
+!     return buf != NULL && buf->b_p_bt[0] == 'q';
+  }
+  
+  /*
+***************
+*** 2686,2693 ****
+  bt_nofile(buf)
+      buf_T    *buf;
+  {
+!     return (buf->b_p_bt[0] == 'n' && buf->b_p_bt[2] == 'f')
+!          || buf->b_p_bt[0] == 'a';
+  }
+  
+  /*
+--- 2686,2693 ----
+  bt_nofile(buf)
+      buf_T    *buf;
+  {
+!     return buf != NULL && ((buf->b_p_bt[0] == 'n' && buf->b_p_bt[2] == 'f')
+!          || buf->b_p_bt[0] == 'a');
+  }
+  
+  /*
+***************
+*** 2697,2703 ****
+  bt_dontwrite(buf)
+      buf_T    *buf;
+  {
+!     return (buf->b_p_bt[0] == 'n');
+  }
+  
+      int
+--- 2697,2703 ----
+  bt_dontwrite(buf)
+      buf_T    *buf;
+  {
+!     return buf != NULL && buf->b_p_bt[0] == 'n';
+  }
+  
+      int
+*** ../vim-7.3.389/src/window.c        2011-09-14 14:43:21.000000000 +0200
+--- src/window.c       2011-12-30 14:44:18.000000000 +0100
+***************
+*** 2170,2176 ****
+  
+      /* When closing the help window, try restoring a snapshot after closing
+       * the window.  Otherwise clear the snapshot, it's now invalid. */
+!     if (win->w_buffer->b_help)
+       help_window = TRUE;
+      else
+       clear_snapshot(curtab, SNAP_HELP_IDX);
+--- 2170,2176 ----
+  
+      /* When closing the help window, try restoring a snapshot after closing
+       * the window.  Otherwise clear the snapshot, it's now invalid. */
+!     if (win->w_buffer != NULL && win->w_buffer->b_help)
+       help_window = TRUE;
+      else
+       clear_snapshot(curtab, SNAP_HELP_IDX);
+***************
+*** 2214,2226 ****
+  
+  #ifdef FEAT_SYN_HL
+      /* Free independent synblock before the buffer is freed. */
+!     reset_synblock(win);
+  #endif
+  
+      /*
+       * Close the link to the buffer.
+       */
+!     close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0);
+  
+      /* Autocommands may have closed the window already, or closed the only
+       * other window or moved to another tab page. */
+--- 2214,2228 ----
+  
+  #ifdef FEAT_SYN_HL
+      /* Free independent synblock before the buffer is freed. */
+!     if (win->w_buffer != NULL)
+!      reset_synblock(win);
+  #endif
+  
+      /*
+       * Close the link to the buffer.
+       */
+!     if (win->w_buffer != NULL)
+!      close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0);
+  
+      /* Autocommands may have closed the window already, or closed the only
+       * other window or moved to another tab page. */
+*** ../vim-7.3.389/src/version.c       2011-12-30 14:14:16.000000000 +0100
+--- src/version.c      2011-12-30 14:38:39.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     390,
+  /**/
+
+-- 
+There can't be a crisis today, my schedule is already full.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.391 b/7.3.391
new file mode 100644 (file)
index 0000000..0a1bcce
--- /dev/null
+++ b/7.3.391
@@ -0,0 +1,51 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.391
+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.3.391
+Problem:    Can't check if the XPM_W32 feature is enabled.
+Solution:   Add xpm_w32 to the list of features. (kat)
+Files:     src/eval.c
+
+
+*** ../vim-7.3.390/src/eval.c  2011-12-14 15:32:44.000000000 +0100
+--- src/eval.c 2012-01-04 14:33:22.000000000 +0100
+***************
+*** 12260,12265 ****
+--- 12260,12268 ----
+  #ifdef FEAT_XFONTSET
+       "xfontset",
+  #endif
++ #ifdef FEAT_XPM_W32
++      "xpm_w32",
++ #endif
+  #ifdef USE_XSMP
+       "xsmp",
+  #endif
+*** ../vim-7.3.390/src/version.c       2011-12-30 15:01:55.000000000 +0100
+--- src/version.c      2012-01-04 14:34:31.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     391,
+  /**/
+
+-- 
+ROBIN:  The what?
+ARTHUR: The Holy Hand Grenade of Antioch.  'Tis one of the sacred relics
+        Brother Maynard always carries with him.
+ALL:    Yes. Of course.
+ARTHUR: (shouting) Bring up the Holy Hand Grenade!
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.392 b/7.3.392
new file mode 100644 (file)
index 0000000..a603d90
--- /dev/null
+++ b/7.3.392
@@ -0,0 +1,115 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.392
+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.3.392
+Problem:    When setting 'undofile' while the file is already loaded but
+           unchanged, try reading the undo file. (Andy Wokula)
+Solution:   Compute a checksum of the text when 'undofile' is set. (Christian
+           Brabandt)
+Files:     src/option.c, src/testdir/test72.in, src/testdir/test72.ok
+
+
+*** ../vim-7.3.391/src/option.c        2011-11-30 11:31:25.000000000 +0100
+--- src/option.c       2012-01-04 19:34:11.000000000 +0100
+***************
+*** 7516,7521 ****
+--- 7516,7545 ----
+       compatible_set();
+      }
+  
++ #ifdef FEAT_PERSISTENT_UNDO
++     /* 'undofile' */
++     else if ((int *)varp == &curbuf->b_p_udf || (int *)varp == &p_udf)
++     {
++      char_u  hash[UNDO_HASH_SIZE];
++      buf_T   *save_curbuf = curbuf;
++ 
++      for (curbuf = firstbuf; curbuf != NULL; curbuf = curbuf->b_next)
++      {
++          /* When 'undofile' is set globally: for every buffer, otherwise
++           * only for the current buffer: Try to read in the undofile, if
++           * one exists and the buffer wasn't changed. */
++          if ((curbuf == save_curbuf
++                              || (opt_flags & OPT_GLOBAL) || opt_flags == 0)
++                  && !curbufIsChanged())
++          {
++              u_compute_hash(hash);
++              u_read_undo(NULL, hash, curbuf->b_fname);
++          }
++      }
++      curbuf = save_curbuf;
++     }
++ #endif
++ 
+      /* 'list', 'number' */
+      else if ((int *)varp == &curwin->w_p_list
+         || (int *)varp == &curwin->w_p_nu
+*** ../vim-7.3.391/src/testdir/test72.in       2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test72.in      2012-01-04 19:04:17.000000000 +0100
+***************
+*** 51,56 ****
+--- 51,62 ----
+  :e Xtestfile
+  uuu:w >>test.out
+  :"
++ :" Test that reading the undofiles when setting undofile works
++ :set noundofile ul=0
++ i
++ \eu:e! Xtestfile
++ :set undofile ul=100
++ uuuuuu:w >>test.out
+  :" And now with encryption, cryptmethod=zip
+  :e! Xtestfile
+  :set undofile cm=zip
+*** ../vim-7.3.391/src/testdir/test72.ok       2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test72.ok      2012-01-04 19:04:17.000000000 +0100
+***************
+*** 7,12 ****
+--- 7,22 ----
+  eight
+  nine
+  ten
++ one
++ two
++ three
++ four
++ five
++ six
++ seven
++ eight
++ nine
++ ten
+  monday
+  wednesday
+  thursday
+*** ../vim-7.3.391/src/version.c       2012-01-04 14:35:31.000000000 +0100
+--- src/version.c      2012-01-04 19:33:41.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     392,
+  /**/
+
+-- 
+BROTHER MAYNARD: Armaments Chapter Two Verses Nine to Twenty One.
+ANOTHER MONK:    And St.  Attila raised his hand grenade up on high saying "O
+                 Lord bless this thy hand grenade that with it thou mayest
+                 blow thine enemies to tiny bits, in thy mercy. "and the Lord
+                 did grin and people did feast upon the lambs and sloths and
+                 carp and anchovies and orang-utans and breakfast cereals and
+                 fruit bats and...
+BROTHER MAYNARD: Skip a bit brother ...
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.393 b/7.3.393
new file mode 100644 (file)
index 0000000..ca6cbc9
--- /dev/null
+++ b/7.3.393
@@ -0,0 +1,130 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.393
+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.3.393
+Problem:    Win32: When resizing Vim it is always moved to the primary monitor
+           if the secondary monitor is on the left.
+Solution:   Use the nearest monitor. (Yukihiro Nakadaira)
+Files:     src/gui_w32.c
+
+
+*** ../vim-7.3.392/src/gui_w32.c       2011-12-15 21:51:32.000000000 +0100
+--- src/gui_w32.c      2012-01-04 20:25:58.000000000 +0100
+***************
+*** 1661,1669 ****
+  {
+      RECT     workarea_rect;
+      int              win_width, win_height;
+-     int              win_xpos, win_ypos;
+      WINDOWPLACEMENT wndpl;
+-     int              workarea_left;
+  
+      /* Try to keep window completely on screen. */
+      /* Get position of the screen work area.  This is the part that is not
+--- 1661,1667 ----
+***************
+*** 1685,1693 ****
+       GetWindowPlacement(s_hwnd, &wndpl);
+      }
+  
+-     win_xpos = wndpl.rcNormalPosition.left;
+-     win_ypos = wndpl.rcNormalPosition.top;
+- 
+      /* compute the size of the outside of the window */
+      win_width = width + GetSystemMetrics(SM_CXFRAME) * 2;
+      win_height = height + GetSystemMetrics(SM_CYFRAME) * 2
+--- 1683,1688 ----
+***************
+*** 1697,1732 ****
+  #endif
+                       ;
+  
+!     /* There is an inconsistency when using two monitors and Vim is on the
+!      * second (right) one: win_xpos will be the offset from the workarea of
+!      * the left monitor.  While with one monitor it's the offset from the
+!      * workarea (including a possible taskbar on the left).  Detect the second
+!      * monitor by checking for the left offset to be quite big. */
+!     if (workarea_rect.left > 300)
+!      workarea_left = 0;
+!     else
+!      workarea_left = workarea_rect.left;
+  
+!     /* If the window is going off the screen, move it on to the screen.
+!      * win_xpos and win_ypos are relative to the workarea. */
+      if ((direction & RESIZE_HOR)
+!          && workarea_left + win_xpos + win_width > workarea_rect.right)
+!      win_xpos = workarea_rect.right - win_width - workarea_left;
+  
+!     if ((direction & RESIZE_HOR) && win_xpos < 0)
+!      win_xpos = 0;
+  
+      if ((direction & RESIZE_VERT)
+!        && workarea_rect.top + win_ypos + win_height > workarea_rect.bottom)
+!      win_ypos = workarea_rect.bottom - win_height - workarea_rect.top;
+  
+!     if ((direction & RESIZE_VERT) && win_ypos < 0)
+!      win_ypos = 0;
+! 
+!     wndpl.rcNormalPosition.left = win_xpos;
+!     wndpl.rcNormalPosition.right = win_xpos + win_width;
+!     wndpl.rcNormalPosition.top = win_ypos;
+!     wndpl.rcNormalPosition.bottom = win_ypos + win_height;
+  
+      /* set window position - we should use SetWindowPlacement rather than
+       * SetWindowPos as the MSDN docs say the coord systems returned by
+--- 1692,1723 ----
+  #endif
+                       ;
+  
+!     /* The following should take care of keeping Vim on the same monitor, no
+!      * matter if the secondary monitor is left or right of the primary
+!      * monitor. */
+!     wndpl.rcNormalPosition.right = wndpl.rcNormalPosition.left + win_width;
+!     wndpl.rcNormalPosition.bottom = wndpl.rcNormalPosition.top + win_height;
+  
+!     /* If the window is going off the screen, move it on to the screen. */
+      if ((direction & RESIZE_HOR)
+!          && wndpl.rcNormalPosition.right > workarea_rect.right)
+!      OffsetRect(&wndpl.rcNormalPosition,
+!              workarea_rect.right - wndpl.rcNormalPosition.right, 0);
+  
+!     if ((direction & RESIZE_HOR)
+!          && wndpl.rcNormalPosition.left < workarea_rect.left)
+!      OffsetRect(&wndpl.rcNormalPosition,
+!              workarea_rect.left - wndpl.rcNormalPosition.left, 0);
+  
+      if ((direction & RESIZE_VERT)
+!          && wndpl.rcNormalPosition.bottom > workarea_rect.bottom)
+!      OffsetRect(&wndpl.rcNormalPosition,
+!              0, workarea_rect.bottom - wndpl.rcNormalPosition.bottom);
+  
+!     if ((direction & RESIZE_VERT)
+!          && wndpl.rcNormalPosition.top < workarea_rect.top)
+!      OffsetRect(&wndpl.rcNormalPosition,
+!              0, workarea_rect.top - wndpl.rcNormalPosition.top);
+  
+      /* set window position - we should use SetWindowPlacement rather than
+       * SetWindowPos as the MSDN docs say the coord systems returned by
+*** ../vim-7.3.392/src/version.c       2012-01-04 19:34:32.000000000 +0100
+--- src/version.c      2012-01-04 20:28:57.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     393,
+  /**/
+
+-- 
+I wonder, do vegetarians eat fruit bats?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.394 b/7.3.394
new file mode 100644 (file)
index 0000000..20c7cff
--- /dev/null
+++ b/7.3.394
@@ -0,0 +1,62 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.394
+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.3.394
+Problem:    When placing a mark while starting up a screen redraw messes up
+           the screen. (lith)
+Solution:   Don't redraw while still starting up. (Christian Brabandt)
+Files:     src/screen.c
+
+
+*** ../vim-7.3.393/src/screen.c        2011-09-02 14:07:31.000000000 +0200
+--- src/screen.c       2012-01-10 12:36:52.000000000 +0100
+***************
+*** 764,772 ****
+           doit = TRUE;
+      }
+  
+!     /* Return when there is nothing to do or screen updating already
+!      * happening. */
+!     if (!doit || updating_screen)
+       return;
+  
+      /* update all windows that need updating */
+--- 764,776 ----
+           doit = TRUE;
+      }
+  
+!     /* Return when there is nothing to do, screen updating is already
+!      * happening (recursive call) or still starting up. */
+!     if (!doit || updating_screen
+! #ifdef FEAT_GUI
+!          || gui.starting
+! #endif
+!          || starting)
+       return;
+  
+      /* update all windows that need updating */
+*** ../vim-7.3.393/src/version.c       2012-01-04 20:29:18.000000000 +0100
+--- src/version.c      2012-01-10 12:41:32.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     394,
+  /**/
+
+-- 
+It is illegal for anyone to try and stop a child from playfully jumping over
+puddles of water.
+               [real standing law in California, United States of America]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.395 b/7.3.395
new file mode 100644 (file)
index 0000000..cb26893
--- /dev/null
+++ b/7.3.395
@@ -0,0 +1,115 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.395
+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.3.395 (after 7.3.251)
+Problem:    "dv?bar" in the last line deletes too much and breaks undo.
+Solution:   Only adjust the cursor position when it's after the last line of
+           the buffer.  Add a test. (Christian Brabandt)
+Files:     src/ops.c, src/testdir/test43.in, src/testdir/test43.ok
+
+
+*** ../vim-7.3.394/src/ops.c   2011-09-21 17:33:49.000000000 +0200
+--- src/ops.c  2012-01-10 13:28:05.000000000 +0100
+***************
+*** 1961,1968 ****
+               /* Special case: gH<Del> deletes the last line. */
+               del_lines(1L, FALSE);
+               curwin->w_cursor = curpos;      /* restore curwin->w_cursor */
+!              if (curwin->w_cursor.lnum > 1)
+!                  --curwin->w_cursor.lnum;
+           }
+           else
+           {
+--- 1962,1969 ----
+               /* Special case: gH<Del> deletes the last line. */
+               del_lines(1L, FALSE);
+               curwin->w_cursor = curpos;      /* restore curwin->w_cursor */
+!              if (curwin->w_cursor.lnum > curbuf->b_ml.ml_line_count)
+!                  curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count;
+           }
+           else
+           {
+***************
+*** 4434,4440 ****
+  #endif
+  
+  /*
+!  * implementation of the format operator 'gq'
+   */
+      void
+  op_format(oap, keep_cursor)
+--- 4435,4441 ----
+  #endif
+  
+  /*
+!  * Implementation of the format operator 'gq'.
+   */
+      void
+  op_format(oap, keep_cursor)
+*** ../vim-7.3.394/src/testdir/test43.in       2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test43.in      2012-01-10 13:41:13.000000000 +0100
+***************
+*** 13,19 ****
+  x:set magic
+  /\v(a)(b)\2\1\1/e
+  x/\V[ab]\(\[xy]\)\1
+! x:?^1?,$w! test.out
+  :qa!
+  ENDTEST
+  
+--- 13,23 ----
+  x:set magic
+  /\v(a)(b)\2\1\1/e
+  x/\V[ab]\(\[xy]\)\1
+! x:$
+! :set undolevels=100
+! dv?bar?
+! Yup:"
+! :?^1?,$w! test.out
+  :qa!
+  ENDTEST
+  
+***************
+*** 25,27 ****
+--- 29,33 ----
+  6 x ^aa$ x
+  7 (a)(b) abbaa
+  8 axx [ab]xx
++ 9 foobar
++ 
+*** ../vim-7.3.394/src/testdir/test43.ok       2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test43.ok      2012-01-10 13:42:39.000000000 +0100
+***************
+*** 6,8 ****
+--- 6,11 ----
+  6 x aa$ x
+  7 (a)(b) abba
+  8 axx ab]xx
++ 9 foobar
++ 9 foo
++ 
+*** ../vim-7.3.394/src/version.c       2012-01-10 12:42:05.000000000 +0100
+--- src/version.c      2012-01-10 13:30:40.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     395,
+  /**/
+
+-- 
+The Law, in its majestic equality, forbids the rich, as well as the
+poor, to sleep under the bridges, to beg in the streets, and to steal
+bread.                       -- Anatole France
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.396 b/7.3.396
new file mode 100644 (file)
index 0000000..72b55a2
--- /dev/null
+++ b/7.3.396
@@ -0,0 +1,49 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.396
+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.3.396
+Problem:    After forcing an operator to be characterwise it can still become
+           linewise when spanning whole lines.
+Solution:   Don't make the operator linewise when motion_force was set.
+           (Christian Brabandt)
+Files:     src/ops.c
+
+
+*** ../vim-7.3.395/src/ops.c   2012-01-10 13:44:23.000000000 +0100
+--- src/ops.c  2012-01-10 13:28:05.000000000 +0100
+***************
+*** 1648,1653 ****
+--- 1648,1654 ----
+           && !oap->block_mode
+  #endif
+           && oap->line_count > 1
++          && oap->motion_force == NUL
+           && oap->op_type == OP_DELETE)
+      {
+       ptr = ml_get(oap->end.lnum) + oap->end.col;
+*** ../vim-7.3.395/src/version.c       2012-01-10 13:44:23.000000000 +0100
+--- src/version.c      2012-01-10 13:45:31.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     396,
+  /**/
+
+-- 
+Any sufficiently advanced technology is indistinguishable from magic.
+                                       Arthur C. Clarke
+Any sufficiently advanced bug is indistinguishable from a feature.
+                                        Rich Kulawiec
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.397 b/7.3.397
new file mode 100644 (file)
index 0000000..866b3aa
--- /dev/null
+++ b/7.3.397
@@ -0,0 +1,224 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.397
+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.3.397
+Problem:    ":helpgrep" does not work properly when 'encoding' is not utf-8 or
+           latin1.
+Solution:   Convert non-ascii lines to 'encoding'. (Yasuhiro Matsumoto)
+Files:     src/quickfix.c, src/spell.c, src/misc2.c, src/proto/misc2.pro
+
+
+*** ../vim-7.3.396/src/quickfix.c      2011-12-30 15:01:55.000000000 +0100
+--- src/quickfix.c     2012-01-10 16:18:51.000000000 +0100
+***************
+*** 3914,3919 ****
+--- 3914,3929 ----
+      regmatch.rm_ic = FALSE;
+      if (regmatch.regprog != NULL)
+      {
++ #ifdef FEAT_MBYTE
++      vimconv_T vc;
++ 
++      /* Help files are in utf-8 or latin1, convert lines when 'encoding'
++       * differs. */
++      vc.vc_type = CONV_NONE;
++      if (!enc_utf8)
++          convert_setup(&vc, (char_u *)"utf-8", p_enc);
++ #endif
++ 
+       /* create a new quickfix list */
+       qf_new_list(qi, *eap->cmdlinep);
+  
+***************
+*** 3948,3968 ****
+                       lnum = 1;
+                       while (!vim_fgets(IObuff, IOSIZE, fd) && !got_int)
+                       {
+!                          if (vim_regexec(&regmatch, IObuff, (colnr_T)0))
+                           {
+!                              int     l = (int)STRLEN(IObuff);
+  
+                               /* remove trailing CR, LF, spaces, etc. */
+!                              while (l > 0 && IObuff[l - 1] <= ' ')
+!                                   IObuff[--l] = NUL;
+  
+                               if (qf_add_entry(qi, &prevp,
+                                           NULL,       /* dir */
+                                           fnames[fi],
+                                           0,
+!                                          IObuff,
+                                           lnum,
+!                                          (int)(regmatch.startp[0] - IObuff)
+                                                               + 1, /* col */
+                                           FALSE,      /* vis_col */
+                                           NULL,       /* search pattern */
+--- 3958,3990 ----
+                       lnum = 1;
+                       while (!vim_fgets(IObuff, IOSIZE, fd) && !got_int)
+                       {
+!                          char_u    *line = IObuff;
+! #ifdef FEAT_MBYTE
+!                          /* Convert a line if 'encoding' is not utf-8 and
+!                           * the line contains a non-ASCII character. */
+!                          if (vc.vc_type != CONV_NONE
+!                                                 && has_non_ascii(IObuff)) {
+!                              line = string_convert(&vc, IObuff, NULL);
+!                              if (line == NULL)
+!                                  line = IObuff;
+!                          }
+! #endif
+! 
+!                          if (vim_regexec(&regmatch, line, (colnr_T)0))
+                           {
+!                              int     l = (int)STRLEN(line);
+  
+                               /* remove trailing CR, LF, spaces, etc. */
+!                              while (l > 0 && line[l - 1] <= ' ')
+!                                   line[--l] = NUL;
+  
+                               if (qf_add_entry(qi, &prevp,
+                                           NULL,       /* dir */
+                                           fnames[fi],
+                                           0,
+!                                          line,
+                                           lnum,
+!                                          (int)(regmatch.startp[0] - line)
+                                                               + 1, /* col */
+                                           FALSE,      /* vis_col */
+                                           NULL,       /* search pattern */
+***************
+*** 3972,3980 ****
+--- 3994,4010 ----
+                                           ) == FAIL)
+                               {
+                                   got_int = TRUE;
++ #ifdef FEAT_MBYTE
++                                  if (line != IObuff)
++                                      vim_free(line);
++ #endif
+                                   break;
+                               }
+                           }
++ #ifdef FEAT_MBYTE
++                          if (line != IObuff)
++                              vim_free(line);
++ #endif
+                           ++lnum;
+                           line_breakcheck();
+                       }
+***************
+*** 3984,3990 ****
+--- 4014,4025 ----
+               FreeWild(fcount, fnames);
+           }
+       }
++ 
+       vim_free(regmatch.regprog);
++ #ifdef FEAT_MBYTE
++      if (vc.vc_type != CONV_NONE)
++          convert_setup(&vc, NULL, NULL);
++ #endif
+  
+       qi->qf_lists[qi->qf_curlist].qf_nonevalid = FALSE;
+       qi->qf_lists[qi->qf_curlist].qf_ptr =
+*** ../vim-7.3.396/src/spell.c 2011-09-02 14:18:14.000000000 +0200
+--- src/spell.c        2012-01-10 16:19:33.000000000 +0100
+***************
+*** 5020,5026 ****
+  static int str_equal __ARGS((char_u *s1, char_u      *s2));
+  static void add_fromto __ARGS((spellinfo_T *spin, garray_T *gap, char_u      *from, char_u *to));
+  static int sal_to_bool __ARGS((char_u *s));
+- static int has_non_ascii __ARGS((char_u *s));
+  static void spell_free_aff __ARGS((afffile_T *aff));
+  static int spell_read_dic __ARGS((spellinfo_T *spin, char_u *fname, afffile_T *affile));
+  static int get_affix_flags __ARGS((afffile_T *affile, char_u *afflist));
+--- 5020,5025 ----
+***************
+*** 6485,6507 ****
+  }
+  
+  /*
+-  * Return TRUE if string "s" contains a non-ASCII character (128 or higher).
+-  * When "s" is NULL FALSE is returned.
+-  */
+-     static int
+- has_non_ascii(s)
+-     char_u   *s;
+- {
+-     char_u   *p;
+- 
+-     if (s != NULL)
+-      for (p = s; *p != NUL; ++p)
+-          if (*p >= 128)
+-              return TRUE;
+-     return FALSE;
+- }
+- 
+- /*
+   * Free the structure filled by spell_read_aff().
+   */
+      static void
+--- 6484,6489 ----
+*** ../vim-7.3.396/src/misc2.c 2011-12-08 17:49:31.000000000 +0100
+--- src/misc2.c        2012-01-10 16:25:53.000000000 +0100
+***************
+*** 6541,6543 ****
+--- 6541,6563 ----
+  #endif
+  
+  #endif
++ 
++ #if (defined(FEAT_MBYTE) && defined(FEAT_QUICKFIX)) \
++      || defined(FEAT_SPELL) || defined(PROTO)
++ /*
++  * Return TRUE if string "s" contains a non-ASCII character (128 or higher).
++  * When "s" is NULL FALSE is returned.
++  */
++     int
++ has_non_ascii(s)
++     char_u   *s;
++ {
++     char_u   *p;
++ 
++     if (s != NULL)
++      for (p = s; *p != NUL; ++p)
++          if (*p >= 128)
++              return TRUE;
++     return FALSE;
++ }
++ #endif
+*** ../vim-7.3.396/src/proto/misc2.pro 2011-07-07 16:20:45.000000000 +0200
+--- src/proto/misc2.pro        2012-01-10 16:20:03.000000000 +0100
+***************
+*** 116,119 ****
+--- 116,120 ----
+  char_u *read_string __ARGS((FILE *fd, int cnt));
+  int put_bytes __ARGS((FILE *fd, long_u nr, int len));
+  void put_time __ARGS((FILE *fd, time_t the_time));
++ int has_non_ascii __ARGS((char_u *s));
+  /* vim: set ft=c : */
+*** ../vim-7.3.396/src/version.c       2012-01-10 13:46:18.000000000 +0100
+--- src/version.c      2012-01-10 16:26:32.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     397,
+  /**/
+
+-- 
+Biting someone with your natural teeth is "simple assault," while biting
+someone with your false teeth is "aggravated assault."
+               [real standing law in Louisana, United States of America]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.398 b/7.3.398
new file mode 100644 (file)
index 0000000..8d4b213
--- /dev/null
+++ b/7.3.398
@@ -0,0 +1,65 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.398
+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.3.398
+Problem:    When creating more than 10 location lists and adding items one by
+           one a previous location may be used. (Audrius Kažukauskas)
+Solution:   Clear the location list completely when adding the tenth one.
+Files:     src/quickfix.c
+
+
+*** ../vim-7.3.397/src/quickfix.c      2012-01-10 16:28:41.000000000 +0100
+--- src/quickfix.c     2012-01-10 16:58:52.000000000 +0100
+***************
+*** 899,906 ****
+      }
+      else
+       qi->qf_curlist = qi->qf_listcount++;
+!     qi->qf_lists[qi->qf_curlist].qf_index = 0;
+!     qi->qf_lists[qi->qf_curlist].qf_count = 0;
+      if (qf_title != NULL)
+      {
+       char_u *p = alloc((int)STRLEN(qf_title) + 2);
+--- 899,905 ----
+      }
+      else
+       qi->qf_curlist = qi->qf_listcount++;
+!     vim_memset(&qi->qf_lists[qi->qf_curlist], 0, (size_t)(sizeof(qf_list_T)));
+      if (qf_title != NULL)
+      {
+       char_u *p = alloc((int)STRLEN(qf_title) + 2);
+***************
+*** 909,916 ****
+       if (p != NULL)
+           sprintf((char *)p, ":%s", (char *)qf_title);
+      }
+-     else
+-      qi->qf_lists[qi->qf_curlist].qf_title = NULL;
+  }
+  
+  /*
+--- 908,913 ----
+*** ../vim-7.3.397/src/version.c       2012-01-10 16:28:41.000000000 +0100
+--- src/version.c      2012-01-10 17:13:09.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     398,
+  /**/
+
+-- 
+Why don't cannibals eat clowns?
+Because they taste funny.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.399 b/7.3.399
new file mode 100644 (file)
index 0000000..33d0630
--- /dev/null
+++ b/7.3.399
@@ -0,0 +1,137 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.399
+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.3.399
+Problem:    ":cd" doesn't work when the path contains wildcards. (Yukihiro
+           Nakadaira)
+Solution:   Ignore wildcard errors when the EW_NOTWILD flag is used.
+Files:     src/misc1.c
+
+
+*** ../vim-7.3.398/src/misc1.c 2011-12-14 20:21:29.000000000 +0100
+--- src/misc1.c        2012-01-10 17:57:42.000000000 +0100
+***************
+*** 9103,9117 ****
+      }
+  
+      /* compile the regexp into a program */
+!     if (flags & EW_NOERROR)
+       ++emsg_silent;
+      regmatch.rm_ic = TRUE;           /* Always ignore case */
+      regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
+!     if (flags & EW_NOERROR)
+       --emsg_silent;
+      vim_free(pat);
+  
+!     if (regmatch.regprog == NULL)
+      {
+       vim_free(buf);
+       return 0;
+--- 9103,9117 ----
+      }
+  
+      /* compile the regexp into a program */
+!     if (flags & (EW_NOERROR | EW_NOTWILD))
+       ++emsg_silent;
+      regmatch.rm_ic = TRUE;           /* Always ignore case */
+      regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
+!     if (flags & (EW_NOERROR | EW_NOTWILD))
+       --emsg_silent;
+      vim_free(pat);
+  
+!     if (regmatch.regprog == NULL && (flags & EW_NOTWILD) == 0)
+      {
+       vim_free(buf);
+       return 0;
+***************
+*** 9179,9185 ****
+        * all entries found with "matchname". */
+       if ((p[0] != '.' || starts_with_dot)
+               && (matchname == NULL
+!                || vim_regexec(&regmatch, p, (colnr_T)0)
+                 || ((flags & EW_NOTWILD)
+                    && fnamencmp(path + (s - buf), p, e - s) == 0)))
+       {
+--- 9179,9186 ----
+        * all entries found with "matchname". */
+       if ((p[0] != '.' || starts_with_dot)
+               && (matchname == NULL
+!                || (regmatch.regprog != NULL
+!                                   && vim_regexec(&regmatch, p, (colnr_T)0))
+                 || ((flags & EW_NOTWILD)
+                    && fnamencmp(path + (s - buf), p, e - s) == 0)))
+       {
+***************
+*** 9419,9428 ****
+      else
+       regmatch.rm_ic = FALSE;         /* Don't ignore case */
+  #endif
+      regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
+      vim_free(pat);
+  
+!     if (regmatch.regprog == NULL)
+      {
+       vim_free(buf);
+       return 0;
+--- 9420,9433 ----
+      else
+       regmatch.rm_ic = FALSE;         /* Don't ignore case */
+  #endif
++     if (flags & (EW_NOERROR | EW_NOTWILD))
++      ++emsg_silent;
+      regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
++     if (flags & (EW_NOERROR | EW_NOTWILD))
++      --emsg_silent;
+      vim_free(pat);
+  
+!     if (regmatch.regprog == NULL && (flags & EW_NOTWILD) == 0)
+      {
+       vim_free(buf);
+       return 0;
+***************
+*** 9452,9458 ****
+           if (dp == NULL)
+               break;
+           if ((dp->d_name[0] != '.' || starts_with_dot)
+!               && (vim_regexec(&regmatch, (char_u *)dp->d_name, (colnr_T)0)
+                  || ((flags & EW_NOTWILD)
+                    && fnamencmp(path + (s - buf), dp->d_name, e - s) == 0)))
+           {
+--- 9457,9464 ----
+           if (dp == NULL)
+               break;
+           if ((dp->d_name[0] != '.' || starts_with_dot)
+!               && ((regmatch.regprog != NULL && vim_regexec(&regmatch,
+!                                           (char_u *)dp->d_name, (colnr_T)0))
+                  || ((flags & EW_NOTWILD)
+                    && fnamencmp(path + (s - buf), dp->d_name, e - s) == 0)))
+           {
+*** ../vim-7.3.398/src/version.c       2012-01-10 17:13:48.000000000 +0100
+--- src/version.c      2012-01-10 18:21:05.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     399,
+  /**/
+
+-- 
+Close your shells, or I'll kill -9 you
+Tomorrow I'll quota you
+Remember the disks'll always be full
+And then while I'm away
+I'll write ~ everyday
+And I'll send-pr all my buggings to you.
+    [ CVS log "Beatles style" for FreeBSD ports/INDEX, Satoshi Asami ]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.400 b/7.3.400
new file mode 100644 (file)
index 0000000..c621a88
--- /dev/null
+++ b/7.3.400
@@ -0,0 +1,1762 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.400
+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.3.400
+Problem:    Compiler warnings for shadowed variables.
+Solution:   Remove or rename the variables.
+Files:     src/charset.c, src/digraph.c, src/edit.c, src/eval.c, src/fold.c,
+           src/getchar.c, src/message.c, src/misc2.c, src/move.c,
+           src/netbeans.c, src/option.c, src/os_unix.c, src/screen.c,
+           src/search.c, src/spell.c, src/syntax.c, src/tag.c, src/window.c
+
+
+*** ../vim-7.3.399/src/charset.c       2010-08-15 21:57:25.000000000 +0200
+--- src/charset.c      2012-01-10 21:55:50.000000000 +0100
+***************
+*** 463,503 ****
+           if (enc_utf8)
+           {
+               int     c = utf_ptr2char(STR_PTR(i));
+!              int     ol = utf_ptr2len(STR_PTR(i));
+               int     lc = utf_tolower(c);
+  
+               /* Only replace the character when it is not an invalid
+                * sequence (ASCII character or more than one byte) and
+                * utf_tolower() doesn't return the original character. */
+!              if ((c < 0x80 || ol > 1) && c != lc)
+               {
+!                  int     nl = utf_char2len(lc);
+  
+                   /* If the byte length changes need to shift the following
+                    * characters forward or backward. */
+!                  if (ol != nl)
+                   {
+!                      if (nl > ol)
+                       {
+!                          if (buf == NULL ? ga_grow(&ga, nl - ol + 1) == FAIL
+!                                                  : len + nl - ol >= buflen)
+                           {
+                               /* out of memory, keep old char */
+                               lc = c;
+!                              nl = ol;
+                           }
+                       }
+!                      if (ol != nl)
+                       {
+                           if (buf == NULL)
+                           {
+!                              STRMOVE(GA_PTR(i) + nl, GA_PTR(i) + ol);
+!                              ga.ga_len += nl - ol;
+                           }
+                           else
+                           {
+!                              STRMOVE(buf + i + nl, buf + i + ol);
+!                              len += nl - ol;
+                           }
+                       }
+                   }
+--- 463,504 ----
+           if (enc_utf8)
+           {
+               int     c = utf_ptr2char(STR_PTR(i));
+!              int     olen = utf_ptr2len(STR_PTR(i));
+               int     lc = utf_tolower(c);
+  
+               /* Only replace the character when it is not an invalid
+                * sequence (ASCII character or more than one byte) and
+                * utf_tolower() doesn't return the original character. */
+!              if ((c < 0x80 || olen > 1) && c != lc)
+               {
+!                  int     nlen = utf_char2len(lc);
+  
+                   /* If the byte length changes need to shift the following
+                    * characters forward or backward. */
+!                  if (olen != nlen)
+                   {
+!                      if (nlen > olen)
+                       {
+!                          if (buf == NULL
+!                                  ? ga_grow(&ga, nlen - olen + 1) == FAIL
+!                                  : len + nlen - olen >= buflen)
+                           {
+                               /* out of memory, keep old char */
+                               lc = c;
+!                              nlen = olen;
+                           }
+                       }
+!                      if (olen != nlen)
+                       {
+                           if (buf == NULL)
+                           {
+!                              STRMOVE(GA_PTR(i) + nlen, GA_PTR(i) + olen);
+!                              ga.ga_len += nlen - olen;
+                           }
+                           else
+                           {
+!                              STRMOVE(buf + i + nlen, buf + i + olen);
+!                              len += nlen - olen;
+                           }
+                       }
+                   }
+*** ../vim-7.3.399/src/digraph.c       2010-08-15 21:57:28.000000000 +0200
+--- src/digraph.c      2012-01-10 21:57:16.000000000 +0100
+***************
+*** 2080,2092 ****
+  /*
+   * Lookup the pair "char1", "char2" in the digraph tables.
+   * If no match, return "char2".
+!  * If "meta" is TRUE and "char1" is a space, return "char2" | 0x80.
+   */
+      static int
+! getexactdigraph(char1, char2, meta)
+      int              char1;
+      int              char2;
+!     int              meta;
+  {
+      int              i;
+      int              retval = 0;
+--- 2080,2092 ----
+  /*
+   * Lookup the pair "char1", "char2" in the digraph tables.
+   * If no match, return "char2".
+!  * If "meta_char" is TRUE and "char1" is a space, return "char2" | 0x80.
+   */
+      static int
+! getexactdigraph(char1, char2, meta_char)
+      int              char1;
+      int              char2;
+!     int              meta_char;
+  {
+      int              i;
+      int              retval = 0;
+***************
+*** 2159,2165 ****
+  
+      if (retval == 0)         /* digraph deleted or not found */
+      {
+!      if (char1 == ' ' && meta)       /* <space> <char> --> meta-char */
+           return (char2 | 0x80);
+       return char2;
+      }
+--- 2159,2165 ----
+  
+      if (retval == 0)         /* digraph deleted or not found */
+      {
+!      if (char1 == ' ' && meta_char)  /* <space> <char> --> meta-char */
+           return (char2 | 0x80);
+       return char2;
+      }
+***************
+*** 2171,2186 ****
+   * Allow for both char1-char2 and char2-char1
+   */
+      int
+! getdigraph(char1, char2, meta)
+      int      char1;
+      int      char2;
+!     int      meta;
+  {
+      int          retval;
+  
+!     if (((retval = getexactdigraph(char1, char2, meta)) == char2)
+           && (char1 != char2)
+!          && ((retval = getexactdigraph(char2, char1, meta)) == char1))
+       return char2;
+      return retval;
+  }
+--- 2171,2186 ----
+   * Allow for both char1-char2 and char2-char1
+   */
+      int
+! getdigraph(char1, char2, meta_char)
+      int      char1;
+      int      char2;
+!     int      meta_char;
+  {
+      int          retval;
+  
+!     if (((retval = getexactdigraph(char1, char2, meta_char)) == char2)
+           && (char1 != char2)
+!          && ((retval = getexactdigraph(char2, char1, meta_char)) == char1))
+       return char2;
+      return retval;
+  }
+*** ../vim-7.3.399/src/edit.c  2011-12-23 13:14:58.000000000 +0100
+--- src/edit.c 2012-01-10 21:58:28.000000000 +0100
+***************
+*** 4003,4026 ****
+  ins_compl_add_dict(dict)
+      dict_T   *dict;
+  {
+!     dictitem_T       *refresh;
+!     dictitem_T       *words;
+  
+      /* Check for optional "refresh" item. */
+      compl_opt_refresh_always = FALSE;
+!     refresh = dict_find(dict, (char_u *)"refresh", 7);
+!     if (refresh != NULL && refresh->di_tv.v_type == VAR_STRING)
+      {
+!      char_u  *v = refresh->di_tv.vval.v_string;
+  
+       if (v != NULL && STRCMP(v, (char_u *)"always") == 0)
+           compl_opt_refresh_always = TRUE;
+      }
+  
+      /* Add completions from a "words" list. */
+!     words = dict_find(dict, (char_u *)"words", 5);
+!     if (words != NULL && words->di_tv.v_type == VAR_LIST)
+!      ins_compl_add_list(words->di_tv.vval.v_list);
+  }
+  
+  /*
+--- 4003,4026 ----
+  ins_compl_add_dict(dict)
+      dict_T   *dict;
+  {
+!     dictitem_T       *di_refresh;
+!     dictitem_T       *di_words;
+  
+      /* Check for optional "refresh" item. */
+      compl_opt_refresh_always = FALSE;
+!     di_refresh = dict_find(dict, (char_u *)"refresh", 7);
+!     if (di_refresh != NULL && di_refresh->di_tv.v_type == VAR_STRING)
+      {
+!      char_u  *v = di_refresh->di_tv.vval.v_string;
+  
+       if (v != NULL && STRCMP(v, (char_u *)"always") == 0)
+           compl_opt_refresh_always = TRUE;
+      }
+  
+      /* Add completions from a "words" list. */
+!     di_words = dict_find(dict, (char_u *)"words", 5);
+!     if (di_words != NULL && di_words->di_tv.v_type == VAR_LIST)
+!      ins_compl_add_list(di_words->di_tv.vval.v_list);
+  }
+  
+  /*
+*** ../vim-7.3.399/src/eval.c  2012-01-04 14:35:31.000000000 +0100
+--- src/eval.c 2012-01-10 22:00:50.000000000 +0100
+***************
+*** 6573,6587 ****
+  
+  /*
+   * Join list "l" into a string in "*gap", using separator "sep".
+!  * When "echo" is TRUE use String as echoed, otherwise as inside a List.
+   * Return FAIL or OK.
+   */
+      static int
+! list_join(gap, l, sep, echo, copyID)
+      garray_T *gap;
+      list_T   *l;
+      char_u   *sep;
+!     int              echo;
+      int              copyID;
+  {
+      int              first = TRUE;
+--- 6573,6587 ----
+  
+  /*
+   * Join list "l" into a string in "*gap", using separator "sep".
+!  * When "echo_style" is TRUE use String as echoed, otherwise as inside a List.
+   * Return FAIL or OK.
+   */
+      static int
+! list_join(gap, l, sep, echo_style, copyID)
+      garray_T *gap;
+      list_T   *l;
+      char_u   *sep;
+!     int              echo_style;
+      int              copyID;
+  {
+      int              first = TRUE;
+***************
+*** 6597,6603 ****
+       else
+           ga_concat(gap, sep);
+  
+!      if (echo)
+           s = echo_string(&item->li_tv, &tofree, numbuf, copyID);
+       else
+           s = tv2string(&item->li_tv, &tofree, numbuf, copyID);
+--- 6597,6603 ----
+       else
+           ga_concat(gap, sep);
+  
+!      if (echo_style)
+           s = echo_string(&item->li_tv, &tofree, numbuf, copyID);
+       else
+           s = tv2string(&item->li_tv, &tofree, numbuf, copyID);
+***************
+*** 17893,17899 ****
+      typval_T *argvars;
+      typval_T *rettv;
+  {
+!     char_u   *instr;
+      char_u   *fromstr;
+      char_u   *tostr;
+      char_u   *p;
+--- 17893,17899 ----
+      typval_T *argvars;
+      typval_T *rettv;
+  {
+!     char_u   *in_str;
+      char_u   *fromstr;
+      char_u   *tostr;
+      char_u   *p;
+***************
+*** 17910,17916 ****
+      char_u   buf2[NUMBUFLEN];
+      garray_T ga;
+  
+!     instr = get_tv_string(&argvars[0]);
+      fromstr = get_tv_string_buf_chk(&argvars[1], buf);
+      tostr = get_tv_string_buf_chk(&argvars[2], buf2);
+  
+--- 17910,17916 ----
+      char_u   buf2[NUMBUFLEN];
+      garray_T ga;
+  
+!     in_str = get_tv_string(&argvars[0]);
+      fromstr = get_tv_string_buf_chk(&argvars[1], buf);
+      tostr = get_tv_string_buf_chk(&argvars[2], buf2);
+  
+***************
+*** 17936,17954 ****
+       }
+  
+      /* fromstr and tostr have to contain the same number of chars */
+!     while (*instr != NUL)
+      {
+  #ifdef FEAT_MBYTE
+       if (has_mbyte)
+       {
+!          inlen = (*mb_ptr2len)(instr);
+!          cpstr = instr;
+           cplen = inlen;
+           idx = 0;
+           for (p = fromstr; *p != NUL; p += fromlen)
+           {
+               fromlen = (*mb_ptr2len)(p);
+!              if (fromlen == inlen && STRNCMP(instr, p, inlen) == 0)
+               {
+                   for (p = tostr; *p != NUL; p += tolen)
+                   {
+--- 17936,17954 ----
+       }
+  
+      /* fromstr and tostr have to contain the same number of chars */
+!     while (*in_str != NUL)
+      {
+  #ifdef FEAT_MBYTE
+       if (has_mbyte)
+       {
+!          inlen = (*mb_ptr2len)(in_str);
+!          cpstr = in_str;
+           cplen = inlen;
+           idx = 0;
+           for (p = fromstr; *p != NUL; p += fromlen)
+           {
+               fromlen = (*mb_ptr2len)(p);
+!              if (fromlen == inlen && STRNCMP(in_str, p, inlen) == 0)
+               {
+                   for (p = tostr; *p != NUL; p += tolen)
+                   {
+***************
+*** 17967,17977 ****
+               ++idx;
+           }
+  
+!          if (first && cpstr == instr)
+           {
+               /* Check that fromstr and tostr have the same number of
+                * (multi-byte) characters.  Done only once when a character
+!               * of instr doesn't appear in fromstr. */
+               first = FALSE;
+               for (p = tostr; *p != NUL; p += tolen)
+               {
+--- 17967,17977 ----
+               ++idx;
+           }
+  
+!          if (first && cpstr == in_str)
+           {
+               /* Check that fromstr and tostr have the same number of
+                * (multi-byte) characters.  Done only once when a character
+!               * of in_str doesn't appear in fromstr. */
+               first = FALSE;
+               for (p = tostr; *p != NUL; p += tolen)
+               {
+***************
+*** 17986,18003 ****
+           mch_memmove((char *)ga.ga_data + ga.ga_len, cpstr, (size_t)cplen);
+           ga.ga_len += cplen;
+  
+!          instr += inlen;
+       }
+       else
+  #endif
+       {
+           /* When not using multi-byte chars we can do it faster. */
+!          p = vim_strchr(fromstr, *instr);
+           if (p != NULL)
+               ga_append(&ga, tostr[p - fromstr]);
+           else
+!              ga_append(&ga, *instr);
+!          ++instr;
+       }
+      }
+  
+--- 17986,18003 ----
+           mch_memmove((char *)ga.ga_data + ga.ga_len, cpstr, (size_t)cplen);
+           ga.ga_len += cplen;
+  
+!          in_str += inlen;
+       }
+       else
+  #endif
+       {
+           /* When not using multi-byte chars we can do it faster. */
+!          p = vim_strchr(fromstr, *in_str);
+           if (p != NULL)
+               ga_append(&ga, tostr[p - fromstr]);
+           else
+!              ga_append(&ga, *in_str);
+!          ++in_str;
+       }
+      }
+  
+*** ../vim-7.3.399/src/fold.c  2011-08-26 16:12:55.000000000 +0200
+--- src/fold.c 2012-01-10 22:01:26.000000000 +0100
+***************
+*** 1033,1042 ****
+   * Init the fold info in a new window.
+   */
+      void
+! foldInitWin(newwin)
+!     win_T    *newwin;
+  {
+!     ga_init2(&newwin->w_folds, (int)sizeof(fold_T), 10);
+  }
+  
+  /* find_wl_entry() {{{2 */
+--- 1033,1042 ----
+   * Init the fold info in a new window.
+   */
+      void
+! foldInitWin(new_win)
+!     win_T    *new_win;
+  {
+!     ga_init2(&new_win->w_folds, (int)sizeof(fold_T), 10);
+  }
+  
+  /* find_wl_entry() {{{2 */
+*** ../vim-7.3.399/src/getchar.c       2011-12-23 14:54:01.000000000 +0100
+--- src/getchar.c      2012-01-10 22:02:30.000000000 +0100
+***************
+*** 418,429 ****
+  
+  /*
+   * Remove the contents of the stuff buffer and the mapped characters in the
+!  * typeahead buffer (used in case of an error).  If 'typeahead' is true,
+   * flush all typeahead characters (used when interrupted by a CTRL-C).
+   */
+      void
+! flush_buffers(typeahead)
+!     int typeahead;
+  {
+      init_typebuf();
+  
+--- 418,429 ----
+  
+  /*
+   * Remove the contents of the stuff buffer and the mapped characters in the
+!  * typeahead buffer (used in case of an error).  If "flush_typeahead" is true,
+   * flush all typeahead characters (used when interrupted by a CTRL-C).
+   */
+      void
+! flush_buffers(flush_typeahead)
+!     int flush_typeahead;
+  {
+      init_typebuf();
+  
+***************
+*** 431,437 ****
+      while (read_stuff(TRUE) != NUL)
+       ;
+  
+!     if (typeahead)       /* remove all typeahead */
+      {
+       /*
+        * We have to get all characters, because we may delete the first part
+--- 431,437 ----
+      while (read_stuff(TRUE) != NUL)
+       ;
+  
+!     if (flush_typeahead)         /* remove all typeahead */
+      {
+       /*
+        * We have to get all characters, because we may delete the first part
+*** ../vim-7.3.399/src/message.c       2011-12-30 14:14:16.000000000 +0100
+--- src/message.c      2012-01-10 22:03:56.000000000 +0100
+***************
+*** 2487,2493 ****
+  #ifdef FEAT_CON_DIALOG
+      int              retval = FALSE;
+  #endif
+!     int              scroll;
+      msgchunk_T       *mp_last = NULL;
+      msgchunk_T       *mp;
+      int              i;
+--- 2487,2493 ----
+  #ifdef FEAT_CON_DIALOG
+      int              retval = FALSE;
+  #endif
+!     int              toscroll;
+      msgchunk_T       *mp_last = NULL;
+      msgchunk_T       *mp;
+      int              i;
+***************
+*** 2538,2586 ****
+       }
+  #endif
+  
+!      scroll = 0;
+       switch (c)
+       {
+       case BS:                /* scroll one line back */
+       case K_BS:
+       case 'k':
+       case K_UP:
+!          scroll = -1;
+           break;
+  
+       case CAR:               /* one extra line */
+       case NL:
+       case 'j':
+       case K_DOWN:
+!          scroll = 1;
+           break;
+  
+       case 'u':               /* Up half a page */
+!          scroll = -(Rows / 2);
+           break;
+  
+       case 'd':               /* Down half a page */
+!          scroll = Rows / 2;
+           break;
+  
+       case 'b':               /* one page back */
+       case K_PAGEUP:
+!          scroll = -(Rows - 1);
+           break;
+  
+       case ' ':               /* one extra page */
+       case 'f':
+       case K_PAGEDOWN:
+       case K_LEFTMOUSE:
+!          scroll = Rows - 1;
+           break;
+  
+       case 'g':               /* all the way back to the start */
+!          scroll = -999999;
+           break;
+  
+       case 'G':               /* all the way to the end */
+!          scroll = 999999;
+           lines_left = 999999;
+           break;
+  
+--- 2538,2586 ----
+       }
+  #endif
+  
+!      toscroll = 0;
+       switch (c)
+       {
+       case BS:                /* scroll one line back */
+       case K_BS:
+       case 'k':
+       case K_UP:
+!          toscroll = -1;
+           break;
+  
+       case CAR:               /* one extra line */
+       case NL:
+       case 'j':
+       case K_DOWN:
+!          toscroll = 1;
+           break;
+  
+       case 'u':               /* Up half a page */
+!          toscroll = -(Rows / 2);
+           break;
+  
+       case 'd':               /* Down half a page */
+!          toscroll = Rows / 2;
+           break;
+  
+       case 'b':               /* one page back */
+       case K_PAGEUP:
+!          toscroll = -(Rows - 1);
+           break;
+  
+       case ' ':               /* one extra page */
+       case 'f':
+       case K_PAGEDOWN:
+       case K_LEFTMOUSE:
+!          toscroll = Rows - 1;
+           break;
+  
+       case 'g':               /* all the way back to the start */
+!          toscroll = -999999;
+           break;
+  
+       case 'G':               /* all the way to the end */
+!          toscroll = 999999;
+           lines_left = 999999;
+           break;
+  
+***************
+*** 2633,2641 ****
+           continue;
+       }
+  
+!      if (scroll != 0)
+       {
+!          if (scroll < 0)
+           {
+               /* go to start of last line */
+               if (mp_last == NULL)
+--- 2633,2641 ----
+           continue;
+       }
+  
+!      if (toscroll != 0)
+       {
+!          if (toscroll < 0)
+           {
+               /* go to start of last line */
+               if (mp_last == NULL)
+***************
+*** 2653,2659 ****
+               if (mp != NULL && mp->sb_prev != NULL)
+               {
+                   /* Find line to be displayed at top. */
+!                  for (i = 0; i > scroll; --i)
+                   {
+                       if (mp == NULL || mp->sb_prev == NULL)
+                           break;
+--- 2653,2659 ----
+               if (mp != NULL && mp->sb_prev != NULL)
+               {
+                   /* Find line to be displayed at top. */
+!                  for (i = 0; i > toscroll; --i)
+                   {
+                       if (mp == NULL || mp->sb_prev == NULL)
+                           break;
+***************
+*** 2664,2670 ****
+                           mp_last = msg_sb_start(mp_last->sb_prev);
+                   }
+  
+!                  if (scroll == -1 && screen_ins_lines(0, 0, 1,
+                                                      (int)Rows, NULL) == OK)
+                   {
+                       /* display line at top */
+--- 2664,2670 ----
+                           mp_last = msg_sb_start(mp_last->sb_prev);
+                   }
+  
+!                  if (toscroll == -1 && screen_ins_lines(0, 0, 1,
+                                                      (int)Rows, NULL) == OK)
+                   {
+                       /* display line at top */
+***************
+*** 2680,2692 ****
+                           ++msg_scrolled;
+                       }
+                   }
+!                  scroll = 0;
+               }
+           }
+           else
+           {
+               /* First display any text that we scrolled back. */
+!              while (scroll > 0 && mp_last != NULL)
+               {
+                   /* scroll up, display line at bottom */
+                   msg_scroll_up();
+--- 2680,2692 ----
+                           ++msg_scrolled;
+                       }
+                   }
+!                  toscroll = 0;
+               }
+           }
+           else
+           {
+               /* First display any text that we scrolled back. */
+!              while (toscroll > 0 && mp_last != NULL)
+               {
+                   /* scroll up, display line at bottom */
+                   msg_scroll_up();
+***************
+*** 2694,2704 ****
+                   screen_fill((int)Rows - 2, (int)Rows - 1, 0,
+                                                  (int)Columns, ' ', ' ', 0);
+                   mp_last = disp_sb_line((int)Rows - 2, mp_last);
+!                  --scroll;
+               }
+           }
+  
+!          if (scroll <= 0)
+           {
+               /* displayed the requested text, more prompt again */
+               screen_fill((int)Rows - 1, (int)Rows, 0,
+--- 2694,2704 ----
+                   screen_fill((int)Rows - 2, (int)Rows - 1, 0,
+                                                  (int)Columns, ' ', ' ', 0);
+                   mp_last = disp_sb_line((int)Rows - 2, mp_last);
+!                  --toscroll;
+               }
+           }
+  
+!          if (toscroll <= 0)
+           {
+               /* displayed the requested text, more prompt again */
+               screen_fill((int)Rows - 1, (int)Rows, 0,
+***************
+*** 2708,2714 ****
+           }
+  
+           /* display more text, return to caller */
+!          lines_left = scroll;
+       }
+  
+       break;
+--- 2708,2714 ----
+           }
+  
+           /* display more text, return to caller */
+!          lines_left = toscroll;
+       }
+  
+       break;
+*** ../vim-7.3.399/src/misc2.c 2012-01-10 16:28:41.000000000 +0100
+--- src/misc2.c        2012-01-10 22:04:25.000000000 +0100
+***************
+*** 1559,1565 ****
+           if (enc_utf8)
+           {
+               int     c, uc;
+!              int     nl;
+               char_u  *s;
+  
+               c = utf_ptr2char(p);
+--- 1559,1565 ----
+           if (enc_utf8)
+           {
+               int     c, uc;
+!              int     newl;
+               char_u  *s;
+  
+               c = utf_ptr2char(p);
+***************
+*** 1568,1588 ****
+               /* Reallocate string when byte count changes.  This is rare,
+                * thus it's OK to do another malloc()/free(). */
+               l = utf_ptr2len(p);
+!              nl = utf_char2len(uc);
+!              if (nl != l)
+               {
+!                  s = alloc((unsigned)STRLEN(res) + 1 + nl - l);
+                   if (s == NULL)
+                       break;
+                   mch_memmove(s, res, p - res);
+!                  STRCPY(s + (p - res) + nl, p + l);
+                   p = s + (p - res);
+                   vim_free(res);
+                   res = s;
+               }
+  
+               utf_char2bytes(uc, p);
+!              p += nl;
+           }
+           else if (has_mbyte && (l = (*mb_ptr2len)(p)) > 1)
+               p += l;         /* skip multi-byte character */
+--- 1568,1588 ----
+               /* Reallocate string when byte count changes.  This is rare,
+                * thus it's OK to do another malloc()/free(). */
+               l = utf_ptr2len(p);
+!              newl = utf_char2len(uc);
+!              if (newl != l)
+               {
+!                  s = alloc((unsigned)STRLEN(res) + 1 + newl - l);
+                   if (s == NULL)
+                       break;
+                   mch_memmove(s, res, p - res);
+!                  STRCPY(s + (p - res) + newl, p + l);
+                   p = s + (p - res);
+                   vim_free(res);
+                   res = s;
+               }
+  
+               utf_char2bytes(uc, p);
+!              p += newl;
+           }
+           else if (has_mbyte && (l = (*mb_ptr2len)(p)) > 1)
+               p += l;         /* skip multi-byte character */
+*** ../vim-7.3.399/src/move.c  2011-02-01 18:01:06.000000000 +0100
+--- src/move.c 2012-01-10 22:05:22.000000000 +0100
+***************
+*** 926,933 ****
+   * Also updates curwin->w_leftcol.
+   */
+      void
+! curs_columns(scroll)
+!     int              scroll;         /* when TRUE, may scroll horizontally */
+  {
+      int              diff;
+      int              extra;          /* offset for first screen line */
+--- 926,933 ----
+   * Also updates curwin->w_leftcol.
+   */
+      void
+! curs_columns(may_scroll)
+!     int              may_scroll;     /* when TRUE, may scroll horizontally */
+  {
+      int              diff;
+      int              extra;          /* offset for first screen line */
+***************
+*** 1014,1020 ****
+      /* No line wrapping: compute curwin->w_leftcol if scrolling is on and line
+       * is not folded.
+       * If scrolling is off, curwin->w_leftcol is assumed to be 0 */
+!     else if (scroll
+  #ifdef FEAT_FOLDING
+           && !curwin->w_cline_folded
+  #endif
+--- 1014,1020 ----
+      /* No line wrapping: compute curwin->w_leftcol if scrolling is on and line
+       * is not folded.
+       * If scrolling is off, curwin->w_leftcol is assumed to be 0 */
+!     else if (may_scroll
+  #ifdef FEAT_FOLDING
+           && !curwin->w_cline_folded
+  #endif
+*** ../vim-7.3.399/src/netbeans.c      2011-10-20 21:58:20.000000000 +0200
+--- src/netbeans.c     2012-01-10 22:16:26.000000000 +0100
+***************
+*** 1395,1401 ****
+      int              cmdno,
+      char_u   *args)      /* points to space before arguments or NUL */
+  {
+!     int              doupdate = 0;
+      long     off = 0;
+      nbbuf_T  *buf = nb_get_buf(bufno);
+      static int       skip = 0;
+--- 1395,1401 ----
+      int              cmdno,
+      char_u   *args)      /* points to space before arguments or NUL */
+  {
+!     int              do_update = 0;
+      long     off = 0;
+      nbbuf_T  *buf = nb_get_buf(bufno);
+      static int       skip = 0;
+***************
+*** 1600,1606 ****
+                                                       last.lnum, last.col));
+               del_from_lnum = first.lnum;
+               del_to_lnum = last.lnum;
+!              doupdate = 1;
+  
+               /* Get the position of the first byte after the deleted
+                * section.  "next" is NULL when deleting to the end of the
+--- 1600,1606 ----
+                                                       last.lnum, last.col));
+               del_from_lnum = first.lnum;
+               del_to_lnum = last.lnum;
+!              do_update = 1;
+  
+               /* Get the position of the first byte after the deleted
+                * section.  "next" is NULL when deleting to the end of the
+***************
+*** 1777,1783 ****
+               lnum = lnum_start;
+  
+               /* Loop over the "\n" separated lines of the argument. */
+!              doupdate = 1;
+               while (*args != NUL)
+               {
+                   nl = vim_strchr(args, '\n');
+--- 1777,1783 ----
+               lnum = lnum_start;
+  
+               /* Loop over the "\n" separated lines of the argument. */
+!              do_update = 1;
+               while (*args != NUL)
+               {
+                   nl = vim_strchr(args, '\n');
+***************
+*** 1992,1998 ****
+               EMSG("E640: invalid buffer identifier in initDone");
+               return FAIL;
+           }
+!          doupdate = 1;
+           buf->initDone = TRUE;
+           nb_set_curbuf(buf->bufp);
+  #if defined(FEAT_AUTOCMD)
+--- 1992,1998 ----
+               EMSG("E640: invalid buffer identifier in initDone");
+               return FAIL;
+           }
+!          do_update = 1;
+           buf->initDone = TRUE;
+           nb_set_curbuf(buf->bufp);
+  #if defined(FEAT_AUTOCMD)
+***************
+*** 2081,2087 ****
+                                            ECMD_HIDE + ECMD_OLDBUF, curwin);
+           buf->bufp = curbuf;
+           buf->initDone = TRUE;
+!          doupdate = 1;
+  #if defined(FEAT_TITLE)
+           maketitle();
+  #endif
+--- 2081,2087 ----
+                                            ECMD_HIDE + ECMD_OLDBUF, curwin);
+           buf->bufp = curbuf;
+           buf->initDone = TRUE;
+!          do_update = 1;
+  #if defined(FEAT_TITLE)
+           maketitle();
+  #endif
+***************
+*** 2109,2115 ****
+               exarg.forceit = FALSE;
+               dosetvisible = TRUE;
+               goto_buffer(&exarg, DOBUF_FIRST, FORWARD, buf->bufp->b_fnum);
+!              doupdate = 1;
+               dosetvisible = FALSE;
+  
+  #ifdef FEAT_GUI
+--- 2109,2115 ----
+               exarg.forceit = FALSE;
+               dosetvisible = TRUE;
+               goto_buffer(&exarg, DOBUF_FIRST, FORWARD, buf->bufp->b_fnum);
+!              do_update = 1;
+               dosetvisible = FALSE;
+  
+  #ifdef FEAT_GUI
+***************
+*** 2309,2315 ****
+                                                    buf->bufp->b_fnum, TRUE);
+           buf->bufp = NULL;
+           buf->initDone = FALSE;
+!          doupdate = 1;
+  /* =====================================================================*/
+       }
+       else if (streq((char *)cmd, "setStyle")) /* obsolete... */
+--- 2309,2315 ----
+                                                    buf->bufp->b_fnum, TRUE);
+           buf->bufp = NULL;
+           buf->initDone = FALSE;
+!          do_update = 1;
+  /* =====================================================================*/
+       }
+       else if (streq((char *)cmd, "setStyle")) /* obsolete... */
+***************
+*** 2400,2406 ****
+               return FAIL;
+           }
+  
+!          doupdate = 1;
+  
+           cp = (char *)args;
+           serNum = strtol(cp, &cp, 10);
+--- 2400,2406 ----
+               return FAIL;
+           }
+  
+!          do_update = 1;
+  
+           cp = (char *)args;
+           serNum = strtol(cp, &cp, 10);
+***************
+*** 2448,2454 ****
+               nbdebug(("    invalid buffer identifier in removeAnno\n"));
+               return FAIL;
+           }
+!          doupdate = 1;
+           cp = (char *)args;
+           serNum = strtol(cp, &cp, 10);
+           args = (char_u *)cp;
+--- 2448,2454 ----
+               nbdebug(("    invalid buffer identifier in removeAnno\n"));
+               return FAIL;
+           }
+!          do_update = 1;
+           cp = (char *)args;
+           serNum = strtol(cp, &cp, 10);
+           args = (char_u *)cp;
+***************
+*** 2493,2499 ****
+           len = strtol(cp, NULL, 10);
+           args = (char_u *)cp;
+           pos = off2pos(buf->bufp, off);
+!          doupdate = 1;
+           if (!pos)
+               nbdebug(("    no such start pos in %s, %ld\n", cmd, off));
+           else
+--- 2493,2499 ----
+           len = strtol(cp, NULL, 10);
+           args = (char_u *)cp;
+           pos = off2pos(buf->bufp, off);
+!          do_update = 1;
+           if (!pos)
+               nbdebug(("    no such start pos in %s, %ld\n", cmd, off));
+           else
+***************
+*** 2555,2561 ****
+           inAtomic = 0;
+           if (needupdate)
+           {
+!              doupdate = 1;
+               needupdate = 0;
+           }
+  /* =====================================================================*/
+--- 2555,2561 ----
+           inAtomic = 0;
+           if (needupdate)
+           {
+!              do_update = 1;
+               needupdate = 0;
+           }
+  /* =====================================================================*/
+***************
+*** 2636,2653 ****
+        * Unrecognized command is ignored.
+        */
+      }
+!     if (inAtomic && doupdate)
+      {
+       needupdate = 1;
+!      doupdate = 0;
+      }
+  
+      /*
+       * Is this needed? I moved the netbeans_Xt_connect() later during startup
+       * and it may no longer be necessary. If its not needed then needupdate
+!      * and doupdate can also be removed.
+       */
+!     if (buf != NULL && buf->initDone && doupdate)
+      {
+       update_screen(NOT_VALID);
+       setcursor();
+--- 2636,2653 ----
+        * Unrecognized command is ignored.
+        */
+      }
+!     if (inAtomic && do_update)
+      {
+       needupdate = 1;
+!      do_update = 0;
+      }
+  
+      /*
+       * Is this needed? I moved the netbeans_Xt_connect() later during startup
+       * and it may no longer be necessary. If its not needed then needupdate
+!      * and do_update can also be removed.
+       */
+!     if (buf != NULL && buf->initDone && do_update)
+      {
+       update_screen(NOT_VALID);
+       setcursor();
+*** ../vim-7.3.399/src/option.c        2012-01-04 19:34:32.000000000 +0100
+--- src/option.c       2012-01-10 22:06:03.000000000 +0100
+***************
+*** 8584,8591 ****
+      long_u   flags;
+  {
+      /* Careful: P_RCLR and P_RALL are a combination of other P_ flags */
+!     int              clear = (flags & P_RCLR) == P_RCLR;
+!     int              all = ((flags & P_RALL) == P_RALL || clear);
+  
+  #ifdef FEAT_WINDOWS
+      if ((flags & P_RSTAT) || all)    /* mark all status lines dirty */
+--- 8584,8591 ----
+      long_u   flags;
+  {
+      /* Careful: P_RCLR and P_RALL are a combination of other P_ flags */
+!     int              doclear = (flags & P_RCLR) == P_RCLR;
+!     int              all = ((flags & P_RALL) == P_RALL || doclear);
+  
+  #ifdef FEAT_WINDOWS
+      if ((flags & P_RSTAT) || all)    /* mark all status lines dirty */
+***************
+*** 8596,8602 ****
+       changed_window_setting();
+      if (flags & P_RBUF)
+       redraw_curbuf_later(NOT_VALID);
+!     if (clear)
+       redraw_all_later(CLEAR);
+      else if (all)
+       redraw_all_later(NOT_VALID);
+--- 8596,8602 ----
+       changed_window_setting();
+      if (flags & P_RBUF)
+       redraw_curbuf_later(NOT_VALID);
+!     if (doclear)
+       redraw_all_later(CLEAR);
+      else if (all)
+       redraw_all_later(NOT_VALID);
+*** ../vim-7.3.399/src/os_unix.c       2011-10-20 21:09:25.000000000 +0200
+--- src/os_unix.c      2012-01-10 21:48:49.000000000 +0100
+***************
+*** 3884,3890 ****
+      char_u   *p_shcf_copy = NULL;
+      int              i;
+      char_u   *p;
+-     char_u   *s;
+      int              inquote;
+      int              pty_master_fd = -1;         /* for pty's */
+  # ifdef FEAT_GUI
+--- 3884,3889 ----
+***************
+*** 3963,3968 ****
+--- 3962,3969 ----
+      }
+      if (cmd != NULL)
+      {
++      char_u  *s;
++ 
+       if (extra_shell_arg != NULL)
+           argv[argc++] = (char *)extra_shell_arg;
+  
+***************
+*** 4325,4331 ****
+                       linenr_T    lnum = curbuf->b_op_start.lnum;
+                       int         written = 0;
+                       char_u      *lp = ml_get(lnum);
+-                      char_u      *s;
+                       size_t      l;
+  
+                       close(fromshell_fd);
+--- 4326,4331 ----
+***************
+*** 4339,4345 ****
+                               len = write(toshell_fd, "", (size_t)1);
+                           else
+                           {
+!                              s = vim_strchr(lp + written, NL);
+                               len = write(toshell_fd, (char *)lp + written,
+                                          s == NULL ? l
+                                             : (size_t)(s - (lp + written)));
+--- 4339,4346 ----
+                               len = write(toshell_fd, "", (size_t)1);
+                           else
+                           {
+!                              char_u  *s = vim_strchr(lp + written, NL);
+! 
+                               len = write(toshell_fd, (char *)lp + written,
+                                          s == NULL ? l
+                                             : (size_t)(s - (lp + written)));
+*** ../vim-7.3.399/src/screen.c        2012-01-10 12:42:05.000000000 +0100
+--- src/screen.c       2012-01-10 22:06:51.000000000 +0100
+***************
+*** 7849,7863 ****
+  
+  /*
+   * screen_valid -  allocate screen buffers if size changed
+!  *   If "clear" is TRUE: clear screen if it has been resized.
+   *   Returns TRUE if there is a valid screen to write to.
+   *   Returns FALSE when starting up and screen not initialized yet.
+   */
+      int
+! screen_valid(clear)
+!     int          clear;
+  {
+!     screenalloc(clear);          /* allocate screen buffers if size changed */
+      return (ScreenLines != NULL);
+  }
+  
+--- 7849,7863 ----
+  
+  /*
+   * screen_valid -  allocate screen buffers if size changed
+!  *   If "doclear" is TRUE: clear screen if it has been resized.
+   *   Returns TRUE if there is a valid screen to write to.
+   *   Returns FALSE when starting up and screen not initialized yet.
+   */
+      int
+! screen_valid(doclear)
+!     int          doclear;
+  {
+!     screenalloc(doclear);       /* allocate screen buffers if size changed */
+      return (ScreenLines != NULL);
+  }
+  
+***************
+*** 7872,7879 ****
+   * final size of the shell is needed.
+   */
+      void
+! screenalloc(clear)
+!     int          clear;
+  {
+      int                  new_row, old_row;
+  #ifdef FEAT_GUI
+--- 7872,7879 ----
+   * final size of the shell is needed.
+   */
+      void
+! screenalloc(doclear)
+!     int          doclear;
+  {
+      int                  new_row, old_row;
+  #ifdef FEAT_GUI
+***************
+*** 8069,8075 ****
+            * (used when resizing the window at the "--more--" prompt or when
+            * executing an external command, for the GUI).
+            */
+!          if (!clear)
+           {
+               (void)vim_memset(new_ScreenLines + new_row * Columns,
+                                     ' ', (size_t)Columns * sizeof(schar_T));
+--- 8069,8075 ----
+            * (used when resizing the window at the "--more--" prompt or when
+            * executing an external command, for the GUI).
+            */
+!          if (!doclear)
+           {
+               (void)vim_memset(new_ScreenLines + new_row * Columns,
+                                     ' ', (size_t)Columns * sizeof(schar_T));
+***************
+*** 8159,8165 ****
+      screen_Columns = Columns;
+  
+      must_redraw = CLEAR;     /* need to clear the screen later */
+!     if (clear)
+       screenclear2();
+  
+  #ifdef FEAT_GUI
+--- 8159,8165 ----
+      screen_Columns = Columns;
+  
+      must_redraw = CLEAR;     /* need to clear the screen later */
+!     if (doclear)
+       screenclear2();
+  
+  #ifdef FEAT_GUI
+*** ../vim-7.3.399/src/search.c        2011-10-04 17:00:13.000000000 +0200
+--- src/search.c       2012-01-10 22:07:16.000000000 +0100
+***************
+*** 2402,2425 ****
+      {
+       if (vim_strchr(p, ';') != NULL) /* there may be comments */
+       {
+!          int instr = FALSE;  /* inside of string */
+  
+           p = line;           /* scan from start */
+           while ((p = vim_strpbrk(p, (char_u *)"\";")) != NULL)
+           {
+               if (*p == '"')
+               {
+!                  if (instr)
+                   {
+                       if (*(p - 1) != '\\') /* skip escaped quote */
+!                          instr = FALSE;
+                   }
+                   else if (p == line || ((p - line) >= 2
+                                     /* skip #\" form */
+                                     && *(p - 1) != '\\' && *(p - 2) != '#'))
+!                      instr = TRUE;
+               }
+!              else if (!instr && ((p - line) < 2
+                                   || (*(p - 1) != '\\' && *(p - 2) != '#')))
+                   break;      /* found! */
+               ++p;
+--- 2402,2425 ----
+      {
+       if (vim_strchr(p, ';') != NULL) /* there may be comments */
+       {
+!          int in_str = FALSE; /* inside of string */
+  
+           p = line;           /* scan from start */
+           while ((p = vim_strpbrk(p, (char_u *)"\";")) != NULL)
+           {
+               if (*p == '"')
+               {
+!                  if (in_str)
+                   {
+                       if (*(p - 1) != '\\') /* skip escaped quote */
+!                          in_str = FALSE;
+                   }
+                   else if (p == line || ((p - line) >= 2
+                                     /* skip #\" form */
+                                     && *(p - 1) != '\\' && *(p - 2) != '#'))
+!                      in_str = TRUE;
+               }
+!              else if (!in_str && ((p - line) < 2
+                                   || (*(p - 1) != '\\' && *(p - 2) != '#')))
+                   break;      /* found! */
+               ++p;
+*** ../vim-7.3.399/src/spell.c 2012-01-10 16:28:41.000000000 +0100
+--- src/spell.c        2012-01-10 22:09:23.000000000 +0100
+***************
+*** 5049,5055 ****
+  static int offset2bytes __ARGS((int nr, char_u *buf));
+  static int bytes2offset __ARGS((char_u **pp));
+  static void sug_write __ARGS((spellinfo_T *spin, char_u *fname));
+! static void mkspell __ARGS((int fcount, char_u **fnames, int ascii, int overwrite, int added_word));
+  static void spell_message __ARGS((spellinfo_T *spin, char_u *str));
+  static void init_spellfile __ARGS((void));
+  
+--- 5049,5055 ----
+  static int offset2bytes __ARGS((int nr, char_u *buf));
+  static int bytes2offset __ARGS((char_u **pp));
+  static void sug_write __ARGS((spellinfo_T *spin, char_u *fname));
+! static void mkspell __ARGS((int fcount, char_u **fnames, int ascii, int over_write, int added_word));
+  static void spell_message __ARGS((spellinfo_T *spin, char_u *str));
+  static void init_spellfile __ARGS((void));
+  
+***************
+*** 9085,9095 ****
+   * and ".spl" is appended to make the output file name.
+   */
+      static void
+! mkspell(fcount, fnames, ascii, overwrite, added_word)
+      int              fcount;
+      char_u   **fnames;
+      int              ascii;              /* -ascii argument given */
+!     int              overwrite;          /* overwrite existing output file */
+      int              added_word;         /* invoked through "zg" */
+  {
+      char_u   *fname = NULL;
+--- 9085,9095 ----
+   * and ".spl" is appended to make the output file name.
+   */
+      static void
+! mkspell(fcount, fnames, ascii, over_write, added_word)
+      int              fcount;
+      char_u   **fnames;
+      int              ascii;              /* -ascii argument given */
+!     int              over_write;         /* overwrite existing output file */
+      int              added_word;         /* invoked through "zg" */
+  {
+      char_u   *fname = NULL;
+***************
+*** 9173,9179 ****
+      {
+       /* Check for overwriting before doing things that may take a lot of
+        * time. */
+!      if (!overwrite && mch_stat((char *)wfname, &st) >= 0)
+       {
+           EMSG(_(e_exists));
+           goto theend;
+--- 9173,9179 ----
+      {
+       /* Check for overwriting before doing things that may take a lot of
+        * time. */
+!      if (!over_write && mch_stat((char *)wfname, &st) >= 0)
+       {
+           EMSG(_(e_exists));
+           goto theend;
+*** ../vim-7.3.399/src/syntax.c        2011-06-19 04:54:17.000000000 +0200
+--- src/syntax.c       2012-01-10 22:10:23.000000000 +0100
+***************
+*** 4006,4022 ****
+  }
+  
+      static void
+! syn_list_flags(nl, flags, attr)
+!     struct name_list *nl;
+      int                      flags;
+      int                      attr;
+  {
+      int              i;
+  
+!     for (i = 0; nl[i].flag != 0; ++i)
+!      if (flags & nl[i].flag)
+       {
+!          msg_puts_attr((char_u *)nl[i].name, attr);
+           msg_putchar(' ');
+       }
+  }
+--- 4006,4022 ----
+  }
+  
+      static void
+! syn_list_flags(nlist, flags, attr)
+!     struct name_list *nlist;
+      int                      flags;
+      int                      attr;
+  {
+      int              i;
+  
+!     for (i = 0; nlist[i].flag != 0; ++i)
+!      if (flags & nlist[i].flag)
+       {
+!          msg_puts_attr((char_u *)nlist[i].name, attr);
+           msg_putchar(' ');
+       }
+  }
+*** ../vim-7.3.399/src/tag.c   2011-12-14 14:15:12.000000000 +0100
+--- src/tag.c  2012-01-10 21:51:05.000000000 +0100
+***************
+*** 1353,1359 ****
+      int              match_count = 0;                /* number of matches found */
+      char_u   **matches;
+      int              mtt;
+-     int              len;
+      int              help_save;
+  #ifdef FEAT_MULTI_LANG
+      int              help_pri = 0;
+--- 1353,1358 ----
+***************
+*** 2235,2240 ****
+--- 2234,2241 ----
+                */
+               if (ga_grow(&ga_match[mtt], 1) == OK)
+               {
++                  int len;
++ 
+                   if (help_only)
+                   {
+  #ifdef FEAT_MULTI_LANG
+*** ../vim-7.3.399/src/window.c        2011-12-30 15:01:55.000000000 +0100
+--- src/window.c       2012-01-10 22:11:41.000000000 +0100
+***************
+*** 683,701 ****
+  }
+  
+  /*
+!  * When "newwin" is NULL: split the current window in two.
+!  * When "newwin" is not NULL: insert this window at the far
+   * top/left/right/bottom.
+   * return FAIL for failure, OK otherwise
+   */
+      int
+! win_split_ins(size, flags, newwin, dir)
+      int              size;
+      int              flags;
+!     win_T    *newwin;
+      int              dir;
+  {
+!     win_T    *wp = newwin;
+      win_T    *oldwin;
+      int              new_size = size;
+      int              i;
+--- 683,701 ----
+  }
+  
+  /*
+!  * When "new_wp" is NULL: split the current window in two.
+!  * When "new_wp" is not NULL: insert this window at the far
+   * top/left/right/bottom.
+   * return FAIL for failure, OK otherwise
+   */
+      int
+! win_split_ins(size, flags, new_wp, dir)
+      int              size;
+      int              flags;
+!     win_T    *new_wp;
+      int              dir;
+  {
+!     win_T    *wp = new_wp;
+      win_T    *oldwin;
+      int              new_size = size;
+      int              i;
+***************
+*** 718,724 ****
+      /* add a status line when p_ls == 1 and splitting the first window */
+      if (lastwin == firstwin && p_ls == 1 && oldwin->w_status_height == 0)
+      {
+!      if (oldwin->w_height <= p_wmh && newwin == NULL)
+       {
+           EMSG(_(e_noroom));
+           return FAIL;
+--- 718,724 ----
+      /* add a status line when p_ls == 1 and splitting the first window */
+      if (lastwin == firstwin && p_ls == 1 && oldwin->w_status_height == 0)
+      {
+!      if (oldwin->w_height <= p_wmh && new_wp == NULL)
+       {
+           EMSG(_(e_noroom));
+           return FAIL;
+***************
+*** 751,757 ****
+       }
+       else
+           available = oldwin->w_width;
+!      if (available < needed && newwin == NULL)
+       {
+           EMSG(_(e_noroom));
+           return FAIL;
+--- 751,757 ----
+       }
+       else
+           available = oldwin->w_width;
+!      if (available < needed && new_wp == NULL)
+       {
+           EMSG(_(e_noroom));
+           return FAIL;
+***************
+*** 815,821 ****
+           available = oldwin->w_height;
+           needed += p_wmh;
+       }
+!      if (available < needed && newwin == NULL)
+       {
+           EMSG(_(e_noroom));
+           return FAIL;
+--- 815,821 ----
+           available = oldwin->w_height;
+           needed += p_wmh;
+       }
+!      if (available < needed && new_wp == NULL)
+       {
+           EMSG(_(e_noroom));
+           return FAIL;
+***************
+*** 888,907 ****
+                       p_sb))))
+      {
+       /* new window below/right of current one */
+!      if (newwin == NULL)
+           wp = win_alloc(oldwin, FALSE);
+       else
+           win_append(oldwin, wp);
+      }
+      else
+      {
+!      if (newwin == NULL)
+           wp = win_alloc(oldwin->w_prev, FALSE);
+       else
+           win_append(oldwin->w_prev, wp);
+      }
+  
+!     if (newwin == NULL)
+      {
+       if (wp == NULL)
+           return FAIL;
+--- 888,907 ----
+                       p_sb))))
+      {
+       /* new window below/right of current one */
+!      if (new_wp == NULL)
+           wp = win_alloc(oldwin, FALSE);
+       else
+           win_append(oldwin, wp);
+      }
+      else
+      {
+!      if (new_wp == NULL)
+           wp = win_alloc(oldwin->w_prev, FALSE);
+       else
+           win_append(oldwin->w_prev, wp);
+      }
+  
+!     if (new_wp == NULL)
+      {
+       if (wp == NULL)
+           return FAIL;
+***************
+*** 972,981 ****
+               frp->fr_parent = curfrp;
+      }
+  
+!     if (newwin == NULL)
+       frp = wp->w_frame;
+      else
+!      frp = newwin->w_frame;
+      frp->fr_parent = curfrp->fr_parent;
+  
+      /* Insert the new frame at the right place in the frame list. */
+--- 972,981 ----
+               frp->fr_parent = curfrp;
+      }
+  
+!     if (new_wp == NULL)
+       frp = wp->w_frame;
+      else
+!      frp = new_wp->w_frame;
+      frp->fr_parent = curfrp->fr_parent;
+  
+      /* Insert the new frame at the right place in the frame list. */
+***************
+*** 4284,4302 ****
+      win_T    *after UNUSED;
+      int              hidden UNUSED;
+  {
+!     win_T    *newwin;
+  
+      /*
+       * allocate window structure and linesizes arrays
+       */
+!     newwin = (win_T *)alloc_clear((unsigned)sizeof(win_T));
+!     if (newwin != NULL && win_alloc_lines(newwin) == FAIL)
+      {
+!      vim_free(newwin);
+!      newwin = NULL;
+      }
+  
+!     if (newwin != NULL)
+      {
+  #ifdef FEAT_AUTOCMD
+       /* Don't execute autocommands while the window is not properly
+--- 4284,4302 ----
+      win_T    *after UNUSED;
+      int              hidden UNUSED;
+  {
+!     win_T    *new_wp;
+  
+      /*
+       * allocate window structure and linesizes arrays
+       */
+!     new_wp = (win_T *)alloc_clear((unsigned)sizeof(win_T));
+!     if (new_wp != NULL && win_alloc_lines(new_wp) == FAIL)
+      {
+!      vim_free(new_wp);
+!      new_wp = NULL;
+      }
+  
+!     if (new_wp != NULL)
+      {
+  #ifdef FEAT_AUTOCMD
+       /* Don't execute autocommands while the window is not properly
+***************
+*** 4309,4361 ****
+        */
+  #ifdef FEAT_WINDOWS
+       if (!hidden)
+!          win_append(after, newwin);
+  #endif
+  #ifdef FEAT_VERTSPLIT
+!      newwin->w_wincol = 0;
+!      newwin->w_width = Columns;
+  #endif
+  
+       /* position the display and the cursor at the top of the file. */
+!      newwin->w_topline = 1;
+  #ifdef FEAT_DIFF
+!      newwin->w_topfill = 0;
+  #endif
+!      newwin->w_botline = 2;
+!      newwin->w_cursor.lnum = 1;
+  #ifdef FEAT_SCROLLBIND
+!      newwin->w_scbind_pos = 1;
+  #endif
+  
+       /* We won't calculate w_fraction until resizing the window */
+!      newwin->w_fraction = 0;
+!      newwin->w_prev_fraction_row = -1;
+  
+  #ifdef FEAT_GUI
+       if (gui.in_use)
+       {
+!          gui_create_scrollbar(&newwin->w_scrollbars[SBAR_LEFT],
+!                  SBAR_LEFT, newwin);
+!          gui_create_scrollbar(&newwin->w_scrollbars[SBAR_RIGHT],
+!                  SBAR_RIGHT, newwin);
+       }
+  #endif
+  #ifdef FEAT_EVAL
+       /* init w: variables */
+!      init_var_dict(&newwin->w_vars, &newwin->w_winvar);
+  #endif
+  #ifdef FEAT_FOLDING
+!      foldInitWin(newwin);
+  #endif
+  #ifdef FEAT_AUTOCMD
+       unblock_autocmds();
+  #endif
+  #ifdef FEAT_SEARCH_EXTRA
+!      newwin->w_match_head = NULL;
+!      newwin->w_next_match_id = 4;
+  #endif
+      }
+!     return newwin;
+  }
+  
+  #if defined(FEAT_WINDOWS) || defined(PROTO)
+--- 4309,4361 ----
+        */
+  #ifdef FEAT_WINDOWS
+       if (!hidden)
+!          win_append(after, new_wp);
+  #endif
+  #ifdef FEAT_VERTSPLIT
+!      new_wp->w_wincol = 0;
+!      new_wp->w_width = Columns;
+  #endif
+  
+       /* position the display and the cursor at the top of the file. */
+!      new_wp->w_topline = 1;
+  #ifdef FEAT_DIFF
+!      new_wp->w_topfill = 0;
+  #endif
+!      new_wp->w_botline = 2;
+!      new_wp->w_cursor.lnum = 1;
+  #ifdef FEAT_SCROLLBIND
+!      new_wp->w_scbind_pos = 1;
+  #endif
+  
+       /* We won't calculate w_fraction until resizing the window */
+!      new_wp->w_fraction = 0;
+!      new_wp->w_prev_fraction_row = -1;
+  
+  #ifdef FEAT_GUI
+       if (gui.in_use)
+       {
+!          gui_create_scrollbar(&new_wp->w_scrollbars[SBAR_LEFT],
+!                  SBAR_LEFT, new_wp);
+!          gui_create_scrollbar(&new_wp->w_scrollbars[SBAR_RIGHT],
+!                  SBAR_RIGHT, new_wp);
+       }
+  #endif
+  #ifdef FEAT_EVAL
+       /* init w: variables */
+!      init_var_dict(&new_wp->w_vars, &new_wp->w_winvar);
+  #endif
+  #ifdef FEAT_FOLDING
+!      foldInitWin(new_wp);
+  #endif
+  #ifdef FEAT_AUTOCMD
+       unblock_autocmds();
+  #endif
+  #ifdef FEAT_SEARCH_EXTRA
+!      new_wp->w_match_head = NULL;
+!      new_wp->w_next_match_id = 4;
+  #endif
+      }
+!     return new_wp;
+  }
+  
+  #if defined(FEAT_WINDOWS) || defined(PROTO)
+*** ../vim-7.3.399/src/version.c       2012-01-10 18:37:53.000000000 +0100
+--- src/version.c      2012-01-10 22:23:10.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     400,
+  /**/
+
+-- 
+A parent can be arrested if his child cannot hold back a burp during a church
+service.
+               [real standing law in Nebraska, United States of America]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
diff --git a/7.3.401 b/7.3.401
new file mode 100644 (file)
index 0000000..6a473c5
--- /dev/null
+++ b/7.3.401
@@ -0,0 +1,191 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.401
+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.3.401
+Problem:    A couple more shadowed variables.
+Solution:   Rename the variables.
+Files:     src/netbeans.c
+
+
+*** ../vim-7.3.400/src/netbeans.c      2012-01-10 22:26:12.000000000 +0100
+--- src/netbeans.c     2012-01-10 22:30:17.000000000 +0100
+***************
+*** 443,449 ****
+      FILE *fp;
+      char_u buf[BUFSIZ];
+      char_u *lp;
+!     char_u *nl;
+  #ifdef UNIX
+      struct stat      st;
+  
+--- 443,449 ----
+      FILE *fp;
+      char_u buf[BUFSIZ];
+      char_u *lp;
+!     char_u *nlp;
+  #ifdef UNIX
+      struct stat      st;
+  
+***************
+*** 472,479 ****
+      /* Read the file. There should be one of each parameter */
+      while ((lp = (char_u *)fgets((char *)buf, BUFSIZ, fp)) != NULL)
+      {
+!      if ((nl = vim_strchr(lp, '\n')) != NULL)
+!          *nl = 0;        /* strip off the trailing newline */
+  
+       if (STRNCMP(lp, "host=", 5) == 0)
+       {
+--- 472,479 ----
+      /* Read the file. There should be one of each parameter */
+      while ((lp = (char_u *)fgets((char *)buf, BUFSIZ, fp)) != NULL)
+      {
+!      if ((nlp = vim_strchr(lp, '\n')) != NULL)
+!          *nlp = 0;       /* strip off the trailing newline */
+  
+       if (STRNCMP(lp, "host=", 5) == 0)
+       {
+***************
+*** 1740,1746 ****
+               int     added = 0;
+               int     oldFire = netbeansFireChanges;
+               int     old_b_changed;
+!              char_u  *nl;
+               linenr_T lnum;
+               linenr_T lnum_start;
+               pos_T   *pos;
+--- 1740,1746 ----
+               int     added = 0;
+               int     oldFire = netbeansFireChanges;
+               int     old_b_changed;
+!              char_u  *nlp;
+               linenr_T lnum;
+               linenr_T lnum_start;
+               pos_T   *pos;
+***************
+*** 1780,1787 ****
+               do_update = 1;
+               while (*args != NUL)
+               {
+!                  nl = vim_strchr(args, '\n');
+!                  if (nl == NULL)
+                   {
+                       /* Incomplete line, probably truncated.  Next "insert"
+                        * command should append to this one. */
+--- 1780,1787 ----
+               do_update = 1;
+               while (*args != NUL)
+               {
+!                  nlp = vim_strchr(args, '\n');
+!                  if (nlp == NULL)
+                   {
+                       /* Incomplete line, probably truncated.  Next "insert"
+                        * command should append to this one. */
+***************
+*** 1789,1801 ****
+                   }
+                   else
+                   {
+!                      len = nl - args;
+  
+                       /*
+                        * We need to detect EOL style, because the commands
+                        * use a character offset.
+                        */
+!                      if (nl > args && nl[-1] == '\r')
+                       {
+                           ff_detected = EOL_DOS;
+                           --len;
+--- 1789,1801 ----
+                   }
+                   else
+                   {
+!                      len = nlp - args;
+  
+                       /*
+                        * We need to detect EOL style, because the commands
+                        * use a character offset.
+                        */
+!                      if (nlp > args && nlp[-1] == '\r')
+                       {
+                           ff_detected = EOL_DOS;
+                           --len;
+***************
+*** 1814,1820 ****
+  
+                       /* Insert halfway a line.  For simplicity we assume we
+                        * need to append to the line. */
+!                      newline = alloc_check((unsigned)(STRLEN(oldline) + len + 1));
+                       if (newline != NULL)
+                       {
+                           STRCPY(newline, oldline);
+--- 1814,1821 ----
+  
+                       /* Insert halfway a line.  For simplicity we assume we
+                        * need to append to the line. */
+!                      newline = alloc_check(
+!                                     (unsigned)(STRLEN(oldline) + len + 1));
+                       if (newline != NULL)
+                       {
+                           STRCPY(newline, oldline);
+***************
+*** 1826,1839 ****
+                   {
+                       /* Append a new line.  Not that we always do this,
+                        * also when the text doesn't end in a "\n". */
+!                      ml_append((linenr_T)(lnum - 1), args, (colnr_T)(len + 1), FALSE);
+                       ++added;
+                   }
+  
+!                  if (nl == NULL)
+                       break;
+                   ++lnum;
+!                  args = nl + 1;
+               }
+  
+               /* Adjust the marks below the inserted lines. */
+--- 1827,1841 ----
+                   {
+                       /* Append a new line.  Not that we always do this,
+                        * also when the text doesn't end in a "\n". */
+!                      ml_append((linenr_T)(lnum - 1), args,
+!                                                 (colnr_T)(len + 1), FALSE);
+                       ++added;
+                   }
+  
+!                  if (nlp == NULL)
+                       break;
+                   ++lnum;
+!                  args = nlp + 1;
+               }
+  
+               /* Adjust the marks below the inserted lines. */
+*** ../vim-7.3.400/src/version.c       2012-01-10 22:26:12.000000000 +0100
+--- src/version.c      2012-01-10 22:30:47.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     401,
+  /**/
+
+-- 
+So when I saw the post to comp.editors, I rushed over to the FTP site to
+grab it.  So I yank apart the tarball, light x candles, where x= the
+vim version multiplied by the md5sum of the source divided by the MAC of
+my NIC (8A3FA78155A8A1D346C3C4A), put on black robes, dim the lights,
+wave a dead chicken over the hard drive, and summon the power of GNU GCC
+with the magic words "make config ; make!".
+               [Jason Spence, compiling Vim 5.0]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- 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    ///
This page took 0.396589 seconds and 4 git commands to generate.