This patch is a clean-up/bug-fix version of gtk-a-higuti-980912-0.patch.
This patch adds support for CJK (Chinese, Japanese, and Korean)
locales in the GtkText widget, using wide characters. It changes
the internal representation of text in GtkEntry, too.
Changes:
* gdk/gdk.c
(gdk_mbstowcs): New function. Nearly equals to mbstowcs, but
implemented by a combination of Xlib functions, so
it works even with X_LOCALE.
(gdk_wcstombs): New function.
(g_mbtowc): Removed. No longer needed.
* gdk/gdk.h
(gdk_text_width_wc): New prototype.
(gdk_char_width_wc): New prototype.
(gdk_draw_text_wc): New prototype.
(gdk_wcstombs): New prototype.
(gdk_mbstowcs): New prototype.
* gdk/gdkdraw.c
(gdk_draw_text_wc): New function.
* gdk/gdkfont.c
(gdk_text_width_wc): New function.
(gdk_char_width_wc): New function.
* gdk/gdki18n.h
(mblen, mbtowc, wctomb, mbstowcs, wcstombs,
wcslen, wcscpy, wcsncpy):
Removed. No longer needed.
(iswalnum): Removed.
(gdk_iswalnum): New macro.
(gdk_iswspace): New macro.
* gdk/gdktype.h
(GdkWchar): New typedef.
* gtk/gtkentry.h, gtk/gtkentry.c
There are many changes according to the change of the
internal representation of text, from multibyte string
to wide characters.
* gtk/gtkprivate.h, gtk/gtkmain.c
Removed the variable gtk_use_mb and related codes.
* gtk/gtkspinbutton.c
Some changes according to the change of type of entry->text.
* gtk/gtktext.h, gtk/gtktext.c
Changed the internal representation of text. We use GdkWchar
if a fontset is supplied. If not, we use guchar to save
memory.