1. Fix bug in getBaseName where it mishandles suffixes

2. Fix bug in eraseSuffix where it allows /path/.suffix to become /path/


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22362 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jeff Cohen 2005-07-09 18:42:02 +00:00
parent 8b2d1aa37b
commit 73f36671b2

View File

@ -271,7 +271,11 @@ Path::getBasename() const {
else
slash++;
return path.substr(slash, path.rfind('.'));
size_t dot = path.rfind('.');
if (dot == std::string::npos || dot < slash)
return path.substr(slash);
else
return path.substr(slash, dot - slash);
}
bool Path::hasMagicNumber(const std::string &Magic) const {
@ -521,7 +525,7 @@ Path::eraseSuffix() {
size_t dotpos = path.rfind('.',path.size());
size_t slashpos = path.rfind('/',path.size());
if (dotpos != std::string::npos) {
if (slashpos == std::string::npos || dotpos > slashpos) {
if (slashpos == std::string::npos || dotpos > slashpos+1) {
path.erase(dotpos, path.size()-dotpos);
return true;
}