Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 class _Path implements Path { | 5 class _Path implements Path { |
| 6 final String _path; | 6 final String _path; |
| 7 | 7 |
| 8 _Path(String source) : _path = source; | 8 _Path(String source) : _path = source; |
| 9 _Path.fromNative(String source) : _path = _clean(source); | 9 _Path.fromNative(String source) : _path = _clean(source); |
| 10 | 10 |
| (...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 182 segmentsToJoin.add(''); | 182 segmentsToJoin.add(''); |
| 183 } | 183 } |
| 184 } | 184 } |
| 185 return new Path(Strings.join(segmentsToJoin, '/')); | 185 return new Path(Strings.join(segmentsToJoin, '/')); |
| 186 } | 186 } |
| 187 | 187 |
| 188 String toNativePath() { | 188 String toNativePath() { |
| 189 if (Platform.operatingSystem == 'windows') { | 189 if (Platform.operatingSystem == 'windows') { |
| 190 String nativePath = _path; | 190 String nativePath = _path; |
| 191 // Drop '/' before a drive letter. | 191 // Drop '/' before a drive letter. |
| 192 if (nativePath.length > 3 && | 192 if (nativePath.length >= 3 && |
| 193 nativePath.startsWith('/') && | 193 nativePath.startsWith('/') && |
|
Søren Gjesse
2012/11/06 10:45:26
Now that you are at it maybe check that nativePath
Mads Ager (google)
2012/11/06 15:00:35
Not sure we have to. If you use this and it doesn'
| |
| 194 nativePath[2] == ':') { | 194 nativePath[2] == ':') { |
| 195 nativePath = nativePath.substring(1); | 195 nativePath = nativePath.substring(1); |
| 196 } | 196 } |
| 197 nativePath = nativePath.replaceAll('/', '\\'); | 197 nativePath = nativePath.replaceAll('/', '\\'); |
| 198 return nativePath; | 198 return nativePath; |
| 199 } | 199 } |
| 200 return _path; | 200 return _path; |
| 201 } | 201 } |
| 202 | 202 |
| 203 List<String> segments() { | 203 List<String> segments() { |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 235 if (pos < 0) return new Path(''); | 235 if (pos < 0) return new Path(''); |
| 236 while (pos > 0 && _path[pos - 1] == '/') --pos; | 236 while (pos > 0 && _path[pos - 1] == '/') --pos; |
| 237 return new Path((pos > 0) ? _path.substring(0, pos) : '/'); | 237 return new Path((pos > 0) ? _path.substring(0, pos) : '/'); |
| 238 } | 238 } |
| 239 | 239 |
| 240 String get filename { | 240 String get filename { |
| 241 int pos = _path.lastIndexOf('/'); | 241 int pos = _path.lastIndexOf('/'); |
| 242 return _path.substring(pos + 1); | 242 return _path.substring(pos + 1); |
| 243 } | 243 } |
| 244 } | 244 } |
| OLD | NEW |