Mercurial > jhg
comparison src/org/tmatesoft/hg/internal/StoragePathHelper.java @ 292:a415fe296a50
Refactor PathRewrite to accept any char sequence, not only string
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
|---|---|
| date | Wed, 14 Sep 2011 02:16:19 +0200 |
| parents | bb1d02f9eff6 |
| children | 6d2c6b2469fc |
comparison
equal
deleted
inserted
replaced
| 291:1483e57541ef | 292:a415fe296a50 |
|---|---|
| 41 } | 41 } |
| 42 | 42 |
| 43 // FIXME document what path argument is, whether it includes .i or .d, and whether it's 'normalized' (slashes) or not. | 43 // FIXME document what path argument is, whether it includes .i or .d, and whether it's 'normalized' (slashes) or not. |
| 44 // since .hg/store keeps both .i files and files without extension (e.g. fncache), guees, for data == false | 44 // since .hg/store keeps both .i files and files without extension (e.g. fncache), guees, for data == false |
| 45 // we shall assume path has extension | 45 // we shall assume path has extension |
| 46 public String rewrite(String path) { | 46 public CharSequence rewrite(CharSequence p) { |
| 47 final String STR_STORE = "store/"; | 47 final String STR_STORE = "store/"; |
| 48 final String STR_DATA = "data/"; | 48 final String STR_DATA = "data/"; |
| 49 final String STR_DH = "dh/"; | 49 final String STR_DH = "dh/"; |
| 50 final String reservedChars = "\\:*?\"<>|"; | 50 final String reservedChars = "\\:*?\"<>|"; |
| 51 char[] hexByte = new char[2]; | 51 char[] hexByte = new char[2]; |
| 52 | 52 |
| 53 String path = p.toString(); | |
| 53 path = path.replace(".hg/", ".hg.hg/").replace(".i/", ".i.hg/").replace(".d/", ".d.hg/"); | 54 path = path.replace(".hg/", ".hg.hg/").replace(".i/", ".i.hg/").replace(".d/", ".d.hg/"); |
| 54 StringBuilder sb = new StringBuilder(path.length() << 1); | 55 StringBuilder sb = new StringBuilder(path.length() << 1); |
| 55 if (store || fncache) { | 56 if (store || fncache) { |
| 56 // encodefilename | 57 // encodefilename |
| 57 for (int i = 0; i < path.length(); i++) { | 58 for (int i = 0; i < path.length(); i++) { |
