3
0
mirror of https://github.com/ergochat/ergo.git synced 2024-11-22 11:59:40 +01:00

explanatory comment for CompileMasks

This commit is contained in:
Shivaram Lingamneni 2020-05-13 10:07:54 -04:00
parent be0dedf260
commit d092f6b330
2 changed files with 3 additions and 6 deletions

View File

@ -432,12 +432,6 @@ func (set *UserMaskSet) Length() int {
return len(set.masks)
}
// setRegexp generates a regular expression from the set of user mask
// strings. Masks are split at the two types of wildcards, `*` and
// `?`. All the pieces are meta-escaped. `*` is replaced with `.*`,
// the regexp equivalent. Likewise, `?` is replaced with `.`. The
// parts are re-joined and finally all masks are joined into a big
// or-expression.
func (set *UserMaskSet) setRegexp() {
set.RLock()
maskExprs := make([]string, len(set.masks))

View File

@ -46,6 +46,9 @@ func CompileGlob(glob string, submatch bool) (result *regexp.Regexp, err error)
return regexp.Compile(buf.String())
}
// Compile a list of globs into a single or-expression that matches any one of them.
// This is used for channel ban/invite/exception lists. It's applicable to k-lines
// but we're not using it there yet.
func CompileMasks(masks []string) (result *regexp.Regexp, err error) {
var buf bytes.Buffer
buf.WriteString("^(")