Coverity: Core module errors fixed
[scilab.git] / scilab / modules / core / includes / timer.hxx
index 769b799..dbdea1b 100644 (file)
@@ -2,11 +2,14 @@
  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  *  Copyright (C) 2008-2008 - DIGITEO - Bruno JOFRET
  *
- *  This file must be used under the terms of the CeCILL.
- *  This source file is licensed as described in the file COPYING, which
- *  you should have received as part of this distribution.  The terms
- *  are also available at
- *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ *
+ * This file is hereby licensed under the terms of the GNU GPL v2.0,
+ * pursuant to article 5.3.4 of the CeCILL v.2.1.
+ * This file was originally licensed under the terms of the CeCILL v2.1,
+ * and continues to be available under such terms.
+ * For more information, see the COPYING file which you should have received
+ * along with this program.
  *
  */
 
@@ -16,8 +19,9 @@
 #ifndef _MSC_VER
 #include <sys/time.h>
 #else
+#define NOMINMAX
 #include <windows.h>
-//#include <winbase.h>
+#undef NOMINMAX
 #endif
 #include <iostream>
 #include <iomanip>
@@ -89,12 +93,12 @@ public:
     // Start a timer.  If it is already running, let it continue running.
     // Print an optional message.
 
-    inline void start(const char* msg = 0)
+    inline void start(const std::wstring _msg = std::wstring(L""))
     {
         // Print an optional message, something like "Starting timer t";
-        if (msg)
+        if (_msg.empty() == false)
         {
-            std::cerr << msg << std::endl;
+            std::wcerr << _msg << std::endl;
         }
 #ifndef _MSC_VER
         // FIXME : Tonio
@@ -120,19 +124,22 @@ public:
     //===========================================================================
     // Print out an optional message followed by the current timer timing.
 
-    inline double check(const char* msg, bool _bRestart = false)
+    inline double check(const std::wstring& _msg, bool _bRestart = false)
     {
         // Print an optional message, something like "Checking timer t";
         double t = elapsed_time();
-        if (msg)
+        std::streamsize ss = std::cout.precision();
+        if (_msg.empty() == false)
         {
-            std::cerr << "[" << msg << "]" << " : ";
+            std::wcerr << L"[" << _msg << L"]" << L" : ";
         }
-        std::cerr << "Elapsed time ["
-                  << std::setiosflags(std::ios::fixed)
-                  << std::setprecision(3)
-                  << t << "] milliseconds"
-                  << std::endl;
+        std::wcerr << L"Elapsed time ["
+                   << std::setiosflags(std::ios::fixed)
+                   << std::setprecision(3)
+                   << t
+                   << std::setprecision(ss)
+                   << L"] milliseconds"
+                   << std::endl;
 
         if (_bRestart == true)
         {
@@ -148,7 +155,7 @@ public:
 // for an ostream 'os' and a timer 't'.  For example, "cout << t" will
 // print out the total amount of time 't' has been "running".
 
-inline std::ostream& operator<<(std::ostream& os, Timer& t)
+inline std::wostream& operator<<(std::wostream& os, Timer& t)
 {
     os << std::setprecision(3)
        << std::setiosflags(std::ios::fixed)