Both sides previous revisionPrevious revision | Next revisionBoth sides next revision |
config:filter_files [2020/08/23 15:17] – Change links from viewcvs/cvsweb to gitlab. digital man | config:filter_files [2021/08/08 23:35] – Document the new support of text on either/both sides of the asterisk in patterns digital man |
---|
Filter configuration (''[[dir:ctrl]]/*.cfg'') and trash can (''[[dir:text]]/*.can'') files allow the sysop to specify words (or any sequence of characters) that will be used to disallow clients, users, or their content. | Filter configuration (''[[dir:ctrl]]/*.cfg'') and trash can (''[[dir:text]]/*.can'') files allow the sysop to specify words (or any sequence of characters) that will be used to disallow clients, users, or their content. |
| |
Each line in a filter file may contain a comparison sequence. Blank lines and lines beginning with a semicolon are ignored. | Each line in a filter file may contain a comparison pattern. Blank lines and lines beginning with a semicolon character ('';'') are ignored. |
| |
===== Comparison Sequences ===== | ===== Comparison Patterns ===== |
* Leading white-space characters are ignored | * Leading white-space characters are ignored |
* Sequences of alphabetic letters are treated case-insensitively | * Alphabetic character are compared case-insensitively |
* C-style string-literal backslash (''\'') [[wp>C_syntax#Strings|escape sequences]] are supported (as of v3.17c) | * C-style string-literal backslash (''\'') [[wp>C_syntax#Strings|escape sequences]] are supported in patterns (as of v3.17c) |
* Sequences //beginning// with an exclamation mark (''!'') negate the match logic for that sequence | * Patterns //beginning// with an exclamation mark (''!'') negate the match logic for that pattern |
* Sequences //beginning// with an asterisk (''*'') match only if the characters following the ''*'' are found at the end of the comparison string | * Patterns //ending// with a caret (''^'') match only if the preceding (left most) characters are found at the beginning of the comparison string ((The caret is a legacy pattern matching character made obsolete/redundant by the asterisk)) |
* Sequences //ending// with an asterisk (''*'') or caret (''^'') match only if the characters preceding are found at the beginning of the comparison string | * Patterns //ending// with a tilde (''~'') match when the preceding string of characters are found //anywhere// within the comparison string |
* Sequences //ending// with a tilde (''~'') match when the preceding string of characters are found //anywhere// within the comparison string | * Patterns //including// an asterisk (''*'') will match when both the left and right string fragments (on either/both sides of the ''*'') match the comparison string (as of v3.19a) ((Additional (more than one) asterisks in a comparison pattern are not treated specially)) |
* All other sequences are "exact match" string comparisons | * All other patterns are "exact match" string comparisons |
| |
| **Note:**\\ |
| There's no effective difference between the patterns "word^" and "word*". |
| |
==== Examples ==== | ==== Examples ==== |
* ''sysop'' in the ''name.can'' file would mean users could not use the name "sysop". | * ''sysop'' in the ''name.can'' file would mean new users could not use the name "sysop". |
* ''sysop*'' would mean users could not use names //beginning// with the word "sysop", like "sysop the" or "sysops". | * ''sysop*'' would mean new users could not use names //beginning// with the word "sysop", like "sysop the" or "sysops". |
* ''sysop~'' would mean users could not use names that have the word "sysop" //anywhere// in them, like "imthesysop" or "Joe Sysop". | * ''sysop~'' would mean new users could not use names that have the word "sysop" //anywhere// in them, like "imthesysop" or "Joe Sysop". |
| |
=== Match strings with the character sequence "viagra" anywhere within === | === Match strings with the character sequence "viagra" anywhere within === |