diff options
author | James McCoy <jamessan@jamessan.com> | 2020-07-29 17:23:21 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-29 17:23:21 -0400 |
commit | 54ff1cdd76518d88d5e530afc56a9b8c2b7633be (patch) | |
tree | 5e379222facc46cf83cc1237d663c1d9d41c18a3 /src/nvim/mark.c | |
parent | 5f5bd576e5395ef0cd6198f16d10edc1ff4bbe76 (diff) | |
parent | e5e547ded4e7241f0c3afaf7f29f7e2a4409bd75 (diff) | |
download | rneovim-54ff1cdd76518d88d5e530afc56a9b8c2b7633be.tar.gz rneovim-54ff1cdd76518d88d5e530afc56a9b8c2b7633be.tar.bz2 rneovim-54ff1cdd76518d88d5e530afc56a9b8c2b7633be.zip |
Merge pull request #12685 from BigPeet/vim-patch-8.2.1252
vim-patch:8.2.1252
Diffstat (limited to 'src/nvim/mark.c')
-rw-r--r-- | src/nvim/mark.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/nvim/mark.c b/src/nvim/mark.c index fa7c7d61c9..1ecfae57ed 100644 --- a/src/nvim/mark.c +++ b/src/nvim/mark.c @@ -632,6 +632,7 @@ void ex_marks(exarg_T *eap) char_u *arg = eap->arg; int i; char_u *name; + pos_T *posp, *startp, *endp; if (arg != NULL && *arg == NUL) arg = NULL; @@ -657,8 +658,18 @@ void ex_marks(exarg_T *eap) show_one_mark(']', arg, &curbuf->b_op_end, NULL, true); show_one_mark('^', arg, &curbuf->b_last_insert.mark, NULL, true); show_one_mark('.', arg, &curbuf->b_last_change.mark, 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 the marks as where they will jump to. + startp = &curbuf->b_visual.vi_start; + endp = &curbuf->b_visual.vi_end; + if ((lt(*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); } |