]> git.lyx.org Git - lyx.git/blobdiff - src/support/environment.cpp
Revert qprocess code. Revisions reverted: 22026, 22030, 22044, 22048,
[lyx.git] / src / support / environment.cpp
index 5bce59916d1a4b43101768eed3ce04a03f83d19c..e1bbaccc0618ed8b385dc462559d6d9cc1b804ca 100644 (file)
 #include "support/os.h"
 
 #include <boost/tokenizer.hpp>
-#include <boost/shared_array.hpp>
 
 #include <cstdlib>
 #include <map>
 #include <sstream>
 
-using std::string;
-using std::vector;
-
+using namespace std;
 
 namespace lyx {
 namespace support {
@@ -67,16 +64,9 @@ bool setEnv(string const & name, string const & value)
 #if defined (HAVE_SETENV)
        return ::setenv(name.c_str(), encoded.c_str(), true);
 #elif defined (HAVE_PUTENV)
-       static std::map<string, boost::shared_array<char> > varmap;
-
-       string envstr = name + '=' + encoded;
-       boost::shared_array<char> newptr(new char[envstr.size() + 1]);
-       envstr.copy(newptr.get(), envstr.length());
-       newptr.get()[envstr.length()] = '\0';
-       bool const retval = ::putenv(newptr.get()) == 0;
-
-       varmap[name] = newptr;
-       return retval;
+       static std::map<string, string> varmap;
+       varmap[name] = name + '=' + encoded;
+       return ::putenv(const_cast<char*>(varmap[name].c_str())) == 0;
 #else
 #error No environment-setting function has been defined.
 #endif