changeset 14601:d0ff19a55579 v8.1.0314

patch 8.1.0314: build failure without the +eval feature commit https://github.com/vim/vim/commit/47ad5656e1e4285a74e7e8e5d0f1f71cd554e25c Author: Bram Moolenaar <Bram@vim.org> Date: Tue Aug 21 21:09:07 2018 +0200 patch 8.1.0314: build failure without the +eval feature Problem: Build failure without the +eval feature. (Brenton Horne) Solution: Add #ifdef. Also add the "dirty" item.
author Christian Brabandt <cb@256bit.org>
date Tue, 21 Aug 2018 21:15:06 +0200
parents 81a230f43995
children 4ded89a63c5d
files runtime/doc/eval.txt src/memline.c src/testdir/test_swap.vim src/version.c
diffstat 4 files changed, 17 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -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
--- a/src/memline.c
+++ b/src/memline.c
@@ -2041,6 +2041,7 @@ make_percent_swname(char_u *dir, char_u 
 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.
--- a/src/testdir/test_swap.vim
+++ b/src/testdir/test_swap.vim
@@ -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
--- a/src/version.c
+++ b/src/version.c
@@ -795,6 +795,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    314,
+/**/
     313,
 /**/
     312,