Skip to content

Commit 17b1a8d

Browse files
committed
version bump 1.05: non-display char strict search
1 parent 98e9d2e commit 17b1a8d

22 files changed

+167
-425
lines changed

.eslintrc

+7-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"env": { "shared-node-browser":true },
33
"globals": {},
44
"parserOptions": {
5-
"ecmaVersion": 3,
5+
"ecmaVersion": 3
66
},
77
"plugins": [ "html", "json" ],
88
"extends": "eslint:recommended",
@@ -12,7 +12,13 @@
1212
"curly": 0,
1313
"no-bitwise": 0,
1414
"no-console": 0,
15+
"no-control-regex": 0,
16+
"no-empty": 0,
1517
"no-trailing-spaces": 2,
18+
"no-use-before-define": [ 1, {
19+
"functions":false, "classes":true, "variables":false
20+
}],
21+
"no-useless-escape": 0,
1622
"semi": [ 2, "always" ]
1723
}
1824
}

Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ clean-data:
3939

4040
.PHONY: init
4141
init: ## Initial setup for development
42-
if [ ! -e test_files ]; then git clone https://github.com/SheetJS/test_files; fi
42+
if [ ! -e test_files ]; then git clone --depth=1 https://github.com/SheetJS/test_files; fi
4343
cd test_files; git pull; make
44-
if [ ! -e test_files_pres ]; then git clone https://github.com/SheetJS/test_files_pres; fi
44+
if [ ! -e test_files_pres ]; then git clone --depth=1 https://github.com/SheetJS/test_files_pres; fi
4545
cd test_files_pres; git pull
4646

4747
.PHONY: dist

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ controls the behavior:
9898
|------------|-----------------------------------------------------------------|
9999
| `"base64"` | string: Base64 encoding of the file |
100100
| `"binary"` | string: binary string (byte `n` is `data.charCodeAt(n)`) |
101+
| `"file"` | string: path of file that will be created (nodejs only) |
101102
| (default) | buffer if available, array of 8-bit unsigned int otherwise |
102103

103104
`CFB.writeFile(cfb, filename, opts)` creates a file with the specified name.

bits/04_base64.js

