options: Add capability to define the line count parsed for the signature check

This commit is contained in:
Jöran Karl
2023-06-06 21:59:35 +02:00
parent 2d0d0416e7
commit 3c16df87ee
4 changed files with 17 additions and 2 deletions

View File

@@ -766,9 +766,15 @@ func (b *Buffer) UpdateRules() {
if length > 0 {
signatureMatch := false
if length > 1 {
detectlimit := util.IntOpt(b.Settings["detectlimit"])
lineCount := len(b.lines)
limit := lineCount
if detectlimit > 0 && lineCount > detectlimit {
limit = detectlimit
}
for i := 0; i < length && !signatureMatch; i++ {
if syntaxFiles[i].header.HasFileSignature() {
for j := 0; j < 100 && !signatureMatch; j++ {
for j := 0; j < limit && !signatureMatch; j++ {
if syntaxFiles[i].header.MatchFileSignature(b.lines[j].data) {
syntaxFile = syntaxFiles[i].fileName
b.SyntaxDef = syntaxFiles[i].syntaxDef