To: vim_dev@googlegroups.com Subject: Patch 8.2.1252 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.1252 Problem: ":marks" may show '< and '> mixed up. Solution: Show the mark position as where '< and '> would jump. Files: src/mark.c, src/testdir/test_marks.vim *** ../vim-8.2.1251/src/mark.c 2020-06-12 22:59:07.266097201 +0200 --- src/mark.c 2020-07-19 21:56:01.301553490 +0200 *************** *** 704,709 **** --- 704,710 ---- char_u *arg = eap->arg; int i; char_u *name; + pos_T *posp, *startp, *endp; if (arg != NULL && *arg == NUL) arg = NULL; *************** *** 731,738 **** show_one_mark(']', arg, &curbuf->b_op_end, NULL, TRUE); show_one_mark('^', arg, &curbuf->b_last_insert, NULL, TRUE); show_one_mark('.', arg, &curbuf->b_last_change, NULL, TRUE); ! show_one_mark('<', arg, &curbuf->b_visual.vi_start, NULL, TRUE); ! show_one_mark('>', arg, &curbuf->b_visual.vi_end, NULL, TRUE); show_one_mark(-1, arg, NULL, NULL, FALSE); } --- 732,748 ---- show_one_mark(']', arg, &curbuf->b_op_end, NULL, TRUE); show_one_mark('^', arg, &curbuf->b_last_insert, NULL, TRUE); show_one_mark('.', arg, &curbuf->b_last_change, NULL, TRUE); ! ! // Show the marks as where they will jump to. ! startp = &curbuf->b_visual.vi_start; ! endp = &curbuf->b_visual.vi_end; ! if ((LT_POS(*startp, *endp) || endp->lnum == 0) && startp->lnum != 0) ! posp = startp; ! else ! posp = endp; ! show_one_mark('<', arg, posp, NULL, TRUE); ! show_one_mark('>', arg, posp == startp ? endp : startp, NULL, TRUE); ! show_one_mark(-1, arg, NULL, NULL, FALSE); } *** ../vim-8.2.1251/src/testdir/test_marks.vim 2020-06-01 14:14:40.691899742 +0200 --- src/testdir/test_marks.vim 2020-07-19 22:05:44.020099610 +0200 *************** *** 105,137 **** new Xtwo call setline(1, ['ccc', 'ddd']) norm! $mcGmD w! b Xone let a = split(execute('marks'), "\n") call assert_equal(9, len(a)) ! call assert_equal('mark line col file/text', a[0]) ! call assert_equal(" ' 2 0 bbb", a[1]) ! call assert_equal(' a 1 0 aaa', a[2]) ! call assert_equal(' B 2 2 bbb', a[3]) ! call assert_equal(' D 2 0 Xtwo', a[4]) ! call assert_equal(' " 1 0 aaa', a[5]) ! call assert_equal(' [ 1 0 aaa', a[6]) ! call assert_equal(' ] 2 0 bbb', a[7]) ! call assert_equal(' . 2 0 bbb', a[8]) b Xtwo let a = split(execute('marks'), "\n") ! call assert_equal(9, len(a)) ! call assert_equal('mark line col file/text', a[0]) ! call assert_equal(" ' 1 0 ccc", a[1]) ! call assert_equal(' c 1 2 ccc', a[2]) ! call assert_equal(' B 2 2 Xone', a[3]) ! call assert_equal(' D 2 0 ddd', a[4]) ! call assert_equal(' " 2 0 ddd', a[5]) ! call assert_equal(' [ 1 0 ccc', a[6]) ! call assert_equal(' ] 2 0 ddd', a[7]) ! call assert_equal(' . 2 0 ddd', a[8]) b Xone delmarks aB --- 105,147 ---- new Xtwo call setline(1, ['ccc', 'ddd']) norm! $mcGmD + exe "norm! GVgg\G" w! b Xone let a = split(execute('marks'), "\n") call assert_equal(9, len(a)) ! call assert_equal(['mark line col file/text', ! \ " ' 2 0 bbb", ! \ ' a 1 0 aaa', ! \ ' B 2 2 bbb', ! \ ' D 2 0 Xtwo', ! \ ' " 1 0 aaa', ! \ ' [ 1 0 aaa', ! \ ' ] 2 0 bbb', ! \ ' . 2 0 bbb'], a) b Xtwo let a = split(execute('marks'), "\n") ! call assert_equal(11, len(a)) ! call assert_equal(['mark line col file/text', ! \ " ' 1 0 ccc", ! \ ' c 1 2 ccc', ! \ ' B 2 2 Xone', ! \ ' D 2 0 ddd', ! \ ' " 2 0 ddd', ! \ ' [ 1 0 ccc', ! \ ' ] 2 0 ddd', ! \ ' . 2 0 ddd', ! \ ' < 1 0 ccc', ! \ ' > 2 0 ddd'], a) ! norm! Gdd ! w! ! let a = split(execute('marks <>'), "\n") ! call assert_equal(3, len(a)) ! call assert_equal(['mark line col file/text', ! \ ' < 1 0 ccc', ! \ ' > 2 0 -invalid-'], a) b Xone delmarks aB *** ../vim-8.2.1251/src/version.c 2020-07-19 20:48:56.182995168 +0200 --- src/version.c 2020-07-19 21:57:31.281330304 +0200 *************** *** 756,757 **** --- 756,759 ---- { /* Add new patch number below this line */ + /**/ + 1252, /**/ -- The future isn't what it used to be. /// 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 ///