diff --git a/irc/client_lookup_set.go b/irc/client_lookup_set.go index b83990bf..95314509 100644 --- a/irc/client_lookup_set.go +++ b/irc/client_lookup_set.go @@ -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)) diff --git a/irc/utils/glob.go b/irc/utils/glob.go index 891358b3..04ee6116 100644 --- a/irc/utils/glob.go +++ b/irc/utils/glob.go @@ -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("^(")