diff options
author | Bram Moolenaar <Bram@vim.org> | 2008-11-01 12:52:38 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2008-11-01 12:52:38 +0000 |
commit | 9fd01c6ab861b70735ed15149e96646381364025 (patch) | |
tree | 8136580fbfa50fba7b9ffd81ac49d7d2efaa6e5e /src/normal.c | |
parent | d9205ca1fdc3a8ed6c1629eaddfefa061d898fec (diff) | |
download | vim-git-9fd01c6ab861b70735ed15149e96646381364025.tar.gz |
updated for version 7.2-026v7.2.026
Diffstat (limited to 'src/normal.c')
-rw-r--r-- | src/normal.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/normal.c b/src/normal.c index c1e630a33..d33a63674 100644 --- a/src/normal.c +++ b/src/normal.c @@ -183,6 +183,8 @@ static void nv_drop __ARGS((cmdarg_T *cap)); static void nv_cursorhold __ARGS((cmdarg_T *cap)); #endif +static char *e_noident = N_("E349: No identifier under cursor"); + /* * Function to be called for a Normal or Visual mode command. * The argument is a cmdarg_T. @@ -3510,7 +3512,7 @@ find_ident_at_pos(wp, lnum, startcol, string, find_type) if (find_type & FIND_STRING) EMSG(_("E348: No string under cursor")); else - EMSG(_("E349: No identifier under cursor")); + EMSG(_(e_noident)); return 0; } ptr += col; @@ -5472,8 +5474,17 @@ nv_ident(cap) { /* An external command will probably use an argument starting * with "-" as an option. To avoid trouble we skip the "-". */ - while (*ptr == '-') + while (*ptr == '-' && n > 0) + { ++ptr; + --n; + } + if (n == 0) + { + EMSG(_(e_noident)); /* found dashes only */ + vim_free(buf); + return; + } /* When a count is given, turn it into a range. Is this * really what we want? */ @@ -5520,7 +5531,9 @@ nv_ident(cap) if (cmdchar == 'K' && !kp_help) { /* Escape the argument properly for a shell command */ + ptr = vim_strnsave(ptr, n); p = vim_strsave_shellescape(ptr, TRUE); + vim_free(ptr); if (p == NULL) { vim_free(buf); |