+2-5
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ var Base64 = (function make_b64(){
33
return {
44
encode: function(input/*:string*/)/*:string*/ {
55
var o = "";
6-
var c1/*:number*/, c2/*:number*/, c3/*:number*/;
7-
var e1/*:number*/, e2/*:number*/, e3/*:number*/, e4/*:number*/;
6+
var c1=0, c2=0, c3=0, e1=0, e2=0, e3=0, e4=0;
87
for(var i = 0; i < input.length; ) {
98
c1 = input.charCodeAt(i++);
109
e1 = (c1 >> 2);
@@ -23,9 +22,7 @@ var Base64 = (function make_b64(){
2322
},
2423
decode: function b64_decode(input/*:string*/)/*:string*/ {
2524
var o = "";
26-
var c1/*:number*/, c2/*:number*/, c3/*:number*/;
27-
var e1/*:number*/, e2/*:number*/, e3/*:number*/, e4/*:number*/;
28-
// eslint-disable-next-line no-useless-escape
25+
var c1=0, c2=0, c3=0, e1=0, e2=0, e3=0, e4=0;
2926
input = input.replace(/[^\w\+\/\=]/g, "");
3027
for(var i = 0; i < input.length;) {
3128
e1 = map.indexOf(input.charAt(i++));

bits/30_cfbheader.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
/* [MS-CFB] v20130118 */
1+
/* [MS-CFB] v20171201 */
22
var CFB = (function _CFB(){
33
var exports/*:CFBModule*/ = /*::(*/{}/*:: :any)*/;

bits/31_version.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
exports.version = '1.0.3';
1+
exports.version = '1.0.5';

bits/40_parse.js

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
function parse(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {
2+
if(file.length < 512) throw new Error("CFB file size " + file.length + " < 512");
23
var mver = 3;
34
var ssz = 512;
45
var nmfs = 0; // number of mini FAT sectors

bits/43_rbtree.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ function build_full_paths(FI/*:CFBFileIndex*/, FP/*:Array<string>*/, Paths/*:Arr
1616
if(L !== -1) { dad[L] = dad[i]; q.push(L); }
1717
if(R !== -1) { dad[R] = dad[i]; q.push(R); }
1818
}
19-
for(i=1; i !== pl; ++i) if(dad[i] === i) {
19+
for(i=1; i < pl; ++i) if(dad[i] === i) {
2020
if(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];
2121
else if(L !== -1 && dad[L] !== L) dad[i] = dad[L];
2222
}

bits/70_find.js

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */
22
function find(cfb/*:CFBContainer*/, path/*:string*/)/*:?CFBEntry*/ {
3-
//return cfb.find(path);
43
var UCFullPaths/*:Array<string>*/ = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });
54
var UCPaths/*:Array<string>*/ = UCFullPaths.map(function(x) { var y = x.split("/"); return y[y.length - (x.slice(-1) == "/" ? 2 : 1)]; });
65
var k/*:boolean*/ = false;
@@ -10,10 +9,12 @@ function find(cfb/*:CFBContainer*/, path/*:string*/)/*:?CFBEntry*/ {
109
var w/*:number*/ = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);
1110
if(w !== -1) return cfb.FileIndex[w];
1211

13-
UCPath = UCPath.replace(chr0,'').replace(chr1,'!');
12+
var m = !UCPath.match(chr1);
13+
UCPath = UCPath.replace(chr0,'');
14+
if(m) UCPath = UCPath.replace(chr1,'!');
1415
for(w = 0; w < UCFullPaths.length; ++w) {
15-
if(UCFullPaths[w].replace(chr0,'').replace(chr1,'!') == UCPath) return cfb.FileIndex[w];
16-
if(UCPaths[w].replace(chr0,'').replace(chr1,'!') == UCPath) return cfb.FileIndex[w];
16+
if((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];
17+
if((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];
1718
}
1819
return null;
1920
}

cfb.flow.js

+11-12
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@ var Base64 = (function make_b64(){
99
return {
1010
encode: function(input/*:string*/)/*:string*/ {
1111
var o = "";
12-
var c1/*:number*/, c2/*:number*/, c3/*:number*/;
13-
var e1/*:number*/, e2/*:number*/, e3/*:number*/, e4/*:number*/;
12+
var c1=0, c2=0, c3=0, e1=0, e2=0, e3=0, e4=0;
1413
for(var i = 0; i < input.length; ) {
1514
c1 = input.charCodeAt(i++);
1615
e1 = (c1 >> 2);
@@ -29,9 +28,7 @@ var Base64 = (function make_b64(){
2928
},
3029
decode: function b64_decode(input/*:string*/)/*:string*/ {
3130
var o = "";
32-
var c1/*:number*/, c2/*:number*/, c3/*:number*/;
33-
var e1/*:number*/, e2/*:number*/, e3/*:number*/, e4/*:number*/;
34-
// eslint-disable-next-line no-useless-escape
31+
var c1=0, c2=0, c3=0, e1=0, e2=0, e3=0, e4=0;
3532
input = input.replace(/[^\w\+\/\=]/g, "");
3633
for(var i = 0; i < input.length;) {
3734
e1 = map.indexOf(input.charAt(i++));
@@ -177,10 +174,10 @@ type SectorList = {
177174
}
178175
type CFBFiles = {[n:string]:CFBEntry};
179176
*/
180-
/* [MS-CFB] v20130118 */
177+
/* [MS-CFB] v20171201 */
181178
var CFB = (function _CFB(){
182179
var exports/*:CFBModule*/ = /*::(*/{}/*:: :any)*/;
183-
exports.version = '1.0.3';
180+
exports.version = '1.0.5';
184181
/* [MS-CFB] 2.6.4 */
185182
function namecmp(l/*:string*/, r/*:string*/)/*:number*/ {
186183
var L = l.split("/"), R = r.split("/");
@@ -204,6 +201,7 @@ function filename(p/*:string*/)/*:string*/ {
204201
var fs/*:: = require('fs'); */;
205202
function get_fs() { return fs || (fs = require('fs')); }
206203
function parse(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {
204+
if(file.length < 512) throw new Error("CFB file size " + file.length + " < 512");
207205
var mver = 3;
208206
var ssz = 512;
209207
var nmfs = 0; // number of mini FAT sectors
@@ -360,7 +358,7 @@ function build_full_paths(FI/*:CFBFileIndex*/, FP/*:Array<string>*/, Paths/*:Arr
360358
if(L !== -1) { dad[L] = dad[i]; q.push(L); }
361359
if(R !== -1) { dad[R] = dad[i]; q.push(R); }
362360
}
363-
for(i=1; i !== pl; ++i) if(dad[i] === i) {
361+
for(i=1; i < pl; ++i) if(dad[i] === i) {
364362
if(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];
365363
else if(L !== -1 && dad[L] !== L) dad[i] = dad[L];
366364
}
@@ -752,7 +750,6 @@ function _write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes*/ {
752750
}
753751
/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */
754752
function find(cfb/*:CFBContainer*/, path/*:string*/)/*:?CFBEntry*/ {
755-
//return cfb.find(path);
756753
var UCFullPaths/*:Array<string>*/ = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });
757754
var UCPaths/*:Array<string>*/ = UCFullPaths.map(function(x) { var y = x.split("/"); return y[y.length - (x.slice(-1) == "/" ? 2 : 1)]; });
758755
var k/*:boolean*/ = false;
@@ -762,10 +759,12 @@ function find(cfb/*:CFBContainer*/, path/*:string*/)/*:?CFBEntry*/ {
762759
var w/*:number*/ = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);
763760
if(w !== -1) return cfb.FileIndex[w];
764761

765-
UCPath = UCPath.replace(chr0,'').replace(chr1,'!');
762+
var m = !UCPath.match(chr1);
763+
UCPath = UCPath.replace(chr0,'');
764+
if(m) UCPath = UCPath.replace(chr1,'!');
766765
for(w = 0; w < UCFullPaths.length; ++w) {
767-
if(UCFullPaths[w].replace(chr0,'').replace(chr1,'!') == UCPath) return cfb.FileIndex[w];
768-
if(UCPaths[w].replace(chr0,'').replace(chr1,'!') == UCPath) return cfb.FileIndex[w];
766+
if((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];
767+
if((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];
769768
}
770769
return null;
771770
}

cfb.js

+11-12
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@ var Base64 = (function make_b64(){
99
return {
1010
encode: function(input) {
1111
var o = "";
12-
var c1, c2, c3;
13-
var e1, e2, e3, e4;
12+
var c1=0, c2=0, c3=0, e1=0, e2=0, e3=0, e4=0;
1413
for(var i = 0; i < input.length; ) {
1514
c1 = input.charCodeAt(i++);
1615
e1 = (c1 >> 2);
@@ -29,9 +28,7 @@ var Base64 = (function make_b64(){
2928
},
3029
decode: function b64_decode(input) {
3130
var o = "";
32-
var c1, c2, c3;
33-
var e1, e2, e3, e4;
34-
// eslint-disable-next-line no-useless-escape
31+
var c1=0, c2=0, c3=0, e1=0, e2=0, e3=0, e4=0;
3532
input = input.replace(/[^\w\+\/\=]/g, "");
3633
for(var i = 0; i < input.length;) {
3734
e1 = map.indexOf(input.charAt(i++));
@@ -159,10 +156,10 @@ function new_buf(sz) {
159156
return o;
160157
}
161158

162-
/* [MS-CFB] v20130118 */
159+
/* [MS-CFB] v20171201 */
163160
var CFB = (function _CFB(){
164161
var exports = {};
165-
exports.version = '1.0.3';
162+
exports.version = '1.0.5';
166163
/* [MS-CFB] 2.6.4 */
167164
function namecmp(l, r) {
168165
var L = l.split("/"), R = r.split("/");
@@ -186,6 +183,7 @@ function filename(p) {
186183
var fs;
187184
function get_fs() { return fs || (fs = require('fs')); }
188185
function parse(file, options) {
186+
if(file.length < 512) throw new Error("CFB file size " + file.length + " < 512");
189187
var mver = 3;
190188
var ssz = 512;
191189
var nmfs = 0; // number of mini FAT sectors
@@ -342,7 +340,7 @@ function build_full_paths(FI, FP, Paths) {
342340
if(L !== -1) { dad[L] = dad[i]; q.push(L); }
343341
if(R !== -1) { dad[R] = dad[i]; q.push(R); }
344342
}
345-
for(i=1; i !== pl; ++i) if(dad[i] === i) {
343+
for(i=1; i < pl; ++i) if(dad[i] === i) {
346344
if(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];
347345
else if(L !== -1 && dad[L] !== L) dad[i] = dad[L];
348346
}
@@ -729,7 +727,6 @@ if(file.size > 0 && file.size < 0x1000) {
729727
}
730728
/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */
731729
function find(cfb, path) {
732-
//return cfb.find(path);
733730
var UCFullPaths = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });
734731
var UCPaths = UCFullPaths.map(function(x) { var y = x.split("/"); return y[y.length - (x.slice(-1) == "/" ? 2 : 1)]; });
735732
var k = false;
@@ -739,10 +736,12 @@ function find(cfb, path) {
739736
var w = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);
740737
if(w !== -1) return cfb.FileIndex[w];
741738

742-
UCPath = UCPath.replace(chr0,'').replace(chr1,'!');
739+
var m = !UCPath.match(chr1);
740+
UCPath = UCPath.replace(chr0,'');
741+
if(m) UCPath = UCPath.replace(chr1,'!');
743742
for(w = 0; w < UCFullPaths.length; ++w) {
744-
if(UCFullPaths[w].replace(chr0,'').replace(chr1,'!') == UCPath) return cfb.FileIndex[w];
745-
if(UCPaths[w].replace(chr0,'').replace(chr1,'!') == UCPath) return cfb.FileIndex[w];
743+
if((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];
744+
if((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];
746745
}
747746
return null;
748747
}

dist/cfb.js

+11-12
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@ var Base64 = (function make_b64(){
99
return {
1010
encode: function(input) {
1111
var o = "";
12-
var c1, c2, c3;
13-
var e1, e2, e3, e4;
12+
var c1=0, c2=0, c3=0, e1=0, e2=0, e3=0, e4=0;
1413
for(var i = 0; i < input.length; ) {
1514
c1 = input.charCodeAt(i++);
1615
e1 = (c1 >> 2);
@@ -29,9 +28,7 @@ var Base64 = (function make_b64(){
2928
},
3029
decode: function b64_decode(input) {
3130
var o = "";
32-
var c1, c2, c3;
33-
var e1, e2, e3, e4;
34-
// eslint-disable-next-line no-useless-escape
31+
var c1=0, c2=0, c3=0, e1=0, e2=0, e3=0, e4=0;
3532
input = input.replace(/[^\w\+\/\=]/g, "");
3633
for(var i = 0; i < input.length;) {
3734
e1 = map.indexOf(input.charAt(i++));
@@ -159,10 +156,10 @@ function new_buf(sz) {
159156
return o;
160157
}
161158

162-
/* [MS-CFB] v20130118 */
159+
/* [MS-CFB] v20171201 */
163160
var CFB = (function _CFB(){
164161
var exports = {};
165-
exports.version = '1.0.3';
162+
exports.version = '1.0.5';
166163
/* [MS-CFB] 2.6.4 */
167164
function namecmp(l, r) {
168165
var L = l.split("/"), R = r.split("/");
@@ -186,6 +183,7 @@ function filename(p) {
186183
var fs;
187184
function get_fs() { return fs || (fs = require('fs')); }
188185
function parse(file, options) {
186+
if(file.length < 512) throw new Error("CFB file size " + file.length + " < 512");
189187
var mver = 3;
190188
var ssz = 512;
191189
var nmfs = 0; // number of mini FAT sectors
@@ -342,7 +340,7 @@ function build_full_paths(FI, FP, Paths) {
342340
if(L !== -1) { dad[L] = dad[i]; q.push(L); }
343341
if(R !== -1) { dad[R] = dad[i]; q.push(R); }
344342
}
345-
for(i=1; i !== pl; ++i) if(dad[i] === i) {
343+
for(i=1; i < pl; ++i) if(dad[i] === i) {
346344
if(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];
347345
else if(L !== -1 && dad[L] !== L) dad[i] = dad[L];
348346
}
@@ -729,7 +727,6 @@ if(file.size > 0 && file.size < 0x1000) {
729727
}
730728
/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */
731729
function find(cfb, path) {
732-
//return cfb.find(path);
733730
var UCFullPaths = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });
734731
var UCPaths = UCFullPaths.map(function(x) { var y = x.split("/"); return y[y.length - (x.slice(-1) == "/" ? 2 : 1)]; });
735732
var k = false;
@@ -739,10 +736,12 @@ function find(cfb, path) {
739736
var w = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);
740737
if(w !== -1) return cfb.FileIndex[w];
741738

742-
UCPath = UCPath.replace(chr0,'').replace(chr1,'!');
739+
var m = !UCPath.match(chr1);
740+
UCPath = UCPath.replace(chr0,'');
741+
if(m) UCPath = UCPath.replace(chr1,'!');
743742
for(w = 0; w < UCFullPaths.length; ++w) {
744-
if(UCFullPaths[w].replace(chr0,'').replace(chr1,'!') == UCPath) return cfb.FileIndex[w];
745-
if(UCPaths[w].replace(chr0,'').replace(chr1,'!') == UCPath) return cfb.FileIndex[w];
743+
if((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];
744+
if((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];
746745
}
747746
return null;
748747
}

dist/cfb.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/cfb.min.map

+1-1
Large diffs are not rendered by default.

dist/xlscfb.js

+9-7
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ type SectorList = {
3535
}
3636
type CFBFiles = {[n:string]:CFBEntry};
3737
*/
38-
/* [MS-CFB] v20130118 */
38+
/* [MS-CFB] v20171201 */
3939
var CFB = (function _CFB(){
4040
var exports/*:CFBModule*/ = /*::(*/{}/*:: :any)*/;
41-
exports.version = '1.0.3';
41+
exports.version = '1.0.5';
4242
/* [MS-CFB] 2.6.4 */
4343
function namecmp(l/*:string*/, r/*:string*/)/*:number*/ {
4444
var L = l.split("/"), R = r.split("/");
@@ -62,6 +62,7 @@ function filename(p/*:string*/)/*:string*/ {
6262
var fs/*:: = require('fs'); */;
6363
function get_fs() { return fs || (fs = require('fs')); }
6464
function parse(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {
65+
if(file.length < 512) throw new Error("CFB file size " + file.length + " < 512");
6566
var mver = 3;
6667
var ssz = 512;
6768
var nmfs = 0; // number of mini FAT sectors
@@ -218,7 +219,7 @@ function build_full_paths(FI/*:CFBFileIndex*/, FP/*:Array<string>*/, Paths/*:Arr
218219
if(L !== -1) { dad[L] = dad[i]; q.push(L); }
219220
if(R !== -1) { dad[R] = dad[i]; q.push(R); }
220221
}
221-
for(i=1; i !== pl; ++i) if(dad[i] === i) {
222+
for(i=1; i < pl; ++i) if(dad[i] === i) {
222223
if(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];
223224
else if(L !== -1 && dad[L] !== L) dad[i] = dad[L];
224225
}
@@ -610,7 +611,6 @@ function _write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes*/ {
610611
}
611612
/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */
612613
function find(cfb/*:CFBContainer*/, path/*:string*/)/*:?CFBEntry*/ {
613-
//return cfb.find(path);
614614
var UCFullPaths/*:Array<string>*/ = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });
615615
var UCPaths/*:Array<string>*/ = UCFullPaths.map(function(x) { var y = x.split("/"); return y[y.length - (x.slice(-1) == "/" ? 2 : 1)]; });
616616
var k/*:boolean*/ = false;
@@ -620,10 +620,12 @@ function find(cfb/*:CFBContainer*/, path/*:string*/)/*:?CFBEntry*/ {
620620
var w/*:number*/ = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);
621621
if(w !== -1) return cfb.FileIndex[w];
622622

623-
UCPath = UCPath.replace(chr0,'').replace(chr1,'!');
623+
var m = !UCPath.match(chr1);
624+
UCPath = UCPath.replace(chr0,'');
625+
if(m) UCPath = UCPath.replace(chr1,'!');
624626
for(w = 0; w < UCFullPaths.length; ++w) {
625-
if(UCFullPaths[w].replace(chr0,'').replace(chr1,'!') == UCPath) return cfb.FileIndex[w];
626-
if(UCPaths[w].replace(chr0,'').replace(chr1,'!') == UCPath) return cfb.FileIndex[w];
627+
if((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];
628+
if((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];
627629
}
628630
return null;
629631
}

0 commit comments

Comments
 (0)