]> granicus.if.org Git - vim/commitdiff
updated for version 7.0-231 v7.0.231
authorBram Moolenaar <Bram@vim.org>
Thu, 26 Apr 2007 15:21:56 +0000 (15:21 +0000)
committerBram Moolenaar <Bram@vim.org>
Thu, 26 Apr 2007 15:21:56 +0000 (15:21 +0000)
src/memline.c
src/version.c

index bb1126de107e81740c4bd44f4f33f0959f251e32..cd39e0617250983e469a7882e78fdb1a170d13f8 100644 (file)
@@ -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);
     }
 
 /*
index 672a409e06146615a161abaf15ad29b2bb7b7deb..d7c6b29344f6db193af30f4b034d827f8d948ddf 100644 (file)
@@ -666,6 +666,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    231,
 /**/
     230,
 /**/