From ade96b23075d4be203fd6849a1f2e26e1be8e8b1 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Mon, 11 Feb 2013 14:56:15 -0800 Subject: [PATCH] cli: Add an alias mechanism and alias "retrace" to "replay" This allows any existing scripts calling "apitrace retrace" to continue to work. --- cli/cli_main.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/cli/cli_main.cpp b/cli/cli_main.cpp index 040adcf..d6db619 100644 --- a/cli/cli_main.cpp +++ b/cli/cli_main.cpp @@ -79,6 +79,18 @@ static const Command * commands[] = { &help_command }; +/* Aliases provide a mechanism to allow compatibility with old command + * names (such as "retrace") for current commands (such as the replay + * command). */ +typedef struct { + const char *name; + const Command *command; +} Alias; + +static const Alias aliases[] = { + { "retrace", &retrace_command } +}; + static void usage(void) { @@ -151,6 +163,7 @@ main(int argc, char **argv) { const char *command_name; const Command *command; + const Alias *alias; int i; for (i = 1; i < argc; ++i) { @@ -186,6 +199,13 @@ main(int argc, char **argv) return (command->function) (argc, argv); } + for (i = 0; i < ARRAY_SIZE(aliases); i++) { + alias = &aliases[i]; + + if (strcmp(command_name, alias->name) == 0) + return (alias->command->function) (argc, argv); + } + std::cerr << "Error: unknown command " << command_name << " (see \"apitrace help\").\n"; -- 2.43.0