]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 8.1.0314: build failure without the +eval feature v8.1.0314
authorBram Moolenaar <Bram@vim.org>
Tue, 21 Aug 2018 19:09:07 +0000 (21:09 +0200)
committerBram Moolenaar <Bram@vim.org>
Tue, 21 Aug 2018 19:09:07 +0000 (21:09 +0200)
Problem:    Build failure without the +eval feature. (Brenton Horne)
Solution:   Add #ifdef.  Also add the "dirty" item.

runtime/doc/eval.txt
src/memline.c
src/testdir/test_swap.vim
src/version.c

index a9d0dc0151e9f72ee67068fbda8b015f359d31d3..2e5bf7f3d1f1d1d404910548ffcf90d0d3b185a5 100644 (file)
@@ -8013,10 +8013,12 @@ swapinfo({fname})                                       swapinfo()
                                file
                        mtime   last modification time in seconds
                        inode   Optional: INODE number of the file
+                       dirty   1 if file was modified, 0 if not
                In case of failure an "error" item is added with the reason:
                        Cannot open file: file not found or in accessible
                        Cannot read file: cannot read first block
-                       magic number mismatch: info in first block is invalid
+                       Not a swap file: does not contain correct block ID
+                       Magic number mismatch: Info in first block is invalid
 
 synID({lnum}, {col}, {trans})                          *synID()*
                The result is a Number, which is the syntax ID at the position
index 660e89c111d95acc4dbfbab18d0cc6d72cc77d3f..3d82af0813e4935324c81de1050c8bd5f528d4fd 100644 (file)
@@ -2041,6 +2041,7 @@ make_percent_swname(char_u *dir, char_u *name)
 static int process_still_running;
 #endif
 
+#if defined(FEAT_EVAL) || defined(PROTO)
 /*
  * Return information found in swapfile "fname" in dictionary "d".
  * This is used by the swapinfo() function.
@@ -2055,11 +2056,12 @@ get_b0_dict(char_u *fname, dict_T *d)
     {
        if (read_eintr(fd, &b0, sizeof(b0)) == sizeof(b0))
        {
-           if (b0_magic_wrong(&b0))
-           {
+           if (ml_check_b0_id(&b0) == FAIL)
                dict_add_string(d, "error",
-                              vim_strsave((char_u *)"magic number mismatch"));
-           }
+                              vim_strsave((char_u *)"Not a swap file"));
+           else if (b0_magic_wrong(&b0))
+               dict_add_string(d, "error",
+                              vim_strsave((char_u *)"Magic number mismatch"));
            else
            {
                /* we have swap information */
@@ -2070,9 +2072,10 @@ get_b0_dict(char_u *fname, dict_T *d)
 
                dict_add_number(d, "pid", char_to_long(b0.b0_pid));
                dict_add_number(d, "mtime", char_to_long(b0.b0_mtime));
-#ifdef CHECK_INODE
+               dict_add_number(d, "dirty", b0.b0_dirty ? 1 : 0);
+# ifdef CHECK_INODE
                dict_add_number(d, "inode", char_to_long(b0.b0_ino));
-#endif
+# endif
            }
        }
        else
@@ -2083,6 +2086,7 @@ get_b0_dict(char_u *fname, dict_T *d)
     else
        dict_add_string(d, "error", vim_strsave((char_u *)"Cannot open file"));
 }
+#endif
 
 /*
  * Give information about an existing swap file.
index b0e2ec9aa584dd3429450cfd5de38680a2c54645..c12693c81c3e8d2b55f2f7127d281edf4a0ae218 100644 (file)
@@ -109,6 +109,7 @@ func Test_swapinfo()
   call assert_match('\w', info.user)
   call assert_equal(hostname(), info.host)
   call assert_match('Xswapinfo', info.fname)
+  call assert_match(0, info.dirty)
   call assert_equal(getpid(), info.pid)
   call assert_match('^\d*$', info.mtime)
   if has_key(info, 'inode')
@@ -128,6 +129,6 @@ func Test_swapinfo()
 
   call writefile([repeat('x', 10000)], 'Xnotaswapfile')
   let info = swapinfo('Xnotaswapfile')
-  call assert_equal('magic number mismatch', info.error)
+  call assert_equal('Not a swap file', info.error)
   call delete('Xnotaswapfile')
 endfunc
index d0052fa3318cf095d67add39f025d475bef49a37..55d3ce33e687fe067a749b6747095d5faf32949c 100644 (file)
@@ -794,6 +794,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    314,
 /**/
     313,
 /**/