1
0
forked from aniani/vim

updated for version 7.3.171

Problem:    When the clipboard isn't supported: ":yank*" gives a confusing
            error message.
Solution:   Specifically mention that the register name is invalid.
            (Jean-Rene David)
This commit is contained in:
Bram Moolenaar
2011-05-05 14:26:41 +02:00
parent 72bb0d6455
commit 85de20665f
4 changed files with 34 additions and 13 deletions

View File

@@ -2424,25 +2424,39 @@ do_one_cmd(cmdlinep, sourcing,
if ( (ea.argt & REGSTR)
&& *ea.arg != NUL
#ifdef FEAT_USR_CMDS
&& valid_yank_reg(*ea.arg, (ea.cmdidx != CMD_put
&& USER_CMDIDX(ea.cmdidx)))
/* Do not allow register = for user commands */
&& (!USER_CMDIDX(ea.cmdidx) || *ea.arg != '=')
#else
&& valid_yank_reg(*ea.arg, ea.cmdidx != CMD_put)
#endif
&& !((ea.argt & COUNT) && VIM_ISDIGIT(*ea.arg)))
{
ea.regname = *ea.arg++;
#ifdef FEAT_EVAL
/* for '=' register: accept the rest of the line as an expression */
if (ea.arg[-1] == '=' && ea.arg[0] != NUL)
#ifndef FEAT_CLIPBOARD
/* check these explicitly for a more specific error message */
if (*ea.arg == '*' || *ea.arg == '+')
{
set_expr_line(vim_strsave(ea.arg));
ea.arg += STRLEN(ea.arg);
errormsg = (char_u *)_(e_invalidreg);
goto doend;
}
#endif
ea.arg = skipwhite(ea.arg);
if (
#ifdef FEAT_USR_CMDS
valid_yank_reg(*ea.arg, (ea.cmdidx != CMD_put
&& USER_CMDIDX(ea.cmdidx)))
#else
valid_yank_reg(*ea.arg, ea.cmdidx != CMD_put)
#endif
)
{
ea.regname = *ea.arg++;
#ifdef FEAT_EVAL
/* for '=' register: accept the rest of the line as an expression */
if (ea.arg[-1] == '=' && ea.arg[0] != NUL)
{
set_expr_line(vim_strsave(ea.arg));
ea.arg += STRLEN(ea.arg);
}
#endif
ea.arg = skipwhite(ea.arg);
}
}
/*