UNPKG

698 BJavaScriptView Raw
1"use strict";
2
3var 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
11module.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};