Skip to content

Commit ac77f83

Browse files
committed
handle regexps with missing \E in NewRegexpData (fixes #3700)
1 parent 4a77c1f commit ac77f83

1 file changed

Lines changed: 8 additions & 3 deletions

File tree

internal/buffer/search.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package buffer
33
import (
44
"fmt"
55
"regexp"
6+
"regexp/syntax"
67
"unicode/utf8"
78

89
"github.com/zyedidia/micro/v2/internal/util"
@@ -33,9 +34,13 @@ func NewRegexpData(s string) (*RegexpData, error) {
3334
var err error
3435
regex[0], err = regexp.Compile(s)
3536
if err == nil {
36-
regex[padStart] = regexp.MustCompile(".(?:" + s + ")")
37-
regex[padEnd] = regexp.MustCompile("(?:" + s + ").")
38-
regex[padStart|padEnd] = regexp.MustCompile(".(?:" + s + ").")
37+
regex[padStart], err = regexp.Compile(".(?:" + s + ")")
38+
if err == nil {
39+
regex[padEnd] = regexp.MustCompile("(?:" + s + ").")
40+
regex[padStart|padEnd] = regexp.MustCompile(".(?:" + s + ").")
41+
} else {
42+
err = &syntax.Error{syntax.ErrorCode(`possibly \Q without \E`), s}
43+
}
3944
}
4045
return &RegexpData{regex}, err
4146
}

0 commit comments

Comments
 (0)