diff options
author | Thiago Farina <tfarina@chromium.org> | 2011-08-10 12:47:32 (GMT) |
---|---|---|
committer | Thiago Farina <tfarina@chromium.org> | 2011-08-10 12:47:32 (GMT) |
commit | f8f63a4a6a88b96b3d7c71c50881c8658d8b4fe4 (patch) | |
tree | 18f832ff958d03564ec6faad988804ef70e997ac /src/ninja_jumble.cc | |
parent | 667d16d123e7eb6d9525146c13bdc90f251e7fc9 (diff) | |
download | Ninja-f8f63a4a6a88b96b3d7c71c50881c8658d8b4fe4.zip Ninja-f8f63a4a6a88b96b3d7c71c50881c8658d8b4fe4.tar.gz Ninja-f8f63a4a6a88b96b3d7c71c50881c8658d8b4fe4.tar.bz2 |
Factor out DiskInterface class into its own source/header files.
This is a TODO in src/ninja_jumble.cc
Signed-off-by: Thiago Farina <tfarina@chromium.org>
Diffstat (limited to 'src/ninja_jumble.cc')
-rw-r--r-- | src/ninja_jumble.cc | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/src/ninja_jumble.cc b/src/ninja_jumble.cc index c4399d1..f3b726a 100644 --- a/src/ninja_jumble.cc +++ b/src/ninja_jumble.cc @@ -41,39 +41,6 @@ int RealDiskInterface::Stat(const string& path) { return true; } -string DirName(const string& path) { - -#ifdef WIN32 - const char kPathSeparator = '\\'; -#else - const char kPathSeparator = '/'; -#endif - - string::size_type slash_pos = path.rfind(kPathSeparator); - if (slash_pos == string::npos) - return ""; // Nothing to do. - while (slash_pos > 0 && path[slash_pos - 1] == kPathSeparator) - --slash_pos; - return path.substr(0, slash_pos); -} - -bool DiskInterface::MakeDirs(const string& path) { - string dir = DirName(path); - if (dir.empty()) - return true; // Reached root; assume it's there. - int mtime = Stat(dir); - if (mtime < 0) - return false; // Error. - if (mtime > 0) - return true; // Exists already; we're done. - - // Directory doesn't exist. Try creating its parent first. - bool success = MakeDirs(dir); - if (!success) - return false; - return MakeDir(dir); -} - string RealDiskInterface::ReadFile(const string& path, string* err) { string contents; int ret = ::ReadFile(path, &contents, err); |