Next Prev Up

# 15.1 Extensions

The X Window System is based on a core protocol which can be extended to provide new functionality. An extension is generally represented by an additional set of requests or event types that are implemented by an X server supporting the extension. By definition, a client program using an extension may not be portable to other servers. However, extensions allow different server implementations and different sites to add their own special features to X, without disrupting clients that rely only on the core protocol.

Extensions are identified by assigning them unique name strings and major protocol numbers. A client program can request an X server to use a protocol extension by furnishing the extension protocol number as an argument to open-display. The X Consortium maintains a registry of standard extension names and protocol numbers.

The following paragraphs describe the CLX functions used to:

- List all supported extensions.
- Find out if a given extension is supported.

list-extensions | display &key ( :result-type 'list) | Function

| display A display. :result-type The type of name sequence to return. Returns a sequence containing the names of all extensions supported by the display server. names Type sequence of string.

query-extension | display name | Function

| display A display. name An extension name string. Returns the major-opcode for the given extension name support by the display server. If the extension is not supported, only nil values are returned. The extension name must contain only ISO Latin-1 characters; case is significant. If the extension involves additional event types, the first-event returned is the base event type code for new events; otherwise, the first-event is nil. If the extension involves additional error codes, the first-error returned is the base code for new errors; otherwise, the first-error is nil. The formats of error and event messages sent by the server are completely defined by the extension. major-opcode, first-event, first-error Type card8 or null.

Next Prev Up

© 1988, 1989 Texas Instruments Incorporated
Conversion to HTML made by Gilbert Baumann.
Last build: Tue Dec 16 23:30:42 1997