Changeset 8145 in orxonox.OLD for trunk/src/lib/shell
- Timestamp:
- Jun 5, 2006, 11:49:26 AM (19 years ago)
- Location:
- trunk/src/lib/shell
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/lib/shell/shell_buffer.cc
r7764 r8145 41 41 ShellBuffer* ShellBuffer::singletonRef = NULL; 42 42 std::list<std::string> ShellBuffer::buffer; 43 char ShellBuffer::bufferArray[SHELL_BUFFER_SIZE]; 44 43 45 44 46 /** … … 62 64 * @param line the Line as in the first argument in printf 63 65 */ 64 boolShellBuffer::addBufferLineStatic(const char* line, ...)66 void ShellBuffer::addBufferLineStatic(const char* line, ...) 65 67 { 66 va_list arguments;67 va_start(arguments, line);68 69 68 static OrxThread::Mutex ShellBuffer__bufferMutex; 70 69 71 70 OrxThread::MutexLock bufferLock(&ShellBuffer__bufferMutex); 71 72 va_list arguments; 73 va_start(arguments, line); 74 vsnprintf(ShellBuffer::bufferArray, SHELL_BUFFER_SIZE, line, arguments); 75 va_end(arguments); 76 72 77 #if DEBUG_LEVEL < 3 73 78 if (ShellBuffer::singletonRef == NULL) 74 79 #endif 75 vprintf(line, arguments);80 printf(ShellBuffer::bufferArray); 76 81 #if DEBUG_LEVEL < 3 77 82 else … … 79 84 if (ShellBuffer::singletonRef != NULL) 80 85 #endif 81 ShellBuffer::singletonRef->addBufferLine(line, arguments); 82 return true; 86 ShellBuffer::singletonRef->addBufferLine(ShellBuffer::bufferArray); 83 87 } 84 88 … … 91 95 * and displays the line as the First Line of the display-buffer 92 96 */ 93 void ShellBuffer::addBufferLine(const char* line , va_list arguments)97 void ShellBuffer::addBufferLine(const char* line) 94 98 { 95 // copy the output to the bufferArray 96 vsprintf(this->bufferArray, line, arguments); 97 98 std::string inputBuffer = this->keepBuffer + this->bufferArray; 99 std::string inputBuffer = this->keepBuffer + line; 99 100 100 101 int lineBegin = 0; -
trunk/src/lib/shell/shell_buffer.h
r7762 r8145 32 32 inline static bool isInstanciated() { return (ShellBuffer::singletonRef == NULL)?false:true; }; 33 33 34 static booladdBufferLineStatic(const char* line, ...);35 void addBufferLine(const char* line , va_list arg);34 static void addBufferLineStatic(const char* line, ...); 35 void addBufferLine(const char* line); 36 36 37 37 /// BUFFER … … 56 56 unsigned int maxBufferSize; //!< The Size of the buffer 57 57 58 char bufferArray[SHELL_BUFFER_SIZE]; //!< a BUFFER for fast writing59 58 std::string keepBuffer; //!< a BUFFER to have multi-non-newLine commands be copied into the shell. 60 59 … … 62 61 63 62 // The Beginning of buffer (buffer.front()) is the last added line. 63 static char bufferArray[SHELL_BUFFER_SIZE]; //!< a BUFFER for fast writing 64 64 static std::list<std::string> buffer; //!< A list of stored char-arrays(strings) to store the history 65 65 }; -
trunk/src/lib/shell/shell_command.h
r7742 r8145 34 34 * $ ClassName [ObjectName] commandNameInShell [parameters] 35 35 */ 36 //#define SHELL_COMMAND(command, class, function) \37 // ShellCommand* shell_command_##class##_##command = ShellCommand<class>::registerCommand(#command, #class, &class::function)38 36 #define SHELL_COMMAND(command, class, function) \ 39 37 OrxShell::ShellCommand* shell_command_##class##_##command = OrxShell::ShellCommand::registerCommand(#command, #class, createExecutor<class>(&class::function))
Note: See TracChangeset
for help on using the changeset viewer.