diff options
| author | Björn Linse <bjorn.linse@gmail.com> | 2015-07-03 16:02:07 +0200 |
|---|---|---|
| committer | Björn Linse <bjorn.linse@gmail.com> | 2015-07-04 18:17:30 +0200 |
| commit | e9c9d44f6531b4d648c55c235ecf5753a50adf6f (patch) | |
| tree | ab8ded916132bcd4d9dfdcc05a083d22e79dc805 /src/nvim/normal.c | |
| parent | 0ffd51425e70525bdbc792a1c6592f807b84e212 (diff) | |
| download | rneovim-e9c9d44f6531b4d648c55c235ecf5753a50adf6f.tar.gz rneovim-e9c9d44f6531b4d648c55c235ecf5753a50adf6f.tar.bz2 rneovim-e9c9d44f6531b4d648c55c235ecf5753a50adf6f.zip | |
clipboard: don't overwrite before pasting in visual mode. #2945
This occured when clipboard=unnamedplus and doing "+p in visual mode.
Fixes #2942.
Diffstat (limited to 'src/nvim/normal.c')
| -rw-r--r-- | src/nvim/normal.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/nvim/normal.c b/src/nvim/normal.c index 7b42467184..92734e404a 100644 --- a/src/nvim/normal.c +++ b/src/nvim/normal.c @@ -7278,7 +7278,10 @@ static void nv_put(cmdarg_T *cap) */ was_visual = true; regname = cap->oap->regname; - if (regname == 0 || regname == '"' + // '+' and '*' could be the same selection + bool clipoverwrite = (regname == '+' || regname == '*') + && (cb_flags & CB_UNNAMEDMASK); + if (regname == 0 || regname == '"' || clipoverwrite || ascii_isdigit(regname) || regname == '-') { // The delete might overwrite the register we want to put, save it first savereg = copy_register(regname); |
