SOURCES: 7.0.189 (NEW), 7.0.190 (NEW), 7.0.191 (NEW), 7.0.192 (NEW...

adamg adamg at pld-linux.org
Mon Mar 12 02:09:57 CET 2007


Author: adamg                        Date: Mon Mar 12 01:09:57 2007 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- new

---- Files affected:
SOURCES:
   7.0.189 (NONE -> 1.1)  (NEW), 7.0.190 (NONE -> 1.1)  (NEW), 7.0.191 (NONE -> 1.1)  (NEW), 7.0.192 (NONE -> 1.1)  (NEW), 7.0.193 (NONE -> 1.1)  (NEW), 7.0.194 (NONE -> 1.1)  (NEW), 7.0.195 (NONE -> 1.1)  (NEW), 7.0.196 (NONE -> 1.1)  (NEW), 7.0.199 (NONE -> 1.1)  (NEW), 7.0.200 (NONE -> 1.1)  (NEW), 7.0.201 (NONE -> 1.1)  (NEW), 7.0.202 (NONE -> 1.1)  (NEW), 7.0.203 (NONE -> 1.1)  (NEW), 7.0.204 (NONE -> 1.1)  (NEW), 7.0.205 (NONE -> 1.1)  (NEW), 7.0.206 (NONE -> 1.1)  (NEW), 7.0.207 (NONE -> 1.1)  (NEW), 7.0.208 (NONE -> 1.1)  (NEW), 7.0.209 (NONE -> 1.1)  (NEW), 7.0.210 (NONE -> 1.1)  (NEW), 7.0.211 (NONE -> 1.1)  (NEW), 7.0.212 (NONE -> 1.1)  (NEW), 7.0.213 (NONE -> 1.1)  (NEW), 7.0.214 (NONE -> 1.1)  (NEW), 7.0.216 (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/7.0.189
diff -u /dev/null SOURCES/7.0.189:1.1
--- /dev/null	Mon Mar 12 02:09:57 2007
+++ SOURCES/7.0.189	Mon Mar 12 02:09:52 2007
@@ -0,0 +1,72 @@
+To: vim-dev at vim.org
+Subject: patch 7.0.189
+Fcc: outbox
+From: Bram Moolenaar <Bram at moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.0.189
+Problem:    Translated message about finding matches is truncated.  (Yukihiro
+            Nakadaira)
+Solution:   Enlarge the buffer.  Also use vim_snprintf().
+Files:      src/edit.c
+
+
+*** ../vim-7.0.188/src/edit.c	Wed Nov  1 21:24:58 2006
+--- src/edit.c	Fri Jan 19 20:22:09 2007
+***************
+*** 4970,4985 ****
+  	     * just a safety check. */
+  	    if (compl_curr_match->cp_number != -1)
+  	    {
+! 		/* Space for 10 text chars. + 2x10-digit no.s */
+! 		static char_u match_ref[31];
+  
+  		if (compl_matches > 0)
+! 		    sprintf((char *)IObuff, _("match %d of %d"),
+  				compl_curr_match->cp_number, compl_matches);
+  		else
+! 		    sprintf((char *)IObuff, _("match %d"),
+! 						 compl_curr_match->cp_number);
+! 		vim_strncpy(match_ref, IObuff, 30);
+  		edit_submode_extra = match_ref;
+  		edit_submode_highl = HLF_R;
+  		if (dollar_vcol)
+--- 4970,4987 ----
+  	     * just a safety check. */
+  	    if (compl_curr_match->cp_number != -1)
+  	    {
+! 		/* Space for 10 text chars. + 2x10-digit no.s = 31.
+! 		 * Translations may need more than twice that. */
+! 		static char_u match_ref[81];
+  
+  		if (compl_matches > 0)
+! 		    vim_snprintf((char *)match_ref, sizeof(match_ref),
+! 				_("match %d of %d"),
+  				compl_curr_match->cp_number, compl_matches);
+  		else
+! 		    vim_snprintf((char *)match_ref, sizeof(match_ref),
+! 				_("match %d"),
+! 				compl_curr_match->cp_number);
+  		edit_submode_extra = match_ref;
+  		edit_submode_highl = HLF_R;
+  		if (dollar_vcol)
+*** ../vim-7.0.188/src/version.c	Tue Jan 16 22:13:53 2007
+--- src/version.c	Sun Feb  4 02:35:43 2007
+***************
+*** 668,669 ****
+--- 668,671 ----
+  {   /* Add new patch number below this line */
++ /**/
++     189,
+  /**/
+
+-- 
+How many light bulbs does it take to change a person?
+
+ /// Bram Moolenaar -- Bram at 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    ///

================================================================
Index: SOURCES/7.0.190
diff -u /dev/null SOURCES/7.0.190:1.1
--- /dev/null	Mon Mar 12 02:09:57 2007
+++ SOURCES/7.0.190	Mon Mar 12 02:09:52 2007
@@ -0,0 +1,52 @@
+To: vim-dev at vim.org
+Subject: patch 7.0.190
+Fcc: outbox
+From: Bram Moolenaar <Bram at moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.0.190
+Problem:    "syntax spell default" results in an error message.
+Solution:   Change 4 to 7 for STRNICMP(). (Raul Nunez de Arenas Coronado)
+Files:      src/syntax.c
+    
+
+*** ../vim-7.0.189/src/syntax.c	Wed Nov  1 12:43:07 2006
+--- src/syntax.c	Sun Jan 21 13:12:19 2007
+***************
+*** 3206,3212 ****
+  	curbuf->b_syn_spell = SYNSPL_TOP;
+      else if (STRNICMP(arg, "notoplevel", 10) == 0 && next - arg == 10)
+  	curbuf->b_syn_spell = SYNSPL_NOTOP;
+!     else if (STRNICMP(arg, "default", 4) == 0 && next - arg == 4)
+  	curbuf->b_syn_spell = SYNSPL_DEFAULT;
+      else
+  	EMSG2(_("E390: Illegal argument: %s"), arg);
+--- 3206,3212 ----
+  	curbuf->b_syn_spell = SYNSPL_TOP;
+      else if (STRNICMP(arg, "notoplevel", 10) == 0 && next - arg == 10)
+  	curbuf->b_syn_spell = SYNSPL_NOTOP;
+!     else if (STRNICMP(arg, "default", 7) == 0 && next - arg == 7)
+  	curbuf->b_syn_spell = SYNSPL_DEFAULT;
+      else
+  	EMSG2(_("E390: Illegal argument: %s"), arg);
+*** ../vim-7.0.189/src/version.c	Sun Feb  4 02:37:40 2007
+--- src/version.c	Sun Feb  4 02:40:23 2007
+***************
+*** 668,669 ****
+--- 668,671 ----
+  {   /* Add new patch number below this line */
++ /**/
++     190,
+  /**/
+
+-- 
+From "know your smileys":
+ :-)-O	Smiling doctor with stethoscope
+
+ /// Bram Moolenaar -- Bram at 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    ///

================================================================
Index: SOURCES/7.0.191
diff -u /dev/null SOURCES/7.0.191:1.1
--- /dev/null	Mon Mar 12 02:09:57 2007
+++ SOURCES/7.0.191	Mon Mar 12 02:09:52 2007
@@ -0,0 +1,330 @@
+To: vim-dev at vim.org
+Subject: patch 7.0.191
+Fcc: outbox
+From: Bram Moolenaar <Bram at moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.0.191 
+Problem:    The items used by getqflist() and setqflist() don't match.
+Solution:   Support the "bufnum" item for setqflist(). (Yegappan Lakshmanan)
+Files:      runtime/doc/eval.txt, src/quickfix.c
+
+
+*** ../vim-7.0.190/runtime/doc/eval.txt	Wed Nov  1 15:31:02 2006
+--- runtime/doc/eval.txt	Sun Feb  4 01:54:35 2007
+***************
+*** 2897,2908 ****
+  			vcol	non-zero: "col" is visual column
+  				zero: "col" is byte index
+  			nr	error number
+  			text	description of the error
+  			type	type of the error, 'E', '1', etc.
+  			valid	non-zero: recognized error message
+  
+  		When there is no error list or it's empty an empty list is
+! 		returned.
+  
+  		Useful application: Find pattern matches in multiple files and
+  		do something with them: >
+--- 2912,2925 ----
+  			vcol	non-zero: "col" is visual column
+  				zero: "col" is byte index
+  			nr	error number
++ 			pattern	search pattern used to locate the error
+  			text	description of the error
+  			type	type of the error, 'E', '1', etc.
+  			valid	non-zero: recognized error message
+  
+  		When there is no error list or it's empty an empty list is
+! 		returned. Quickfix list entries with non-existing buffer
+! 		number are returned with "bufnr" set to zero.
+  
+  		Useful application: Find pattern matches in multiple files and
+  		do something with them: >
+***************
+*** 4371,4377 ****
+  		Non-dictionary items in {list} are ignored.  Each dictionary
+  		item can contain the following entries:
+  
+! 		    filename	name of a file
+  		    lnum	line number in the file
+  		    pattern	search pattern used to locate the error
+  		    col		column number
+--- 4401,4410 ----
+  		Non-dictionary items in {list} are ignored.  Each dictionary
+  		item can contain the following entries:
+  
+! 		    bufnr	buffer number; must be the number of a valid
+! 		    		buffer
+! 		    filename	name of a file; only used when "bufnr" is not
+! 		    		present or it is invalid.
+  		    lnum	line number in the file
+  		    pattern	search pattern used to locate the error
+  		    col		column number
+***************
+*** 4384,4394 ****
+  		The "col", "vcol", "nr", "type" and "text" entries are
+  		optional.  Either "lnum" or "pattern" entry can be used to
+  		locate a matching error line.
+! 		If the "filename" entry is not present or neither the "lnum"
+! 		or "pattern" entries are present, then the item will not be
+! 		handled as an error line.
+  		If both "pattern" and "lnum" are present then "pattern" will
+  		be used.
+  
+  		If {action} is set to 'a', then the items from {list} are
+  		added to the existing quickfix list. If there is no existing
+--- 4417,4429 ----
+  		The "col", "vcol", "nr", "type" and "text" entries are
+  		optional.  Either "lnum" or "pattern" entry can be used to
+  		locate a matching error line.
+! 		If the "filename" and "bufnr" entries are not present or
+! 		neither the "lnum" or "pattern" entries are present, then the
+! 		item will not be handled as an error line.
+  		If both "pattern" and "lnum" are present then "pattern" will
+  		be used.
++ 		Note that the list is not exactly the same as what
++ 		|getqflist()| returns.
+  
+  		If {action} is set to 'a', then the items from {list} are
+  		added to the existing quickfix list. If there is no existing
+*** ../vim-7.0.190/src/quickfix.c	Fri Oct 20 20:15:05 2006
+--- src/quickfix.c	Sun Feb  4 01:50:17 2007
+***************
+*** 106,112 ****
+  
+  static int	qf_init_ext __ARGS((qf_info_T *qi, char_u *efile, buf_T *buf, typval_T *tv, char_u *errorformat, int newlist, linenr_T lnumfirst, linenr_T lnumlast));
+  static void	qf_new_list __ARGS((qf_info_T *qi));
+! static int	qf_add_entry __ARGS((qf_info_T *qi, qfline_T **prevp, char_u *dir, char_u *fname, char_u *mesg, long lnum, int col, int vis_col, char_u *pattern, int nr, int type, int valid));
+  static void	qf_msg __ARGS((qf_info_T *qi));
+  static void	qf_free __ARGS((qf_info_T *qi, int idx));
+  static char_u	*qf_types __ARGS((int, int));
+--- 106,112 ----
+  
+  static int	qf_init_ext __ARGS((qf_info_T *qi, char_u *efile, buf_T *buf, typval_T *tv, char_u *errorformat, int newlist, linenr_T lnumfirst, linenr_T lnumlast));
+  static void	qf_new_list __ARGS((qf_info_T *qi));
+! static int	qf_add_entry __ARGS((qf_info_T *qi, qfline_T **prevp, char_u *dir, char_u *fname, int bufnum, char_u *mesg, long lnum, int col, int vis_col, char_u *pattern, int nr, int type, int valid));
+  static void	qf_msg __ARGS((qf_info_T *qi));
+  static void	qf_free __ARGS((qf_info_T *qi, int idx));
+  static char_u	*qf_types __ARGS((int, int));
+***************
+*** 791,796 ****
+--- 791,797 ----
+  			(*namebuf || directory)
+  			    ? namebuf
+  			    : ((currfile && valid) ? currfile : (char_u *)NULL),
++ 			0,
+  			errmsg,
+  			lnum,
+  			col,
+***************
+*** 936,947 ****
+   * Returns OK or FAIL.
+   */
+      static int
+! qf_add_entry(qi, prevp, dir, fname, mesg, lnum, col, vis_col, pattern, nr, type,
+! 	     valid)
+      qf_info_T	*qi;		/* quickfix list */
+      qfline_T	**prevp;	/* pointer to previously added entry or NULL */
+      char_u	*dir;		/* optional directory name */
+      char_u	*fname;		/* file name or NULL */
+      char_u	*mesg;		/* message */
+      long	lnum;		/* line number */
+      int		col;		/* column */
+--- 937,949 ----
+   * Returns OK or FAIL.
+   */
+      static int
+! qf_add_entry(qi, prevp, dir, fname, bufnum, mesg, lnum, col, vis_col, pattern,
+! 	     nr, type, valid)
+      qf_info_T	*qi;		/* quickfix list */
+      qfline_T	**prevp;	/* pointer to previously added entry or NULL */
+      char_u	*dir;		/* optional directory name */
+      char_u	*fname;		/* file name or NULL */
++     int		bufnum;		/* buffer number or zero */
+      char_u	*mesg;		/* message */
+      long	lnum;		/* line number */
+      int		col;		/* column */
+***************
+*** 955,961 ****
+  
+      if ((qfp = (qfline_T *)alloc((unsigned)sizeof(qfline_T))) == NULL)
+  	return FAIL;
+!     qfp->qf_fnum = qf_get_fnum(dir, fname);
+      if ((qfp->qf_text = vim_strsave(mesg)) == NULL)
+      {
+  	vim_free(qfp);
+--- 957,966 ----
+  
+      if ((qfp = (qfline_T *)alloc((unsigned)sizeof(qfline_T))) == NULL)
+  	return FAIL;
+!     if (bufnum != 0)
+! 	qfp->qf_fnum = bufnum;
+!     else
+! 	qfp->qf_fnum = qf_get_fnum(dir, fname);
+      if ((qfp->qf_text = vim_strsave(mesg)) == NULL)
+      {
+  	vim_free(qfp);
+***************
+*** 1106,1111 ****
+--- 1111,1117 ----
+  		if (qf_add_entry(to->w_llist, &prevp,
+  				 NULL,
+  				 NULL,
++ 				 0,
+  				 from_qfp->qf_text,
+  				 from_qfp->qf_lnum,
+  				 from_qfp->qf_col,
+***************
+*** 3134,3139 ****
+--- 3140,3146 ----
+  		    if (qf_add_entry(qi, &prevp,
+  				NULL,       /* dir */
+  				fnames[fi],
++ 				0,
+  				ml_get_buf(buf,
+  				     regmatch.startpos[0].lnum + lnum, FALSE),
+  				regmatch.startpos[0].lnum + lnum,
+***************
+*** 3419,3424 ****
+--- 3426,3432 ----
+      char_u	buf[2];
+      qfline_T	*qfp;
+      int		i;
++     int		bufnum;
+  
+      if (wp != NULL)
+      {
+***************
+*** 3434,3439 ****
+--- 3442,3452 ----
+      qfp = qi->qf_lists[qi->qf_curlist].qf_start;
+      for (i = 1; !got_int && i <= qi->qf_lists[qi->qf_curlist].qf_count; ++i)
+      {
++ 	/* Handle entries with a non-existing buffer number. */
++ 	bufnum = qfp->qf_fnum;
++ 	if (bufnum != 0 && (buflist_findnr(bufnum) == NULL))
++ 	    bufnum = 0;
++ 
+  	if ((dict = dict_alloc()) == NULL)
+  	    return FAIL;
+  	if (list_append_dict(list, dict) == FAIL)
+***************
+*** 3441,3447 ****
+  
+  	buf[0] = qfp->qf_type;
+  	buf[1] = NUL;
+! 	if ( dict_add_nr_str(dict, "bufnr", (long)qfp->qf_fnum, NULL) == FAIL
+  	  || dict_add_nr_str(dict, "lnum",  (long)qfp->qf_lnum, NULL) == FAIL
+  	  || dict_add_nr_str(dict, "col",   (long)qfp->qf_col, NULL) == FAIL
+  	  || dict_add_nr_str(dict, "vcol",  (long)qfp->qf_viscol, NULL) == FAIL
+--- 3454,3460 ----
+  
+  	buf[0] = qfp->qf_type;
+  	buf[1] = NUL;
+! 	if ( dict_add_nr_str(dict, "bufnr", (long)bufnum, NULL) == FAIL
+  	  || dict_add_nr_str(dict, "lnum",  (long)qfp->qf_lnum, NULL) == FAIL
+  	  || dict_add_nr_str(dict, "col",   (long)qfp->qf_col, NULL) == FAIL
+  	  || dict_add_nr_str(dict, "vcol",  (long)qfp->qf_viscol, NULL) == FAIL
+***************
+*** 3472,3477 ****
+--- 3485,3491 ----
+      listitem_T	*li;
+      dict_T	*d;
+      char_u	*filename, *pattern, *text, *type;
++     int		bufnum;
+      long	lnum;
+      int		col, nr;
+      int		vcol;
+***************
+*** 3479,3484 ****
+--- 3493,3499 ----
+      int		valid, status;
+      int		retval = OK;
+      qf_info_T	*qi = &ql_info;
++     int		did_bufnr_emsg = FALSE;
+  
+      if (wp != NULL)
+      {
+***************
+*** 3508,3513 ****
+--- 3523,3529 ----
+  	    continue;
+  
+  	filename = get_dict_string(d, (char_u *)"filename", TRUE);
++ 	bufnum = get_dict_number(d, (char_u *)"bufnr");
+  	lnum = get_dict_number(d, (char_u *)"lnum");
+  	col = get_dict_number(d, (char_u *)"col");
+  	vcol = get_dict_number(d, (char_u *)"vcol");
+***************
+*** 3519,3530 ****
+  	    text = vim_strsave((char_u *)"");
+  
+  	valid = TRUE;
+! 	if (filename == NULL || (lnum == 0 && pattern == NULL))
+  	    valid = FALSE;
+  
+  	status =  qf_add_entry(qi, &prevp,
+  			       NULL,	    /* dir */
+  			       filename,
+  			       text,
+  			       lnum,
+  			       col,
+--- 3535,3560 ----
+  	    text = vim_strsave((char_u *)"");
+  
+  	valid = TRUE;
+! 	if ((filename == NULL && bufnum == 0) || (lnum == 0 && pattern == NULL))
+  	    valid = FALSE;
+  
++ 	/* Mark entries with non-existing buffer number as not valid. Give the
++ 	 * error message only once. */
++ 	if (bufnum != 0 && (buflist_findnr(bufnum) == NULL))
++ 	{
++ 	    if (!did_bufnr_emsg)
++ 	    {
++ 		did_bufnr_emsg = TRUE;
++ 		EMSGN(_("E92: Buffer %ld not found"), bufnum);
++ 	    }
++ 	    valid = FALSE;
++ 	    bufnum = 0;
++ 	}
++ 
+  	status =  qf_add_entry(qi, &prevp,
+  			       NULL,	    /* dir */
+  			       filename,
++ 			       bufnum,
+  			       text,
+  			       lnum,
+  			       col,
+***************
+*** 3757,3762 ****
+--- 3787,3793 ----
+  				if (qf_add_entry(qi, &prevp,
+  					    NULL,	/* dir */
+  					    fnames[fi],
++ 					    0,
+  					    IObuff,
+  					    lnum,
+  					    (int)(regmatch.startp[0] - IObuff)
+*** ../vim-7.0.190/src/version.c	Sun Feb  4 02:49:03 2007
+--- src/version.c	Sun Feb  4 02:50:49 2007
+***************
+*** 668,669 ****
+--- 668,671 ----
+  {   /* Add new patch number below this line */
++ /**/
++     191,
+  /**/
+
+-- 
+From "know your smileys":
+ |-P	Reaction to unusually ugly C code
+
+ /// Bram Moolenaar -- Bram at 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    ///

================================================================
Index: SOURCES/7.0.192
diff -u /dev/null SOURCES/7.0.192:1.1
--- /dev/null	Mon Mar 12 02:09:57 2007
+++ SOURCES/7.0.192	Mon Mar 12 02:09:52 2007
@@ -0,0 +1,158 @@
+To: vim-dev at vim.org
+Subject: patch 7.0.192
+Fcc: outbox
+From: Bram Moolenaar <Bram at moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.0.192
+Problem:    When 'swapfile' is switched off in an empty file it is possible
+            that not all blocks are loaded into memory, causing ml_get errors
+            later.
+Solution:   Rename "dont_release" to "mf_dont_release" and also use it to
+            avoid using the cached line and locked block. 
+Files:      src/globals.h, src/memfile.c, src/memline.c
+
+
+*** ../vim-7.0.191/src/globals.h	Tue Jan  9 15:15:36 2007
+--- src/globals.h	Wed Feb  7 03:29:52 2007
+***************
+*** 554,559 ****
+--- 554,563 ----
+  EXTERN buf_T	*firstbuf INIT(= NULL);	/* first buffer */
+  EXTERN buf_T	*lastbuf INIT(= NULL);	/* last buffer */
+  EXTERN buf_T	*curbuf INIT(= NULL);	/* currently active buffer */
++ 
++ /* Flag that is set when switching off 'swapfile'.  It means that all blocks
++  * are to be loaded into memory.  Shouldn't be global... */
++ EXTERN int	mf_dont_release INIT(= FALSE);	/* don't release blocks */
+  
+  /*
+   * List of files being edited (global argument list).  curwin->w_alist points
+*** ../vim-7.0.191/src/memfile.c	Tue Nov  7 18:02:19 2006
+--- src/memfile.c	Wed Feb  7 03:22:11 2007
+***************
+*** 76,82 ****
+  #define MEMFILE_PAGE_SIZE 4096		/* default page size */
+  
+  static long_u	total_mem_used = 0;	/* total memory used for memfiles */
+- static int	dont_release = FALSE;	/* don't release blocks */
+  
+  static void mf_ins_hash __ARGS((memfile_T *, bhdr_T *));
+  static void mf_rem_hash __ARGS((memfile_T *, bhdr_T *));
+--- 76,81 ----
+***************
+*** 279,288 ****
+      if (getlines)
+      {
+  	/* get all blocks in memory by accessing all lines (clumsy!) */
+! 	dont_release = TRUE;
+  	for (lnum = 1; lnum <= buf->b_ml.ml_line_count; ++lnum)
+  	    (void)ml_get_buf(buf, lnum, FALSE);
+! 	dont_release = FALSE;
+  	/* TODO: should check if all blocks are really in core */
+      }
+  
+--- 278,287 ----
+      if (getlines)
+      {
+  	/* get all blocks in memory by accessing all lines (clumsy!) */
+! 	mf_dont_release = TRUE;
+  	for (lnum = 1; lnum <= buf->b_ml.ml_line_count; ++lnum)
+  	    (void)ml_get_buf(buf, lnum, FALSE);
+! 	mf_dont_release = FALSE;
+  	/* TODO: should check if all blocks are really in core */
+      }
+  
+***************
+*** 830,836 ****
+      buf_T	*buf;
+  
+      /* don't release while in mf_close_file() */
+!     if (dont_release)
+  	return NULL;
+  
+      /*
+--- 829,835 ----
+      buf_T	*buf;
+  
+      /* don't release while in mf_close_file() */
+!     if (mf_dont_release)
+  	return NULL;
+  
+      /*
+*** ../vim-7.0.191/src/memline.c	Tue Jan  9 15:15:36 2007
+--- src/memline.c	Wed Feb  7 03:29:31 2007
+***************
+*** 2074,2081 ****
+  /*
+   * See if it is the same line as requested last time.
+   * Otherwise may need to flush last used line.
+   */
+!     if (buf->b_ml.ml_line_lnum != lnum)
+      {
+  	ml_flush_line(buf);
+  
+--- 2074,2083 ----
+  /*
+   * See if it is the same line as requested last time.
+   * Otherwise may need to flush last used line.
++  * Don't use the last used line when 'swapfile' is reset, need to load all
++  * blocks.
+   */
+!     if (buf->b_ml.ml_line_lnum != lnum || mf_dont_release)
+      {
+  	ml_flush_line(buf);
+  
+***************
+*** 3200,3212 ****
+       * If not, flush and release the locked block.
+       * Don't do this for ML_INSERT_SAME, because the stack need to be updated.
+       * Don't do this for ML_FLUSH, because we want to flush the locked block.
+       */
+      if (buf->b_ml.ml_locked)
+      {
+! 	if (ML_SIMPLE(action) && buf->b_ml.ml_locked_low <= lnum
+! 					  && buf->b_ml.ml_locked_high >= lnum)
+  	{
<<Diff was trimmed, longer than 597 lines>>


More information about the pld-cvs-commit mailing list