]> git.pld-linux.org Git - packages/vim.git/commitdiff
- new
authorAdam Gołębiowski <adamg@pld-linux.org>
Fri, 20 Jun 2008 17:22:20 +0000 (17:22 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    7.1.312 -> 1.1
    7.1.313 -> 1.1
    7.1.314 -> 1.1
    7.1.315 -> 1.1
    7.1.316 -> 1.1
    7.1.317 -> 1.1
    7.1.318 -> 1.1
    7.1.319 -> 1.1
    7.1.320 -> 1.1
    7.1.321 -> 1.1
    7.1.322 -> 1.1
    7.1.323 -> 1.1
    7.1.324 -> 1.1
    7.1.325 -> 1.1
    7.1.326 -> 1.1

15 files changed:
7.1.312 [new file with mode: 0644]
7.1.313 [new file with mode: 0644]
7.1.314 [new file with mode: 0644]
7.1.315 [new file with mode: 0644]
7.1.316 [new file with mode: 0644]
7.1.317 [new file with mode: 0644]
7.1.318 [new file with mode: 0644]
7.1.319 [new file with mode: 0644]
7.1.320 [new file with mode: 0644]
7.1.321 [new file with mode: 0644]
7.1.322 [new file with mode: 0644]
7.1.323 [new file with mode: 0644]
7.1.324 [new file with mode: 0644]
7.1.325 [new file with mode: 0644]
7.1.326 [new file with mode: 0644]

diff --git a/7.1.312 b/7.1.312
new file mode 100644 (file)
index 0000000..5f60757
--- /dev/null
+++ b/7.1.312
@@ -0,0 +1,77 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.312
+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.1.312
+Problem:    The .po files have mistakes in error numbers.
+Solution:   Search for these mistakes in the check script. (Dominique Pelle)
+Files:     src/po/check.vim
+
+
+*** ../vim-7.1.311/src/po/check.vim    Wed Nov 23 22:10:37 2005
+--- src/po/check.vim   Sun May 25 13:47:59 2008
+***************
+*** 1,7 ****
+  " Vim script for checking .po files.
+  "
+! " Go through the file and verify that all %...s items in "msgid" are identical
+! " to the ones in "msgstr".
+  
+  if 1 " Only execute this if the eval feature is available.
+  
+--- 1,8 ----
+  " Vim script for checking .po files.
+  "
+! " Go through the file and verify that:
+! " - All %...s items in "msgid" are identical to the ones in "msgstr".
+! " - An error or warning code in "msgid" matches the one in "msgstr".
+  
+  if 1 " Only execute this if the eval feature is available.
+  
+***************
+*** 56,61 ****
+--- 57,76 ----
+    endif
+  endwhile
+  
++ " Check that error code in msgid matches the one in msgstr.
++ "
++ " Examples of mismatches found with msgid "E123: ..."
++ " - msgstr "E321: ..."    error code mismatch
++ " - msgstr "W123: ..."    warning instead of error
++ " - msgstr "E123 ..."     missing colon
++ " - msgstr "..."          missing error code
++ "
++ 1
++ if search('msgid "\("\n"\)\?\([EW][0-9]\+:\).*\nmsgstr "\("\n"\)\?[^"]\@=\2\@!') > 0
++   echo 'Mismatching error/warning code in line ' . line('.')
++   let error = 1
++ endif
++ 
+  if error == 0
+    echo "OK"
+  endif
+*** ../vim-7.1.311/src/version.c       Wed Jun  4 21:34:51 2008
+--- src/version.c      Mon Jun  9 14:43:59 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     312,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+24. You realize there is not a sound in the house and you have no idea where
+    your children are.
+
+ /// 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.1.313 b/7.1.313
new file mode 100644 (file)
index 0000000..add47d9
--- /dev/null
+++ b/7.1.313
@@ -0,0 +1,116 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.313
+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.1.313
+Problem:    When the netbeans interface setModified call is used the status
+           lines and window title are not updated.
+Solution:   Redraw the status lines and title. (Philippe Fremy)
+Files:     src/netbeans.c
+
+
+*** ../vim-7.1.312/src/netbeans.c      Sun Mar 16 16:02:47 2008
+--- src/netbeans.c     Wed May 28 15:12:13 2008
+***************
+*** 16,21 ****
+--- 16,25 ----
+   * See ":help netbeans-protocol" for explanation.
+   */
+  
++ #if defined(MSDOS) || defined(MSWIN)
++ # include "vimio.h"  /* for mch_open(), must be before vim.h */
++ #endif
++ 
+  #include "vim.h"
+  
+  #if defined(FEAT_NETBEANS_INTG) || defined(PROTO)
+***************
+*** 1974,1986 ****
+       }
+       else if (streq((char *)cmd, "setModified"))
+       {
+           if (buf == NULL || buf->bufp == NULL)
+           {
+  /*           EMSG("E646: null bufp in setModified"); */
+               return FAIL;
+           }
+           if (streq((char *)args, "T"))
+!              buf->bufp->b_changed = 1;
+           else
+           {
+               struct stat     st;
+--- 1978,1993 ----
+       }
+       else if (streq((char *)cmd, "setModified"))
+       {
++          int prev_b_changed;
++ 
+           if (buf == NULL || buf->bufp == NULL)
+           {
+  /*           EMSG("E646: null bufp in setModified"); */
+               return FAIL;
+           }
++          prev_b_changed = buf->bufp->b_changed;
+           if (streq((char *)args, "T"))
+!              buf->bufp->b_changed = TRUE;
+           else
+           {
+               struct stat     st;
+***************
+*** 1990,1998 ****
+               if (buf->bufp->b_ffname != NULL
+                       && mch_stat((char *)buf->bufp->b_ffname, &st) >= 0)
+                   buf_store_time(buf->bufp, &st, buf->bufp->b_ffname);
+!              buf->bufp->b_changed = 0;
+           }
+           buf->modified = buf->bufp->b_changed;
+  /* =====================================================================*/
+       }
+       else if (streq((char *)cmd, "setModtime"))
+--- 1997,2016 ----
+               if (buf->bufp->b_ffname != NULL
+                       && mch_stat((char *)buf->bufp->b_ffname, &st) >= 0)
+                   buf_store_time(buf->bufp, &st, buf->bufp->b_ffname);
+!              buf->bufp->b_changed = FALSE;
+           }
+           buf->modified = buf->bufp->b_changed;
++          if (prev_b_changed != buf->bufp->b_changed)
++          {
++ #ifdef FEAT_WINDOWS
++              check_status(buf->bufp);
++              redraw_tabline = TRUE;
++ #endif
++ #ifdef FEAT_TITLE
++              maketitle();
++ #endif
++              update_screen(0);
++          }
+  /* =====================================================================*/
+       }
+       else if (streq((char *)cmd, "setModtime"))
+*** ../vim-7.1.312/src/version.c       Mon Jun  9 14:45:17 2008
+--- src/version.c      Mon Jun  9 15:08:40 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     313,
+  /**/
+
+-- 
+Q: What is the difference betwee open-source and commercial software?
+A: If you have a problem with commercial software you can call a phone
+   number and they will tell you it might be solved in a future version.
+   For open-source software there isn't a phone number to call, but you
+   get the solution within a day.
+
+ /// 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.1.314 b/7.1.314
new file mode 100644 (file)
index 0000000..46f9545
--- /dev/null
+++ b/7.1.314
@@ -0,0 +1,71 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.314
+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.1.314
+Problem:    The value of 'pastetoggle' is written to the session file without
+           any escaping. (Randall Hansen)
+Solution:   Use put_escstr(). (Ben Schmidt)
+Files:     src/option.c
+
+
+*** ../vim-7.1.313/src/option.c        Wed Mar 12 17:37:53 2008
+--- src/option.c       Wed Jun  4 19:32:02 2008
+***************
+*** 243,249 ****
+  /* WV_ and BV_ values get typecasted to this for the "indir" field */
+  typedef enum
+  {
+!     PV_NONE = 0
+  } idopt_T;
+  
+  /*
+--- 243,250 ----
+  /* WV_ and BV_ values get typecasted to this for the "indir" field */
+  typedef enum
+  {
+!     PV_NONE = 0,
+!     PV_MAXVAL = 0xffff    /* to avoid warnings for value out of range */
+  } idopt_T;
+  
+  /*
+***************
+*** 8713,8719 ****
+       {
+           s = *valuep;
+           while (*s != NUL)
+!              if (fputs((char *)str2special(&s, FALSE), fd) < 0)
+                   return FAIL;
+       }
+       else if (expand)
+--- 8714,8720 ----
+       {
+           s = *valuep;
+           while (*s != NUL)
+!              if (put_escstr(fd, str2special(&s, FALSE), 2) == FAIL)
+                   return FAIL;
+       }
+       else if (expand)
+*** ../vim-7.1.313/src/version.c       Mon Jun  9 15:10:07 2008
+--- src/version.c      Mon Jun  9 17:05:40 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     314,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+26. You check your mail. It says "no new messages." So you check it again.
+
+ /// 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.1.315 b/7.1.315
new file mode 100644 (file)
index 0000000..11ffae7
--- /dev/null
+++ b/7.1.315
@@ -0,0 +1,132 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.315
+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.1.315
+Problem:    Crash with specific search pattern using look-behind match.
+           (Andreas Politz)
+Solution:   Also save the value of "need_clear_subexpr".
+Files:     src/regexp.c
+
+
+*** ../vim-7.1.314/src/regexp.c        Wed Apr  9 12:14:44 2008
+--- src/regexp.c       Sun Jun 15 14:16:40 2008
+***************
+*** 3044,3049 ****
+--- 3044,3050 ----
+  {
+      regsave_T        save_after;
+      regsave_T        save_behind;
++     int              save_need_clear_subexpr;
+      save_se_T   save_start[NSUBEXP];
+      save_se_T   save_end[NSUBEXP];
+  } regbehind_T;
+***************
+*** 5858,5874 ****
+  {
+      int i;
+  
+!     for (i = 0; i < NSUBEXP; ++i)
+      {
+!      if (REG_MULTI)
+!      {
+!          bp->save_start[i].se_u.pos = reg_startpos[i];
+!          bp->save_end[i].se_u.pos = reg_endpos[i];
+!      }
+!      else
+       {
+!          bp->save_start[i].se_u.ptr = reg_startp[i];
+!          bp->save_end[i].se_u.ptr = reg_endp[i];
+       }
+      }
+  }
+--- 5859,5881 ----
+  {
+      int i;
+  
+!     /* When "need_clear_subexpr" is set we don't need to save the values, only
+!      * remember that this flag needs to be set again when restoring. */
+!     bp->save_need_clear_subexpr = need_clear_subexpr;
+!     if (!need_clear_subexpr)
+      {
+!      for (i = 0; i < NSUBEXP; ++i)
+       {
+!          if (REG_MULTI)
+!          {
+!              bp->save_start[i].se_u.pos = reg_startpos[i];
+!              bp->save_end[i].se_u.pos = reg_endpos[i];
+!          }
+!          else
+!          {
+!              bp->save_start[i].se_u.ptr = reg_startp[i];
+!              bp->save_end[i].se_u.ptr = reg_endp[i];
+!          }
+       }
+      }
+  }
+***************
+*** 5882,5898 ****
+  {
+      int i;
+  
+!     for (i = 0; i < NSUBEXP; ++i)
+      {
+!      if (REG_MULTI)
+!      {
+!          reg_startpos[i] = bp->save_start[i].se_u.pos;
+!          reg_endpos[i] = bp->save_end[i].se_u.pos;
+!      }
+!      else
+       {
+!          reg_startp[i] = bp->save_start[i].se_u.ptr;
+!          reg_endp[i] = bp->save_end[i].se_u.ptr;
+       }
+      }
+  }
+--- 5889,5910 ----
+  {
+      int i;
+  
+!     /* Only need to restore saved values when they are not to be cleared. */
+!     need_clear_subexpr = bp->save_need_clear_subexpr;
+!     if (!need_clear_subexpr)
+      {
+!      for (i = 0; i < NSUBEXP; ++i)
+       {
+!          if (REG_MULTI)
+!          {
+!              reg_startpos[i] = bp->save_start[i].se_u.pos;
+!              reg_endpos[i] = bp->save_end[i].se_u.pos;
+!          }
+!          else
+!          {
+!              reg_startp[i] = bp->save_start[i].se_u.ptr;
+!              reg_endp[i] = bp->save_end[i].se_u.ptr;
+!          }
+       }
+      }
+  }
+*** ../vim-7.1.314/src/version.c       Mon Jun  9 17:07:13 2008
+--- src/version.c      Sun Jun 15 14:12:54 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     315,
+  /**/
+
+-- 
+Tips for aliens in New York: Land anywhere.  Central Park, anywhere.
+No one will care or indeed even notice.
+               -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
+
+ /// 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.1.316 b/7.1.316
new file mode 100644 (file)
index 0000000..97b7bfd
--- /dev/null
+++ b/7.1.316
@@ -0,0 +1,52 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.316
+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.1.316
+Problem:    When 'cscopetag' is set ":tag" gives an error message instead of
+           going to the next tag in the tag stack.
+Solution:   Don't call do_cstag() when there is no argument. (Mark Goldman)
+Files:     src/ex_docmd.c
+
+
+*** ../vim-7.1.315/src/ex_docmd.c      Sun Mar 16 16:02:47 2008
+--- src/ex_docmd.c     Fri Jun 20 10:42:30 2008
+***************
+*** 9300,9306 ****
+                 break;
+       default:                        /* ":tag" */
+  #ifdef FEAT_CSCOPE
+!                if (p_cst)
+                 {
+                     do_cstag(eap);
+                     return;
+--- 9302,9308 ----
+                 break;
+       default:                        /* ":tag" */
+  #ifdef FEAT_CSCOPE
+!                if (p_cst && *eap->arg != NUL)
+                 {
+                     do_cstag(eap);
+                     return;
+*** ../vim-7.1.315/src/version.c       Sun Jun 15 14:20:28 2008
+--- src/version.c      Fri Jun 20 11:09:35 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     316,
+  /**/
+
+-- 
+Microsoft is to software what McDonalds is to gourmet cooking
+
+ /// 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.1.317 b/7.1.317
new file mode 100644 (file)
index 0000000..ace491b
--- /dev/null
+++ b/7.1.317
@@ -0,0 +1,185 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.317
+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.1.317
+Problem:    Compiler warnings in Motif calls.
+Solution:   Change zero to NULL. (Dominique Pelle)
+Files:     src/gui_motif.c
+
+
+*** ../vim-7.1.316/src/gui_motif.c     Tue Jan 22 11:06:06 2008
+--- src/gui_motif.c    Sat Jun  7 15:06:33 2008
+***************
+*** 686,693 ****
+  
+      /* Temporarily set value of XmNmappedWhenManaged
+         to stop the dialog from popping up right away */
+!     XtVaGetValues(shell, XmNmappedWhenManaged, &mappedWhenManaged, 0);
+!     XtVaSetValues(shell, XmNmappedWhenManaged, False, 0);
+  
+      XtManageChild(dialog_child);
+  
+--- 686,693 ----
+  
+      /* Temporarily set value of XmNmappedWhenManaged
+         to stop the dialog from popping up right away */
+!     XtVaGetValues(shell, XmNmappedWhenManaged, &mappedWhenManaged, NULL);
+!     XtVaSetValues(shell, XmNmappedWhenManaged, False, NULL);
+  
+      XtManageChild(dialog_child);
+  
+***************
+*** 723,729 ****
+      XtMapWidget(shell);
+  
+      /* Restore the value of XmNmappedWhenManaged */
+!     XtVaSetValues(shell, XmNmappedWhenManaged, mappedWhenManaged, 0);
+  }
+  
+  #if defined(FEAT_MENU) || defined(FEAT_SUN_WORKSHOP) \
+--- 723,729 ----
+      XtMapWidget(shell);
+  
+      /* Restore the value of XmNmappedWhenManaged */
+!     XtVaSetValues(shell, XmNmappedWhenManaged, mappedWhenManaged, NULL);
+  }
+  
+  #if defined(FEAT_MENU) || defined(FEAT_SUN_WORKSHOP) \
+***************
+*** 1993,1999 ****
+      {
+       if (XtClass(w) == xmRowColumnWidgetClass)
+       {
+!          XtVaGetValues(w, XmNrowColumnType, &rowColType, 0);
+           isMenu = (rowColType != (unsigned char)XmWORK_AREA);
+       }
+       else
+--- 1993,1999 ----
+      {
+       if (XtClass(w) == xmRowColumnWidgetClass)
+       {
+!          XtVaGetValues(w, XmNrowColumnType, &rowColType, NULL);
+           isMenu = (rowColType != (unsigned char)XmWORK_AREA);
+       }
+       else
+***************
+*** 2001,2014 ****
+       if (!isMenu)
+       {
+           XtVaGetValues(w, XmNchildren, &children, XmNnumChildren,
+!                        &numChildren, 0);
+           for (i = 0; i < numChildren; i++)
+               do_mnemonic(children[i], keycode);
+       }
+      }
+      else
+      {
+!      XtVaGetValues(w, XmNmnemonic, &mnemonic, 0);
+       if (mnemonic != '\0')
+       {
+           mneString[0] = mnemonic;
+--- 2001,2014 ----
+       if (!isMenu)
+       {
+           XtVaGetValues(w, XmNchildren, &children, XmNnumChildren,
+!                        &numChildren, NULL);
+           for (i = 0; i < numChildren; i++)
+               do_mnemonic(children[i], keycode);
+       }
+      }
+      else
+      {
+!      XtVaGetValues(w, XmNmnemonic, &mnemonic, NULL);
+       if (mnemonic != '\0')
+       {
+           mneString[0] = mnemonic;
+***************
+*** 2019,2025 ****
+               if (XtClass(w) == xmLabelWidgetClass
+                       || XtClass(w) == xmLabelGadgetClass)
+               {
+!                  XtVaGetValues(w, XmNuserData, &userData, 0);
+                   if (userData != NULL && XtIsWidget(userData))
+                       XmProcessTraversal(userData, XmTRAVERSE_CURRENT);
+               }
+--- 2019,2025 ----
+               if (XtClass(w) == xmLabelWidgetClass
+                       || XtClass(w) == xmLabelGadgetClass)
+               {
+!                  XtVaGetValues(w, XmNuserData, &userData, NULL);
+                   if (userData != NULL && XtIsWidget(userData))
+                       XmProcessTraversal(userData, XmTRAVERSE_CURRENT);
+               }
+***************
+*** 2073,2079 ****
+      {
+       if (XtClass(w) == xmRowColumnWidgetClass)
+       {
+!          XtVaGetValues(w, XmNrowColumnType, &rowColType, 0);
+           isMenu = (rowColType != (unsigned char)XmWORK_AREA);
+       }
+       else
+--- 2073,2079 ----
+      {
+       if (XtClass(w) == xmRowColumnWidgetClass)
+       {
+!          XtVaGetValues(w, XmNrowColumnType, &rowColType, NULL);
+           isMenu = (rowColType != (unsigned char)XmWORK_AREA);
+       }
+       else
+***************
+*** 2081,2094 ****
+       if (!isMenu)
+       {
+           XtVaGetValues(w, XmNchildren, &children, XmNnumChildren,
+!                                                           &numChildren, 0);
+           for (i = 0; i < numChildren; i++)
+               add_mnemonic_grabs(dialog, children[i]);
+       }
+      }
+      else
+      {
+!      XtVaGetValues(w, XmNmnemonic, &mnemonic, 0);
+       if (mnemonic != '\0')
+       {
+           mneString[0] = mnemonic;
+--- 2081,2094 ----
+       if (!isMenu)
+       {
+           XtVaGetValues(w, XmNchildren, &children, XmNnumChildren,
+!                                                        &numChildren, NULL);
+           for (i = 0; i < numChildren; i++)
+               add_mnemonic_grabs(dialog, children[i]);
+       }
+      }
+      else
+      {
+!      XtVaGetValues(w, XmNmnemonic, &mnemonic, NULL);
+       if (mnemonic != '\0')
+       {
+           mneString[0] = mnemonic;
+*** ../vim-7.1.316/src/version.c       Fri Jun 20 11:10:53 2008
+--- src/version.c      Fri Jun 20 11:38:25 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     317,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+43. You tell the kids they can't use the computer because "Daddy's got work to
+    do" and you don't even have a job.
+
+ /// 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.1.318 b/7.1.318
new file mode 100644 (file)
index 0000000..0da572e
--- /dev/null
+++ b/7.1.318
@@ -0,0 +1,196 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.318
+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.1.318
+Problem:    Memory leak when closing xsmp connection.  Crash on exit when
+           using Lesstif.
+Solution:   Don't close the X display to work around a Lesstif bug.  Free
+           clientid.  Also fix a leak for Motif and Athena. (Dominique Pelle)
+Files:     src/gui_x11.c, src/os_unix.c
+
+
+*** ../vim-7.1.317/src/gui_x11.c       Thu May 10 21:11:45 2007
+--- src/gui_x11.c      Sun Jun  8 17:13:45 2008
+***************
+*** 1538,1545 ****
+--- 1538,1548 ----
+      attr.depth = DefaultDepthOfScreen(scr);
+  
+      if (!icon)
++     {
+       XpmCreatePixmapFromData(dsp, root_window, magick, &icon,
+                                                          &icon_mask, &attr);
++      XpmFreeAttributes(&attr);
++     }
+  
+  # ifdef FEAT_GUI_ATHENA
+      XtVaSetValues(vimShell, XtNiconPixmap, icon, XtNiconMask, icon_mask, NULL);
+*** ../vim-7.1.317/src/os_unix.c       Wed May  7 19:05:55 2008
+--- src/os_unix.c      Tue Jun 17 21:03:54 2008
+***************
+*** 209,214 ****
+--- 209,215 ----
+  {
+      SmcConn smcconn;     /* The SM connection ID */
+      IceConn iceconn;     /* The ICE connection ID */
++     char *clientid;         /* The client ID for the current smc session */
+      Bool save_yourself;     /* If we're in the middle of a save_yourself */
+      Bool shutdown;       /* If we're in shutdown mode */
+  } xsmp_config_T;
+***************
+*** 2887,2902 ****
+      if (clip_plus.owned)
+       clip_lose_selection(&clip_plus);
+  # endif
+! # if (defined(FEAT_X11) && defined(FEAT_XCLIPBOARD)) || defined(PROTO)
+      if (xterm_Shell != (Widget)0)
+       XtDestroyWidget(xterm_Shell);
+      if (xterm_dpy != NULL)
+       XtCloseDisplay(xterm_dpy);
+      if (app_context != (XtAppContext)NULL)
+       XtDestroyApplicationContext(app_context);
+  # endif
+  # ifdef FEAT_X11
+!     if (x11_display != NULL && x11_display != xterm_dpy)
+       XCloseDisplay(x11_display);
+  # endif
+  # if defined(HAVE_SIGALTSTACK) || defined(HAVE_SIGSTACK)
+--- 2893,2920 ----
+      if (clip_plus.owned)
+       clip_lose_selection(&clip_plus);
+  # endif
+! # if defined(FEAT_X11) && defined(FEAT_XCLIPBOARD)
+      if (xterm_Shell != (Widget)0)
+       XtDestroyWidget(xterm_Shell);
++ #  ifndef LESSTIF_VERSION
++     /* Lesstif crashes here, lose some memory */
+      if (xterm_dpy != NULL)
+       XtCloseDisplay(xterm_dpy);
+      if (app_context != (XtAppContext)NULL)
++     {
+       XtDestroyApplicationContext(app_context);
++ #   ifdef FEAT_X11
++      x11_display = NULL; /* freed by XtDestroyApplicationContext() */
++ #   endif
++     }
++ #  endif
+  # endif
+  # ifdef FEAT_X11
+!     if (x11_display != NULL
+! #  ifdef FEAT_XCLIPBOARD
+!          && x11_display != xterm_dpy
+! #  endif
+!          )
+       XCloseDisplay(x11_display);
+  # endif
+  # if defined(HAVE_SIGALTSTACK) || defined(HAVE_SIGSTACK)
+***************
+*** 6290,6311 ****
+      }
+      if (xterm_dpy != NULL)
+      {
+! #if 0
+       /* Lesstif and Solaris crash here, lose some memory */
+       XtCloseDisplay(xterm_dpy);
+! #endif
+       if (x11_display == xterm_dpy)
+           x11_display = NULL;
+       xterm_dpy = NULL;
+      }
+! #if 0
+      if (app_context != (XtAppContext)NULL)
+      {
+       /* Lesstif and Solaris crash here, lose some memory */
+       XtDestroyApplicationContext(app_context);
+       app_context = (XtAppContext)NULL;
+      }
+! #endif
+  }
+  # endif
+  
+--- 6308,6329 ----
+      }
+      if (xterm_dpy != NULL)
+      {
+! #  if 0
+       /* Lesstif and Solaris crash here, lose some memory */
+       XtCloseDisplay(xterm_dpy);
+! #  endif
+       if (x11_display == xterm_dpy)
+           x11_display = NULL;
+       xterm_dpy = NULL;
+      }
+! #  if 0
+      if (app_context != (XtAppContext)NULL)
+      {
+       /* Lesstif and Solaris crash here, lose some memory */
+       XtDestroyApplicationContext(app_context);
+       app_context = (XtAppContext)NULL;
+      }
+! #  endif
+  }
+  # endif
+  
+***************
+*** 6557,6563 ****
+  xsmp_init(void)
+  {
+      char             errorstring[80];
+-     char             *clientid;
+      SmcCallbacks     smcallbacks;
+  #if 0
+      SmPropValue              smname;
+--- 6575,6580 ----
+***************
+*** 6599,6605 ****
+                    | SmcSaveCompleteProcMask | SmcShutdownCancelledProcMask,
+           &smcallbacks,
+           NULL,
+!          &clientid,
+           sizeof(errorstring),
+           errorstring);
+      if (xsmp.smcconn == NULL)
+--- 6616,6622 ----
+                    | SmcSaveCompleteProcMask | SmcShutdownCancelledProcMask,
+           &smcallbacks,
+           NULL,
+!          &xsmp.clientid,
+           sizeof(errorstring),
+           errorstring);
+      if (xsmp.smcconn == NULL)
+***************
+*** 6638,6643 ****
+--- 6655,6662 ----
+      if (xsmp_icefd != -1)
+      {
+       SmcCloseConnection(xsmp.smcconn, 0, NULL);
++      vim_free(xsmp.clientid);
++      xsmp.clientid = NULL;
+       xsmp_icefd = -1;
+      }
+  }
+*** ../vim-7.1.317/src/version.c       Fri Jun 20 11:39:04 2008
+--- src/version.c      Fri Jun 20 11:56:09 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     318,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+44. Your friends no longer send you e-mail...they just log on to your IRC
+    channel.
+
+ /// 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.1.319 b/7.1.319
new file mode 100644 (file)
index 0000000..4a206c3
--- /dev/null
+++ b/7.1.319
@@ -0,0 +1,56 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.319
+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.1.319
+Problem:    When a register has an illegal utf-8 sequence, pasting it on the
+           command line causes an illegal memory access.
+Solution:   Use mb_cptr2char_adv(). (Dominique Pelle)
+Files:     src/ex_getln.c
+
+
+*** ../vim-7.1.318/src/ex_getln.c      Thu May 29 15:33:13 2008
+--- src/ex_getln.c     Mon Jun  9 20:10:51 2008
+***************
+*** 3032,3041 ****
+               ++s;
+  #ifdef FEAT_MBYTE
+           if (has_mbyte)
+!          {
+!              c = mb_ptr2char(s);
+!              s += mb_char2len(c);
+!          }
+           else
+  #endif
+               c = *s++;
+--- 3033,3039 ----
+               ++s;
+  #ifdef FEAT_MBYTE
+           if (has_mbyte)
+!              c = mb_cptr2char_adv(&s);
+           else
+  #endif
+               c = *s++;
+*** ../vim-7.1.318/src/version.c       Fri Jun 20 11:58:27 2008
+--- src/version.c      Fri Jun 20 12:53:16 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     319,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+46. Your wife makes a new rule: "The computer cannot come to bed."
+
+ /// 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.1.320 b/7.1.320
new file mode 100644 (file)
index 0000000..a732964
--- /dev/null
+++ b/7.1.320
@@ -0,0 +1,1111 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.320
+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.1.320 (extra)
+Problem:    Win64: Warnings while compiling Python interface.
+Solution:   Use PyInt in more places.  Also update version message for the
+           console. (George Reilly)
+Files:     src/if_python.c, src/version.c
+
+
+*** ../vim-7.1.319/src/if_python.c     Wed Jun  4 13:33:15 2008
+--- src/if_python.c    Fri Jun 20 14:45:59 2008
+***************
+*** 50,60 ****
+  
+  #if !defined(FEAT_PYTHON) && defined(PROTO)
+  /* Use this to be able to generate prototypes without python being used. */
+! # define PyObject int
+! # define PyThreadState int
+! # define PyTypeObject int
+! struct PyMethodDef { int a; };
+! # define PySequenceMethods int
+  #endif
+  
+  #if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02050000
+--- 50,60 ----
+  
+  #if !defined(FEAT_PYTHON) && defined(PROTO)
+  /* Use this to be able to generate prototypes without python being used. */
+! # define PyObject Py_ssize_t
+! # define PyThreadState Py_ssize_t
+! # define PyTypeObject Py_ssize_t
+! struct PyMethodDef { Py_ssize_t a; };
+! # define PySequenceMethods Py_ssize_t
+  #endif
+  
+  #if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02050000
+***************
+*** 64,69 ****
+--- 64,70 ----
+  # define PyIntIntArgFunc ssizessizeargfunc
+  # define PyIntObjArgProc ssizeobjargproc
+  # define PyIntIntObjArgProc ssizessizeobjargproc
++ # define Py_ssize_t_fmt "n"
+  #else
+  # define PyInt int
+  # define PyInquiry inquiry
+***************
+*** 71,76 ****
+--- 72,78 ----
+  # define PyIntIntArgFunc intintargfunc
+  # define PyIntObjArgProc intobjargproc
+  # define PyIntIntObjArgProc intintobjargproc
++ # define Py_ssize_t_fmt "i"
+  #endif
+  
+  /* Parser flags */
+***************
+*** 85,93 ****
+  
+  #if defined(DYNAMIC_PYTHON) || defined(PROTO)
+  # ifndef DYNAMIC_PYTHON
+! #  define HINSTANCE int              /* for generating prototypes */
+  # endif
+  
+  /*
+   * Wrapper defines
+   */
+--- 87,104 ----
+  
+  #if defined(DYNAMIC_PYTHON) || defined(PROTO)
+  # ifndef DYNAMIC_PYTHON
+! #  define HINSTANCE long_u           /* for generating prototypes */
+  # endif
+  
++ /* This makes if_python.c compile without warnings against Python 2.5
++  * on Win32 and Win64. */
++ #undef PyRun_SimpleString
++ #undef PyArg_Parse
++ #undef PyArg_ParseTuple
++ #undef Py_BuildValue
++ #undef Py_InitModule4
++ #undef Py_InitModule4_64
++ 
+  /*
+   * Wrapper defines
+   */
+***************
+*** 269,275 ****
+--- 280,290 ----
+      {"PyType_Type", (PYTHON_PROC*)&dll_PyType_Type},
+      {"Py_BuildValue", (PYTHON_PROC*)&dll_Py_BuildValue},
+      {"Py_FindMethod", (PYTHON_PROC*)&dll_Py_FindMethod},
++ # if (PY_VERSION_HEX >= 0x02050000) && SIZEOF_SIZE_T != SIZEOF_INT
++     {"Py_InitModule4_64", (PYTHON_PROC*)&dll_Py_InitModule4},
++ # else
+      {"Py_InitModule4", (PYTHON_PROC*)&dll_Py_InitModule4},
++ # endif
+      {"Py_Initialize", (PYTHON_PROC*)&dll_Py_Initialize},
+      {"Py_Finalize", (PYTHON_PROC*)&dll_Py_Finalize},
+      {"Py_IsInitialized", (PYTHON_PROC*)&dll_Py_IsInitialized},
+***************
+*** 339,346 ****
+   * TRUE, else FALSE.
+   */
+      int
+! python_enabled(verbose)
+!     int              verbose;
+  {
+      return python_runtime_link_init(DYNAMIC_PYTHON_DLL, verbose) == OK;
+  }
+--- 354,360 ----
+   * TRUE, else FALSE.
+   */
+      int
+! python_enabled(int verbose)
+  {
+      return python_runtime_link_init(DYNAMIC_PYTHON_DLL, verbose) == OK;
+  }
+***************
+*** 374,381 ****
+   */
+  
+  static void DoPythonCommand(exarg_T *, const char *);
+! static int RangeStart;
+! static int RangeEnd;
+  
+  static void PythonIO_Flush(void);
+  static int PythonIO_Init(void);
+--- 388,395 ----
+   */
+  
+  static void DoPythonCommand(exarg_T *, const char *);
+! static PyInt RangeStart;
+! static PyInt RangeEnd;
+  
+  static void PythonIO_Flush(void);
+  static int PythonIO_Init(void);
+***************
+*** 384,395 ****
+  /* Utility functions for the vim/python interface
+   * ----------------------------------------------
+   */
+! static PyObject *GetBufferLine(buf_T *, int);
+  static PyObject *GetBufferLineList(buf_T *, PyInt, PyInt);
+  
+! static int SetBufferLine(buf_T *, int, PyObject *, int *);
+! static int SetBufferLineList(buf_T *, PyInt, PyInt, PyObject *, int *);
+! static int InsertBufferLines(buf_T *, int, PyObject *, int *);
+  
+  static PyObject *LineToString(const char *);
+  static char *StringToLine(PyObject *);
+--- 398,409 ----
+  /* Utility functions for the vim/python interface
+   * ----------------------------------------------
+   */
+! static PyObject *GetBufferLine(buf_T *, PyInt);
+  static PyObject *GetBufferLineList(buf_T *, PyInt, PyInt);
+  
+! static int SetBufferLine(buf_T *, PyInt, PyObject *, PyInt *);
+! static int SetBufferLineList(buf_T *, PyInt, PyInt, PyObject *, PyInt *);
+! static int InsertBufferLines(buf_T *, PyInt, PyObject *, PyInt *);
+  
+  static PyObject *LineToString(const char *);
+  static char *StringToLine(PyObject *);
+***************
+*** 690,696 ****
+  static PyObject *OutputWritelines(PyObject *, PyObject *);
+  
+  typedef void (*writefn)(char_u *);
+! static void writer(writefn fn, char_u *str, int n);
+  
+  /* Output object definition
+   */
+--- 704,710 ----
+  static PyObject *OutputWritelines(PyObject *, PyObject *);
+  
+  typedef void (*writefn)(char_u *);
+! static void writer(writefn fn, char_u *str, PyInt n);
+  
+  /* Output object definition
+   */
+***************
+*** 812,818 ****
+      {
+       PyObject *line = PyList_GetItem(list, i);
+       char *str;
+!      int len;
+  
+       if (!PyArg_Parse(line, "s#", &str, &len)) {
+           PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
+--- 826,832 ----
+      {
+       PyObject *line = PyList_GetItem(list, i);
+       char *str;
+!      PyInt len;
+  
+       if (!PyArg_Parse(line, "s#", &str, &len)) {
+           PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
+***************
+*** 836,850 ****
+   */
+  
+  static char_u *buffer = NULL;
+! static int buffer_len = 0;
+! static int buffer_size = 0;
+  
+  static writefn old_fn = NULL;
+  
+      static void
+! buffer_ensure(int n)
+  {
+!     int new_size;
+      char_u *new_buffer;
+  
+      if (n < buffer_size)
+--- 850,864 ----
+   */
+  
+  static char_u *buffer = NULL;
+! static PyInt buffer_len = 0;
+! static PyInt buffer_size = 0;
+  
+  static writefn old_fn = NULL;
+  
+      static void
+! buffer_ensure(PyInt n)
+  {
+!     PyInt new_size;
+      char_u *new_buffer;
+  
+      if (n < buffer_size)
+***************
+*** 884,890 ****
+  }
+  
+      static void
+! writer(writefn fn, char_u *str, int n)
+  {
+      char_u *ptr;
+  
+--- 898,904 ----
+  }
+  
+      static void
+! writer(writefn fn, char_u *str, PyInt n)
+  {
+      char_u *ptr;
+  
+***************
+*** 895,901 ****
+  
+      while (n > 0 && (ptr = memchr(str, '\n', n)) != NULL)
+      {
+!      int len = ptr - str;
+  
+       buffer_ensure(buffer_len + len + 1);
+  
+--- 909,915 ----
+  
+      while (n > 0 && (ptr = memchr(str, '\n', n)) != NULL)
+      {
+!      PyInt len = ptr - str;
+  
+       buffer_ensure(buffer_len + len + 1);
+  
+***************
+*** 1022,1035 ****
+  {
+      PyObject_HEAD
+      BufferObject *buf;
+!     int start;
+!     int end;
+  }
+  RangeObject;
+  
+  #define RangeType_Check(obj) ((obj)->ob_type == &RangeType)
+  
+! static PyObject *RangeNew(buf_T *, int, int);
+  
+  static void RangeDestructor(PyObject *);
+  static PyObject *RangeGetattr(PyObject *, char *);
+--- 1036,1049 ----
+  {
+      PyObject_HEAD
+      BufferObject *buf;
+!     PyInt start;
+!     PyInt end;
+  }
+  RangeObject;
+  
+  #define RangeType_Check(obj) ((obj)->ob_type == &RangeType)
+  
+! static PyObject *RangeNew(buf_T *, PyInt, PyInt);
+  
+  static void RangeDestructor(PyObject *);
+  static PyObject *RangeGetattr(PyObject *, char *);
+***************
+*** 1069,1076 ****
+  
+  static struct PyMethodDef VimMethods[] = {
+      /* name,      function,          calling,    documentation */
+!     {"command",           VimCommand,        1,          "" },
+!     {"eval",      VimEval,           1,          "" },
+      { NULL,       NULL,              0,          NULL }
+  };
+  
+--- 1083,1090 ----
+  
+  static struct PyMethodDef VimMethods[] = {
+      /* name,      function,          calling,    documentation */
+!     {"command",           VimCommand,        1,          "Execute a Vim ex-mode command" },
+!     {"eval",      VimEval,           1,          "Evaluate an expression using Vim evaluator" },
+      { NULL,       NULL,              0,          NULL }
+  };
+  
+***************
+*** 1110,1116 ****
+   * Function to translate a typval_T into a PyObject; this will recursively
+   * translate lists/dictionaries into their Python equivalents.
+   *
+!  * The depth parameter is too avoid infinite recursion, set it to 1 when
+   * you call VimToPython.
+   */
+      static PyObject *
+--- 1124,1130 ----
+   * Function to translate a typval_T into a PyObject; this will recursively
+   * translate lists/dictionaries into their Python equivalents.
+   *
+!  * The depth parameter is to avoid infinite recursion, set it to 1 when
+   * you call VimToPython.
+   */
+      static PyObject *
+***************
+*** 1130,1136 ****
+  
+      /* Check if we run into a recursive loop.  The item must be in lookupDict
+       * then and we can use it again. */
+!     sprintf(ptrBuf, "%ld", (long)our_tv);
+      result = PyDict_GetItemString(lookupDict, ptrBuf);
+      if (result != NULL)
+       Py_INCREF(result);
+--- 1144,1150 ----
+  
+      /* Check if we run into a recursive loop.  The item must be in lookupDict
+       * then and we can use it again. */
+!     sprintf(ptrBuf, PRINTF_DECIMAL_LONG_U, (long_u)our_tv);
+      result = PyDict_GetItemString(lookupDict, ptrBuf);
+      if (result != NULL)
+       Py_INCREF(result);
+***************
+*** 1184,1190 ****
+       if (our_tv->vval.v_dict != NULL)
+       {
+           hashtab_T   *ht = &our_tv->vval.v_dict->dv_hashtab;
+!          int         todo = ht->ht_used;
+           hashitem_T  *hi;
+           dictitem_T  *di;
+  
+--- 1198,1204 ----
+       if (our_tv->vval.v_dict != NULL)
+       {
+           hashtab_T   *ht = &our_tv->vval.v_dict->dv_hashtab;
+!          long_u      todo = ht->ht_used;
+           hashitem_T  *hi;
+           dictitem_T  *di;
+  
+***************
+*** 1273,1279 ****
+  }
+  
+      static PyObject *
+! RBItem(BufferObject *self, PyInt n, int start, int end)
+  {
+      if (CheckBuffer(self))
+       return NULL;
+--- 1287,1293 ----
+  }
+  
+      static PyObject *
+! RBItem(BufferObject *self, PyInt n, PyInt start, PyInt end)
+  {
+      if (CheckBuffer(self))
+       return NULL;
+***************
+*** 1288,1294 ****
+  }
+  
+      static PyObject *
+! RBSlice(BufferObject *self, PyInt lo, PyInt hi, int start, int end)
+  {
+      PyInt size;
+  
+--- 1302,1308 ----
+  }
+  
+      static PyObject *
+! RBSlice(BufferObject *self, PyInt lo, PyInt hi, PyInt start, PyInt end)
+  {
+      PyInt size;
+  
+***************
+*** 1312,1320 ****
+  }
+  
+      static PyInt
+! RBAssItem(BufferObject *self, PyInt n, PyObject *val, int start, int end, int *new_end)
+  {
+!     int len_change;
+  
+      if (CheckBuffer(self))
+       return -1;
+--- 1326,1334 ----
+  }
+  
+      static PyInt
+! RBAssItem(BufferObject *self, PyInt n, PyObject *val, PyInt start, PyInt end, PyInt *new_end)
+  {
+!     PyInt len_change;
+  
+      if (CheckBuffer(self))
+       return -1;
+***************
+*** 1335,1344 ****
+  }
+  
+      static PyInt
+! RBAssSlice(BufferObject *self, PyInt lo, PyInt hi, PyObject *val, int start, int end, int *new_end)
+  {
+!     int size;
+!     int len_change;
+  
+      /* Self must be a valid buffer */
+      if (CheckBuffer(self))
+--- 1349,1358 ----
+  }
+  
+      static PyInt
+! RBAssSlice(BufferObject *self, PyInt lo, PyInt hi, PyObject *val, PyInt start, PyInt end, PyInt *new_end)
+  {
+!     PyInt size;
+!     PyInt len_change;
+  
+      /* Self must be a valid buffer */
+      if (CheckBuffer(self))
+***************
+*** 1368,1386 ****
+  }
+  
+      static PyObject *
+! RBAppend(BufferObject *self, PyObject *args, int start, int end, int *new_end)
+  {
+      PyObject *lines;
+!     int len_change;
+!     int max;
+!     int n;
+  
+      if (CheckBuffer(self))
+       return NULL;
+  
+      max = n = end - start + 1;
+  
+!     if (!PyArg_ParseTuple(args, "O|i", &lines, &n))
+       return NULL;
+  
+      if (n < 0 || n > max)
+--- 1382,1400 ----
+  }
+  
+      static PyObject *
+! RBAppend(BufferObject *self, PyObject *args, PyInt start, PyInt end, PyInt *new_end)
+  {
+      PyObject *lines;
+!     PyInt len_change;
+!     PyInt max;
+!     PyInt n;
+  
+      if (CheckBuffer(self))
+       return NULL;
+  
+      max = n = end - start + 1;
+  
+!     if (!PyArg_ParseTuple(args, "O|" Py_ssize_t_fmt, &lines, &n))
+       return NULL;
+  
+      if (n < 0 || n > max)
+***************
+*** 1405,1413 ****
+  
+  static struct PyMethodDef BufferMethods[] = {
+      /* name,     function,           calling,    documentation */
+!     {"append",           BufferAppend,       1,          "" },
+!     {"mark",     BufferMark,         1,          "" },
+!     {"range",            BufferRange,        1,          "" },
+      { NULL,      NULL,               0,          NULL }
+  };
+  
+--- 1419,1427 ----
+  
+  static struct PyMethodDef BufferMethods[] = {
+      /* name,     function,           calling,    documentation */
+!     {"append",           BufferAppend,       1,          "Append data to Vim buffer" },
+!     {"mark",     BufferMark,         1,          "Return (row,col) representing position of named mark" },
+!     {"range",            BufferRange,        1,          "Return a range object which represents the part of the given buffer between line numbers s and e" },
+      { NULL,      NULL,               0,          NULL }
+  };
+  
+***************
+*** 1503,1511 ****
+       return NULL;
+  
+      if (strcmp(name, "name") == 0)
+!      return Py_BuildValue("s",this->buf->b_ffname);
+      else if (strcmp(name, "number") == 0)
+!      return Py_BuildValue("i",this->buf->b_fnum);
+      else if (strcmp(name,"__members__") == 0)
+       return Py_BuildValue("[ss]", "name", "number");
+      else
+--- 1517,1525 ----
+       return NULL;
+  
+      if (strcmp(name, "name") == 0)
+!      return Py_BuildValue("s", this->buf->b_ffname);
+      else if (strcmp(name, "number") == 0)
+!      return Py_BuildValue(Py_ssize_t_fmt, this->buf->b_fnum);
+      else if (strcmp(name,"__members__") == 0)
+       return Py_BuildValue("[ss]", "name", "number");
+      else
+***************
+*** 1520,1533 ****
+  
+      if (this->buf == INVALID_BUFFER_VALUE)
+      {
+!      vim_snprintf(repr, 100, _("<buffer object (deleted) at %8lX>"),
+!                                                              (long)(self));
+       return PyString_FromString(repr);
+      }
+      else
+      {
+       char *name = (char *)this->buf->b_fname;
+!      int len;
+  
+       if (name == NULL)
+           name = "";
+--- 1534,1546 ----
+  
+      if (this->buf == INVALID_BUFFER_VALUE)
+      {
+!      vim_snprintf(repr, 100, _("<buffer object (deleted) at %p>"), (self));
+       return PyString_FromString(repr);
+      }
+      else
+      {
+       char *name = (char *)this->buf->b_fname;
+!      PyInt len;
+  
+       if (name == NULL)
+           name = "";
+***************
+*** 1572,1578 ****
+  BufferAssItem(PyObject *self, PyInt n, PyObject *val)
+  {
+      return RBAssItem((BufferObject *)(self), n, val, 1,
+!                   (int)((BufferObject *)(self))->buf->b_ml.ml_line_count,
+                    NULL);
+  }
+  
+--- 1585,1591 ----
+  BufferAssItem(PyObject *self, PyInt n, PyObject *val)
+  {
+      return RBAssItem((BufferObject *)(self), n, val, 1,
+!                   (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count,
+                    NULL);
+  }
+  
+***************
+*** 1580,1586 ****
+  BufferAssSlice(PyObject *self, PyInt lo, PyInt hi, PyObject *val)
+  {
+      return RBAssSlice((BufferObject *)(self), lo, hi, val, 1,
+!                    (int)((BufferObject *)(self))->buf->b_ml.ml_line_count,
+                     NULL);
+  }
+  
+--- 1593,1599 ----
+  BufferAssSlice(PyObject *self, PyInt lo, PyInt hi, PyObject *val)
+  {
+      return RBAssSlice((BufferObject *)(self), lo, hi, val, 1,
+!                    (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count,
+                     NULL);
+  }
+  
+***************
+*** 1588,1594 ****
+  BufferAppend(PyObject *self, PyObject *args)
+  {
+      return RBAppend((BufferObject *)(self), args, 1,
+!                  (int)((BufferObject *)(self))->buf->b_ml.ml_line_count,
+                   NULL);
+  }
+  
+--- 1601,1607 ----
+  BufferAppend(PyObject *self, PyObject *args)
+  {
+      return RBAppend((BufferObject *)(self), args, 1,
+!                  (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count,
+                   NULL);
+  }
+  
+***************
+*** 1633,1645 ****
+      static PyObject *
+  BufferRange(PyObject *self, PyObject *args)
+  {
+!     int start;
+!     int end;
+  
+      if (CheckBuffer((BufferObject *)(self)))
+       return NULL;
+  
+!     if (!PyArg_ParseTuple(args, "ii", &start, &end))
+       return NULL;
+  
+      return RangeNew(((BufferObject *)(self))->buf, start, end);
+--- 1646,1658 ----
+      static PyObject *
+  BufferRange(PyObject *self, PyObject *args)
+  {
+!     PyInt start;
+!     PyInt end;
+  
+      if (CheckBuffer((BufferObject *)(self)))
+       return NULL;
+  
+!     if (!PyArg_ParseTuple(args, Py_ssize_t_fmt Py_ssize_t_fmt, &start, &end))
+       return NULL;
+  
+      return RangeNew(((BufferObject *)(self))->buf, start, end);
+***************
+*** 1650,1656 ****
+  
+  static struct PyMethodDef RangeMethods[] = {
+      /* name,     function,           calling,    documentation */
+!     {"append",           RangeAppend,        1,          "" },
+      { NULL,      NULL,               0,          NULL }
+  };
+  
+--- 1663,1669 ----
+  
+  static struct PyMethodDef RangeMethods[] = {
+      /* name,     function,           calling,    documentation */
+!     {"append",           RangeAppend,        1,          "Append data to the Vim range" },
+      { NULL,      NULL,               0,          NULL }
+  };
+  
+***************
+*** 1691,1697 ****
+   */
+  
+      static PyObject *
+! RangeNew(buf_T *buf, int start, int end)
+  {
+      BufferObject *bufr;
+      RangeObject *self;
+--- 1704,1710 ----
+   */
+  
+      static PyObject *
+! RangeNew(buf_T *buf, PyInt start, PyInt end)
+  {
+      BufferObject *bufr;
+      RangeObject *self;
+***************
+*** 1725,1733 ****
+  RangeGetattr(PyObject *self, char *name)
+  {
+      if (strcmp(name, "start") == 0)
+!      return Py_BuildValue("i",((RangeObject *)(self))->start - 1);
+      else if (strcmp(name, "end") == 0)
+!      return Py_BuildValue("i",((RangeObject *)(self))->end - 1);
+      else
+       return Py_FindMethod(RangeMethods, self, name);
+  }
+--- 1738,1746 ----
+  RangeGetattr(PyObject *self, char *name)
+  {
+      if (strcmp(name, "start") == 0)
+!      return Py_BuildValue(Py_ssize_t_fmt, ((RangeObject *)(self))->start - 1);
+      else if (strcmp(name, "end") == 0)
+!      return Py_BuildValue(Py_ssize_t_fmt, ((RangeObject *)(self))->end - 1);
+      else
+       return Py_FindMethod(RangeMethods, self, name);
+  }
+***************
+*** 1740,1747 ****
+  
+      if (this->buf->buf == INVALID_BUFFER_VALUE)
+      {
+!      vim_snprintf(repr, 100, "<range object (for deleted buffer) at %8lX>",
+!                                                              (long)(self));
+       return PyString_FromString(repr);
+      }
+      else
+--- 1753,1760 ----
+  
+      if (this->buf->buf == INVALID_BUFFER_VALUE)
+      {
+!      vim_snprintf(repr, 100, "<range object (for deleted buffer) at %p>",
+!                                                                    (self));
+       return PyString_FromString(repr);
+      }
+      else
+***************
+*** 1869,1875 ****
+  BufListLength(PyObject *self)
+  {
+      buf_T    *b = firstbuf;
+!     int              n = 0;
+  
+      while (b)
+      {
+--- 1882,1888 ----
+  BufListLength(PyObject *self)
+  {
+      buf_T    *b = firstbuf;
+!     PyInt    n = 0;
+  
+      while (b)
+      {
+***************
+*** 2115,2122 ****
+  
+      if (this->win == INVALID_WINDOW_VALUE)
+      {
+!      vim_snprintf(repr, 100, _("<window object (deleted) at %.8lX>"),
+!                                                              (long)(self));
+       return PyString_FromString(repr);
+      }
+      else
+--- 2128,2134 ----
+  
+      if (this->win == INVALID_WINDOW_VALUE)
+      {
+!      vim_snprintf(repr, 100, _("<window object (deleted) at %p>"), (self));
+       return PyString_FromString(repr);
+      }
+      else
+***************
+*** 2128,2135 ****
+           ++i;
+  
+       if (w == NULL)
+!          vim_snprintf(repr, 100, _("<window object (unknown) at %.8lX>"),
+!                                                              (long)(self));
+       else
+           vim_snprintf(repr, 100, _("<window %d>"), i);
+  
+--- 2140,2147 ----
+           ++i;
+  
+       if (w == NULL)
+!          vim_snprintf(repr, 100, _("<window object (unknown) at %p>"),
+!                                                                    (self));
+       else
+           vim_snprintf(repr, 100, _("<window %d>"), i);
+  
+***************
+*** 2186,2192 ****
+  WinListLength(PyObject *self)
+  {
+      win_T    *w = firstwin;
+!     int              n = 0;
+  
+      while (w != NULL)
+      {
+--- 2198,2204 ----
+  WinListLength(PyObject *self)
+  {
+      win_T    *w = firstwin;
+!     PyInt    n = 0;
+  
+      while (w != NULL)
+      {
+***************
+*** 2254,2260 ****
+      else if (strcmp(name, "window") == 0)
+       return (PyObject *)WindowNew(curwin);
+      else if (strcmp(name, "line") == 0)
+!      return GetBufferLine(curbuf, (int)curwin->w_cursor.lnum);
+      else if (strcmp(name, "range") == 0)
+       return RangeNew(curbuf, RangeStart, RangeEnd);
+      else if (strcmp(name,"__members__") == 0)
+--- 2266,2272 ----
+      else if (strcmp(name, "window") == 0)
+       return (PyObject *)WindowNew(curwin);
+      else if (strcmp(name, "line") == 0)
+!      return GetBufferLine(curbuf, (PyInt)curwin->w_cursor.lnum);
+      else if (strcmp(name, "range") == 0)
+       return RangeNew(curbuf, RangeStart, RangeEnd);
+      else if (strcmp(name,"__members__") == 0)
+***************
+*** 2272,2278 ****
+  {
+      if (strcmp(name, "line") == 0)
+      {
+!      if (SetBufferLine(curbuf, (int)curwin->w_cursor.lnum, value, NULL) == FAIL)
+           return -1;
+  
+       return 0;
+--- 2284,2290 ----
+  {
+      if (strcmp(name, "line") == 0)
+      {
+!      if (SetBufferLine(curbuf, (PyInt)curwin->w_cursor.lnum, value, NULL) == FAIL)
+           return -1;
+  
+       return 0;
+***************
+*** 2344,2350 ****
+      /* Set sys.argv[] to avoid a crash in warn(). */
+      PySys_SetArgv(1, argv);
+  
+!     mod = Py_InitModule("vim", VimMethods);
+      dict = PyModule_GetDict(mod);
+  
+      VimError = Py_BuildValue("s", "vim.error");
+--- 2356,2362 ----
+      /* Set sys.argv[] to avoid a crash in warn(). */
+      PySys_SetArgv(1, argv);
+  
+!     mod = Py_InitModule4("vim", VimMethods, (char *)NULL, (PyObject *)NULL, PYTHON_API_VERSION);
+      dict = PyModule_GetDict(mod);
+  
+      VimError = Py_BuildValue("s", "vim.error");
+***************
+*** 2369,2375 ****
+   * string object.
+   */
+      static PyObject *
+! GetBufferLine(buf_T *buf, int n)
+  {
+      return LineToString((char *)ml_get_buf(buf, (linenr_T)n, FALSE));
+  }
+--- 2381,2387 ----
+   * string object.
+   */
+      static PyObject *
+! GetBufferLine(buf_T *buf, PyInt n)
+  {
+      return LineToString((char *)ml_get_buf(buf, (linenr_T)n, FALSE));
+  }
+***************
+*** 2422,2428 ****
+   * deleted).
+   */
+      static void
+! py_fix_cursor(int lo, int hi, int extra)
+  {
+      if (curwin->w_cursor.lnum >= lo)
+      {
+--- 2434,2440 ----
+   * deleted).
+   */
+      static void
+! py_fix_cursor(linenr_T lo, linenr_T hi, linenr_T extra)
+  {
+      if (curwin->w_cursor.lnum >= lo)
+      {
+***************
+*** 2454,2460 ****
+   * is set to the change in the buffer length.
+   */
+      static int
+! SetBufferLine(buf_T *buf, int n, PyObject *line, int *len_change)
+  {
+      /* First of all, we check the thpe of the supplied Python object.
+       * There are three cases:
+--- 2466,2472 ----
+   * is set to the change in the buffer length.
+   */
+      static int
+! SetBufferLine(buf_T *buf, PyInt n, PyObject *line, PyInt *len_change)
+  {
+      /* First of all, we check the thpe of the supplied Python object.
+       * There are three cases:
+***************
+*** 2477,2483 ****
+       {
+           deleted_lines_mark((linenr_T)n, 1L);
+           if (buf == curwin->w_buffer)
+!              py_fix_cursor(n, n + 1, -1);
+       }
+  
+       curbuf = savebuf;
+--- 2489,2495 ----
+       {
+           deleted_lines_mark((linenr_T)n, 1L);
+           if (buf == curwin->w_buffer)
+!              py_fix_cursor((linenr_T)n, (linenr_T)n + 1, (linenr_T)-1);
+       }
+  
+       curbuf = savebuf;
+***************
+*** 2545,2551 ****
+   * is set to the change in the buffer length.
+   */
+      static int
+! SetBufferLineList(buf_T *buf, PyInt lo, PyInt hi, PyObject *list, int *len_change)
+  {
+      /* First of all, we check the thpe of the supplied Python object.
+       * There are three cases:
+--- 2557,2563 ----
+   * is set to the change in the buffer length.
+   */
+      static int
+! SetBufferLineList(buf_T *buf, PyInt lo, PyInt hi, PyObject *list, PyInt *len_change)
+  {
+      /* First of all, we check the thpe of the supplied Python object.
+       * There are three cases:
+***************
+*** 2556,2562 ****
+      if (list == Py_None || list == NULL)
+      {
+       PyInt   i;
+!      PyInt   n = hi - lo;
+       buf_T   *savebuf = curbuf;
+  
+       PyErr_Clear();
+--- 2568,2574 ----
+      if (list == Py_None || list == NULL)
+      {
+       PyInt   i;
+!      PyInt   n = (int)(hi - lo);
+       buf_T   *savebuf = curbuf;
+  
+       PyErr_Clear();
+***************
+*** 2577,2583 ****
+           deleted_lines_mark((linenr_T)lo, (long)i);
+  
+           if (buf == curwin->w_buffer)
+!              py_fix_cursor(lo, hi, -n);
+       }
+  
+       curbuf = savebuf;
+--- 2589,2595 ----
+           deleted_lines_mark((linenr_T)lo, (long)i);
+  
+           if (buf == curwin->w_buffer)
+!              py_fix_cursor((linenr_T)lo, (linenr_T)hi, (linenr_T)-n);
+       }
+  
+       curbuf = savebuf;
+***************
+*** 2595,2601 ****
+       PyInt   i;
+       PyInt   new_len = PyList_Size(list);
+       PyInt   old_len = hi - lo;
+!      int     extra = 0;      /* lines added to text, can be negative */
+       char    **array;
+       buf_T   *savebuf;
+  
+--- 2607,2613 ----
+       PyInt   i;
+       PyInt   new_len = PyList_Size(list);
+       PyInt   old_len = hi - lo;
+!      PyInt   extra = 0;      /* lines added to text, can be negative */
+       char    **array;
+       buf_T   *savebuf;
+  
+***************
+*** 2706,2712 ****
+       changed_lines((linenr_T)lo, 0, (linenr_T)hi, (long)extra);
+  
+       if (buf == curwin->w_buffer)
+!          py_fix_cursor(lo, hi, extra);
+  
+       curbuf = savebuf;
+  
+--- 2718,2724 ----
+       changed_lines((linenr_T)lo, 0, (linenr_T)hi, (long)extra);
+  
+       if (buf == curwin->w_buffer)
+!          py_fix_cursor((linenr_T)lo, (linenr_T)hi, (linenr_T)extra);
+  
+       curbuf = savebuf;
+  
+***************
+*** 2734,2740 ****
+   * is set to the change in the buffer length.
+   */
+      static int
+! InsertBufferLines(buf_T *buf, int n, PyObject *lines, int *len_change)
+  {
+      /* First of all, we check the type of the supplied Python object.
+       * It must be a string or a list, or the call is in error.
+--- 2746,2752 ----
+   * is set to the change in the buffer length.
+   */
+      static int
+! InsertBufferLines(buf_T *buf, PyInt n, PyObject *lines, PyInt *len_change)
+  {
+      /* First of all, we check the type of the supplied Python object.
+       * It must be a string or a list, or the call is in error.
+*** ../vim-7.1.319/src/version.c       Fri Jun 20 12:55:28 2008
+--- src/version.c      Fri Jun 20 16:25:28 2008
+***************
+*** 1367,1378 ****
+  # ifdef FEAT_GUI_W32
+  #  if defined(_MSC_VER) && (_MSC_VER <= 1010)
+      /* Only MS VC 4.1 and earlier can do Win32s */
+!     MSG_PUTS(_("\nMS-Windows 16/32 bit GUI version"));
+  #  else
+  #   ifdef _WIN64
+!     MSG_PUTS(_("\nMS-Windows 64 bit GUI version"));
+  #   else
+!     MSG_PUTS(_("\nMS-Windows 32 bit GUI version"));
+  #   endif
+  #  endif
+      if (gui_is_win32s())
+--- 1374,1385 ----
+  # ifdef FEAT_GUI_W32
+  #  if defined(_MSC_VER) && (_MSC_VER <= 1010)
+      /* Only MS VC 4.1 and earlier can do Win32s */
+!     MSG_PUTS(_("\nMS-Windows 16/32-bit GUI version"));
+  #  else
+  #   ifdef _WIN64
+!     MSG_PUTS(_("\nMS-Windows 64-bit GUI version"));
+  #   else
+!     MSG_PUTS(_("\nMS-Windows 32-bit GUI version"));
+  #   endif
+  #  endif
+      if (gui_is_win32s())
+***************
+*** 1381,1397 ****
+      MSG_PUTS(_(" with OLE support"));
+  # endif
+  # else
+!     MSG_PUTS(_("\nMS-Windows 32 bit console version"));
+  # endif
+  #endif
+  #ifdef WIN16
+!     MSG_PUTS(_("\nMS-Windows 16 bit version"));
+  #endif
+  #ifdef MSDOS
+  # ifdef DJGPP
+!     MSG_PUTS(_("\n32 bit MS-DOS version"));
+  # else
+!     MSG_PUTS(_("\n16 bit MS-DOS version"));
+  # endif
+  #endif
+  #ifdef MACOS
+--- 1388,1408 ----
+      MSG_PUTS(_(" with OLE support"));
+  # endif
+  # else
+! #  ifdef _WIN64
+!     MSG_PUTS(_("\nMS-Windows 64-bit console version"));
+! #  else
+!     MSG_PUTS(_("\nMS-Windows 32-bit console version"));
+! #  endif
+  # endif
+  #endif
+  #ifdef WIN16
+!     MSG_PUTS(_("\nMS-Windows 16-bit version"));
+  #endif
+  #ifdef MSDOS
+  # ifdef DJGPP
+!     MSG_PUTS(_("\n32-bit MS-DOS version"));
+  # else
+!     MSG_PUTS(_("\n16-bit MS-DOS version"));
+  # endif
+  #endif
+  #ifdef MACOS
+*** ../vim-7.1.319/src/version.c       Fri Jun 20 12:55:28 2008
+--- src/version.c      Fri Jun 20 16:25:28 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     320,
+  /**/
+
+-- 
+The real
+trick is
+this: to
+keep the
+lines as
+short as
+possible
+and keep
+the size
+the same
+yet free
+from the
+need for
+hyphena-
+Dammit!!  (Matthew Winn)
+
+ /// 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.1.321 b/7.1.321
new file mode 100644 (file)
index 0000000..01657af
--- /dev/null
+++ b/7.1.321
@@ -0,0 +1,85 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.321 (extra)
+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.1.321 (extra)
+Problem:    Win32 / Win64: Install file is outdated.
+Solution:   Update the text for recent compiler. (George Reilly)
+Files:     src/INSTALLpc.txt
+
+
+*** ../vim-7.1.320/src/INSTALLpc.txt   Sun Mar 16 14:52:53 2008
+--- src/INSTALLpc.txt  Fri Jun 20 13:39:35 2008
+***************
+*** 36,42 ****
+  Visual Studio
+  -------------
+  
+! Building with Visual Studio (VS 98, VS .NET, VS .NET 2003, and VS .NET 2005)
+  is straightforward. (These instructions should also work for VS 4 and VS 5.)
+  
+  To build Vim from the command line with MSVC, use Make_mvc.mak.
+--- 36,42 ----
+  Visual Studio
+  -------------
+  
+! Building with Visual Studio (VS 98, VS .NET, VS .NET 2003, VS 2005, and VS 2008)
+  is straightforward. (These instructions should also work for VS 4 and VS 5.)
+  
+  To build Vim from the command line with MSVC, use Make_mvc.mak.
+***************
+*** 139,145 ****
+  is also available through the Platform SDK, |ms-platform-sdk|.
+  
+  
+! Visual C++ 2005 Express Edition
+  -------------------------------
+  
+  Visual C++ 2005 Express Edition can be downloaded for free from:
+--- 139,145 ----
+  is also available through the Platform SDK, |ms-platform-sdk|.
+  
+  
+! Visual C++ 2005 Express Edition       *msvc-2005-express*
+  -------------------------------
+  
+  Visual C++ 2005 Express Edition can be downloaded for free from:
+***************
+*** 159,164 ****
+--- 159,172 ----
+  This includes the IDE and the debugger. You can build Vim with Make_mvc.mak.
+  
+  
++ Visual C++ 2008 Express Edition       *msvc-2008-express*
++ -------------------------------
++ 
++ Visual C++ 2008 Express Edition can be downloaded for free from:
++     http://msdn2.microsoft.com/en-us/express/default.aspx
++ This includes the IDE and the debugger. You can build Vim with Make_mvc.mak.
++ 
++ 
+  2. MinGW
+  ========
+  
+*** ../vim-7.1.320/src/version.c       Fri Jun 20 16:31:45 2008
+--- src/version.c      Fri Jun 20 16:50:50 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     321,
+  /**/
+
+-- 
+CVS sux, men don't like commitment
+
+ /// 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.1.322 b/7.1.322
new file mode 100644 (file)
index 0000000..7836393
--- /dev/null
+++ b/7.1.322
@@ -0,0 +1,80 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.322
+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.1.322
+Problem:    Can't get start of Visual area in an <expr> mapping.
+Solution:   Add the 'v' argument to getpos().
+Files:     runtime/doc/eval.txt, src/eval.c
+
+
+*** ../vim-7.1.321/runtime/doc/eval.txt        Wed May 28 16:48:00 2008
+--- runtime/doc/eval.txt       Thu Jun 19 22:46:23 2008
+***************
+*** 3515,3520 ****
+--- 3635,3644 ----
+                           returned)
+                   w0      first line visible in current window
+                   w$      last line visible in current window
++                  v       In Visual mode: the start of the Visual area (the
++                          cursor is the end).  When not in Visual mode
++                          returns the cursor position.  Differs from |'<| in
++                          that it's updated right away.
+               Note that a mark in another file can be used.  The line number
+               then applies to another buffer.
+               To get the column number use |col()|.  To get both use
+*** ../vim-7.1.321/src/eval.c  Thu May 29 21:46:10 2008
+--- src/eval.c Fri Jun 20 17:20:52 2008
+***************
+*** 16907,16915 ****
+      name = get_tv_string_chk(varp);
+      if (name == NULL)
+       return NULL;
+!     if (name[0] == '.')              /* cursor */
+       return &curwin->w_cursor;
+!     if (name[0] == '\'')     /* mark */
+      {
+       pp = getmark_fnum(name[1], FALSE, fnum);
+       if (pp == NULL || pp == (pos_T *)-1 || pp->lnum <= 0)
+--- 17478,17494 ----
+      name = get_tv_string_chk(varp);
+      if (name == NULL)
+       return NULL;
+!     if (name[0] == '.')                              /* cursor */
+       return &curwin->w_cursor;
+! #ifdef FEAT_VISUAL
+!     if (name[0] == 'v' && name[1] == NUL)    /* Visual start */
+!     {
+!      if (VIsual_active)
+!          return &VIsual;
+!      return &curwin->w_cursor;
+!     }
+! #endif
+!     if (name[0] == '\'')                     /* mark */
+      {
+       pp = getmark_fnum(name[1], FALSE, fnum);
+       if (pp == NULL || pp == (pos_T *)-1 || pp->lnum <= 0)
+*** ../vim-7.1.321/src/version.c       Fri Jun 20 16:51:54 2008
+--- src/version.c      Fri Jun 20 17:27:30 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     322,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+52. You ask a plumber how much it would cost to replace the chair in front of
+    your computer with a toilet.
+
+ /// 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.1.323 b/7.1.323
new file mode 100644 (file)
index 0000000..5929b22
--- /dev/null
+++ b/7.1.323
@@ -0,0 +1,60 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.323
+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.1.323
+Problem:    Test 19 fails with some termcaps. (Dominque Pelle)
+Solution:   Set the t_kb and t_kD termcap values.
+Files:     src/testdir/test19.in, src/testdir/test38.in
+
+
+*** ../vim-7.1.322/src/testdir/test19.in       Sun Jun 13 20:24:47 2004
+--- src/testdir/test19.in      Mon Jun 16 19:45:10 2008
+***************
+*** 2,7 ****
+--- 2,9 ----
+  
+  STARTTEST
+  :set smarttab expandtab ts=8 sw=4
++ :" make sure that backspace works, no matter what termcap is used
++ :set t_kD=\16x7f t_kb=\16x08
+  /some
+  r    :set noexpandtab
+  /other
+*** ../vim-7.1.322/src/testdir/test38.in       Sun Jun 13 20:28:25 2004
+--- src/testdir/test38.in      Mon Jun 16 19:46:35 2008
+***************
+*** 3,8 ****
+--- 3,10 ----
+  
+  STARTTEST
+  :so small.vim
++ :" make sure that backspace works, no matter what termcap is used
++ :set t_kD=\16x7f t_kb=\16x08
+  ggdGa
+  abcdefghi
+  jk   lmn
+*** ../vim-7.1.322/src/version.c       Fri Jun 20 17:30:45 2008
+--- src/version.c      Fri Jun 20 17:48:17 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     323,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+53. To find out what time it is, you send yourself an e-mail and check the
+    "Date:" field.
+
+ /// 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.1.324 b/7.1.324
new file mode 100644 (file)
index 0000000..090497d
--- /dev/null
+++ b/7.1.324
@@ -0,0 +1,58 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.324
+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.1.324
+Problem:    File name path length on Unix is limited to 1024.
+Solution:   Use PATH_MAX when it's more than 1000.
+Files:     src/os_unix.h
+
+
+*** ../vim-7.1.323/src/os_unix.h       Tue Jul 10 17:09:51 2007
+--- src/os_unix.h      Tue Jun 17 20:01:17 2008
+***************
+*** 432,438 ****
+   * Unix has plenty of memory, use large buffers
+   */
+  #define CMDBUFFSIZE 1024     /* size of the command processing buffer */
+! #define MAXPATHL    1024     /* Unix has long paths and plenty of memory */
+  
+  #define CHECK_INODE          /* used when checking if a swap file already
+                                   exists for a file */
+--- 432,444 ----
+   * Unix has plenty of memory, use large buffers
+   */
+  #define CMDBUFFSIZE 1024     /* size of the command processing buffer */
+! 
+! /* Use the system path length if it makes sense. */
+! #if defined(PATH_MAX) && (PATH_MAX > 1000)
+! # define MAXPATHL    PATH_MAX
+! #else
+! # define MAXPATHL    1024
+! #endif
+  
+  #define CHECK_INODE          /* used when checking if a swap file already
+                                   exists for a file */
+*** ../vim-7.1.323/src/version.c       Fri Jun 20 17:52:47 2008
+--- src/version.c      Fri Jun 20 18:04:25 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     324,
+  /**/
+
+-- 
+Q: What is a patch 22?
+A: A patch you need to include to make it possible to include patches.
+
+ /// 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.1.325 b/7.1.325
new file mode 100644 (file)
index 0000000..c2b9062
--- /dev/null
+++ b/7.1.325
@@ -0,0 +1,117 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.325
+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.1.325
+Problem:    When editing a command line that's longer than available space in
+           the window, the characters at the end are in reverse order.
+Solution:   Increment the insert position even when the command line doesn't
+           fit.  (Ingo Karkat)
+Files:     src/ex_getln.c
+
+
+*** ../vim-7.1.324/src/ex_getln.c      Fri Jun 20 12:55:28 2008
+--- src/ex_getln.c     Fri Jun 20 16:45:55 2008
+***************
+*** 2053,2062 ****
+       if (has_mbyte)
+           correct_cmdspos(i, c);
+  #endif
+!      /* If the cmdline doesn't fit, put cursor on last visible char. */
+       if ((ccline.cmdspos += c) >= m)
+       {
+-          ccline.cmdpos = i - 1;
+           ccline.cmdspos -= c;
+           break;
+       }
+--- 2053,2062 ----
+       if (has_mbyte)
+           correct_cmdspos(i, c);
+  #endif
+!      /* If the cmdline doesn't fit, show cursor on last visible char.
+!       * Don't move the cursor itself, so we can still append. */
+       if ((ccline.cmdspos += c) >= m)
+       {
+           ccline.cmdspos -= c;
+           break;
+       }
+***************
+*** 2829,2838 ****
+               if (has_mbyte)
+                   correct_cmdspos(ccline.cmdpos, c);
+  #endif
+!              /* Stop cursor at the end of the screen */
+!              if (ccline.cmdspos + c >= m)
+!                  break;
+!              ccline.cmdspos += c;
+  #ifdef FEAT_MBYTE
+               if (has_mbyte)
+               {
+--- 2829,2839 ----
+               if (has_mbyte)
+                   correct_cmdspos(ccline.cmdpos, c);
+  #endif
+!              /* Stop cursor at the end of the screen, but do increment the
+!               * insert position, so that entering a very long command
+!               * works, even though you can't see it. */
+!              if (ccline.cmdspos + c < m)
+!                  ccline.cmdspos += c;
+  #ifdef FEAT_MBYTE
+               if (has_mbyte)
+               {
+***************
+*** 3332,3338 ****
+  /*
+   * Do wildcard expansion on the string 'str'.
+   * Chars that should not be expanded must be preceded with a backslash.
+!  * Return a pointer to alloced memory containing the new string.
+   * Return NULL for failure.
+   *
+   * "orig" is the originally expanded string, copied to allocated memory.  It
+--- 3333,3339 ----
+  /*
+   * Do wildcard expansion on the string 'str'.
+   * Chars that should not be expanded must be preceded with a backslash.
+!  * Return a pointer to allocated memory containing the new string.
+   * Return NULL for failure.
+   *
+   * "orig" is the originally expanded string, copied to allocated memory.  It
+***************
+*** 6111,6117 ****
+  
+      exmode_active = save_exmode;
+  
+!     /* Safety check: The old window or buffer was deleted: It's a a bug when
+       * this happens! */
+      if (!win_valid(old_curwin) || !buf_valid(old_curbuf))
+      {
+--- 6112,6118 ----
+  
+      exmode_active = save_exmode;
+  
+!     /* Safety check: The old window or buffer was deleted: It's a bug when
+       * this happens! */
+      if (!win_valid(old_curwin) || !buf_valid(old_curbuf))
+      {
+*** ../vim-7.1.324/src/version.c       Fri Jun 20 18:06:15 2008
+--- src/version.c      Fri Jun 20 18:27:54 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     325,
+  /**/
+
+-- 
+"I can't complain, but sometimes I still do."   (Joe Walsh)
+
+ /// 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.1.326 b/7.1.326
new file mode 100644 (file)
index 0000000..dc9bc82
--- /dev/null
+++ b/7.1.326
@@ -0,0 +1,57 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.326
+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.1.326
+Problem:    ":s!from!to!" works, but ":smagic!from!to!" doesn't.  It sees the
+           "!" as a flag to to the command.  Same for ":snomagic". (Johan
+           Spetz)
+Solution:   When checking for a forced command also ignore ":smagic" and
+           ":snomagic". (Ian Kelling)
+Files:     src/ex_docmd.c
+
+
+*** ../vim-7.1.325/src/ex_docmd.c      Fri Jun 20 11:10:53 2008
+--- src/ex_docmd.c     Fri Jun 20 10:42:30 2008
+***************
+*** 2142,2148 ****
+  
+  #endif
+  
+!     if (*p == '!' && ea.cmdidx != CMD_substitute)    /* forced commands */
+      {
+       ++p;
+       ea.forceit = TRUE;
+--- 2142,2150 ----
+  
+  #endif
+  
+!     /* forced commands */
+!     if (*p == '!' && ea.cmdidx != CMD_substitute
+!          && ea.cmdidx != CMD_smagic && ea.cmdidx != CMD_snomagic)
+      {
+       ++p;
+       ea.forceit = TRUE;
+*** ../vim-7.1.325/src/version.c       Fri Jun 20 18:30:27 2008
+--- src/version.c      Fri Jun 20 18:50:19 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     326,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+55. You ask your doctor to implant a gig in your brain.
+
+ /// 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.278566 seconds and 4 git commands to generate.