From a30844d0682b89218f444d762920eeb9489f811c Mon Sep 17 00:00:00 2001 From: Kian Parvin Date: Tue, 7 May 2024 12:00:02 +0200 Subject: [PATCH] Fix maskInlineIgnore to handle non-ascii input --- pkg/rule/rule.go | 10 +--------- pkg/rule/rule_test.go | 12 +++++++++++- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/pkg/rule/rule.go b/pkg/rule/rule.go index 1bd7f0ed..8ceed4f1 100644 --- a/pkg/rule/rule.go +++ b/pkg/rule/rule.go @@ -205,15 +205,7 @@ func maskInlineIgnore(line string) string { return line } - lineWithoutIgnoreRule := []rune(line) - - start := inlineIgnoreMatch[0] - end := inlineIgnoreMatch[1] - - for i := start; i < end; i++ { - // use null terminator to indicate a masked character - lineWithoutIgnoreRule[i] = rune(0) - } + lineWithoutIgnoreRule := ignoreRuleRegex.ReplaceAll([]byte(line), []byte{}) return string(lineWithoutIgnoreRule) } diff --git a/pkg/rule/rule_test.go b/pkg/rule/rule_test.go index d223e35f..47295c86 100644 --- a/pkg/rule/rule_test.go +++ b/pkg/rule/rule_test.go @@ -171,13 +171,23 @@ func Test_maskInlineIgnore(t *testing.T) { { desc: "replace wokeignore:rule", line: "wokeignore:rule=master-slave", - expected: "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", + expected: "", }, { desc: "not replace wokeignore:rule", line: "no inline ignore", expected: "no inline ignore", }, + { + desc: "text alongside wokeignore:rule is preserved", + line: "abc wokeignore:rule=master-slave", + expected: "abc ", + }, + { + desc: "Non-ascii characters are handled correctly", + line: "Include’s non-ascii wokeignore:rule=master", + expected: "Include’s non-ascii ", + }, } for _, tt := range tests { t.Run(tt.desc, func(t *testing.T) {