diff options
author | Bram Moolenaar <Bram@vim.org> | 2011-05-05 14:26:41 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2011-05-05 14:26:41 +0200 |
commit | 85de20665f3ed48345b79cd0920af41397544141 (patch) | |
tree | b98afef3eb7390370eb7fd46ab0bcedd712da5f4 | |
parent | 72bb0d64554d671deb70724774f2a93c2d17c407 (diff) | |
download | vim-git-85de20665f3ed48345b79cd0920af41397544141.tar.gz |
updated for version 7.3.171v7.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)
-rw-r--r-- | runtime/doc/change.txt | 6 | ||||
-rw-r--r-- | src/ex_docmd.c | 36 | ||||
-rw-r--r-- | src/globals.h | 3 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 34 insertions, 13 deletions
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt index fe518d150..6e5311145 100644 --- a/runtime/doc/change.txt +++ b/runtime/doc/change.txt @@ -917,8 +917,10 @@ inside of strings can change! Also see 'softtabstop' option. > {Visual}["x]Y Yank the highlighted lines [into register x] (for {Visual} see |Visual-mode|). {not in Vi} - *:y* *:yank* -:[range]y[ank] [x] Yank [range] lines [into register x]. + *:y* *:yank* *E850* +:[range]y[ank] [x] Yank [range] lines [into register x]. Yanking to the + "* or "+ registers is possible only in GUI versions or + when the |+xterm_clipboard| feature is included. :[range]y[ank] [x] {count} Yank {count} lines, starting with last line number diff --git a/src/ex_docmd.c b/src/ex_docmd.c index b67c00be5..d90e96442 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -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); + } } /* diff --git a/src/globals.h b/src/globals.h index 3685fc732..4b5544686 100644 --- a/src/globals.h +++ b/src/globals.h @@ -1561,6 +1561,9 @@ EXTERN char_u e_bufloaded[] INIT(= N_("E139: File is loaded in another buffer")) (defined(FEAT_INS_EXPAND) && defined(FEAT_COMPL_FUNC)) EXTERN char_u e_notset[] INIT(= N_("E764: Option '%s' is not set")); #endif +#ifndef FEAT_CLIPBOARD +EXTERN char_u e_invalidreg[] INIT(= N_("E850: Invalid register name")); +#endif #ifdef MACOS_X_UNIX EXTERN short disallow_gui INIT(= FALSE); diff --git a/src/version.c b/src/version.c index 51e2cf972..b99456a53 100644 --- a/src/version.c +++ b/src/version.c @@ -715,6 +715,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 171, +/**/ 170, /**/ 169, |