aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Hoa V. DINH <dinh.viet.hoa@gmail.com>2013-04-13 09:43:21 -0700
committerGravatar Hoa V. DINH <dinh.viet.hoa@gmail.com>2013-04-13 09:48:06 -0700
commitd737bab161265495249e97ecd863df83aad7b4b5 (patch)
tree4dd09b13bab5064fa793add110e6fea5dbbb8efd /src
parentd2066220039fb54ea8a6c7bedf1a759ef3a8d4d1 (diff)
Added String::stringByAppendingPathComponent()
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);