From: Christian Brabandt Date: Thu, 28 Nov 2024 20:59:33 +0000 (+0100) Subject: patch 9.1.0893: No test that undofile format does not regress X-Git-Tag: v9.1.0893^0 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=14382c8bc96cc8f3985a01ab58c2f4d7b4d9ec85;p=thirdparty%2Fvim.git patch 9.1.0893: No test that undofile format does not regress Problem: No test that undofile format does not regress Solution: include a sample undofile to make sure we are always able to read it This is so, that we don't unintentionally change the undofile format and make sure we can load an undo file that has been created by an older Vim. closes: #16127 Signed-off-by: Christian Brabandt --- diff --git a/Filelist b/Filelist index c5b1b3910c..caac66cdbd 100644 --- a/Filelist +++ b/Filelist @@ -224,6 +224,7 @@ SRC_ALL = \ src/testdir/samples/*.vim \ src/testdir/samples/test000 \ src/testdir/samples/test.zip \ + src/testdir/samples/test_undo.txt.undo \ src/testdir/samples/testa.zip \ src/testdir/color_ramp.vim \ src/testdir/silent.wav \ diff --git a/src/testdir/samples/test_undo.txt b/src/testdir/samples/test_undo.txt new file mode 100644 index 0000000000..4cb29ea38f --- /dev/null +++ b/src/testdir/samples/test_undo.txt @@ -0,0 +1,3 @@ +one +two +three diff --git a/src/testdir/samples/test_undo.txt.undo b/src/testdir/samples/test_undo.txt.undo new file mode 100644 index 0000000000..393af7f34f Binary files /dev/null and b/src/testdir/samples/test_undo.txt.undo differ diff --git a/src/testdir/test_undo.vim b/src/testdir/test_undo.vim index 2e598d35c2..75ee4a5db3 100644 --- a/src/testdir/test_undo.vim +++ b/src/testdir/test_undo.vim @@ -884,4 +884,33 @@ func Test_undo_range_normal() bwipe! endfunc +func Test_load_existing_undofile() + CheckFeature persistent_undo + sp samples/test_undo.txt + let mess=execute(':verbose rundo samples/test_undo.txt.undo') + call assert_match('Finished reading undo file', mess) + + call assert_equal(['one', 'two', 'three'], getline(1, '$')) + norm! u + call assert_equal(['one', 'two'], getline(1, '$')) + norm! u + call assert_equal(['one'], getline(1, '$')) + norm! u + call assert_equal([''], getline(1, '$')) + let mess = execute(':norm! u') + call assert_equal([''], getline(1, '$')) + call assert_match('Already at oldest change', mess) + exe ":norm! \" + call assert_equal(['one'], getline(1, '$')) + exe ":norm! \" + call assert_equal(['one', 'two'], getline(1, '$')) + exe ":norm! \" + call assert_equal(['one', 'two', 'three'], getline(1, '$')) + let mess = execute(":norm! \") + call assert_equal(['one', 'two', 'three'], getline(1, '$')) + call assert_match('Already at newest change', mess) + bw! +endfunc + + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c index d5a7899d71..8c4afd0392 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 893, /**/ 892, /**/