Node:Name Expansion, Next:LysKOM Content Types, Previous:Aux-Item Types, Up:Top
Names in LysKOM can be expanded according to two rules, regexp matching or KOM conventions.
This type of expansion, used by the re-z-lookup
call and
its predecessors simply matches ed
(1) style
regular expressions to names in the database to find the list of
matching names. The matching is case sensitive.
This type of matching is a little more complicated. Patterns consist of
words and parenthesized expressions, and contain implicit wildcards. The
lyskomd
program implements an approximation of theses
conventions. Since lyskomd
is the trendsetter, these semantics
are good enough.
The rules are simple. Any parenthesized expressions are removed from the pattern and the names being checked for matches. Then the words of the pattern are examined from beginning to end, and if every pattern word matches the prefix of the corresponding word in the name, the name matches the pattern.
For example "L D" matches "LysKOM (client, server and protocol) Discussion (and) Ideas", but not "LysKOM Protocol Discussion".
The matching is case insensitive. Character case is converted
according to a collate table in the server. The collate table can be
retrieved from the server with the get-collate-table
call.
The current collate table simply maps ISO 8859-1 uppercase and lowercase letters to equivalents, and also considered braces and suchlike equivalent according to swascii rules.