Node:Name Expansion, Next:, Previous:Aux-Item Types, Up:Top



Name Expansion

Names in LysKOM can be expanded according to two rules, regexp matching or KOM conventions.

Regexp Matching

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.

KOM Conventions

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.