10.5 Internationalized Interclient Communication
You’ll need to understand non-internationalized interclient communication before reading this; see Chapter 12.
When writing an internationalized application it is not safe to
assume that all interclient communication with text properties will be
done with Latin-1 or ASCII strings. R5 provides some new functions that
do not make this assumption. The first is a convenience routine for
communication with window managers.
XmbSetWMProperties() is a function very similar to
XSetWMProperties(), except that the
icon_name arguments are multi-byte strings
XTextProperty pointers) in the encoding
of the locale. If these strings can be converted to the
STRING encoding (Latin-1 plus newline and tab), then
WM_ICON_NAME properties are created with type
STRING. If this conversion cannot be performed, the
strings are converted to Compound Text (this conversion can always be
done, by the definition of Compound Text), and the properties are
created with type
COMPOUND_TEXT. Note that there is
no wide-character version of this function.
Since X properties have a single contiguous block of data as their
value, they cannot directly represent types such as
char **. But sometimes such a complex type must be represented
(imagine a text editor setting a property to a set of disjointed
selected strings). To allow this, X11R4 defined the
XTextProperty structure (shown in Example 10-6) and the functions ...