From 34dba3d7cd43b4797d60f636dc9c7c3040a56f3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Linse?= Date: Wed, 18 Mar 2015 23:43:49 +0100 Subject: [PATCH] clipboard: reallow `:put` --- src/nvim/.screen.c.swn | Bin 0 -> 16384 bytes src/nvim/ex_docmd.c | 15 +++++---------- .../clipboard/clipboard_provider_spec.lua | 16 ++++++++++++++++ 3 files changed, 21 insertions(+), 10 deletions(-) create mode 100644 src/nvim/.screen.c.swn diff --git a/src/nvim/.screen.c.swn b/src/nvim/.screen.c.swn new file mode 100644 index 0000000000000000000000000000000000000000..5b9fe1863075620f1dc243d3af0c326270eea79d GIT binary patch literal 16384 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 O@9ggr>gyM5%>V#Q_caRu literal 0 HcmV?d00001 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()