DESCRIPTION

The atBind module maintains an internal database storing all known
version bind rules.

The atBindAddRule function stores a new
rule in the internal database. It expects the rule name,
optionally including parameter definitions, and the rule body as
string arguments. Additionally, the filename (srcFile) of the
file, where the rule is read from, and the line within that file
(srcLine), may be given. This is used for producing proper
error messages. atBindAddRule returns -1 on error, 0 otherwise.

atBindDelRule removes a previously defined rule
from the internal database. It returns a negative return value (-1),
when no rule with the given name was not found in the internal
database.

The atBindRuleFile function scans a file containing version bind
rules and adds all contained rules to the internal database.
It returns the number of version bind rules successfully added to the
internal database. A zero return value may also indicate an error.

The switch atBindDisplayErrors may be set TRUE to enable error
reporting during parsing of version binding rules. Error messages will
be written directly to standard error. Initially, atBindDisplayErrors
is set FALSE.

AtBindTestRule reports whether ruleName is defined as
version binding rule or not. It returns a non zero (TRUE) value when
the name is defined, otherwise FALSE.

atBindListRules returns all known bind rule names in a
list. The list memory is allocated by use of malloc(3). On error,
atBindListRules returns a null pointer.

DIAGNOSTICS

Upon error, each routine returns a null value, the variable
atBindError is set true (non-zero), and an explaining
message is copied to the atBindErrorMsg string buffer. The
atBindError variable is cleared upon successful calls, the message
buffer remains unchanged.

ENVIRONMENT

SHAPETOOLS - list of path names as search space for files
containing version bind rules. The bind rule files must be named
BindRules. Default path is /usr/local/lib/shape.