diff options
| -rw-r--r-- | src/nvim/.screen.c.swn | bin | 0 -> 16384 bytes | |||
| -rw-r--r-- | src/nvim/ex_docmd.c | 15 | ||||
| -rw-r--r-- | test/functional/clipboard/clipboard_provider_spec.lua | 16 | 
3 files changed, 21 insertions, 10 deletions
| diff --git a/src/nvim/.screen.c.swn b/src/nvim/.screen.c.swnBinary files differ new file mode 100644 index 0000000000..5b9fe18630 --- /dev/null +++ b/src/nvim/.screen.c.swn diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c index db4f3a54f1..cf22477dc9 100644 --- a/src/nvim/ex_docmd.c +++ b/src/nvim/ex_docmd.c @@ -1699,16 +1699,11 @@ static char_u * do_one_cmd(char_u **cmdlinep,    }    /* accept numbered register only when no count allowed (:put) */ -  if (       (ea.argt & REGSTR) -             && *ea.arg != NUL -             /* Do not allow register = for user commands */ -             && (!IS_USER_CMDIDX(ea.cmdidx) || *ea.arg != '=') -             && !((ea.argt & COUNT) && VIM_ISDIGIT(*ea.arg))) { -    /* check these explicitly for a more specific error message */ -    if (*ea.arg == '*' || *ea.arg == '+') { -      errormsg = (char_u *)_(e_invalidreg); -      goto doend; -    } +  if ((ea.argt & REGSTR) +      && *ea.arg != NUL +      /* Do not allow register = for user commands */ +      && (!IS_USER_CMDIDX(ea.cmdidx) || *ea.arg != '=') +      && !((ea.argt & COUNT) && VIM_ISDIGIT(*ea.arg))) {      if (valid_yank_reg(*ea.arg, (ea.cmdidx != CMD_put                                   && !IS_USER_CMDIDX(ea.cmdidx)))) {        ea.regname = *ea.arg++; diff --git a/test/functional/clipboard/clipboard_provider_spec.lua b/test/functional/clipboard/clipboard_provider_spec.lua index c1c56c94c1..f1e011f12d 100644 --- a/test/functional/clipboard/clipboard_provider_spec.lua +++ b/test/functional/clipboard/clipboard_provider_spec.lua @@ -160,6 +160,22 @@ describe('clipboard usage', function()        linewise stuff]])    end) +  it('supports :put', function() +    insert("a line") +    execute("let g:test_clip['*'] = ['some text']") +    execute("let g:test_clip['+'] = ['more', 'text', '']") +    execute(":put *") +    expect([[ +    a line +    some text]]) +    execute(":put +") +    expect([[ +    a line +    some text +    more +    text]]) +  end) +    it('supports "+ and "* in registers', function()      local screen = Screen.new(60, 10)      screen:attach() | 
