* Licence details can be found in the file COPYING.
*
* \author Angus Leeming
- * \author João Luis M. Assirati
- * \author Lars Gullik Bjønnes
+ * \author João Luis M. Assirati
+ * \author Lars Gullik Bjønnes
*
* Full author contact details are available in file CREDITS.
*/
{
// f.ex. what about error checking?
char const * const ch = getenv(envname.c_str());
- string const envstr = !ch ? "" : ch;
- return envstr;
+ return ch ? to_utf8(from_local8bit(ch)) : string();
}
// CHECK Look at and fix this.
// f.ex. what about error checking?
+ string const encoded(to_local8bit(from_utf8(value)));
#if defined (HAVE_SETENV)
- int const retval = ::setenv(name.c_str(), value.c_str(), true);
+ int const retval = ::setenv(name.c_str(), encoded.c_str(), true);
#elif defined (HAVE_PUTENV)
static std::map<string, char *> varmap;
- string envstr = name + '=' + value;
+ string envstr = name + '=' + encoded;
char * newptr = new char[envstr.size() + 1];
envstr.copy(newptr, envstr.length());
newptr[envstr.length()] = '\0';
{
char const separator(os::path_separator());
std::ostringstream ss;
- vector<string>::const_iterator it = env.begin();
+ vector<string>::const_iterator const begin = env.begin();
vector<string>::const_iterator const end = env.end();
+ vector<string>::const_iterator it = begin;
for (; it != end; ++it) {
- if (ss.tellp() > 0)
+ if (it != begin)
ss << separator;
ss << os::external_path(*it);
}