]> git.pld-linux.org Git - packages/vim.git/commitdiff
- new auto/th/vim-7_2_444-3
authorAdam Gołębiowski <adamg@pld-linux.org>
Sun, 4 Jul 2010 07:20:26 +0000 (07:20 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    7.2.437 -> 1.1
    7.2.438 -> 1.1
    7.2.439 -> 1.1
    7.2.440 -> 1.1
    7.2.441 -> 1.1
    7.2.442 -> 1.1
    7.2.443 -> 1.1
    7.2.444 -> 1.1

7.2.437 [new file with mode: 0644]
7.2.438 [new file with mode: 0644]
7.2.439 [new file with mode: 0644]
7.2.440 [new file with mode: 0644]
7.2.441 [new file with mode: 0644]
7.2.442 [new file with mode: 0644]
7.2.443 [new file with mode: 0644]
7.2.444 [new file with mode: 0644]

diff --git a/7.2.437 b/7.2.437
new file mode 100644 (file)
index 0000000..547feb6
--- /dev/null
+++ b/7.2.437
@@ -0,0 +1,53 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.437
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.437 (after 7.2.407)
+Problem:    When "\\\n" appears in the expression result the \n doesn't result
+           in a line break. (Andy Wokula)
+Solution:   Also replace a \n after a backslash into \r.
+Files:     src/regexp.c
+
+
+*** ../vim-7.2.436/src/regexp.c        2010-03-23 16:27:15.000000000 +0100
+--- src/regexp.c       2010-05-21 13:06:00.000000000 +0200
+***************
+*** 6974,6979 ****
+--- 6974,6986 ----
+                   else if (*s == '\\' && s[1] != NUL)
+                   {
+                       ++s;
++                      /* Change NL to CR here too, so that this works:
++                       * :s/abc\\\ndef/\="aaa\\\nbbb"/  on text:
++                       *   abc\
++                       *   def
++                       */
++                      if (*s == NL)
++                          *s = CAR;
+                       had_backslash = TRUE;
+                   }
+               }
+*** ../vim-7.2.436/src/version.c       2010-05-16 13:56:01.000000000 +0200
+--- src/version.c      2010-05-21 13:07:50.000000000 +0200
+***************
+*** 683,684 ****
+--- 683,686 ----
+  {   /* Add new patch number below this line */
++ /**/
++     437,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+89. In addition to your e-mail address being on your business
+    cards you even have your own domain.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.438 b/7.2.438
new file mode 100644 (file)
index 0000000..45ddb77
--- /dev/null
+++ b/7.2.438
@@ -0,0 +1,74 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.438
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.438 (after 7.2.427)
+Problem:    "vim -r" crashes.
+Solution:   Don't use NULL pointer argument.
+Files:     src/memline.c
+
+
+*** ../vim-7.2.437/src/memline.c       2010-05-14 17:52:35.000000000 +0200
+--- src/memline.c      2010-05-25 21:36:01.000000000 +0200
+***************
+*** 1404,1418 ****
+      int              i;
+      char_u   *dirp;
+      char_u   *dir_name;
+!     char_u   *fname_res = *fname;
+  #ifdef HAVE_READLINK
+      char_u   fname_buf[MAXPATHL];
+  
+      /* Expand symlink in the file name, because the swap file is created with
+       * the actual file instead of with the symlink. */
+      if (resolve_symlink(*fname, fname_buf) == OK)
+       fname_res = fname_buf;
+  #endif
+  
+      if (list)
+      {
+--- 1404,1425 ----
+      int              i;
+      char_u   *dirp;
+      char_u   *dir_name;
+!     char_u   *fname_res = NULL;
+  #ifdef HAVE_READLINK
+      char_u   fname_buf[MAXPATHL];
++ #endif
+  
++     if (fname != NULL)
++     {
++ #ifdef HAVE_READLINK
+      /* Expand symlink in the file name, because the swap file is created with
+       * the actual file instead of with the symlink. */
+      if (resolve_symlink(*fname, fname_buf) == OK)
+       fname_res = fname_buf;
++     else
+  #endif
++      fname_res = *fname;
++     }
+  
+      if (list)
+      {
+*** ../vim-7.2.437/src/version.c       2010-05-21 13:08:51.000000000 +0200
+--- src/version.c      2010-05-25 21:30:12.000000000 +0200
+***************
+*** 683,684 ****
+--- 683,686 ----
+  {   /* Add new patch number below this line */
++ /**/
++     438,
+  /**/
+
+-- 
+A fool learns from his mistakes, a wise man from someone else's.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.439 b/7.2.439
new file mode 100644 (file)
index 0000000..378bc38
--- /dev/null
+++ b/7.2.439
@@ -0,0 +1,111 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.439
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.439
+Problem:    Invalid memory access when doing thesaurus completion and
+           'infercase' is set.
+Solution:   Use the minimal length of completed word and replacement.
+           (Dominique Pelle)
+Files:     src/edit.c
+
+
+*** ../vim-7.2.438/src/edit.c  2010-03-10 14:15:28.000000000 +0100
+--- src/edit.c 2010-05-28 21:20:29.000000000 +0200
+***************
+*** 2164,2169 ****
+--- 2164,2170 ----
+      int              i, c;
+      int              actual_len;             /* Take multi-byte characters */
+      int              actual_compl_length;    /* into account. */
++     int              min_len;
+      int              *wca;                   /* Wide character array. */
+      int              has_lower = FALSE;
+      int              was_letter = FALSE;
+***************
+*** 2204,2209 ****
+--- 2205,2215 ----
+  #endif
+           actual_compl_length = compl_length;
+  
++      /* "actual_len" may be smaller than "actual_compl_length" when using
++       * thesaurus, only use the minimum when comparing. */
++      min_len = actual_len < actual_compl_length
++                                         ? actual_len : actual_compl_length;
++ 
+       /* Allocate wide character array for the completion and fill it. */
+       wca = (int *)alloc((unsigned)(actual_len * sizeof(int)));
+       if (wca != NULL)
+***************
+*** 2219,2225 ****
+  
+           /* Rule 1: Were any chars converted to lower? */
+           p = compl_orig_text;
+!          for (i = 0; i < actual_compl_length; ++i)
+           {
+  #ifdef FEAT_MBYTE
+               if (has_mbyte)
+--- 2225,2231 ----
+  
+           /* Rule 1: Were any chars converted to lower? */
+           p = compl_orig_text;
+!          for (i = 0; i < min_len; ++i)
+           {
+  #ifdef FEAT_MBYTE
+               if (has_mbyte)
+***************
+*** 2247,2253 ****
+           if (!has_lower)
+           {
+               p = compl_orig_text;
+!              for (i = 0; i < actual_compl_length; ++i)
+               {
+  #ifdef FEAT_MBYTE
+                   if (has_mbyte)
+--- 2253,2259 ----
+           if (!has_lower)
+           {
+               p = compl_orig_text;
+!              for (i = 0; i < min_len; ++i)
+               {
+  #ifdef FEAT_MBYTE
+                   if (has_mbyte)
+***************
+*** 2268,2274 ****
+  
+           /* Copy the original case of the part we typed. */
+           p = compl_orig_text;
+!          for (i = 0; i < actual_compl_length; ++i)
+           {
+  #ifdef FEAT_MBYTE
+               if (has_mbyte)
+--- 2274,2280 ----
+  
+           /* Copy the original case of the part we typed. */
+           p = compl_orig_text;
+!          for (i = 0; i < min_len; ++i)
+           {
+  #ifdef FEAT_MBYTE
+               if (has_mbyte)
+*** ../vim-7.2.438/src/version.c       2010-05-25 21:37:12.000000000 +0200
+--- src/version.c      2010-05-28 21:30:53.000000000 +0200
+***************
+*** 683,684 ****
+--- 683,686 ----
+  {   /* Add new patch number below this line */
++ /**/
++     439,
+  /**/
+
+-- 
+Corduroy pillows: They're making headlines!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.440 b/7.2.440
new file mode 100644 (file)
index 0000000..ee5cc4d
--- /dev/null
+++ b/7.2.440
@@ -0,0 +1,180 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.440
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.440
+Problem:    Calling a function through a funcref, where the function deletes
+           the funcref, leads to an invalid memory access.
+Solution:   Make a copy of the function name. (Lech Lorens)
+Files:     src/eval.c, src/testdir/test34.in, src/testdir/test34.ok
+
+
+*** ../vim-7.2.439/src/eval.c  2010-05-16 13:26:19.000000000 +0200
+--- src/eval.c 2010-05-28 22:01:07.000000000 +0200
+***************
+*** 464,470 ****
+  static int find_internal_func __ARGS((char_u *name));
+  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 int non_zero_arg __ARGS((typval_T *argvars));
+  
+--- 464,470 ----
+  static int find_internal_func __ARGS((char_u *name));
+  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 *func_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 int non_zero_arg __ARGS((typval_T *argvars));
+  
+***************
+*** 7997,8005 ****
+   * Also returns OK when an error was encountered while executing the function.
+   */
+      static int
+! call_func(name, len, rettv, argcount, argvars, firstline, lastline,
+                                               doesrange, evaluate, selfdict)
+!     char_u   *name;          /* name of the function */
+      int              len;            /* length of "name" */
+      typval_T *rettv;         /* return value goes here */
+      int              argcount;       /* number of "argvars" */
+--- 7997,8005 ----
+   * Also returns OK when an error was encountered while executing the function.
+   */
+      static int
+! call_func(func_name, len, rettv, argcount, argvars, firstline, lastline,
+                                               doesrange, evaluate, selfdict)
+!     char_u   *func_name;     /* name of the function */
+      int              len;            /* length of "name" */
+      typval_T *rettv;         /* return value goes here */
+      int              argcount;       /* number of "argvars" */
+***************
+*** 8023,8040 ****
+      int              i;
+      int              llen;
+      ufunc_T  *fp;
+-     int              cc;
+  #define FLEN_FIXED 40
+      char_u   fname_buf[FLEN_FIXED + 1];
+      char_u   *fname;
+  
+      /*
+       * In a script change <SID>name() and s:name() to K_SNR 123_name().
+       * Change <SNR>123_name() to K_SNR 123_name().
+       * Use fname_buf[] when it fits, otherwise allocate memory (slow).
+       */
+-     cc = name[len];
+-     name[len] = NUL;
+      llen = eval_fname_script(name);
+      if (llen > 0)
+      {
+--- 8023,8044 ----
+      int              i;
+      int              llen;
+      ufunc_T  *fp;
+  #define FLEN_FIXED 40
+      char_u   fname_buf[FLEN_FIXED + 1];
+      char_u   *fname;
++     char_u   *name;
++ 
++     /* Make a copy of the name, if it comes from a funcref variable it could
++      * be changed or deleted in the called function. */
++     name = vim_strnsave(func_name, len);
++     if (name == NULL)
++      return ret;
+  
+      /*
+       * In a script change <SID>name() and s:name() to K_SNR 123_name().
+       * Change <SNR>123_name() to K_SNR 123_name().
+       * Use fname_buf[] when it fits, otherwise allocate memory (slow).
+       */
+      llen = eval_fname_script(name);
+      if (llen > 0)
+      {
+***************
+*** 8205,8213 ****
+       }
+      }
+  
+-     name[len] = cc;
+      if (fname != name && fname != fname_buf)
+       vim_free(fname);
+  
+      return ret;
+  }
+--- 8209,8217 ----
+       }
+      }
+  
+      if (fname != name && fname != fname_buf)
+       vim_free(fname);
++     vim_free(name);
+  
+      return ret;
+  }
+*** ../vim-7.2.439/src/testdir/test34.in       2007-09-25 17:59:15.000000000 +0200
+--- src/testdir/test34.in      2010-05-28 21:54:36.000000000 +0200
+***************
+*** 35,40 ****
+--- 35,45 ----
+  :  let g:counter = 0
+  :  return ''
+  :endfunc
++ :func FuncWithRef(a)
++ :  unlet g:FuncRef
++ :  return a:a
++ :endfunc
++ :let g:FuncRef=function("FuncWithRef")
+  :let counter = 0
+  :inoremap <expr> ( ListItem()
+  :inoremap <expr> [ ListReset()
+***************
+*** 47,52 ****
+--- 52,58 ----
+   \12=retval
+   \12=Compute(45, 5, "retval")
+   \12=retval
++  \12=g:FuncRef(333)
+  
+  XX+-XX
+  ---*---
+*** ../vim-7.2.439/src/testdir/test34.ok       2006-04-30 20:49:40.000000000 +0200
+--- src/testdir/test34.ok      2010-05-28 21:56:03.000000000 +0200
+***************
+*** 1,4 ****
+! xxx4asdf fail nop ok 9
+  XX111XX
+  ---222---
+  1. one
+--- 1,4 ----
+! xxx4asdf fail nop ok 9 333
+  XX111XX
+  ---222---
+  1. one
+*** ../vim-7.2.439/src/version.c       2010-05-28 21:31:51.000000000 +0200
+--- src/version.c      2010-05-28 22:03:30.000000000 +0200
+***************
+*** 683,684 ****
+--- 683,686 ----
+  {   /* Add new patch number below this line */
++ /**/
++     440,
+  /**/
+
+-- 
+Nobody will ever need more than 640 kB RAM.
+               -- Bill Gates, 1983
+Windows 98 requires 16 MB RAM.
+               -- Bill Gates, 1999
+Logical conclusion: Nobody will ever need Windows 98.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.441 b/7.2.441
new file mode 100644 (file)
index 0000000..0da7511
--- /dev/null
+++ b/7.2.441
@@ -0,0 +1,141 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.441
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.441
+Problem:    When using ":earlier" undo information may be wrong.
+Solution:   When changing alternate branches also adjust b_u_oldhead.
+Files:     src/undo.c
+
+
+*** ../vim-7.2.440/src/undo.c  2008-02-13 15:21:29.000000000 +0100
+--- src/undo.c 2010-05-30 16:52:47.000000000 +0200
+***************
+*** 242,248 ****
+  }
+  
+  /*
+!  * save the line "lnum" (used by ":s" and "~" command)
+   * The line is replaced, so the new bottom line is lnum + 1.
+   */
+      int
+--- 242,248 ----
+  }
+  
+  /*
+!  * Save the line "lnum" (used by ":s" and "~" command).
+   * The line is replaced, so the new bottom line is lnum + 1.
+   */
+      int
+***************
+*** 256,262 ****
+  }
+  
+  /*
+!  * a new line is inserted before line "lnum" (used by :s command)
+   * The line is inserted, so the new bottom line is lnum + 1.
+   */
+      int
+--- 256,262 ----
+  }
+  
+  /*
+!  * A new line is inserted before line "lnum" (used by :s command).
+   * The line is inserted, so the new bottom line is lnum + 1.
+   */
+      int
+***************
+*** 270,276 ****
+  }
+  
+  /*
+!  * save the lines "lnum" - "lnum" + nlines (used by delete command)
+   * The lines are deleted, so the new bottom line is lnum, unless the buffer
+   * becomes empty.
+   */
+--- 270,276 ----
+  }
+  
+  /*
+!  * Save the lines "lnum" - "lnum" + nlines (used by delete command).
+   * The lines are deleted, so the new bottom line is lnum, unless the buffer
+   * becomes empty.
+   */
+***************
+*** 996,1001 ****
+--- 996,1003 ----
+               last->uh_alt_next = uhp;
+               uhp->uh_alt_prev = last;
+  
++              if (curbuf->b_u_oldhead == uhp)
++                  curbuf->b_u_oldhead = last;
+               uhp = last;
+               if (uhp->uh_next != NULL)
+                   uhp->uh_next->uh_prev = uhp;
+***************
+*** 1406,1415 ****
+  /*
+   * ":undolist": List the leafs of the undo tree
+   */
+- /*ARGSUSED*/
+      void
+  ex_undolist(eap)
+!     exarg_T *eap;
+  {
+      garray_T ga;
+      u_header_T       *uhp;
+--- 1408,1416 ----
+  /*
+   * ":undolist": List the leafs of the undo tree
+   */
+      void
+  ex_undolist(eap)
+!     exarg_T *eap UNUSED;
+  {
+      garray_T ga;
+      u_header_T       *uhp;
+***************
+*** 1529,1538 ****
+  /*
+   * ":undojoin": continue adding to the last entry list
+   */
+- /*ARGSUSED*/
+      void
+  ex_undojoin(eap)
+!     exarg_T *eap;
+  {
+      if (curbuf->b_u_newhead == NULL)
+       return;             /* nothing changed before */
+--- 1530,1538 ----
+  /*
+   * ":undojoin": continue adding to the last entry list
+   */
+      void
+  ex_undojoin(eap)
+!     exarg_T *eap UNUSED;
+  {
+      if (curbuf->b_u_newhead == NULL)
+       return;             /* nothing changed before */
+*** ../vim-7.2.440/src/version.c       2010-05-28 22:06:41.000000000 +0200
+--- src/version.c      2010-05-30 16:53:56.000000000 +0200
+***************
+*** 683,684 ****
+--- 683,686 ----
+  {   /* Add new patch number below this line */
++ /**/
++     441,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+127. You bring your laptop and cellular phone to church.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.442 b/7.2.442
new file mode 100644 (file)
index 0000000..aa07b39
--- /dev/null
+++ b/7.2.442
@@ -0,0 +1,256 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.442
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.442 (after 7.2.201)
+Problem:    Copy/paste with OpenOffice doesn't work.
+Solution:   Do not offer the HTML target when it is not supported. (James
+           Vega)
+Files:     src/gui_gtk_x11.c, src/option.c, src/proto/gui_gtk_x11.pro
+
+
+*** ../vim-7.2.441/src/gui_gtk_x11.c   2010-02-11 18:19:32.000000000 +0100
+--- src/gui_gtk_x11.c  2010-06-05 12:42:23.000000000 +0200
+***************
+*** 1433,1438 ****
+--- 1433,1442 ----
+      }
+  #endif /* !HAVE_GTK2 */
+  
++     /* Chop off any traiing NUL bytes.  OpenOffice sends these. */
++     while (len > 0 && text[len - 1] == NUL)
++      --len;
++ 
+      clip_yank_selection(motion_type, text, (long)len, cbd);
+      received_selection = RS_OK;
+      vim_free(tmpbuf);
+***************
+*** 3463,3468 ****
+--- 3467,3532 ----
+  #endif /* FEAT_GUI_TABLINE */
+  
+  /*
++  * Add selection targets for PRIMARY and CLIPBOARD selections.
++  */
++     void
++ gui_gtk_set_selection_targets(void)
++ {
++     int                  i, j = 0;
++     int                  n_targets = N_SELECTION_TARGETS;
++     GtkTargetEntry  targets[N_SELECTION_TARGETS];
++ 
++     for (i = 0; i < (int)N_SELECTION_TARGETS; ++i)
++     {
++ #ifdef FEAT_MBYTE
++      /* OpenOffice tries to use TARGET_HTML and fails when it doesn't
++       * return something, instead of trying another target. Therefore only
++       * offer TARGET_HTML when it works. */
++      if (!clip_html && selection_targets[i].info == TARGET_HTML)
++          n_targets--;
++      else
++ #endif
++          targets[j++] = selection_targets[i];
++     }
++ 
++     gtk_selection_clear_targets(gui.drawarea, (GdkAtom)GDK_SELECTION_PRIMARY);
++     gtk_selection_clear_targets(gui.drawarea, (GdkAtom)clip_plus.gtk_sel_atom);
++     gtk_selection_add_targets(gui.drawarea,
++                            (GdkAtom)GDK_SELECTION_PRIMARY,
++                            targets, n_targets);
++     gtk_selection_add_targets(gui.drawarea,
++                            (GdkAtom)clip_plus.gtk_sel_atom,
++                            targets, n_targets);
++ }
++ 
++ /*
++  * Set up for receiving DND items.
++  */
++     void
++ gui_gtk_set_dnd_targets(void)
++ {
++     int                  i, j = 0;
++     int                  n_targets = N_DND_TARGETS;
++     GtkTargetEntry  targets[N_DND_TARGETS];
++ 
++     for (i = 0; i < (int)N_DND_TARGETS; ++i)
++     {
++ #ifdef FEAT_MBYTE
++      if (!clip_html && selection_targets[i].info == TARGET_HTML)
++          n_targets--;
++      else
++ #endif
++          targets[j++] = dnd_targets[i];
++     }
++ 
++     gtk_drag_dest_unset(gui.drawarea);
++     gtk_drag_dest_set(gui.drawarea,
++                    GTK_DEST_DEFAULT_ALL,
++                    targets, n_targets,
++                    GDK_ACTION_COPY);
++ }
++ 
++ /*
+   * Initialize the GUI.       Create all the windows, set up all the callbacks etc.
+   * Returns OK for success, FAIL when the GUI can't be started.
+   */
+***************
+*** 3925,3939 ****
+      gtk_signal_connect(GTK_OBJECT(gui.drawarea), "selection_received",
+                      GTK_SIGNAL_FUNC(selection_received_cb), NULL);
+  
+!     /*
+!      * Add selection targets for PRIMARY and CLIPBOARD selections.
+!      */
+!     gtk_selection_add_targets(gui.drawarea,
+!                            (GdkAtom)GDK_SELECTION_PRIMARY,
+!                            selection_targets, N_SELECTION_TARGETS);
+!     gtk_selection_add_targets(gui.drawarea,
+!                            (GdkAtom)clip_plus.gtk_sel_atom,
+!                            selection_targets, N_SELECTION_TARGETS);
+  
+      gtk_signal_connect(GTK_OBJECT(gui.drawarea), "selection_get",
+                      GTK_SIGNAL_FUNC(selection_get_cb), NULL);
+--- 3989,3995 ----
+      gtk_signal_connect(GTK_OBJECT(gui.drawarea), "selection_received",
+                      GTK_SIGNAL_FUNC(selection_received_cb), NULL);
+  
+!     gui_gtk_set_selection_targets();
+  
+      gtk_signal_connect(GTK_OBJECT(gui.drawarea), "selection_get",
+                      GTK_SIGNAL_FUNC(selection_get_cb), NULL);
+***************
+*** 4057,4063 ****
+      return TRUE;
+  }
+  
+- 
+  /*
+   * Open the GUI window which was created by a call to gui_mch_init().
+   */
+--- 4113,4118 ----
+***************
+*** 4225,4237 ****
+                      GTK_SIGNAL_FUNC(form_configure_event), NULL);
+  
+  #ifdef FEAT_DND
+!     /*
+!      * Set up for receiving DND items.
+!      */
+!     gtk_drag_dest_set(gui.drawarea,
+!                    GTK_DEST_DEFAULT_ALL,
+!                    dnd_targets, N_DND_TARGETS,
+!                    GDK_ACTION_COPY);
+  
+      gtk_signal_connect(GTK_OBJECT(gui.drawarea), "drag_data_received",
+                      GTK_SIGNAL_FUNC(drag_data_received_cb), NULL);
+--- 4280,4287 ----
+                      GTK_SIGNAL_FUNC(form_configure_event), NULL);
+  
+  #ifdef FEAT_DND
+!     /* Set up for receiving DND items. */
+!     gui_gtk_set_dnd_targets();
+  
+      gtk_signal_connect(GTK_OBJECT(gui.drawarea), "drag_data_received",
+                      GTK_SIGNAL_FUNC(drag_data_received_cb), NULL);
+***************
+*** 4428,4434 ****
+      /* this will cause the proper resizement to happen too */
+      update_window_manager_hints(0, 0);
+  
+! #else  /* HAVE_GTK2 */
+      /* this will cause the proper resizement to happen too */
+      if (gtk_socket_id == 0)
+       update_window_manager_hints(0, 0);
+--- 4478,4484 ----
+      /* this will cause the proper resizement to happen too */
+      update_window_manager_hints(0, 0);
+  
+! #else
+      /* this will cause the proper resizement to happen too */
+      if (gtk_socket_id == 0)
+       update_window_manager_hints(0, 0);
+***************
+*** 4444,4457 ****
+      else
+       update_window_manager_hints(width, height);
+  
+! #if 0
+      if (!resize_idle_installed)
+      {
+       g_idle_add_full(GDK_PRIORITY_EVENTS + 10,
+                       &force_shell_resize_idle, NULL, NULL);
+       resize_idle_installed = TRUE;
+      }
+! #endif
+      /*
+       * Wait until all events are processed to prevent a crash because the
+       * real size of the drawing area doesn't reflect Vim's internal ideas.
+--- 4494,4507 ----
+      else
+       update_window_manager_hints(width, height);
+  
+! # if 0
+      if (!resize_idle_installed)
+      {
+       g_idle_add_full(GDK_PRIORITY_EVENTS + 10,
+                       &force_shell_resize_idle, NULL, NULL);
+       resize_idle_installed = TRUE;
+      }
+! # endif
+      /*
+       * Wait until all events are processed to prevent a crash because the
+       * real size of the drawing area doesn't reflect Vim's internal ideas.
+*** ../vim-7.2.441/src/option.c        2010-05-14 17:32:53.000000000 +0200
+--- src/option.c       2010-06-05 12:19:38.000000000 +0200
+***************
+*** 7112,7117 ****
+--- 7112,7124 ----
+       clip_html = new_html;
+       vim_free(clip_exclude_prog);
+       clip_exclude_prog = new_exclude_prog;
++ #ifdef FEAT_GUI_GTK
++      if (gui.in_use)
++      {
++          gui_gtk_set_selection_targets();
++          gui_gtk_set_dnd_targets();
++      }
++ #endif
+      }
+      else
+       vim_free(new_exclude_prog);
+*** ../vim-7.2.441/src/proto/gui_gtk_x11.pro   2009-09-23 18:14:13.000000000 +0200
+--- src/proto/gui_gtk_x11.pro  2010-06-05 12:31:22.000000000 +0200
+***************
+*** 9,14 ****
+--- 9,16 ----
+  int gui_mch_showing_tabline __ARGS((void));
+  void gui_mch_update_tabline __ARGS((void));
+  void gui_mch_set_curtab __ARGS((int nr));
++ void gui_gtk_set_selection_targets __ARGS((void));
++ void gui_gtk_set_dnd_targets __ARGS((void));
+  int gui_mch_init __ARGS((void));
+  void gui_mch_forked __ARGS((void));
+  void gui_mch_new_colors __ARGS((void));
+*** ../vim-7.2.441/src/version.c       2010-05-30 16:55:17.000000000 +0200
+--- src/version.c      2010-06-05 12:48:01.000000000 +0200
+***************
+*** 683,684 ****
+--- 683,686 ----
+  {   /* Add new patch number below this line */
++ /**/
++     442,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+158. You get a tuner card so you can watch TV while surfing.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.443 b/7.2.443
new file mode 100644 (file)
index 0000000..d18ccc9
--- /dev/null
+++ b/7.2.443
@@ -0,0 +1,116 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.443
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.443 
+Problem:    Using taglist() on a tag file with duplicate fields generates an 
+            internal error. (Peter Odding) 
+Solution:   Check for duplicate field names. 
+Files:      src/eval.c, src/proto/eval.pro, src/tag.c 
+
+
+*** ../vim-7.2.442/src/eval.c  2010-05-28 22:06:41.000000000 +0200
+--- src/eval.c 2010-06-12 19:59:09.000000000 +0200
+***************
+*** 451,457 ****
+  static void dictitem_remove __ARGS((dict_T *dict, dictitem_T *item));
+  static dict_T *dict_copy __ARGS((dict_T *orig, int deep, int copyID));
+  static long dict_len __ARGS((dict_T *d));
+- static dictitem_T *dict_find __ARGS((dict_T *d, char_u *key, int len));
+  static char_u *dict2string __ARGS((typval_T *tv, int copyID));
+  static int get_dict_tv __ARGS((char_u **arg, typval_T *rettv, int evaluate));
+  static char_u *echo_string __ARGS((typval_T *tv, char_u **tofree, char_u *numbuf, int copyID));
+--- 451,456 ----
+***************
+*** 7012,7018 ****
+   * If "len" is negative use strlen(key).
+   * Returns NULL when not found.
+   */
+!     static dictitem_T *
+  dict_find(d, key, len)
+      dict_T   *d;
+      char_u   *key;
+--- 7011,7017 ----
+   * If "len" is negative use strlen(key).
+   * Returns NULL when not found.
+   */
+!     dictitem_T *
+  dict_find(d, key, len)
+      dict_T   *d;
+      char_u   *key;
+*** ../vim-7.2.442/src/proto/eval.pro  2010-01-19 15:51:29.000000000 +0100
+--- src/proto/eval.pro 2010-06-12 19:59:13.000000000 +0200
+***************
+*** 56,61 ****
+--- 56,62 ----
+  void dictitem_free __ARGS((dictitem_T *item));
+  int dict_add __ARGS((dict_T *d, dictitem_T *item));
+  int dict_add_nr_str __ARGS((dict_T *d, char *key, long nr, char_u *str));
++ dictitem_T *dict_find __ARGS((dict_T *d, char_u *key, int len));
+  char_u *get_dict_string __ARGS((dict_T *d, char_u *key, int save));
+  long get_dict_number __ARGS((dict_T *d, char_u *key));
+  char_u *get_function_name __ARGS((expand_T *xp, int idx));
+*** ../vim-7.2.442/src/tag.c   2010-02-24 14:46:58.000000000 +0100
+--- src/tag.c  2010-06-12 20:01:45.000000000 +0200
+***************
+*** 3771,3777 ****
+  static int add_tag_field __ARGS((dict_T *dict, char *field_name, char_u *start, char_u *end));
+  
+  /*
+!  * Add a tag field to the dictionary "dict"
+   */
+      static int
+  add_tag_field(dict, field_name, start, end)
+--- 3771,3778 ----
+  static int add_tag_field __ARGS((dict_T *dict, char *field_name, char_u *start, char_u *end));
+  
+  /*
+!  * Add a tag field to the dictionary "dict".
+!  * Return OK or FAIL.
+   */
+      static int
+  add_tag_field(dict, field_name, start, end)
+***************
+*** 3783,3788 ****
+--- 3784,3800 ----
+      char_u   buf[MAXPATHL];
+      int              len = 0;
+  
++     /* check that the field name doesn't exist yet */
++     if (dict_find(dict, (char_u *)field_name, -1) != NULL)
++     {
++      if (p_verbose > 0)
++      {
++          verbose_enter();
++          smsg((char_u *)_("Duplicate field name: %s"), field_name);
++          verbose_leave();
++      }
++      return FAIL;
++     }
+      if (start != NULL)
+      {
+       if (end == NULL)
+*** ../vim-7.2.442/src/version.c       2010-06-05 12:49:40.000000000 +0200
+--- src/version.c      2010-06-12 20:05:27.000000000 +0200
+***************
+*** 683,684 ****
+--- 683,686 ----
+  {   /* Add new patch number below this line */
++ /**/
++     443,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+191. You rate eating establishments not by the quality of the food,
+     but by the availability of electrical outlets for your PowerBook.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.2.444 b/7.2.444
new file mode 100644 (file)
index 0000000..2de9aa3
--- /dev/null
+++ b/7.2.444
@@ -0,0 +1,85 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.444
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.444 (after 7.2.442)
+Problem:    Can't build with GTK 1, gtk_selection_clear_targets() is not
+            available. (Patrick Texier)
+Solution:   Don't change the targets for GTK 1, set them once.
+Files:      src/gui_gtk_x11.c, src/option.c
+
+
+*** ../vim-7.2.443/src/gui_gtk_x11.c   2010-06-05 12:49:40.000000000 +0200
+--- src/gui_gtk_x11.c  2010-06-13 02:26:24.000000000 +0200
+***************
+*** 3478,3484 ****
+  
+      for (i = 0; i < (int)N_SELECTION_TARGETS; ++i)
+      {
+! #ifdef FEAT_MBYTE
+       /* OpenOffice tries to use TARGET_HTML and fails when it doesn't
+        * return something, instead of trying another target. Therefore only
+        * offer TARGET_HTML when it works. */
+--- 3478,3484 ----
+  
+      for (i = 0; i < (int)N_SELECTION_TARGETS; ++i)
+      {
+! #if defined(FEAT_MBYTE) && defined(HAVE_GTK2)
+       /* OpenOffice tries to use TARGET_HTML and fails when it doesn't
+        * return something, instead of trying another target. Therefore only
+        * offer TARGET_HTML when it works. */
+***************
+*** 3489,3496 ****
+--- 3489,3498 ----
+           targets[j++] = selection_targets[i];
+      }
+  
++ #ifdef HAVE_GTK2  /* GTK 1 doesn't have this function */
+      gtk_selection_clear_targets(gui.drawarea, (GdkAtom)GDK_SELECTION_PRIMARY);
+      gtk_selection_clear_targets(gui.drawarea, (GdkAtom)clip_plus.gtk_sel_atom);
++ #endif
+      gtk_selection_add_targets(gui.drawarea,
+                             (GdkAtom)GDK_SELECTION_PRIMARY,
+                             targets, n_targets);
+*** ../vim-7.2.443/src/option.c        2010-06-05 12:49:40.000000000 +0200
+--- src/option.c       2010-06-13 02:27:36.000000000 +0200
+***************
+*** 7112,7118 ****
+       clip_html = new_html;
+       vim_free(clip_exclude_prog);
+       clip_exclude_prog = new_exclude_prog;
+! #ifdef FEAT_GUI_GTK
+       if (gui.in_use)
+       {
+           gui_gtk_set_selection_targets();
+--- 7112,7118 ----
+       clip_html = new_html;
+       vim_free(clip_exclude_prog);
+       clip_exclude_prog = new_exclude_prog;
+! #ifdef HAVE_GTK2  /* for GTK 1 we can't change the list of targets */
+       if (gui.in_use)
+       {
+           gui_gtk_set_selection_targets();
+*** ../vim-7.2.443/src/version.c       2010-06-12 20:11:53.000000000 +0200
+--- src/version.c      2010-06-13 02:29:18.000000000 +0200
+***************
+*** 683,684 ****
+--- 683,686 ----
+  {   /* Add new patch number below this line */
++ /**/
++     444,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+195. Your cat has its own home page.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
This page took 0.160735 seconds and 4 git commands to generate.