summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/ServerI.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2005-09-02 07:48:00 +0000
committerBenoit Foucher <benoit@zeroc.com>2005-09-02 07:48:00 +0000
commitfe0aafb162efffbe43f8e89f385934feb6f6abf4 (patch)
treece602d4731178be507ddb50be9413e5118381e69 /cpp/src/IceGrid/ServerI.cpp
parenthttp://bugzilla.zeroc.com/bugzilla/show_bug.cgi?id=199 (diff)
downloadice-fe0aafb162efffbe43f8e89f385934feb6f6abf4.tar.bz2
ice-fe0aafb162efffbe43f8e89f385934feb6f6abf4.tar.xz
ice-fe0aafb162efffbe43f8e89f385934feb6f6abf4.zip
Fix
Diffstat (limited to 'cpp/src/IceGrid/ServerI.cpp')
-rw-r--r--cpp/src/IceGrid/ServerI.cpp33
1 files changed, 16 insertions, 17 deletions
diff --git a/cpp/src/IceGrid/ServerI.cpp b/cpp/src/IceGrid/ServerI.cpp
index 575212c5a91..ff57da37a09 100644
--- a/cpp/src/IceGrid/ServerI.cpp
+++ b/cpp/src/IceGrid/ServerI.cpp
@@ -79,24 +79,23 @@ struct EnvironmentEval : std::unary_function<string, string>
string v = value.substr(assignment + 1);
assert(v.size());
string::size_type beg = 0;
+ string::size_type end;
#ifdef _WIN32
-// char buf[32767];
-// while((beg = v.find("%", beg)) != string::npos && beg < v.size() - 1)
-// {
-// end = v.find("%");
-// if(end == string::npos)
-// {
-// return v;
-// }
-// string variable = v.substr(beg + 2, end - beg - 2);
-// int ret = GetEnvironmentVariable(variable.c_str(), buf, sizeof(buf));
-// string valstr = ret > 0 ? string(buf) : "";
-// v.replace(beg, end - beg + 1, valstr);
-// beg += strlen(value);
-// }
- return value;
+ char buf[32767];
+ while((beg = v.find("%", beg)) != string::npos && beg < v.size() - 1)
+ {
+ end = v.find("%", beg + 1);
+ if(end == string::npos)
+ {
+ break;
+ }
+ string variable = v.substr(beg + 1, end - beg - 1);
+ int ret = GetEnvironmentVariable(variable.c_str(), buf, sizeof(buf));
+ string valstr = (ret > 0 && ret < sizeof(buf)) ? string(buf) : "";
+ v.replace(beg, end - beg + 1, valstr);
+ beg += valstr.size();
+ }
#else
- string::size_type end;
while((beg = v.find("$", beg)) != string::npos && beg < v.size() - 1)
{
string variable;
@@ -105,7 +104,7 @@ struct EnvironmentEval : std::unary_function<string, string>
end = v.find("}");
if(end == string::npos)
{
- return v;
+ break;
}
variable = v.substr(beg + 2, end - beg - 2);
}