Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(14)

Side by Side Diff: storage/common/fileapi/file_system_util.cc

Issue 2070283002: Use container::back() and container::pop_back(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « storage/browser/fileapi/file_system_url_request_job_factory.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "storage/common/fileapi/file_system_util.h" 5 #include "storage/common/fileapi/file_system_util.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
(...skipping 20 matching lines...) Expand all
31 31
32 // TODO(ericu): Consider removing support for '\', even on Windows, if possible. 32 // TODO(ericu): Consider removing support for '\', even on Windows, if possible.
33 // There's a lot of test code that will need reworking, and we may have trouble 33 // There's a lot of test code that will need reworking, and we may have trouble
34 // with base::FilePath elsewhere [e.g. DirName and other methods may also need 34 // with base::FilePath elsewhere [e.g. DirName and other methods may also need
35 // replacement]. 35 // replacement].
36 base::FilePath VirtualPath::BaseName(const base::FilePath& virtual_path) { 36 base::FilePath VirtualPath::BaseName(const base::FilePath& virtual_path) {
37 base::FilePath::StringType path = virtual_path.value(); 37 base::FilePath::StringType path = virtual_path.value();
38 38
39 // Keep everything after the final separator, but if the pathname is only 39 // Keep everything after the final separator, but if the pathname is only
40 // one character and it's a separator, leave it alone. 40 // one character and it's a separator, leave it alone.
41 while (path.size() > 1 && base::FilePath::IsSeparator(path[path.size() - 1])) 41 while (path.size() > 1 && base::FilePath::IsSeparator(path.back()))
42 path.resize(path.size() - 1); 42 path.resize(path.size() - 1);
43 base::FilePath::StringType::size_type last_separator = 43 base::FilePath::StringType::size_type last_separator =
44 path.find_last_of(base::FilePath::kSeparators); 44 path.find_last_of(base::FilePath::kSeparators);
45 if (last_separator != base::FilePath::StringType::npos && 45 if (last_separator != base::FilePath::StringType::npos &&
46 last_separator < path.size() - 1) 46 last_separator < path.size() - 1)
47 path.erase(0, last_separator + 1); 47 path.erase(0, last_separator + 1);
48 48
49 return base::FilePath(path); 49 return base::FilePath(path);
50 } 50 }
51 51
52 base::FilePath VirtualPath::DirName(const base::FilePath& virtual_path) { 52 base::FilePath VirtualPath::DirName(const base::FilePath& virtual_path) {
53 typedef base::FilePath::StringType StringType; 53 typedef base::FilePath::StringType StringType;
54 StringType path = virtual_path.value(); 54 StringType path = virtual_path.value();
55 55
56 // The logic below is taken from that of base::FilePath::DirName, except 56 // The logic below is taken from that of base::FilePath::DirName, except
57 // that this version never cares about '//' or drive-letters even on win32. 57 // that this version never cares about '//' or drive-letters even on win32.
58 58
59 // Strip trailing separators. 59 // Strip trailing separators.
60 while (path.size() > 1 && base::FilePath::IsSeparator(path[path.size() - 1])) 60 while (path.size() > 1 && base::FilePath::IsSeparator(path.back()))
61 path.resize(path.size() - 1); 61 path.resize(path.size() - 1);
62 62
63 StringType::size_type last_separator = 63 StringType::size_type last_separator =
64 path.find_last_of(base::FilePath::kSeparators); 64 path.find_last_of(base::FilePath::kSeparators);
65 if (last_separator == StringType::npos) { 65 if (last_separator == StringType::npos) {
66 // path_ is in the current directory. 66 // path_ is in the current directory.
67 return base::FilePath(base::FilePath::kCurrentDirectory); 67 return base::FilePath(base::FilePath::kCurrentDirectory);
68 } 68 }
69 if (last_separator == 0) { 69 if (last_separator == 0) {
70 // path_ is in the root directory. 70 // path_ is in the root directory.
71 return base::FilePath(path.substr(0, 1)); 71 return base::FilePath(path.substr(0, 1));
72 } 72 }
73 // path_ is somewhere else, trim the basename. 73 // path_ is somewhere else, trim the basename.
74 path.resize(last_separator); 74 path.resize(last_separator);
75 75
76 // Strip trailing separators. 76 // Strip trailing separators.
77 while (path.size() > 1 && base::FilePath::IsSeparator(path[path.size() - 1])) 77 while (path.size() > 1 && base::FilePath::IsSeparator(path.back()))
78 path.resize(path.size() - 1); 78 path.resize(path.size() - 1);
79 79
80 if (path.empty()) 80 if (path.empty())
81 return base::FilePath(base::FilePath::kCurrentDirectory); 81 return base::FilePath(base::FilePath::kCurrentDirectory);
82 82
83 return base::FilePath(path); 83 return base::FilePath(path);
84 } 84 }
85 85
86 void VirtualPath::GetComponents( 86 void VirtualPath::GetComponents(
87 const base::FilePath& path, 87 const base::FilePath& path,
(...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after
501 return base::File::FILE_ERROR_ABORT; 501 return base::File::FILE_ERROR_ABORT;
502 case net::ERR_ADDRESS_INVALID: 502 case net::ERR_ADDRESS_INVALID:
503 case net::ERR_INVALID_URL: 503 case net::ERR_INVALID_URL:
504 return base::File::FILE_ERROR_INVALID_URL; 504 return base::File::FILE_ERROR_INVALID_URL;
505 default: 505 default:
506 return base::File::FILE_ERROR_FAILED; 506 return base::File::FILE_ERROR_FAILED;
507 } 507 }
508 } 508 }
509 509
510 } // namespace storage 510 } // namespace storage
OLDNEW
« no previous file with comments | « storage/browser/fileapi/file_system_url_request_job_factory.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698