# HG changeset patch # User Christian Brabandt # Date 1534878906 -7200 # Node ID d0ff19a55579cb2c06431bcf2ed2207d04cd99f1 # Parent 81a230f43995a3229a336af2071ad26296000bc0 patch 8.1.0314: build failure without the +eval feature commit https://github.com/vim/vim/commit/47ad5656e1e4285a74e7e8e5d0f1f71cd554e25c Author: Bram Moolenaar 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. diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt --- 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 diff --git a/src/memline.c b/src/memline.c --- 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. diff --git a/src/testdir/test_swap.vim b/src/testdir/test_swap.vim --- 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 diff --git a/src/version.c b/src/version.c --- 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,