XSetLocaleModifiers() XSetLocaleModifiers()
Name
XSetLocaleModifiers - configure locale modifiers.
Synopsis
char *XSetLocaleModifiers(modifier_list)
char *modifier_list;
Arguments
modifier_list
Specifies the modifiers.
Returns
The previous locale modifiers on success; NULL on failure.
Availability
Release 5 and later.
Description
XSetLocaleModifiers() sets or queries the X modifiers for the current locale setting. If the modifier_list argument is NULL, XSetLocale-
Modifiers() returns the current settings of the X modifiers without modifying them. Otherwise, the modifier_list argument is the empty
string or a string of the form "{@category=value}", that is, having zero or more concatenated "@category=value" entries where category is a
category name and value is the (possibly empty) setting for that category. The values are encoded in the current locale. Category names
are restricted to the POSIX Portable Filename Character Set.
The local host X locale modifiers announcer (on POSIX-compliant systems, the XMODIFIERS environment variable) is appended to the modi-
fier_list to provide default values on the local host. If a given category appears more than once in the list, the first setting in the
list is used. If a given category is not included in the full modifier list, the category is set to an implementation-dependent default
for the current locale. An empty value for a category explicitly specifies the implementation-dependent default.
If XSetLocaleModifiers() is successful, it returns a string of the current locale modifiers obtained from the modifier_list argument and
the XMODIFIERS environment variable. This string is formatted so that it may be passed in a subsequent call to XSetLocaleModifiers() to
restore the state of the X modifiers. When the current modifiers are queried with a NULL modifier_list argument, the returned string is
also in this format.
If invalid values are given for one or more modifier categories supported by the locale, a NULL pointer is returned, and none of the cur-
rent modifiers are changed.
At program startup the modifiers that are in effect are unspecified until the first successful call to set them. Whenever the locale is
changed, the modifiers that are in effect become unspecified until the next successful call to set them. Clients should always call XSet-
LocaleModifiers() with a non-NULL modifier_list after setting the locale, before they call any locale-dependent Xlib routine.
The only standard modifier category currently defined is "im," which identifies the desired input method. The values for this category are
not standardized. A single locale may use multiple input methods, switching input method under user control. The modifier may specify the
initial input method in effect, or an ordered list of input methods. Multiple input methods may be specified in a single im value string
in an implementation-dependent manner.
The returned modifiers string is owned by Xlib and should not be modified or freed by the client. It may be freed by Xlib after the cur-
rent locale or modifiers is changed. Until freed, it will not be modified by Xlib.
See Also
XSupportsLocale().
Xlib - Locale Management XSetLocaleModifiers()