Salome HOME
Fix typos by Kunda
[modules/kernel.git] / src / Basics / Basics_Utils.cxx
index 77eaacc1962a41feb31412974193eead9eccebee..0487829cb9aabe886b0db760dbb0ca037e3bb8cc 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -18,7 +18,7 @@
 //
 
 //  File   : Basics_Utils.cxx
-//  Autor  : Alexander A. BORODIN
+//  Author  : Alexander A. BORODIN
 //  Module : SALOME
 //
 
@@ -35,6 +35,7 @@
 
 namespace Kernel_Utils
 {
+  // threadsafe
   std::string GetHostname()
   {
     int ls = 100, r = 1;
@@ -44,7 +45,7 @@ namespace Kernel_Utils
       {
         ls *= 2;
         s = new char[ls];
-        r = gethostname(s, ls-1);
+        r = gethostname(s, ls-1);//threadsafe see man 7 pthread
         switch (r) 
           {
           case 0:
@@ -123,6 +124,18 @@ namespace Kernel_Utils
 
     free (strings);
   }
+#else
+  #if (_MSC_VER >= 1400) // Visual Studio 2005
+  #include <sstream>
+  int setenv(const char *name, const char *value, int rewrite)\r
+  {\r
+    std::stringstream sstr;\r
+    sstr<<name<<'='<<value;\r
+    if(rewrite || std::string(getenv(name)).length() == 0)\r
+      return _putenv(sstr.str().c_str());\r
+    else return -1;\r
+  }
+  #endif
 #endif
 
 }