X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=cli%2Fcli_main.cpp;h=1e278e41381d1d4860175a84b7b058369d338757;hb=cfb8a74451e3a4063b2e7638cfbb15ad6b533600;hp=cff6a05de111955323219d8575ba7400d955f174;hpb=2ae3c962d308ceb866f7478866cdcc85f50a987d;p=apitrace diff --git a/cli/cli_main.cpp b/cli/cli_main.cpp index cff6a05..1e278e4 100644 --- a/cli/cli_main.cpp +++ b/cli/cli_main.cpp @@ -70,13 +70,28 @@ static const Command * commands[] = { &diff_state_command, &diff_images_command, &dump_command, + &dump_images_command, &pickle_command, + &sed_command, &repack_command, + &retrace_command, &trace_command, &trim_command, &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) { @@ -149,6 +164,7 @@ main(int argc, char **argv) { const char *command_name; const Command *command; + const Alias *alias; int i; for (i = 1; i < argc; ++i) { @@ -184,6 +200,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";