]> git.pld-linux.org Git - packages/vim.git/commitdiff
- new
authorAdam Gołębiowski <adamg@pld-linux.org>
Sat, 2 Sep 2006 17:04:00 +0000 (17:04 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    7.0.067 -> 1.1
    7.0.068 -> 1.1
    7.0.069 -> 1.1
    7.0.070 -> 1.1
    7.0.071 -> 1.1
    7.0.072 -> 1.1
    7.0.073 -> 1.1
    7.0.075 -> 1.1
    7.0.076 -> 1.1
    7.0.077 -> 1.1
    7.0.078 -> 1.1

7.0.067 [new file with mode: 0644]
7.0.068 [new file with mode: 0644]
7.0.069 [new file with mode: 0644]
7.0.070 [new file with mode: 0644]
7.0.071 [new file with mode: 0644]
7.0.072 [new file with mode: 0644]
7.0.073 [new file with mode: 0644]
7.0.075 [new file with mode: 0644]
7.0.076 [new file with mode: 0644]
7.0.077 [new file with mode: 0644]
7.0.078 [new file with mode: 0644]

diff --git a/7.0.067 b/7.0.067
new file mode 100644 (file)
index 0000000..88214f8
--- /dev/null
+++ b/7.0.067
@@ -0,0 +1,95 @@
+To: vim-dev@vim.org
+Subject: Patch 7.0.067
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.0.067
+Problem:    Undo doesn't always work properly when using "scim" input method.
+           Undo is split up when using preediting.
+Solution:   Reset xim_has_preediting also when preedit_start_col is not
+           MAXCOL.  Don't split undo when <Left> is used while preediting.
+           (Yukihiro Nakadaira)
+Files:     src/edit.c, src/mbyte.c
+
+
+*** ../vim-7.0.066/src/edit.c  Tue Aug 22 19:58:22 2006
+--- src/edit.c Tue Aug 29 14:57:46 2006
+***************
+*** 8597,8603 ****
+      tpos = curwin->w_cursor;
+      if (oneleft() == OK)
+      {
+!      start_arrow(&tpos);
+  #ifdef FEAT_RIGHTLEFT
+       /* If exit reversed string, position is fixed */
+       if (revins_scol != -1 && (int)curwin->w_cursor.col >= revins_scol)
+--- 8597,8608 ----
+      tpos = curwin->w_cursor;
+      if (oneleft() == OK)
+      {
+! #if defined(FEAT_XIM) && defined(FEAT_GUI_GTK)
+!      /* Only call start_arrow() when not busy with preediting, it will
+!       * break undo.  K_LEFT is inserted in im_correct_cursor(). */
+!      if (!im_is_preediting())
+! #endif
+!          start_arrow(&tpos);
+  #ifdef FEAT_RIGHTLEFT
+       /* If exit reversed string, position is fixed */
+       if (revins_scol != -1 && (int)curwin->w_cursor.col >= revins_scol)
+*** ../vim-7.0.066/src/mbyte.c Wed Aug 16 18:05:36 2006
+--- src/mbyte.c        Tue Aug 29 14:41:45 2006
+***************
+*** 3514,3519 ****
+--- 3514,3524 ----
+       add_to_input_buf(delkey, (int)sizeof(delkey));
+  }
+  
++ /*
++  * Move the cursor left by "num_move_back" characters.
++  * Note that ins_left() checks im_is_preediting() to avoid breaking undo for
++  * these K_LEFT keys.
++  */
+      static void
+  im_correct_cursor(int num_move_back)
+  {
+***************
+*** 3741,3748 ****
+      }
+      else if (cursor_index == 0 && preedit_string[0] == '\0')
+      {
+!      if (preedit_start_col == MAXCOL)
+!          xim_has_preediting = FALSE;
+  
+       /* If at the start position (after typing backspace)
+        * preedit_start_col must be reset. */
+--- 3746,3752 ----
+      }
+      else if (cursor_index == 0 && preedit_string[0] == '\0')
+      {
+!      xim_has_preediting = FALSE;
+  
+       /* If at the start position (after typing backspace)
+        * preedit_start_col must be reset. */
+*** ../vim-7.0.066/src/version.c       Tue Aug 22 21:51:18 2006
+--- src/version.c      Tue Aug 29 16:09:35 2006
+***************
+*** 668,669 ****
+--- 668,671 ----
+  {   /* Add new patch number below this line */
++ /**/
++     67,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+265. Your reason for not staying in touch with family is that
+     they do not have e-mail addresses.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.0.068 b/7.0.068
new file mode 100644 (file)
index 0000000..e1ec9ed
--- /dev/null
+++ b/7.0.068
@@ -0,0 +1,194 @@
+To: vim-dev@vim.org
+Subject: Patch 7.0.068
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.0.068
+Problem:    When 'ignorecase' is set and using Insert mode completion,
+           typing characters to change the list of matches, case is not
+           ignored. (Hugo Ahlenius)
+Solution:   Store the 'ignorecase' flag with the matches where needed.
+Files:     src/edit.c, src/search.c, src/spell.c
+
+
+*** ../vim-7.0.067/src/edit.c  Tue Aug 29 16:10:54 2006
+--- src/edit.c Tue Aug 29 14:57:46 2006
+***************
+*** 2405,2411 ****
+      /* compl_pattern doesn't need to be set */
+      compl_orig_text = vim_strnsave(ml_get_curline() + compl_col, compl_length);
+      if (compl_orig_text == NULL || ins_compl_add(compl_orig_text,
+!                      -1, FALSE, NULL, NULL, 0, ORIGINAL_TEXT, FALSE) != OK)
+       return;
+  
+      /* Handle like dictionary completion. */
+--- 2405,2411 ----
+      /* compl_pattern doesn't need to be set */
+      compl_orig_text = vim_strnsave(ml_get_curline() + compl_col, compl_length);
+      if (compl_orig_text == NULL || ins_compl_add(compl_orig_text,
+!                      -1, p_ic, NULL, NULL, 0, ORIGINAL_TEXT, FALSE) != OK)
+       return;
+  
+      /* Handle like dictionary completion. */
+***************
+*** 2821,2827 ****
+                       ptr = find_word_end(ptr);
+                   add_r = ins_compl_add_infercase(regmatch->startp[0],
+                                         (int)(ptr - regmatch->startp[0]),
+!                                                   FALSE, files[i], *dir, 0);
+                   if (thesaurus)
+                   {
+                       char_u *wstart;
+--- 2821,2827 ----
+                       ptr = find_word_end(ptr);
+                   add_r = ins_compl_add_infercase(regmatch->startp[0],
+                                         (int)(ptr - regmatch->startp[0]),
+!                                                   p_ic, files[i], *dir, 0);
+                   if (thesaurus)
+                   {
+                       char_u *wstart;
+***************
+*** 2857,2863 ****
+                               ptr = find_word_end(ptr);
+                           add_r = ins_compl_add_infercase(wstart,
+                                   (int)(ptr - wstart),
+!                                  FALSE, files[i], *dir, 0);
+                       }
+                   }
+                   if (add_r == OK)
+--- 2857,2863 ----
+                               ptr = find_word_end(ptr);
+                           add_r = ins_compl_add_infercase(wstart,
+                                   (int)(ptr - wstart),
+!                                  p_ic, files[i], *dir, 0);
+                       }
+                   }
+                   if (add_r == OK)
+***************
+*** 3826,3832 ****
+                   TAG_INS_COMP | (ctrl_x_mode ? TAG_VERBOSE : 0),
+                   TAG_MANY, curbuf->b_ffname) == OK && num_matches > 0)
+           {
+!              ins_compl_add_matches(num_matches, matches, FALSE);
+           }
+           p_ic = save_p_ic;
+           break;
+--- 3826,3832 ----
+                   TAG_INS_COMP | (ctrl_x_mode ? TAG_VERBOSE : 0),
+                   TAG_MANY, curbuf->b_ffname) == OK && num_matches > 0)
+           {
+!              ins_compl_add_matches(num_matches, matches, p_ic);
+           }
+           p_ic = save_p_ic;
+           break;
+***************
+*** 3867,3873 ****
+           num_matches = expand_spelling(first_match_pos.lnum,
+                                first_match_pos.col, compl_pattern, &matches);
+           if (num_matches > 0)
+!              ins_compl_add_matches(num_matches, matches, FALSE);
+  #endif
+           break;
+  
+--- 3867,3873 ----
+           num_matches = expand_spelling(first_match_pos.lnum,
+                                first_match_pos.col, compl_pattern, &matches);
+           if (num_matches > 0)
+!              ins_compl_add_matches(num_matches, matches, p_ic);
+  #endif
+           break;
+  
+***************
+*** 4001,4007 ****
+                           continue;
+                   }
+               }
+!              if (ins_compl_add_infercase(ptr, len, FALSE,
+                                ins_buf == curbuf ? NULL : ins_buf->b_sfname,
+                                          0, flags) != NOTDONE)
+               {
+--- 4001,4007 ----
+                           continue;
+                   }
+               }
+!              if (ins_compl_add_infercase(ptr, len, p_ic,
+                                ins_buf == curbuf ? NULL : ins_buf->b_sfname,
+                                          0, flags) != NOTDONE)
+               {
+***************
+*** 4809,4815 ****
+       vim_free(compl_orig_text);
+       compl_orig_text = vim_strnsave(line + compl_col, compl_length);
+       if (compl_orig_text == NULL || ins_compl_add(compl_orig_text,
+!                      -1, FALSE, NULL, NULL, 0, ORIGINAL_TEXT, FALSE) != OK)
+       {
+           vim_free(compl_pattern);
+           compl_pattern = NULL;
+--- 4809,4815 ----
+       vim_free(compl_orig_text);
+       compl_orig_text = vim_strnsave(line + compl_col, compl_length);
+       if (compl_orig_text == NULL || ins_compl_add(compl_orig_text,
+!                      -1, p_ic, NULL, NULL, 0, ORIGINAL_TEXT, FALSE) != OK)
+       {
+           vim_free(compl_pattern);
+           compl_pattern = NULL;
+*** ../vim-7.0.067/src/search.c        Fri May  5 23:15:17 2006
+--- src/search.c       Tue Aug 29 14:56:15 2006
+***************
+*** 4871,4877 ****
+                       goto exit_matched;
+               }
+  
+!              add_r = ins_compl_add_infercase(aux, i, FALSE,
+                       curr_fname == curbuf->b_fname ? NULL : curr_fname,
+                       dir, reuse);
+               if (add_r == OK)
+--- 4876,4882 ----
+                       goto exit_matched;
+               }
+  
+!              add_r = ins_compl_add_infercase(aux, i, p_ic,
+                       curr_fname == curbuf->b_fname ? NULL : curr_fname,
+                       dir, reuse);
+               if (add_r == OK)
+*** ../vim-7.0.067/src/spell.c Sun Jul 23 21:52:16 2006
+--- src/spell.c        Tue Aug 29 14:56:26 2006
+***************
+*** 15658,15664 ****
+                   ? MB_STRNICMP(p, pat, STRLEN(pat)) == 0
+                   : STRNCMP(p, pat, STRLEN(pat)) == 0)
+               && ins_compl_add_infercase(p, (int)STRLEN(p),
+!                                        FALSE, NULL, *dir, 0) == OK)
+       /* if dir was BACKWARD then honor it just once */
+       *dir = FORWARD;
+  }
+--- 15662,15668 ----
+                   ? MB_STRNICMP(p, pat, STRLEN(pat)) == 0
+                   : STRNCMP(p, pat, STRLEN(pat)) == 0)
+               && ins_compl_add_infercase(p, (int)STRLEN(p),
+!                                        p_ic, NULL, *dir, 0) == OK)
+       /* if dir was BACKWARD then honor it just once */
+       *dir = FORWARD;
+  }
+*** ../vim-7.0.067/src/version.c       Tue Aug 29 16:10:54 2006
+--- src/version.c      Tue Aug 29 16:13:49 2006
+***************
+*** 668,669 ****
+--- 668,671 ----
+  {   /* Add new patch number below this line */
++ /**/
++     68,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+266. You hear most of your jokes via e-mail instead of in person.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.0.069 b/7.0.069
new file mode 100644 (file)
index 0000000..35b8566
--- /dev/null
+++ b/7.0.069
@@ -0,0 +1,53 @@
+To: vim-dev@vim.org
+Subject: Patch 7.0.069
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.0.069
+Problem:    Setting 'guitablabel' to %!expand(\%)  causes Vim to free an
+           invalid pointer. (Kim Schulz)
+Solution:   Don't try freeing a constant string pointer.
+Files:     src/buffer.c
+
+
+*** ../vim-7.0.068/src/buffer.c        Wed Aug 16 19:34:59 2006
+--- src/buffer.c       Tue Aug 29 16:23:49 2006
+***************
+*** 3324,3330 ****
+      {
+       usefmt = eval_to_string_safe(fmt + 2, NULL, use_sandbox);
+       if (usefmt == NULL)
+!          usefmt = (char_u *)"";
+      }
+  #endif
+  
+--- 3324,3330 ----
+      {
+       usefmt = eval_to_string_safe(fmt + 2, NULL, use_sandbox);
+       if (usefmt == NULL)
+!          usefmt = fmt;
+      }
+  #endif
+  
+*** ../vim-7.0.068/src/version.c       Tue Aug 29 16:33:23 2006
+--- src/version.c      Tue Aug 29 16:48:08 2006
+***************
+*** 668,669 ****
+--- 668,671 ----
+  {   /* Add new patch number below this line */
++ /**/
++     69,
+  /**/
+
+-- 
+Two fish in a tank. One says to the other:
+"Do you know how to drive this thing?"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.0.070 b/7.0.070
new file mode 100644 (file)
index 0000000..75d8d0c
--- /dev/null
+++ b/7.0.070
@@ -0,0 +1,2603 @@
+To: vim-dev@vim.org
+Subject: Patch 7.0.070
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.0.070
+Problem:    Compiler warnings for shadowed variables and uninitialized
+           variables.
+Solution:   Rename variables such as "index", "msg" and "dup".  Initialize
+           variables.
+Files:     src/edit.c, src/eval.c, src/ex_cmds.c, src/ex_cmds2.c,
+           src/ex_docmd.c, src/gui_beval.c, src/gui_gtk.c, src/gui_gtk_x11.c,
+           src/hardcopy.c, src/if_cscope.c, src/main.c, src/mbyte.c,
+           src/memline.c, src/netbeans.c, src/normal.c, src/option.c,
+           src/os_unix.c, src/quickfix.c, src/regexp.c, src/screen.c,
+           src/search.c, src/spell.c, src/ui.c, src/undo.c, src/window.c,
+           src/version.c
+
+
+*** ../vim-7.0.069/src/edit.c  Tue Aug 29 16:33:23 2006
+--- src/edit.c Tue Aug 29 14:57:46 2006
+***************
+*** 129,135 ****
+  
+  static void ins_ctrl_x __ARGS((void));
+  static int  has_compl_option __ARGS((int dict_opt));
+! static int ins_compl_add __ARGS((char_u *str, int len, int icase, char_u *fname, char_u **cptext, int cdir, int flags, int dup));
+  static int  ins_compl_equal __ARGS((compl_T *match, char_u *str, int len));
+  static void ins_compl_longest_match __ARGS((compl_T *match));
+  static void ins_compl_add_matches __ARGS((int num_matches, char_u **matches, int icase));
+--- 129,135 ----
+  
+  static void ins_ctrl_x __ARGS((void));
+  static int  has_compl_option __ARGS((int dict_opt));
+! static int ins_compl_add __ARGS((char_u *str, int len, int icase, char_u *fname, char_u **cptext, int cdir, int flags, int adup));
+  static int  ins_compl_equal __ARGS((compl_T *match, char_u *str, int len));
+  static void ins_compl_longest_match __ARGS((compl_T *match));
+  static void ins_compl_add_matches __ARGS((int num_matches, char_u **matches, int icase));
+***************
+*** 2118,2124 ****
+   * maybe because alloc() returns NULL, then FAIL is returned.
+   */
+      static int
+! ins_compl_add(str, len, icase, fname, cptext, cdir, flags, dup)
+      char_u   *str;
+      int              len;
+      int              icase;
+--- 2118,2124 ----
+   * maybe because alloc() returns NULL, then FAIL is returned.
+   */
+      static int
+! ins_compl_add(str, len, icase, fname, cptext, cdir, flags, adup)
+      char_u   *str;
+      int              len;
+      int              icase;
+***************
+*** 2126,2132 ****
+      char_u   **cptext;   /* extra text for popup menu or NULL */
+      int              cdir;
+      int              flags;
+!     int              dup;        /* accept duplicate match */
+  {
+      compl_T  *match;
+      int              dir = (cdir == 0 ? compl_direction : cdir);
+--- 2126,2132 ----
+      char_u   **cptext;   /* extra text for popup menu or NULL */
+      int              cdir;
+      int              flags;
+!     int              adup;       /* accept duplicate match */
+  {
+      compl_T  *match;
+      int              dir = (cdir == 0 ? compl_direction : cdir);
+***************
+*** 2140,2146 ****
+      /*
+       * If the same match is already present, don't add it.
+       */
+!     if (compl_first_match != NULL && !dup)
+      {
+       match = compl_first_match;
+       do
+--- 2140,2146 ----
+      /*
+       * If the same match is already present, don't add it.
+       */
+!     if (compl_first_match != NULL && !adup)
+      {
+       match = compl_first_match;
+       do
+***************
+*** 3608,3614 ****
+  {
+      char_u   *word;
+      int              icase = FALSE;
+!     int              dup = FALSE;
+      char_u   *(cptext[CPT_COUNT]);
+  
+      if (tv->v_type == VAR_DICT && tv->vval.v_dict != NULL)
+--- 3608,3614 ----
+  {
+      char_u   *word;
+      int              icase = FALSE;
+!     int              adup = FALSE;
+      char_u   *(cptext[CPT_COUNT]);
+  
+      if (tv->v_type == VAR_DICT && tv->vval.v_dict != NULL)
+***************
+*** 3625,3631 ****
+       if (get_dict_string(tv->vval.v_dict, (char_u *)"icase", FALSE) != NULL)
+           icase = get_dict_number(tv->vval.v_dict, (char_u *)"icase");
+       if (get_dict_string(tv->vval.v_dict, (char_u *)"dup", FALSE) != NULL)
+!          dup = get_dict_number(tv->vval.v_dict, (char_u *)"dup");
+      }
+      else
+      {
+--- 3625,3631 ----
+       if (get_dict_string(tv->vval.v_dict, (char_u *)"icase", FALSE) != NULL)
+           icase = get_dict_number(tv->vval.v_dict, (char_u *)"icase");
+       if (get_dict_string(tv->vval.v_dict, (char_u *)"dup", FALSE) != NULL)
+!          adup = get_dict_number(tv->vval.v_dict, (char_u *)"dup");
+      }
+      else
+      {
+***************
+*** 3634,3640 ****
+      }
+      if (word == NULL || *word == NUL)
+       return FAIL;
+!     return ins_compl_add(word, -1, icase, NULL, cptext, dir, 0, dup);
+  }
+  #endif
+  
+--- 3634,3640 ----
+      }
+      if (word == NULL || *word == NUL)
+       return FAIL;
+!     return ins_compl_add(word, -1, icase, NULL, cptext, dir, 0, adup);
+  }
+  #endif
+  
+*** ../vim-7.0.069/src/eval.c  Wed Aug 16 22:03:35 2006
+--- src/eval.c Thu Aug 24 22:00:09 2006
+***************
+*** 454,460 ****
+  static char_u *deref_func_name __ARGS((char_u *name, int *lenp));
+  static int get_func_tv __ARGS((char_u *name, int len, typval_T *rettv, char_u **arg, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict));
+  static int call_func __ARGS((char_u *name, int len, typval_T *rettv, int argcount, typval_T *argvars, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict));
+! static void emsg_funcname __ARGS((char *msg, char_u *name));
+  
+  static void f_add __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_append __ARGS((typval_T *argvars, typval_T *rettv));
+--- 454,460 ----
+  static char_u *deref_func_name __ARGS((char_u *name, int *lenp));
+  static int get_func_tv __ARGS((char_u *name, int len, typval_T *rettv, char_u **arg, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict));
+  static int call_func __ARGS((char_u *name, int len, typval_T *rettv, int argcount, typval_T *argvars, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict));
+! static void emsg_funcname __ARGS((char *ermsg, char_u *name));
+  
+  static void f_add __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_append __ARGS((typval_T *argvars, typval_T *rettv));
+***************
+*** 2260,2266 ****
+           EMSG(_(e_letunexp));
+       else
+       {
+!          char_u      *tofree = NULL;
+           char_u      *s;
+  
+           p = get_tv_string_chk(tv);
+--- 2260,2266 ----
+           EMSG(_(e_letunexp));
+       else
+       {
+!          char_u      *ptofree = NULL;
+           char_u      *s;
+  
+           p = get_tv_string_chk(tv);
+***************
+*** 2269,2275 ****
+               s = get_reg_contents(*arg == '@' ? '"' : *arg, TRUE, TRUE);
+               if (s != NULL)
+               {
+!                  p = tofree = concat_str(s, p);
+                   vim_free(s);
+               }
+           }
+--- 2269,2275 ----
+               s = get_reg_contents(*arg == '@' ? '"' : *arg, TRUE, TRUE);
+               if (s != NULL)
+               {
+!                  p = ptofree = concat_str(s, p);
+                   vim_free(s);
+               }
+           }
+***************
+*** 2278,2284 ****
+               write_reg_contents(*arg == '@' ? '"' : *arg, p, -1, FALSE);
+               arg_end = arg + 1;
+           }
+!          vim_free(tofree);
+       }
+      }
+  
+--- 2278,2284 ----
+               write_reg_contents(*arg == '@' ? '"' : *arg, p, -1, FALSE);
+               arg_end = arg + 1;
+           }
+!          vim_free(ptofree);
+       }
+      }
+  
+***************
+*** 7595,7602 ****
+   * Give an error message with a function name.  Handle <SNR> things.
+   */
+      static void
+! emsg_funcname(msg, name)
+!     char     *msg;
+      char_u   *name;
+  {
+      char_u   *p;
+--- 7595,7602 ----
+   * Give an error message with a function name.  Handle <SNR> things.
+   */
+      static void
+! emsg_funcname(ermsg, name)
+!     char     *ermsg;
+      char_u   *name;
+  {
+      char_u   *p;
+***************
+*** 7605,7611 ****
+       p = concat_str((char_u *)"<SNR>", name + 3);
+      else
+       p = name;
+!     EMSG2(_(msg), p);
+      if (p != name)
+       vim_free(p);
+  }
+--- 7605,7611 ----
+       p = concat_str((char_u *)"<SNR>", name + 3);
+      else
+       p = name;
+!     EMSG2(_(ermsg), p);
+      if (p != name)
+       vim_free(p);
+  }
+***************
+*** 9179,9203 ****
+      typval_T save_key;
+      int              rem;
+      int              todo;
+!     char_u   *msg = map ? (char_u *)"map()" : (char_u *)"filter()";
+      int              save_did_emsg;
+  
+      rettv->vval.v_number = 0;
+      if (argvars[0].v_type == VAR_LIST)
+      {
+       if ((l = argvars[0].vval.v_list) == NULL
+!              || (map && tv_check_lock(l->lv_lock, msg)))
+           return;
+      }
+      else if (argvars[0].v_type == VAR_DICT)
+      {
+       if ((d = argvars[0].vval.v_dict) == NULL
+!              || (map && tv_check_lock(d->dv_lock, msg)))
+           return;
+      }
+      else
+      {
+!      EMSG2(_(e_listdictarg), msg);
+       return;
+      }
+  
+--- 9179,9203 ----
+      typval_T save_key;
+      int              rem;
+      int              todo;
+!     char_u   *ermsg = map ? (char_u *)"map()" : (char_u *)"filter()";
+      int              save_did_emsg;
+  
+      rettv->vval.v_number = 0;
+      if (argvars[0].v_type == VAR_LIST)
+      {
+       if ((l = argvars[0].vval.v_list) == NULL
+!              || (map && tv_check_lock(l->lv_lock, ermsg)))
+           return;
+      }
+      else if (argvars[0].v_type == VAR_DICT)
+      {
+       if ((d = argvars[0].vval.v_dict) == NULL
+!              || (map && tv_check_lock(d->dv_lock, ermsg)))
+           return;
+      }
+      else
+      {
+!      EMSG2(_(e_listdictarg), ermsg);
+       return;
+      }
+  
+***************
+*** 9229,9235 ****
+               {
+                   --todo;
+                   di = HI2DI(hi);
+!                  if (tv_check_lock(di->di_tv.v_lock, msg))
+                       break;
+                   vimvars[VV_KEY].vv_str = vim_strsave(di->di_key);
+                   if (filter_map_one(&di->di_tv, expr, map, &rem) == FAIL
+--- 9229,9235 ----
+               {
+                   --todo;
+                   di = HI2DI(hi);
+!                  if (tv_check_lock(di->di_tv.v_lock, ermsg))
+                       break;
+                   vimvars[VV_KEY].vv_str = vim_strsave(di->di_key);
+                   if (filter_map_one(&di->di_tv, expr, map, &rem) == FAIL
+***************
+*** 9248,9254 ****
+       {
+           for (li = l->lv_first; li != NULL; li = nli)
+           {
+!              if (tv_check_lock(li->li_tv.v_lock, msg))
+                   break;
+               nli = li->li_next;
+               if (filter_map_one(&li->li_tv, expr, map, &rem) == FAIL
+--- 9248,9254 ----
+       {
+           for (li = l->lv_first; li != NULL; li = nli)
+           {
+!              if (tv_check_lock(li->li_tv.v_lock, ermsg))
+                   break;
+               nli = li->li_next;
+               if (filter_map_one(&li->li_tv, expr, map, &rem) == FAIL
+***************
+*** 19789,19795 ****
+           if (p_verbose >= 14)
+           {
+               char_u  buf[MSG_BUF_LEN];
+!              char_u  numbuf[NUMBUFLEN];
+               char_u  *tofree;
+  
+               msg_puts((char_u *)"(");
+--- 19789,19795 ----
+           if (p_verbose >= 14)
+           {
+               char_u  buf[MSG_BUF_LEN];
+!              char_u  numbuf2[NUMBUFLEN];
+               char_u  *tofree;
+  
+               msg_puts((char_u *)"(");
+***************
+*** 19801,19808 ****
+                       msg_outnum((long)argvars[i].vval.v_number);
+                   else
+                   {
+!                      trunc_string(tv2string(&argvars[i], &tofree, numbuf, 0),
+!                                                          buf, MSG_BUF_CLEN);
+                       msg_puts(buf);
+                       vim_free(tofree);
+                   }
+--- 19801,19808 ----
+                       msg_outnum((long)argvars[i].vval.v_number);
+                   else
+                   {
+!                      trunc_string(tv2string(&argvars[i], &tofree,
+!                                            numbuf2, 0), buf, MSG_BUF_CLEN);
+                       msg_puts(buf);
+                       vim_free(tofree);
+                   }
+***************
+*** 19880,19892 ****
+       else
+       {
+           char_u      buf[MSG_BUF_LEN];
+!          char_u      numbuf[NUMBUFLEN];
+           char_u      *tofree;
+  
+           /* The value may be very long.  Skip the middle part, so that we
+            * have some idea how it starts and ends. smsg() would always
+            * truncate it at the end. */
+!          trunc_string(tv2string(fc.rettv, &tofree, numbuf, 0),
+                                                          buf, MSG_BUF_CLEN);
+           smsg((char_u *)_("%s returning %s"), sourcing_name, buf);
+           vim_free(tofree);
+--- 19880,19892 ----
+       else
+       {
+           char_u      buf[MSG_BUF_LEN];
+!          char_u      numbuf2[NUMBUFLEN];
+           char_u      *tofree;
+  
+           /* The value may be very long.  Skip the middle part, so that we
+            * have some idea how it starts and ends. smsg() would always
+            * truncate it at the end. */
+!          trunc_string(tv2string(fc.rettv, &tofree, numbuf2, 0),
+                                                          buf, MSG_BUF_CLEN);
+           smsg((char_u *)_("%s returning %s"), sourcing_name, buf);
+           vim_free(tofree);
+*** ../vim-7.0.069/src/ex_cmds.c       Sun Apr 23 00:33:23 2006
+--- src/ex_cmds.c      Mon Aug 28 21:42:29 2006
+***************
+*** 185,190 ****
+--- 185,191 ----
+           new_indent = indent;
+       else
+       {
++          has_tab = FALSE;    /* avoid uninit warnings */
+           len = linelen(eap->cmdidx == CMD_right ? &has_tab
+                                                  : NULL) - get_indent();
+  
+***************
+*** 1772,1781 ****
+                               ? (st_old.st_mode & 0020)
+                               : (st_old.st_mode & 0002))))
+       {
+!          int tt;
+  
+           /* avoid a wait_return for this message, it's annoying */
+-          tt = msg_didany;
+           EMSG2(_("E137: Viminfo file is not writable: %s"), fname);
+           msg_didany = tt;
+           fclose(fp_in);
+--- 1773,1781 ----
+                               ? (st_old.st_mode & 0020)
+                               : (st_old.st_mode & 0002))))
+       {
+!          int tt = msg_didany;
+  
+           /* avoid a wait_return for this message, it's annoying */
+           EMSG2(_("E137: Viminfo file is not writable: %s"), fname);
+           msg_didany = tt;
+           fclose(fp_in);
+*** ../vim-7.0.069/src/ex_cmds2.c      Tue Apr 18 00:10:47 2006
+--- src/ex_cmds2.c     Thu Aug 24 22:01:44 2006
+***************
+*** 3648,3660 ****
+   * Return FALSE when not sourcing a file.
+   */
+      int
+! source_finished(getline, cookie)
+!     char_u   *(*getline) __ARGS((int, void *, int));
+      void     *cookie;
+  {
+!     return (getline_equal(getline, cookie, getsourceline)
+           && ((struct source_cookie *)getline_cookie(
+!                                               getline, cookie))->finished);
+  }
+  #endif
+  
+--- 3648,3660 ----
+   * Return FALSE when not sourcing a file.
+   */
+      int
+! source_finished(fgetline, cookie)
+!     char_u   *(*fgetline) __ARGS((int, void *, int));
+      void     *cookie;
+  {
+!     return (getline_equal(fgetline, cookie, getsourceline)
+           && ((struct source_cookie *)getline_cookie(
+!                                              fgetline, cookie))->finished);
+  }
+  #endif
+  
+*** ../vim-7.0.069/src/ex_docmd.c      Wed Aug 16 17:06:22 2006
+--- src/ex_docmd.c     Thu Aug 24 22:03:17 2006
+***************
+*** 58,66 ****
+  #endif
+  
+  #ifdef FEAT_EVAL
+! static char_u        *do_one_cmd __ARGS((char_u **, int, struct condstack *, char_u *(*getline)(int, void *, int), void *cookie));
+  #else
+! static char_u        *do_one_cmd __ARGS((char_u **, int, char_u *(*getline)(int, void *, int), void *cookie));
+  static int   if_level = 0;           /* depth in :if */
+  #endif
+  static char_u        *find_command __ARGS((exarg_T *eap, int *full));
+--- 58,66 ----
+  #endif
+  
+  #ifdef FEAT_EVAL
+! static char_u        *do_one_cmd __ARGS((char_u **, int, struct condstack *, char_u *(*fgetline)(int, void *, int), void *cookie));
+  #else
+! static char_u        *do_one_cmd __ARGS((char_u **, int, char_u *(*fgetline)(int, void *, int), void *cookie));
+  static int   if_level = 0;           /* depth in :if */
+  #endif
+  static char_u        *find_command __ARGS((exarg_T *eap, int *full));
+***************
+*** 831,840 ****
+  
+      /*
+       * If requested, store and reset the global values controlling the
+!      * exception handling (used when debugging).
+       */
+      if (flags & DOCMD_EXCRESET)
+       save_dbg_stuff(&debug_saved);
+  
+      initial_trylevel = trylevel;
+  
+--- 831,843 ----
+  
+      /*
+       * If requested, store and reset the global values controlling the
+!      * exception handling (used when debugging).  Otherwise clear it to avoid
+!      * a bogus compiler warning when the optimizer uses inline functions...
+       */
+      if (flags & DOCMD_EXCRESET)
+       save_dbg_stuff(&debug_saved);
++     else
++      memset(&debug_saved, 0, 1);
+  
+      initial_trylevel = trylevel;
+  
+***************
+*** 1574,1597 ****
+  #endif
+  
+  /*
+!  * If "getline" is get_loop_line(), return TRUE if the getline it uses equals
+!  * "func".  * Otherwise return TRUE when "getline" equals "func".
+   */
+  /*ARGSUSED*/
+      int
+! getline_equal(getline, cookie, func)
+!     char_u   *(*getline) __ARGS((int, void *, int));
+!     void     *cookie;                /* argument for getline() */
+      char_u   *(*func) __ARGS((int, void *, int));
+  {
+  #ifdef FEAT_EVAL
+      char_u           *(*gp) __ARGS((int, void *, int));
+      struct loop_cookie *cp;
+  
+!     /* When "getline" is "get_loop_line()" use the "cookie" to find the
+       * function that's orignally used to obtain the lines.  This may be nested
+       * several levels. */
+!     gp = getline;
+      cp = (struct loop_cookie *)cookie;
+      while (gp == get_loop_line)
+      {
+--- 1577,1600 ----
+  #endif
+  
+  /*
+!  * If "fgetline" is get_loop_line(), return TRUE if the getline it uses equals
+!  * "func".  * Otherwise return TRUE when "fgetline" equals "func".
+   */
+  /*ARGSUSED*/
+      int
+! getline_equal(fgetline, cookie, func)
+!     char_u   *(*fgetline) __ARGS((int, void *, int));
+!     void     *cookie;                /* argument for fgetline() */
+      char_u   *(*func) __ARGS((int, void *, int));
+  {
+  #ifdef FEAT_EVAL
+      char_u           *(*gp) __ARGS((int, void *, int));
+      struct loop_cookie *cp;
+  
+!     /* When "fgetline" is "get_loop_line()" use the "cookie" to find the
+       * function that's orignally used to obtain the lines.  This may be nested
+       * several levels. */
+!     gp = fgetline;
+      cp = (struct loop_cookie *)cookie;
+      while (gp == get_loop_line)
+      {
+***************
+*** 1600,1628 ****
+      }
+      return gp == func;
+  #else
+!     return getline == func;
+  #endif
+  }
+  
+  #if defined(FEAT_EVAL) || defined(FEAT_MBYTE) || defined(PROTO)
+  /*
+!  * If "getline" is get_loop_line(), return the cookie used by the original
+   * getline function.  Otherwise return "cookie".
+   */
+  /*ARGSUSED*/
+      void *
+! getline_cookie(getline, cookie)
+!     char_u   *(*getline) __ARGS((int, void *, int));
+!     void     *cookie;                /* argument for getline() */
+  {
+  # ifdef FEAT_EVAL
+      char_u           *(*gp) __ARGS((int, void *, int));
+      struct loop_cookie *cp;
+  
+!     /* When "getline" is "get_loop_line()" use the "cookie" to find the
+       * cookie that's orignally used to obtain the lines.  This may be nested
+       * several levels. */
+!     gp = getline;
+      cp = (struct loop_cookie *)cookie;
+      while (gp == get_loop_line)
+      {
+--- 1603,1631 ----
+      }
+      return gp == func;
+  #else
+!     return fgetline == func;
+  #endif
+  }
+  
+  #if defined(FEAT_EVAL) || defined(FEAT_MBYTE) || defined(PROTO)
+  /*
+!  * If "fgetline" is get_loop_line(), return the cookie used by the original
+   * getline function.  Otherwise return "cookie".
+   */
+  /*ARGSUSED*/
+      void *
+! getline_cookie(fgetline, cookie)
+!     char_u   *(*fgetline) __ARGS((int, void *, int));
+!     void     *cookie;                /* argument for fgetline() */
+  {
+  # ifdef FEAT_EVAL
+      char_u           *(*gp) __ARGS((int, void *, int));
+      struct loop_cookie *cp;
+  
+!     /* When "fgetline" is "get_loop_line()" use the "cookie" to find the
+       * cookie that's orignally used to obtain the lines.  This may be nested
+       * several levels. */
+!     gp = fgetline;
+      cp = (struct loop_cookie *)cookie;
+      while (gp == get_loop_line)
+      {
+***************
+*** 1648,1654 ****
+   * 5. parse arguments
+   * 6. switch on command name
+   *
+!  * Note: "getline" can be NULL.
+   *
+   * This function may be called recursively!
+   */
+--- 1651,1657 ----
+   * 5. parse arguments
+   * 6. switch on command name
+   *
+!  * Note: "fgetline" can be NULL.
+   *
+   * This function may be called recursively!
+   */
+***************
+*** 1663,1676 ****
+  #ifdef FEAT_EVAL
+                           cstack,
+  #endif
+!                                  getline, cookie)
+      char_u           **cmdlinep;
+      int                      sourcing;
+  #ifdef FEAT_EVAL
+      struct condstack *cstack;
+  #endif
+!     char_u           *(*getline) __ARGS((int, void *, int));
+!     void             *cookie;                /* argument for getline() */
+  {
+      char_u           *p;
+      linenr_T         lnum;
+--- 1666,1679 ----
+  #ifdef FEAT_EVAL
+                           cstack,
+  #endif
+!                                  fgetline, cookie)
+      char_u           **cmdlinep;
+      int                      sourcing;
+  #ifdef FEAT_EVAL
+      struct condstack *cstack;
+  #endif
+!     char_u           *(*fgetline) __ARGS((int, void *, int));
+!     void             *cookie;                /* argument for fgetline() */
+  {
+      char_u           *p;
+      linenr_T         lnum;
+***************
+*** 1698,1704 ****
+      if (quitmore
+  #ifdef FEAT_EVAL
+           /* avoid that a function call in 'statusline' does this */
+!          && !getline_equal(getline, cookie, get_func_line)
+  #endif
+           )
+       --quitmore;
+--- 1701,1707 ----
+      if (quitmore
+  #ifdef FEAT_EVAL
+           /* avoid that a function call in 'statusline' does this */
+!          && !getline_equal(fgetline, cookie, get_func_line)
+  #endif
+           )
+       --quitmore;
+***************
+*** 1728,1735 ****
+  
+       /* in ex mode, an empty line works like :+ */
+       if (*ea.cmd == NUL && exmode_active
+!                      && (getline_equal(getline, cookie, getexmodeline)
+!                          || getline_equal(getline, cookie, getexline))
+                       && curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count)
+       {
+           ea.cmd = (char_u *)"+";
+--- 1731,1738 ----
+  
+       /* in ex mode, an empty line works like :+ */
+       if (*ea.cmd == NUL && exmode_active
+!                      && (getline_equal(fgetline, cookie, getexmodeline)
+!                          || getline_equal(fgetline, cookie, getexline))
+                       && curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count)
+       {
+           ea.cmd = (char_u *)"+";
+***************
+*** 1918,1926 ****
+      /* Count this line for profiling if ea.skip is FALSE. */
+      if (do_profiling == PROF_YES && !ea.skip)
+      {
+!      if (getline_equal(getline, cookie, get_func_line))
+!          func_line_exec(getline_cookie(getline, cookie));
+!      else if (getline_equal(getline, cookie, getsourceline))
+           script_line_exec();
+      }
+  #endif
+--- 1921,1929 ----
+      /* Count this line for profiling if ea.skip is FALSE. */
+      if (do_profiling == PROF_YES && !ea.skip)
+      {
+!      if (getline_equal(fgetline, cookie, get_func_line))
+!          func_line_exec(getline_cookie(fgetline, cookie));
+!      else if (getline_equal(fgetline, cookie, getsourceline))
+           script_line_exec();
+      }
+  #endif
+***************
+*** 2589,2595 ****
+   * The "ea" structure holds the arguments that can be used.
+   */
+      ea.cmdlinep = cmdlinep;
+!     ea.getline = getline;
+      ea.cookie = cookie;
+  #ifdef FEAT_EVAL
+      ea.cstack = cstack;
+--- 2592,2598 ----
+   * The "ea" structure holds the arguments that can be used.
+   */
+      ea.cmdlinep = cmdlinep;
+!     ea.getline = fgetline;
+      ea.cookie = cookie;
+  #ifdef FEAT_EVAL
+      ea.cstack = cstack;
+***************
+*** 2627,2635 ****
+       do_throw(cstack);
+      else if (check_cstack)
+      {
+!      if (source_finished(getline, cookie))
+           do_finish(&ea, TRUE);
+!      else if (getline_equal(getline, cookie, get_func_line)
+                                                  && current_func_returned())
+           do_return(&ea, TRUE, FALSE, NULL);
+      }
+--- 2630,2638 ----
+       do_throw(cstack);
+      else if (check_cstack)
+      {
+!      if (source_finished(fgetline, cookie))
+           do_finish(&ea, TRUE);
+!      else if (getline_equal(fgetline, cookie, get_func_line)
+                                                  && current_func_returned())
+           do_return(&ea, TRUE, FALSE, NULL);
+      }
+*** ../vim-7.0.069/src/gui_beval.c     Thu May  4 23:57:11 2006
+--- src/gui_beval.c    Thu Aug 24 22:39:50 2006
+***************
+*** 926,932 ****
+  #  define IS_NONPRINTABLE(c) (((c) < 0x20 && (c) != TAB && (c) != NL) \
+                             || (c) == DEL)
+      static void
+! set_printable_label_text(GtkLabel *label, char_u *msg)
+  {
+      char_u       *convbuf = NULL;
+      char_u       *buf;
+--- 926,932 ----
+  #  define IS_NONPRINTABLE(c) (((c) < 0x20 && (c) != TAB && (c) != NL) \
+                             || (c) == DEL)
+      static void
+! set_printable_label_text(GtkLabel *label, char_u *text)
+  {
+      char_u       *convbuf = NULL;
+      char_u       *buf;
+***************
+*** 940,953 ****
+      /* Convert to UTF-8 if it isn't already */
+      if (output_conv.vc_type != CONV_NONE)
+      {
+!      convbuf = string_convert(&output_conv, msg, NULL);
+       if (convbuf != NULL)
+!          msg = convbuf;
+      }
+  
+      /* First let's see how much we need to allocate */
+      len = 0;
+!     for (p = msg; *p != NUL; p += charlen)
+      {
+       if ((*p & 0x80) == 0)   /* be quick for ASCII */
+       {
+--- 940,953 ----
+      /* Convert to UTF-8 if it isn't already */
+      if (output_conv.vc_type != CONV_NONE)
+      {
+!      convbuf = string_convert(&output_conv, text, NULL);
+       if (convbuf != NULL)
+!          text = convbuf;
+      }
+  
+      /* First let's see how much we need to allocate */
+      len = 0;
+!     for (p = text; *p != NUL; p += charlen)
+      {
+       if ((*p & 0x80) == 0)   /* be quick for ASCII */
+       {
+***************
+*** 992,998 ****
+                                    (unsigned long)pixel, &color);
+  
+       pdest = buf;
+!      p = msg;
+       while (*p != NUL)
+       {
+           /* Be quick for ASCII */
+--- 992,998 ----
+                                    (unsigned long)pixel, &color);
+  
+       pdest = buf;
+!      p = text;
+       while (*p != NUL)
+       {
+           /* Be quick for ASCII */
+*** ../vim-7.0.069/src/gui_gtk.c       Fri May  5 23:13:49 2006
+--- src/gui_gtk.c      Thu Aug 24 22:34:30 2006
+***************
+*** 957,971 ****
+  get_menu_position(vimmenu_T *menu)
+  {
+      vimmenu_T        *node;
+!     int              index = 0;
+  
+      for (node = menu->parent->children; node != menu; node = node->next)
+      {
+       g_return_val_if_fail(node != NULL, -1);
+!      ++index;
+      }
+  
+!     return index;
+  }
+  #endif /* FEAT_TOOLBAR && HAVE_GTK2 */
+  
+--- 957,971 ----
+  get_menu_position(vimmenu_T *menu)
+  {
+      vimmenu_T        *node;
+!     int              idx = 0;
+  
+      for (node = menu->parent->children; node != menu; node = node->next)
+      {
+       g_return_val_if_fail(node != NULL, -1);
+!      ++idx;
+      }
+  
+!     return idx;
+  }
+  #endif /* FEAT_TOOLBAR && HAVE_GTK2 */
+  
+***************
+*** 2127,2133 ****
+      char    **ync;  /* "yes no cancel" */
+      char    **buttons;
+      int          n_buttons = 0;
+!     int          index;
+  
+      button_string = vim_strsave(button_string); /* must be writable */
+      if (button_string == NULL)
+--- 2128,2134 ----
+      char    **ync;  /* "yes no cancel" */
+      char    **buttons;
+      int          n_buttons = 0;
+!     int          idx;
+  
+      button_string = vim_strsave(button_string); /* must be writable */
+      if (button_string == NULL)
+***************
+*** 2161,2172 ****
+       * Well, apparently somebody changed his mind: with GTK 2.2.4 it works the
+       * other way around...
+       */
+!     for (index = 1; index <= n_buttons; ++index)
+      {
+       char    *label;
+       char_u  *label8;
+  
+!      label = buttons[index - 1];
+       /*
+        * Perform some guesswork to find appropriate stock items for the
+        * buttons.  We have to compare with a sample of the translated
+--- 2162,2173 ----
+       * Well, apparently somebody changed his mind: with GTK 2.2.4 it works the
+       * other way around...
+       */
+!     for (idx = 1; idx <= n_buttons; ++idx)
+      {
+       char    *label;
+       char_u  *label8;
+  
+!      label = buttons[idx - 1];
+       /*
+        * Perform some guesswork to find appropriate stock items for the
+        * buttons.  We have to compare with a sample of the translated
+***************
+*** 2188,2194 ****
+           else if (button_equal(label, "Cancel")) label = GTK_STOCK_CANCEL;
+       }
+       label8 = CONVERT_TO_UTF8((char_u *)label);
+!      gtk_dialog_add_button(dialog, (const gchar *)label8, index);
+       CONVERT_TO_UTF8_FREE(label8);
+      }
+  
+--- 2189,2195 ----
+           else if (button_equal(label, "Cancel")) label = GTK_STOCK_CANCEL;
+       }
+       label8 = CONVERT_TO_UTF8((char_u *)label);
+!      gtk_dialog_add_button(dialog, (const gchar *)label8, idx);
+       CONVERT_TO_UTF8_FREE(label8);
+      }
+  
+*** ../vim-7.0.069/src/gui_gtk_x11.c   Fri May  5 23:16:59 2006
+--- src/gui_gtk_x11.c  Thu Aug 24 22:35:59 2006
+***************
+*** 3233,3244 ****
+  on_select_tab(
+       GtkNotebook     *notebook,
+       GtkNotebookPage *page,
+!      gint            index,
+       gpointer        data)
+  {
+      if (!ignore_tabline_evt)
+      {
+!      if (send_tabline_event(index + 1) && gtk_main_level() > 0)
+           gtk_main_quit();
+      }
+  }
+--- 3233,3244 ----
+  on_select_tab(
+       GtkNotebook     *notebook,
+       GtkNotebookPage *page,
+!      gint            idx,
+       gpointer        data)
+  {
+      if (!ignore_tabline_evt)
+      {
+!      if (send_tabline_event(idx + 1) && gtk_main_level() > 0)
+           gtk_main_quit();
+      }
+  }
+***************
+*** 5303,5315 ****
+  # ifdef HAVE_GTK2
+      if (font != NOFONT)
+      {
+!      char    *name = pango_font_description_to_string(font);
+  
+!      if (name != NULL)
+       {
+!          char_u      *s = vim_strsave((char_u *)name);
+  
+!          g_free(name);
+           return s;
+       }
+      }
+--- 5303,5315 ----
+  # ifdef HAVE_GTK2
+      if (font != NOFONT)
+      {
+!      char    *pangoname = pango_font_description_to_string(font);
+  
+!      if (pangoname != NULL)
+       {
+!          char_u      *s = vim_strsave((char_u *)pangoname);
+  
+!          g_free(pangoname);
+           return s;
+       }
+      }
+***************
+*** 6241,6264 ****
+  {
+      GdkGCValues values;
+      GdkGC *invert_gc;
+-     GdkColor foreground;
+-     GdkColor background;
+  
+      if (gui.drawarea->window == NULL)
+       return;
+  
+!     foreground.pixel = gui.norm_pixel ^ gui.back_pixel;
+!     background.pixel = gui.norm_pixel ^ gui.back_pixel;
+! 
+!     values.foreground = foreground;
+!     values.background = background;
+      values.function = GDK_XOR;
+      invert_gc = gdk_gc_new_with_values(gui.drawarea->window,
+                                      &values,
+                                      GDK_GC_FOREGROUND |
+                                      GDK_GC_BACKGROUND |
+                                      GDK_GC_FUNCTION);
+!     gdk_gc_set_exposures(invert_gc, gui.visibility != GDK_VISIBILITY_UNOBSCURED);
+      gdk_draw_rectangle(gui.drawarea->window, invert_gc,
+                      TRUE,
+                      FILL_X(c), FILL_Y(r),
+--- 6241,6260 ----
+  {
+      GdkGCValues values;
+      GdkGC *invert_gc;
+  
+      if (gui.drawarea->window == NULL)
+       return;
+  
+!     values.foreground.pixel = gui.norm_pixel ^ gui.back_pixel;
+!     values.background.pixel = gui.norm_pixel ^ gui.back_pixel;
+      values.function = GDK_XOR;
+      invert_gc = gdk_gc_new_with_values(gui.drawarea->window,
+                                      &values,
+                                      GDK_GC_FOREGROUND |
+                                      GDK_GC_BACKGROUND |
+                                      GDK_GC_FUNCTION);
+!     gdk_gc_set_exposures(invert_gc, gui.visibility !=
+!                                                 GDK_VISIBILITY_UNOBSCURED);
+      gdk_draw_rectangle(gui.drawarea->window, invert_gc,
+                      TRUE,
+                      FILL_X(c), FILL_Y(r),
+*** ../vim-7.0.069/src/hardcopy.c      Thu May  4 23:53:57 2006
+--- src/hardcopy.c     Thu Aug 24 22:04:32 2006
+***************
+*** 1794,1822 ****
+      static int
+  prt_resfile_next_line()
+  {
+!     int     index;
+  
+      /* Move to start of next line and then find end of line */
+!     index = prt_resfile.line_end + 1;
+!     while (index < prt_resfile.len)
+      {
+!      if (prt_resfile.buffer[index] != PSLF && prt_resfile.buffer[index]
+!                                                                      != PSCR)
+           break;
+!      index++;
+      }
+!     prt_resfile.line_start = index;
+  
+!     while (index < prt_resfile.len)
+      {
+!      if (prt_resfile.buffer[index] == PSLF || prt_resfile.buffer[index]
+!                                                                      == PSCR)
+           break;
+!      index++;
+      }
+!     prt_resfile.line_end = index;
+  
+!     return (index < prt_resfile.len);
+  }
+  
+      static int
+--- 1794,1820 ----
+      static int
+  prt_resfile_next_line()
+  {
+!     int     idx;
+  
+      /* Move to start of next line and then find end of line */
+!     idx = prt_resfile.line_end + 1;
+!     while (idx < prt_resfile.len)
+      {
+!      if (prt_resfile.buffer[idx] != PSLF && prt_resfile.buffer[idx] != PSCR)
+           break;
+!      idx++;
+      }
+!     prt_resfile.line_start = idx;
+  
+!     while (idx < prt_resfile.len)
+      {
+!      if (prt_resfile.buffer[idx] == PSLF || prt_resfile.buffer[idx] == PSCR)
+           break;
+!      idx++;
+      }
+!     prt_resfile.line_end = idx;
+  
+!     return (idx < prt_resfile.len);
+  }
+  
+      static int
+***************
+*** 1837,1850 ****
+  prt_resfile_skip_nonws(offset)
+      int     offset;
+  {
+!     int     index;
+  
+!     index = prt_resfile.line_start + offset;
+!     while (index < prt_resfile.line_end)
+      {
+!      if (isspace(prt_resfile.buffer[index]))
+!          return index - prt_resfile.line_start;
+!      index++;
+      }
+      return -1;
+  }
+--- 1835,1848 ----
+  prt_resfile_skip_nonws(offset)
+      int     offset;
+  {
+!     int     idx;
+  
+!     idx = prt_resfile.line_start + offset;
+!     while (idx < prt_resfile.line_end)
+      {
+!      if (isspace(prt_resfile.buffer[idx]))
+!          return idx - prt_resfile.line_start;
+!      idx++;
+      }
+      return -1;
+  }
+***************
+*** 1853,1866 ****
+  prt_resfile_skip_ws(offset)
+      int     offset;
+  {
+!     int     index;
+  
+!     index = prt_resfile.line_start + offset;
+!     while (index < prt_resfile.line_end)
+      {
+!      if (!isspace(prt_resfile.buffer[index]))
+!          return index - prt_resfile.line_start;
+!      index++;
+      }
+      return -1;
+  }
+--- 1851,1864 ----
+  prt_resfile_skip_ws(offset)
+      int     offset;
+  {
+!     int     idx;
+  
+!     idx = prt_resfile.line_start + offset;
+!     while (idx < prt_resfile.line_end)
+      {
+!      if (!isspace(prt_resfile.buffer[idx]))
+!          return idx - prt_resfile.line_start;
+!      idx++;
+      }
+      return -1;
+  }
+***************
+*** 2478,2484 ****
+      char_u   *p_encoding;
+      struct prt_ps_encoding_S *p_mbenc;
+      struct prt_ps_encoding_S *p_mbenc_first;
+!     struct prt_ps_charset_S  *p_mbchar;
+  #endif
+  
+  #if 0
+--- 2476,2482 ----
+      char_u   *p_encoding;
+      struct prt_ps_encoding_S *p_mbenc;
+      struct prt_ps_encoding_S *p_mbenc_first;
+!     struct prt_ps_charset_S  *p_mbchar = NULL;
+  #endif
+  
+  #if 0
+***************
+*** 2516,2522 ****
+      if (!(props & ENC_8BIT) && ((*p_pmcs != NUL) || !(props & ENC_UNICODE)))
+      {
+       p_mbenc_first = NULL;
+-      p_mbchar = NULL;
+       for (cmap = 0; cmap < NUM_ELEMENTS(prt_ps_mbfonts); cmap++)
+           if (prt_match_encoding((char *)p_encoding, &prt_ps_mbfonts[cmap],
+                                                                   &p_mbenc))
+--- 2514,2519 ----
+*** ../vim-7.0.069/src/if_cscope.c     Tue Apr 18 23:49:18 2006
+--- src/if_cscope.c    Sat Jul  8 22:34:46 2006
+***************
+*** 989,996 ****
+  {
+      int i;
+      char *cmd;
+!     char **matches, **contexts;
+!     int nummatches[CSCOPE_MAX_CONNECTIONS], totmatches, matched;
+  #ifdef FEAT_QUICKFIX
+      char cmdletter;
+      char *qfpos;
+--- 989,995 ----
+  {
+      int i;
+      char *cmd;
+!     int nummatches[CSCOPE_MAX_CONNECTIONS], totmatches;
+  #ifdef FEAT_QUICKFIX
+      char cmdletter;
+      char *qfpos;
+***************
+*** 1141,1146 ****
+--- 1140,1148 ----
+      else
+  #endif /* FEAT_QUICKFIX */
+      {
++      char **matches = NULL, **contexts = NULL;
++      int matched = 0;
++ 
+       /* read output */
+       cs_fill_results((char *)pat, totmatches, nummatches, &matches,
+                                                        &contexts, &matched);
+*** ../vim-7.0.069/src/main.c  Tue Aug 15 21:42:17 2006
+--- src/main.c Thu Aug 24 22:05:09 2006
+***************
+*** 2285,2291 ****
+      mparm_T  *parmp;
+  {
+  #ifdef FEAT_WINDOWS
+!     int              rewind;
+      int              done = 0;
+  
+      /*
+--- 2285,2291 ----
+      mparm_T  *parmp;
+  {
+  #ifdef FEAT_WINDOWS
+!     int              dorewind;
+      int              done = 0;
+  
+      /*
+***************
+*** 2342,2351 ****
+       ++autocmd_no_leave;
+  #endif
+  #ifdef FEAT_WINDOWS
+!      rewind = TRUE;
+       while (done++ < 1000)
+       {
+!          if (rewind)
+           {
+               if (parmp->window_layout == WIN_TABS)
+                   goto_tabpage(1);
+--- 2342,2351 ----
+       ++autocmd_no_leave;
+  #endif
+  #ifdef FEAT_WINDOWS
+!      dorewind = TRUE;
+       while (done++ < 1000)
+       {
+!          if (dorewind)
+           {
+               if (parmp->window_layout == WIN_TABS)
+                   goto_tabpage(1);
+***************
+*** 2364,2370 ****
+                   break;
+               curwin = curwin->w_next;
+           }
+!          rewind = FALSE;
+  #endif
+           curbuf = curwin->w_buffer;
+           if (curbuf->b_ml.ml_mfp == NULL)
+--- 2364,2370 ----
+                   break;
+               curwin = curwin->w_next;
+           }
+!          dorewind = FALSE;
+  #endif
+           curbuf = curwin->w_buffer;
+           if (curbuf->b_ml.ml_mfp == NULL)
+***************
+*** 2385,2391 ****
+               check_swap_exists_action();
+  #endif
+  #ifdef FEAT_AUTOCMD
+!              rewind = TRUE;          /* start again */
+  #endif
+           }
+  #ifdef FEAT_WINDOWS
+--- 2385,2391 ----
+               check_swap_exists_action();
+  #endif
+  #ifdef FEAT_AUTOCMD
+!              dorewind = TRUE;                /* start again */
+  #endif
+           }
+  #ifdef FEAT_WINDOWS
+*** ../vim-7.0.069/src/mbyte.c Tue Aug 29 16:10:54 2006
+--- src/mbyte.c        Tue Aug 29 14:41:45 2006
+***************
+*** 3861,3873 ****
+  
+      if (preedit_string != NULL && attr_list != NULL)
+      {
+!      int index;
+  
+       /* Get the byte index as used by PangoAttrIterator */
+!      for (index = 0; col > 0 && preedit_string[index] != '\0'; --col)
+!          index += utfc_ptr2len((char_u *)preedit_string + index);
+  
+!      if (preedit_string[index] != '\0')
+       {
+           PangoAttrIterator   *iter;
+           int                 start, end;
+--- 3861,3873 ----
+  
+      if (preedit_string != NULL && attr_list != NULL)
+      {
+!      int idx;
+  
+       /* Get the byte index as used by PangoAttrIterator */
+!      for (idx = 0; col > 0 && preedit_string[idx] != '\0'; --col)
+!          idx += utfc_ptr2len((char_u *)preedit_string + idx);
+  
+!      if (preedit_string[idx] != '\0')
+       {
+           PangoAttrIterator   *iter;
+           int                 start, end;
+***************
+*** 3880,3886 ****
+           {
+               pango_attr_iterator_range(iter, &start, &end);
+  
+!              if (index >= start && index < end)
+                   char_attr |= translate_pango_attributes(iter);
+           }
+           while (pango_attr_iterator_next(iter));
+--- 3880,3886 ----
+           {
+               pango_attr_iterator_range(iter, &start, &end);
+  
+!              if (idx >= start && idx < end)
+                   char_attr |= translate_pango_attributes(iter);
+           }
+           while (pango_attr_iterator_next(iter));
+*** ../vim-7.0.069/src/memline.c       Fri Apr 21 00:16:47 2006
+--- src/memline.c      Thu Aug 24 22:06:17 2006
+***************
+*** 215,221 ****
+  #define ML_FLUSH     0x02        /* flush locked block */
+  #define ML_SIMPLE(x) (x & 0x10)  /* DEL, INS or FIND */
+  
+! static void ml_upd_block0 __ARGS((buf_T *buf, int setfname));
+  static void set_b0_fname __ARGS((ZERO_BL *, buf_T *buf));
+  static void set_b0_dir_flag __ARGS((ZERO_BL *b0p, buf_T *buf));
+  #ifdef FEAT_MBYTE
+--- 215,221 ----
+  #define ML_FLUSH     0x02        /* flush locked block */
+  #define ML_SIMPLE(x) (x & 0x10)  /* DEL, INS or FIND */
+  
+! static void ml_upd_block0 __ARGS((buf_T *buf, int set_fname));
+  static void set_b0_fname __ARGS((ZERO_BL *, buf_T *buf));
+  static void set_b0_dir_flag __ARGS((ZERO_BL *b0p, buf_T *buf));
+  #ifdef FEAT_MBYTE
+***************
+*** 679,687 ****
+   * Update the timestamp or the B0_SAME_DIR flag of the .swp file.
+   */
+      static void
+! ml_upd_block0(buf, setfname)
+      buf_T    *buf;
+!     int              setfname;
+  {
+      memfile_T        *mfp;
+      bhdr_T   *hp;
+--- 679,687 ----
+   * Update the timestamp or the B0_SAME_DIR flag of the .swp file.
+   */
+      static void
+! ml_upd_block0(buf, set_fname)
+      buf_T    *buf;
+!     int              set_fname;
+  {
+      memfile_T        *mfp;
+      bhdr_T   *hp;
+***************
+*** 695,701 ****
+       EMSG(_("E304: ml_upd_block0(): Didn't get block 0??"));
+      else
+      {
+!      if (setfname)
+           set_b0_fname(b0p, buf);
+       else
+           set_b0_dir_flag(b0p, buf);
+--- 695,701 ----
+       EMSG(_("E304: ml_upd_block0(): Didn't get block 0??"));
+      else
+      {
+!      if (set_fname)
+           set_b0_fname(b0p, buf);
+       else
+           set_b0_dir_flag(b0p, buf);
+*** ../vim-7.0.069/src/netbeans.c      Tue Aug  8 21:36:15 2006
+--- src/netbeans.c     Thu Aug 24 22:42:09 2006
+***************
+*** 103,109 ****
+  static int  inputHandler = -1;               /* simply ret.value of WSAAsyncSelect() */
+  extern HWND s_hwnd;                  /* Gvim's Window handle */
+  #endif
+! static int cmdno;                    /* current command number for reply */
+  static int haveConnection = FALSE;   /* socket is connected and
+                                          initialization is done */
+  #ifdef FEAT_GUI_MOTIF
+--- 103,109 ----
+  static int  inputHandler = -1;               /* simply ret.value of WSAAsyncSelect() */
+  extern HWND s_hwnd;                  /* Gvim's Window handle */
+  #endif
+! static int r_cmdno;                  /* current command number for reply */
+  static int haveConnection = FALSE;   /* socket is connected and
+                                          initialization is done */
+  #ifdef FEAT_GUI_MOTIF
+***************
+*** 832,842 ****
+       return;
+      }
+  
+!     cmdno = strtol(q, &q, 10);
+  
+      q = (char *)skipwhite((char_u *)q);
+  
+!     if (nb_do_cmd(bufno, (char_u *)verb, isfunc, cmdno, (char_u *)q) == FAIL)
+      {
+  #ifdef NBDEBUG
+       /*
+--- 832,842 ----
+       return;
+      }
+  
+!     r_cmdno = strtol(q, &q, 10);
+  
+      q = (char *)skipwhite((char_u *)q);
+  
+!     if (nb_do_cmd(bufno, (char_u *)verb, isfunc, r_cmdno, (char_u *)q) == FAIL)
+      {
+  #ifdef NBDEBUG
+       /*
+***************
+*** 1008,1018 ****
+       if (netbeansForcedQuit)
+       {
+           /* mark as unmodified so NetBeans won't put up dialog on "killed" */
+!          sprintf(buf, "%d:unmodified=%d\n", i, cmdno);
+           nbdebug(("EVT: %s", buf));
+           nb_send(buf, "netbeans_end");
+       }
+!      sprintf(buf, "%d:killed=%d\n", i, cmdno);
+       nbdebug(("EVT: %s", buf));
+  /*   nb_send(buf, "netbeans_end");    avoid "write failed" messages */
+       if (sd >= 0)
+--- 1008,1018 ----
+       if (netbeansForcedQuit)
+       {
+           /* mark as unmodified so NetBeans won't put up dialog on "killed" */
+!          sprintf(buf, "%d:unmodified=%d\n", i, r_cmdno);
+           nbdebug(("EVT: %s", buf));
+           nb_send(buf, "netbeans_end");
+       }
+!      sprintf(buf, "%d:killed=%d\n", i, r_cmdno);
+       nbdebug(("EVT: %s", buf));
+  /*   nb_send(buf, "netbeans_end");    avoid "write failed" messages */
+       if (sd >= 0)
+***************
+*** 2563,2569 ****
+           if (p != NULL)
+           {
+               vim_snprintf(buf, sizeof(buf),
+!                                     "0:balloonText=%d \"%s\"\n", cmdno, p);
+               vim_free(p);
+           }
+           nbdebug(("EVT: %s", buf));
+--- 2563,2569 ----
+           if (p != NULL)
+           {
+               vim_snprintf(buf, sizeof(buf),
+!                                     "0:balloonText=%d \"%s\"\n", r_cmdno, p);
+               vim_free(p);
+           }
+           nbdebug(("EVT: %s", buf));
+***************
+*** 2617,2623 ****
+  
+      if (haveConnection)
+      {
+!      sprintf(buf, "0:disconnect=%d\n", cmdno);
+       nbdebug(("EVT: %s", buf));
+       nb_send(buf, "netbeans_disconnect");
+      }
+--- 2617,2623 ----
+  
+      if (haveConnection)
+      {
+!      sprintf(buf, "0:disconnect=%d\n", r_cmdno);
+       nbdebug(("EVT: %s", buf));
+       nb_send(buf, "netbeans_disconnect");
+      }
+***************
+*** 2636,2642 ****
+       return;
+  
+      sprintf(buf, "0:geometry=%d %d %d %d %d\n",
+!                  cmdno, (int)Columns, (int)Rows, new_x, new_y);
+      /*nbdebug(("EVT: %s", buf)); happens too many times during a move */
+      nb_send(buf, "netbeans_frame_moved");
+  }
+--- 2636,2642 ----
+       return;
+  
+      sprintf(buf, "0:geometry=%d %d %d %d %d\n",
+!                  r_cmdno, (int)Columns, (int)Rows, new_x, new_y);
+      /*nbdebug(("EVT: %s", buf)); happens too many times during a move */
+      nb_send(buf, "netbeans_frame_moved");
+  }
+***************
+*** 2745,2751 ****
+      if (bufno <= 0)
+       return;
+  
+!     sprintf(buffer, "%d:killed=%d\n", bufno, cmdno);
+  
+      nbdebug(("EVT: %s", buffer));
+  
+--- 2745,2751 ----
+      if (bufno <= 0)
+       return;
+  
+!     sprintf(buffer, "%d:killed=%d\n", bufno, r_cmdno);
+  
+      nbdebug(("EVT: %s", buffer));
+  
+***************
+*** 2819,2825 ****
+      if (p != NULL)
+      {
+       buf = alloc(128 + 2*newlen);
+!      sprintf((char *)buf, "%d:insert=%d %ld \"%s\"\n", bufno, cmdno, off, p);
+       nbdebug(("EVT: %s", buf));
+       nb_send((char *)buf, "netbeans_inserted");
+       vim_free(p);
+--- 2819,2826 ----
+      if (p != NULL)
+      {
+       buf = alloc(128 + 2*newlen);
+!      sprintf((char *)buf, "%d:insert=%d %ld \"%s\"\n",
+!                                                    bufno, r_cmdno, off, p);
+       nbdebug(("EVT: %s", buf));
+       nb_send((char *)buf, "netbeans_inserted");
+       vim_free(p);
+***************
+*** 2861,2867 ****
+  
+      off = pos2off(bufp, &pos);
+  
+!     sprintf((char *)buf, "%d:remove=%d %ld %ld\n", bufno, cmdno, off, len);
+      nbdebug(("EVT: %s", buf));
+      nb_send((char *)buf, "netbeans_removed");
+  }
+--- 2862,2868 ----
+  
+      off = pos2off(bufp, &pos);
+  
+!     sprintf((char *)buf, "%d:remove=%d %ld %ld\n", bufno, r_cmdno, off, len);
+      nbdebug(("EVT: %s", buf));
+      nb_send((char *)buf, "netbeans_removed");
+  }
+***************
+*** 2886,2892 ****
+  
+      nbbuf->modified = 0;
+  
+!     sprintf((char *)buf, "%d:unmodified=%d\n", bufno, cmdno);
+      nbdebug(("EVT: %s", buf));
+      nb_send((char *)buf, "netbeans_unmodified");
+  #endif
+--- 2887,2893 ----
+  
+      nbbuf->modified = 0;
+  
+!     sprintf((char *)buf, "%d:unmodified=%d\n", bufno, r_cmdno);
+      nbdebug(("EVT: %s", buf));
+      nb_send((char *)buf, "netbeans_unmodified");
+  #endif
+***************
+*** 2910,2920 ****
+       long off = pos2off(curbuf, &curwin->w_cursor);
+  
+       /* sync the cursor position */
+!      sprintf(buf, "%d:newDotAndMark=%d %ld %ld\n", bufno, cmdno, off, off);
+       nbdebug(("EVT: %s", buf));
+       nb_send(buf, "netbeans_button_release[newDotAndMark]");
+  
+!      sprintf(buf, "%d:buttonRelease=%d %d %ld %d\n", bufno, cmdno,
+                                   button, (long)curwin->w_cursor.lnum, col);
+       nbdebug(("EVT: %s", buf));
+       nb_send(buf, "netbeans_button_release");
+--- 2911,2921 ----
+       long off = pos2off(curbuf, &curwin->w_cursor);
+  
+       /* sync the cursor position */
+!      sprintf(buf, "%d:newDotAndMark=%d %ld %ld\n", bufno, r_cmdno, off, off);
+       nbdebug(("EVT: %s", buf));
+       nb_send(buf, "netbeans_button_release[newDotAndMark]");
+  
+!      sprintf(buf, "%d:buttonRelease=%d %d %ld %d\n", bufno, r_cmdno,
+                                   button, (long)curwin->w_cursor.lnum, col);
+       nbdebug(("EVT: %s", buf));
+       nb_send(buf, "netbeans_button_release");
+***************
+*** 2975,2981 ****
+  
+      /* sync the cursor position */
+      off = pos2off(curbuf, &curwin->w_cursor);
+!     sprintf(buf, "%d:newDotAndMark=%d %ld %ld\n", bufno, cmdno, off, off);
+      nbdebug(("EVT: %s", buf));
+      nb_send(buf, "netbeans_keycommand");
+  
+--- 2976,2982 ----
+  
+      /* sync the cursor position */
+      off = pos2off(curbuf, &curwin->w_cursor);
+!     sprintf(buf, "%d:newDotAndMark=%d %ld %ld\n", bufno, r_cmdno, off, off);
+      nbdebug(("EVT: %s", buf));
+      nb_send(buf, "netbeans_keycommand");
+  
+***************
+*** 2986,2998 ****
+  
+      /* now send keyCommand event */
+      vim_snprintf(buf, sizeof(buf), "%d:keyCommand=%d \"%s\"\n",
+!                                                     bufno, cmdno, keyName);
+      nbdebug(("EVT: %s", buf));
+      nb_send(buf, "netbeans_keycommand");
+  
+      /* New: do both at once and include the lnum/col. */
+      vim_snprintf(buf, sizeof(buf), "%d:keyAtPos=%d \"%s\" %ld %ld/%ld\n",
+!          bufno, cmdno, keyName,
+               off, (long)curwin->w_cursor.lnum, (long)curwin->w_cursor.col);
+      nbdebug(("EVT: %s", buf));
+      nb_send(buf, "netbeans_keycommand");
+--- 2987,2999 ----
+  
+      /* now send keyCommand event */
+      vim_snprintf(buf, sizeof(buf), "%d:keyCommand=%d \"%s\"\n",
+!                                                   bufno, r_cmdno, keyName);
+      nbdebug(("EVT: %s", buf));
+      nb_send(buf, "netbeans_keycommand");
+  
+      /* New: do both at once and include the lnum/col. */
+      vim_snprintf(buf, sizeof(buf), "%d:keyAtPos=%d \"%s\" %ld %ld/%ld\n",
+!          bufno, r_cmdno, keyName,
+               off, (long)curwin->w_cursor.lnum, (long)curwin->w_cursor.col);
+      nbdebug(("EVT: %s", buf));
+      nb_send(buf, "netbeans_keycommand");
+***************
+*** 3015,3021 ****
+  
+      nbbuf->modified = 0;
+  
+!     sprintf((char *)buf, "%d:save=%d\n", bufno, cmdno);
+      nbdebug(("EVT: %s", buf));
+      nb_send((char *)buf, "netbeans_save_buffer");
+  }
+--- 3016,3022 ----
+  
+      nbbuf->modified = 0;
+  
+!     sprintf((char *)buf, "%d:save=%d\n", bufno, r_cmdno);
+      nbdebug(("EVT: %s", buf));
+      nb_send((char *)buf, "netbeans_save_buffer");
+  }
+***************
+*** 3039,3045 ****
+      if (nbbuf->insertDone)
+       nbbuf->modified = 1;
+  
+!     sprintf((char *)buf, "%d:remove=%d 0 -1\n", bufno, cmdno);
+      nbdebug(("EVT(suppressed): %s", buf));
+  /*     nb_send(buf, "netbeans_deleted_all_lines"); */
+  }
+--- 3040,3046 ----
+      if (nbbuf->insertDone)
+       nbbuf->modified = 1;
+  
+!     sprintf((char *)buf, "%d:remove=%d 0 -1\n", bufno, r_cmdno);
+      nbdebug(("EVT(suppressed): %s", buf));
+  /*     nb_send(buf, "netbeans_deleted_all_lines"); */
+  }
+*** ../vim-7.0.069/src/normal.c        Wed Aug 16 21:42:34 2006
+--- src/normal.c       Thu Aug 24 22:17:37 2006
+***************
+*** 4127,4133 ****
+      int              save_p_ws;
+      int              save_p_scs;
+      int              retval = OK;
+!     int              incl;
+  
+      if ((pat = alloc(len + 7)) == NULL)
+       return FAIL;
+--- 4127,4133 ----
+      int              save_p_ws;
+      int              save_p_scs;
+      int              retval = OK;
+!     int              incll;
+  
+      if ((pat = alloc(len + 7)) == NULL)
+       return FAIL;
+***************
+*** 4147,4153 ****
+       * With "gd" Search back for the start of the current function, then go
+       * back until a blank line.  If this fails go to line 1.
+       */
+!     if (!locally || !findpar(&incl, BACKWARD, 1L, '{', FALSE))
+      {
+       setpcmark();                    /* Set in findpar() otherwise */
+       curwin->w_cursor.lnum = 1;
+--- 4147,4153 ----
+       * With "gd" Search back for the start of the current function, then go
+       * back until a blank line.  If this fails go to line 1.
+       */
+!     if (!locally || !findpar(&incll, BACKWARD, 1L, '{', FALSE))
+      {
+       setpcmark();                    /* Set in findpar() otherwise */
+       curwin->w_cursor.lnum = 1;
+*** ../vim-7.0.069/src/option.c        Tue Aug  8 16:30:51 2006
+--- src/option.c       Wed Aug 16 21:54:45 2006
+***************
+*** 5268,5312 ****
+      char_u   *s;
+      char_u   **varp;
+      int              both = (opt_flags & (OPT_LOCAL | OPT_GLOBAL)) == 0;
+  
+!     if (opt_idx == -1)               /* use name */
+      {
+!      opt_idx = findoption(name);
+!      if (opt_idx < 0)        /* not found (should not happen) */
+       {
+           EMSG2(_(e_intern2), "set_string_option_direct()");
+           return;
+       }
+      }
+  
+!     if (options[opt_idx].var == NULL)        /* can't set hidden option */
+       return;
+  
+      s = vim_strsave(val);
+      if (s != NULL)
+      {
+!      varp = (char_u **)get_varp_scope(&(options[opt_idx]),
+                                              both ? OPT_LOCAL : opt_flags);
+!      if ((opt_flags & OPT_FREE) && (options[opt_idx].flags & P_ALLOCED))
+           free_string_option(*varp);
+       *varp = s;
+  
+       /* For buffer/window local option may also set the global value. */
+       if (both)
+!          set_string_option_global(opt_idx, varp);
+  
+!      options[opt_idx].flags |= P_ALLOCED;
+  
+       /* When setting both values of a global option with a local value,
+        * make the local value empty, so that the global value is used. */
+!      if (((int)options[opt_idx].indir & PV_BOTH) && both)
+       {
+           free_string_option(*varp);
+           *varp = empty_option;
+       }
+  # ifdef FEAT_EVAL
+       if (set_sid != SID_NONE)
+!          set_option_scriptID_idx(opt_idx, opt_flags,
+                                       set_sid == 0 ? current_SID : set_sid);
+  # endif
+      }
+--- 5268,5313 ----
+      char_u   *s;
+      char_u   **varp;
+      int              both = (opt_flags & (OPT_LOCAL | OPT_GLOBAL)) == 0;
++     int              idx = opt_idx;
+  
+!     if (idx == -1)           /* use name */
+      {
+!      idx = findoption(name);
+!      if (idx < 0)    /* not found (should not happen) */
+       {
+           EMSG2(_(e_intern2), "set_string_option_direct()");
+           return;
+       }
+      }
+  
+!     if (options[idx].var == NULL)    /* can't set hidden option */
+       return;
+  
+      s = vim_strsave(val);
+      if (s != NULL)
+      {
+!      varp = (char_u **)get_varp_scope(&(options[idx]),
+                                              both ? OPT_LOCAL : opt_flags);
+!      if ((opt_flags & OPT_FREE) && (options[idx].flags & P_ALLOCED))
+           free_string_option(*varp);
+       *varp = s;
+  
+       /* For buffer/window local option may also set the global value. */
+       if (both)
+!          set_string_option_global(idx, varp);
+  
+!      options[idx].flags |= P_ALLOCED;
+  
+       /* When setting both values of a global option with a local value,
+        * make the local value empty, so that the global value is used. */
+!      if (((int)options[idx].indir & PV_BOTH) && both)
+       {
+           free_string_option(*varp);
+           *varp = empty_option;
+       }
+  # ifdef FEAT_EVAL
+       if (set_sid != SID_NONE)
+!          set_option_scriptID_idx(idx, opt_flags,
+                                       set_sid == 0 ? current_SID : set_sid);
+  # endif
+      }
+*** ../vim-7.0.069/src/os_unix.c       Thu Jun 22 19:47:11 2006
+--- src/os_unix.c      Thu Aug 24 22:21:56 2006
+***************
+*** 3934,3940 ****
+                   {
+                       linenr_T    lnum = curbuf->b_op_start.lnum;
+                       int         written = 0;
+!                      char_u      *p = ml_get(lnum);
+                       char_u      *s;
+                       size_t      l;
+  
+--- 3934,3940 ----
+                   {
+                       linenr_T    lnum = curbuf->b_op_start.lnum;
+                       int         written = 0;
+!                      char_u      *lp = ml_get(lnum);
+                       char_u      *s;
+                       size_t      l;
+  
+***************
+*** 3942,3958 ****
+                       close(fromshell_fd);
+                       for (;;)
+                       {
+!                          l = STRLEN(p + written);
+                           if (l == 0)
+                               len = 0;
+!                          else if (p[written] == NL)
+                               /* NL -> NUL translation */
+                               len = write(toshell_fd, "", (size_t)1);
+                           else
+                           {
+!                              s = vim_strchr(p + written, NL);
+!                              len = write(toshell_fd, (char *)p + written,
+!                                         s == NULL ? l : s - (p + written));
+                           }
+                           if (len == l)
+                           {
+--- 3942,3958 ----
+                       close(fromshell_fd);
+                       for (;;)
+                       {
+!                          l = STRLEN(lp + written);
+                           if (l == 0)
+                               len = 0;
+!                          else if (lp[written] == NL)
+                               /* NL -> NUL translation */
+                               len = write(toshell_fd, "", (size_t)1);
+                           else
+                           {
+!                              s = vim_strchr(lp + written, NL);
+!                              len = write(toshell_fd, (char *)lp + written,
+!                                         s == NULL ? l : s - (lp + written));
+                           }
+                           if (len == l)
+                           {
+***************
+*** 3973,3979 ****
+                                   toshell_fd = -1;
+                                   break;
+                               }
+!                              p = ml_get(lnum);
+                               written = 0;
+                           }
+                           else if (len > 0)
+--- 3973,3979 ----
+                                   toshell_fd = -1;
+                                   break;
+                               }
+!                              lp = ml_get(lnum);
+                               written = 0;
+                           }
+                           else if (len > 0)
+*** ../vim-7.0.069/src/quickfix.c      Wed Aug 16 19:34:59 2006
+--- src/quickfix.c     Thu Aug 24 22:23:31 2006
+***************
+*** 500,507 ****
+       {
+           if (tv != NULL)
+           {
+-              int len;
+- 
+               if (tv->v_type == VAR_STRING)
+               {
+                   /* Get the next line from the supplied string */
+--- 500,505 ----
+*** ../vim-7.0.069/src/regexp.c        Sun Apr 30 20:38:22 2006
+--- src/regexp.c       Thu Aug 24 22:25:15 2006
+***************
+*** 3912,3918 ****
+               {
+                   colnr_T         start, end;
+                   colnr_T         start2, end2;
+!                  colnr_T         col;
+  
+                   getvvcol(wp, &top, &start, NULL, &end);
+                   getvvcol(wp, &bot, &start2, NULL, &end2);
+--- 3919,3925 ----
+               {
+                   colnr_T         start, end;
+                   colnr_T         start2, end2;
+!                  colnr_T         cols;
+  
+                   getvvcol(wp, &top, &start, NULL, &end);
+                   getvvcol(wp, &bot, &start2, NULL, &end2);
+***************
+*** 3922,3930 ****
+                       end = end2;
+                   if (top.col == MAXCOL || bot.col == MAXCOL)
+                       end = MAXCOL;
+!                  col = win_linetabsize(wp,
+                                     regline, (colnr_T)(reginput - regline));
+!                  if (col < start || col > end - (*p_sel == 'e'))
+                       status = RA_NOMATCH;
+               }
+           }
+--- 3929,3937 ----
+                       end = end2;
+                   if (top.col == MAXCOL || bot.col == MAXCOL)
+                       end = MAXCOL;
+!                  cols = win_linetabsize(wp,
+                                     regline, (colnr_T)(reginput - regline));
+!                  if (cols < start || cols > end - (*p_sel == 'e'))
+                       status = RA_NOMATCH;
+               }
+           }
+***************
+*** 4253,4259 ****
+           {
+               int     i, len;
+               char_u  *opnd;
+!              int     opndc, inpc;
+  
+               opnd = OPERAND(scan);
+               /* Safety check (just in case 'encoding' was changed since
+--- 4260,4266 ----
+           {
+               int     i, len;
+               char_u  *opnd;
+!              int     opndc = 0, inpc;
+  
+               opnd = OPERAND(scan);
+               /* Safety check (just in case 'encoding' was changed since
+*** ../vim-7.0.069/src/screen.c        Tue Jul 11 22:59:04 2006
+--- src/screen.c       Thu Aug 24 22:26:16 2006
+***************
+*** 7099,7105 ****
+      tabpage_T            *tp;
+  #endif
+      static int           entered = FALSE;            /* avoid recursiveness */
+!     static int           did_outofmem_msg = FALSE;   /* did outofmem message */
+  
+      /*
+       * Allocation of the screen buffers is done only when the size changes and
+--- 7099,7105 ----
+      tabpage_T            *tp;
+  #endif
+      static int           entered = FALSE;            /* avoid recursiveness */
+!     static int           done_outofmem_msg = FALSE;  /* did outofmem message */
+  
+      /*
+       * Allocation of the screen buffers is done only when the size changes and
+***************
+*** 7207,7220 ****
+  #endif
+           || outofmem)
+      {
+!      if (ScreenLines != NULL || !did_outofmem_msg)
+       {
+           /* guess the size */
+           do_outofmem_msg((long_u)((Rows + 1) * Columns));
+  
+           /* Remember we did this to avoid getting outofmem messages over
+            * and over again. */
+!          did_outofmem_msg = TRUE;
+       }
+       vim_free(new_ScreenLines);
+       new_ScreenLines = NULL;
+--- 7207,7220 ----
+  #endif
+           || outofmem)
+      {
+!      if (ScreenLines != NULL || !done_outofmem_msg)
+       {
+           /* guess the size */
+           do_outofmem_msg((long_u)((Rows + 1) * Columns));
+  
+           /* Remember we did this to avoid getting outofmem messages over
+            * and over again. */
+!          done_outofmem_msg = TRUE;
+       }
+       vim_free(new_ScreenLines);
+       new_ScreenLines = NULL;
+***************
+*** 7242,7248 ****
+      }
+      else
+      {
+!      did_outofmem_msg = FALSE;
+  
+       for (new_row = 0; new_row < Rows; ++new_row)
+       {
+--- 7242,7248 ----
+      }
+      else
+      {
+!      done_outofmem_msg = FALSE;
+  
+       for (new_row = 0; new_row < Rows; ++new_row)
+       {
+*** ../vim-7.0.069/src/search.c        Tue Aug 29 16:33:23 2006
+--- src/search.c       Tue Aug 29 14:56:15 2006
+***************
+*** 4826,4840 ****
+  
+               if ((compl_cont_status & CONT_ADDING) && i == compl_length)
+               {
+-                  /* get the next line */
+                   /* IOSIZE > compl_length, so the STRNCPY works */
+                   STRNCPY(IObuff, aux, i);
+!                  if (!(     depth < 0
+!                          && lnum < end_lnum
+!                          && (line = ml_get(++lnum)) != NULL)
+!                      && !(   depth >= 0
+!                          && !vim_fgets(line = file_line,
+!                                                   LSIZE, files[depth].fp)))
+                       goto exit_matched;
+  
+                   /* we read a line, set "already" to check this "line" later
+--- 4826,4845 ----
+  
+               if ((compl_cont_status & CONT_ADDING) && i == compl_length)
+               {
+                   /* IOSIZE > compl_length, so the STRNCPY works */
+                   STRNCPY(IObuff, aux, i);
+! 
+!                  /* Get the next line: when "depth" < 0  from the current
+!                   * buffer, otherwise from the included file.  Jump to
+!                   * exit_matched when past the last line. */
+!                  if (depth < 0)
+!                  {
+!                      if (lnum >= end_lnum)
+!                          goto exit_matched;
+!                      line = ml_get(++lnum);
+!                  }
+!                  else if (vim_fgets(line = file_line,
+!                                                    LSIZE, files[depth].fp))
+                       goto exit_matched;
+  
+                   /* we read a line, set "already" to check this "line" later
+*** ../vim-7.0.069/src/spell.c Tue Aug 29 16:33:23 2006
+--- src/spell.c        Tue Aug 29 14:56:26 2006
+***************
+*** 2043,2050 ****
+      int              len;
+  # ifdef FEAT_SYN_HL
+      int              has_syntax = syntax_present(wp->w_buffer);
+-     int              col;
+  # endif
+      int              can_spell;
+      char_u   *buf = NULL;
+      int              buflen = 0;
+--- 2043,2050 ----
+      int              len;
+  # ifdef FEAT_SYN_HL
+      int              has_syntax = syntax_present(wp->w_buffer);
+  # endif
++     int              col;
+      int              can_spell;
+      char_u   *buf = NULL;
+      int              buflen = 0;
+***************
+*** 2093,2101 ****
+           capcol = (int)(skipwhite(line) - line);
+       else if (curline && wp == curwin)
+       {
+-          int     col = (int)(skipwhite(line) - line);
+- 
+           /* For spellbadword(): check if first word needs a capital. */
+           if (check_need_cap(lnum, col))
+               capcol = col;
+  
+--- 2093,2100 ----
+           capcol = (int)(skipwhite(line) - line);
+       else if (curline && wp == curwin)
+       {
+           /* For spellbadword(): check if first word needs a capital. */
++          col = (int)(skipwhite(line) - line);
+           if (check_need_cap(lnum, col))
+               capcol = col;
+  
+***************
+*** 5061,5067 ****
+      int              do_rep;
+      int              do_repsal;
+      int              do_sal;
+!     int              do_map;
+      int              found_map = FALSE;
+      hashitem_T       *hi;
+      int              l;
+--- 5060,5066 ----
+      int              do_rep;
+      int              do_repsal;
+      int              do_sal;
+!     int              do_mapline;
+      int              found_map = FALSE;
+      hashitem_T       *hi;
+      int              l;
+***************
+*** 5099,5105 ****
+      do_sal = spin->si_sal.ga_len == 0;
+  
+      /* Only do MAP lines when not done in another .aff file already. */
+!     do_map = spin->si_map.ga_len == 0;
+  
+      /*
+       * Allocate and init the afffile_T structure.
+--- 5098,5104 ----
+      do_sal = spin->si_sal.ga_len == 0;
+  
+      /* Only do MAP lines when not done in another .aff file already. */
+!     do_mapline = spin->si_map.ga_len == 0;
+  
+      /*
+       * Allocate and init the afffile_T structure.
+***************
+*** 5781,5787 ****
+                       smsg((char_u *)_("Expected MAP count in %s line %d"),
+                                                                fname, lnum);
+               }
+!              else if (do_map)
+               {
+                   int         c;
+  
+--- 5780,5786 ----
+                       smsg((char_u *)_("Expected MAP count in %s line %d"),
+                                                                fname, lnum);
+               }
+!              else if (do_mapline)
+               {
+                   int         c;
+  
+***************
+*** 7508,7514 ****
+  {
+      char_u   *p = p_msm;
+      long     start = 0;
+!     long     inc = 0;
+      long     added = 0;
+  
+      if (!VIM_ISDIGIT(*p))
+--- 7507,7513 ----
+  {
+      char_u   *p = p_msm;
+      long     start = 0;
+!     long     incr = 0;
+      long     added = 0;
+  
+      if (!VIM_ISDIGIT(*p))
+***************
+*** 7520,7526 ****
+      ++p;
+      if (!VIM_ISDIGIT(*p))
+       return FAIL;
+!     inc = (getdigits(&p) * 102) / (SBLOCKSIZE / 10);
+      if (*p != ',')
+       return FAIL;
+      ++p;
+--- 7519,7525 ----
+      ++p;
+      if (!VIM_ISDIGIT(*p))
+       return FAIL;
+!     incr = (getdigits(&p) * 102) / (SBLOCKSIZE / 10);
+      if (*p != ',')
+       return FAIL;
+      ++p;
+***************
+*** 7530,7540 ****
+      if (*p != NUL)
+       return FAIL;
+  
+!     if (start == 0 || inc == 0 || added == 0 || inc > start)
+       return FAIL;
+  
+      compress_start = start;
+!     compress_inc = inc;
+      compress_added = added;
+      return OK;
+  }
+--- 7529,7539 ----
+      if (*p != NUL)
+       return FAIL;
+  
+!     if (start == 0 || incr == 0 || added == 0 || incr > start)
+       return FAIL;
+  
+      compress_start = start;
+!     compress_inc = incr;
+      compress_added = added;
+      return OK;
+  }
+***************
+*** 8292,8305 ****
+   * Returns the number of nodes used.
+   */
+      static int
+! put_node(fd, node, index, regionmask, prefixtree)
+      FILE     *fd;            /* NULL when only counting */
+      wordnode_T       *node;
+!     int              index;
+      int              regionmask;
+      int              prefixtree;     /* TRUE for PREFIXTREE */
+  {
+!     int              newindex = index;
+      int              siblingcount = 0;
+      wordnode_T       *np;
+      int              flags;
+--- 8291,8304 ----
+   * Returns the number of nodes used.
+   */
+      static int
+! put_node(fd, node, idx, regionmask, prefixtree)
+      FILE     *fd;            /* NULL when only counting */
+      wordnode_T       *node;
+!     int              idx;
+      int              regionmask;
+      int              prefixtree;     /* TRUE for PREFIXTREE */
+  {
+!     int              newindex = idx;
+      int              siblingcount = 0;
+      wordnode_T       *np;
+      int              flags;
+***************
+*** 8309,8315 ****
+       return 0;
+  
+      /* Store the index where this node is written. */
+!     node->wn_u1.index = index;
+  
+      /* Count the number of siblings. */
+      for (np = node; np != NULL; np = np->wn_sibling)
+--- 8308,8314 ----
+       return 0;
+  
+      /* Store the index where this node is written. */
+!     node->wn_u1.index = idx;
+  
+      /* Count the number of siblings. */
+      for (np = node; np != NULL; np = np->wn_sibling)
+***************
+*** 9244,9254 ****
+   * Add "word[len]" to 'spellfile' as a good or bad word.
+   */
+      void
+! spell_add_word(word, len, bad, index, undo)
+      char_u   *word;
+      int              len;
+      int              bad;
+!     int              index;      /* "zG" and "zW": zero, otherwise index in
+                              'spellfile' */
+      int              undo;       /* TRUE for "zug", "zuG", "zuw" and "zuW" */
+  {
+--- 9243,9253 ----
+   * Add "word[len]" to 'spellfile' as a good or bad word.
+   */
+      void
+! spell_add_word(word, len, bad, idx, undo)
+      char_u   *word;
+      int              len;
+      int              bad;
+!     int              idx;        /* "zG" and "zW": zero, otherwise index in
+                              'spellfile' */
+      int              undo;       /* TRUE for "zug", "zuG", "zuw" and "zuW" */
+  {
+***************
+*** 9262,9268 ****
+      int              i;
+      char_u   *spf;
+  
+!     if (index == 0)      /* use internal wordlist */
+      {
+       if (int_wordlist == NULL)
+       {
+--- 9261,9267 ----
+      int              i;
+      char_u   *spf;
+  
+!     if (idx == 0)        /* use internal wordlist */
+      {
+       if (int_wordlist == NULL)
+       {
+***************
+*** 9290,9300 ****
+       for (spf = curbuf->b_p_spf, i = 1; *spf != NUL; ++i)
+       {
+           copy_option_part(&spf, fnamebuf, MAXPATHL, ",");
+!          if (i == index)
+               break;
+           if (*spf == NUL)
+           {
+!              EMSGN(_("E765: 'spellfile' does not have %ld entries"), index);
+               return;
+           }
+       }
+--- 9289,9299 ----
+       for (spf = curbuf->b_p_spf, i = 1; *spf != NUL; ++i)
+       {
+           copy_option_part(&spf, fnamebuf, MAXPATHL, ",");
+!          if (i == idx)
+               break;
+           if (*spf == NUL)
+           {
+!              EMSGN(_("E765: 'spellfile' does not have %ld entries"), idx);
+               return;
+           }
+       }
+***************
+*** 13581,13633 ****
+        * the first "the" to itself. */
+       return;
+  
+!     /* Check if the word is already there.  Also check the length that is
+!      * being replaced "thes," -> "these" is a different suggestion from
+!      * "thes" -> "these". */
+!     stp = &SUG(*gap, 0);
+!     for (i = gap->ga_len; --i >= 0; ++stp)
+!      if (stp->st_wordlen == goodlen
+!              && stp->st_orglen == badlen
+!              && STRNCMP(stp->st_word, goodword, goodlen) == 0)
+!      {
+!          /*
+!           * Found it.  Remember the word with the lowest score.
+!           */
+!          if (stp->st_slang == NULL)
+!              stp->st_slang = slang;
+  
+!          new_sug.st_score = score;
+!          new_sug.st_altscore = altscore;
+!          new_sug.st_had_bonus = had_bonus;
+! 
+!          if (stp->st_had_bonus != had_bonus)
+!          {
+!              /* Only one of the two had the soundalike score computed.
+!               * Need to do that for the other one now, otherwise the
+!               * scores can't be compared.  This happens because
+!               * suggest_try_change() doesn't compute the soundalike
+!               * word to keep it fast, while some special methods set
+!               * the soundalike score to zero. */
+!              if (had_bonus)
+!                  rescore_one(su, stp);
+!              else
+!              {
+!                  new_sug.st_word = stp->st_word;
+!                  new_sug.st_wordlen = stp->st_wordlen;
+!                  new_sug.st_slang = stp->st_slang;
+!                  new_sug.st_orglen = badlen;
+!                  rescore_one(su, &new_sug);
+               }
+-          }
+  
+!          if (stp->st_score > new_sug.st_score)
+!          {
+!              stp->st_score = new_sug.st_score;
+!              stp->st_altscore = new_sug.st_altscore;
+!              stp->st_had_bonus = new_sug.st_had_bonus;
+           }
+!          break;
+!      }
+  
+      if (i < 0 && ga_grow(gap, 1) == OK)
+      {
+--- 13580,13637 ----
+        * the first "the" to itself. */
+       return;
+  
+!     if (gap->ga_len == 0)
+!      i = -1;
+!     else
+!     {
+!      /* Check if the word is already there.  Also check the length that is
+!       * being replaced "thes," -> "these" is a different suggestion from
+!       * "thes" -> "these". */
+!      stp = &SUG(*gap, 0);
+!      for (i = gap->ga_len; --i >= 0; ++stp)
+!          if (stp->st_wordlen == goodlen
+!                  && stp->st_orglen == badlen
+!                  && STRNCMP(stp->st_word, goodword, goodlen) == 0)
+!          {
+!              /*
+!               * Found it.  Remember the word with the lowest score.
+!               */
+!              if (stp->st_slang == NULL)
+!                  stp->st_slang = slang;
+  
+!              new_sug.st_score = score;
+!              new_sug.st_altscore = altscore;
+!              new_sug.st_had_bonus = had_bonus;
+! 
+!              if (stp->st_had_bonus != had_bonus)
+!              {
+!                  /* Only one of the two had the soundalike score computed.
+!                   * Need to do that for the other one now, otherwise the
+!                   * scores can't be compared.  This happens because
+!                   * suggest_try_change() doesn't compute the soundalike
+!                   * word to keep it fast, while some special methods set
+!                   * the soundalike score to zero. */
+!                  if (had_bonus)
+!                      rescore_one(su, stp);
+!                  else
+!                  {
+!                      new_sug.st_word = stp->st_word;
+!                      new_sug.st_wordlen = stp->st_wordlen;
+!                      new_sug.st_slang = stp->st_slang;
+!                      new_sug.st_orglen = badlen;
+!                      rescore_one(su, &new_sug);
+!                  }
+               }
+  
+!              if (stp->st_score > new_sug.st_score)
+!              {
+!                  stp->st_score = new_sug.st_score;
+!                  stp->st_altscore = new_sug.st_altscore;
+!                  stp->st_had_bonus = new_sug.st_had_bonus;
+!              }
+!              break;
+           }
+!     }
+  
+      if (i < 0 && ga_grow(gap, 1) == OK)
+      {
+*** ../vim-7.0.069/src/ui.c    Mon Mar 27 23:02:40 2006
+--- src/ui.c   Thu Aug 24 22:31:38 2006
+***************
+*** 1137,1143 ****
+      int              len;
+  #ifdef FEAT_MBYTE
+      char_u   *p;
+-     int              i;
+  #endif
+      int              row1 = clip_star.start.lnum;
+      int              col1 = clip_star.start.col;
+--- 1137,1142 ----
+***************
+*** 1218,1223 ****
+--- 1217,1224 ----
+  #ifdef FEAT_MBYTE
+           if (enc_dbcs != 0)
+           {
++              int     i;
++ 
+               p = ScreenLines + LineOffset[row];
+               for (i = start_col; i < end_col; ++i)
+                   if (enc_dbcs == DBCS_JPNU && p[i] == 0x8e)
+*** ../vim-7.0.069/src/undo.c  Wed Jul 12 21:48:56 2006
+--- src/undo.c Thu Aug 24 22:32:41 2006
+***************
+*** 1187,1193 ****
+      int              did_undo;       /* just did an undo */
+      int              absolute;       /* used ":undo N" */
+  {
+!     char     *msg;
+      u_header_T       *uhp;
+      char_u   msgbuf[80];
+  
+--- 1187,1193 ----
+      int              did_undo;       /* just did an undo */
+      int              absolute;       /* used ":undo N" */
+  {
+!     char     *msgstr;
+      u_header_T       *uhp;
+      char_u   msgbuf[80];
+  
+***************
+*** 1205,1224 ****
+  
+      u_oldcount -= u_newcount;
+      if (u_oldcount == -1)
+!      msg = N_("more line");
+      else if (u_oldcount < 0)
+!      msg = N_("more lines");
+      else if (u_oldcount == 1)
+!      msg = N_("line less");
+      else if (u_oldcount > 1)
+!      msg = N_("fewer lines");
+      else
+      {
+       u_oldcount = u_newcount;
+       if (u_newcount == 1)
+!          msg = N_("change");
+       else
+!          msg = N_("changes");
+      }
+  
+      if (curbuf->b_u_curhead != NULL)
+--- 1205,1224 ----
+  
+      u_oldcount -= u_newcount;
+      if (u_oldcount == -1)
+!      msgstr = N_("more line");
+      else if (u_oldcount < 0)
+!      msgstr = N_("more lines");
+      else if (u_oldcount == 1)
+!      msgstr = N_("line less");
+      else if (u_oldcount > 1)
+!      msgstr = N_("fewer lines");
+      else
+      {
+       u_oldcount = u_newcount;
+       if (u_newcount == 1)
+!          msgstr = N_("change");
+       else
+!          msgstr = N_("changes");
+      }
+  
+      if (curbuf->b_u_curhead != NULL)
+***************
+*** 1244,1250 ****
+  
+      smsg((char_u *)_("%ld %s; %s #%ld  %s"),
+           u_oldcount < 0 ? -u_oldcount : u_oldcount,
+!          _(msg),
+           did_undo ? _("before") : _("after"),
+           uhp == NULL ? 0L : uhp->uh_seq,
+           msgbuf);
+--- 1244,1250 ----
+  
+      smsg((char_u *)_("%ld %s; %s #%ld  %s"),
+           u_oldcount < 0 ? -u_oldcount : u_oldcount,
+!          _(msgstr),
+           did_undo ? _("before") : _("after"),
+           uhp == NULL ? 0L : uhp->uh_seq,
+           msgbuf);
+*** ../vim-7.0.069/src/window.c        Sat May  6 23:37:40 2006
+--- src/window.c       Thu Aug 24 22:33:40 2006
+***************
+*** 340,349 ****
+               {
+                   tabpage_T   *oldtab = curtab;
+                   tabpage_T   *newtab;
+-                  win_T       *wp = curwin;
+  
+                   /* First create a new tab with the window, then go back to
+                    * the old tab and close the window there. */
+                   if (win_new_tabpage((int)Prenum) == OK
+                                                    && valid_tabpage(oldtab))
+                   {
+--- 340,349 ----
+               {
+                   tabpage_T   *oldtab = curtab;
+                   tabpage_T   *newtab;
+  
+                   /* First create a new tab with the window, then go back to
+                    * the old tab and close the window there. */
++                  wp = curwin;
+                   if (win_new_tabpage((int)Prenum) == OK
+                                                    && valid_tabpage(oldtab))
+                   {
+*** ../vim-7.0.069/src/version.c       Tue Aug 29 16:52:01 2006
+--- src/version.c      Tue Aug 29 17:02:00 2006
+***************
+*** 668,669 ****
+--- 668,671 ----
+  {   /* Add new patch number below this line */
++ /**/
++     70,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+267. You get an extra phone line so you can get phone calls.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.0.071 b/7.0.071
new file mode 100644 (file)
index 0000000..a240429
--- /dev/null
+++ b/7.0.071
@@ -0,0 +1,52 @@
+To: vim-dev@vim.org
+Subject: Patch 7.0.071
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.0.071
+Problem:    Using an empty search pattern may cause a crash.
+Solution:   Avoid using a NULL pointer.
+Files:     src/search.c
+
+
+*** ../vim-7.0.070/src/search.c        Tue Aug 29 17:28:56 2006
+--- src/search.c       Tue Aug 29 14:56:15 2006
+***************
+*** 1259,1265 ****
+       /*
+        * Add character and/or line offset
+        */
+!      if (!(options & SEARCH_NOOF) || *pat == ';')
+       {
+           if (spats[0].off.line)      /* Add the offset to the line number. */
+           {
+--- 1259,1265 ----
+       /*
+        * Add character and/or line offset
+        */
+!      if (!(options & SEARCH_NOOF) || (pat != NULL && *pat == ';'))
+       {
+           if (spats[0].off.line)      /* Add the offset to the line number. */
+           {
+*** ../vim-7.0.070/src/version.c       Tue Aug 29 17:28:56 2006
+--- src/version.c      Tue Aug 29 17:59:24 2006
+***************
+*** 668,669 ****
+--- 668,671 ----
+  {   /* Add new patch number below this line */
++ /**/
++     71,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+268. You get up in the morning and go online before getting your coffee.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.0.072 b/7.0.072
new file mode 100644 (file)
index 0000000..8fb9a27
--- /dev/null
+++ b/7.0.072
@@ -0,0 +1,83 @@
+To: vim-dev@vim.org
+Subject: Patch 7.0.072
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.0.072
+Problem:    When starting the GUI fails there is no way to adjust settings or
+           do something else.
+Solution:   Add the GUIFailed autocommand event.
+Files:     src/fileio.c, src/gui.c, src/vim.h
+
+
+*** ../vim-7.0.071/src/fileio.c        Wed Aug 16 19:34:59 2006
+--- src/fileio.c       Tue Aug 29 10:11:35 2006
+***************
+*** 6980,6985 ****
+--- 6980,6986 ----
+      {"FocusLost",    EVENT_FOCUSLOST},
+      {"FuncUndefined",        EVENT_FUNCUNDEFINED},
+      {"GUIEnter",     EVENT_GUIENTER},
++     {"GUIFailed",    EVENT_GUIFAILED},
+      {"InsertChange", EVENT_INSERTCHANGE},
+      {"InsertEnter",  EVENT_INSERTENTER},
+      {"InsertLeave",  EVENT_INSERTLEAVE},
+*** ../vim-7.0.071/src/gui.c   Tue Jun 20 20:39:32 2006
+--- src/gui.c  Tue Aug 29 10:12:32 2006
+***************
+*** 187,195 ****
+  #endif
+  
+  #ifdef FEAT_AUTOCMD
+!     /* If the GUI started successfully, trigger the GUIEnter event */
+!     if (gui.in_use)
+!      apply_autocmds(EVENT_GUIENTER, NULL, NULL, FALSE, curbuf);
+  #endif
+  
+      --recursive;
+--- 187,196 ----
+  #endif
+  
+  #ifdef FEAT_AUTOCMD
+!     /* If the GUI started successfully, trigger the GUIEnter event, otherwise
+!      * the GUIFailed event. */
+!     apply_autocmds(gui.in_use ? EVENT_GUIENTER : EVENT_GUIFAILED,
+!                                                 NULL, NULL, FALSE, curbuf);
+  #endif
+  
+      --recursive;
+*** ../vim-7.0.071/src/vim.h   Fri Jun 23 16:33:41 2006
+--- src/vim.h  Tue Aug 29 10:12:47 2006
+***************
+*** 1120,1125 ****
+--- 1120,1126 ----
+      EVENT_FOCUSGAINED,               /* got the focus */
+      EVENT_FOCUSLOST,         /* lost the focus to another app */
+      EVENT_GUIENTER,          /* after starting the GUI */
++     EVENT_GUIFAILED,         /* after starting the GUI failed */
+      EVENT_INSERTCHANGE,              /* when changing Insert/Replace mode */
+      EVENT_INSERTENTER,               /* when entering Insert mode */
+      EVENT_INSERTLEAVE,               /* when leaving Insert mode */
+*** ../vim-7.0.071/src/version.c       Tue Aug 29 18:01:39 2006
+--- src/version.c      Tue Aug 29 18:15:13 2006
+***************
+*** 668,669 ****
+--- 668,671 ----
+  {   /* Add new patch number below this line */
++ /**/
++     72,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+269. You receive an e-mail from the wife of a deceased president, offering
+     to send you twenty million dollar, and you are not even surprised.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.0.073 b/7.0.073
new file mode 100644 (file)
index 0000000..e7d8c31
--- /dev/null
+++ b/7.0.073
@@ -0,0 +1,50 @@
+To: vim-dev@vim.org
+Subject: Patch 7.0.073
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.0.073
+Problem:    Insert mode completion: Typing <CR> sometimes selects the original
+           text instead of keeping what was typed.  (Justin Constantino)
+Solution:   Don't let <CR> select the original text if there is no popup menu.
+Files:     src/edit.c
+
+
+*** ../vim-7.0.072/src/edit.c  Tue Aug 29 17:28:56 2006
+--- src/edit.c Tue Aug 29 17:40:06 2006
+***************
+*** 3097,3102 ****
+--- 3097,3106 ----
+  
+      /* Show the popup menu with a different set of matches. */
+      ins_compl_show_pum();
++ 
++     /* Don't let Enter select the original text when there is no popup menu. */
++     if (compl_match_array == NULL)
++      compl_enter_selects = FALSE;
+  }
+  
+  /*
+*** ../vim-7.0.072/src/version.c       Tue Aug 29 18:16:37 2006
+--- src/version.c      Tue Aug 29 18:35:33 2006
+***************
+*** 668,669 ****
+--- 668,671 ----
+  {   /* Add new patch number below this line */
++ /**/
++     73,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+269. You wonder how you can make your dustbin produce Sesame Street's
+     Oscar's the Garbage Monster song when you empty it.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.0.075 b/7.0.075
new file mode 100644 (file)
index 0000000..e04be1e
--- /dev/null
+++ b/7.0.075
@@ -0,0 +1,45 @@
+To: vim-dev@vim.org
+Subject: Patch 7.0.075
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.0.075
+Problem:    winsaveview() did not store the actual value of the desired cursor
+           column.  This could move the cursor in the matchparen plugin.
+Solution:   Call update_curswant() before using the value w_curswant.
+Files:     src/eval.c
+
+
+*** ../vim-7.0.074/src/eval.c  Tue Aug 29 17:28:56 2006
+--- src/eval.c Tue Aug 29 21:53:26 2006
+***************
+*** 16232,16237 ****
+--- 16232,16238 ----
+  #ifdef FEAT_VIRTUALEDIT
+      dict_add_nr_str(dict, "coladd", (long)curwin->w_cursor.coladd, NULL);
+  #endif
++     update_curswant();
+      dict_add_nr_str(dict, "curswant", (long)curwin->w_curswant, NULL);
+  
+      dict_add_nr_str(dict, "topline", (long)curwin->w_topline, NULL);
+*** ../vim-7.0.074/src/version.c       Tue Aug 29 21:30:15 2006
+--- src/version.c      Tue Aug 29 21:57:03 2006
+***************
+*** 668,669 ****
+--- 668,671 ----
+  {   /* Add new patch number below this line */
++ /**/
++     75,
+  /**/
+
+-- 
+Women are probably the main cause of free software starvation.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.0.076 b/7.0.076
new file mode 100644 (file)
index 0000000..6244dab
--- /dev/null
+++ b/7.0.076
@@ -0,0 +1,76 @@
+To: vim-dev@vim.org
+Subject: Patch 7.0.076
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.0.076 (after 7.0.010)
+Problem:    Automatic downloading of spell files only works for ftp.
+Solution:   Don't add login and password for non-ftp URLs. (Alexander Patrakov)
+Files:      runtime/autoload/spellfile.vim
+
+
+*** ../vim-7.0.075/runtime/autoload/spellfile.vim      Sat May 13 14:29:16 2006
+--- runtime/autoload/spellfile.vim     Tue Aug 29 22:17:03 2006
+***************
+*** 1,6 ****
+  " Vim script to download a missing spell file
+  " Maintainer:        Bram Moolenaar <Bram@vim.org>
+! " Last Change:       2006 May 10
+  
+  if !exists('g:spellfile_URL')
+    let g:spellfile_URL = 'ftp://ftp.vim.org/pub/vim/runtime/spell'
+--- 1,6 ----
+  " Vim script to download a missing spell file
+  " Maintainer:        Bram Moolenaar <Bram@vim.org>
+! " Last Change:       2006 Aug 29
+  
+  if !exists('g:spellfile_URL')
+    let g:spellfile_URL = 'ftp://ftp.vim.org/pub/vim/runtime/spell'
+***************
+*** 110,118 ****
+    endif
+  endfunc
+  
+! " Read "fname" from the ftp server.
+  function! spellfile#Nread(fname)
+!   let machine = substitute(g:spellfile_URL, 'ftp://\([^/]*\).*', '\1', '')
+!   let dir = substitute(g:spellfile_URL, 'ftp://[^/]*/\(.*\)', '\1', '')
+!   exe 'Nread "' . machine . ' anonymous vim7user ' . dir . '/' . a:fname . '"'
+  endfunc
+--- 110,123 ----
+    endif
+  endfunc
+  
+! " Read "fname" from the server.
+  function! spellfile#Nread(fname)
+!   if g:spellfile_URL =~ '^ftp://'
+!     " for an ftp server use a default login and password to avoid a prompt
+!     let machine = substitute(g:spellfile_URL, 'ftp://\([^/]*\).*', '\1', '')
+!     let dir = substitute(g:spellfile_URL, 'ftp://[^/]*/\(.*\)', '\1', '')
+!     exe 'Nread "' . machine . ' anonymous vim7user ' . dir . '/' . a:fname . '"'
+!   else
+!     exe 'Nread ' g:spellfile_URL . '/' . a:fname
+!   endif
+  endfunc
+*** ../vim-7.0.075/src/version.c       Tue Aug 29 21:59:25 2006
+--- src/version.c      Tue Aug 29 22:31:45 2006
+***************
+*** 668,669 ****
+--- 668,671 ----
+  {   /* Add new patch number below this line */
++ /**/
++     76,
+  /**/
+
+-- 
+This sentence is not sure that it exists, but if it does, it will
+certainly consider the possibility that other sentences exist.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.0.077 b/7.0.077
new file mode 100644 (file)
index 0000000..ffda013
--- /dev/null
+++ b/7.0.077
@@ -0,0 +1,98 @@
+To: vim-dev@vim.org
+Subject: Patch 7.0.077
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.0.077
+Problem:    ":unlet v:this_session" causes a crash. (Marius Roets)
+Solution:   When trying to unlet a fixed variable give an error message.
+Files:     src/eval.c
+
+
+*** ../vim-7.0.076/src/eval.c  Tue Aug 29 21:59:25 2006
+--- src/eval.c Sat Sep  2 13:43:20 2006
+***************
+*** 701,706 ****
+--- 701,707 ----
+  static void list_one_var_a __ARGS((char_u *prefix, char_u *name, int type, char_u *string));
+  static void set_var __ARGS((char_u *name, typval_T *varp, int copy));
+  static int var_check_ro __ARGS((int flags, char_u *name));
++ static int var_check_fixed __ARGS((int flags, char_u *name));
+  static int tv_check_lock __ARGS((int lock, char_u *name));
+  static void copy_tv __ARGS((typval_T *from, typval_T *to));
+  static int item_copy __ARGS((typval_T *from, typval_T *to, int deep, int copyID));
+***************
+*** 3364,3369 ****
+--- 3365,3372 ----
+       hi = hash_find(ht, varname);
+       if (!HASHITEM_EMPTY(hi))
+       {
++          if (var_check_fixed(HI2DI(hi)->di_flags, name))
++              return FAIL;
+           if (var_check_ro(HI2DI(hi)->di_flags, name))
+               return FAIL;
+           delete_var(ht, hi);
+***************
+*** 17818,17824 ****
+  }
+  
+  /*
+!  * Return TRUE if di_flags "flags" indicate read-only variable "name".
+   * Also give an error message.
+   */
+      static int
+--- 17821,17827 ----
+  }
+  
+  /*
+!  * Return TRUE if di_flags "flags" indicates variable "name" is read-only.
+   * Also give an error message.
+   */
+      static int
+***************
+*** 17834,17839 ****
+--- 17837,17859 ----
+      if ((flags & DI_FLAGS_RO_SBX) && sandbox)
+      {
+       EMSG2(_(e_readonlysbx), name);
++      return TRUE;
++     }
++     return FALSE;
++ }
++ 
++ /*
++  * Return TRUE if di_flags "flags" indicates variable "name" is fixed.
++  * Also give an error message.
++  */
++     static int
++ var_check_fixed(flags, name)
++     int              flags;
++     char_u   *name;
++ {
++     if (flags & DI_FLAGS_FIX)
++     {
++      EMSG2(_("E795: Cannot delete variable %s"), name);
+       return TRUE;
+      }
+      return FALSE;
+*** ../vim-7.0.076/src/version.c       Tue Aug 29 22:35:11 2006
+--- src/version.c      Sat Sep  2 13:39:36 2006
+***************
+*** 668,669 ****
+--- 668,671 ----
+  {   /* Add new patch number below this line */
++ /**/
++     77,
+  /**/
+
+-- 
+            ### 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/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.0.078 b/7.0.078
new file mode 100644 (file)
index 0000000..ec47e15
--- /dev/null
+++ b/7.0.078
@@ -0,0 +1,52 @@
+To: vim-dev@vim.org
+Subject: Patch 7.0.078
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.0.078
+Problem:    There are two error messages E46.
+Solution:   Change the number for the sandbox message to E794.
+Files:     src/globals.h
+
+
+*** ../vim-7.0.077/src/globals.h       Sun Apr 30 20:32:38 2006
+--- src/globals.h      Sat Sep  2 13:12:55 2006
+***************
+*** 1441,1447 ****
+  EXTERN char_u e_readonly[]   INIT(= N_("E45: 'readonly' option is set (add ! to override)"));
+  #ifdef FEAT_EVAL
+  EXTERN char_u e_readonlyvar[]        INIT(= N_("E46: Cannot change read-only variable \"%s\""));
+! EXTERN char_u e_readonlysbx[]        INIT(= N_("E46: Cannot set variable in the sandbox: \"%s\""));
+  #endif
+  #ifdef FEAT_QUICKFIX
+  EXTERN char_u e_readerrf[]   INIT(= N_("E47: Error while reading errorfile"));
+--- 1441,1447 ----
+  EXTERN char_u e_readonly[]   INIT(= N_("E45: 'readonly' option is set (add ! to override)"));
+  #ifdef FEAT_EVAL
+  EXTERN char_u e_readonlyvar[]        INIT(= N_("E46: Cannot change read-only variable \"%s\""));
+! EXTERN char_u e_readonlysbx[]        INIT(= N_("E794: Cannot set variable in the sandbox: \"%s\""));
+  #endif
+  #ifdef FEAT_QUICKFIX
+  EXTERN char_u e_readerrf[]   INIT(= N_("E47: Error while reading errorfile"));
+*** ../vim-7.0.077/src/version.c       Sat Sep  2 13:45:01 2006
+--- src/version.c      Sat Sep  2 14:08:12 2006
+***************
+*** 668,669 ****
+--- 668,671 ----
+  {   /* Add new patch number below this line */
++ /**/
++     78,
+  /**/
+
+-- 
+"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/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
This page took 1.137865 seconds and 4 git commands to generate.