]> git.pld-linux.org Git - packages/vim.git/commitdiff
- from upstream
authorElan Ruusamäe <glen@pld-linux.org>
Wed, 12 Nov 2008 15:25:44 +0000 (15:25 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    7.2.026 -> 1.1
    7.2.027 -> 1.1
    7.2.028 -> 1.1
    7.2.029 -> 1.1
    7.2.030 -> 1.1
    7.2.031 -> 1.1
    7.2.032 -> 1.1
    7.2.033 -> 1.1
    7.2.034 -> 1.1
    7.2.035 -> 1.1
    7.2.036 -> 1.1
    7.2.037 -> 1.1
    7.2.038 -> 1.1
    7.2.039 -> 1.1
    7.2.040 -> 1.1

15 files changed:
7.2.026 [new file with mode: 0644]
7.2.027 [new file with mode: 0644]
7.2.028 [new file with mode: 0644]
7.2.029 [new file with mode: 0644]
7.2.030 [new file with mode: 0644]
7.2.031 [new file with mode: 0644]
7.2.032 [new file with mode: 0644]
7.2.033 [new file with mode: 0644]
7.2.034 [new file with mode: 0644]
7.2.035 [new file with mode: 0644]
7.2.036 [new file with mode: 0644]
7.2.037 [new file with mode: 0644]
7.2.038 [new file with mode: 0644]
7.2.039 [new file with mode: 0644]
7.2.040 [new file with mode: 0644]

diff --git a/7.2.026 b/7.2.026
new file mode 100644 (file)
index 0000000..ec8b1c7
--- /dev/null
+++ b/7.2.026
@@ -0,0 +1,105 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.026
+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.2.026 (after 7.2.010)
+Problem:    "K" doesn't use the length of the identifier but uses the rest of
+           the line.
+Solution:   Copy the desired number of characters first.
+Files:     src/normal.c
+
+
+*** ../vim-7.2.025/src/normal.c        Thu Oct  2 22:55:17 2008
+--- src/normal.c       Sat Nov  1 13:41:03 2008
+***************
+*** 183,188 ****
+--- 183,190 ----
+  static void  nv_cursorhold __ARGS((cmdarg_T *cap));
+  #endif
+  
++ static char *e_noident = N_("E349: No identifier under cursor");
++ 
+  /*
+   * Function to be called for a Normal or Visual mode command.
+   * The argument is a cmdarg_T.
+***************
+*** 3510,3516 ****
+       if (find_type & FIND_STRING)
+           EMSG(_("E348: No string under cursor"));
+       else
+!          EMSG(_("E349: No identifier under cursor"));
+       return 0;
+      }
+      ptr += col;
+--- 3512,3518 ----
+       if (find_type & FIND_STRING)
+           EMSG(_("E348: No string under cursor"));
+       else
+!          EMSG(_(e_noident));
+       return 0;
+      }
+      ptr += col;
+***************
+*** 5472,5479 ****
+           {
+               /* An external command will probably use an argument starting
+                * with "-" as an option.  To avoid trouble we skip the "-". */
+!              while (*ptr == '-')
+                   ++ptr;
+  
+               /* When a count is given, turn it into a range.  Is this
+                * really what we want? */
+--- 5474,5490 ----
+           {
+               /* An external command will probably use an argument starting
+                * with "-" as an option.  To avoid trouble we skip the "-". */
+!              while (*ptr == '-' && n > 0)
+!              {
+                   ++ptr;
++                  --n;
++              }
++              if (n == 0)
++              {
++                  EMSG(_(e_noident));  /* found dashes only */
++                  vim_free(buf);
++                  return;
++              }
+  
+               /* When a count is given, turn it into a range.  Is this
+                * really what we want? */
+***************
+*** 5520,5526 ****
+--- 5531,5539 ----
+      if (cmdchar == 'K' && !kp_help)
+      {
+       /* Escape the argument properly for a shell command */
++      ptr = vim_strnsave(ptr, n);
+       p = vim_strsave_shellescape(ptr, TRUE);
++      vim_free(ptr);
+       if (p == NULL)
+       {
+           vim_free(buf);
+*** ../vim-7.2.025/src/version.c       Thu Oct  2 22:55:17 2008
+--- src/version.c      Sat Nov  1 13:50:53 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     26,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+161. You get up before the sun rises to check your e-mail, and you
+     find yourself in the very same chair long after the sun has set.
+
+ /// 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.027 b/7.2.027
new file mode 100644 (file)
index 0000000..59d708d
--- /dev/null
+++ b/7.2.027
@@ -0,0 +1,98 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.027
+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.2.027
+Problem:    Can use cscope commands in the sandbox.
+Solution:   Disallow them, they might not be safe.
+Files:     src/ex_cmds.h
+
+
+*** ../vim-7.2.026/src/ex_cmds.h       Thu Sep 18 12:43:21 2008
+--- src/ex_cmds.h      Thu Sep 18 22:18:14 2008
+***************
+*** 278,284 ****
+  EX(CMD_crewind,              "crewind",      ex_cc,
+                       RANGE|NOTADR|COUNT|TRLBAR|BANG),
+  EX(CMD_cscope,               "cscope",       do_cscope,
+!                      EXTRA|NOTRLCOM|SBOXOK|XFILE),
+  EX(CMD_cstag,                "cstag",        do_cstag,
+                       BANG|TRLBAR|WORD1),
+  EX(CMD_cunmap,               "cunmap",       ex_unmap,
+--- 278,284 ----
+  EX(CMD_crewind,              "crewind",      ex_cc,
+                       RANGE|NOTADR|COUNT|TRLBAR|BANG),
+  EX(CMD_cscope,               "cscope",       do_cscope,
+!                      EXTRA|NOTRLCOM|XFILE),
+  EX(CMD_cstag,                "cstag",        do_cstag,
+                       BANG|TRLBAR|WORD1),
+  EX(CMD_cunmap,               "cunmap",       ex_unmap,
+***************
+*** 506,512 ****
+  EX(CMD_lclose,               "lclose",       ex_cclose,
+                       RANGE|NOTADR|COUNT|TRLBAR),
+  EX(CMD_lcscope,              "lcscope",      do_cscope,
+!                      EXTRA|NOTRLCOM|SBOXOK|XFILE),
+  EX(CMD_left,         "left",         ex_align,
+                       TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY),
+  EX(CMD_leftabove,    "leftabove",    ex_wrongmodifier,
+--- 506,512 ----
+  EX(CMD_lclose,               "lclose",       ex_cclose,
+                       RANGE|NOTADR|COUNT|TRLBAR),
+  EX(CMD_lcscope,              "lcscope",      do_cscope,
+!                      EXTRA|NOTRLCOM|XFILE),
+  EX(CMD_left,         "left",         ex_align,
+                       TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY),
+  EX(CMD_leftabove,    "leftabove",    ex_wrongmodifier,
+***************
+*** 653,658 ****
+--- 653,660 ----
+                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+  EX(CMD_open,         "open",         ex_open,
+                       RANGE|EXTRA),
++ EX(CMD_oldfiles,     "oldfiles",     ex_oldfiles,
++                      BANG|TRLBAR|SBOXOK|CMDWIN),
+  EX(CMD_omap,         "omap",         ex_map,
+                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+  EX(CMD_omapclear,    "omapclear",    ex_mapclear,
+***************
+*** 804,810 ****
+  EX(CMD_scriptencoding,       "scriptencoding", ex_scriptencoding,
+                       WORD1|TRLBAR|CMDWIN),
+  EX(CMD_scscope,              "scscope",      do_scscope,
+!                      EXTRA|NOTRLCOM|SBOXOK),
+  EX(CMD_set,          "set",          ex_set,
+                       TRLBAR|EXTRA|CMDWIN|SBOXOK),
+  EX(CMD_setfiletype,  "setfiletype",  ex_setfiletype,
+--- 806,812 ----
+  EX(CMD_scriptencoding,       "scriptencoding", ex_scriptencoding,
+                       WORD1|TRLBAR|CMDWIN),
+  EX(CMD_scscope,              "scscope",      do_scscope,
+!                      EXTRA|NOTRLCOM),
+  EX(CMD_set,          "set",          ex_set,
+                       TRLBAR|EXTRA|CMDWIN|SBOXOK),
+  EX(CMD_setfiletype,  "setfiletype",  ex_setfiletype,
+*** ../vim-7.2.026/src/version.c       Sat Nov  1 13:51:57 2008
+--- src/version.c      Thu Nov  6 10:21:21 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     27,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+179. You wonder why your household garbage can doesn't have an
+     "empty recycle bin" button.
+
+ /// 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.028 b/7.2.028
new file mode 100644 (file)
index 0000000..4f148e9
--- /dev/null
+++ b/7.2.028
@@ -0,0 +1,53 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.028
+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.2.028
+Problem:    Confusing error message for missing ().
+Solution:   Change "braces" to "parentheses". (Gary Johnson)
+Files:     src/eval.c
+
+
+*** ../vim-7.2.027/src/eval.c  Wed Sep 10 15:38:13 2008
+--- src/eval.c Tue Sep 30 21:43:38 2008
+***************
+*** 3287,3293 ****
+  
+      if (*startarg != '(')
+      {
+!      EMSG2(_("E107: Missing braces: %s"), eap->arg);
+       goto end;
+      }
+  
+--- 3293,3299 ----
+  
+      if (*startarg != '(')
+      {
+!      EMSG2(_("E107: Missing parentheses: %s"), eap->arg);
+       goto end;
+      }
+  
+*** ../vim-7.2.027/src/version.c       Thu Nov  6 10:23:03 2008
+--- src/version.c      Thu Nov  6 11:02:51 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     28,
+  /**/
+
+-- 
+Wizards had always known that the act of observation changed the thing that
+was observed, and sometimes forgot that it also changed the observer too.
+                       Terry Pratchett  -  Interesting times
+
+ /// 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.029 b/7.2.029
new file mode 100644 (file)
index 0000000..56e847a
--- /dev/null
+++ b/7.2.029
@@ -0,0 +1,44 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.029
+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.2.029
+Problem:    No completion for ":doautoall".
+Solution:   Complete ":doautoall" like ":doautocmd".  (Doug Kearns)
+Files:     src/ex_docmd.c
+
+
+*** ../vim-7.2.028/src/ex_docmd.c      Thu Sep 18 21:29:07 2008
+--- src/ex_docmd.c     Mon Nov  3 21:21:17 2008
+***************
+*** 3609,3614 ****
+--- 3610,3616 ----
+           return set_context_in_autocmd(xp, arg, FALSE);
+  
+       case CMD_doautocmd:
++      case CMD_doautoall:
+           return set_context_in_autocmd(xp, arg, TRUE);
+  #endif
+       case CMD_set:
+*** ../vim-7.2.028/src/version.c       Thu Nov  6 11:04:50 2008
+--- src/version.c      Thu Nov  6 17:14:58 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     29,
+  /**/
+
+-- 
+Press any key to continue, press any other key to quit.
+
+ /// 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.030 b/7.2.030
new file mode 100644 (file)
index 0000000..310207e
--- /dev/null
+++ b/7.2.030
@@ -0,0 +1,51 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.030
+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.2.030 (after 7.2.027)
+Problem:    Can't compile.
+Solution:   Remove prematurely added ex_oldfiles.
+Files:     src/ex_cmds.h
+
+
+*** ../vim-7.2.029/src/ex_cmds.h       Thu Nov  6 10:23:03 2008
+--- src/ex_cmds.h      Thu Nov  6 20:45:07 2008
+***************
+*** 653,660 ****
+                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+  EX(CMD_open,         "open",         ex_open,
+                       RANGE|EXTRA),
+- EX(CMD_oldfiles,     "oldfiles",     ex_oldfiles,
+-                      BANG|TRLBAR|SBOXOK|CMDWIN),
+  EX(CMD_omap,         "omap",         ex_map,
+                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+  EX(CMD_omapclear,    "omapclear",    ex_mapclear,
+--- 653,658 ----
+*** ../vim-7.2.029/src/version.c       Thu Nov  6 17:16:06 2008
+--- src/version.c      Thu Nov  6 20:46:11 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     30,
+  /**/
+
+-- 
+% cat /usr/include/sys/errno.h
+#define        EPERM           1               /* Operation not permitted */
+#define        ENOENT          2               /* No such file or directory */
+#define        ESRCH           3               /* No such process */
+[...]
+#define EMACS          666             /* Too many macros */
+%
+
+ /// 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.031 b/7.2.031
new file mode 100644 (file)
index 0000000..4b2bca7
--- /dev/null
+++ b/7.2.031
@@ -0,0 +1,1281 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.031
+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.2.031
+Problem:    Information in the viminfo file about previously edited files is
+           not available to the user.  There is no way to get a complete list
+           of files edited in previous Vim sessions.
+Solution:   Add v:oldfiles and fill it with the list of old file names when
+           first reading the viminfo file.  Add the ":oldfiles" command,
+           ":browse oldfiles" and the "#<123" special file name.  Increase
+           the default value for 'viminfo' from '20 to '100.
+Files:     runtime/doc/cmdline.txt, runtime/doc/eval.txt,
+           runtime/doc/starting.txt, runtime/doc/usr_21.txt, src/eval.c,
+           src/ex_cmds.c, src/ex_cmds.h, src/ex_docmd.c, src/feature.h,
+           src/fileio.c, src/main.c, src/mark.c, src/misc1.c,
+           src/proto/eval.pro, src/proto/ex_cmds.pro, src/proto/mark.pro,
+           src/option.c, src/structs.h, src/vim.h
+
+
+*** ../vim-7.2.030/runtime/doc/cmdline.txt     Sat Aug  9 19:36:46 2008
+--- runtime/doc/cmdline.txt    Thu Sep 18 22:55:27 2008
+***************
+*** 1,4 ****
+! *cmdline.txt*   For Vim version 7.2.  Last change: 2008 Jul 29
+  
+  
+                 VIM REFERENCE MANUAL    by Bram Moolenaar
+--- 1,4 ----
+! *cmdline.txt*   For Vim version 7.2.  Last change: 2008 Sep 18
+  
+  
+                 VIM REFERENCE MANUAL    by Bram Moolenaar
+***************
+*** 157,162 ****
+--- 157,167 ----
+                               (doesn't work at the expression prompt; some
+                               things such as changing the buffer or current
+                               window are not allowed to avoid side effects)
++                              When the result is a |List| the items are used
++                              as lines.  They can have line breaks inside
++                              too.
++                              When the result is a Float it's automatically
++                              converted to a String.
+               See |registers| about registers.  {not in Vi}
+               Implementation detail: When using the |expression| register
+               and invoking setcmdpos(), this sets the position before
+***************
+*** 730,748 ****
+  In Ex commands, at places where a file name can be used, the following
+  characters have a special meaning.  These can also be used in the expression
+  function expand() |expand()|.
+!      %       is replaced with the current file name                  *:_%*
+!      #       is replaced with the alternate file name                *:_#*
+       #n      (where n is a number) is replaced with the file name of
+!              buffer n.  "#0" is the same as "#"
+!      ##      is replaced with all names in the argument list         *:_##*
+               concatenated, separated by spaces.  Each space in a name
+               is preceded with a backslash.
+! Note that these give the file name as it was typed.  If an absolute path is
+! needed (when using the file name from a different directory), you need to add
+! ":p".  See |filename-modifiers|.
+  Note that backslashes are inserted before spaces, so that the command will
+  correctly interpret the file name.  But this doesn't happen for shell
+! commands.  For those you probably have to use quotes: >
+       :!ls "%"
+       :r !spell "%"
+  
+--- 735,763 ----
+  In Ex commands, at places where a file name can be used, the following
+  characters have a special meaning.  These can also be used in the expression
+  function expand() |expand()|.
+!      %       Is replaced with the current file name.           *:_%* *c_%*
+!      #       Is replaced with the alternate file name.         *:_#* *c_#*
+       #n      (where n is a number) is replaced with the file name of
+!              buffer n.  "#0" is the same as "#".
+!      ##      Is replaced with all names in the argument list   *:_##* *c_##*
+               concatenated, separated by spaces.  Each space in a name
+               is preceded with a backslash.
+!      #<n     (where n is a number > 0) is replaced with old    *:_#<* *c_#<*
+!              file name n.  See |:oldfiles| or |v:oldfiles| to get the
+!              number.                                                 *E809*
+!              {only when compiled with the +eval and +viminfo features}
+! 
+! Note that these, except "#<n", give the file name as it was typed.  If an
+! absolute path is needed (when using the file name from a different directory),
+! you need to add ":p".  See |filename-modifiers|.
+! 
+! The "#<n" item returns an absolute path, but it will start with "~/" for files
+! below your home directory.
+! 
+  Note that backslashes are inserted before spaces, so that the command will
+  correctly interpret the file name.  But this doesn't happen for shell
+! commands.  For those you probably have to use quotes (this fails for files
+! that contain a quote and wildcards): >
+       :!ls "%"
+       :r !spell "%"
+  
+*** ../vim-7.2.030/runtime/doc/eval.txt        Sat Aug  9 19:36:47 2008
+--- runtime/doc/eval.txt       Sun Nov  2 14:25:38 2008
+***************
+*** 1,4 ****
+! *eval.txt*   For Vim version 7.2.  Last change: 2008 Aug 09
+  
+  
+                 VIM REFERENCE MANUAL    by Bram Moolenaar
+--- 1,4 ----
+! *eval.txt*   For Vim version 7.2.  Last change: 2008 Nov 02
+  
+  
+                 VIM REFERENCE MANUAL    by Bram Moolenaar
+***************
+*** 1484,1489 ****
+--- 1484,1500 ----
+               This is the screen column number, like with |virtcol()|.  The
+               value is zero when there was no mouse button click.
+  
++                                      *v:oldfiles* *oldfiles-variable*
++ v:oldfiles   List of file names that is loaded from the |viminfo| file on
++              startup.  These are the files that Vim remembers marks for.
++              The length of the List is limited by the ' argument of the
++              'viminfo' option (default is 100).
++              Also see |:oldfiles| and |c_#<|.
++              The List can be modified, but this has no effect on what is
++              stored in the |viminfo| file later.  If you use values other
++              than String this will cause trouble.
++              {only when compiled with the +viminfo feature}
++ 
+                                       *v:operator* *operator-variable*
+  v:operator   The last operator given in Normal mode.  This is a single
+               character except for commands starting with <g> or <z>,
+*** ../vim-7.2.030/runtime/doc/starting.txt    Sat Aug  9 19:36:52 2008
+--- runtime/doc/starting.txt   Sun Nov  9 12:12:19 2008
+***************
+*** 1,4 ****
+! *starting.txt*  For Vim version 7.2.  Last change: 2008 Jun 21
+  
+  
+                 VIM REFERENCE MANUAL    by Bram Moolenaar
+--- 1,4 ----
+! *starting.txt*  For Vim version 7.2.  Last change: 2008 Nov 09
+  
+  
+                 VIM REFERENCE MANUAL    by Bram Moolenaar
+***************
+*** 1337,1344 ****
+                                                       *viminfo-read*
+  When Vim is started and the 'viminfo' option is non-empty, the contents of
+  the viminfo file are read and the info can be used in the appropriate places.
+! The marks are not read in at startup (but file marks are).  See
+! |initialization| for how to set the 'viminfo' option upon startup.
+  
+                                                       *viminfo-write*
+  When Vim exits and 'viminfo' is non-empty, the info is stored in the viminfo
+--- 1335,1343 ----
+                                                       *viminfo-read*
+  When Vim is started and the 'viminfo' option is non-empty, the contents of
+  the viminfo file are read and the info can be used in the appropriate places.
+! The |v:oldfiles| variable is filled.  The marks are not read in at startup
+! (but file marks are).  See |initialization| for how to set the 'viminfo'
+! option upon startup.
+  
+                                                       *viminfo-write*
+  When Vim exits and 'viminfo' is non-empty, the info is stored in the viminfo
+***************
+*** 1372,1377 ****
+--- 1371,1378 ----
+  that start with any string given with the "r" flag in 'viminfo'.  This can be
+  used to avoid saving marks for files on removable media (for MS-DOS you would
+  use "ra:,rb:", for Amiga "rdf0:,rdf1:,rdf2:").
++ The |v:oldfiles| variable is filled with the file names that the viminfo file
++ has marks for.
+  
+                                                       *viminfo-file-marks*
+  Uppercase marks ('A to 'Z) are stored when writing the viminfo file.  The
+***************
+*** 1463,1470 ****
+                                                  *:rv* *:rviminfo* *E195*
+  :rv[iminfo][!] [file]        Read from viminfo file [file] (default: see above).
+                       If [!] is given, then any information that is
+!                      already set (registers, marks, etc.) will be
+!                      overwritten.  {not in Vi}
+  
+                                       *:wv* *:wviminfo* *E137* *E138* *E574*
+  :wv[iminfo][!] [file]        Write to viminfo file [file] (default: see above).
+--- 1464,1471 ----
+                                                  *:rv* *:rviminfo* *E195*
+  :rv[iminfo][!] [file]        Read from viminfo file [file] (default: see above).
+                       If [!] is given, then any information that is
+!                      already set (registers, marks, |v:oldfiles|, etc.)
+!                      will be overwritten   {not in Vi}
+  
+                                       *:wv* *:wviminfo* *E137* *E138* *E574*
+  :wv[iminfo][!] [file]        Write to viminfo file [file] (default: see above).
+***************
+*** 1479,1482 ****
+--- 1480,1499 ----
+                       the .viminfo file.
+                       {not in Vi}
+  
++                                              *:ol* *:oldfiles*
++ :ol[dfiles]          List the files that have marks stored in the viminfo
++                      file.  This list is read on startup and only changes
++                      afterwards with ":rviminfo!".  Also see |v:oldfiles|.
++                      The number can be used with |c_#<|.
++                      {not in Vi, only when compiled with the +eval feature}
++ 
++ :bro[wse] ol[dfiles][!]
++                      List file names as with |:oldfiles|, and then prompt
++                      for a number.  When the number is valid that file from
++                      the list is edited.
++                      If you get the |press-enter| prompt you can press "q"
++                      and still get the prompt to enter a file number.
++                      Use ! to abondon a modified buffer. |abandon|
++                      {not when compiled with tiny or small features}
++ 
+   vim:tw=78:ts=8:ft=help:norl:
+*** ../vim-7.2.030/runtime/doc/usr_21.txt      Sat Aug  9 19:36:53 2008
+--- runtime/doc/usr_21.txt     Sun Nov  9 12:14:10 2008
+***************
+*** 1,4 ****
+! *usr_21.txt* For Vim version 7.2.  Last change: 2007 May 01
+  
+                    VIM USER MANUAL - by Bram Moolenaar
+  
+--- 1,4 ----
+! *usr_21.txt* For Vim version 7.2.  Last change: 2008 Nov 09
+  
+                    VIM USER MANUAL - by Bram Moolenaar
+  
+***************
+*** 153,159 ****
+  to be lost.  Each item can be remembered only once.
+  
+  
+! GETTING BACK TO WHERE YOU WERE
+  
+  You are halfway editing a file and it's time to leave for holidays.  You exit
+  Vim and go enjoy yourselves, forgetting all about your work.  After a couple
+--- 153,159 ----
+  to be lost.  Each item can be remembered only once.
+  
+  
+! GETTING BACK TO WHERE YOU STOPPED VIM
+  
+  You are halfway editing a file and it's time to leave for holidays.  You exit
+  Vim and go enjoy yourselves, forgetting all about your work.  After a couple
+***************
+*** 168,173 ****
+--- 168,215 ----
+     The |:marks| command is useful to find out where '0 to '9 will take you.
+  
+  
++ GETTING BACK TO SOME FILE
++ 
++ If you want to go back to a file that you edited recently, but not when
++ exiting Vim, there is a slightly more complicated way.  You can see a list of
++ files by typing the command: >
++ 
++      :oldfiles
++ <    1: ~/.viminfo ~
++      2: ~/text/resume.txt ~
++      3: /tmp/draft ~
++ 
++ Now you would like to edit the second file, which is in the list preceded by
++ "2:".  You type: >
++ 
++      :e #<2
++ 
++ Instead of ":e" you can use any command that has a file name argument, the
++ "#<2" item works in the same place as "%" (current file name) and "#"
++ (alternate file name).  So you can also split the window to edit the third
++ file: >
++ 
++      :split #<3
++ 
++ That #<123 thing is a bit complicated when you just want to edit a file.
++ Fortunately there is a simpler way: >
++ 
++      :browse oldfiles
++ <    1: ~/.viminfo ~
++      2: ~/text/resume.txt ~
++      3: /tmp/draft ~
++      -- More --
++ 
++ You get the same list of files as with |:oldfiles|.  If you want to edit
++ "resume.txt" first press "q" to stop the listing.  You will get a prompt:
++ 
++      Type number and <Enter> (empty cancels): ~
++ 
++ Type "2" and press <Enter> to edit the second file.
++ 
++ More info at |:oldfiles|, |v:oldfiles| and |c_#<|.
++ 
++ 
+  MOVE INFO FROM ONE VIM TO ANOTHER
+  
+  You can use the ":wviminfo" and ":rviminfo" commands to save and restore the
+*** ../vim-7.2.030/src/eval.c  Thu Nov  6 11:04:50 2008
+--- src/eval.c Sun Nov  9 11:59:39 2008
+***************
+*** 348,353 ****
+--- 348,354 ----
+      {VV_NAME("mouse_col",     VAR_NUMBER), 0},
+      {VV_NAME("operator",      VAR_STRING), VV_RO},
+      {VV_NAME("searchforward",         VAR_NUMBER), 0},
++     {VV_NAME("oldfiles",      VAR_LIST), 0},
+  };
+  
+  /* shorthand */
+***************
+*** 355,360 ****
+--- 356,362 ----
+  #define vv_nr                vv_di.di_tv.vval.v_number
+  #define vv_float     vv_di.di_tv.vval.v_float
+  #define vv_str               vv_di.di_tv.vval.v_string
++ #define vv_list              vv_di.di_tv.vval.v_list
+  #define vv_tv                vv_di.di_tv
+  
+  /*
+***************
+*** 426,432 ****
+  static long list_idx_of_item __ARGS((list_T *l, listitem_T *item));
+  static void list_append __ARGS((list_T *l, listitem_T *item));
+  static int list_append_tv __ARGS((list_T *l, typval_T *tv));
+- static int list_append_string __ARGS((list_T *l, char_u *str, int len));
+  static int list_append_number __ARGS((list_T *l, varnumber_T n));
+  static int list_insert_tv __ARGS((list_T *l, typval_T *tv, listitem_T *item));
+  static int list_extend __ARGS((list_T        *l1, list_T *l2, listitem_T *bef));
+--- 428,433 ----
+***************
+*** 845,852 ****
+       p = &vimvars[i];
+       if (p->vv_di.di_tv.v_type == VAR_STRING)
+       {
+!          vim_free(p->vv_di.di_tv.vval.v_string);
+!          p->vv_di.di_tv.vval.v_string = NULL;
+       }
+      }
+      hash_clear(&vimvarht);
+--- 846,858 ----
+       p = &vimvars[i];
+       if (p->vv_di.di_tv.v_type == VAR_STRING)
+       {
+!          vim_free(p->vv_string);
+!          p->vv_string = NULL;
+!      }
+!      else if (p->vv_di.di_tv.v_type == VAR_LIST)
+!      {
+!          list_unref(p->vv_list);
+!          p->vv_list = NULL;
+       }
+      }
+      hash_clear(&vimvarht);
+***************
+*** 6057,6062 ****
+--- 6063,6087 ----
+  }
+  
+  /*
++  * Get list item "l[idx - 1]" as a string.  Returns NULL for failure.
++  */
++     char_u *
++ list_find_str(l, idx)
++     list_T   *l;
++     long     idx;
++ {
++     listitem_T       *li;
++ 
++     li = list_find(l, idx - 1);
++     if (li == NULL)
++     {
++      EMSGN(_(e_listidx), idx);
++      return NULL;
++     }
++     return get_tv_string(&li->li_tv);
++ }
++ 
++ /*
+   * Locate "item" list "l" and return its index.
+   * Returns -1 when "item" is not in the list.
+   */
+***************
+*** 6147,6153 ****
+   * When "len" >= 0 use "str[len]".
+   * Returns FAIL when out of memory.
+   */
+!     static int
+  list_append_string(l, str, len)
+      list_T   *l;
+      char_u   *str;
+--- 6172,6178 ----
+   * When "len" >= 0 use "str[len]".
+   * Returns FAIL when out of memory.
+   */
+!     int
+  list_append_string(l, str, len)
+      list_T   *l;
+      char_u   *str;
+***************
+*** 6507,6512 ****
+--- 6532,6540 ----
+       set_ref_in_ht(&fc->l_avars.dv_hashtab, copyID);
+      }
+  
++     /* v: vars */
++     set_ref_in_ht(&vimvarht, copyID);
++ 
+      /*
+       * 2. Go through the list of dicts and free items without the copyID.
+       */
+***************
+*** 6597,6603 ****
+      {
+       case VAR_DICT:
+           dd = tv->vval.v_dict;
+!          if (dd->dv_copyID != copyID)
+           {
+               /* Didn't see this dict yet. */
+               dd->dv_copyID = copyID;
+--- 6625,6631 ----
+      {
+       case VAR_DICT:
+           dd = tv->vval.v_dict;
+!          if (dd != NULL && dd->dv_copyID != copyID)
+           {
+               /* Didn't see this dict yet. */
+               dd->dv_copyID = copyID;
+***************
+*** 6607,6613 ****
+  
+       case VAR_LIST:
+           ll = tv->vval.v_list;
+!          if (ll->lv_copyID != copyID)
+           {
+               /* Didn't see this list yet. */
+               ll->lv_copyID = copyID;
+--- 6635,6641 ----
+  
+       case VAR_LIST:
+           ll = tv->vval.v_list;
+!          if (ll != NULL && ll->lv_copyID != copyID)
+           {
+               /* Didn't see this list yet. */
+               ll->lv_copyID = copyID;
+***************
+*** 18106,18111 ****
+--- 18134,18150 ----
+  }
+  
+  /*
++  * Get List v: variable value.  Caller must take care of reference count when
++  * needed.
++  */
++     list_T *
++ get_vim_var_list(idx)
++     int              idx;
++ {
++     return vimvars[idx].vv_list;
++ }
++ 
++ /*
+   * Set v:count, v:count1 and v:prevcount.
+   */
+      void
+***************
+*** 18141,18146 ****
+--- 18180,18199 ----
+  }
+  
+  /*
++  * Set List v: variable to "val".
++  */
++     void
++ set_vim_var_list(idx, val)
++     int              idx;
++     list_T   *val;
++ {
++     list_unref(vimvars[idx].vv_list);
++     vimvars[idx].vv_list = val;
++     if (val != NULL)
++      ++val->lv_refcount;
++ }
++ 
++ /*
+   * Set v:register if needed.
+   */
+      void
+***************
+*** 21900,21905 ****
+--- 21953,22014 ----
+      }
+  }
+  
++ /*
++  * List v:oldfiles in a nice way.
++  */
++ /*ARGSUSED*/
++     void
++ ex_oldfiles(eap)
++     exarg_T  *eap;
++ {
++     list_T   *l = vimvars[VV_OLDFILES].vv_list;
++     listitem_T       *li;
++     int              nr = 0;
++ 
++     if (l == NULL)
++      msg((char_u *)_("No old files"));
++     else
++     {
++      msg_start();
++      msg_scroll = TRUE;
++      for (li = l->lv_first; li != NULL && !got_int; li = li->li_next)
++      {
++          msg_outnum((long)++nr);
++          MSG_PUTS(": ");
++          msg_outtrans(get_tv_string(&li->li_tv));
++          msg_putchar('\n');
++          out_flush();            /* output one line at a time */
++          ui_breakcheck();
++      }
++      /* Assume "got_int" was set to truncate the listing. */
++      got_int = FALSE;
++ 
++ #ifdef FEAT_BROWSE_CMD
++      if (cmdmod.browse)
++      {
++          quit_more = FALSE;
++          nr = prompt_for_number(FALSE);
++          msg_starthere();
++          if (nr > 0)
++          {
++              char_u *p = list_find_str(get_vim_var_list(VV_OLDFILES),
++                                                                  (long)nr);
++ 
++              if (p != NULL)
++              {
++                  p = expand_env_save(p);
++                  eap->arg = p;
++                  eap->cmdidx = CMD_edit;
++                  cmdmod.browse = FALSE;
++                  do_exedit(eap, NULL);
++                  vim_free(p);
++              }
++          }
++      }
++ #endif
++     }
++ }
++ 
+  #endif /* FEAT_EVAL */
+  
+  
+*** ../vim-7.2.030/src/ex_cmds.c       Sun Sep 14 21:40:26 2008
+--- src/ex_cmds.c      Sun Sep 14 13:45:03 2008
+***************
+*** 24,30 ****
+  static void do_filter __ARGS((linenr_T line1, linenr_T line2, exarg_T *eap, char_u *cmd, int do_in, int do_out));
+  #ifdef FEAT_VIMINFO
+  static char_u *viminfo_filename __ARGS((char_u       *));
+! static void do_viminfo __ARGS((FILE *fp_in, FILE *fp_out, int want_info, int want_marks, int force_read));
+  static int viminfo_encoding __ARGS((vir_T *virp));
+  static int read_viminfo_up_to_marks __ARGS((vir_T *virp, int forceit, int writing));
+  #endif
+--- 24,30 ----
+  static void do_filter __ARGS((linenr_T line1, linenr_T line2, exarg_T *eap, char_u *cmd, int do_in, int do_out));
+  #ifdef FEAT_VIMINFO
+  static char_u *viminfo_filename __ARGS((char_u       *));
+! static void do_viminfo __ARGS((FILE *fp_in, FILE *fp_out, int flags));
+  static int viminfo_encoding __ARGS((vir_T *virp));
+  static int read_viminfo_up_to_marks __ARGS((vir_T *virp, int forceit, int writing));
+  #endif
+***************
+*** 1676,1689 ****
+  
+  /*
+   * read_viminfo() -- Read the viminfo file.  Registers etc. which are already
+!  * set are not over-written unless force is TRUE. -- webb
+   */
+      int
+! read_viminfo(file, want_info, want_marks, forceit)
+!     char_u   *file;
+!     int              want_info;
+!     int              want_marks;
+!     int              forceit;
+  {
+      FILE     *fp;
+      char_u   *fname;
+--- 1676,1687 ----
+  
+  /*
+   * read_viminfo() -- Read the viminfo file.  Registers etc. which are already
+!  * set are not over-written unless "flags" includes VIF_FORCEIT. -- webb
+   */
+      int
+! read_viminfo(file, flags)
+!     char_u   *file;      /* file name or NULL to use default name */
+!     int              flags;      /* VIF_WANT_INFO et al. */
+  {
+      FILE     *fp;
+      char_u   *fname;
+***************
+*** 1691,1697 ****
+      if (no_viminfo())
+       return FAIL;
+  
+!     fname = viminfo_filename(file);      /* may set to default if NULL */
+      if (fname == NULL)
+       return FAIL;
+      fp = mch_fopen((char *)fname, READBIN);
+--- 1689,1695 ----
+      if (no_viminfo())
+       return FAIL;
+  
+!     fname = viminfo_filename(file);  /* get file name in allocated buffer */
+      if (fname == NULL)
+       return FAIL;
+      fp = mch_fopen((char *)fname, READBIN);
+***************
+*** 1701,1708 ****
+       verbose_enter();
+       smsg((char_u *)_("Reading viminfo file \"%s\"%s%s%s"),
+               fname,
+!              want_info ? _(" info") : "",
+!              want_marks ? _(" marks") : "",
+               fp == NULL ? _(" FAILED") : "");
+       verbose_leave();
+      }
+--- 1699,1707 ----
+       verbose_enter();
+       smsg((char_u *)_("Reading viminfo file \"%s\"%s%s%s"),
+               fname,
+!              (flags & VIF_WANT_INFO) ? _(" info") : "",
+!              (flags & VIF_WANT_MARKS) ? _(" marks") : "",
+!              (flags & VIF_GET_OLDFILES) ? _(" oldfiles") : "",
+               fp == NULL ? _(" FAILED") : "");
+       verbose_leave();
+      }
+***************
+*** 1712,1721 ****
+       return FAIL;
+  
+      viminfo_errcnt = 0;
+!     do_viminfo(fp, NULL, want_info, want_marks, forceit);
+  
+      fclose(fp);
+- 
+      return OK;
+  }
+  
+--- 1711,1719 ----
+       return FAIL;
+  
+      viminfo_errcnt = 0;
+!     do_viminfo(fp, NULL, flags);
+  
+      fclose(fp);
+      return OK;
+  }
+  
+***************
+*** 1968,1974 ****
+      }
+  
+      viminfo_errcnt = 0;
+!     do_viminfo(fp_in, fp_out, !forceit, !forceit, FALSE);
+  
+      fclose(fp_out);      /* errors are ignored !? */
+      if (fp_in != NULL)
+--- 1966,1972 ----
+      }
+  
+      viminfo_errcnt = 0;
+!     do_viminfo(fp_in, fp_out, forceit ? 0 : (VIF_WANT_INFO | VIF_WANT_MARKS));
+  
+      fclose(fp_out);      /* errors are ignored !? */
+      if (fp_in != NULL)
+***************
+*** 2041,2052 ****
+   * do_viminfo() -- Should only be called from read_viminfo() & write_viminfo().
+   */
+      static void
+! do_viminfo(fp_in, fp_out, want_info, want_marks, force_read)
+      FILE     *fp_in;
+      FILE     *fp_out;
+!     int              want_info;
+!     int              want_marks;
+!     int              force_read;
+  {
+      int              count = 0;
+      int              eof = FALSE;
+--- 2039,2048 ----
+   * do_viminfo() -- Should only be called from read_viminfo() & write_viminfo().
+   */
+      static void
+! do_viminfo(fp_in, fp_out, flags)
+      FILE     *fp_in;
+      FILE     *fp_out;
+!     int              flags;
+  {
+      int              count = 0;
+      int              eof = FALSE;
+***************
+*** 2061,2068 ****
+  
+      if (fp_in != NULL)
+      {
+!      if (want_info)
+!          eof = read_viminfo_up_to_marks(&vir, force_read, fp_out != NULL);
+       else
+           /* Skip info, find start of marks */
+           while (!(eof = viminfo_readline(&vir))
+--- 2057,2065 ----
+  
+      if (fp_in != NULL)
+      {
+!      if (flags & VIF_WANT_INFO)
+!          eof = read_viminfo_up_to_marks(&vir,
+!                                       flags & VIF_FORCEIT, fp_out != NULL);
+       else
+           /* Skip info, find start of marks */
+           while (!(eof = viminfo_readline(&vir))
+***************
+*** 2092,2099 ****
+       write_viminfo_bufferlist(fp_out);
+       count = write_viminfo_marks(fp_out);
+      }
+!     if (fp_in != NULL && want_marks)
+!      copy_viminfo_marks(&vir, fp_out, count, eof);
+  
+      vim_free(vir.vir_line);
+  #ifdef FEAT_MBYTE
+--- 2089,2097 ----
+       write_viminfo_bufferlist(fp_out);
+       count = write_viminfo_marks(fp_out);
+      }
+!     if (fp_in != NULL
+!          && (flags & (VIF_WANT_MARKS | VIF_GET_OLDFILES | VIF_FORCEIT)))
+!      copy_viminfo_marks(&vir, fp_out, count, eof, flags);
+  
+      vim_free(vir.vir_line);
+  #ifdef FEAT_MBYTE
+*** ../vim-7.2.030/src/ex_cmds.h       Thu Nov  6 20:47:00 2008
+--- src/ex_cmds.h      Thu Sep 18 22:18:14 2008
+***************
+*** 653,658 ****
+--- 653,660 ----
+                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+  EX(CMD_open,         "open",         ex_open,
+                       RANGE|EXTRA),
++ EX(CMD_oldfiles,     "oldfiles",     ex_oldfiles,
++                      BANG|TRLBAR|SBOXOK|CMDWIN),
+  EX(CMD_omap,         "omap",         ex_map,
+                       EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+  EX(CMD_omapclear,    "omapclear",    ex_mapclear,
+*** ../vim-7.2.030/src/ex_docmd.c      Thu Nov  6 17:16:06 2008
+--- src/ex_docmd.c     Mon Nov  3 21:21:17 2008
+***************
+*** 364,369 ****
+--- 364,370 ----
+  # define ex_function         ex_ni
+  # define ex_delfunction              ex_ni
+  # define ex_return           ex_ni
++ # define ex_oldfiles         ex_ni
+  #endif
+  static char_u        *arg_all __ARGS((void));
+  #ifdef FEAT_SESSION
+***************
+*** 1770,1776 ****
+                       }
+                       if (checkforcmd(&ea.cmd, "browse", 3))
+                       {
+! #ifdef FEAT_BROWSE
+                           cmdmod.browse = TRUE;
+  #endif
+                           continue;
+--- 1771,1777 ----
+                       }
+                       if (checkforcmd(&ea.cmd, "browse", 3))
+                       {
+! #ifdef FEAT_BROWSE_CMD
+                           cmdmod.browse = TRUE;
+  #endif
+                           continue;
+***************
+*** 9508,9531 ****
+                   break;
+               }
+               s = src + 1;
+               i = (int)getdigits(&s);
+               *usedlen = (int)(s - src); /* length of what we expand */
+  
+!              buf = buflist_findnr(i);
+!              if (buf == NULL)
+               {
+!                  *errormsg = (char_u *)_("E194: No alternate file name to substitute for '#'");
+                   return NULL;
+               }
+!              if (lnump != NULL)
+!                  *lnump = ECMD_LAST;
+!              if (buf->b_fname == NULL)
+               {
+!                  result = (char_u *)"";
+!                  valid = 0;      /* Must have ":p:h" to be valid */
+               }
+-              else
+-                  result = buf->b_fname;
+               break;
+  
+  #ifdef FEAT_SEARCHPATH
+--- 9509,9558 ----
+                   break;
+               }
+               s = src + 1;
++              if (*s == '<')          /* "#<99" uses v:oldfiles */
++                  ++s;
+               i = (int)getdigits(&s);
+               *usedlen = (int)(s - src); /* length of what we expand */
+  
+!              if (src[1] == '<')
+               {
+!                  if (*usedlen < 2)
+!                  {
+!                      /* Should we give an error message for #<text? */
+!                      *usedlen = 1;
+!                      return NULL;
+!                  }
+! #ifdef FEAT_EVAL
+!                  result = list_find_str(get_vim_var_list(VV_OLDFILES),
+!                                                                   (long)i);
+!                  if (result == NULL)
+!                  {
+!                      *errormsg = (char_u *)"";
+!                      return NULL;
+!                  }
+! #else
+!                  *errormsg = (char_u *)_("E809: #< is not available without the +eval feature");
+                   return NULL;
++ #endif
+               }
+!              else
+               {
+!                  buf = buflist_findnr(i);
+!                  if (buf == NULL)
+!                  {
+!                      *errormsg = (char_u *)_("E194: No alternate file name to substitute for '#'");
+!                      return NULL;
+!                  }
+!                  if (lnump != NULL)
+!                      *lnump = ECMD_LAST;
+!                  if (buf->b_fname == NULL)
+!                  {
+!                      result = (char_u *)"";
+!                      valid = 0;          /* Must have ":p:h" to be valid */
+!                  }
+!                  else
+!                      result = buf->b_fname;
+               }
+               break;
+  
+  #ifdef FEAT_SEARCHPATH
+***************
+*** 10700,10706 ****
+       p_viminfo = (char_u *)"'100";
+      if (eap->cmdidx == CMD_rviminfo)
+      {
+!      if (read_viminfo(eap->arg, TRUE, TRUE, eap->forceit) == FAIL)
+           EMSG(_("E195: Cannot open viminfo file for reading"));
+      }
+      else
+--- 10727,10734 ----
+       p_viminfo = (char_u *)"'100";
+      if (eap->cmdidx == CMD_rviminfo)
+      {
+!      if (read_viminfo(eap->arg, VIF_WANT_INFO | VIF_WANT_MARKS
+!                                | (eap->forceit ? VIF_FORCEIT : 0)) == FAIL)
+           EMSG(_("E195: Cannot open viminfo file for reading"));
+      }
+      else
+*** ../vim-7.2.030/src/feature.h       Wed Aug  6 18:45:07 2008
+--- src/feature.h      Fri Sep 19 19:14:22 2008
+***************
+*** 767,775 ****
+  
+  /*
+   * +browse           ":browse" command.
+   */
+! #if defined(FEAT_NORMAL) && (defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC))
+! # define FEAT_BROWSE
+  #endif
+  
+  /*
+--- 767,779 ----
+  
+  /*
+   * +browse           ":browse" command.
++  *                   or just the ":browse" command modifier
+   */
+! #if defined(FEAT_NORMAL)
+! # define FEAT_BROWSE_CMD
+! # if defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC)
+! #  define FEAT_BROWSE
+! # endif
+  #endif
+  
+  /*
+*** ../vim-7.2.030/src/fileio.c        Thu Sep 18 21:29:07 2008
+--- src/fileio.c       Mon Nov  3 21:21:47 2008
+***************
+*** 2711,2717 ****
+  {
+      if (!curbuf->b_marks_read && get_viminfo_parameter('\'') > 0
+                                                 && curbuf->b_ffname != NULL)
+!      read_viminfo(NULL, FALSE, TRUE, FALSE);
+  
+      /* Always set b_marks_read; needed when 'viminfo' is changed to include
+       * the ' parameter after opening a buffer. */
+--- 2711,2717 ----
+  {
+      if (!curbuf->b_marks_read && get_viminfo_parameter('\'') > 0
+                                                 && curbuf->b_ffname != NULL)
+!      read_viminfo(NULL, VIF_WANT_MARKS);
+  
+      /* Always set b_marks_read; needed when 'viminfo' is changed to include
+       * the ' parameter after opening a buffer. */
+***************
+*** 9108,9114 ****
+  set_context_in_autocmd(xp, arg, doautocmd)
+      expand_T *xp;
+      char_u   *arg;
+!     int              doautocmd;      /* TRUE for :doautocmd, FALSE for :autocmd */
+  {
+      char_u   *p;
+      int              group;
+--- 9109,9115 ----
+  set_context_in_autocmd(xp, arg, doautocmd)
+      expand_T *xp;
+      char_u   *arg;
+!     int              doautocmd;      /* TRUE for :doauto*, FALSE for :autocmd */
+  {
+      char_u   *p;
+      int              group;
+*** ../vim-7.2.030/src/main.c  Thu Sep 18 20:55:19 2008
+--- src/main.c Sun Sep 14 13:26:10 2008
+***************
+*** 645,655 ****
+  
+  #ifdef FEAT_VIMINFO
+      /*
+!      * Read in registers, history etc, but not marks, from the viminfo file
+       */
+      if (*p_viminfo != NUL)
+      {
+!      read_viminfo(NULL, TRUE, FALSE, FALSE);
+       TIME_MSG("reading viminfo");
+      }
+  #endif
+--- 645,656 ----
+  
+  #ifdef FEAT_VIMINFO
+      /*
+!      * Read in registers, history etc, but not marks, from the viminfo file.
+!      * This is where v:oldfiles gets filled.
+       */
+      if (*p_viminfo != NUL)
+      {
+!      read_viminfo(NULL, VIF_WANT_INFO | VIF_GET_OLDFILES);
+       TIME_MSG("reading viminfo");
+      }
+  #endif
+*** ../vim-7.2.030/src/mark.c  Sat Aug  9 19:37:29 2008
+--- src/mark.c Sun Sep 14 13:46:19 2008
+***************
+*** 1627,1641 ****
+  
+  /*
+   * Handle marks in the viminfo file:
+!  * fp_out == NULL   read marks for current buffer only
+!  * fp_out != NULL   copy marks for buffers not in buffer list
+   */
+      void
+! copy_viminfo_marks(virp, fp_out, count, eof)
+      vir_T    *virp;
+      FILE     *fp_out;
+      int              count;
+      int              eof;
+  {
+      char_u   *line = virp->vir_line;
+      buf_T    *buf;
+--- 1627,1643 ----
+  
+  /*
+   * Handle marks in the viminfo file:
+!  * fp_out != NULL: copy marks for buffers not in buffer list
+!  * fp_out == NULL && (flags & VIF_WANT_MARKS): read marks for curbuf only
+!  * fp_out == NULL && (flags & VIF_GET_OLDFILES | VIF_FORCEIT): fill v:oldfiles
+   */
+      void
+! copy_viminfo_marks(virp, fp_out, count, eof, flags)
+      vir_T    *virp;
+      FILE     *fp_out;
+      int              count;
+      int              eof;
++     int              flags;
+  {
+      char_u   *line = virp->vir_line;
+      buf_T    *buf;
+***************
+*** 1647,1656 ****
+--- 1649,1671 ----
+      char_u   *p;
+      char_u   *name_buf;
+      pos_T    pos;
++ #ifdef FEAT_EVAL
++     list_T   *list = NULL;
++ #endif
+  
+      if ((name_buf = alloc(LSIZE)) == NULL)
+       return;
+      *name_buf = NUL;
++ 
++ #ifdef FEAT_EVAL
++     if (fp_out == NULL && (flags & (VIF_GET_OLDFILES | VIF_FORCEIT)))
++     {
++      list = list_alloc();
++      if (list != NULL)
++          set_vim_var_list(VV_OLDFILES, list);
++     }
++ #endif
++ 
+      num_marked_files = get_viminfo_parameter('\'');
+      while (!eof && (count < num_marked_files || fp_out == NULL))
+      {
+***************
+*** 1681,1686 ****
+--- 1696,1706 ----
+           p++;
+       *p = NUL;
+  
++ #ifdef FEAT_EVAL
++      if (list != NULL)
++          list_append_string(list, str, -1);
++ #endif
++ 
+       /*
+        * If fp_out == NULL, load marks for current buffer.
+        * If fp_out != NULL, copy marks for buffers not in buflist.
+***************
+*** 1688,1694 ****
+       load_marks = copy_marks_out = FALSE;
+       if (fp_out == NULL)
+       {
+!          if (curbuf->b_ffname != NULL)
+           {
+               if (*name_buf == NUL)       /* only need to do this once */
+                   home_replace(NULL, curbuf->b_ffname, name_buf, LSIZE, TRUE);
+--- 1708,1714 ----
+       load_marks = copy_marks_out = FALSE;
+       if (fp_out == NULL)
+       {
+!          if ((flags & VIF_WANT_MARKS) && curbuf->b_ffname != NULL)
+           {
+               if (*name_buf == NUL)       /* only need to do this once */
+                   home_replace(NULL, curbuf->b_ffname, name_buf, LSIZE, TRUE);
+*** ../vim-7.2.030/src/misc1.c Wed Jun 25 00:24:52 2008
+--- src/misc1.c        Sun Nov  9 11:47:00 2008
+***************
+*** 3245,3253 ****
+  
+      /* When using ":silent" assume that <CR> was entered. */
+      if (mouse_used != NULL)
+!      MSG_PUTS(_("Type number or click with mouse (<Enter> cancels): "));
+      else
+!      MSG_PUTS(_("Choice number (<Enter> cancels): "));
+  
+      /* Set the state such that text can be selected/copied/pasted and we still
+       * get mouse events. */
+--- 3245,3253 ----
+  
+      /* When using ":silent" assume that <CR> was entered. */
+      if (mouse_used != NULL)
+!      MSG_PUTS(_("Type number and <Enter> or click with mouse (empty cancels): "));
+      else
+!      MSG_PUTS(_("Type number and <Enter> (empty cancels): "));
+  
+      /* Set the state such that text can be selected/copied/pasted and we still
+       * get mouse events. */
+*** ../vim-7.2.030/src/proto/eval.pro  Sun Jan  6 20:06:30 2008
+--- src/proto/eval.pro Sun Nov  9 12:05:56 2008
+***************
+*** 17,23 ****
+  int eval_to_bool __ARGS((char_u *arg, int *error, char_u **nextcmd, int skip));
+  char_u *eval_to_string_skip __ARGS((char_u *arg, char_u **nextcmd, int skip));
+  int skip_expr __ARGS((char_u **pp));
+! char_u *eval_to_string __ARGS((char_u *arg, char_u **nextcmd, int dolist));
+  char_u *eval_to_string_safe __ARGS((char_u *arg, char_u **nextcmd, int use_sandbox));
+  int eval_to_number __ARGS((char_u *expr));
+  list_T *eval_spell_expr __ARGS((char_u *badword, char_u *expr));
+--- 17,23 ----
+  int eval_to_bool __ARGS((char_u *arg, int *error, char_u **nextcmd, int skip));
+  char_u *eval_to_string_skip __ARGS((char_u *arg, char_u **nextcmd, int skip));
+  int skip_expr __ARGS((char_u **pp));
+! char_u *eval_to_string __ARGS((char_u *arg, char_u **nextcmd, int convert));
+  char_u *eval_to_string_safe __ARGS((char_u *arg, char_u **nextcmd, int use_sandbox));
+  int eval_to_number __ARGS((char_u *expr));
+  list_T *eval_spell_expr __ARGS((char_u *badword, char_u *expr));
+***************
+*** 46,52 ****
+--- 46,54 ----
+  void list_unref __ARGS((list_T *l));
+  void list_free __ARGS((list_T *l, int recurse));
+  dictitem_T *dict_lookup __ARGS((hashitem_T *hi));
++ char_u *list_find_str __ARGS((list_T *l, long idx));
+  int list_append_dict __ARGS((list_T *list, dict_T *dict));
++ int list_append_string __ARGS((list_T *l, char_u *str, int len));
+  int garbage_collect __ARGS((void));
+  dict_T *dict_alloc __ARGS((void));
+  int dict_add_nr_str __ARGS((dict_T *d, char *key, long nr, char_u *str));
+***************
+*** 58,65 ****
+--- 60,69 ----
+  void set_vim_var_nr __ARGS((int idx, long val));
+  long get_vim_var_nr __ARGS((int idx));
+  char_u *get_vim_var_str __ARGS((int idx));
++ list_T *get_vim_var_list __ARGS((int idx));
+  void set_vcount __ARGS((long count, long count1));
+  void set_vim_var_string __ARGS((int idx, char_u *val, int len));
++ void set_vim_var_list __ARGS((int idx, list_T *val));
+  void set_reg_var __ARGS((int c));
+  char_u *v_exception __ARGS((char_u *oldval));
+  char_u *v_throwpoint __ARGS((char_u *oldval));
+***************
+*** 94,99 ****
+--- 98,104 ----
+  void write_viminfo_varlist __ARGS((FILE *fp));
+  int store_session_globals __ARGS((FILE *fd));
+  void last_set_msg __ARGS((scid_T scriptID));
++ void ex_oldfiles __ARGS((exarg_T *eap));
+  int modify_fname __ARGS((char_u *src, int *usedlen, char_u **fnamep, char_u **bufp, int *fnamelen));
+  char_u *do_string_sub __ARGS((char_u *str, char_u *pat, char_u *sub, char_u *flags));
+  /* vim: set ft=c : */
+*** ../vim-7.2.030/src/proto/ex_cmds.pro       Sat May  5 20:13:58 2007
+--- src/proto/ex_cmds.pro      Sat Sep 13 17:27:21 2008
+***************
+*** 11,17 ****
+  char_u *make_filter_cmd __ARGS((char_u *cmd, char_u *itmp, char_u *otmp));
+  void append_redir __ARGS((char_u *buf, char_u *opt, char_u *fname));
+  int viminfo_error __ARGS((char *errnum, char *message, char_u *line));
+! int read_viminfo __ARGS((char_u *file, int want_info, int want_marks, int forceit));
+  void write_viminfo __ARGS((char_u *file, int forceit));
+  int viminfo_readline __ARGS((vir_T *virp));
+  char_u *viminfo_readstring __ARGS((vir_T *virp, int off, int convert));
+--- 11,17 ----
+  char_u *make_filter_cmd __ARGS((char_u *cmd, char_u *itmp, char_u *otmp));
+  void append_redir __ARGS((char_u *buf, char_u *opt, char_u *fname));
+  int viminfo_error __ARGS((char *errnum, char *message, char_u *line));
+! int read_viminfo __ARGS((char_u *file, int flags));
+  void write_viminfo __ARGS((char_u *file, int forceit));
+  int viminfo_readline __ARGS((vir_T *virp));
+  char_u *viminfo_readstring __ARGS((vir_T *virp, int off, int convert));
+*** ../vim-7.2.030/src/proto/mark.pro  Sat May  5 19:29:37 2007
+--- src/proto/mark.pro Sat Sep 13 18:06:20 2008
+***************
+*** 26,30 ****
+  void write_viminfo_filemarks __ARGS((FILE *fp));
+  int removable __ARGS((char_u *name));
+  int write_viminfo_marks __ARGS((FILE *fp_out));
+! void copy_viminfo_marks __ARGS((vir_T *virp, FILE *fp_out, int count, int eof));
+  /* vim: set ft=c : */
+--- 26,30 ----
+  void write_viminfo_filemarks __ARGS((FILE *fp));
+  int removable __ARGS((char_u *name));
+  int write_viminfo_marks __ARGS((FILE *fp_out));
+! void copy_viminfo_marks __ARGS((vir_T *virp, FILE *fp_out, int count, int eof, int flags));
+  /* vim: set ft=c : */
+*** ../vim-7.2.030/src/option.c        Thu Oct  2 22:48:01 2008
+--- src/option.c       Fri Sep 26 22:20:20 2008
+***************
+*** 2593,2605 ****
+  #ifdef FEAT_VIMINFO
+                           (char_u *)&p_viminfo, PV_NONE,
+  #if defined(MSDOS) || defined(MSWIN) || defined(OS2)
+!                          {(char_u *)"", (char_u *)"'20,<50,s10,h,rA:,rB:"}
+  #else
+  # ifdef AMIGA
+                           {(char_u *)"",
+!                               (char_u *)"'20,<50,s10,h,rdf0:,rdf1:,rdf2:"}
+  # else
+!                          {(char_u *)"", (char_u *)"'20,<50,s10,h"}
+  # endif
+  #endif
+  #else
+--- 2593,2605 ----
+  #ifdef FEAT_VIMINFO
+                           (char_u *)&p_viminfo, PV_NONE,
+  #if defined(MSDOS) || defined(MSWIN) || defined(OS2)
+!                          {(char_u *)"", (char_u *)"'100,<50,s10,h,rA:,rB:"}
+  #else
+  # ifdef AMIGA
+                           {(char_u *)"",
+!                               (char_u *)"'100,<50,s10,h,rdf0:,rdf1:,rdf2:"}
+  # else
+!                          {(char_u *)"", (char_u *)"'100,<50,s10,h"}
+  # endif
+  #endif
+  #else
+*** ../vim-7.2.030/src/structs.h       Thu Jul 31 22:04:27 2008
+--- src/structs.h      Fri Sep 19 19:15:18 2008
+***************
+*** 459,465 ****
+  typedef struct
+  {
+      int              hide;                   /* TRUE when ":hide" was used */
+! # ifdef FEAT_BROWSE
+      int              browse;                 /* TRUE to invoke file dialog */
+  # endif
+  # ifdef FEAT_WINDOWS
+--- 459,465 ----
+  typedef struct
+  {
+      int              hide;                   /* TRUE when ":hide" was used */
+! # ifdef FEAT_BROWSE_CMD
+      int              browse;                 /* TRUE to invoke file dialog */
+  # endif
+  # ifdef FEAT_WINDOWS
+*** ../vim-7.2.030/src/vim.h   Sat Aug  9 19:37:40 2008
+--- src/vim.h  Sat Sep 13 17:41:24 2008
+***************
+*** 1728,1734 ****
+  #define VV_MOUSE_COL 51
+  #define VV_OP                52
+  #define VV_SEARCHFORWARD 53
+! #define VV_LEN               54      /* number of v: vars */
+  
+  #ifdef FEAT_CLIPBOARD
+  
+--- 1728,1735 ----
+  #define VV_MOUSE_COL 51
+  #define VV_OP                52
+  #define VV_SEARCHFORWARD 53
+! #define VV_OLDFILES  54
+! #define VV_LEN               55      /* number of v: vars */
+  
+  #ifdef FEAT_CLIPBOARD
+  
+***************
+*** 2054,2057 ****
+--- 2055,2064 ----
+  #define DOSO_VIMRC   1       /* loading vimrc file */
+  #define DOSO_GVIMRC  2       /* loading gvimrc file */
+  
++ /* flags for read_viminfo() and children */
++ #define VIF_WANT_INFO                1       /* load non-mark info */
++ #define VIF_WANT_MARKS               2       /* load file marks */
++ #define VIF_FORCEIT          4       /* overwrite info already read */
++ #define VIF_GET_OLDFILES     8       /* load v:oldfiles */
++ 
+  #endif /* VIM__H */
+*** ../vim-7.2.030/src/version.c       Thu Nov  6 20:47:00 2008
+--- src/version.c      Sun Nov  9 13:39:19 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     31,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+217. Your sex life has drastically improved...so what if it's only cyber-sex!
+
+ /// 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.032 b/7.2.032
new file mode 100644 (file)
index 0000000..f4a0d9b
--- /dev/null
+++ b/7.2.032
@@ -0,0 +1,55 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.032
+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.2.032 (after 7.2.031)
+Problem:    Can't build with EXITFREE defined. (Dominique Pelle)
+Solution:   Change vv_string to vv_str.
+Files:     src/eval.c
+
+
+*** ../vim-7.2.031/src/eval.c  Sun Nov  9 13:43:25 2008
+--- src/eval.c Sun Nov  9 17:16:06 2008
+***************
+*** 846,853 ****
+       p = &vimvars[i];
+       if (p->vv_di.di_tv.v_type == VAR_STRING)
+       {
+!          vim_free(p->vv_string);
+!          p->vv_string = NULL;
+       }
+       else if (p->vv_di.di_tv.v_type == VAR_LIST)
+       {
+--- 846,853 ----
+       p = &vimvars[i];
+       if (p->vv_di.di_tv.v_type == VAR_STRING)
+       {
+!          vim_free(p->vv_str);
+!          p->vv_str = NULL;
+       }
+       else if (p->vv_di.di_tv.v_type == VAR_LIST)
+       {
+*** ../vim-7.2.031/src/version.c       Sun Nov  9 13:43:25 2008
+--- src/version.c      Sun Nov  9 17:21:00 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     32,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+218. Your spouse hands you a gift wrapped magnet with your PC's name
+     on it and you accuse him or her of genocide.
+
+ /// 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.033 b/7.2.033
new file mode 100644 (file)
index 0000000..d96a94b
--- /dev/null
+++ b/7.2.033
@@ -0,0 +1,78 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.033
+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.2.033
+Problem:    When detecting a little endian BOM "ucs-2le" is used, but the text
+           might be "utf-16le".
+Solution:   Default to "utf-16le", it also works for "ucs-2le". (Jia Yanwei)
+Files:     src/fileio.c, src/testdir/test42.ok
+
+
+*** ../vim-7.2.032/src/fileio.c        Sun Nov  9 13:43:25 2008
+--- src/fileio.c       Mon Nov  3 21:21:47 2008
+***************
+*** 5550,5558 ****
+           name = "ucs-4le";   /* FF FE 00 00 */
+           len = 4;
+       }
+!      else if (flags == FIO_ALL || flags == (FIO_UCS2 | FIO_ENDIAN_L))
+           name = "ucs-2le";   /* FF FE */
+!      else if (flags == (FIO_UTF16 | FIO_ENDIAN_L))
+           name = "utf-16le";  /* FF FE */
+      }
+      else if (p[0] == 0xfe && p[1] == 0xff
+--- 5550,5559 ----
+           name = "ucs-4le";   /* FF FE 00 00 */
+           len = 4;
+       }
+!      else if (flags == (FIO_UCS2 | FIO_ENDIAN_L))
+           name = "ucs-2le";   /* FF FE */
+!      else if (flags == FIO_ALL || flags == (FIO_UTF16 | FIO_ENDIAN_L))
+!          /* utf-16le is preferred, it also works for ucs-2le text */
+           name = "utf-16le";  /* FF FE */
+      }
+      else if (p[0] == 0xfe && p[1] == 0xff
+*** ../vim-7.2.032/src/testdir/test42.ok       Sat Mar  1 13:49:21 2008
+--- src/testdir/test42.ok      Sat Nov  1 17:09:29 2008
+***************
+*** 20,26 ****
+  ucs-2
+  
+  
+!   fileencoding=ucs-2le
+    bomb
+  ucs-2le
+  
+--- 20,26 ----
+  ucs-2
+  
+  
+!   fileencoding=utf-16le
+    bomb
+  ucs-2le
+  
+*** ../vim-7.2.032/src/version.c       Sun Nov  9 17:21:10 2008
+--- src/version.c      Tue Nov 11 21:54:14 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     33,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+234. You started college as a chemistry major, and walk out four years
+     later as an Internet provider.
+
+ /// 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.034 b/7.2.034
new file mode 100644 (file)
index 0000000..957fb35
--- /dev/null
+++ b/7.2.034
@@ -0,0 +1,81 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.034
+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.2.034
+Problem:    Memory leak in spell info when deleting buffer.
+Solution:   Free the memory. (Dominique Pelle)
+Files:     src/buffer.c
+
+
+*** ../vim-7.2.033/src/buffer.c        Mon Sep  1 17:32:40 2008
+--- src/buffer.c       Wed Nov 12 11:21:49 2008
+***************
+*** 647,652 ****
+--- 647,655 ----
+      vim_free(buf->b_start_fenc);
+      buf->b_start_fenc = NULL;
+  #endif
++ #ifdef FEAT_SPELL
++     ga_clear(&buf->b_langp);
++ #endif
+  }
+  
+  /*
+***************
+*** 1237,1243 ****
+        * "buf" if one exists */
+       if ((swb_flags & SWB_USEOPEN) && buf_jump_open_win(buf))
+           return OK;
+!      /* If 'switchbuf' contians "usetab": jump to first window in any tab
+        * page containing "buf" if one exists */
+       if ((swb_flags & SWB_USETAB) && buf_jump_open_tab(buf))
+           return OK;
+--- 1240,1246 ----
+        * "buf" if one exists */
+       if ((swb_flags & SWB_USEOPEN) && buf_jump_open_win(buf))
+           return OK;
+!      /* If 'switchbuf' contains "usetab": jump to first window in any tab
+        * page containing "buf" if one exists */
+       if ((swb_flags & SWB_USETAB) && buf_jump_open_tab(buf))
+           return OK;
+***************
+*** 3964,3970 ****
+      width = vim_strsize(out);
+      if (maxwidth > 0 && width > maxwidth)
+      {
+!      /* Result is too long, must trunctate somewhere. */
+       l = 0;
+       if (itemcnt == 0)
+           s = out;
+--- 3967,3973 ----
+      width = vim_strsize(out);
+      if (maxwidth > 0 && width > maxwidth)
+      {
+!      /* Result is too long, must truncate somewhere. */
+       l = 0;
+       if (itemcnt == 0)
+           s = out;
+*** ../vim-7.2.033/src/version.c       Tue Nov 11 21:55:29 2008
+--- src/version.c      Wed Nov 12 12:51:21 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     34,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+236. You start saving URL's in your digital watch.
+
+ /// 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.035 b/7.2.035
new file mode 100644 (file)
index 0000000..e8c7391
--- /dev/null
+++ b/7.2.035
@@ -0,0 +1,128 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.035
+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.2.035
+Problem:    Mismatches between alloc/malloc, free/vim_free,
+           realloc/vim_realloc.
+Solution:   Use the right function. (Dominique Pelle)
+Files:     src/gui_x11.c, src/mbyte.c, src/misc2.c, src/os_unix.c
+
+
+*** ../vim-7.2.034/src/gui_x11.c       Fri Jun 20 11:59:25 2008
+--- src/gui_x11.c      Wed Nov 12 11:47:03 2008
+***************
+*** 2450,2456 ****
+       *colorPtr = colortable[closest];
+      }
+  
+!     free(colortable);
+      return OK;
+  }
+  
+--- 2450,2456 ----
+       *colorPtr = colortable[closest];
+      }
+  
+!     vim_free(colortable);
+      return OK;
+  }
+  
+*** ../vim-7.2.034/src/mbyte.c Sat Sep  6 16:44:06 2008
+--- src/mbyte.c        Wed Nov 12 11:24:14 2008
+***************
+*** 5384,5390 ****
+                       draw_feedback = (char *)alloc(draw_data->chg_first
+                                                             + text->length);
+                   else
+!                      draw_feedback = realloc(draw_feedback,
+                                        draw_data->chg_first + text->length);
+                   if (draw_feedback != NULL)
+                   {
+--- 5384,5390 ----
+                       draw_feedback = (char *)alloc(draw_data->chg_first
+                                                             + text->length);
+                   else
+!                      draw_feedback = vim_realloc(draw_feedback,
+                                        draw_data->chg_first + text->length);
+                   if (draw_feedback != NULL)
+                   {
+*** ../vim-7.2.034/src/misc2.c Sat Sep  6 16:44:06 2008
+--- src/misc2.c        Wed Nov 12 11:42:51 2008
+***************
+*** 873,879 ****
+           /* 3. check for available memory: call mch_avail_mem() */
+           if (mch_avail_mem(TRUE) < KEEP_ROOM && !releasing)
+           {
+!              vim_free((char *)p);    /* System is low... no go! */
+               p = NULL;
+           }
+           else
+--- 873,879 ----
+           /* 3. check for available memory: call mch_avail_mem() */
+           if (mch_avail_mem(TRUE) < KEEP_ROOM && !releasing)
+           {
+!              free((char *)p);        /* System is low... no go! */
+               p = NULL;
+           }
+           else
+*** ../vim-7.2.034/src/os_unix.c       Wed Aug  6 18:45:01 2008
+--- src/os_unix.c      Wed Nov 12 11:55:33 2008
+***************
+*** 2905,2911 ****
+       * Ignore any errors.
+       */
+  #if defined(HAVE_SIGALTSTACK) || defined(HAVE_SIGSTACK)
+!     signal_stack = malloc(SIGSTKSZ);
+      init_signal_stack();
+  #endif
+  }
+--- 2905,2911 ----
+       * Ignore any errors.
+       */
+  #if defined(HAVE_SIGALTSTACK) || defined(HAVE_SIGSTACK)
+!     signal_stack = (char *)alloc(SIGSTKSZ);
+      init_signal_stack();
+  #endif
+  }
+***************
+*** 6814,6820 ****
+      if (xsmp_icefd != -1)
+      {
+       SmcCloseConnection(xsmp.smcconn, 0, NULL);
+!      vim_free(xsmp.clientid);
+       xsmp.clientid = NULL;
+       xsmp_icefd = -1;
+      }
+--- 6815,6822 ----
+      if (xsmp_icefd != -1)
+      {
+       SmcCloseConnection(xsmp.smcconn, 0, NULL);
+!      if (xsmp.clientid != NULL)
+!          free(xsmp.clientid);
+       xsmp.clientid = NULL;
+       xsmp_icefd = -1;
+      }
+*** ../vim-7.2.034/src/version.c       Wed Nov 12 12:51:38 2008
+--- src/version.c      Wed Nov 12 13:05:40 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     35,
+  /**/
+
+-- 
+You can tune a file system, but you can't tuna fish
+                                                       -- man tunefs
+
+ /// 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.036 b/7.2.036
new file mode 100644 (file)
index 0000000..4db2a26
--- /dev/null
+++ b/7.2.036
@@ -0,0 +1,276 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.036 (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.2.036 (extra)
+Problem:    Mismatches between alloc/malloc, free/vim_free,
+           realloc/vim_realloc.
+Solution:   Use the right function. (Dominique Pelle)
+Files:     src/gui_riscos.c, src/gui_w48.c, src/mbyte.c, src/os_vms.c,
+           src/os_w32exe.c, src/os_win16.c
+
+
+*** ../vim-7.2.035/src/gui_riscos.c    Thu May 10 19:33:26 2007
+--- src/gui_riscos.c   Wed Nov 12 11:47:54 2008
+***************
+*** 695,701 ****
+  gui_mch_set_shellsize(width, height, min_width, min_height, base_width, base_height, direction)
+      int width;               /* In OS units */
+      int height;
+!     int min_width;   /* Smallest permissable window size (ignored) */
+      int min_height;
+      int base_width;  /* Space for scroll bars, etc */
+      int base_height;
+--- 695,701 ----
+  gui_mch_set_shellsize(width, height, min_width, min_height, base_width, base_height, direction)
+      int width;               /* In OS units */
+      int height;
+!     int min_width;   /* Smallest permissible window size (ignored) */
+      int min_height;
+      int base_width;  /* Space for scroll bars, etc */
+      int base_height;
+***************
+*** 863,869 ****
+      if (strncmp(file, "ZapFont\015", 8) == 0)
+       return file;    /* Loaded OK! */
+  
+!     free(file);
+      return NULL;     /* Not a valid font file */
+  }
+  
+--- 863,869 ----
+      if (strncmp(file, "ZapFont\015", 8) == 0)
+       return file;    /* Loaded OK! */
+  
+!     vim_free(file);
+      return NULL;     /* Not a valid font file */
+  }
+  
+*** ../vim-7.2.035/src/gui_w48.c       Thu Jul 24 20:50:23 2008
+--- src/gui_w48.c      Wed Nov 12 11:37:41 2008
+***************
+*** 3335,3341 ****
+  
+  /*
+   * Convert the string s to the proper format for a filter string by replacing
+!  * the \t and \n delimeters with \0.
+   * Returns the converted string in allocated memory.
+   *
+   * Keep in sync with convert_filterW() above!
+--- 3335,3341 ----
+  
+  /*
+   * Convert the string s to the proper format for a filter string by replacing
+!  * the \t and \n delimiters with \0.
+   * Returns the converted string in allocated memory.
+   *
+   * Keep in sync with convert_filterW() above!
+***************
+*** 3674,3680 ****
+   * Use "prog" as the name of the program and "cmdline" as the arguments.
+   * Copy the arguments to allocated memory.
+   * Return the number of arguments (including program name).
+!  * Return pointers to the arguments in "argvp".
+   * Return pointer to buffer in "tofree".
+   * Returns zero when out of memory.
+   */
+--- 3674,3681 ----
+   * Use "prog" as the name of the program and "cmdline" as the arguments.
+   * Copy the arguments to allocated memory.
+   * Return the number of arguments (including program name).
+!  * Return pointers to the arguments in "argvp".  Memory is allocated with
+!  * malloc(), use free() instead of vim_free().
+   * Return pointer to buffer in "tofree".
+   * Returns zero when out of memory.
+   */
+***************
+*** 3692,3697 ****
+--- 3693,3700 ----
+      char     **argv = NULL;
+      int              round;
+  
++     *tofree = NULL;
++ 
+  #ifdef FEAT_MBYTE
+      /* Try using the Unicode version first, it takes care of conversion when
+       * 'encoding' is changed. */
+***************
+*** 3802,3816 ****
+           argv = (char **)malloc((argc + 1) * sizeof(char *));
+           if (argv == NULL )
+           {
+!              vim_free(newcmdline);
+               return 0;                  /* malloc error */
+           }
+           pnew = newcmdline;
+       }
+      }
+  
+  done:
+- 
+      argv[argc] = NULL;               /* NULL-terminated list */
+      *argvp = argv;
+      return argc;
+--- 3805,3819 ----
+           argv = (char **)malloc((argc + 1) * sizeof(char *));
+           if (argv == NULL )
+           {
+!              free(newcmdline);
+               return 0;                  /* malloc error */
+           }
+           pnew = newcmdline;
++          *tofree = newcmdline;
+       }
+      }
+  
+  done:
+      argv[argc] = NULL;               /* NULL-terminated list */
+      *argvp = argv;
+      return argc;
+*** ../vim-7.2.035/src/os_vms.c        Wed Aug  6 18:38:52 2008
+--- src/os_vms.c       Wed Nov 12 11:42:12 2008
+***************
+*** 228,234 ****
+      else if ((sbuf = getenv((char *)lognam)))
+      {
+       lengte = strlen(sbuf) + 1;
+!      cp = (char_u *)malloc((size_t)lengte);
+       if (cp)
+           strcpy((char *)cp, sbuf);
+       return cp;
+--- 228,234 ----
+      else if ((sbuf = getenv((char *)lognam)))
+      {
+       lengte = strlen(sbuf) + 1;
+!      cp = (char_u *)alloc((size_t)lengte);
+       if (cp)
+           strcpy((char *)cp, sbuf);
+       return cp;
+***************
+*** 381,387 ****
+      if (--vms_match_free == 0) {
+       /* add more space to store matches */
+       vms_match_alloced += EXPL_ALLOC_INC;
+!      vms_fmatch = (char_u **)realloc(vms_fmatch,
+               sizeof(char **) * vms_match_alloced);
+       if (!vms_fmatch)
+           return 0;
+--- 381,387 ----
+      if (--vms_match_free == 0) {
+       /* add more space to store matches */
+       vms_match_alloced += EXPL_ALLOC_INC;
+!      vms_fmatch = (char_u **)vim_realloc(vms_fmatch,
+               sizeof(char **) * vms_match_alloced);
+       if (!vms_fmatch)
+           return 0;
+***************
+*** 460,466 ****
+           if (--files_free < 1)
+           {
+               files_alloced += EXPL_ALLOC_INC;
+!              *file = (char_u **)realloc(*file,
+                   sizeof(char_u **) * files_alloced);
+               if (*file == NULL)
+               {
+--- 460,466 ----
+           if (--files_free < 1)
+           {
+               files_alloced += EXPL_ALLOC_INC;
+!              *file = (char_u **)vim_realloc(*file,
+                   sizeof(char_u **) * files_alloced);
+               if (*file == NULL)
+               {
+***************
+*** 614,627 ****
+      {
+       buflen = len + 128;
+       if (buf)
+!          buf = (char *)realloc(buf, buflen);
+       else
+!          buf = (char *)calloc(buflen, sizeof(char));
+      }
+  
+  #ifdef DEBUG
+       char             *tmpbuf = NULL;
+!      tmpbuf = (char *)calloc(buflen, sizeof(char));
+       strcpy(tmpbuf, instring);
+  #endif
+  
+--- 614,627 ----
+      {
+       buflen = len + 128;
+       if (buf)
+!          buf = (char *)vim_realloc(buf, buflen);
+       else
+!          buf = (char *)alloc(buflen * sizeof(char));
+      }
+  
+  #ifdef DEBUG
+       char             *tmpbuf = NULL;
+!      tmpbuf = (char *)alloc(buflen * sizeof(char));
+       strcpy(tmpbuf, instring);
+  #endif
+  
+*** ../vim-7.2.035/src/os_w32exe.c     Fri Jul  1 00:06:20 2005
+--- src/os_w32exe.c    Wed Nov 12 11:45:43 2008
+***************
+*** 129,135 ****
+  errout:
+  #endif
+      free(argv);
+!     free(tofree);
+  #ifdef FEAT_MBYTE
+      free_cmd_argsW();
+  #endif
+--- 129,136 ----
+  errout:
+  #endif
+      free(argv);
+!     if (tofree != NULL)
+!      free(tofree);
+  #ifdef FEAT_MBYTE
+      free_cmd_argsW();
+  #endif
+*** ../vim-7.2.035/src/os_win16.c      Wed Jun 25 00:49:34 2008
+--- src/os_win16.c     Wed Nov 12 11:45:53 2008
+***************
+*** 121,127 ****
+      pmain(argc, argv);
+  
+      free(argv);
+!     free(tofree);
+  
+      return 0;
+  }
+--- 121,128 ----
+      pmain(argc, argv);
+  
+      free(argv);
+!     if (tofree != NULL)
+!      free(tofree);
+  
+      return 0;
+  }
+*** ../vim-7.2.035/src/version.c       Wed Nov 12 13:07:48 2008
+--- src/version.c      Wed Nov 12 13:28:51 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     36,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+239. You think "surfing" is something you do on dry land.
+
+ /// 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.037 b/7.2.037
new file mode 100644 (file)
index 0000000..20a4398
--- /dev/null
+++ b/7.2.037
@@ -0,0 +1,53 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.037
+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.2.037
+Problem:    Double free with GTK 1 and compiled with EXITFREE.
+Solution:   Don't close display. (Dominique Pelle)
+Files:     src/os_unix.c
+
+
+*** ../vim-7.2.036/src/os_unix.c       Wed Nov 12 13:07:48 2008
+--- src/os_unix.c      Wed Nov 12 11:55:33 2008
+***************
+*** 2936,2942 ****
+      }
+  #  endif
+  # endif
+! # ifdef FEAT_X11
+      if (x11_display != NULL
+  #  ifdef FEAT_XCLIPBOARD
+           && x11_display != xterm_dpy
+--- 2936,2943 ----
+      }
+  #  endif
+  # endif
+!     /* Don't close the display for GTK 1, it is done in exit(). */
+! # if defined(FEAT_X11) && (!defined(FEAT_GUI_GTK) || defined(HAVE_GTK2))
+      if (x11_display != NULL
+  #  ifdef FEAT_XCLIPBOARD
+           && x11_display != xterm_dpy
+*** ../vim-7.2.036/src/version.c       Wed Nov 12 13:35:31 2008
+--- src/version.c      Wed Nov 12 14:08:56 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     37,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+240. You think Webster's Dictionary is a directory of WEB sites.
+
+ /// 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.038 b/7.2.038
new file mode 100644 (file)
index 0000000..449821e
--- /dev/null
+++ b/7.2.038
@@ -0,0 +1,86 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.038
+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.2.038
+Problem:    Overlapping arguments to memcpy().
+Solution:   Use mch_memmove(). (Dominique Pelle)
+Files:     src/if_xcmdsrv.c
+
+
+*** ../vim-7.2.037/src/if_xcmdsrv.c    Wed Aug  6 18:38:13 2008
+--- src/if_xcmdsrv.c   Wed Nov 12 12:09:01 2008
+***************
+*** 736,742 ****
+               + serverReply.ga_len;
+           e.id = w;
+           ga_init2(&e.strings, 1, 100);
+!          memcpy(p, &e, sizeof(e));
+           serverReply.ga_len++;
+       }
+      }
+--- 736,742 ----
+               + serverReply.ga_len;
+           e.id = w;
+           ga_init2(&e.strings, 1, 100);
+!          mch_memmove(p, &e, sizeof(e));
+           serverReply.ga_len++;
+       }
+      }
+***************
+*** 1018,1024 ****
+       p++;
+       count = numItems - (p - regProp);
+       if (count > 0)
+!          memcpy(entry, p, count);
+       XChangeProperty(dpy, RootWindow(dpy, 0), registryProperty, XA_STRING,
+                       8, PropModeReplace, regProp,
+                       (int)(numItems - (p - entry)));
+--- 1018,1024 ----
+       p++;
+       count = numItems - (p - regProp);
+       if (count > 0)
+!          mch_memmove(entry, p, count);
+       XChangeProperty(dpy, RootWindow(dpy, 0), registryProperty, XA_STRING,
+                       8, PropModeReplace, regProp,
+                       (int)(numItems - (p - entry)));
+***************
+*** 1072,1078 ****
+               p++;
+               lastHalf = numItems - (p - regProp);
+               if (lastHalf > 0)
+!                  memcpy(entry, p, lastHalf);
+               numItems = (entry - regProp) + lastHalf;
+               p = entry;
+               continue;
+--- 1072,1078 ----
+               p++;
+               lastHalf = numItems - (p - regProp);
+               if (lastHalf > 0)
+!                  mch_memmove(entry, p, lastHalf);
+               numItems = (entry - regProp) + lastHalf;
+               p = entry;
+               continue;
+*** ../vim-7.2.037/src/version.c       Wed Nov 12 14:09:38 2008
+--- src/version.c      Wed Nov 12 14:51:00 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     38,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+241. You try to look for Net Search even when you're in File Manager.
+
+ /// 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.039 b/7.2.039
new file mode 100644 (file)
index 0000000..f9cb18e
--- /dev/null
+++ b/7.2.039
@@ -0,0 +1,46 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.039
+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.2.039
+Problem:    Accessing freed memory on exit when EXITFREE is defined.
+Solution:   Call hash_init() on the v: hash table.
+Files:     src/eval.c
+
+
+*** ../vim-7.2.038/src/eval.c  Sun Nov  9 17:21:10 2008
+--- src/eval.c Wed Nov 12 12:15:14 2008
+***************
+*** 856,861 ****
+--- 856,862 ----
+       }
+      }
+      hash_clear(&vimvarht);
++     hash_init(&vimvarht);  /* garbage_collect() will access it */
+      hash_clear(&compat_hashtab);
+  
+      /* script-local variables */
+*** ../vim-7.2.038/src/version.c       Wed Nov 12 14:52:11 2008
+--- src/version.c      Wed Nov 12 15:09:39 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     39,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+242. You turn down a better-paying job because it doesn't come with
+     a free e-mail account.
+
+ /// 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.040 b/7.2.040
new file mode 100644 (file)
index 0000000..76ea73a
--- /dev/null
+++ b/7.2.040
@@ -0,0 +1,64 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.040
+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.2.040
+Problem:    When using ":e ++ff=dos fname" and the file contains a NL without
+           a CR before it and 'ffs' contains "unix" then the fileformat
+           becomes unix.
+Solution:   Ignore 'ffs' when using the ++ff argument. (Ben Schmidt)
+           Also remove unreachable code.
+Files:     src/fileio.c
+
+
+*** ../vim-7.2.039/src/fileio.c        Tue Nov 11 21:55:29 2008
+--- src/fileio.c       Wed Nov 12 13:19:42 2008
+***************
+*** 932,938 ****
+--- 932,941 ----
+      else
+      {
+       if (eap != NULL && eap->force_ff != 0)
++      {
+           fileformat = get_fileformat_force(curbuf, eap);
++          try_unix = try_dos = try_mac = FALSE;
++      }
+       else if (curbuf->b_p_bin)
+           fileformat = EOL_UNIX;              /* binary: use Unix format */
+       else if (*p_ffs == NUL)
+***************
+*** 2341,2351 ****
+               STRCAT(IObuff, _("[CR missing]"));
+               c = TRUE;
+           }
+-          if (ff_error == EOL_MAC)
+-          {
+-              STRCAT(IObuff, _("[NL found]"));
+-              c = TRUE;
+-          }
+           if (split)
+           {
+               STRCAT(IObuff, _("[long lines split]"));
+--- 2344,2349 ----
+*** ../vim-7.2.039/src/version.c       Wed Nov 12 15:28:37 2008
+--- src/version.c      Wed Nov 12 16:03:44 2008
+***************
+*** 678,679 ****
+--- 678,681 ----
+  {   /* Add new patch number below this line */
++ /**/
++     40,
+  /**/
+
+-- 
+If you're sending someone Styrofoam, what do you pack it in?
+
+ /// 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.207292 seconds and 4 git commands to generate.