To: vim_dev@googlegroups.com Subject: Patch 8.2.1295 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.1295 Problem: Tests 44 and 99 are old style. Solution: Convert to new style tests. (Yegappan Lakshmanan, closes #6536) Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms, src/testdir/test44.in, src/testdir/test44.ok, src/testdir/test99.in, src/testdir/test99.ok, src/testdir/test_regexp_utf8.vim *** ../vim-8.2.1294/src/Makefile 2020-07-22 19:10:59.877072059 +0200 --- src/Makefile 2020-07-26 12:49:10.577709777 +0200 *************** *** 2311,2320 **** # Run individual OLD style test. # These do not depend on the executable, compile it when needed. test1 \ ! test42 test44 test49 \ test52 test59 \ ! test70 \ ! test99: cd testdir; rm -f $@.out; $(MAKE) -f Makefile $@.out VIMPROG=../$(VIMTESTTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE) # Run individual NEW style test. --- 2311,2319 ---- # Run individual OLD style test. # These do not depend on the executable, compile it when needed. test1 \ ! test42 test49 \ test52 test59 \ ! test70: cd testdir; rm -f $@.out; $(MAKE) -f Makefile $@.out VIMPROG=../$(VIMTESTTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE) # Run individual NEW style test. *** ../vim-8.2.1294/src/testdir/Make_all.mak 2020-07-11 13:09:17.377971831 +0200 --- src/testdir/Make_all.mak 2020-07-26 12:49:10.577709777 +0200 *************** *** 14,22 **** # Tests that run on all systems. SCRIPTS_ALL = \ test42.out \ ! test44.out \ ! test70.out \ ! test99.out # Tests that run on most systems, but not on Amiga. SCRIPTS_MORE1 = \ --- 14,20 ---- # Tests that run on all systems. SCRIPTS_ALL = \ test42.out \ ! test70.out # Tests that run on most systems, but not on Amiga. SCRIPTS_MORE1 = \ *** ../vim-8.2.1294/src/testdir/Make_vms.mms 2020-07-03 21:17:31.339914463 +0200 --- src/testdir/Make_vms.mms 2020-07-26 12:49:10.577709777 +0200 *************** *** 74,80 **** .SUFFIXES : .out .in SCRIPT = test1.out \ ! test42.out test44.out test49.out test77a.out test99.out # Known problems: # --- 74,80 ---- .SUFFIXES : .out .in SCRIPT = test1.out \ ! test42.out test49.out test77a.out # Known problems: # *** ../vim-8.2.1294/src/testdir/test44.in 2016-04-03 14:07:56.000000000 +0200 --- src/testdir/test44.in 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,81 **** - Tests for regexp with multi-byte encoding and various magic settings. - Test matchstr() with a count and multi-byte chars. - See test99 for exactly the same test with re=2. - - STARTTEST - :so mbyte.vim - :set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo - :set re=1 - /^1 - /a*b\{2}c\+/e - x/\Md\*e\{2}f\+/e - x:set nomagic - /g\*h\{2}i\+/e - x/\mj*k\{2}l\+/e - x/\vm*n{2}o+/e - x/\V^aa$ - x:set magic - /\v(a)(b)\2\1\1/e - x/\V[ab]\(\[xy]\)\1 - x:" Now search for multi-byte without composing char - /ม - x:" Now search for multi-byte with composing char - /ม่ - x:" find word by change of word class - /ち\<カヨ\>は - x:" Test \%u, [\u] and friends - :" c - /\%u20ac - x:" d - /[\u4f7f\u5929]\+ - x:" e - /\%U12345678 - x:" f - /[\U1234abcd\u1234\uabcd] - x:" g - /\%d21879b - x:" j Test backwards search from a multi-byte char - /x - x?. - x:" k - :let @w=':%s#comb[i]nations#œ̄ṣ́m̥̄ᾱ̆́#g' - :@w - :" - :" l Test what 7.3.192 fixed - /^l - :s/ \?/ /g - :?^1?,$w! test.out - :e! test.out - G:put =matchstr(\"אבגד\", \".\", 0, 2) " ב - :put =matchstr(\"אבגד\", \"..\", 0, 2) " בג - :put =matchstr(\"אבגד\", \".\", 0, 0) " א - :put =matchstr(\"אבגד\", \".\", 4, -1) " ג - :new - :$put =['dog(a', 'cat('] - /(/e+ - "ayn:bd! - :$put ='' - G"ap - :w! - :qa! - ENDTEST - - 1 a aa abb abbccc - 2 d dd dee deefff - 3 g gg ghh ghhiii - 4 j jj jkk jkklll - 5 m mm mnn mnnooo - 6 x ^aa$ x - 7 (a)(b) abbaa - 8 axx [ab]xx - 9 หม่x อมx - a อมx หม่x - b ちカヨは - c x ¬€x - d 天使x - e y - f z - g a啷bb - j 0123❤x - k combinations - l äö üᾱ̆́ --- 0 ---- *** ../vim-8.2.1294/src/testdir/test44.ok 2016-04-03 14:08:06.000000000 +0200 --- src/testdir/test44.ok 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,25 **** - 1 a aa abb abbcc - 2 d dd dee deeff - 3 g gg ghh ghhii - 4 j jj jkk jkkll - 5 m mm mnn mnnoo - 6 x aa$ x - 7 (a)(b) abba - 8 axx ab]xx - 9 หม่x อx - a อมx หx - b カヨは - c x ¬x - d 使x - e y - f z - g abb - j 012❤ - k œ̄ṣ́m̥̄ᾱ̆́ - l ä ö ü ᾱ̆́ - ב - בג - א - ג - a - cat( --- 0 ---- *** ../vim-8.2.1294/src/testdir/test99.in 2016-04-03 14:06:03.000000000 +0200 --- src/testdir/test99.in 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,69 **** - Tests for regexp with multi-byte encoding and various magic settings. - Test matchstr() with a count and multi-byte chars. - See test44 for exactly the same test with re=1. - - STARTTEST - :so mbyte.vim - :set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo - :set re=2 - /^1 - /a*b\{2}c\+/e - x/\Md\*e\{2}f\+/e - x:set nomagic - /g\*h\{2}i\+/e - x/\mj*k\{2}l\+/e - x/\vm*n{2}o+/e - x/\V^aa$ - x:set magic - /\v(a)(b)\2\1\1/e - x/\V[ab]\(\[xy]\)\1 - x:" Now search for multi-byte without composing char - /ม - x:" Now search for multi-byte with composing char - /ม่ - x:" find word by change of word class - /ち\<カヨ\>は - x:" Test \%u, [\u] and friends - /\%u20ac - x/[\u4f7f\u5929]\+ - x/\%U12345678 - x/[\U1234abcd\u1234\uabcd] - x/\%d21879b - x:" Test backwards search from a multi-byte char - /x - x?. - x:let @w=':%s#comb[i]nations#œ̄ṣ́m̥̄ᾱ̆́#g' - :@w - :" - :" l Test what 7.3.192 fixed - /^l - :s/ \?/ /g - :?^1?,$w! test.out - :e! test.out - G:put =matchstr(\"אבגד\", \".\", 0, 2) " ב - :put =matchstr(\"אבגד\", \"..\", 0, 2) " בג - :put =matchstr(\"אבגד\", \".\", 0, 0) " א - :put =matchstr(\"אבגד\", \".\", 4, -1) " ג - :w! - :qa! - ENDTEST - - 1 a aa abb abbccc - 2 d dd dee deefff - 3 g gg ghh ghhiii - 4 j jj jkk jkklll - 5 m mm mnn mnnooo - 6 x ^aa$ x - 7 (a)(b) abbaa - 8 axx [ab]xx - 9 หม่x อมx - a อมx หม่x - b ちカヨは - c x ¬€x - d 天使x - e y - f z - g a啷bb - j 0123❤x - k combinations - l äö üᾱ̆́ --- 0 ---- *** ../vim-8.2.1294/src/testdir/test99.ok 2016-04-03 14:07:07.000000000 +0200 --- src/testdir/test99.ok 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,23 **** - 1 a aa abb abbcc - 2 d dd dee deeff - 3 g gg ghh ghhii - 4 j jj jkk jkkll - 5 m mm mnn mnnoo - 6 x aa$ x - 7 (a)(b) abba - 8 axx ab]xx - 9 หม่x อx - a อมx หx - b カヨは - c x ¬x - d 使x - e y - f z - g abb - j 012❤ - k œ̄ṣ́m̥̄ᾱ̆́ - l ä ö ü ᾱ̆́ - ב - בג - א - ג --- 0 ---- *** ../vim-8.2.1294/src/testdir/test_regexp_utf8.vim 2020-07-20 21:21:26.950936122 +0200 --- src/testdir/test_regexp_utf8.vim 2020-07-26 12:49:10.581709760 +0200 *************** *** 377,380 **** --- 377,504 ---- set regexpengine& endfunc + " Tests for regexp with multi-byte encoding and various magic settings + func Run_regexp_multibyte_magic() + let text =<< trim END + 1 a aa abb abbccc + 2 d dd dee deefff + 3 g gg ghh ghhiii + 4 j jj jkk jkklll + 5 m mm mnn mnnooo + 6 x ^aa$ x + 7 (a)(b) abbaa + 8 axx [ab]xx + 9 หม่x อมx + a อมx หม่x + b ちカヨは + c x ¬€x + d 天使x + e y + f z + g a啷bb + j 0123❤x + k combinations + l äö üᾱ̆́ + END + + new + call setline(1, text) + exe 'normal /a*b\{2}c\+/e' .. "\x" + call assert_equal('1 a aa abb abbcc', getline('.')) + exe 'normal /\Md\*e\{2}f\+/e' .. "\x" + call assert_equal('2 d dd dee deeff', getline('.')) + set nomagic + exe 'normal /g\*h\{2}i\+/e' .. "\x" + call assert_equal('3 g gg ghh ghhii', getline('.')) + exe 'normal /\mj*k\{2}l\+/e' .. "\x" + call assert_equal('4 j jj jkk jkkll', getline('.')) + exe 'normal /\vm*n{2}o+/e' .. "\x" + call assert_equal('5 m mm mnn mnnoo', getline('.')) + exe 'normal /\V^aa$/' .. "\x" + call assert_equal('6 x aa$ x', getline('.')) + set magic + exe 'normal /\v(a)(b)\2\1\1/e' .. "\x" + call assert_equal('7 (a)(b) abba', getline('.')) + exe 'normal /\V[ab]\(\[xy]\)\1' .. "\x" + call assert_equal('8 axx ab]xx', getline('.')) + + " search for multi-byte without composing char + exe 'normal /ม' .. "\x" + call assert_equal('9 หม่x อx', getline('.')) + + " search for multi-byte with composing char + exe 'normal /ม่' .. "\x" + call assert_equal('a อมx หx', getline('.')) + + " find word by change of word class + exe 'normal /ち\<カヨ\>は' .. "\x" + call assert_equal('b カヨは', getline('.')) + + " Test \%u, [\u] and friends + " c + exe 'normal /\%u20ac' .. "\x" + call assert_equal('c x ¬x', getline('.')) + " d + exe 'normal /[\u4f7f\u5929]\+' .. "\x" + call assert_equal('d 使x', getline('.')) + " e + exe 'normal /\%U12345678' .. "\x" + call assert_equal('e y', getline('.')) + " f + exe 'normal /[\U1234abcd\u1234\uabcd]' .. "\x" + call assert_equal('f z', getline('.')) + " g + exe 'normal /\%d21879b' .. "\x" + call assert_equal('g abb', getline('.')) + + " j Test backwards search from a multi-byte char + exe "normal /x\x?.\x" + call assert_equal('j 012❤', getline('.')) + " k + let @w=':%s#comb[i]nations#œ̄ṣ́m̥̄ᾱ̆́#g' + @w + call assert_equal('k œ̄ṣ́m̥̄ᾱ̆́', getline(18)) + + close! + endfunc + + func Test_regexp_multibyte_magic() + set regexpengine=1 + call Run_regexp_multibyte_magic() + set regexpengine=2 + call Run_regexp_multibyte_magic() + set regexpengine& + endfunc + + " Test for 7.3.192 + " command ":s/ \?/ /g" splits multi-byte characters into bytes + func Test_split_multibyte_to_bytes() + new + call setline(1, 'l äö üᾱ̆́') + s/ \?/ /g + call assert_equal(' l ä ö ü ᾱ̆́', getline(1)) + close! + endfunc + + " Test for matchstr() with multibyte characters + func Test_matchstr_multibyte() + new + call assert_equal('ב', matchstr("אבגד", ".", 0, 2)) + call assert_equal('בג', matchstr("אבגד", "..", 0, 2)) + call assert_equal('א', matchstr("אבגד", ".", 0, 0)) + call assert_equal('ג', matchstr("אבגד", ".", 4, -1)) + close! + endfunc + + " Test for 7.4.636 + " A search with end offset gets stuck at end of file. + func Test_search_with_end_offset() + new + call setline(1, ['', 'dog(a', 'cat(']) + exe "normal /(/e+" .. "\" + normal "ayn + call assert_equal("a\ncat(", @a) + close! + endfunc + " vim: shiftwidth=2 sts=2 expandtab *** ../vim-8.2.1294/src/version.c 2020-07-25 19:38:13.329572365 +0200 --- src/version.c 2020-07-26 12:51:40.913047405 +0200 *************** *** 756,757 **** --- 756,759 ---- { /* Add new patch number below this line */ + /**/ + 1295, /**/ -- From "know your smileys": y:-) Bad toupee /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///