X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Futil.h;h=8b312f93649103c8715262c1339bb7c2851a1f30;hb=1299d8aee02b04d5ec723779d2e862248423e157;hp=632ba0e6d8aa2d9121634d20eb11ab50e6cba57c;hpb=68878dc8366f2f4a0afe132847aad9a51a80cdbf;p=quassel.git diff --git a/src/common/util.h b/src/common/util.h index 632ba0e6..8b312f93 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -79,3 +79,25 @@ QByteArray prettyDigest(const QByteArray &digest); * @return String with current date/time substituted in via formatting codes */ QString formatCurrentDateTimeInString(const QString &formatStr); + +/** Check if a scope rule matches a string + * + * When isRegEx is false: + * Checks that the string does NOT match ANY inverted rules (prefixed by '!'), then checks that + * it matches AT LEAST one normal (non-inverted) rule. + * + * If only inverted rules are specified, it'll match so long as the string does not match any + * inverted rules (implicit wildcard). + * + * When isRegEx is true: + * Checks that the string matches the entire scopeRule as a regular expression. If scopeRule starts + * with a '!', check that the string does NOT match the regular expression. + * + * @param string String to test, e.g. network/channel name + * @param scopeRule ';'-separated list of wildcard expressions, prefix of '!' inverts subrule + * @param isRegEx If true, treat entire scope rule as regular expression, not wildcards + * @param isCaseSensitive If true, treat as case-sensitive, else case-insensitive + * @return True if matches, otherwise false + */ +bool scopeMatch(const QString &string, const QString &scopeRule, + const bool &isRegEx = false, const bool &isCaseSensitive = false);