diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/core/basetypes/MCString.cc | 14 | ||||
-rw-r--r-- | src/core/basetypes/MCString.h | 1 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/core/basetypes/MCString.cc b/src/core/basetypes/MCString.cc index ae3c78f0..52fbbb1c 100644 --- a/src/core/basetypes/MCString.cc +++ b/src/core/basetypes/MCString.cc @@ -1847,6 +1847,20 @@ String * String::stringWithFileSystemRepresentation(const char * filename) return stringWithUTF8Characters(filename); } +String * String::stringByAppendingPathComponent(String * component) +{ + String * result = (String *) this->copy()->autorelease(); + if (result->length() > 0) { + UChar lastChar = result->unicodeCharacters()[result->length() - 1]; + if (lastChar != '/') { + result->appendUTF8Characters("/"); + } + } + result->appendString(component); + return result; +} + + Array * String::componentsSeparatedByString(String * separator) { UChar * p; diff --git a/src/core/basetypes/MCString.h b/src/core/basetypes/MCString.h index a8809bb1..c7da4788 100644 --- a/src/core/basetypes/MCString.h +++ b/src/core/basetypes/MCString.h @@ -53,6 +53,7 @@ namespace mailcore { virtual String * stringByAppendingUTF8Format(const char * format, ...); virtual String * stringByAppendingUTF8Characters(const char * UTF8Characters); virtual String * stringByAppendingCharacters(const UChar * unicodeCharacters); + virtual String * stringByAppendingPathComponent(String * component); virtual int compare(String * otherString); virtual int caseInsensitiveCompare(String * otherString); |