Standard KeySym names
are obtained from <X11/keysymdef.h> by removing the XK_ prefix from each
name. KeySyms that are not part of the Xlib standard also may be obtained
with this function. The set of KeySyms that are available in this manner
and the mechanisms by which Xlib obtains them is implementation-dependent.

If the KeySym name is not in the Host Portable Character Encoding, the
result is implementation-dependent. If the specified string does not match
a valid KeySym, XStringToKeysym returns NoSymbol.

The returned string
is in a static area and must not be modified. The returned string is in
the Host Portable Character Encoding. If the specified KeySym is not defined,
XKeysymToString returns a NULL.

The XKeycodeToKeysym function uses internal
Xlib tables and returns the KeySym defined for the specified KeyCode and
the element of the KeyCode vector. If no symbol is defined, XKeycodeToKeysym
returns NoSymbol.

If the specified KeySym is not defined for any KeyCode,
XKeysymToKeycode returns zero.

The XConvertCase function returns the
uppercase and lowercase forms of the specified Keysym, if the KeySym is
subject to case conversion; otherwise, the specified KeySym is returned
to both lower_return and upper_return. Support for conversion of other than
Latin and Cyrillic KeySyms is implementation-dependent.