diff options
Diffstat (limited to 'src/ex_docmd.c')
-rw-r--r-- | src/ex_docmd.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/ex_docmd.c b/src/ex_docmd.c index 67f505d960..aad818294e 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -2827,18 +2827,22 @@ parse_command_modifiers(exarg_T *eap, char_u **errormsg, int skip_only) case 't': if (checkforcmd(&p, "tab", 3)) { - long tabnr = get_address(eap, &eap->cmd, ADDR_TABS, - eap->skip, skip_only, FALSE, 1); - if (tabnr == MAXLNUM) - cmdmod.tab = tabpage_index(curtab) + 1; - else + if (!skip_only) { - if (tabnr < 0 || tabnr > LAST_TAB_NR) + long tabnr = get_address(eap, &eap->cmd, + ADDR_TABS, eap->skip, + skip_only, FALSE, 1); + if (tabnr == MAXLNUM) + cmdmod.tab = tabpage_index(curtab) + 1; + else { - *errormsg = (char_u *)_(e_invrange); - return FAIL; + if (tabnr < 0 || tabnr > LAST_TAB_NR) + { + *errormsg = (char_u *)_(e_invrange); + return FAIL; + } + cmdmod.tab = tabnr + 1; } - cmdmod.tab = tabnr + 1; } eap->cmd = p; continue; |