mirror of
https://github.com/tmate-io/tmate.git
synced 2024-11-23 16:43:11 +01:00
Don't let ambiguous commands override an exact alias match: eg if commands
"abc-1", "abc-2", "abc-3" exist and "abc-3" has the alias "abc", "tmux abc" should execute abc-3, not complain about the command being ambiguous. Not a problem at the moment but will be soon.
This commit is contained in:
parent
923ccfa2e8
commit
b4efd1ca89
7
cmd.c
7
cmd.c
@ -105,7 +105,7 @@ cmd_parse(int argc, char **argv, char **cause)
|
||||
const struct cmd_entry **entryp, *entry;
|
||||
struct cmd *cmd;
|
||||
char s[BUFSIZ];
|
||||
int opt;
|
||||
int opt, ambiguous = 0;
|
||||
|
||||
*cause = NULL;
|
||||
if (argc == 0) {
|
||||
@ -117,6 +117,7 @@ cmd_parse(int argc, char **argv, char **cause)
|
||||
for (entryp = cmd_table; *entryp != NULL; entryp++) {
|
||||
if ((*entryp)->alias != NULL &&
|
||||
strcmp((*entryp)->alias, argv[0]) == 0) {
|
||||
ambiguous = 0;
|
||||
entry = *entryp;
|
||||
break;
|
||||
}
|
||||
@ -124,13 +125,15 @@ cmd_parse(int argc, char **argv, char **cause)
|
||||
if (strncmp((*entryp)->name, argv[0], strlen(argv[0])) != 0)
|
||||
continue;
|
||||
if (entry != NULL)
|
||||
goto ambiguous;
|
||||
ambiguous = 1;
|
||||
entry = *entryp;
|
||||
|
||||
/* Bail now if an exact match. */
|
||||
if (strcmp(entry->name, argv[0]) == 0)
|
||||
break;
|
||||
}
|
||||
if (ambiguous)
|
||||
goto ambiguous;
|
||||
if (entry == NULL) {
|
||||
xasprintf(cause, "unknown command: %s", argv[0]);
|
||||
return (NULL);
|
||||
|
Loading…
Reference in New Issue
Block a user