[vim] - patchlevel 1036

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


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

    - patchlevel 1036

 7.3.1036 |  515 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 515 insertions(+), 0 deletions(-)
---
diff --git a/7.3.1036 b/7.3.1036
new file mode 100644
index 0000000..bad7d11
--- /dev/null
+++ b/7.3.1036
@@ -0,0 +1,515 @@
+To: vim_dev at googlegroups.com
+Subject: Patch 7.3.1036
+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.1036
+Problem:    Can't build on HP-UX.
+Solution:   Give the union a name. (John Marriott)
+Files:	    src/regexp_nfa.c
+
+
+*** ../vim-7.3.1035/src/regexp_nfa.c	2013-05-28 22:30:22.000000000 +0200
+--- src/regexp_nfa.c	2013-05-28 22:35:55.000000000 +0200
+***************
+*** 2493,2512 ****
+  {
+      int	    in_use; /* number of subexpr with useful info */
+  
+!     /* When REG_MULTI is TRUE multilist is used, otherwise linelist. */
+      union
+      {
+  	struct multipos
+  	{
+  	    lpos_T	start;
+  	    lpos_T	end;
+! 	} multilist[NSUBEXP];
+  	struct linepos
+  	{
+  	    char_u	*start;
+  	    char_u	*end;
+! 	} linelist[NSUBEXP];
+!     };
+  } regsub_T;
+  
+  /* nfa_thread_T contains execution information of a NFA state */
+--- 2493,2512 ----
+  {
+      int	    in_use; /* number of subexpr with useful info */
+  
+!     /* When REG_MULTI is TRUE list.multi is used, otherwise list.line. */
+      union
+      {
+  	struct multipos
+  	{
+  	    lpos_T	start;
+  	    lpos_T	end;
+! 	} multi[NSUBEXP];
+  	struct linepos
+  	{
+  	    char_u	*start;
+  	    char_u	*end;
+! 	} line[NSUBEXP];
+!     } list;
+  } regsub_T;
+  
+  /* nfa_thread_T contains execution information of a NFA state */
+***************
+*** 2536,2550 ****
+  	if (REG_MULTI)
+  	    fprintf(log_fd, "\n *** group %d, start: c=%d, l=%d, end: c=%d, l=%d",
+  		    j,
+! 		    sub->multilist[j].start.col,
+! 		    (int)sub->multilist[j].start.lnum,
+! 		    sub->multilist[j].end.col,
+! 		    (int)sub->multilist[j].end.lnum);
+  	else
+  	    fprintf(log_fd, "\n *** group %d, start: \"%s\", end: \"%s\"",
+  		    j,
+! 		    (char *)sub->linelist[j].start,
+! 		    (char *)sub->linelist[j].end);
+      fprintf(log_fd, "\n");
+  }
+  #endif
+--- 2536,2550 ----
+  	if (REG_MULTI)
+  	    fprintf(log_fd, "\n *** group %d, start: c=%d, l=%d, end: c=%d, l=%d",
+  		    j,
+! 		    sub->list.multi[j].start.col,
+! 		    (int)sub->list.multi[j].start.lnum,
+! 		    sub->list.multi[j].end.col,
+! 		    (int)sub->list.multi[j].end.lnum);
+  	else
+  	    fprintf(log_fd, "\n *** group %d, start: \"%s\", end: \"%s\"",
+  		    j,
+! 		    (char *)sub->list.line[j].start,
+! 		    (char *)sub->list.line[j].end);
+      fprintf(log_fd, "\n");
+  }
+  #endif
+***************
+*** 2626,2637 ****
+  	    {
+  		/* Copy the match start and end positions. */
+  		if (REG_MULTI)
+! 		    mch_memmove(&lastthread->sub.multilist[0],
+! 				&sub->multilist[0],
+  				sizeof(struct multipos) * sub->in_use);
+  		else
+! 		    mch_memmove(&lastthread->sub.linelist[0],
+! 				&sub->linelist[0],
+  				sizeof(struct linepos) * sub->in_use);
+  	    }
+      }
+--- 2626,2637 ----
+  	    {
+  		/* Copy the match start and end positions. */
+  		if (REG_MULTI)
+! 		    mch_memmove(&lastthread->sub.list.multi[0],
+! 				&sub->list.multi[0],
+  				sizeof(struct multipos) * sub->in_use);
+  		else
+! 		    mch_memmove(&lastthread->sub.list.line[0],
+! 				&sub->list.line[0],
+  				sizeof(struct linepos) * sub->in_use);
+  	    }
+      }
+***************
+*** 2705,2711 ****
+  	    {
+  		if (subidx < sub->in_use)
+  		{
+! 		    save_lpos = sub->multilist[subidx].start;
+  		    save_in_use = -1;
+  		}
+  		else
+--- 2705,2711 ----
+  	    {
+  		if (subidx < sub->in_use)
+  		{
+! 		    save_lpos = sub->list.multi[subidx].start;
+  		    save_in_use = -1;
+  		}
+  		else
+***************
+*** 2713,2732 ****
+  		    save_in_use = sub->in_use;
+  		    for (i = sub->in_use; i < subidx; ++i)
+  		    {
+! 			sub->multilist[i].start.lnum = -1;
+! 			sub->multilist[i].end.lnum = -1;
+  		    }
+  		    sub->in_use = subidx + 1;
+  		}
+  		if (off == -1)
+  		{
+! 		    sub->multilist[subidx].start.lnum = reglnum + 1;
+! 		    sub->multilist[subidx].start.col = 0;
+  		}
+  		else
+  		{
+! 		    sub->multilist[subidx].start.lnum = reglnum;
+! 		    sub->multilist[subidx].start.col =
+  					  (colnr_T)(reginput - regline + off);
+  		}
+  	    }
+--- 2713,2732 ----
+  		    save_in_use = sub->in_use;
+  		    for (i = sub->in_use; i < subidx; ++i)
+  		    {
+! 			sub->list.multi[i].start.lnum = -1;
+! 			sub->list.multi[i].end.lnum = -1;
+  		    }
+  		    sub->in_use = subidx + 1;
+  		}
+  		if (off == -1)
+  		{
+! 		    sub->list.multi[subidx].start.lnum = reglnum + 1;
+! 		    sub->list.multi[subidx].start.col = 0;
+  		}
+  		else
+  		{
+! 		    sub->list.multi[subidx].start.lnum = reglnum;
+! 		    sub->list.multi[subidx].start.col =
+  					  (colnr_T)(reginput - regline + off);
+  		}
+  	    }
+***************
+*** 2734,2740 ****
+  	    {
+  		if (subidx < sub->in_use)
+  		{
+! 		    save_ptr = sub->linelist[subidx].start;
+  		    save_in_use = -1;
+  		}
+  		else
+--- 2734,2740 ----
+  	    {
+  		if (subidx < sub->in_use)
+  		{
+! 		    save_ptr = sub->list.line[subidx].start;
+  		    save_in_use = -1;
+  		}
+  		else
+***************
+*** 2742,2753 ****
+  		    save_in_use = sub->in_use;
+  		    for (i = sub->in_use; i < subidx; ++i)
+  		    {
+! 			sub->linelist[i].start = NULL;
+! 			sub->linelist[i].end = NULL;
+  		    }
+  		    sub->in_use = subidx + 1;
+  		}
+! 		sub->linelist[subidx].start = reginput + off;
+  	    }
+  
+  	    addstate(l, state->out, sub, off);
+--- 2742,2753 ----
+  		    save_in_use = sub->in_use;
+  		    for (i = sub->in_use; i < subidx; ++i)
+  		    {
+! 			sub->list.line[i].start = NULL;
+! 			sub->list.line[i].end = NULL;
+  		    }
+  		    sub->in_use = subidx + 1;
+  		}
+! 		sub->list.line[subidx].start = reginput + off;
+  	    }
+  
+  	    addstate(l, state->out, sub, off);
+***************
+*** 2755,2763 ****
+  	    if (save_in_use == -1)
+  	    {
+  		if (REG_MULTI)
+! 		    sub->multilist[subidx].start = save_lpos;
+  		else
+! 		    sub->linelist[subidx].start = save_ptr;
+  	    }
+  	    else
+  		sub->in_use = save_in_use;
+--- 2755,2763 ----
+  	    if (save_in_use == -1)
+  	    {
+  		if (REG_MULTI)
+! 		    sub->list.multi[subidx].start = save_lpos;
+  		else
+! 		    sub->list.line[subidx].start = save_ptr;
+  	    }
+  	    else
+  		sub->in_use = save_in_use;
+***************
+*** 2793,2823 ****
+  		sub->in_use = subidx + 1;
+  	    if (REG_MULTI)
+  	    {
+! 		save_lpos = sub->multilist[subidx].end;
+  		if (off == -1)
+  		{
+! 		    sub->multilist[subidx].end.lnum = reglnum + 1;
+! 		    sub->multilist[subidx].end.col = 0;
+  		}
+  		else
+  		{
+! 		    sub->multilist[subidx].end.lnum = reglnum;
+! 		    sub->multilist[subidx].end.col =
+  					  (colnr_T)(reginput - regline + off);
+  		}
+  	    }
+  	    else
+  	    {
+! 		save_ptr = sub->linelist[subidx].end;
+! 		sub->linelist[subidx].end = reginput + off;
+  	    }
+  
+  	    addstate(l, state->out, sub, off);
+  
+  	    if (REG_MULTI)
+! 		sub->multilist[subidx].end = save_lpos;
+  	    else
+! 		sub->linelist[subidx].end = save_ptr;
+  	    sub->in_use = save_in_use;
+  	    break;
+      }
+--- 2793,2823 ----
+  		sub->in_use = subidx + 1;
+  	    if (REG_MULTI)
+  	    {
+! 		save_lpos = sub->list.multi[subidx].end;
+  		if (off == -1)
+  		{
+! 		    sub->list.multi[subidx].end.lnum = reglnum + 1;
+! 		    sub->list.multi[subidx].end.col = 0;
+  		}
+  		else
+  		{
+! 		    sub->list.multi[subidx].end.lnum = reglnum;
+! 		    sub->list.multi[subidx].end.col =
+  					  (colnr_T)(reginput - regline + off);
+  		}
+  	    }
+  	    else
+  	    {
+! 		save_ptr = sub->list.line[subidx].end;
+! 		sub->list.line[subidx].end = reginput + off;
+  	    }
+  
+  	    addstate(l, state->out, sub, off);
+  
+  	    if (REG_MULTI)
+! 		sub->list.multi[subidx].end = save_lpos;
+  	    else
+! 		sub->list.line[subidx].end = save_ptr;
+  	    sub->in_use = save_in_use;
+  	    break;
+      }
+***************
+*** 2975,2987 ****
+  
+      if (REG_MULTI)
+      {
+! 	if (sub->multilist[subidx].start.lnum < 0
+! 				       || sub->multilist[subidx].end.lnum < 0)
+  	    goto retempty;
+  	/* TODO: line breaks */
+! 	len = sub->multilist[subidx].end.col
+! 					 - sub->multilist[subidx].start.col;
+! 	if (cstrncmp(regline + sub->multilist[subidx].start.col,
+  							reginput, &len) == 0)
+  	{
+  	    *bytelen = len;
+--- 2975,2987 ----
+  
+      if (REG_MULTI)
+      {
+! 	if (sub->list.multi[subidx].start.lnum < 0
+! 				       || sub->list.multi[subidx].end.lnum < 0)
+  	    goto retempty;
+  	/* TODO: line breaks */
+! 	len = sub->list.multi[subidx].end.col
+! 					 - sub->list.multi[subidx].start.col;
+! 	if (cstrncmp(regline + sub->list.multi[subidx].start.col,
+  							reginput, &len) == 0)
+  	{
+  	    *bytelen = len;
+***************
+*** 2990,3000 ****
+      }
+      else
+      {
+! 	if (sub->linelist[subidx].start == NULL
+! 					 || sub->linelist[subidx].end == NULL)
+  	    goto retempty;
+! 	len = (int)(sub->linelist[subidx].end - sub->linelist[subidx].start);
+! 	if (cstrncmp(sub->linelist[subidx].start, reginput, &len) == 0)
+  	{
+  	    *bytelen = len;
+  	    return TRUE;
+--- 2990,3000 ----
+      }
+      else
+      {
+! 	if (sub->list.line[subidx].start == NULL
+! 					|| sub->list.line[subidx].end == NULL)
+  	    goto retempty;
+! 	len = (int)(sub->list.line[subidx].end - sub->list.line[subidx].start);
+! 	if (cstrncmp(sub->list.line[subidx].start, reginput, &len) == 0)
+  	{
+  	    *bytelen = len;
+  	    return TRUE;
+***************
+*** 3260,3274 ****
+  		if (REG_MULTI)
+  		    for (j = 0; j < submatch->in_use; j++)
+  		    {
+! 			submatch->multilist[j].start =
+! 						    t->sub.multilist[j].start;
+! 			submatch->multilist[j].end = t->sub.multilist[j].end;
+  		    }
+  		else
+  		    for (j = 0; j < submatch->in_use; j++)
+  		    {
+! 			submatch->linelist[j].start = t->sub.linelist[j].start;
+! 			submatch->linelist[j].end = t->sub.linelist[j].end;
+  		    }
+  #ifdef ENABLE_LOG
+  		log_subexpr(&t->sub);
+--- 3260,3275 ----
+  		if (REG_MULTI)
+  		    for (j = 0; j < submatch->in_use; j++)
+  		    {
+! 			submatch->list.multi[j].start =
+! 						   t->sub.list.multi[j].start;
+! 			submatch->list.multi[j].end = t->sub.list.multi[j].end;
+  		    }
+  		else
+  		    for (j = 0; j < submatch->in_use; j++)
+  		    {
+! 			submatch->list.line[j].start =
+! 						    t->sub.list.line[j].start;
+! 			submatch->list.line[j].end = t->sub.list.line[j].end;
+  		    }
+  #ifdef ENABLE_LOG
+  		log_subexpr(&t->sub);
+***************
+*** 3355,3368 ****
+  		    if (REG_MULTI)
+  			for (j = 1; j < m->in_use; j++)
+  			{
+! 			    t->sub.multilist[j].start = m->multilist[j].start;
+! 			    t->sub.multilist[j].end = m->multilist[j].end;
+  			}
+  		    else
+  			for (j = 1; j < m->in_use; j++)
+  			{
+! 			    t->sub.linelist[j].start = m->linelist[j].start;
+! 			    t->sub.linelist[j].end = m->linelist[j].end;
+  			}
+  		    t->sub.in_use = m->in_use;
+  
+--- 3356,3369 ----
+  		    if (REG_MULTI)
+  			for (j = 1; j < m->in_use; j++)
+  			{
+! 			    t->sub.list.multi[j].start = m->list.multi[j].start;
+! 			    t->sub.list.multi[j].end = m->list.multi[j].end;
+  			}
+  		    else
+  			for (j = 1; j < m->in_use; j++)
+  			{
+! 			    t->sub.list.line[j].start = m->list.line[j].start;
+! 			    t->sub.list.line[j].end = m->list.line[j].end;
+  			}
+  		    t->sub.in_use = m->in_use;
+  
+***************
+*** 3907,3919 ****
+      if (REG_MULTI)
+      {
+  	/* Use 0xff to set lnum to -1 */
+! 	vim_memset(sub.multilist, 0xff, sizeof(struct multipos) * nfa_nsubexpr);
+! 	vim_memset(m.multilist, 0xff, sizeof(struct multipos) * nfa_nsubexpr);
+      }
+      else
+      {
+! 	vim_memset(sub.linelist, 0, sizeof(struct linepos) * nfa_nsubexpr);
+! 	vim_memset(m.linelist, 0, sizeof(struct linepos) * nfa_nsubexpr);
+      }
+      sub.in_use = 0;
+      m.in_use = 0;
+--- 3908,3920 ----
+      if (REG_MULTI)
+      {
+  	/* Use 0xff to set lnum to -1 */
+! 	vim_memset(sub.list.multi, 0xff, sizeof(struct multipos) * nfa_nsubexpr);
+! 	vim_memset(m.list.multi, 0xff, sizeof(struct multipos) * nfa_nsubexpr);
+      }
+      else
+      {
+! 	vim_memset(sub.list.line, 0, sizeof(struct linepos) * nfa_nsubexpr);
+! 	vim_memset(m.list.line, 0, sizeof(struct linepos) * nfa_nsubexpr);
+      }
+      sub.in_use = 0;
+      m.in_use = 0;
+***************
+*** 3926,3933 ****
+      {
+  	for (i = 0; i < sub.in_use; i++)
+  	{
+! 	    reg_startpos[i] = sub.multilist[i].start;
+! 	    reg_endpos[i] = sub.multilist[i].end;
+  	}
+  
+  	if (reg_startpos[0].lnum < 0)
+--- 3927,3934 ----
+      {
+  	for (i = 0; i < sub.in_use; i++)
+  	{
+! 	    reg_startpos[i] = sub.list.multi[i].start;
+! 	    reg_endpos[i] = sub.list.multi[i].end;
+  	}
+  
+  	if (reg_startpos[0].lnum < 0)
+***************
+*** 3949,3956 ****
+      {
+  	for (i = 0; i < sub.in_use; i++)
+  	{
+! 	    reg_startp[i] = sub.linelist[i].start;
+! 	    reg_endp[i] = sub.linelist[i].end;
+  	}
+  
+  	if (reg_startp[0] == NULL)
+--- 3950,3957 ----
+      {
+  	for (i = 0; i < sub.in_use; i++)
+  	{
+! 	    reg_startp[i] = sub.list.line[i].start;
+! 	    reg_endp[i] = sub.list.line[i].end;
+  	}
+  
+  	if (reg_startp[0] == NULL)
+*** ../vim-7.3.1035/src/version.c	2013-05-28 22:31:43.000000000 +0200
+--- src/version.c	2013-05-28 22:37:01.000000000 +0200
+***************
+*** 730,731 ****
+--- 730,733 ----
+  {   /* Add new patch number below this line */
++ /**/
++     1036,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+9. All your daydreaming is preoccupied with getting a faster connection to the
+   net: 28.8...ISDN...cable modem...T1...T3.
+
+ /// 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