0
0
mirror of https://github.com/vim/vim.git synced 2025-09-25 03:54:15 -04:00

updated for version 7.0181

This commit is contained in:
Bram Moolenaar
2006-01-14 21:23:38 +00:00
parent 04dbce064e
commit c32840f267
5 changed files with 47 additions and 3 deletions

View File

@@ -17667,7 +17667,18 @@ trans_function_name(pp, skip, flags, fdp)
}
if (lv.ll_exp_name != NULL)
{
len = STRLEN(lv.ll_exp_name);
if (lead <= 2 && lv.ll_name == lv.ll_exp_name
&& STRNCMP(lv.ll_name, "s:", 2) == 0)
{
/* When there was "s:" already or the name expanded to get a
* leading "s:" then remove it. */
lv.ll_name += 2;
len -= 2;
lead = 2;
}
}
else
{
if (lead == 2) /* skip over "s:" */

View File

@@ -700,6 +700,23 @@ mf_sync(mfp, flags)
return status;
}
/*
* For all blocks in memory file *mfp that have a positive block number set
* the dirty flag. These are blocks that need to be written to a newly
* created swapfile.
*/
void
mf_set_dirty(mfp)
memfile_T *mfp;
{
bhdr_T *hp;
for (hp = mfp->mf_used_last; hp != NULL; hp = hp->bh_prev)
if (hp->bh_bnum > 0)
hp->bh_flags |= BH_DIRTY;
mfp->mf_dirty = TRUE;
}
/*
* insert block *hp in front of hashlist of memfile *mfp
*/

View File

@@ -563,7 +563,13 @@ ml_open_file(buf)
/* Flush block zero, so others can read it */
if (mf_sync(mfp, MFS_ZERO) == OK)
{
/* Mark all blocks that should be in the swapfile as dirty.
* Needed for when the 'swapfile' option was reset, so that
* the swap file was deleted, and then on again. */
mf_set_dirty(mfp);
break;
}
/* Writing block 0 failed: close the file and try another dir */
mf_close_file(buf, FALSE);
}