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

Side by Side Diff: native_client_sdk/src/libraries/nacl_io/path.cc

Issue 320983002: [NaCl SDK] nacl_io: Allows subtree of html5fs to be mounted. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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 | Annotate | Revision Log
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 "nacl_io/path.h" 5 #include "nacl_io/path.h"
6 6
7 #include <stdio.h> 7 #include <stdio.h>
8 #include <string.h> 8 #include <string.h>
9 #include <string> 9 #include <string>
10 10
(...skipping 26 matching lines...) Expand all
37 size_t Path::Size() const { 37 size_t Path::Size() const {
38 return paths_.size(); 38 return paths_.size();
39 } 39 }
40 40
41 bool Path::Top() const { 41 bool Path::Top() const {
42 return (paths_.size() == 0) || (paths_.size() == 1 && paths_[0] == "/"); 42 return (paths_.size() == 0) || (paths_.size() == 1 && paths_[0] == "/");
43 } 43 }
44 44
45 Path& Path::Append(const std::string& path) { 45 Path& Path::Append(const std::string& path) {
46 StringArray_t paths = Split(path); 46 StringArray_t paths = Split(path);
47 if (paths.size() == 0)
binji 2014/06/09 20:54:29 I prefer paths.empty() for this, but it looks like
Sam Clegg 2014/06/10 17:20:59 Done.
48 return *this;
47 49
48 for (size_t index = 0; index < paths.size(); index++) { 50 for (size_t index = 0; index < paths.size(); index++) {
49 // Skip ROOT 51 // Skip ROOT
50 if (paths_.size() && index == 0 && paths[0] == "/") 52 if (paths_.size() && index == 0 && paths[0] == "/")
51 continue; 53 continue;
52 paths_.push_back(paths[index]); 54 paths_.push_back(paths[index]);
53 } 55 }
54 56
55 paths_ = Normalize(paths_); 57 paths_ = Normalize(paths_);
56 return *this; 58 return *this;
57 } 59 }
58 60
59 Path& Path::Prepend(const std::string& path) { 61 Path& Path::Prepend(const std::string& path) {
60 StringArray_t paths = Split(path); 62 StringArray_t paths = Split(path);
63 if (paths.size() == 0)
64 return *this;
61 65
62 for (size_t index = 0; index < paths_.size(); index++) { 66 for (size_t index = 0; index < paths_.size(); index++) {
63 // Skip ROOT 67 // Skip ROOT
64 if (index == 0 && paths_[0] == "/") 68 if (index == 0 && paths_[0] == "/")
65 continue; 69 continue;
66 paths.push_back(paths[index]); 70 paths.push_back(paths_[index]);
binji 2014/06/09 20:54:29 why? If needed, be consistent with same in Path::A
Sam Clegg 2014/06/10 17:20:59 This is simply a bug. Append is pushing all the p
binji 2014/06/10 18:00:58 I see.
67 } 71 }
72
68 paths_ = Normalize(paths); 73 paths_ = Normalize(paths);
69 return *this; 74 return *this;
70 } 75 }
71 76
72 Path& Path::Set(const std::string& path) { 77 Path& Path::Set(const std::string& path) {
73 StringArray_t paths = Split(path); 78 StringArray_t paths = Split(path);
74 paths_ = Normalize(paths); 79 paths_ = Normalize(paths);
75 return *this; 80 return *this;
76 } 81 }
77 82
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 Path& Path::operator=(const Path& p) { 208 Path& Path::operator=(const Path& p) {
204 paths_ = p.paths_; 209 paths_ = p.paths_;
205 return *this; 210 return *this;
206 } 211 }
207 212
208 Path& Path::operator=(const std::string& p) { 213 Path& Path::operator=(const std::string& p) {
209 return Set(p); 214 return Set(p);
210 } 215 }
211 216
212 } // namespace nacl_io 217 } // namespace nacl_io
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698