[vim] - patchlevel 400

Karsten Hopp karsten at fedoraproject.org
Tue Feb 7 13:41:30 UTC 2012


commit 34a375bdb9fc1e99d73cd3755b0742148de8c705
Author: Karsten Hopp <karsten at redhat.com>
Date:   Tue Feb 7 14:45:28 2012 +0100

    - patchlevel 400

 7.3.400 | 1762 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 1762 insertions(+), 0 deletions(-)
---
diff --git a/7.3.400 b/7.3.400
new file mode 100644
index 0000000..c621a88
--- /dev/null
+++ b/7.3.400
@@ -0,0 +1,1762 @@
+To: vim_dev at googlegroups.com
+Subject: Patch 7.3.400
+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.400
+Problem:    Compiler warnings for shadowed variables.
+Solution:   Remove or rename the variables.
+Files:	    src/charset.c, src/digraph.c, src/edit.c, src/eval.c, src/fold.c,
+	    src/getchar.c, src/message.c, src/misc2.c, src/move.c,
+	    src/netbeans.c, src/option.c, src/os_unix.c, src/screen.c,
+	    src/search.c, src/spell.c, src/syntax.c, src/tag.c, src/window.c
+
+
+*** ../vim-7.3.399/src/charset.c	2010-08-15 21:57:25.000000000 +0200
+--- src/charset.c	2012-01-10 21:55:50.000000000 +0100
+***************
+*** 463,503 ****
+  	    if (enc_utf8)
+  	    {
+  		int	c = utf_ptr2char(STR_PTR(i));
+! 		int	ol = utf_ptr2len(STR_PTR(i));
+  		int	lc = utf_tolower(c);
+  
+  		/* Only replace the character when it is not an invalid
+  		 * sequence (ASCII character or more than one byte) and
+  		 * utf_tolower() doesn't return the original character. */
+! 		if ((c < 0x80 || ol > 1) && c != lc)
+  		{
+! 		    int	    nl = utf_char2len(lc);
+  
+  		    /* If the byte length changes need to shift the following
+  		     * characters forward or backward. */
+! 		    if (ol != nl)
+  		    {
+! 			if (nl > ol)
+  			{
+! 			    if (buf == NULL ? ga_grow(&ga, nl - ol + 1) == FAIL
+! 						    : len + nl - ol >= buflen)
+  			    {
+  				/* out of memory, keep old char */
+  				lc = c;
+! 				nl = ol;
+  			    }
+  			}
+! 			if (ol != nl)
+  			{
+  			    if (buf == NULL)
+  			    {
+! 				STRMOVE(GA_PTR(i) + nl, GA_PTR(i) + ol);
+! 				ga.ga_len += nl - ol;
+  			    }
+  			    else
+  			    {
+! 				STRMOVE(buf + i + nl, buf + i + ol);
+! 				len += nl - ol;
+  			    }
+  			}
+  		    }
+--- 463,504 ----
+  	    if (enc_utf8)
+  	    {
+  		int	c = utf_ptr2char(STR_PTR(i));
+! 		int	olen = utf_ptr2len(STR_PTR(i));
+  		int	lc = utf_tolower(c);
+  
+  		/* Only replace the character when it is not an invalid
+  		 * sequence (ASCII character or more than one byte) and
+  		 * utf_tolower() doesn't return the original character. */
+! 		if ((c < 0x80 || olen > 1) && c != lc)
+  		{
+! 		    int	    nlen = utf_char2len(lc);
+  
+  		    /* If the byte length changes need to shift the following
+  		     * characters forward or backward. */
+! 		    if (olen != nlen)
+  		    {
+! 			if (nlen > olen)
+  			{
+! 			    if (buf == NULL
+! 				    ? ga_grow(&ga, nlen - olen + 1) == FAIL
+! 				    : len + nlen - olen >= buflen)
+  			    {
+  				/* out of memory, keep old char */
+  				lc = c;
+! 				nlen = olen;
+  			    }
+  			}
+! 			if (olen != nlen)
+  			{
+  			    if (buf == NULL)
+  			    {
+! 				STRMOVE(GA_PTR(i) + nlen, GA_PTR(i) + olen);
+! 				ga.ga_len += nlen - olen;
+  			    }
+  			    else
+  			    {
+! 				STRMOVE(buf + i + nlen, buf + i + olen);
+! 				len += nlen - olen;
+  			    }
+  			}
+  		    }
+*** ../vim-7.3.399/src/digraph.c	2010-08-15 21:57:28.000000000 +0200
+--- src/digraph.c	2012-01-10 21:57:16.000000000 +0100
+***************
+*** 2080,2092 ****
+  /*
+   * Lookup the pair "char1", "char2" in the digraph tables.
+   * If no match, return "char2".
+!  * If "meta" is TRUE and "char1" is a space, return "char2" | 0x80.
+   */
+      static int
+! getexactdigraph(char1, char2, meta)
+      int		char1;
+      int		char2;
+!     int		meta;
+  {
+      int		i;
+      int		retval = 0;
+--- 2080,2092 ----
+  /*
+   * Lookup the pair "char1", "char2" in the digraph tables.
+   * If no match, return "char2".
+!  * If "meta_char" is TRUE and "char1" is a space, return "char2" | 0x80.
+   */
+      static int
+! getexactdigraph(char1, char2, meta_char)
+      int		char1;
+      int		char2;
+!     int		meta_char;
+  {
+      int		i;
+      int		retval = 0;
+***************
+*** 2159,2165 ****
+  
+      if (retval == 0)		/* digraph deleted or not found */
+      {
+! 	if (char1 == ' ' && meta)	/* <space> <char> --> meta-char */
+  	    return (char2 | 0x80);
+  	return char2;
+      }
+--- 2159,2165 ----
+  
+      if (retval == 0)		/* digraph deleted or not found */
+      {
+! 	if (char1 == ' ' && meta_char)	/* <space> <char> --> meta-char */
+  	    return (char2 | 0x80);
+  	return char2;
+      }
+***************
+*** 2171,2186 ****
+   * Allow for both char1-char2 and char2-char1
+   */
+      int
+! getdigraph(char1, char2, meta)
+      int	char1;
+      int	char2;
+!     int	meta;
+  {
+      int	    retval;
+  
+!     if (((retval = getexactdigraph(char1, char2, meta)) == char2)
+  	    && (char1 != char2)
+! 	    && ((retval = getexactdigraph(char2, char1, meta)) == char1))
+  	return char2;
+      return retval;
+  }
+--- 2171,2186 ----
+   * Allow for both char1-char2 and char2-char1
+   */
+      int
+! getdigraph(char1, char2, meta_char)
+      int	char1;
+      int	char2;
+!     int	meta_char;
+  {
+      int	    retval;
+  
+!     if (((retval = getexactdigraph(char1, char2, meta_char)) == char2)
+  	    && (char1 != char2)
+! 	    && ((retval = getexactdigraph(char2, char1, meta_char)) == char1))
+  	return char2;
+      return retval;
+  }
+*** ../vim-7.3.399/src/edit.c	2011-12-23 13:14:58.000000000 +0100
+--- src/edit.c	2012-01-10 21:58:28.000000000 +0100
+***************
+*** 4003,4026 ****
+  ins_compl_add_dict(dict)
+      dict_T	*dict;
+  {
+!     dictitem_T	*refresh;
+!     dictitem_T	*words;
+  
+      /* Check for optional "refresh" item. */
+      compl_opt_refresh_always = FALSE;
+!     refresh = dict_find(dict, (char_u *)"refresh", 7);
+!     if (refresh != NULL && refresh->di_tv.v_type == VAR_STRING)
+      {
+! 	char_u	*v = refresh->di_tv.vval.v_string;
+  
+  	if (v != NULL && STRCMP(v, (char_u *)"always") == 0)
+  	    compl_opt_refresh_always = TRUE;
+      }
+  
+      /* Add completions from a "words" list. */
+!     words = dict_find(dict, (char_u *)"words", 5);
+!     if (words != NULL && words->di_tv.v_type == VAR_LIST)
+! 	ins_compl_add_list(words->di_tv.vval.v_list);
+  }
+  
+  /*
+--- 4003,4026 ----
+  ins_compl_add_dict(dict)
+      dict_T	*dict;
+  {
+!     dictitem_T	*di_refresh;
+!     dictitem_T	*di_words;
+  
+      /* Check for optional "refresh" item. */
+      compl_opt_refresh_always = FALSE;
+!     di_refresh = dict_find(dict, (char_u *)"refresh", 7);
+!     if (di_refresh != NULL && di_refresh->di_tv.v_type == VAR_STRING)
+      {
+! 	char_u	*v = di_refresh->di_tv.vval.v_string;
+  
+  	if (v != NULL && STRCMP(v, (char_u *)"always") == 0)
+  	    compl_opt_refresh_always = TRUE;
+      }
+  
+      /* Add completions from a "words" list. */
+!     di_words = dict_find(dict, (char_u *)"words", 5);
+!     if (di_words != NULL && di_words->di_tv.v_type == VAR_LIST)
+! 	ins_compl_add_list(di_words->di_tv.vval.v_list);
+  }
+  
+  /*
+*** ../vim-7.3.399/src/eval.c	2012-01-04 14:35:31.000000000 +0100
+--- src/eval.c	2012-01-10 22:00:50.000000000 +0100
+***************
+*** 6573,6587 ****
+  
+  /*
+   * Join list "l" into a string in "*gap", using separator "sep".
+!  * When "echo" is TRUE use String as echoed, otherwise as inside a List.
+   * Return FAIL or OK.
+   */
+      static int
+! list_join(gap, l, sep, echo, copyID)
+      garray_T	*gap;
+      list_T	*l;
+      char_u	*sep;
+!     int		echo;
+      int		copyID;
+  {
+      int		first = TRUE;
+--- 6573,6587 ----
+  
+  /*
+   * Join list "l" into a string in "*gap", using separator "sep".
+!  * When "echo_style" is TRUE use String as echoed, otherwise as inside a List.
+   * Return FAIL or OK.
+   */
+      static int
+! list_join(gap, l, sep, echo_style, copyID)
+      garray_T	*gap;
+      list_T	*l;
+      char_u	*sep;
+!     int		echo_style;
+      int		copyID;
+  {
+      int		first = TRUE;
+***************
+*** 6597,6603 ****
+  	else
+  	    ga_concat(gap, sep);
+  
+! 	if (echo)
+  	    s = echo_string(&item->li_tv, &tofree, numbuf, copyID);
+  	else
+  	    s = tv2string(&item->li_tv, &tofree, numbuf, copyID);
+--- 6597,6603 ----
+  	else
+  	    ga_concat(gap, sep);
+  
+! 	if (echo_style)
+  	    s = echo_string(&item->li_tv, &tofree, numbuf, copyID);
+  	else
+  	    s = tv2string(&item->li_tv, &tofree, numbuf, copyID);
+***************
+*** 17893,17899 ****
+      typval_T	*argvars;
+      typval_T	*rettv;
+  {
+!     char_u	*instr;
+      char_u	*fromstr;
+      char_u	*tostr;
+      char_u	*p;
+--- 17893,17899 ----
+      typval_T	*argvars;
+      typval_T	*rettv;
+  {
+!     char_u	*in_str;
+      char_u	*fromstr;
+      char_u	*tostr;
+      char_u	*p;
+***************
+*** 17910,17916 ****
+      char_u	buf2[NUMBUFLEN];
+      garray_T	ga;
+  
+!     instr = get_tv_string(&argvars[0]);
+      fromstr = get_tv_string_buf_chk(&argvars[1], buf);
+      tostr = get_tv_string_buf_chk(&argvars[2], buf2);
+  
+--- 17910,17916 ----
+      char_u	buf2[NUMBUFLEN];
+      garray_T	ga;
+  
+!     in_str = get_tv_string(&argvars[0]);
+      fromstr = get_tv_string_buf_chk(&argvars[1], buf);
+      tostr = get_tv_string_buf_chk(&argvars[2], buf2);
+  
+***************
+*** 17936,17954 ****
+  	}
+  
+      /* fromstr and tostr have to contain the same number of chars */
+!     while (*instr != NUL)
+      {
+  #ifdef FEAT_MBYTE
+  	if (has_mbyte)
+  	{
+! 	    inlen = (*mb_ptr2len)(instr);
+! 	    cpstr = instr;
+  	    cplen = inlen;
+  	    idx = 0;
+  	    for (p = fromstr; *p != NUL; p += fromlen)
+  	    {
+  		fromlen = (*mb_ptr2len)(p);
+! 		if (fromlen == inlen && STRNCMP(instr, p, inlen) == 0)
+  		{
+  		    for (p = tostr; *p != NUL; p += tolen)
+  		    {
+--- 17936,17954 ----
+  	}
+  
+      /* fromstr and tostr have to contain the same number of chars */
+!     while (*in_str != NUL)
+      {
+  #ifdef FEAT_MBYTE
+  	if (has_mbyte)
+  	{
+! 	    inlen = (*mb_ptr2len)(in_str);
+! 	    cpstr = in_str;
+  	    cplen = inlen;
+  	    idx = 0;
+  	    for (p = fromstr; *p != NUL; p += fromlen)
+  	    {
+  		fromlen = (*mb_ptr2len)(p);
+! 		if (fromlen == inlen && STRNCMP(in_str, p, inlen) == 0)
+  		{
+  		    for (p = tostr; *p != NUL; p += tolen)
+  		    {
+***************
+*** 17967,17977 ****
+  		++idx;
+  	    }
+  
+! 	    if (first && cpstr == instr)
+  	    {
+  		/* Check that fromstr and tostr have the same number of
+  		 * (multi-byte) characters.  Done only once when a character
+! 		 * of instr doesn't appear in fromstr. */
+  		first = FALSE;
+  		for (p = tostr; *p != NUL; p += tolen)
+  		{
+--- 17967,17977 ----
+  		++idx;
+  	    }
+  
+! 	    if (first && cpstr == in_str)
+  	    {
+  		/* Check that fromstr and tostr have the same number of
+  		 * (multi-byte) characters.  Done only once when a character
+! 		 * of in_str doesn't appear in fromstr. */
+  		first = FALSE;
+  		for (p = tostr; *p != NUL; p += tolen)
+  		{
+***************
+*** 17986,18003 ****
+  	    mch_memmove((char *)ga.ga_data + ga.ga_len, cpstr, (size_t)cplen);
+  	    ga.ga_len += cplen;
+  
+! 	    instr += inlen;
+  	}
+  	else
+  #endif
+  	{
+  	    /* When not using multi-byte chars we can do it faster. */
+! 	    p = vim_strchr(fromstr, *instr);
+  	    if (p != NULL)
+  		ga_append(&ga, tostr[p - fromstr]);
+  	    else
+! 		ga_append(&ga, *instr);
+! 	    ++instr;
+  	}
+      }
+  
+--- 17986,18003 ----
+  	    mch_memmove((char *)ga.ga_data + ga.ga_len, cpstr, (size_t)cplen);
+  	    ga.ga_len += cplen;
+  
+! 	    in_str += inlen;
+  	}
+  	else
+  #endif
+  	{
+  	    /* When not using multi-byte chars we can do it faster. */
+! 	    p = vim_strchr(fromstr, *in_str);
+  	    if (p != NULL)
+  		ga_append(&ga, tostr[p - fromstr]);
+  	    else
+! 		ga_append(&ga, *in_str);
+! 	    ++in_str;
+  	}
+      }
+  
+*** ../vim-7.3.399/src/fold.c	2011-08-26 16:12:55.000000000 +0200
+--- src/fold.c	2012-01-10 22:01:26.000000000 +0100
+***************
+*** 1033,1042 ****
+   * Init the fold info in a new window.
+   */
+      void
+! foldInitWin(newwin)
+!     win_T	*newwin;
+  {
+!     ga_init2(&newwin->w_folds, (int)sizeof(fold_T), 10);
+  }
+  
+  /* find_wl_entry() {{{2 */
+--- 1033,1042 ----
+   * Init the fold info in a new window.
+   */
+      void
+! foldInitWin(new_win)
+!     win_T	*new_win;
+  {
+!     ga_init2(&new_win->w_folds, (int)sizeof(fold_T), 10);
+  }
+  
+  /* find_wl_entry() {{{2 */
+*** ../vim-7.3.399/src/getchar.c	2011-12-23 14:54:01.000000000 +0100
+--- src/getchar.c	2012-01-10 22:02:30.000000000 +0100
+***************
+*** 418,429 ****
+  
+  /*
+   * Remove the contents of the stuff buffer and the mapped characters in the
+!  * typeahead buffer (used in case of an error).  If 'typeahead' is true,
+   * flush all typeahead characters (used when interrupted by a CTRL-C).
+   */
+      void
+! flush_buffers(typeahead)
+!     int typeahead;
+  {
+      init_typebuf();
+  
+--- 418,429 ----
+  
+  /*
+   * Remove the contents of the stuff buffer and the mapped characters in the
+!  * typeahead buffer (used in case of an error).  If "flush_typeahead" is true,
+   * flush all typeahead characters (used when interrupted by a CTRL-C).
+   */
+      void
+! flush_buffers(flush_typeahead)
+!     int flush_typeahead;
+  {
+      init_typebuf();
+  
+***************
+*** 431,437 ****
+      while (read_stuff(TRUE) != NUL)
+  	;
+  
+!     if (typeahead)	    /* remove all typeahead */
+      {
+  	/*
+  	 * We have to get all characters, because we may delete the first part
+--- 431,437 ----
+      while (read_stuff(TRUE) != NUL)
+  	;
+  
+!     if (flush_typeahead)	    /* remove all typeahead */
+      {
+  	/*
+  	 * We have to get all characters, because we may delete the first part
+*** ../vim-7.3.399/src/message.c	2011-12-30 14:14:16.000000000 +0100
+--- src/message.c	2012-01-10 22:03:56.000000000 +0100
+***************
+*** 2487,2493 ****
+  #ifdef FEAT_CON_DIALOG
+      int		retval = FALSE;
+  #endif
+!     int		scroll;
+      msgchunk_T	*mp_last = NULL;
+      msgchunk_T	*mp;
+      int		i;
+--- 2487,2493 ----
+  #ifdef FEAT_CON_DIALOG
+      int		retval = FALSE;
+  #endif
+!     int		toscroll;
+      msgchunk_T	*mp_last = NULL;
+      msgchunk_T	*mp;
+      int		i;
+***************
+*** 2538,2586 ****
+  	}
+  #endif
+  
+! 	scroll = 0;
+  	switch (c)
+  	{
+  	case BS:		/* scroll one line back */
+  	case K_BS:
+  	case 'k':
+  	case K_UP:
+! 	    scroll = -1;
+  	    break;
+  
+  	case CAR:		/* one extra line */
+  	case NL:
+  	case 'j':
+  	case K_DOWN:
+! 	    scroll = 1;
+  	    break;
+  
+  	case 'u':		/* Up half a page */
+! 	    scroll = -(Rows / 2);
+  	    break;
+  
+  	case 'd':		/* Down half a page */
+! 	    scroll = Rows / 2;
+  	    break;
+  
+  	case 'b':		/* one page back */
+  	case K_PAGEUP:
+! 	    scroll = -(Rows - 1);
+  	    break;
+  
+  	case ' ':		/* one extra page */
+  	case 'f':
+  	case K_PAGEDOWN:
+  	case K_LEFTMOUSE:
+! 	    scroll = Rows - 1;
+  	    break;
+  
+  	case 'g':		/* all the way back to the start */
+! 	    scroll = -999999;
+  	    break;
+  
+  	case 'G':		/* all the way to the end */
+! 	    scroll = 999999;
+  	    lines_left = 999999;
+  	    break;
+  
+--- 2538,2586 ----
+  	}
+  #endif
+  
+! 	toscroll = 0;
+  	switch (c)
+  	{
+  	case BS:		/* scroll one line back */
+  	case K_BS:
+  	case 'k':
+  	case K_UP:
+! 	    toscroll = -1;
+  	    break;
+  
+  	case CAR:		/* one extra line */
+  	case NL:
+  	case 'j':
+  	case K_DOWN:
+! 	    toscroll = 1;
+  	    break;
+  
+  	case 'u':		/* Up half a page */
+! 	    toscroll = -(Rows / 2);
+  	    break;
+  
+  	case 'd':		/* Down half a page */
+! 	    toscroll = Rows / 2;
+  	    break;
+  
+  	case 'b':		/* one page back */
+  	case K_PAGEUP:
+! 	    toscroll = -(Rows - 1);
+  	    break;
+  
+  	case ' ':		/* one extra page */
+  	case 'f':
+  	case K_PAGEDOWN:
+  	case K_LEFTMOUSE:
+! 	    toscroll = Rows - 1;
+  	    break;
+  
+  	case 'g':		/* all the way back to the start */
+! 	    toscroll = -999999;
+  	    break;
+  
+  	case 'G':		/* all the way to the end */
+! 	    toscroll = 999999;
+  	    lines_left = 999999;
+  	    break;
+  
+***************
+*** 2633,2641 ****
+  	    continue;
+  	}
+  
+! 	if (scroll != 0)
+  	{
+! 	    if (scroll < 0)
+  	    {
+  		/* go to start of last line */
+  		if (mp_last == NULL)
+--- 2633,2641 ----
+  	    continue;
+  	}
+  
+! 	if (toscroll != 0)
+  	{
+! 	    if (toscroll < 0)
+  	    {
+  		/* go to start of last line */
+  		if (mp_last == NULL)
+***************
+*** 2653,2659 ****
+  		if (mp != NULL && mp->sb_prev != NULL)
+  		{
+  		    /* Find line to be displayed at top. */
+! 		    for (i = 0; i > scroll; --i)
+  		    {
+  			if (mp == NULL || mp->sb_prev == NULL)
+  			    break;
+--- 2653,2659 ----
+  		if (mp != NULL && mp->sb_prev != NULL)
+  		{
+  		    /* Find line to be displayed at top. */
+! 		    for (i = 0; i > toscroll; --i)
+  		    {
+  			if (mp == NULL || mp->sb_prev == NULL)
+  			    break;
+***************
+*** 2664,2670 ****
+  			    mp_last = msg_sb_start(mp_last->sb_prev);
+  		    }
+  
+! 		    if (scroll == -1 && screen_ins_lines(0, 0, 1,
+  						       (int)Rows, NULL) == OK)
+  		    {
+  			/* display line at top */
+--- 2664,2670 ----
+  			    mp_last = msg_sb_start(mp_last->sb_prev);
+  		    }
+  
+! 		    if (toscroll == -1 && screen_ins_lines(0, 0, 1,
+  						       (int)Rows, NULL) == OK)
+  		    {
+  			/* display line at top */
+***************
+*** 2680,2692 ****
+  			    ++msg_scrolled;
+  			}
+  		    }
+! 		    scroll = 0;
+  		}
+  	    }
+  	    else
+  	    {
+  		/* First display any text that we scrolled back. */
+! 		while (scroll > 0 && mp_last != NULL)
+  		{
+  		    /* scroll up, display line at bottom */
+  		    msg_scroll_up();
+--- 2680,2692 ----
+  			    ++msg_scrolled;
+  			}
+  		    }
+! 		    toscroll = 0;
+  		}
+  	    }
+  	    else
+  	    {
+  		/* First display any text that we scrolled back. */
+! 		while (toscroll > 0 && mp_last != NULL)
+  		{
+  		    /* scroll up, display line at bottom */
+  		    msg_scroll_up();
+***************
+*** 2694,2704 ****
+  		    screen_fill((int)Rows - 2, (int)Rows - 1, 0,
+  						   (int)Columns, ' ', ' ', 0);
+  		    mp_last = disp_sb_line((int)Rows - 2, mp_last);
+! 		    --scroll;
+  		}
+  	    }
+  
+! 	    if (scroll <= 0)
+  	    {
+  		/* displayed the requested text, more prompt again */
+  		screen_fill((int)Rows - 1, (int)Rows, 0,
+--- 2694,2704 ----
+  		    screen_fill((int)Rows - 2, (int)Rows - 1, 0,
+  						   (int)Columns, ' ', ' ', 0);
+  		    mp_last = disp_sb_line((int)Rows - 2, mp_last);
+! 		    --toscroll;
+  		}
+  	    }
+  
+! 	    if (toscroll <= 0)
+  	    {
+  		/* displayed the requested text, more prompt again */
+  		screen_fill((int)Rows - 1, (int)Rows, 0,
+***************
+*** 2708,2714 ****
+  	    }
+  
+  	    /* display more text, return to caller */
+! 	    lines_left = scroll;
+  	}
+  
+  	break;
+--- 2708,2714 ----
+  	    }
+  
+  	    /* display more text, return to caller */
+! 	    lines_left = toscroll;
+  	}
+  
+  	break;
+*** ../vim-7.3.399/src/misc2.c	2012-01-10 16:28:41.000000000 +0100
+--- src/misc2.c	2012-01-10 22:04:25.000000000 +0100
+***************
+*** 1559,1565 ****
+  	    if (enc_utf8)
+  	    {
+  		int	c, uc;
+! 		int	nl;
+  		char_u	*s;
+  
+  		c = utf_ptr2char(p);
+--- 1559,1565 ----
+  	    if (enc_utf8)
+  	    {
+  		int	c, uc;
+! 		int	newl;
+  		char_u	*s;
+  
+  		c = utf_ptr2char(p);
+***************
+*** 1568,1588 ****
+  		/* Reallocate string when byte count changes.  This is rare,
+  		 * thus it's OK to do another malloc()/free(). */
+  		l = utf_ptr2len(p);
+! 		nl = utf_char2len(uc);
+! 		if (nl != l)
+  		{
+! 		    s = alloc((unsigned)STRLEN(res) + 1 + nl - l);
+  		    if (s == NULL)
+  			break;
+  		    mch_memmove(s, res, p - res);
+! 		    STRCPY(s + (p - res) + nl, p + l);
+  		    p = s + (p - res);
+  		    vim_free(res);
+  		    res = s;
+  		}
+  
+  		utf_char2bytes(uc, p);
+! 		p += nl;
+  	    }
+  	    else if (has_mbyte && (l = (*mb_ptr2len)(p)) > 1)
+  		p += l;		/* skip multi-byte character */
+--- 1568,1588 ----
+  		/* Reallocate string when byte count changes.  This is rare,
+  		 * thus it's OK to do another malloc()/free(). */
+  		l = utf_ptr2len(p);
+! 		newl = utf_char2len(uc);
+! 		if (newl != l)
+  		{
+! 		    s = alloc((unsigned)STRLEN(res) + 1 + newl - l);
+  		    if (s == NULL)
+  			break;
+  		    mch_memmove(s, res, p - res);
+! 		    STRCPY(s + (p - res) + newl, p + l);
+  		    p = s + (p - res);
+  		    vim_free(res);
+  		    res = s;
+  		}
+  
+  		utf_char2bytes(uc, p);
+! 		p += newl;
+  	    }
+  	    else if (has_mbyte && (l = (*mb_ptr2len)(p)) > 1)
+  		p += l;		/* skip multi-byte character */
+*** ../vim-7.3.399/src/move.c	2011-02-01 18:01:06.000000000 +0100
+--- src/move.c	2012-01-10 22:05:22.000000000 +0100
+***************
+*** 926,933 ****
+   * Also updates curwin->w_leftcol.
+   */
+      void
+! curs_columns(scroll)
+!     int		scroll;		/* when TRUE, may scroll horizontally */
+  {
+      int		diff;
+      int		extra;		/* offset for first screen line */
+--- 926,933 ----
+   * Also updates curwin->w_leftcol.
+   */
+      void
+! curs_columns(may_scroll)
+!     int		may_scroll;	/* when TRUE, may scroll horizontally */
+  {
+      int		diff;
+      int		extra;		/* offset for first screen line */
+***************
+*** 1014,1020 ****
+      /* No line wrapping: compute curwin->w_leftcol if scrolling is on and line
+       * is not folded.
+       * If scrolling is off, curwin->w_leftcol is assumed to be 0 */
+!     else if (scroll
+  #ifdef FEAT_FOLDING
+  	    && !curwin->w_cline_folded
+  #endif
+--- 1014,1020 ----
+      /* No line wrapping: compute curwin->w_leftcol if scrolling is on and line
+       * is not folded.
+       * If scrolling is off, curwin->w_leftcol is assumed to be 0 */
+!     else if (may_scroll
+  #ifdef FEAT_FOLDING
+  	    && !curwin->w_cline_folded
+  #endif
+*** ../vim-7.3.399/src/netbeans.c	2011-10-20 21:58:20.000000000 +0200
+--- src/netbeans.c	2012-01-10 22:16:26.000000000 +0100
+***************
+*** 1395,1401 ****
+      int		cmdno,
+      char_u	*args)	    /* points to space before arguments or NUL */
+  {
+!     int		doupdate = 0;
+      long	off = 0;
+      nbbuf_T	*buf = nb_get_buf(bufno);
+      static int	skip = 0;
+--- 1395,1401 ----
+      int		cmdno,
+      char_u	*args)	    /* points to space before arguments or NUL */
+  {
+!     int		do_update = 0;
+      long	off = 0;
+      nbbuf_T	*buf = nb_get_buf(bufno);
+      static int	skip = 0;
+***************
+*** 1600,1606 ****
+  							last.lnum, last.col));
+  		del_from_lnum = first.lnum;
+  		del_to_lnum = last.lnum;
+! 		doupdate = 1;
+  
+  		/* Get the position of the first byte after the deleted
+  		 * section.  "next" is NULL when deleting to the end of the
+--- 1600,1606 ----
+  							last.lnum, last.col));
+  		del_from_lnum = first.lnum;
+  		del_to_lnum = last.lnum;
+! 		do_update = 1;
+  
+  		/* Get the position of the first byte after the deleted
+  		 * section.  "next" is NULL when deleting to the end of the
+***************
+*** 1777,1783 ****
+  		lnum = lnum_start;
+  
+  		/* Loop over the "\n" separated lines of the argument. */
+! 		doupdate = 1;
+  		while (*args != NUL)
+  		{
+  		    nl = vim_strchr(args, '\n');
+--- 1777,1783 ----
+  		lnum = lnum_start;
+  
+  		/* Loop over the "\n" separated lines of the argument. */
+! 		do_update = 1;
+  		while (*args != NUL)
+  		{
+  		    nl = vim_strchr(args, '\n');
+***************
+*** 1992,1998 ****
+  		EMSG("E640: invalid buffer identifier in initDone");
+  		return FAIL;
+  	    }
+! 	    doupdate = 1;
+  	    buf->initDone = TRUE;
+  	    nb_set_curbuf(buf->bufp);
+  #if defined(FEAT_AUTOCMD)
+--- 1992,1998 ----
+  		EMSG("E640: invalid buffer identifier in initDone");
+  		return FAIL;
+  	    }
+! 	    do_update = 1;
+  	    buf->initDone = TRUE;
+  	    nb_set_curbuf(buf->bufp);
+  #if defined(FEAT_AUTOCMD)
+***************
+*** 2081,2087 ****
+  					     ECMD_HIDE + ECMD_OLDBUF, curwin);
+  	    buf->bufp = curbuf;
+  	    buf->initDone = TRUE;
+! 	    doupdate = 1;
+  #if defined(FEAT_TITLE)
+  	    maketitle();
+  #endif
+--- 2081,2087 ----
+  					     ECMD_HIDE + ECMD_OLDBUF, curwin);
+  	    buf->bufp = curbuf;
+  	    buf->initDone = TRUE;
+! 	    do_update = 1;
+  #if defined(FEAT_TITLE)
+  	    maketitle();
+  #endif
+***************
+*** 2109,2115 ****
+  		exarg.forceit = FALSE;
+  		dosetvisible = TRUE;
+  		goto_buffer(&exarg, DOBUF_FIRST, FORWARD, buf->bufp->b_fnum);
+! 		doupdate = 1;
+  		dosetvisible = FALSE;
+  
+  #ifdef FEAT_GUI
+--- 2109,2115 ----
+  		exarg.forceit = FALSE;
+  		dosetvisible = TRUE;
+  		goto_buffer(&exarg, DOBUF_FIRST, FORWARD, buf->bufp->b_fnum);
+! 		do_update = 1;
+  		dosetvisible = FALSE;
+  
+  #ifdef FEAT_GUI
+***************
+*** 2309,2315 ****
+  						     buf->bufp->b_fnum, TRUE);
+  	    buf->bufp = NULL;
+  	    buf->initDone = FALSE;
+! 	    doupdate = 1;
+  /* =====================================================================*/
+  	}
+  	else if (streq((char *)cmd, "setStyle")) /* obsolete... */
+--- 2309,2315 ----
+  						     buf->bufp->b_fnum, TRUE);
+  	    buf->bufp = NULL;
+  	    buf->initDone = FALSE;
+! 	    do_update = 1;
+  /* =====================================================================*/
+  	}
+  	else if (streq((char *)cmd, "setStyle")) /* obsolete... */
+***************
+*** 2400,2406 ****
+  		return FAIL;
+  	    }
+  
+! 	    doupdate = 1;
+  
+  	    cp = (char *)args;
+  	    serNum = strtol(cp, &cp, 10);
+--- 2400,2406 ----
+  		return FAIL;
+  	    }
+  
+! 	    do_update = 1;
+  
+  	    cp = (char *)args;
+  	    serNum = strtol(cp, &cp, 10);
+***************
+*** 2448,2454 ****
+  		nbdebug(("    invalid buffer identifier in removeAnno\n"));
+  		return FAIL;
+  	    }
+! 	    doupdate = 1;
+  	    cp = (char *)args;
+  	    serNum = strtol(cp, &cp, 10);
+  	    args = (char_u *)cp;
+--- 2448,2454 ----
+  		nbdebug(("    invalid buffer identifier in removeAnno\n"));
+  		return FAIL;
+  	    }
+! 	    do_update = 1;
+  	    cp = (char *)args;
+  	    serNum = strtol(cp, &cp, 10);
+  	    args = (char_u *)cp;
+***************
+*** 2493,2499 ****
+  	    len = strtol(cp, NULL, 10);
+  	    args = (char_u *)cp;
+  	    pos = off2pos(buf->bufp, off);
+! 	    doupdate = 1;
+  	    if (!pos)
+  		nbdebug(("    no such start pos in %s, %ld\n", cmd, off));
+  	    else
+--- 2493,2499 ----
+  	    len = strtol(cp, NULL, 10);
+  	    args = (char_u *)cp;
+  	    pos = off2pos(buf->bufp, off);
+! 	    do_update = 1;
+  	    if (!pos)
+  		nbdebug(("    no such start pos in %s, %ld\n", cmd, off));
+  	    else
+***************
+*** 2555,2561 ****
+  	    inAtomic = 0;
+  	    if (needupdate)
+  	    {
+! 		doupdate = 1;
+  		needupdate = 0;
+  	    }
+  /* =====================================================================*/
+--- 2555,2561 ----
+  	    inAtomic = 0;
+  	    if (needupdate)
+  	    {
+! 		do_update = 1;
+  		needupdate = 0;
+  	    }
+  /* =====================================================================*/
+***************
+*** 2636,2653 ****
+  	 * Unrecognized command is ignored.
+  	 */
+      }
+!     if (inAtomic && doupdate)
+      {
+  	needupdate = 1;
+! 	doupdate = 0;
+      }
+  
+      /*
+       * Is this needed? I moved the netbeans_Xt_connect() later during startup
+       * and it may no longer be necessary. If its not needed then needupdate
+!      * and doupdate can also be removed.
+       */
+!     if (buf != NULL && buf->initDone && doupdate)
+      {
+  	update_screen(NOT_VALID);
+  	setcursor();
+--- 2636,2653 ----
+  	 * Unrecognized command is ignored.
+  	 */
+      }
+!     if (inAtomic && do_update)
+      {
+  	needupdate = 1;
+! 	do_update = 0;
+      }
+  
+      /*
+       * Is this needed? I moved the netbeans_Xt_connect() later during startup
+       * and it may no longer be necessary. If its not needed then needupdate
+!      * and do_update can also be removed.
+       */
+!     if (buf != NULL && buf->initDone && do_update)
+      {
+  	update_screen(NOT_VALID);
+  	setcursor();
+*** ../vim-7.3.399/src/option.c	2012-01-04 19:34:32.000000000 +0100
+--- src/option.c	2012-01-10 22:06:03.000000000 +0100
+***************
+*** 8584,8591 ****
+      long_u	flags;
+  {
+      /* Careful: P_RCLR and P_RALL are a combination of other P_ flags */
+!     int		clear = (flags & P_RCLR) == P_RCLR;
+!     int		all = ((flags & P_RALL) == P_RALL || clear);
+  
+  #ifdef FEAT_WINDOWS
+      if ((flags & P_RSTAT) || all)	/* mark all status lines dirty */
+--- 8584,8591 ----
+      long_u	flags;
+  {
+      /* Careful: P_RCLR and P_RALL are a combination of other P_ flags */
+!     int		doclear = (flags & P_RCLR) == P_RCLR;
+!     int		all = ((flags & P_RALL) == P_RALL || doclear);
+  
+  #ifdef FEAT_WINDOWS
+      if ((flags & P_RSTAT) || all)	/* mark all status lines dirty */
+***************
+*** 8596,8602 ****
+  	changed_window_setting();
+      if (flags & P_RBUF)
+  	redraw_curbuf_later(NOT_VALID);
+!     if (clear)
+  	redraw_all_later(CLEAR);
+      else if (all)
+  	redraw_all_later(NOT_VALID);
+--- 8596,8602 ----
+  	changed_window_setting();
+      if (flags & P_RBUF)
+  	redraw_curbuf_later(NOT_VALID);
+!     if (doclear)
+  	redraw_all_later(CLEAR);
+      else if (all)
+  	redraw_all_later(NOT_VALID);
+*** ../vim-7.3.399/src/os_unix.c	2011-10-20 21:09:25.000000000 +0200
+--- src/os_unix.c	2012-01-10 21:48:49.000000000 +0100
+***************
+*** 3884,3890 ****
+      char_u	*p_shcf_copy = NULL;
+      int		i;
+      char_u	*p;
+-     char_u	*s;
+      int		inquote;
+      int		pty_master_fd = -1;	    /* for pty's */
+  # ifdef FEAT_GUI
+--- 3884,3889 ----
+***************
+*** 3963,3968 ****
+--- 3962,3969 ----
+      }
+      if (cmd != NULL)
+      {
++ 	char_u	*s;
++ 
+  	if (extra_shell_arg != NULL)
+  	    argv[argc++] = (char *)extra_shell_arg;
+  
+***************
+*** 4325,4331 ****
+  			linenr_T    lnum = curbuf->b_op_start.lnum;
+  			int	    written = 0;
+  			char_u	    *lp = ml_get(lnum);
+- 			char_u	    *s;
+  			size_t	    l;
+  
+  			close(fromshell_fd);
+--- 4326,4331 ----
+***************
+*** 4339,4345 ****
+  				len = write(toshell_fd, "", (size_t)1);
+  			    else
+  			    {
+! 				s = vim_strchr(lp + written, NL);
+  				len = write(toshell_fd, (char *)lp + written,
+  					   s == NULL ? l
+  					      : (size_t)(s - (lp + written)));
+--- 4339,4346 ----
+  				len = write(toshell_fd, "", (size_t)1);
+  			    else
+  			    {
+! 				char_u	*s = vim_strchr(lp + written, NL);
+! 
+  				len = write(toshell_fd, (char *)lp + written,
+  					   s == NULL ? l
+  					      : (size_t)(s - (lp + written)));
+*** ../vim-7.3.399/src/screen.c	2012-01-10 12:42:05.000000000 +0100
+--- src/screen.c	2012-01-10 22:06:51.000000000 +0100
+***************
+*** 7849,7863 ****
+  
+  /*
+   * screen_valid -  allocate screen buffers if size changed
+!  *   If "clear" is TRUE: clear screen if it has been resized.
+   *	Returns TRUE if there is a valid screen to write to.
+   *	Returns FALSE when starting up and screen not initialized yet.
+   */
+      int
+! screen_valid(clear)
+!     int	    clear;
+  {
+!     screenalloc(clear);	    /* allocate screen buffers if size changed */
+      return (ScreenLines != NULL);
+  }
+  
+--- 7849,7863 ----
+  
+  /*
+   * screen_valid -  allocate screen buffers if size changed
+!  *   If "doclear" is TRUE: clear screen if it has been resized.
+   *	Returns TRUE if there is a valid screen to write to.
+   *	Returns FALSE when starting up and screen not initialized yet.
+   */
+      int
+! screen_valid(doclear)
+!     int	    doclear;
+  {
+!     screenalloc(doclear);	   /* allocate screen buffers if size changed */
+      return (ScreenLines != NULL);
+  }
+  
+***************
+*** 7872,7879 ****
+   * final size of the shell is needed.
+   */
+      void
+! screenalloc(clear)
+!     int	    clear;
+  {
+      int		    new_row, old_row;
+  #ifdef FEAT_GUI
+--- 7872,7879 ----
+   * final size of the shell is needed.
+   */
+      void
+! screenalloc(doclear)
+!     int	    doclear;
+  {
+      int		    new_row, old_row;
+  #ifdef FEAT_GUI
+***************
+*** 8069,8075 ****
+  	     * (used when resizing the window at the "--more--" prompt or when
+  	     * executing an external command, for the GUI).
+  	     */
+! 	    if (!clear)
+  	    {
+  		(void)vim_memset(new_ScreenLines + new_row * Columns,
+  				      ' ', (size_t)Columns * sizeof(schar_T));
+--- 8069,8075 ----
+  	     * (used when resizing the window at the "--more--" prompt or when
+  	     * executing an external command, for the GUI).
+  	     */
+! 	    if (!doclear)
+  	    {
+  		(void)vim_memset(new_ScreenLines + new_row * Columns,
+  				      ' ', (size_t)Columns * sizeof(schar_T));
+***************
+*** 8159,8165 ****
+      screen_Columns = Columns;
+  
+      must_redraw = CLEAR;	/* need to clear the screen later */
+!     if (clear)
+  	screenclear2();
+  
+  #ifdef FEAT_GUI
+--- 8159,8165 ----
+      screen_Columns = Columns;
+  
+      must_redraw = CLEAR;	/* need to clear the screen later */
+!     if (doclear)
+  	screenclear2();
+  
+  #ifdef FEAT_GUI
+*** ../vim-7.3.399/src/search.c	2011-10-04 17:00:13.000000000 +0200
+--- src/search.c	2012-01-10 22:07:16.000000000 +0100
+***************
+*** 2402,2425 ****
+      {
+  	if (vim_strchr(p, ';') != NULL) /* there may be comments */
+  	{
+! 	    int instr = FALSE;	/* inside of string */
+  
+  	    p = line;		/* scan from start */
+  	    while ((p = vim_strpbrk(p, (char_u *)"\";")) != NULL)
+  	    {
+  		if (*p == '"')
+  		{
+! 		    if (instr)
+  		    {
+  			if (*(p - 1) != '\\') /* skip escaped quote */
+! 			    instr = FALSE;
+  		    }
+  		    else if (p == line || ((p - line) >= 2
+  				      /* skip #\" form */
+  				      && *(p - 1) != '\\' && *(p - 2) != '#'))
+! 			instr = TRUE;
+  		}
+! 		else if (!instr && ((p - line) < 2
+  				    || (*(p - 1) != '\\' && *(p - 2) != '#')))
+  		    break;	/* found! */
+  		++p;
+--- 2402,2425 ----
+      {
+  	if (vim_strchr(p, ';') != NULL) /* there may be comments */
+  	{
+! 	    int in_str = FALSE;	/* inside of string */
+  
+  	    p = line;		/* scan from start */
+  	    while ((p = vim_strpbrk(p, (char_u *)"\";")) != NULL)
+  	    {
+  		if (*p == '"')
+  		{
+! 		    if (in_str)
+  		    {
+  			if (*(p - 1) != '\\') /* skip escaped quote */
+! 			    in_str = FALSE;
+  		    }
+  		    else if (p == line || ((p - line) >= 2
+  				      /* skip #\" form */
+  				      && *(p - 1) != '\\' && *(p - 2) != '#'))
+! 			in_str = TRUE;
+  		}
+! 		else if (!in_str && ((p - line) < 2
+  				    || (*(p - 1) != '\\' && *(p - 2) != '#')))
+  		    break;	/* found! */
+  		++p;
+*** ../vim-7.3.399/src/spell.c	2012-01-10 16:28:41.000000000 +0100
+--- src/spell.c	2012-01-10 22:09:23.000000000 +0100
+***************
+*** 5049,5055 ****
+  static int offset2bytes __ARGS((int nr, char_u *buf));
+  static int bytes2offset __ARGS((char_u **pp));
+  static void sug_write __ARGS((spellinfo_T *spin, char_u *fname));
+! static void mkspell __ARGS((int fcount, char_u **fnames, int ascii, int overwrite, int added_word));
+  static void spell_message __ARGS((spellinfo_T *spin, char_u *str));
+  static void init_spellfile __ARGS((void));
+  
+--- 5049,5055 ----
+  static int offset2bytes __ARGS((int nr, char_u *buf));
+  static int bytes2offset __ARGS((char_u **pp));
+  static void sug_write __ARGS((spellinfo_T *spin, char_u *fname));
+! static void mkspell __ARGS((int fcount, char_u **fnames, int ascii, int over_write, int added_word));
+  static void spell_message __ARGS((spellinfo_T *spin, char_u *str));
+  static void init_spellfile __ARGS((void));
+  
+***************
+*** 9085,9095 ****
+   * and ".spl" is appended to make the output file name.
+   */
+      static void
+! mkspell(fcount, fnames, ascii, overwrite, added_word)
+      int		fcount;
+      char_u	**fnames;
+      int		ascii;		    /* -ascii argument given */
+!     int		overwrite;	    /* overwrite existing output file */
+      int		added_word;	    /* invoked through "zg" */
+  {
+      char_u	*fname = NULL;
+--- 9085,9095 ----
+   * and ".spl" is appended to make the output file name.
+   */
+      static void
+! mkspell(fcount, fnames, ascii, over_write, added_word)
+      int		fcount;
+      char_u	**fnames;
+      int		ascii;		    /* -ascii argument given */
+!     int		over_write;	    /* overwrite existing output file */
+      int		added_word;	    /* invoked through "zg" */
+  {
+      char_u	*fname = NULL;
+***************
+*** 9173,9179 ****
+      {
+  	/* Check for overwriting before doing things that may take a lot of
+  	 * time. */
+! 	if (!overwrite && mch_stat((char *)wfname, &st) >= 0)
+  	{
+  	    EMSG(_(e_exists));
+  	    goto theend;
+--- 9173,9179 ----
+      {
+  	/* Check for overwriting before doing things that may take a lot of
+  	 * time. */
+! 	if (!over_write && mch_stat((char *)wfname, &st) >= 0)
+  	{
+  	    EMSG(_(e_exists));
+  	    goto theend;
+*** ../vim-7.3.399/src/syntax.c	2011-06-19 04:54:17.000000000 +0200
+--- src/syntax.c	2012-01-10 22:10:23.000000000 +0100
+***************
+*** 4006,4022 ****
+  }
+  
+      static void
+! syn_list_flags(nl, flags, attr)
+!     struct name_list	*nl;
+      int			flags;
+      int			attr;
+  {
+      int		i;
+  
+!     for (i = 0; nl[i].flag != 0; ++i)
+! 	if (flags & nl[i].flag)
+  	{
+! 	    msg_puts_attr((char_u *)nl[i].name, attr);
+  	    msg_putchar(' ');
+  	}
+  }
+--- 4006,4022 ----
+  }
+  
+      static void
+! syn_list_flags(nlist, flags, attr)
+!     struct name_list	*nlist;
+      int			flags;
+      int			attr;
+  {
+      int		i;
+  
+!     for (i = 0; nlist[i].flag != 0; ++i)
+! 	if (flags & nlist[i].flag)
+  	{
+! 	    msg_puts_attr((char_u *)nlist[i].name, attr);
+  	    msg_putchar(' ');
+  	}
+  }
+*** ../vim-7.3.399/src/tag.c	2011-12-14 14:15:12.000000000 +0100
+--- src/tag.c	2012-01-10 21:51:05.000000000 +0100
+***************
+*** 1353,1359 ****
+      int		match_count = 0;		/* number of matches found */
+      char_u	**matches;
+      int		mtt;
+-     int		len;
+      int		help_save;
+  #ifdef FEAT_MULTI_LANG
+      int		help_pri = 0;
+--- 1353,1358 ----
+***************
+*** 2235,2240 ****
+--- 2234,2241 ----
+  		 */
+  		if (ga_grow(&ga_match[mtt], 1) == OK)
+  		{
++ 		    int len;
++ 
+  		    if (help_only)
+  		    {
+  #ifdef FEAT_MULTI_LANG
+*** ../vim-7.3.399/src/window.c	2011-12-30 15:01:55.000000000 +0100
+--- src/window.c	2012-01-10 22:11:41.000000000 +0100
+***************
+*** 683,701 ****
+  }
+  
+  /*
+!  * When "newwin" is NULL: split the current window in two.
+!  * When "newwin" is not NULL: insert this window at the far
+   * top/left/right/bottom.
+   * return FAIL for failure, OK otherwise
+   */
+      int
+! win_split_ins(size, flags, newwin, dir)
+      int		size;
+      int		flags;
+!     win_T	*newwin;
+      int		dir;
+  {
+!     win_T	*wp = newwin;
+      win_T	*oldwin;
+      int		new_size = size;
+      int		i;
+--- 683,701 ----
+  }
+  
+  /*
+!  * When "new_wp" is NULL: split the current window in two.
+!  * When "new_wp" is not NULL: insert this window at the far
+   * top/left/right/bottom.
+   * return FAIL for failure, OK otherwise
+   */
+      int
+! win_split_ins(size, flags, new_wp, dir)
+      int		size;
+      int		flags;
+!     win_T	*new_wp;
+      int		dir;
+  {
+!     win_T	*wp = new_wp;
+      win_T	*oldwin;
+      int		new_size = size;
+      int		i;
+***************
+*** 718,724 ****
+      /* add a status line when p_ls == 1 and splitting the first window */
+      if (lastwin == firstwin && p_ls == 1 && oldwin->w_status_height == 0)
+      {
+! 	if (oldwin->w_height <= p_wmh && newwin == NULL)
+  	{
+  	    EMSG(_(e_noroom));
+  	    return FAIL;
+--- 718,724 ----
+      /* add a status line when p_ls == 1 and splitting the first window */
+      if (lastwin == firstwin && p_ls == 1 && oldwin->w_status_height == 0)
+      {
+! 	if (oldwin->w_height <= p_wmh && new_wp == NULL)
+  	{
+  	    EMSG(_(e_noroom));
+  	    return FAIL;
+***************
+*** 751,757 ****
+  	}
+  	else
+  	    available = oldwin->w_width;
+! 	if (available < needed && newwin == NULL)
+  	{
+  	    EMSG(_(e_noroom));
+  	    return FAIL;
+--- 751,757 ----
+  	}
+  	else
+  	    available = oldwin->w_width;
+! 	if (available < needed && new_wp == NULL)
+  	{
+  	    EMSG(_(e_noroom));
+  	    return FAIL;
+***************
+*** 815,821 ****
+  	    available = oldwin->w_height;
+  	    needed += p_wmh;
+  	}
+! 	if (available < needed && newwin == NULL)
+  	{
+  	    EMSG(_(e_noroom));
+  	    return FAIL;
+--- 815,821 ----
+  	    available = oldwin->w_height;
+  	    needed += p_wmh;
+  	}
+! 	if (available < needed && new_wp == NULL)
+  	{
+  	    EMSG(_(e_noroom));
+  	    return FAIL;
+***************
+*** 888,907 ****
+  			p_sb))))
+      {
+  	/* new window below/right of current one */
+! 	if (newwin == NULL)
+  	    wp = win_alloc(oldwin, FALSE);
+  	else
+  	    win_append(oldwin, wp);
+      }
+      else
+      {
+! 	if (newwin == NULL)
+  	    wp = win_alloc(oldwin->w_prev, FALSE);
+  	else
+  	    win_append(oldwin->w_prev, wp);
+      }
+  
+!     if (newwin == NULL)
+      {
+  	if (wp == NULL)
+  	    return FAIL;
+--- 888,907 ----
+  			p_sb))))
+      {
+  	/* new window below/right of current one */
+! 	if (new_wp == NULL)
+  	    wp = win_alloc(oldwin, FALSE);
+  	else
+  	    win_append(oldwin, wp);
+      }
+      else
+      {
+! 	if (new_wp == NULL)
+  	    wp = win_alloc(oldwin->w_prev, FALSE);
+  	else
+  	    win_append(oldwin->w_prev, wp);
+      }
+  
+!     if (new_wp == NULL)
+      {
+  	if (wp == NULL)
+  	    return FAIL;
+***************
+*** 972,981 ****
+  		frp->fr_parent = curfrp;
+      }
+  
+!     if (newwin == NULL)
+  	frp = wp->w_frame;
+      else
+! 	frp = newwin->w_frame;
+      frp->fr_parent = curfrp->fr_parent;
+  
+      /* Insert the new frame at the right place in the frame list. */
+--- 972,981 ----
+  		frp->fr_parent = curfrp;
+      }
+  
+!     if (new_wp == NULL)
+  	frp = wp->w_frame;
+      else
+! 	frp = new_wp->w_frame;
+      frp->fr_parent = curfrp->fr_parent;
+  
+      /* Insert the new frame at the right place in the frame list. */
+***************
+*** 4284,4302 ****
+      win_T	*after UNUSED;
+      int		hidden UNUSED;
+  {
+!     win_T	*newwin;
+  
+      /*
+       * allocate window structure and linesizes arrays
+       */
+!     newwin = (win_T *)alloc_clear((unsigned)sizeof(win_T));
+!     if (newwin != NULL && win_alloc_lines(newwin) == FAIL)
+      {
+! 	vim_free(newwin);
+! 	newwin = NULL;
+      }
+  
+!     if (newwin != NULL)
+      {
+  #ifdef FEAT_AUTOCMD
+  	/* Don't execute autocommands while the window is not properly
+--- 4284,4302 ----
+      win_T	*after UNUSED;
+      int		hidden UNUSED;
+  {
+!     win_T	*new_wp;
+  
+      /*
+       * allocate window structure and linesizes arrays
+       */
+!     new_wp = (win_T *)alloc_clear((unsigned)sizeof(win_T));
+!     if (new_wp != NULL && win_alloc_lines(new_wp) == FAIL)
+      {
+! 	vim_free(new_wp);
+! 	new_wp = NULL;
+      }
+  
+!     if (new_wp != NULL)
+      {
+  #ifdef FEAT_AUTOCMD
+  	/* Don't execute autocommands while the window is not properly
+***************
+*** 4309,4361 ****
+  	 */
+  #ifdef FEAT_WINDOWS
+  	if (!hidden)
+! 	    win_append(after, newwin);
+  #endif
+  #ifdef FEAT_VERTSPLIT
+! 	newwin->w_wincol = 0;
+! 	newwin->w_width = Columns;
+  #endif
+  
+  	/* position the display and the cursor at the top of the file. */
+! 	newwin->w_topline = 1;
+  #ifdef FEAT_DIFF
+! 	newwin->w_topfill = 0;
+  #endif
+! 	newwin->w_botline = 2;
+! 	newwin->w_cursor.lnum = 1;
+  #ifdef FEAT_SCROLLBIND
+! 	newwin->w_scbind_pos = 1;
+  #endif
+  
+  	/* We won't calculate w_fraction until resizing the window */
+! 	newwin->w_fraction = 0;
+! 	newwin->w_prev_fraction_row = -1;
+  
+  #ifdef FEAT_GUI
+  	if (gui.in_use)
+  	{
+! 	    gui_create_scrollbar(&newwin->w_scrollbars[SBAR_LEFT],
+! 		    SBAR_LEFT, newwin);
+! 	    gui_create_scrollbar(&newwin->w_scrollbars[SBAR_RIGHT],
+! 		    SBAR_RIGHT, newwin);
+  	}
+  #endif
+  #ifdef FEAT_EVAL
+  	/* init w: variables */
+! 	init_var_dict(&newwin->w_vars, &newwin->w_winvar);
+  #endif
+  #ifdef FEAT_FOLDING
+! 	foldInitWin(newwin);
+  #endif
+  #ifdef FEAT_AUTOCMD
+  	unblock_autocmds();
+  #endif
+  #ifdef FEAT_SEARCH_EXTRA
+! 	newwin->w_match_head = NULL;
+! 	newwin->w_next_match_id = 4;
+  #endif
+      }
+!     return newwin;
+  }
+  
+  #if defined(FEAT_WINDOWS) || defined(PROTO)
+--- 4309,4361 ----
+  	 */
+  #ifdef FEAT_WINDOWS
+  	if (!hidden)
+! 	    win_append(after, new_wp);
+  #endif
+  #ifdef FEAT_VERTSPLIT
+! 	new_wp->w_wincol = 0;
+! 	new_wp->w_width = Columns;
+  #endif
+  
+  	/* position the display and the cursor at the top of the file. */
+! 	new_wp->w_topline = 1;
+  #ifdef FEAT_DIFF
+! 	new_wp->w_topfill = 0;
+  #endif
+! 	new_wp->w_botline = 2;
+! 	new_wp->w_cursor.lnum = 1;
+  #ifdef FEAT_SCROLLBIND
+! 	new_wp->w_scbind_pos = 1;
+  #endif
+  
+  	/* We won't calculate w_fraction until resizing the window */
+! 	new_wp->w_fraction = 0;
+! 	new_wp->w_prev_fraction_row = -1;
+  
+  #ifdef FEAT_GUI
+  	if (gui.in_use)
+  	{
+! 	    gui_create_scrollbar(&new_wp->w_scrollbars[SBAR_LEFT],
+! 		    SBAR_LEFT, new_wp);
+! 	    gui_create_scrollbar(&new_wp->w_scrollbars[SBAR_RIGHT],
+! 		    SBAR_RIGHT, new_wp);
+  	}
+  #endif
+  #ifdef FEAT_EVAL
+  	/* init w: variables */
+! 	init_var_dict(&new_wp->w_vars, &new_wp->w_winvar);
+  #endif
+  #ifdef FEAT_FOLDING
+! 	foldInitWin(new_wp);
+  #endif
+  #ifdef FEAT_AUTOCMD
+  	unblock_autocmds();
+  #endif
+  #ifdef FEAT_SEARCH_EXTRA
+! 	new_wp->w_match_head = NULL;
+! 	new_wp->w_next_match_id = 4;
+  #endif
+      }
+!     return new_wp;
+  }
+  
+  #if defined(FEAT_WINDOWS) || defined(PROTO)
+*** ../vim-7.3.399/src/version.c	2012-01-10 18:37:53.000000000 +0100
+--- src/version.c	2012-01-10 22:23:10.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     400,
+  /**/
+
+-- 
+A parent can be arrested if his child cannot hold back a burp during a church
+service.
+		[real standing law in Nebraska, United States of America]
+
+ /// 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