diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-08-21 21:09:07 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-08-21 21:09:07 +0200 |
commit | 47ad5656e1e4285a74e7e8e5d0f1f71cd554e25c (patch) | |
tree | f5cd3064f4d3dc00b73c46ba83df45c6430d9261 | |
parent | 00f123a56585363cd13f062fd3bb123efcfaa664 (diff) |
patch 8.1.0314: build failure without the +eval featurev8.1.0314
Problem: Build failure without the +eval feature. (Brenton Horne)
Solution: Add #ifdef. Also add the "dirty" item.
-rw-r--r-- | runtime/doc/eval.txt | 4 | ||||
-rw-r--r-- | src/memline.c | 16 | ||||
-rw-r--r-- | src/testdir/test_swap.vim | 3 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 17 insertions, 8 deletions
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index a9d0dc0151..2e5bf7f3d1 100644 --- 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 index 660e89c111..3d82af0813 100644 --- a/src/memline.c +++ b/src/memline.c @@ -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. diff --git a/src/testdir/test_swap.vim b/src/testdir/test_swap.vim index b0e2ec9aa5..c12693c81c 100644 --- 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 index d0052fa331..55d3ce33e6 100644 --- 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, |