]> git.pld-linux.org Git - packages/vim.git/commitdiff
- from upstream
authorElan Ruusamäe <glen@pld-linux.org>
Thu, 29 May 2008 19:12:32 +0000 (19:12 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    7.1.292 -> 1.1
    7.1.293 -> 1.1
    7.1.294 -> 1.1
    7.1.295 -> 1.1
    7.1.296 -> 1.1
    7.1.297 -> 1.1
    7.1.298 -> 1.1
    7.1.299 -> 1.1
    7.1.300 -> 1.1
    7.1.301 -> 1.1
    7.1.302 -> 1.1
    7.1.303 -> 1.1

12 files changed:
7.1.292 [new file with mode: 0644]
7.1.293 [new file with mode: 0644]
7.1.294 [new file with mode: 0644]
7.1.295 [new file with mode: 0644]
7.1.296 [new file with mode: 0644]
7.1.297 [new file with mode: 0644]
7.1.298 [new file with mode: 0644]
7.1.299 [new file with mode: 0644]
7.1.300 [new file with mode: 0644]
7.1.301 [new file with mode: 0644]
7.1.302 [new file with mode: 0644]
7.1.303 [new file with mode: 0644]

diff --git a/7.1.292 b/7.1.292
new file mode 100644 (file)
index 0000000..2ebecfc
--- /dev/null
+++ b/7.1.292
@@ -0,0 +1,251 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.292
+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.292
+Problem:    When using a pattern with "\@<=" the submatches can be wrong.
+           (Brett Stahlman)
+Solution:   Save the submatches when attempting a look-behind match.
+Files:     src/regexp.c
+
+
+*** ../vim-7.1.291/src/regexp.c        Sat Jan 19 15:55:51 2008
+--- src/regexp.c       Tue Apr  1 18:15:47 2008
+***************
+*** 3039,3044 ****
+--- 3039,3053 ----
+      } se_u;
+  } save_se_T;
+  
++ /* used for BEHIND and NOBEHIND matching */
++ typedef struct regbehind_S
++ {
++     regsave_T        save_after;
++     regsave_T        save_behind;
++     save_se_T   save_start[NSUBEXP];
++     save_se_T   save_end[NSUBEXP];
++ } regbehind_T;
++ 
+  static char_u        *reg_getline __ARGS((linenr_T lnum));
+  static long  vim_regexec_both __ARGS((char_u *line, colnr_T col, proftime_T *tm));
+  static long  regtry __ARGS((regprog_T *prog, colnr_T col));
+***************
+*** 3046,3051 ****
+--- 3055,3062 ----
+  #ifdef FEAT_SYN_HL
+  static void  cleanup_zsubexpr __ARGS((void));
+  #endif
++ static void  save_subexpr __ARGS((regbehind_T *bp));
++ static void  restore_subexpr __ARGS((regbehind_T *bp));
+  static void  reg_nextline __ARGS((void));
+  static void  reg_save __ARGS((regsave_T *save, garray_T *gap));
+  static void  reg_restore __ARGS((regsave_T *save, garray_T *gap));
+***************
+*** 3166,3184 ****
+       save_se_T  sesave;
+       regsave_T  regsave;
+      } rs_un;                 /* room for saving reginput */
+!     short    rs_no;          /* submatch nr */
+  } regitem_T;
+  
+  static regitem_T *regstack_push __ARGS((regstate_T state, char_u *scan));
+  static void regstack_pop __ARGS((char_u **scan));
+  
+- /* used for BEHIND and NOBEHIND matching */
+- typedef struct regbehind_S
+- {
+-     regsave_T        save_after;
+-     regsave_T        save_behind;
+- } regbehind_T;
+- 
+  /* used for STAR, PLUS and BRACE_SIMPLE matching */
+  typedef struct regstar_S
+  {
+--- 3177,3188 ----
+       save_se_T  sesave;
+       regsave_T  regsave;
+      } rs_un;                 /* room for saving reginput */
+!     short    rs_no;          /* submatch nr or BEHIND/NOBEHIND */
+  } regitem_T;
+  
+  static regitem_T *regstack_push __ARGS((regstate_T state, char_u *scan));
+  static void regstack_pop __ARGS((char_u **scan));
+  
+  /* used for STAR, PLUS and BRACE_SIMPLE matching */
+  typedef struct regstar_S
+  {
+***************
+*** 4888,4893 ****
+--- 4892,4901 ----
+                   status = RA_FAIL;
+               else
+               {
++                  /* Need to save the subexpr to be able to restore them
++                   * when there is a match but we don't use it. */
++                  save_subexpr(((regbehind_T *)rp) - 1);
++ 
+                   rp->rs_no = op;
+                   reg_save(&rp->rs_un.regsave, &backpos);
+                   /* First try if what follows matches.  If it does then we
+***************
+*** 5118,5132 ****
+                   reg_restore(&(((regbehind_T *)rp) - 1)->save_after,
+                                                                   &backpos);
+               else
+!                  /* But we didn't want a match. */
+                   status = RA_NOMATCH;
+               regstack_pop(&scan);
+               regstack.ga_len -= sizeof(regbehind_T);
+           }
+           else
+           {
+!              /* No match: Go back one character.  May go to previous
+!               * line once. */
+               no = OK;
+               if (REG_MULTI)
+               {
+--- 5126,5145 ----
+                   reg_restore(&(((regbehind_T *)rp) - 1)->save_after,
+                                                                   &backpos);
+               else
+!              {
+!                  /* But we didn't want a match.  Need to restore the
+!                   * subexpr, because what follows matched, so they have
+!                   * been set. */
+                   status = RA_NOMATCH;
++                  restore_subexpr(((regbehind_T *)rp) - 1);
++              }
+               regstack_pop(&scan);
+               regstack.ga_len -= sizeof(regbehind_T);
+           }
+           else
+           {
+!              /* No match or a match that doesn't end where we want it: Go
+!               * back one character.  May go to previous line once. */
+               no = OK;
+               if (REG_MULTI)
+               {
+***************
+*** 5160,5165 ****
+--- 5173,5185 ----
+                   /* Advanced, prepare for finding match again. */
+                   reg_restore(&rp->rs_un.regsave, &backpos);
+                   scan = OPERAND(rp->rs_scan);
++                  if (status == RA_MATCH)
++                  {
++                      /* We did match, so subexpr may have been changed,
++                       * need to restore them for the next try. */
++                      status = RA_NOMATCH;
++                      restore_subexpr(((regbehind_T *)rp) - 1);
++                  }
+               }
+               else
+               {
+***************
+*** 5172,5178 ****
+                       status = RA_MATCH;
+                   }
+                   else
+!                      status = RA_NOMATCH;
+                   regstack_pop(&scan);
+                   regstack.ga_len -= sizeof(regbehind_T);
+               }
+--- 5192,5207 ----
+                       status = RA_MATCH;
+                   }
+                   else
+!                  {
+!                      /* We do want a proper match.  Need to restore the
+!                       * subexpr if we had a match, because they may have
+!                       * been set. */
+!                      if (status == RA_MATCH)
+!                      {
+!                          status = RA_NOMATCH;
+!                          restore_subexpr(((regbehind_T *)rp) - 1);
+!                      }
+!                  }
+                   regstack_pop(&scan);
+                   regstack.ga_len -= sizeof(regbehind_T);
+               }
+***************
+*** 5820,5825 ****
+--- 5849,5903 ----
+  #endif
+  
+  /*
++  * Save the current subexpr to "bp", so that they can be restored
++  * later by restore_subexpr().
++  */
++     static void
++ save_subexpr(bp)
++     regbehind_T *bp;
++ {
++     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];
++      }
++     }
++ }
++ 
++ /*
++  * Restore the subexpr from "bp".
++  */
++     static void
++ restore_subexpr(bp)
++     regbehind_T *bp;
++ {
++     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;
++      }
++     }
++ }
++ 
++ /*
+   * Advance reglnum, regline and reginput to the next line.
+   */
+      static void
+*** ../vim-7.1.291/src/version.c       Tue Apr  1 20:58:23 2008
+--- src/version.c      Wed Apr  9 12:12:33 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     292,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+259. When you enter your name in the AltaVista search engine, the top ten
+     matches do indeed refer to you.
+
+ /// 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.293 b/7.1.293
new file mode 100644 (file)
index 0000000..df4499c
--- /dev/null
+++ b/7.1.293
@@ -0,0 +1,118 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.293
+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.293
+Problem:    Spell checking considers super- and subscript characters as word
+           characters.
+Solution:   Recognize the Unicode super and subscript characters.
+Files:     src/spell.c
+
+
+*** ../vim-7.1.292/src/spell.c Tue Apr  1 17:13:54 2008
+--- src/spell.c        Wed Apr  9 15:47:06 2008
+***************
+*** 753,758 ****
+--- 753,759 ----
+  static int spell_iswordp __ARGS((char_u *p, buf_T *buf));
+  static int spell_iswordp_nmw __ARGS((char_u *p));
+  #ifdef FEAT_MBYTE
++ static int spell_mb_isword_class __ARGS((int cl));
+  static int spell_iswordp_w __ARGS((int *p, buf_T *buf));
+  #endif
+  static int write_spell_prefcond __ARGS((FILE *fd, garray_T *gap));
+***************
+*** 9789,9795 ****
+  
+       c = mb_ptr2char(s);
+       if (c > 255)
+!          return mb_get_class(s) >= 2;
+       return spelltab.st_isw[c];
+      }
+  #endif
+--- 9790,9796 ----
+  
+       c = mb_ptr2char(s);
+       if (c > 255)
+!          return spell_mb_isword_class(mb_get_class(s));
+       return spelltab.st_isw[c];
+      }
+  #endif
+***************
+*** 9812,9818 ****
+      {
+       c = mb_ptr2char(p);
+       if (c > 255)
+!          return mb_get_class(p) >= 2;
+       return spelltab.st_isw[c];
+      }
+  #endif
+--- 9813,9819 ----
+      {
+       c = mb_ptr2char(p);
+       if (c > 255)
+!          return spell_mb_isword_class(mb_get_class(p));
+       return spelltab.st_isw[c];
+      }
+  #endif
+***************
+*** 9821,9826 ****
+--- 9822,9839 ----
+  
+  #ifdef FEAT_MBYTE
+  /*
++  * Return TRUE if word class indicates a word character.
++  * Only for characters above 255.
++  * Unicode subscript and superscript are not considered word characters.
++  */
++     static int
++ spell_mb_isword_class(cl)
++     int cl;
++ {
++     return cl >= 2 && cl != 0x2070 && cl != 0x2080;
++ }
++ 
++ /*
+   * Return TRUE if "p" points to a word character.
+   * Wide version of spell_iswordp().
+   */
+***************
+*** 9841,9847 ****
+      if (*s > 255)
+      {
+       if (enc_utf8)
+!          return utf_class(*s) >= 2;
+       if (enc_dbcs)
+           return dbcs_class((unsigned)*s >> 8, *s & 0xff) >= 2;
+       return 0;
+--- 9854,9860 ----
+      if (*s > 255)
+      {
+       if (enc_utf8)
+!          return spell_mb_isword_class(utf_class(*s));
+       if (enc_dbcs)
+           return dbcs_class((unsigned)*s >> 8, *s & 0xff) >= 2;
+       return 0;
+*** ../vim-7.1.292/src/version.c       Wed Apr  9 12:14:44 2008
+--- src/version.c      Wed Apr  9 15:45:10 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     293,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+268. You get up in the morning and go online before getting your coffee.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.1.294 b/7.1.294
new file mode 100644 (file)
index 0000000..0ffd03f
--- /dev/null
+++ b/7.1.294
@@ -0,0 +1,73 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.294
+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.294
+Problem:    Leaking memory when executing a shell command.
+Solution:   Free memory when not able to save for undo. (Dominique Pelle)
+Files:     src/ex_cmds.c
+
+*** ../vim-7.1.293/src/ex_cmds.c       Mon Feb 18 19:41:40 2008
+--- src/ex_cmds.c      Sun Apr 13 13:20:15 2008
+***************
+*** 1160,1165 ****
+--- 1166,1172 ----
+      if (!do_out)
+       msg_putchar('\n');
+  
++     /* Create the shell command in allocated memory. */
+      cmd_buf = make_filter_cmd(cmd, itmp, otmp);
+      if (cmd_buf == NULL)
+       goto filterend;
+***************
+*** 1180,1186 ****
+--- 1187,1196 ----
+      if (do_out)
+      {
+       if (u_save((linenr_T)(line2), (linenr_T)(line2 + 1)) == FAIL)
++      {
++          vim_free(cmd_buf);
+           goto error;
++      }
+       redraw_curbuf_later(VALID);
+      }
+      read_linecount = curbuf->b_ml.ml_line_count;
+***************
+*** 4471,4477 ****
+           /*
+            * The new text is build up step by step, to avoid too much
+            * copying.  There are these pieces:
+!           * sub_firstline    The old text, unmodifed.
+            * copycol          Column in the old text where we started
+            *                  looking for a match; from here old text still
+            *                  needs to be copied to the new text.
+--- 4481,4487 ----
+           /*
+            * The new text is build up step by step, to avoid too much
+            * copying.  There are these pieces:
+!           * sub_firstline    The old text, unmodified.
+            * copycol          Column in the old text where we started
+            *                  looking for a match; from here old text still
+            *                  needs to be copied to the new text.
+*** ../vim-7.1.293/src/version.c       Wed Apr  9 15:48:08 2008
+--- src/version.c      Wed May  7 13:07:48 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     294,
+  /**/
+
+-- 
+It's not hard to meet expenses, they're everywhere.
+
+ /// 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.295 b/7.1.295
new file mode 100644 (file)
index 0000000..2ed5bc8
--- /dev/null
+++ b/7.1.295
@@ -0,0 +1,187 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.295
+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.295
+Problem:    Vimtutor only works with vim, not gvim.
+Solution:   Add the -g flag to vimtutor. (Dominique Pelle)  Add gvimtutor.
+Files:     src/Makefile, src/gvimtutor, src/vimtutor, runtime/doc/vimtutor.1
+
+
+*** ../vim-7.1.294/src/Makefile        Wed May  7 13:09:17 2008
+--- src/Makefile       Wed May  7 17:34:31 2008
+***************
+*** 1867,1872 ****
+--- 1872,1879 ----
+  installtutorbin: $(DEST_VIM)
+       $(INSTALL_DATA) vimtutor $(DEST_BIN)/$(VIMNAME)tutor
+       chmod $(SCRIPTMOD) $(DEST_BIN)/$(VIMNAME)tutor
++      $(INSTALL_DATA) gvimtutor $(DEST_BIN)/$(GVIMNAME)tutor
++      chmod $(SCRIPTMOD) $(DEST_BIN)/$(GVIMNAME)tutor
+  
+  installtutor: $(DEST_RT) $(DEST_TUTOR)
+       -$(INSTALL_DATA) $(TUTORSOURCE)/README* $(TUTORSOURCE)/tutor* $(DEST_TUTOR)
+***************
+*** 2075,2080 ****
+--- 2082,2088 ----
+  uninstall: uninstall_runtime
+       -rm -f $(DEST_BIN)/$(VIMTARGET)
+       -rm -f $(DEST_BIN)/vimtutor
++      -rm -f $(DEST_BIN)/gvimtutor
+       -rm -f $(DEST_BIN)/$(EXTARGET) $(DEST_BIN)/$(VIEWTARGET)
+       -rm -f $(DEST_BIN)/$(GVIMTARGET) $(DEST_BIN)/$(GVIEWTARGET)
+       -rm -f $(DEST_BIN)/$(RVIMTARGET) $(DEST_BIN)/$(RVIEWTARGET)
+***************
+*** 2171,2177 ****
+  
+  shadow:      runtime pixmaps
+       mkdir $(SHADOWDIR)
+!      cd $(SHADOWDIR); ln -s ../*.[ch] ../*.in ../*.sh ../*.xs ../*.xbm ../toolcheck ../proto ../vimtutor ../mkinstalldirs .
+       mkdir $(SHADOWDIR)/auto
+       cd $(SHADOWDIR)/auto; ln -s ../../auto/configure .
+       cd $(SHADOWDIR); rm -f auto/link.sed
+--- 2179,2185 ----
+  
+  shadow:      runtime pixmaps
+       mkdir $(SHADOWDIR)
+!      cd $(SHADOWDIR); ln -s ../*.[ch] ../*.in ../*.sh ../*.xs ../*.xbm ../toolcheck ../proto ../vimtutor ../gvimtutor ../mkinstalldirs .
+       mkdir $(SHADOWDIR)/auto
+       cd $(SHADOWDIR)/auto; ln -s ../../auto/configure .
+       cd $(SHADOWDIR); rm -f auto/link.sed
+*** ../vim-7.1.294/src/gvimtutor       Wed May  7 17:38:10 2008
+--- src/gvimtutor      Wed May  7 17:29:35 2008
+***************
+*** 0 ****
+--- 1,8 ----
++ #!/bin/sh
++ 
++ # Start GUI Vim on a copy of the tutor file.
++ 
++ # Usage: gvimtutor [xx]
++ # See vimtutor for usage.
++ 
++ exec `dirname $0`/vimtutor -g "$@"
+*** ../vim-7.1.294/src/vimtutor        Tue Jul 17 14:32:07 2007
+--- src/vimtutor       Sat Apr  5 12:21:11 2008
+***************
+*** 2,12 ****
+  
+  # Start Vim on a copy of the tutor file.
+  
+! # Usage: vimtutor [xx], where xx is a language code like "es" or "nl".
+  # When an argument is given, it tries loading that tutor.
+  # When this fails or no argument was given, it tries using 'v:lang'
+  # When that also fails, it uses the English version.
+  
+  xx=$1
+  export xx
+  
+--- 2,25 ----
+  
+  # Start Vim on a copy of the tutor file.
+  
+! # Usage: vimtutor [-g] [xx]
+! # Where optional argument -g starts vimtutor in gvim (GUI) instead of vim.
+! # and xx is a language code like "es" or "nl".
+  # When an argument is given, it tries loading that tutor.
+  # When this fails or no argument was given, it tries using 'v:lang'
+  # When that also fails, it uses the English version.
+  
++ # Vim could be called "vim" or "vi".  Also check for "vimN", for people who
++ # have Vim installed with its version number.
++ # We anticipate up to a future Vim 8 version :-).
++ seq="vim vim8 vim75 vim74 vim73 vim72 vim71 vim70 vim7 vim6 vi"
++ if test "$1" = "-g"; then 
++   # Try to use the GUI version of Vim if possible, it will fall back
++   # on Vim if Gvim is not installed.
++   seq="gvim gvim8 gvim75 gvim74 gvim73 gvim72 gvim71 gvim70 gvim7 gvim6 $seq"
++   shift
++ fi
++ 
+  xx=$1
+  export xx
+  
+***************
+*** 39,48 ****
+  # remove the copy of the tutor on exit
+  trap "rm -rf $TODELETE" 0 1 2 3 9 11 13 15
+  
+- # Vim could be called "vim" or "vi".  Also check for "vimN", for people who
+- # have Vim installed with its version number.
+- # We anticipate up to a future Vim 8 version :-).
+- seq="vim vim8 vim75 vim74 vim73 vim72 vim71 vim70 vim7 vim6 vi"
+  for i in $seq; do
+       testvim=`which $i 2>/dev/null`
+       if test -f "$testvim"; then
+--- 52,57 ----
+***************
+*** 59,65 ****
+  
+  # Use Vim to copy the tutor, it knows the value of $VIMRUNTIME
+  # The script tutor.vim tells Vim which file to copy
+! $VIM -u NONE -c 'so $VIMRUNTIME/tutor/tutor.vim'
+  
+  # Start vim without any .vimrc, set 'nocompatible'
+! $VIM -u NONE -c "set nocp" $TUTORCOPY
+--- 68,74 ----
+  
+  # Use Vim to copy the tutor, it knows the value of $VIMRUNTIME
+  # The script tutor.vim tells Vim which file to copy
+! $VIM -f -u NONE -c 'so $VIMRUNTIME/tutor/tutor.vim'
+  
+  # Start vim without any .vimrc, set 'nocompatible'
+! $VIM -f -u NONE -c "set nocp" $TUTORCOPY
+*** ../vim-7.1.294/runtime/doc/vimtutor.1      Sun Jun 13 18:50:18 2004
+--- runtime/doc/vimtutor.1     Sat Apr  5 12:21:11 2008
+***************
+*** 3,9 ****
+  vimtutor \- the Vim tutor
+  .SH SYNOPSIS
+  .br
+! .B vimtutor [language]
+  .SH DESCRIPTION
+  .B Vimtutor
+  starts the
+--- 3,9 ----
+  vimtutor \- the Vim tutor
+  .SH SYNOPSIS
+  .br
+! .B vimtutor [-g] [language]
+  .SH DESCRIPTION
+  .B Vimtutor
+  starts the
+***************
+*** 18,23 ****
+--- 18,26 ----
+  .B Vim
+  commands.
+  .PP
++ The optional argument -g starts vimtutor with gvim rather than vim, if the
++ GUI version of vim is available, or falls back to Vim if gvim is not found.
++ .PP
+  The optional [language] argument is the two-letter name of a language, like
+  "it" or "es".
+  If the [language] argument is missing, the language of the current locale will
+*** ../vim-7.1.294/src/version.c       Wed May  7 13:09:12 2008
+--- src/version.c      Wed May  7 17:12:43 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     295,
+  /**/
+
+-- 
+Time flies like an arrow.
+Fruit flies like a banana.
+
+ /// 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.296 b/7.1.296
new file mode 100644 (file)
index 0000000..00f9734
--- /dev/null
+++ b/7.1.296
@@ -0,0 +1,328 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.296
+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.296
+Problem:    SELinux is not supported.
+Solution:   Detect the selinux library and use mch_copy_sec(). (James Vega)
+Files:     src/auto/configure, src/config.h.in, src/configure.in,
+           src/fileio.c, src/memfile.c, src/os_unix.c, src/proto/os_unix.pro
+
+
+*** ../vim-7.1.295/src/auto/configure  Wed Feb 20 12:43:05 2008
+--- src/auto/configure Wed May  7 18:16:09 2008
+***************
+*** 845,850 ****
+--- 845,851 ----
+    --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+    --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+    --disable-darwin        Disable Darwin (Mac OS X) support.
++   --disable-selinux    Don't check for SELinux support.
+    --disable-xsmp          Disable XSMP session management
+    --disable-xsmp-interact Disable XSMP interaction
+    --enable-mzschemeinterp   Include MzScheme interpreter.
+***************
+*** 3611,3616 ****
+--- 3612,3705 ----
+  esac
+  fi
+  
++ echo "$as_me:$LINENO: checking --disable-selinux argument" >&5
++ echo $ECHO_N "checking --disable-selinux argument... $ECHO_C" >&6
++ # Check whether --enable-selinux or --disable-selinux was given.
++ if test "${enable_selinux+set}" = set; then
++   enableval="$enable_selinux"
++ 
++ else
++   enable_selinux="yes"
++ fi;
++ if test "$enable_selinux" = "yes"; then
++   echo "$as_me:$LINENO: result: no" >&5
++ echo "${ECHO_T}no" >&6
++   echo "$as_me:$LINENO: checking for is_selinux_enabled in -lselinux" >&5
++ echo $ECHO_N "checking for is_selinux_enabled in -lselinux... $ECHO_C" >&6
++ if test "${ac_cv_lib_selinux_is_selinux_enabled+set}" = set; then
++   echo $ECHO_N "(cached) $ECHO_C" >&6
++ else
++   ac_check_lib_save_LIBS=$LIBS
++ LIBS="-lselinux  $LIBS"
++ cat >conftest.$ac_ext <<_ACEOF
++ /* confdefs.h.  */
++ _ACEOF
++ cat confdefs.h >>conftest.$ac_ext
++ cat >>conftest.$ac_ext <<_ACEOF
++ /* end confdefs.h.  */
++ 
++ /* Override any gcc2 internal prototype to avoid an error.  */
++ #ifdef __cplusplus
++ extern "C"
++ #endif
++ /* We use char because int might match the return type of a gcc2
++    builtin and then its argument prototype would still apply.  */
++ char is_selinux_enabled ();
++ int
++ main ()
++ {
++ is_selinux_enabled ();
++   ;
++   return 0;
++ }
++ _ACEOF
++ rm -f conftest.$ac_objext conftest$ac_exeext
++ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++   (eval $ac_link) 2>conftest.er1
++   ac_status=$?
++   grep -v '^ *+' conftest.er1 >conftest.err
++   rm -f conftest.er1
++   cat conftest.err >&5
++   echo "$as_me:$LINENO: \$? = $ac_status" >&5
++   (exit $ac_status); } &&
++       { ac_try='test -z "$ac_c_werror_flag"
++                       || test ! -s conftest.err'
++   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++   (eval $ac_try) 2>&5
++   ac_status=$?
++   echo "$as_me:$LINENO: \$? = $ac_status" >&5
++   (exit $ac_status); }; } &&
++       { ac_try='test -s conftest$ac_exeext'
++   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++   (eval $ac_try) 2>&5
++   ac_status=$?
++   echo "$as_me:$LINENO: \$? = $ac_status" >&5
++   (exit $ac_status); }; }; then
++   ac_cv_lib_selinux_is_selinux_enabled=yes
++ else
++   echo "$as_me: failed program was:" >&5
++ sed 's/^/| /' conftest.$ac_ext >&5
++ 
++ ac_cv_lib_selinux_is_selinux_enabled=no
++ fi
++ rm -f conftest.err conftest.$ac_objext \
++       conftest$ac_exeext conftest.$ac_ext
++ LIBS=$ac_check_lib_save_LIBS
++ fi
++ echo "$as_me:$LINENO: result: $ac_cv_lib_selinux_is_selinux_enabled" >&5
++ echo "${ECHO_T}$ac_cv_lib_selinux_is_selinux_enabled" >&6
++ if test $ac_cv_lib_selinux_is_selinux_enabled = yes; then
++   LIBS="$LIBS -lselinux"
++         cat >>confdefs.h <<\_ACEOF
++ #define HAVE_SELINUX 1
++ _ACEOF
++ 
++ fi
++ 
++ else
++    echo "$as_me:$LINENO: result: yes" >&5
++ echo "${ECHO_T}yes" >&6
++ fi
+  
+  
+  echo "$as_me:$LINENO: checking --with-features argument" >&5
+*** ../vim-7.1.295/src/config.h.in     Tue May  1 13:37:23 2007
+--- src/config.h.in    Wed May  7 18:10:49 2008
+***************
+*** 156,161 ****
+--- 156,162 ----
+  #undef HAVE_READLINK
+  #undef HAVE_RENAME
+  #undef HAVE_SELECT
++ #undef HAVE_SELINUX
+  #undef HAVE_SETENV
+  #undef HAVE_SETPGID
+  #undef HAVE_SETSID
+*** ../vim-7.1.295/src/configure.in    Wed Feb 20 12:43:05 2008
+--- src/configure.in   Wed May  7 18:15:40 2008
+***************
+*** 299,304 ****
+--- 299,317 ----
+  esac
+  fi
+  
++ dnl Link with -lselinux for SELinux stuff; if not found
++ AC_MSG_CHECKING(--disable-selinux argument)
++ AC_ARG_ENABLE(selinux,
++      [  --disable-selinux      Don't check for SELinux support.],
++      , enable_selinux="yes")
++ if test "$enable_selinux" = "yes"; then
++   AC_MSG_RESULT(no)
++   AC_CHECK_LIB(selinux, is_selinux_enabled,
++        [LIBS="$LIBS -lselinux"
++         AC_DEFINE(HAVE_SELINUX)])
++ else
++    AC_MSG_RESULT(yes)
++ fi
+  
+  dnl Check user requested features.
+  
+*** ../vim-7.1.295/src/fileio.c        Tue Mar 11 22:01:16 2008
+--- src/fileio.c       Wed May  7 18:17:45 2008
+***************
+*** 3651,3656 ****
+--- 3660,3668 ----
+                                               )
+                           mch_setperm(backup,
+                                         (perm & 0707) | ((perm & 07) << 3));
++ # ifdef HAVE_SELINUX
++                      mch_copy_sec(fname, backup);
++ # endif
+  #endif
+  
+                       /*
+***************
+*** 3687,3692 ****
+--- 3699,3707 ----
+  #ifdef HAVE_ACL
+                       mch_set_acl(backup, acl);
+  #endif
++ #ifdef HAVE_SELINUX
++                      mch_copy_sec(fname, backup);
++ #endif
+                       break;
+                   }
+               }
+***************
+*** 4309,4314 ****
+--- 4324,4335 ----
+      }
+  #endif
+  
++ #ifdef HAVE_SELINUX
++     /* Probably need to set the security context. */
++     if (!backup_copy)
++      mch_copy_sec(backup, wfname);
++ #endif
++ 
+  #ifdef UNIX
+      /* When creating a new file, set its owner/group to that of the original
+       * file.  Get the new device and inode number. */
+*** ../vim-7.1.295/src/memfile.c       Fri May 11 20:15:45 2007
+--- src/memfile.c      Wed May  7 18:10:49 2008
+***************
+*** 1346,1350 ****
+--- 1346,1355 ----
+       mfp->mf_ffname = NULL;
+      }
+      else
++     {
++ #ifdef HAVE_SELINUX
++      mch_copy_sec(fname, mfp->mf_fname);
++ #endif
+       mch_hide(mfp->mf_fname);    /* try setting the 'hidden' flag */
++     }
+  }
+*** ../vim-7.1.295/src/os_unix.c       Wed Mar 12 13:16:37 2008
+--- src/os_unix.c      Wed May  7 18:24:46 2008
+***************
+*** 45,50 ****
+--- 45,55 ----
+  # include <X11/SM/SMlib.h>
+  #endif
+  
++ #ifdef HAVE_SELINUX
++ # include <selinux/selinux.h>
++ static int selinux_enabled = -1;
++ #endif
++ 
+  /*
+   * Use this prototype for select, some include files have a wrong prototype
+   */
+***************
+*** 2557,2562 ****
+--- 2562,2623 ----
+  } vim_acl_solaris_T;
+  # endif
+  
++ #if defined(HAVE_SELINUX) || defined(PROTO)
++ /*
++  * Copy security info from "from_file" to "to_file".
++  */
++     void
++ mch_copy_sec(from_file, to_file)
++     char_u   *from_file;
++     char_u   *to_file;
++ {
++     if (from_file == NULL)
++      return;
++ 
++     if (selinux_enabled == -1)
++      selinux_enabled = is_selinux_enabled();
++ 
++     if (selinux_enabled > 0)
++     {
++      security_context_t from_context = NULL;
++      security_context_t to_context = NULL;
++ 
++      if (getfilecon((char *)from_file, &from_context) < 0)
++      {
++          /* If the filesystem doesn't support extended attributes,
++             the original had no special security context and the
++             target cannot have one either.  */
++          if (errno == EOPNOTSUPP)
++              return;
++ 
++          MSG_PUTS(_("\nCould not get security context for "));
++          msg_outtrans(from_file);
++          msg_putchar('\n');
++          return;
++      }
++      if (getfilecon((char *)to_file, &to_context) < 0)
++      {
++          MSG_PUTS(_("\nCould not get security context for "));
++          msg_outtrans(to_file);
++          msg_putchar('\n');
++          freecon (from_context);
++          return ;
++      }
++      if (strcmp(from_context, to_context) != 0)
++      {
++          if (setfilecon((char *)to_file, from_context) < 0)
++          {
++              MSG_PUTS(_("\nCould not set security context for "));
++              msg_outtrans(to_file);
++              msg_putchar('\n');
++          }
++      }
++      freecon(to_context);
++      freecon(from_context);
++     }
++ }
++ #endif /* HAVE_SELINUX */
++ 
+  /*
+   * Return a pointer to the ACL of file "fname" in allocated memory.
+   * Return NULL if the ACL is not available for whatever reason.
+*** ../vim-7.1.295/src/proto/os_unix.pro       Sat May  5 20:23:37 2007
+--- src/proto/os_unix.pro      Wed May  7 18:25:14 2008
+***************
+*** 34,39 ****
+--- 34,40 ----
+  void fname_case __ARGS((char_u *name, int len));
+  long mch_getperm __ARGS((char_u *name));
+  int mch_setperm __ARGS((char_u *name, long perm));
++ void mch_copy_sec __ARGS((char_u *from_file, char_u *to_file));
+  vim_acl_T mch_get_acl __ARGS((char_u *fname));
+  void mch_set_acl __ARGS((char_u *fname, vim_acl_T aclent));
+  void mch_free_acl __ARGS((vim_acl_T aclent));
+*** ../vim-7.1.295/src/version.c       Wed May  7 17:39:17 2008
+--- src/version.c      Wed May  7 18:50:01 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     296,
+  /**/
+
+-- 
+Michael: There is no such thing as a dump question.
+Bernard: Sure there is.  For example "what is a core dump?"
+
+ /// 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.297 b/7.1.297
new file mode 100644 (file)
index 0000000..174463b
--- /dev/null
+++ b/7.1.297
@@ -0,0 +1,56 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.297
+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.297
+Problem:    When using the search/replace dialog the parenmatch highlighting
+           can be wrong. (Tim Duncan)
+Solution:   In the GUI redraw function invoke the CursorMoved autocmd.
+Files:     src/gui.c
+
+
+*** ../vim-7.1.296/src/gui.c   Wed Feb  6 17:33:19 2008
+--- src/gui.c  Wed May  7 21:36:58 2008
+***************
+*** 4855,4860 ****
+--- 4855,4869 ----
+  {
+      update_topline();
+      validate_cursor();
++ #ifdef FEAT_AUTOCMD
++     /* Trigger CursorMoved if the cursor moved. */
++     if (!finish_op && has_cursormoved()
++          && !equalpos(last_cursormoved, curwin->w_cursor))
++     {
++      apply_autocmds(EVENT_CURSORMOVED, NULL, NULL, FALSE, curbuf);
++      last_cursormoved = curwin->w_cursor;
++     }
++ #endif
+      update_screen(0);        /* may need to update the screen */
+      setcursor();
+      out_flush();             /* make sure output has been written */
+*** ../vim-7.1.296/src/version.c       Wed May  7 19:05:55 2008
+--- src/version.c      Wed May  7 21:44:28 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     297,
+  /**/
+
+-- 
+ARTHUR: Did you say shrubberies?
+ROGER:  Yes.  Shrubberies are my trade.  I am a shrubber.  My name is Roger
+        the Shrubber.  I arrange, design, and sell shrubberies.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.1.298 b/7.1.298
new file mode 100644 (file)
index 0000000..608b643
--- /dev/null
+++ b/7.1.298
@@ -0,0 +1,50 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.298
+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.298 (after 7.1.295)
+Problem:    src/gvimtutor is not distributed.
+Solution:   Add it to the list of distributed files.
+Files:     Filelist
+
+
+*** ../vim-7.1.297/Filelist    Thu May 10 20:35:01 2007
+--- Filelist   Sat May 10 21:35:50 2008
+***************
+*** 193,198 ****
+--- 193,199 ----
+               src/vim_icon.xbm \
+               src/vim_mask.xbm \
+               src/vimtutor \
++              src/gvimtutor \
+               src/which.sh \
+               src/workshop.c \
+               src/workshop.h \
+*** ../vim-7.1.297/src/version.c       Wed May  7 21:45:35 2008
+--- src/version.c      Sat May 10 21:37:01 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     298,
+  /**/
+
+-- 
+ARTHUR: Charge!
+   [They all charge with swords drawn towards the RABBIT.  A tremendous twenty
+   second fight with Peckinpahish shots and borrowing heavily also on the
+   Kung Fu and karate-type films ensues, in which some four KNIGHTS are
+   comprehensively killed.]
+ARTHUR: Run away!  Run away!
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.1.299 b/7.1.299
new file mode 100644 (file)
index 0000000..85e3003
--- /dev/null
+++ b/7.1.299
@@ -0,0 +1,280 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.299
+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.299
+Problem:    Filetype detection doesn't work properly for file names ending in
+           a part that is ignored and contain a space or other special
+           characters.
+Solution:   Escape the special characters using the new fnameescape function.
+Files:     runtime/doc/eval.txt, runtime/filetype.vim, src/eval.c,
+           src/ex_getln.c, src/proto/ex_getln.pro, src/vim.h
+
+
+*** ../vim-7.1.298/runtime/doc/eval.txt        Wed Feb 20 20:09:44 2008
+--- runtime/doc/eval.txt       Wed May 28 16:42:42 2008
+***************
+*** 1,4 ****
+! *eval.txt*      For Vim version 7.1.  Last change: 2008 Feb 20
+  
+  
+                 VIM REFERENCE MANUAL    by Bram Moolenaar
+--- 1,4 ----
+! *eval.txt*      For Vim version 7.1.  Last change: 2008 May 28
+  
+  
+                 VIM REFERENCE MANUAL    by Bram Moolenaar
+***************
+*** 1609,1614 ****
+--- 1652,1658 ----
+                               String  find directory {name} in {path}
+  findfile( {name}[, {path}[, {count}]])
+                               String  find file {name} in {path}
++ fnameescape( {fname})                String  escape special characters in {fname}
+  fnamemodify( {fname}, {mods})        String  modify file name
+  foldclosed( {lnum})          Number  first line of fold at {lnum} if closed
+  foldclosedend( {lnum})               Number  last line of fold at {lnum} if closed
+***************
+*** 2620,2625 ****
+--- 2669,2687 ----
+  <            Searches from the directory of the current file upwards until
+               it finds the file "tags.vim".
+  
++ fnameescape({string})                                        *fnameescape()*
++              Escape {string} for use as file name command argument.  All
++              characters that have a special meaning, such as '%' and '|'
++              are escaped with a backslash.
++              For most systems the characters escaped are "".  For systems
++              where a backslash appears in a filename, it depends on the
++              value of 'isfname'.
++              Example: >
++                      :let fname = 'some str%nge|name'
++                      :exe "edit " . fnameescape(fname)
++ <            results in executing: >
++                      edit some\ str\%nge\|name
++ 
+  fnamemodify({fname}, {mods})                         *fnamemodify()*
+               Modify file name {fname} according to {mods}.  {mods} is a
+               string of characters like it is used for file names on the
+*** ../vim-7.1.298/runtime/filetype.vim        Tue May 15 09:14:33 2007
+--- runtime/filetype.vim       Wed May 28 16:39:09 2008
+***************
+*** 16,35 ****
+  augroup filetypedetect
+  
+  " Ignored extensions
+  au BufNewFile,BufRead ?\+.orig,?\+.bak,?\+.old,?\+.new,?\+.rpmsave,?\+.rpmnew
+!      \ exe "doau filetypedetect BufRead " . expand("<afile>:r")
+  au BufNewFile,BufRead *~
+       \ let s:name = expand("<afile>") |
+       \ let s:short = substitute(s:name, '\~$', '', '') |
+       \ if s:name != s:short && s:short != "" |
+!      \   exe "doau filetypedetect BufRead " . s:short |
+       \ endif |
+!      \ unlet s:name |
+!      \ unlet s:short
+  au BufNewFile,BufRead ?\+.in
+       \ if expand("<afile>:t") != "configure.in" |
+!      \   exe "doau filetypedetect BufRead " . expand("<afile>:r") |
+       \ endif
+  
+  " Pattern used to match file names which should not be inspected.
+  " Currently finds compressed files.
+--- 16,38 ----
+  augroup filetypedetect
+  
+  " Ignored extensions
++ if exists("*fnameescape")
+  au BufNewFile,BufRead ?\+.orig,?\+.bak,?\+.old,?\+.new,?\+.rpmsave,?\+.rpmnew
+!      \ exe "doau filetypedetect BufRead " . fnameescape(expand("<afile>:r"))
+  au BufNewFile,BufRead *~
+       \ let s:name = expand("<afile>") |
+       \ let s:short = substitute(s:name, '\~$', '', '') |
+       \ if s:name != s:short && s:short != "" |
+!      \   exe "doau filetypedetect BufRead " . fnameescape(s:short) |
+       \ endif |
+!      \ unlet s:name s:short
+  au BufNewFile,BufRead ?\+.in
+       \ if expand("<afile>:t") != "configure.in" |
+!      \   exe "doau filetypedetect BufRead " . fnameescape(expand("<afile>:r")) |
+       \ endif
++ elseif &verbose > 0
++   echomsg "Warning: some filetypes will not be recognized because this version of Vim does not have fnameescape()"
++ endif
+  
+  " Pattern used to match file names which should not be inspected.
+  " Currently finds compressed files.
+*** ../vim-7.1.298/src/eval.c  Tue Apr  1 13:10:45 2008
+--- src/eval.c Wed May 28 16:35:51 2008
+***************
+*** 507,512 ****
+--- 516,522 ----
+  static void f_filter __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_finddir __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_findfile __ARGS((typval_T *argvars, typval_T *rettv));
++ static void f_fnameescape __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_fnamemodify __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_foldclosed __ARGS((typval_T *argvars, typval_T *rettv));
+  static void f_foldclosedend __ARGS((typval_T *argvars, typval_T *rettv));
+***************
+*** 7107,7112 ****
+--- 7437,7443 ----
+      {"filter",               2, 2, f_filter},
+      {"finddir",              1, 3, f_finddir},
+      {"findfile",     1, 3, f_findfile},
++     {"fnameescape",  1, 1, f_fnameescape},
+      {"fnamemodify",  2, 2, f_fnamemodify},
+      {"foldclosed",   1, 1, f_foldclosed},
+      {"foldclosedend",        1, 1, f_foldclosedend},
+***************
+*** 9465,9470 ****
+--- 9804,9822 ----
+  }
+  
+  /*
++  * "fnameescape({string})" function
++  */
++     static void
++ f_fnameescape(argvars, rettv)
++     typval_T *argvars;
++     typval_T *rettv;
++ {
++     rettv->vval.v_string = vim_strsave_fnameescape(
++                                         get_tv_string(&argvars[0]), FALSE);
++     rettv->v_type = VAR_STRING;
++ }
++ 
++ /*
+   * "fnamemodify({fname}, {mods})" function
+   */
+      static void
+*** ../vim-7.1.298/src/ex_getln.c      Tue Jan 22 12:44:03 2008
+--- src/ex_getln.c     Mon May 26 22:14:51 2008
+***************
+*** 3656,3677 ****
+  #endif
+                   }
+               }
+! #ifdef BACKSLASH_IN_FILENAME
+!              {
+!                  char_u      buf[20];
+!                  int         j = 0;
+! 
+!                  /* Don't escape '[' and '{' if they are in 'isfname'. */
+!                  for (p = PATH_ESC_CHARS; *p != NUL; ++p)
+!                      if ((*p != '[' && *p != '{') || !vim_isfilec(*p))
+!                          buf[j++] = *p;
+!                  buf[j] = NUL;
+!                  p = vim_strsave_escaped(files[i], buf);
+!              }
+! #else
+!              p = vim_strsave_escaped(files[i],
+!                           xp->xp_shell ? SHELL_ESC_CHARS : PATH_ESC_CHARS);
+! #endif
+               if (p != NULL)
+               {
+                   vim_free(files[i]);
+--- 3656,3662 ----
+  #endif
+                   }
+               }
+!              p = vim_strsave_fnameescape(files[i], xp->xp_shell);
+               if (p != NULL)
+               {
+                   vim_free(files[i]);
+***************
+*** 3710,3715 ****
+--- 3695,3725 ----
+  }
+  
+  /*
++  * Escape special characters in "fname" for when used as a file name argument
++  * after a Vim command, or, when "shell" is non-zero, a shell command.
++  * Returns the result in allocated memory.
++  */
++     char_u *
++ vim_strsave_fnameescape(fname, shell)
++     char_u *fname;
++     int    shell;
++ {
++ #ifdef BACKSLASH_IN_FILENAME
++     char_u   buf[20];
++     int              j = 0;
++ 
++     /* Don't escape '[' and '{' if they are in 'isfname'. */
++     for (p = PATH_ESC_CHARS; *p != NUL; ++p)
++      if ((*p != '[' && *p != '{') || !vim_isfilec(*p))
++          buf[j++] = *p;
++     buf[j] = NUL;
++     return vim_strsave_escaped(fname, buf);
++ #else
++     return vim_strsave_escaped(fname, shell ? SHELL_ESC_CHARS : PATH_ESC_CHARS);
++ #endif
++ }
++ 
++ /*
+   * Put a backslash before the file name in "pp", which is in allocated memory.
+   */
+      static void
+*** ../vim-7.1.298/src/proto/ex_getln.pro      Sat May  5 19:24:48 2007
+--- src/proto/ex_getln.pro     Mon May 26 22:14:41 2008
+***************
+*** 24,29 ****
+--- 24,30 ----
+  void ExpandInit __ARGS((expand_T *xp));
+  void ExpandCleanup __ARGS((expand_T *xp));
+  void ExpandEscape __ARGS((expand_T *xp, char_u *str, int numfiles, char_u **files, int options));
++ char_u *vim_strsave_fnameescape __ARGS((char_u *fname, int shell));
+  void tilde_replace __ARGS((char_u *orig_pat, int num_files, char_u **files));
+  char_u *sm_gettail __ARGS((char_u *s));
+  char_u *addstar __ARGS((char_u *fname, int len, int context));
+*** ../vim-7.1.298/src/vim.h   Sun Mar 16 16:02:47 2008
+--- src/vim.h  Wed May 28 16:37:50 2008
+***************
+*** 336,345 ****
+  # endif
+  #endif
+  #ifdef BACKSLASH_IN_FILENAME
+! # define PATH_ESC_CHARS ((char_u *)" \t*?[{`%#")
+  #else
+! # define PATH_ESC_CHARS ((char_u *)" \t*?[{`$\\%#'\"|")
+! # define SHELL_ESC_CHARS ((char_u *)" \t*?[{`$\\%#'\"|<>();&!")
+  #endif
+  
+  #define NUMBUFLEN 30     /* length of a buffer to store a number in ASCII */
+--- 336,345 ----
+  # endif
+  #endif
+  #ifdef BACKSLASH_IN_FILENAME
+! # define PATH_ESC_CHARS ((char_u *)" \t\n*?[{`%#'\"|!<")
+  #else
+! # define PATH_ESC_CHARS ((char_u *)" \t\n*?[{`$\\%#'\"|!<")
+! # define SHELL_ESC_CHARS ((char_u *)" \t\n*?[{`$\\%#'\"|!<>();&")
+  #endif
+  
+  #define NUMBUFLEN 30     /* length of a buffer to store a number in ASCII */
+*** ../vim-7.1.298/src/version.c       Sat May 10 21:37:56 2008
+--- src/version.c      Wed May 28 16:40:11 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     299,
+  /**/
+
+-- 
+FIRST SOLDIER:  So they wouldn't be able to bring a coconut back anyway.
+SECOND SOLDIER: Wait a minute! Suppose two swallows carried it together?
+FIRST SOLDIER:  No, they'd have to have it on a line.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.1.300 b/7.1.300
new file mode 100644 (file)
index 0000000..630649d
--- /dev/null
+++ b/7.1.300
@@ -0,0 +1,52 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.300
+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.300
+Problem:    Value of asmsyntax argument isn't checked for valid characters.
+Solution:   Only accepts letters and digits.
+Files:     runtime/filetype.vim
+
+
+*** ../vim-7.1.299/runtime/filetype.vim        Wed May 28 16:48:00 2008
+--- runtime/filetype.vim       Wed May 28 17:11:37 2008
+***************
+*** 190,196 ****
+    let head = " ".getline(1)." ".getline(2)." ".getline(3)." ".getline(4).
+       \" ".getline(5)." "
+    if head =~ '\sasmsyntax=\S\+\s'
+!     let b:asmsyntax = substitute(head, '.*\sasmsyntax=\(\S\+\)\s.*','\1', "")
+    elseif ((head =~? '\.title') || (head =~? '\.ident') || (head =~? '\.macro') || (head =~? '\.subtitle') || (head =~? '\.library'))
+      let b:asmsyntax = "vmasm"
+    endif
+--- 190,196 ----
+    let head = " ".getline(1)." ".getline(2)." ".getline(3)." ".getline(4).
+       \" ".getline(5)." "
+    if head =~ '\sasmsyntax=\S\+\s'
+!     let b:asmsyntax = substitute(head, '.*\sasmsyntax=\([a-zA-Z0-9]\+\)\s.*','\1', "")
+    elseif ((head =~? '\.title') || (head =~? '\.ident') || (head =~? '\.macro') || (head =~? '\.subtitle') || (head =~? '\.library'))
+      let b:asmsyntax = "vmasm"
+    endif
+*** ../vim-7.1.299/src/version.c       Wed May 28 16:48:01 2008
+--- src/version.c      Wed May 28 17:28:05 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     300,
+  /**/
+
+-- 
+If you don't get everything you want, think of
+everything you didn't get and don't want.
+
+ /// 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.301 b/7.1.301
new file mode 100644 (file)
index 0000000..9cae8da
--- /dev/null
+++ b/7.1.301
@@ -0,0 +1,54 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.301
+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.301
+Problem:    When the "File/Save" menu is used in Insert mode, a tab page label
+           is not updated to remove the "+".
+Solution:   Call draw_tabline() from showruler(). (Bjorn Winckler)
+Files:     src/screen.c
+
+
+*** ../vim-7.1.300/src/screen.c        Sun Mar  9 14:30:12 2008
+--- src/screen.c       Sat Apr  5 19:26:24 2008
+***************
+*** 9357,9362 ****
+--- 9357,9367 ----
+         )
+       maketitle();
+  #endif
++ #ifdef FEAT_WINDOWS
++     /* Redraw the tab pages line if needed. */
++     if (redraw_tabline)
++      draw_tabline();
++ #endif
+  }
+  
+  #ifdef FEAT_CMDL_INFO
+*** ../vim-7.1.300/src/version.c       Wed May 28 17:31:37 2008
+--- src/version.c      Wed May 28 19:01:16 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     301,
+  /**/
+
+-- 
+CART DRIVER: Bring out your dead!
+   There are legs stick out of windows and doors.  Two MEN are fighting in the
+   mud - covered from head to foot in it.  Another MAN is on his hands in
+   knees shovelling mud into his mouth.  We just catch sight of a MAN falling
+   into a well.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.1.302 b/7.1.302
new file mode 100644 (file)
index 0000000..f15abbf
--- /dev/null
+++ b/7.1.302
@@ -0,0 +1,52 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.302
+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.302 (after 7.1.299)
+Problem:    Compilation error on MS-Windows.
+Solution:   Don't use xp_shell when it's not defined.
+Files:     src/ex_getln.c
+
+
+*** ../vim-7.1.301/src/ex_getln.c      Wed May 28 22:01:46 2008
+--- src/ex_getln.c     Wed May 28 22:01:48 2008
+***************
+*** 3656,3662 ****
+--- 3656,3666 ----
+  #endif
+                   }
+               }
++ #ifdef BACKSLASH_IN_FILENAME
++              p = vim_strsave_fnameescape(files[i], FALSE);
++ #else
+               p = vim_strsave_fnameescape(files[i], xp->xp_shell);
++ #endif
+               if (p != NULL)
+               {
+                   vim_free(files[i]);
+*** ../vim-7.1.301/src/version.c       Wed May 28 19:01:53 2008
+--- src/version.c      Wed May 28 22:01:07 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     302,
+  /**/
+
+-- 
+BODY:        I'm not dead!
+CART DRIVER: 'Ere.  He says he's not dead.
+LARGE MAN:   Yes he is.
+BODY:        I'm not!
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.1.303 b/7.1.303
new file mode 100644 (file)
index 0000000..86e1cb4
--- /dev/null
+++ b/7.1.303
@@ -0,0 +1,47 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.303
+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.303 (after 7.1.302)
+Problem:    Compilation error on MS-Windows, again.
+Solution:   Declare p.
+Files:     src/ex_getln.c
+
+
+*** ../vim-7.1.302/src/ex_getln.c      Wed May 28 22:02:07 2008
+--- src/ex_getln.c     Thu May 29 15:31:45 2008
+***************
+*** 3711,3716 ****
+--- 3711,3717 ----
+  #ifdef BACKSLASH_IN_FILENAME
+      char_u   buf[20];
+      int              j = 0;
++     char_u   *p;
+  
+      /* Don't escape '[' and '{' if they are in 'isfname'. */
+      for (p = PATH_ESC_CHARS; *p != NUL; ++p)
+*** ../vim-7.1.302/src/version.c       Wed May 28 22:02:07 2008
+--- src/version.c      Thu May 29 15:31:51 2008
+***************
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     303,
+  /**/
+
+-- 
+If all you have is a hammer, everything looks like a nail.
+When your hammer is C++, everything begins to look like a thumb.
+                       -- Steve Hoflich, comp.lang.c++
+
+ /// 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.090578 seconds and 4 git commands to generate.