mirror of
https://github.com/neovim/neovim.git
synced 2025-09-19 01:38:16 +00:00
@@ -5186,11 +5186,13 @@ static void ex_command(exarg_T *eap)
|
||||
p = skipwhite(end);
|
||||
}
|
||||
|
||||
/* Get the name (if any) and skip to the following argument */
|
||||
// Get the name (if any) and skip to the following argument.
|
||||
name = p;
|
||||
if (ASCII_ISALPHA(*p))
|
||||
while (ASCII_ISALNUM(*p))
|
||||
++p;
|
||||
if (ASCII_ISALPHA(*p)) {
|
||||
while (ASCII_ISALNUM(*p)) {
|
||||
p++;
|
||||
}
|
||||
}
|
||||
if (!ends_excmd(*p) && !ascii_iswhite(*p)) {
|
||||
EMSG(_("E182: Invalid command name"));
|
||||
return;
|
||||
@@ -5208,8 +5210,7 @@ static void ex_command(exarg_T *eap)
|
||||
EMSG(_("E183: User defined commands must start with an uppercase letter"));
|
||||
return;
|
||||
} else if ((name_len == 1 && *name == 'X')
|
||||
|| (name_len <= 4
|
||||
&& STRNCMP(name, "Next", name_len > 4 ? 4 : name_len) == 0)) {
|
||||
|| (name_len <= 4 && STRNCMP(name, "Next", name_len) == 0)) {
|
||||
EMSG(_("E841: Reserved name, cannot be used for user defined command"));
|
||||
return;
|
||||
} else
|
||||
@@ -5673,22 +5674,21 @@ static void do_ucmd(exarg_T *eap)
|
||||
if (start != NULL)
|
||||
end = vim_strchr(start + 1, '>');
|
||||
if (buf != NULL) {
|
||||
for (ksp = p; *ksp != NUL && *ksp != K_SPECIAL; ++ksp)
|
||||
;
|
||||
for (ksp = p; *ksp != NUL && *ksp != K_SPECIAL; ksp++) {
|
||||
}
|
||||
if (*ksp == K_SPECIAL
|
||||
&& (start == NULL || ksp < start || end == NULL)
|
||||
&& ((ksp[1] == KS_SPECIAL && ksp[2] == KE_FILLER)
|
||||
)) {
|
||||
/* K_SPECIAL has been put in the buffer as K_SPECIAL
|
||||
* KS_SPECIAL KE_FILLER, like for mappings, but
|
||||
* do_cmdline() doesn't handle that, so convert it back.
|
||||
* Also change K_SPECIAL KS_EXTRA KE_CSI into CSI. */
|
||||
&& (ksp[1] == KS_SPECIAL && ksp[2] == KE_FILLER)) {
|
||||
// K_SPECIAL has been put in the buffer as K_SPECIAL
|
||||
// KS_SPECIAL KE_FILLER, like for mappings, but
|
||||
// do_cmdline() doesn't handle that, so convert it back.
|
||||
// Also change K_SPECIAL KS_EXTRA KE_CSI into CSI.
|
||||
len = ksp - p;
|
||||
if (len > 0) {
|
||||
memmove(q, p, len);
|
||||
q += len;
|
||||
}
|
||||
*q++ = ksp[1] == KS_SPECIAL ? K_SPECIAL : CSI;
|
||||
*q++ = K_SPECIAL;
|
||||
p = ksp + 3;
|
||||
continue;
|
||||
}
|
||||
|
Reference in New Issue
Block a user