diff options
author | Bram Moolenaar <Bram@vim.org> | 2007-04-26 15:21:56 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2007-04-26 15:21:56 +0000 |
commit | 1c536285180f4424e8e21c4992ba749a44f65b79 (patch) | |
tree | 4796335ec574f0fd3ffcaf50fe3ce8a17c30998d /src | |
parent | d267b9c167bb89a3dd3a742081bcccf47e586b54 (diff) | |
download | vim-git-1c536285180f4424e8e21c4992ba749a44f65b79.tar.gz |
updated for version 7.0-231v7.0.231
Diffstat (limited to 'src')
-rw-r--r-- | src/memline.c | 21 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 23 insertions, 0 deletions
diff --git a/src/memline.c b/src/memline.c index bb1126de1..cd39e0617 100644 --- a/src/memline.c +++ b/src/memline.c @@ -1015,18 +1015,39 @@ ml_recover() msg_end(); goto theend; } + /* * If we guessed the wrong page size, we have to recalculate the * highest block number in the file. */ if (mfp->mf_page_size != (unsigned)char_to_long(b0p->b0_page_size)) { + unsigned previous_page_size = mfp->mf_page_size; + mf_new_page_size(mfp, (unsigned)char_to_long(b0p->b0_page_size)); + if (mfp->mf_page_size < previous_page_size) + { + msg_start(); + msg_outtrans_attr(mfp->mf_fname, attr | MSG_HIST); + MSG_PUTS_ATTR(_(" has been damaged (page size is smaller than minimum value).\n"), + attr | MSG_HIST); + msg_end(); + goto theend; + } if ((size = lseek(mfp->mf_fd, (off_t)0L, SEEK_END)) <= 0) mfp->mf_blocknr_max = 0; /* no file or empty file */ else mfp->mf_blocknr_max = (blocknr_T)(size / mfp->mf_page_size); mfp->mf_infile_count = mfp->mf_blocknr_max; + + /* need to reallocate the memory used to store the data */ + p = alloc(mfp->mf_page_size); + if (p == NULL) + goto theend; + mch_memmove(p, hp->bh_data, previous_page_size); + vim_free(hp->bh_data); + hp->bh_data = p; + b0p = (ZERO_BL *)(hp->bh_data); } /* diff --git a/src/version.c b/src/version.c index 672a409e0..d7c6b2934 100644 --- a/src/version.c +++ b/src/version.c @@ -667,6 +667,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 231, +/**/ 230, /**/ 229, |