Index: base/file_path.cc |
diff --git a/base/file_path.cc b/base/file_path.cc |
index eba9afe785f33320557eb3a27e2d2a217cbba16d..cddb17e547549e9a9c7041e914a9a72514ceb4cb 100644 |
--- a/base/file_path.cc |
+++ b/base/file_path.cc |
@@ -174,6 +174,23 @@ FilePath& FilePath::operator=(const FilePath& that) { |
return *this; |
} |
+bool FilePath::operator==(const FilePath& that) const { |
+#if defined(FILE_PATH_USES_DRIVE_LETTERS) |
+ return EqualDriveLetterCaseInsensitive(this->path_, that.path_); |
+#else // defined(FILE_PATH_USES_DRIVE_LETTERS) |
+ return path_ == that.path_; |
+#endif // defined(FILE_PATH_USES_DRIVE_LETTERS) |
+} |
+ |
+bool FilePath::operator!=(const FilePath& that) const { |
+#if defined(FILE_PATH_USES_DRIVE_LETTERS) |
+ return !EqualDriveLetterCaseInsensitive(this->path_, that.path_); |
+#else // defined(FILE_PATH_USES_DRIVE_LETTERS) |
+ return path_ != that.path_; |
+#endif // defined(FILE_PATH_USES_DRIVE_LETTERS) |
+} |
+ |
+// static |
bool FilePath::IsSeparator(CharType character) { |
for (size_t i = 0; i < arraysize(kSeparators) - 1; ++i) { |
if (character == kSeparators[i]) { |
@@ -219,22 +236,6 @@ void FilePath::GetComponents(std::vector<StringType>* components) const { |
*components = std::vector<StringType>(ret_val.rbegin(), ret_val.rend()); |
} |
-bool FilePath::operator==(const FilePath& that) const { |
-#if defined(FILE_PATH_USES_DRIVE_LETTERS) |
- return EqualDriveLetterCaseInsensitive(this->path_, that.path_); |
-#else // defined(FILE_PATH_USES_DRIVE_LETTERS) |
- return path_ == that.path_; |
-#endif // defined(FILE_PATH_USES_DRIVE_LETTERS) |
-} |
- |
-bool FilePath::operator!=(const FilePath& that) const { |
-#if defined(FILE_PATH_USES_DRIVE_LETTERS) |
- return !EqualDriveLetterCaseInsensitive(this->path_, that.path_); |
-#else // defined(FILE_PATH_USES_DRIVE_LETTERS) |
- return path_ != that.path_; |
-#endif // defined(FILE_PATH_USES_DRIVE_LETTERS) |
-} |
- |
bool FilePath::IsParent(const FilePath& child) const { |
return AppendRelativePath(child, NULL); |
} |
@@ -489,6 +490,87 @@ bool FilePath::IsAbsolute() const { |
return IsPathAbsolute(path_); |
} |
+FilePath FilePath::StripTrailingSeparators() const { |
+ FilePath new_path(path_); |
+ new_path.StripTrailingSeparatorsInternal(); |
+ |
+ return new_path; |
+} |
+ |
+bool FilePath::ReferencesParent() const { |
+ std::vector<StringType> components; |
+ GetComponents(&components); |
+ |
+ std::vector<StringType>::const_iterator it = components.begin(); |
+ for (; it != components.end(); ++it) { |
+ const StringType& component = *it; |
+ if (component == kParentDirectory) |
+ return true; |
+ } |
+ return false; |
+} |
+ |
+#if defined(OS_POSIX) |
+ |
+// See file_path.h for a discussion of the encoding of paths on POSIX |
+// platforms. These *Hack() functions are not quite correct, but they're |
+// only temporary while we fix the remainder of the code. |
+// Remember to remove the #includes at the top when you remove these. |
+ |
+// static |
+FilePath FilePath::FromWStringHack(const std::wstring& wstring) { |
+ return FilePath(base::SysWideToNativeMB(wstring)); |
+} |
+std::wstring FilePath::ToWStringHack() const { |
+ return base::SysNativeMBToWide(path_); |
+} |
+#elif defined(OS_WIN) |
+// static |
+FilePath FilePath::FromWStringHack(const std::wstring& wstring) { |
+ return FilePath(wstring); |
+} |
+std::wstring FilePath::ToWStringHack() const { |
+ return path_; |
+} |
+#endif |
+ |
+// static. |
+void FilePath::WriteStringTypeToPickle(Pickle* pickle, |
+ const StringType& path) { |
+#if defined(WCHAR_T_IS_UTF16) |
+ pickle->WriteWString(path); |
+#elif defined(WCHAR_T_IS_UTF32) |
+ pickle->WriteString(path); |
+#else |
+ NOTIMPLEMENTED() << "Impossible encoding situation!"; |
+#endif |
+} |
+ |
+// static. |
+bool FilePath::ReadStringTypeFromPickle(Pickle* pickle, void** iter, |
+ StringType* path) { |
+#if defined(WCHAR_T_IS_UTF16) |
+ if (!pickle->ReadWString(iter, path)) |
+ return false; |
+#elif defined(WCHAR_T_IS_UTF32) |
+ if (!pickle->ReadString(iter, path)) |
+ return false; |
+#else |
+ NOTIMPLEMENTED() << "Impossible encoding situation!"; |
+ return false; |
+#endif |
+ |
+ return true; |
+} |
+ |
+void FilePath::WriteToPickle(Pickle* pickle) { |
+ WriteStringTypeToPickle(pickle, value()); |
+} |
+ |
+bool FilePath::ReadFromPickle(Pickle* pickle, void** iter) { |
+ return ReadStringTypeFromPickle(pickle, iter, &path_); |
+} |
+ |
#if defined(OS_WIN) |
// Windows specific implementation of file string comparisons |
@@ -1078,73 +1160,6 @@ int FilePath::CompareIgnoreCase(const StringType& string1, |
#endif // OS versions of CompareIgnoreCase() |
-#if defined(OS_POSIX) |
- |
-// See file_path.h for a discussion of the encoding of paths on POSIX |
-// platforms. These *Hack() functions are not quite correct, but they're |
-// only temporary while we fix the remainder of the code. |
-// Remember to remove the #includes at the top when you remove these. |
- |
-// static |
-FilePath FilePath::FromWStringHack(const std::wstring& wstring) { |
- return FilePath(base::SysWideToNativeMB(wstring)); |
-} |
-std::wstring FilePath::ToWStringHack() const { |
- return base::SysNativeMBToWide(path_); |
-} |
-#elif defined(OS_WIN) |
-// static |
-FilePath FilePath::FromWStringHack(const std::wstring& wstring) { |
- return FilePath(wstring); |
-} |
-std::wstring FilePath::ToWStringHack() const { |
- return path_; |
-} |
-#endif |
- |
-FilePath FilePath::StripTrailingSeparators() const { |
- FilePath new_path(path_); |
- new_path.StripTrailingSeparatorsInternal(); |
- |
- return new_path; |
-} |
- |
-// static. |
-void FilePath::WriteStringTypeToPickle(Pickle* pickle, |
- const StringType& path) { |
-#if defined(WCHAR_T_IS_UTF16) |
- pickle->WriteWString(path); |
-#elif defined(WCHAR_T_IS_UTF32) |
- pickle->WriteString(path); |
-#else |
- NOTIMPLEMENTED() << "Impossible encoding situation!"; |
-#endif |
-} |
- |
-// static. |
-bool FilePath::ReadStringTypeFromPickle(Pickle* pickle, void** iter, |
- StringType* path) { |
-#if defined(WCHAR_T_IS_UTF16) |
- if (!pickle->ReadWString(iter, path)) |
- return false; |
-#elif defined(WCHAR_T_IS_UTF32) |
- if (!pickle->ReadString(iter, path)) |
- return false; |
-#else |
- NOTIMPLEMENTED() << "Impossible encoding situation!"; |
- return false; |
-#endif |
- |
- return true; |
-} |
- |
-void FilePath::WriteToPickle(Pickle* pickle) { |
- WriteStringTypeToPickle(pickle, value()); |
-} |
- |
-bool FilePath::ReadFromPickle(Pickle* pickle, void** iter) { |
- return ReadStringTypeFromPickle(pickle, iter, &path_); |
-} |
void FilePath::StripTrailingSeparatorsInternal() { |
// If there is no drive letter, start will be 1, which will prevent stripping |
@@ -1168,19 +1183,6 @@ void FilePath::StripTrailingSeparatorsInternal() { |
} |
} |
-bool FilePath::ReferencesParent() const { |
- std::vector<StringType> components; |
- GetComponents(&components); |
- |
- std::vector<StringType>::const_iterator it = components.begin(); |
- for (; it != components.end(); ++it) { |
- const StringType& component = *it; |
- if (component == kParentDirectory) |
- return true; |
- } |
- return false; |
-} |
- |
#if defined(FILE_PATH_USES_WIN_SEPARATORS) |
FilePath FilePath::NormalizeWindowsPathSeparators() const { |
StringType copy = path_; |