7/20/2006 UTF8_STRING support in Solaris libX11 and XLC modules ----------------------------------------------------- OVERVIEW This project adds UTF8_STRING support at our libX11. The UTF8_STRING support has been added to XFree86 several years ago and thus has been also available at X.Org libX11. Due to the availability at the XF86 and now the X.Org, it is also widely used and supported at various open source X11 applications and system libraries. Because of that, our customers are also demanding the same support in our X11 libraries. TECHNICAL OVERVIEW The will have XUTF8StringStyle at the XICCEncodingStyle as like the following: typedef enum { XStringStyle, /* STRING */ XCompoundTextStyle, /* COMPOUND_TEXT */ XTextStyle, /* text in owner's encoding (current locale)*/ XStdICCTextStyle, /* STRING, else COMPOUND_TEXT */ | XUTF8StringStyle /* UTF8_STRING */ } XICCEncodingStyle; When the XUTF8StringStyle is used as an input argument value to XmbTextListToTextProperty(3X11), XwcTextListToTextProperty(3X11), XmbTextPropertyToTextList(3X11), or XwcTextPropertyToTextList(3X11) indicating that the text property is in UTF8_STRING, the functions will appropriately convert between UTF8_STRING text property data and multibyte or wide character text list of the current locale. XLC modules of all supported locales will also have necessary internal converters added to the modules during the initialization of the XLC module. The internal converters will at least take care of encoding and possible code conversions between the current locale's multibyte or wide character text list and text data of UTF8_STRING text property. For this, XlcNUtf8String data type indicator macro will also be added at the header file for proper communication between libX11 and XLC modules: #define XlcNMultiByte "multiByte" #define XlcNWideChar "wideChar" #define XlcNCompoundText "compoundText" #define XlcNString "string" | #define XlcNUtf8String "utf8String" #define XlcNCharSet "charSet" #define XlcNCTCharSet "CTcharSet" #define XlcNChar "char" INTERFACE STABILITIES The project exports the following interfaces: Interface name Stability Note -------------- --------- ---- XUTF8StringStyle at Committed from X.Org XICEncodingStyle XlcNUtf8String Committed from X.Org XLC UTF-8 at Xlib Contracted [2] Consolidation Private UTF8_STRING support at Committed [1] from X.Org XmbTextListToTextProperty(3X11), XwcTextListToTextProperty(3X11), XmbTextPropertyToTextList(3X11), and XwcTextPropertyToTextList(3X11) There is no significant interfaces imported. RELEASE BINDING The project team asks for Micro/Patch release binding. REFERENCES [1] XmbTextListToTextProperty(3X11) man page at the case directory. [2] Contract template, contract-template.txt, at the case directory.