1 | "use strict";
|
2 |
|
3 | var indexOfc = function(buf, chr, offset, stop) {
|
4 | for(var i = offset || 0; i < stop; i++) {
|
5 | if(buf[i] == chr)
|
6 | return i;
|
7 | }
|
8 | return -1;
|
9 | };
|
10 |
|
11 | module.exports = function(buf, search, offset, stop) {
|
12 | stop = Math.min(stop || buf.length, buf.length);
|
13 |
|
14 | if(typeof search == "string")
|
15 | search = new Buffer(search);
|
16 | else if(typeof search == "number")
|
17 | return indexOfc(buf, search, offset, stop);
|
18 |
|
19 | offset = offset || 0;
|
20 |
|
21 | var m = 0;
|
22 | var s = -1;
|
23 |
|
24 | for(var i = offset; i < stop; ++i) {
|
25 | if(buf[i] == search[m]) {
|
26 | if(s == -1) s = i;
|
27 | ++m;
|
28 | if(m == search.length)
|
29 | return s;
|
30 | } else {
|
31 | s = -1;
|
32 | m = 0;
|
33 | }
|
34 | }
|
35 |
|
36 | return -1;
|
37 | };
|