[vim] - patchlevel 1025

Karsten Hopp karsten at fedoraproject.org
Tue Jun 4 10:09:05 UTC 2013


commit b4e5145598341ced0fedbde3d9ca13db26e5c8eb
Author: Karsten Hopp <karsten at redhat.com>
Date:   Tue Jun 4 12:06:05 2013 +0200

    - patchlevel 1025

 7.3.1025 |  218 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 218 insertions(+), 0 deletions(-)
---
diff --git a/7.3.1025 b/7.3.1025
new file mode 100644
index 0000000..04af5e4
--- /dev/null
+++ b/7.3.1025
@@ -0,0 +1,218 @@
+To: vim_dev at googlegroups.com
+Subject: Patch 7.3.1025
+Fcc: outbox
+From: Bram Moolenaar <Bram at moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.1025
+Problem:    New regexp: not matching newline in string. (Marc Weber)
+Solution:   Check for "\n" character.
+Files:	    src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
+
+
+*** ../vim-7.3.1024/src/regexp_nfa.c	2013-05-26 16:57:23.000000000 +0200
+--- src/regexp_nfa.c	2013-05-26 17:38:27.000000000 +0200
+***************
+*** 165,173 ****
+  static int *post_end;
+  static int *post_ptr;
+  
+! static int nstate;	/* Number of states in the NFA. */
+  static int istate;	/* Index in the state vector, used in new_state() */
+- static int nstate_max;	/* Upper bound of estimated number of states. */
+  
+  
+  static int nfa_regcomp_start __ARGS((char_u*expr, int re_flags));
+--- 165,173 ----
+  static int *post_end;
+  static int *post_ptr;
+  
+! static int nstate;	/* Number of states in the NFA. Also used when
+! 			 * executing. */
+  static int istate;	/* Index in the state vector, used in new_state() */
+  
+  
+  static int nfa_regcomp_start __ARGS((char_u*expr, int re_flags));
+***************
+*** 219,228 ****
+      int		re_flags;	    /* see vim_regcomp() */
+  {
+      size_t	postfix_size;
+  
+      nstate = 0;
+      istate = 0;
+!     /* A reasonable estimation for size */
+      nstate_max = (int)(STRLEN(expr) + 1) * NFA_POSTFIX_MULTIPLIER;
+  
+      /* Some items blow up in size, such as [A-z].  Add more space for that.
+--- 219,229 ----
+      int		re_flags;	    /* see vim_regcomp() */
+  {
+      size_t	postfix_size;
++     int		nstate_max;
+  
+      nstate = 0;
+      istate = 0;
+!     /* A reasonable estimation for maximum size */
+      nstate_max = (int)(STRLEN(expr) + 1) * NFA_POSTFIX_MULTIPLIER;
+  
+      /* Some items blow up in size, such as [A-z].  Add more space for that.
+***************
+*** 1968,1977 ****
+   * Frag_T.out is a list of places that need to be set to the
+   * next state for this fragment.
+   */
+  typedef union Ptrlist Ptrlist;
+  struct Frag
+  {
+!     nfa_state_T   *start;
+      Ptrlist	*out;
+  };
+  typedef struct Frag Frag_T;
+--- 1969,1988 ----
+   * Frag_T.out is a list of places that need to be set to the
+   * next state for this fragment.
+   */
++ 
++ /* Since the out pointers in the list are always
++  * uninitialized, we use the pointers themselves
++  * as storage for the Ptrlists. */
+  typedef union Ptrlist Ptrlist;
++ union Ptrlist
++ {
++     Ptrlist	*next;
++     nfa_state_T	*s;
++ };
++ 
+  struct Frag
+  {
+!     nfa_state_T *start;
+      Ptrlist	*out;
+  };
+  typedef struct Frag Frag_T;
+***************
+*** 1999,2015 ****
+  }
+  
+  /*
+-  * Since the out pointers in the list are always
+-  * uninitialized, we use the pointers themselves
+-  * as storage for the Ptrlists.
+-  */
+- union Ptrlist
+- {
+-     Ptrlist	*next;
+-     nfa_state_T	*s;
+- };
+- 
+- /*
+   * Create singleton list containing just outp.
+   */
+      static Ptrlist *
+--- 2010,2015 ----
+***************
+*** 3358,3365 ****
+  #endif
+  
+  	    case NFA_NEWL:
+! 		if (!reg_line_lbr && REG_MULTI
+! 				     && curc == NUL && reglnum <= reg_maxline)
+  		{
+  		    go_to_nextline = TRUE;
+  		    /* Pass -1 for the offset, which means taking the position
+--- 3358,3365 ----
+  #endif
+  
+  	    case NFA_NEWL:
+! 		if (curc == NUL && !reg_line_lbr && REG_MULTI
+! 						    && reglnum <= reg_maxline)
+  		{
+  		    go_to_nextline = TRUE;
+  		    /* Pass -1 for the offset, which means taking the position
+***************
+*** 3367,3372 ****
+--- 3367,3378 ----
+  		    addstate(nextlist, t->state->out, &t->sub, -1,
+  							  listid + 1, &match);
+  		}
++ 		else if (curc == '\n' && reg_line_lbr)
++ 		{
++ 		    /* match \n as if it is an ordinary character */
++ 		    addstate(nextlist, t->state->out, &t->sub, 1,
++ 							  listid + 1, &match);
++ 		}
+  		break;
+  
+  	    case NFA_CLASS_ALNUM:
+***************
+*** 3832,3838 ****
+--- 3838,3849 ----
+       * (and count its size). */
+      postfix = re2post();
+      if (postfix == NULL)
++     {
++ 	/* TODO: only give this error for debugging? */
++ 	if (post_ptr >= post_end)
++ 	    EMSGN("Internal error: estimated max number of states insufficient: %ld", post_end - post_start);
+  	goto fail;	    /* Cascaded (syntax?) error */
++     }
+  
+      /*
+       * In order to build the NFA, we parse the input regexp twice:
+*** ../vim-7.3.1024/src/testdir/test64.in	2013-05-26 16:57:23.000000000 +0200
+--- src/testdir/test64.in	2013-05-26 17:37:51.000000000 +0200
+***************
+*** 250,255 ****
+--- 250,258 ----
+  :call add(tl, [2, 'abc[0-9]*ddd', 'adf abc44482ddd oijs', 'abc44482ddd'])
+  :call add(tl, [2, '\_[0-9]\+', 'asfi9888u', '9888'])
+  :call add(tl, [2, '[0-9\n]\+', 'asfi9888u', '9888'])
++ :call add(tl, [2, '\_[0-9]\+', "asfi\n9888u", "\n9888"])
++ :call add(tl, [2, '\_f', "  \na ", "\n"])
++ :call add(tl, [2, '\_f\+', "  \na ", "\na"])
+  :"
+  :"
+  :"""" Test recognition of some character classes
+*** ../vim-7.3.1024/src/testdir/test64.ok	2013-05-26 16:57:23.000000000 +0200
+--- src/testdir/test64.ok	2013-05-26 17:38:51.000000000 +0200
+***************
+*** 576,581 ****
+--- 576,590 ----
+  OK 0 - [0-9\n]\+
+  OK 1 - [0-9\n]\+
+  OK 2 - [0-9\n]\+
++ OK 0 - \_[0-9]\+
++ OK 1 - \_[0-9]\+
++ OK 2 - \_[0-9]\+
++ OK 0 - \_f
++ OK 1 - \_f
++ OK 2 - \_f
++ OK 0 - \_f\+
++ OK 1 - \_f\+
++ OK 2 - \_f\+
+  OK 0 - [0-9]
+  OK 1 - [0-9]
+  OK 2 - [0-9]
+*** ../vim-7.3.1024/src/version.c	2013-05-26 16:57:23.000000000 +0200
+--- src/version.c	2013-05-26 17:44:16.000000000 +0200
+***************
+*** 730,731 ****
+--- 730,733 ----
+  {   /* Add new patch number below this line */
++ /**/
++     1025,
+  /**/
+
+-- 
+Every engineer dreams about saving the universe and having sex with aliens.
+This is much more glamorous than the real life of an engineer, which consists
+of hiding from the universe and having sex without the participation of other
+life forms.                     (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///


More information about the scm-commits mailing list