Changeset 5135 in orxonox.OLD for trunk/src/util/shell_command.cc
- Timestamp:
- Aug 26, 2005, 12:51:27 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/util/shell_command.cc
r5130 r5135 28 28 using namespace std; 29 29 30 ShellCommandBase::ShellCommandBase(const char* commandName, ClassID classID, void* functionPointer, unsigned int paramCount, va_list parameters)30 ShellCommandBase::ShellCommandBase(const char* commandName, ClassID classID, unsigned int paramCount, ...) 31 31 { 32 va_list parameters; 33 va_start(parameters, paramCount); 34 32 35 this->classID = classID; 33 this->functionPointer = functionPointer;34 36 this->commandName = new char[strlen(commandName)+1]; 35 37 strcpy(this->commandName, commandName); … … 37 39 // handling parameters, and storing them: 38 40 this->paramCount = paramCount; 39 this->parameters = new ShellParameterType[paramCount];41 this->parameters = new ParameterType[paramCount]; 40 42 41 43 for (unsigned int i = 0; i < paramCount; i++) … … 55 57 tList<ShellCommandBase>* ShellCommandBase::commandList = NULL; 56 58 57 bool ShellCommandBase::isRegistered(const char* commandName, ClassID classID, unsigned int paramCount, va_list parameters)59 bool ShellCommandBase::isRegistered(const char* commandName, ClassID classID, unsigned int paramCount, ...) 58 60 { 61 62 va_list parameters; 63 va_start(parameters, paramCount); 64 59 65 if (ShellCommandBase::commandList == NULL) 60 66 { … … 80 86 81 87 88 bool ShellCommandBase::execute(const char* executionString) 89 { 90 if (ShellCommandBase::commandList == NULL) 91 return false; 92 93 const char* commandEnd = strchr(executionString, ' '); 94 if (commandEnd == NULL) 95 commandEnd = executionString + strlen(executionString); 96 97 tIterator<ShellCommandBase>* iterator = ShellCommandBase::commandList->getIterator(); 98 ShellCommandBase* elem = iterator->firstElement(); 99 while(elem != NULL) 100 { 101 if (!strncmp(executionString, elem->commandName, commandEnd - executionString)) 102 { 103 elem->executeCommand(commandEnd); 104 delete iterator; 105 return true; 106 } 107 elem = iterator->nextElement(); 108 } 109 delete iterator; 110 return true; 111 } 112
Note: See TracChangeset
for help on using the changeset viewer.