Revert string expansion of leading '.' and './' to the original behaviour.

* Now that the expansion of FOAM_CASE is delayed in the boundary conditions,
  the old expansion is simpler and seems to work better with IOobjects.
This commit is contained in:
Mark Olesen
2008-06-10 10:23:14 +02:00
parent 18f6a0100b
commit 0cbbefb3a6

View File

@ -209,32 +209,16 @@ Foam::string& Foam::string::expand()
*this = home(user)/file;
}
}
else
else if (operator[](0) == '.')
{
// expand a lone initial '.' and './' into CWD
// otherwise strip leading './' sequences
while
(
operator[](0) == '.'
&& (size() == 1 || operator[](1) == '/')
)
// Expand initial '.' and './' into cwd
if (size() == 1)
{
// handle leading ".////" as well
size_type slashPos = 1;
while (size() > slashPos && operator[](slashPos) == '/')
{
++slashPos;
}
if (size() <= slashPos)
{
*this = cwd();
break;
}
else
{
std::string::erase(0, slashPos);
}
*this = cwd();
}
else if (operator[](1) == '/')
{
std::string::replace(0, 1, cwd());
}
}
}