-
- // Match the operation
- struct
- {
- const char *Match;
- bool (*Handler)(CommandLine &);
- } Map[] = {{"shell",&DoShell},
- {0,0}};
- int I;
- for (I = 0; Map[I].Match != 0; I++)
- {
- if (strcmp(CmdL.FileList[0],Map[I].Match) == 0)
- {
- if (Map[I].Handler(CmdL) == false && _error->PendingError() == false)
- _error->Error("Handler silently failed");
- break;
- }
- }
-
- // No matching name
- if (Map[I].Match == 0)
- _error->Error("Invalid operation %s", CmdL.FileList[0]);