]> git.lyx.org Git - lyx.git/blobdiff - src/support/environment.cpp
* get rid of support::absolutePath()
[lyx.git] / src / support / environment.cpp
index 5bce59916d1a4b43101768eed3ce04a03f83d19c..3c856d068b7b2b122ad83f752d9e3bba41877331 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 {
@@ -50,7 +47,7 @@ vector<string> const getEnvPath(string const & name)
        Tokenizer::const_iterator it = tokens.begin();
        Tokenizer::const_iterator const end = tokens.end();
 
-       std::vector<string> vars;
+       vector<string> vars;
        for (; it != end; ++it)
                vars.push_back(os::internal_path(*it));
 
@@ -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 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
@@ -87,7 +77,7 @@ bool setEnv(string const & name, string const & value)
 void setEnvPath(string const & name, vector<string> const & env)
 {
        char const separator(os::path_separator());
-       std::ostringstream ss;
+       ostringstream ss;
        vector<string>::const_iterator const begin = env.begin();
        vector<string>::const_iterator const end = env.end();
        vector<string>::const_iterator it = begin;
@@ -119,7 +109,7 @@ void prependEnvPath(string const & name, string const & prefix)
        token_iterator const end = reversed_tokens.rend();
        for (; it != end; ++it) {
                vector<string>::iterator remove_it =
-                       std::remove(env_var.begin(), env_var.end(), *it);
+                       remove(env_var.begin(), env_var.end(), *it);
                env_var.erase(remove_it, env_var.end());
                env_var.insert(env_var.begin(), *it);
        }