[Orxonox-commit 1454] r6172 - code/branches/presentation2/src/libraries/core

scheusso at orxonox.net scheusso at orxonox.net
Fri Nov 27 12:42:38 CET 2009


Author: scheusso
Date: 2009-11-27 12:42:38 +0100 (Fri, 27 Nov 2009)
New Revision: 6172

Modified:
   code/branches/presentation2/src/libraries/core/IOConsole.cc
   code/branches/presentation2/src/libraries/core/IOConsole.h
Log:
actually i think it's nicer this way ;)


Modified: code/branches/presentation2/src/libraries/core/IOConsole.cc
===================================================================
--- code/branches/presentation2/src/libraries/core/IOConsole.cc	2009-11-27 11:30:29 UTC (rev 6171)
+++ code/branches/presentation2/src/libraries/core/IOConsole.cc	2009-11-27 11:42:38 UTC (rev 6172)
@@ -116,8 +116,6 @@
 
 namespace orxonox
 {
-    termios* IOConsole::originalTerminalSettings_s = 0;
-    
     namespace EscapeMode
     {
         enum Value
@@ -134,6 +132,7 @@
         , cout_(std::cout.rdbuf())
         , bStatusPrinted_(false)
         , promptString_("orxonox # ")
+        , originalTerminalSettings_(0)
     {
         this->setTerminalMode();
         this->shell_->registerListener(this);
@@ -368,10 +367,10 @@
     void IOConsole::setTerminalMode()
     {
         termios new_settings;
-        IOConsole::originalTerminalSettings_s = new termios();
+        this->originalTerminalSettings_ = new termios();
 
-        tcgetattr(0, this->originalTerminalSettings_s);
-        new_settings = *this->originalTerminalSettings_s;
+        tcgetattr(0, this->originalTerminalSettings_);
+        new_settings = *this->originalTerminalSettings_;
         new_settings.c_lflag &= ~(ICANON | ECHO);
         //new_settings.c_lflag |= (ISIG | IEXTEN);
         new_settings.c_cc[VTIME] = 0;
@@ -382,11 +381,11 @@
 
     /*static*/ void IOConsole::resetTerminalMode()
     {
-        if(IOConsole::originalTerminalSettings_s)
+        if(IOConsole::singletonPtr_s && IOConsole::singletonPtr_s->originalTerminalSettings_)
         {
-            tcsetattr(0, TCSANOW, IOConsole::originalTerminalSettings_s);
-            delete IOConsole::originalTerminalSettings_s;
-            IOConsole::originalTerminalSettings_s = 0;
+            tcsetattr(0, TCSANOW, IOConsole::singletonPtr_s->originalTerminalSettings_);
+            delete IOConsole::singletonPtr_s->originalTerminalSettings_;
+            IOConsole::singletonPtr_s->originalTerminalSettings_ = 0;
         }
     }
 

Modified: code/branches/presentation2/src/libraries/core/IOConsole.h
===================================================================
--- code/branches/presentation2/src/libraries/core/IOConsole.h	2009-11-27 11:30:29 UTC (rev 6171)
+++ code/branches/presentation2/src/libraries/core/IOConsole.h	2009-11-27 11:42:38 UTC (rev 6172)
@@ -92,7 +92,7 @@
         static const unsigned   minOutputLines_ = 3;
 
 #ifdef ORXONOX_PLATFORM_UNIX
-        static termios*         originalTerminalSettings_s;
+        termios*         originalTerminalSettings_;
 #elif defined(ORXONOX_PLATFORM_WINDOWS)
         void moveCursor(int dx, int dy);
         void moveCursorYAndHome(int dy);




More information about the Orxonox-commit mailing list