equal
deleted
inserted
replaced
272 return o; |
272 return o; |
273 } |
273 } |
274 if (o.path.length() == 0) { |
274 if (o.path.length() == 0) { |
275 return this; |
275 return this; |
276 } |
276 } |
277 StringBuilder sb = new StringBuilder(path.length() + o.path.length()); |
277 StringBuilder sb = new StringBuilder(path.length() + o.path.length() + 1); |
278 sb.append(path); |
278 sb.append(path); |
279 if (path.charAt(path.length() - 1) != '/') |
279 if (path.charAt(path.length() - 1) != '/') |
280 sb.append('/'); |
280 sb.append('/'); |
281 sb.append(o.path); |
281 sb.append(o.path); |
282 return new JrtPath(jrtfs, sb.toString(), true); |
282 return new JrtPath(jrtfs, sb.toString(), true); |
476 return to.toString(); |
476 return to.toString(); |
477 } |
477 } |
478 |
478 |
479 // Remove DotSlash(./) and resolve DotDot (..) components |
479 // Remove DotSlash(./) and resolve DotDot (..) components |
480 private String getResolved() { |
480 private String getResolved() { |
481 if (path.length() == 0) { |
481 int length = path.length(); |
|
482 if (length == 0 || (path.indexOf("./") == -1 && path.charAt(length - 1) != '.')) { |
482 return path; |
483 return path; |
483 } |
484 } else { |
484 if (path.indexOf('.') == -1) { |
485 return resolvePath(); |
485 return path; |
486 } |
486 } |
487 } |
|
488 |
|
489 private String resolvePath() { |
487 int length = path.length(); |
490 int length = path.length(); |
488 char[] to = new char[length]; |
491 char[] to = new char[length]; |
489 int nc = getNameCount(); |
492 int nc = getNameCount(); |
490 int[] lastM = new int[nc]; |
493 int[] lastM = new int[nc]; |
491 int lastMOff = -1; |
494 int lastMOff = -1; |