aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/basetypes/MCString.cc14
-rw-r--r--src/core/basetypes/MCString.h1
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);