Index: chrome/browser/sync/util/path_helpers_posix.cc |
=================================================================== |
--- chrome/browser/sync/util/path_helpers_posix.cc (revision 30948) |
+++ chrome/browser/sync/util/path_helpers_posix.cc (working copy) |
@@ -2,95 +2,14 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include <sys/types.h> |
- |
-#include <algorithm> |
-#include <pwd.h> |
-#include <string.h> |
- |
-#include "base/logging.h" |
-#include "base/port.h" |
-#include "chrome/browser/sync/util/character_set_converters.h" |
#include "chrome/browser/sync/util/path_helpers.h" |
+#include "build/build_config.h" |
+ |
#if ((!defined(OS_LINUX)) && (!defined(OS_MACOSX))) |
#error Compile this file on Mac OS X or Linux only. |
#endif |
-PathString ExpandTilde(const PathString& path) { |
- if (path.empty()) |
- return path; |
- if ('~' != path[0]) |
- return path; |
- PathString ret; |
- // TODO(sync): Consider using getpwuid_r. |
- ret.insert(0, getpwuid(getuid())->pw_dir); |
- ret.append(++path.begin(), path.end()); |
- return ret; |
-} |
- |
-namespace { |
-// TODO(sync): We really should use char[]. |
- std::string cache_dir_; |
-} |
- |
-void set_cache_dir(std::string cache_dir) { |
- CHECK(cache_dir_.empty()); |
- cache_dir_ = cache_dir; |
-} |
- |
-std::string get_cache_dir() { |
- CHECK(!cache_dir_.empty()); |
- return cache_dir_; |
-} |
- |
-// On Posix, PathStrings are UTF-8, not UTF-16 as they are on Windows. Thus, |
-// this function is different from the Windows version. |
-PathString TruncatePathString(const PathString& original, int length) { |
- if (original.size() <= static_cast<size_t>(length)) |
- return original; |
- if (length <= 0) |
- return original; |
- PathString ret(original.begin(), original.begin() + length); |
- COMPILE_ASSERT(sizeof(PathChar) == sizeof(uint8), PathStringNotUTF8); |
- PathString::reverse_iterator last_char = ret.rbegin(); |
- |
- // Values taken from |
- // http://en.wikipedia.org/w/index.php?title=UTF-8&oldid=252875566 |
- if (0 == (*last_char & 0x80)) |
- return ret; |
- |
- for (; last_char != ret.rend(); ++last_char) { |
- if (0 == (*last_char & 0x80)) { |
- // Got malformed UTF-8; bail. |
- return ret; |
- } |
- if (0 == (*last_char & 0x40)) { |
- // Got another trailing byte. |
- continue; |
- } |
- break; |
- } |
- |
- if (ret.rend() == last_char) { |
- // We hit the beginning of the string. bail. |
- return ret; |
- } |
- |
- int last_codepoint_len = last_char - ret.rbegin() + 1; |
- |
- if (((0xC0 == (*last_char & 0xE0)) && (2 == last_codepoint_len)) || |
- ((0xE0 == (*last_char & 0xF0)) && (3 == last_codepoint_len)) || |
- ((0xF0 == (*last_char & 0xF8)) && (4 == last_codepoint_len))) { |
- // Valid utf-8. |
- return ret; |
- } |
- |
- // Invalid utf-8. chop off last "codepoint" and return. |
- ret.resize(ret.size() - last_codepoint_len); |
- return ret; |
-} |
- |
// Convert /s to :s. |
PathString MakePathComponentOSLegal(const PathString& component) { |
if (PathString::npos == component.find("/")) |
@@ -99,25 +18,3 @@ |
std::replace(new_name.begin(), new_name.end(), '/', ':'); |
return new_name; |
} |
- |
-string LastPathSegment(const string& path) { |
- string str(path); |
- string::size_type final_slash = str.find_last_of('/'); |
- if (string::npos != final_slash && final_slash == str.length() - 1 |
- && str.length() > 1) { |
- str.erase(final_slash); |
- final_slash = str.find_last_of('/'); |
- } |
- if (string::npos == final_slash) |
- return str; |
- str.erase(0, final_slash + 1); |
- return str; |
-} |
- |
-PathString AppendSlash(const PathString& path) { |
- if ((!path.empty()) && (*path.rbegin() != '/')) { |
- return path + '/'; |
- } |
- return path; |
-} |
- |