Mercurial > vim
comparison src/testdir/test_viminfo.vim @ 20735:298ef749e5fb v8.2.0920
patch 8.2.0920: writing viminfo fails with a circular reference
Commit: https://github.com/vim/vim/commit/5b157fe2edfdce5f77080aeac2b4a03f39eb1c1a
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Jun 7 16:08:08 2020 +0200
patch 8.2.0920: writing viminfo fails with a circular reference
Problem: Writing viminfo fails with a circular reference.
Solution: Use copyID to detect the cycle. (closes https://github.com/vim/vim/issues/6217)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 07 Jun 2020 16:15:03 +0200 |
parents | 2c4d9ca33769 |
children | 505d97ea54da |
comparison
equal
deleted
inserted
replaced
20734:88e438717510 | 20735:298ef749e5fb |
---|---|
84 call assert_equal(test_blob, g:MY_GLOBAL_BLOB) | 84 call assert_equal(test_blob, g:MY_GLOBAL_BLOB) |
85 call assert_equal(test_false, g:MY_GLOBAL_FALSE) | 85 call assert_equal(test_false, g:MY_GLOBAL_FALSE) |
86 call assert_equal(test_true, g:MY_GLOBAL_TRUE) | 86 call assert_equal(test_true, g:MY_GLOBAL_TRUE) |
87 call assert_equal(test_null, g:MY_GLOBAL_NULL) | 87 call assert_equal(test_null, g:MY_GLOBAL_NULL) |
88 call assert_equal(test_none, g:MY_GLOBAL_NONE) | 88 call assert_equal(test_none, g:MY_GLOBAL_NONE) |
89 | |
90 call delete('Xviminfo') | |
91 set viminfo-=! | |
92 endfunc | |
93 | |
94 func Test_global_vars_with_circular_reference() | |
95 let g:MY_GLOBAL_LIST = [] | |
96 call add(g:MY_GLOBAL_LIST, g:MY_GLOBAL_LIST) | |
97 let g:MY_GLOBAL_DICT = {} | |
98 let g:MY_GLOBAL_DICT['self'] = g:MY_GLOBAL_DICT | |
99 | |
100 set viminfo='100,<50,s10,h,!,nviminfo | |
101 wv! Xviminfo | |
102 call assert_equal(v:errmsg, '') | |
103 | |
104 unlet g:MY_GLOBAL_LIST | |
105 unlet g:MY_GLOBAL_DICT | |
106 | |
107 rv! Xviminfo | |
108 call assert_equal(v:errmsg, '') | |
109 call assert_true(!exists('g:MY_GLOBAL_LIST')) | |
110 call assert_true(!exists('g:MY_GLOBAL_DICT')) | |
89 | 111 |
90 call delete('Xviminfo') | 112 call delete('Xviminfo') |
91 set viminfo-=! | 113 set viminfo-=! |
92 endfunc | 114 endfunc |
93 | 115 |