| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 17c88c4 commit 37071b8
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -30,19 +30,14 @@ function normalizeStringWin32(path, allowAboveRoot) { | |||
| 30 | 30 | res.charCodeAt(res.length - 1) !== 46/*.*/ || | |
| 31 | 31 | res.charCodeAt(res.length - 2) !== 46/*.*/) { | |
| 32 | 32 | if (res.length > 2) { | |
| 33 | - const start = res.length - 1; | ||
| 34 | - var j = start; | ||
| 35 | - for (; j >= 0; --j) { | ||
| 36 | - if (res.charCodeAt(j) === 92/*\*/) | ||
| 37 | - break; | ||
| 38 | - } | ||
| 39 | - if (j !== start) { | ||
| 40 | - if (j === -1) { | ||
| 33 | + const lastSlashIndex = res.lastIndexOf('\\'); | ||
| 34 | + if (lastSlashIndex !== res.length - 1) { | ||
| 35 | + if (lastSlashIndex === -1) { | ||
| 41 | 36 | res = ''; | |
| 42 | 37 | lastSegmentLength = 0; | |
| 43 | 38 | } else { | |
| 44 | - res = res.slice(0, j); | ||
| 45 | - lastSegmentLength = j; | ||
| 39 | + res = res.slice(0, lastSlashIndex); | ||
| 40 | + lastSegmentLength = res.length - 1 - res.lastIndexOf('\\'); | ||
| 46 | 41 | } | |
| 47 | 42 | lastSlash = i; | |
| 48 | 43 | dots = 0; | |
@@ -103,19 +98,14 @@ function normalizeStringPosix(path, allowAboveRoot) { | |||
| 103 | 98 | res.charCodeAt(res.length - 1) !== 46/*.*/ || | |
| 104 | 99 | res.charCodeAt(res.length - 2) !== 46/*.*/) { | |
| 105 | 100 | if (res.length > 2) { | |
| 106 | - const start = res.length - 1; | ||
| 107 | - var j = start; | ||
| 108 | - for (; j >= 0; --j) { | ||
| 109 | - if (res.charCodeAt(j) === 47/*/*/) | ||
| 110 | - break; | ||
| 111 | - } | ||
| 112 | - if (j !== start) { | ||
| 113 | - if (j === -1) { | ||
| 101 | + const lastSlashIndex = res.lastIndexOf('/'); | ||
| 102 | + if (lastSlashIndex !== res.length - 1) { | ||
| 103 | + if (lastSlashIndex === -1) { | ||
| 114 | 104 | res = ''; | |
| 115 | 105 | lastSegmentLength = 0; | |
| 116 | 106 | } else { | |
| 117 | - res = res.slice(0, j); | ||
| 118 | - lastSegmentLength = j; | ||
| 107 | + res = res.slice(0, lastSlashIndex); | ||
| 108 | + lastSegmentLength = res.length - 1 - res.lastIndexOf('/'); | ||
| 119 | 109 | } | |
| 120 | 110 | lastSlash = i; | |
| 121 | 111 | dots = 0; | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -27,6 +27,18 @@ assert.strictEqual(path.win32.normalize('..\\foo..\\..\\..\\bar'), | |||
| 27 | 27 | '..\\..\\bar'); | |
| 28 | 28 | assert.strictEqual(path.win32.normalize('..\\...\\..\\.\\...\\..\\..\\bar'), | |
| 29 | 29 | '..\\..\\bar'); | |
| 30 | + assert.strictEqual(path.win32.normalize('../../../foo/../../../bar'), | ||
| 31 | + '..\\..\\..\\..\\..\\bar'); | ||
| 32 | + assert.strictEqual(path.win32.normalize('../../../foo/../../../bar/../../'), | ||
| 33 | + '..\\..\\..\\..\\..\\..\\'); | ||
| 34 | + assert.strictEqual( | ||
| 35 | + path.win32.normalize('../foobar/barfoo/foo/../../../bar/../../'), | ||
| 36 | + '..\\..\\' | ||
| 37 | + ); | ||
| 38 | + assert.strictEqual( | ||
| 39 | + path.win32.normalize('../.../../foobar/../../../bar/../../baz'), | ||
| 40 | + '..\\..\\..\\..\\baz' | ||
| 41 | + ); | ||
| 30 | 42 | ||
| 31 | 43 | assert.strictEqual(path.posix.normalize('./fixtures///b/../b/c.js'), | |
| 32 | 44 | 'fixtures/b/c.js'); | |
@@ -44,3 +56,15 @@ assert.strictEqual(path.posix.normalize('bar/foo..'), 'bar/foo..'); | |||
| 44 | 56 | assert.strictEqual(path.posix.normalize('../foo../../../bar'), '../../bar'); | |
| 45 | 57 | assert.strictEqual(path.posix.normalize('../.../.././.../../../bar'), | |
| 46 | 58 | '../../bar'); | |
| 59 | + assert.strictEqual(path.posix.normalize('../../../foo/../../../bar'), | ||
| 60 | + '../../../../../bar'); | ||
| 61 | + assert.strictEqual(path.posix.normalize('../../../foo/../../../bar/../../'), | ||
| 62 | + '../../../../../../'); | ||
| 63 | + assert.strictEqual( | ||
| 64 | + path.posix.normalize('../foobar/barfoo/foo/../../../bar/../../'), | ||
| 65 | + '../../' | ||
| 66 | + ); | ||
| 67 | + assert.strictEqual( | ||
| 68 | + path.posix.normalize('../.../../foobar/../../../bar/../../baz'), | ||
| 69 | + '../../../../baz' | ||
| 70 | + ); | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments