Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 8123 in orxonox.OLD


Ignore:
Timestamp:
Jun 2, 2006, 6:16:15 PM (18 years ago)
Author:
bensch
Message:

gui: better outputting in the ShellBuffer

Location:
branches/gui/src/lib/shell
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/gui/src/lib/shell/shell_buffer.cc

    r7764 r8123  
    4141  ShellBuffer* ShellBuffer::singletonRef = NULL;
    4242  std::list<std::string> ShellBuffer::buffer;
     43  char ShellBuffer::bufferArray[SHELL_BUFFER_SIZE];
     44
    4345
    4446  /**
     
    6466  bool ShellBuffer::addBufferLineStatic(const char* line, ...)
    6567  {
    66     va_list arguments;
    67     va_start(arguments, line);
    68 
    6968    static OrxThread::Mutex ShellBuffer__bufferMutex;
    7069
    7170    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
    7277#if DEBUG_LEVEL < 3
    7378    if (ShellBuffer::singletonRef == NULL)
    7479#endif
    75       vprintf(line, arguments);
     80      printf(ShellBuffer::bufferArray);
    7681#if DEBUG_LEVEL < 3
    7782    else
     
    7984    if (ShellBuffer::singletonRef != NULL)
    8085#endif
    81       ShellBuffer::singletonRef->addBufferLine(line, arguments);
     86      ShellBuffer::singletonRef->addBufferLine(ShellBuffer::bufferArray);
    8287    return true;
    8388  }
     
    9196   * and displays the line as the First Line of the display-buffer
    9297   */
    93   void ShellBuffer::addBufferLine(const char* line, va_list arguments)
     98  void ShellBuffer::addBufferLine(const char* line)
    9499  {
    95     // copy the output to the bufferArray
    96     vsprintf(this->bufferArray, line, arguments);
    97 
    98     std::string inputBuffer = this->keepBuffer + this->bufferArray;
     100    std::string inputBuffer = this->keepBuffer + line;
    99101
    100102    int lineBegin = 0;
  • branches/gui/src/lib/shell/shell_buffer.h

    r7762 r8123  
    3333
    3434    static bool addBufferLineStatic(const char* line, ...);
    35     void addBufferLine(const char* line, va_list arg);
     35    void addBufferLine(const char* line);
    3636
    3737    /// BUFFER
     
    5656    unsigned int                  maxBufferSize;                         //!< The Size of the buffer
    5757
    58     char                          bufferArray[SHELL_BUFFER_SIZE];     //!< a BUFFER for fast writing
    5958    std::string                   keepBuffer;                         //!< a BUFFER to have multi-non-newLine commands be copied into the shell.
    6059
     
    6261
    6362    // The Beginning of buffer (buffer.front()) is the last added line.
     63    static char                   bufferArray[SHELL_BUFFER_SIZE];     //!< a BUFFER for fast writing
    6464    static std::list<std::string> buffer;                             //!< A list of stored char-arrays(strings) to store the history
    6565  };
Note: See TracChangeset for help on using the changeset viewer.