[lambda-gtk-devel] Patch to add support for unicode labels.

Dear All, This patch adds support for passing unicode strings to gtk for labels and the like. gtk supports this, and it works on sbcl/x86 and sbcl/ppc (both sbcl-0.9.9). Can't test it on ppc64 since there isn't a version of sbcl that currently runs on it. The patch is in two parts. The first part just adds some functions to the api that I need for some of my code. The second part adds support for passing utf8-encoded strings to gtk. Please apply for sbcl and could someone test for CMUCL etc. Thanks. Joslwah. p.s. Is it possible to increment the version number occasionally? I know of at least two incompatible versions around both carrying the 0.1 label. One works with older versions of sbcl, and one only with newer! -------------Patch follows------------------------------------------------------------ diff -r -u lambda-gtk_0.1-pre/gtk.api lambda-gtk_0.1/gtk.api --- lambda-gtk_0.1-pre/gtk.api 2006-02-16 14:07:04.000000000 +0800 +++ lambda-gtk_0.1/gtk.api 2006-02-13 18:49:04.000000000 +0800 @@ -1091,6 +1091,9 @@ (:function "gdk_threads_enter") (:function "gdk_threads_leave") (:function "gdk_threads_init") +(:function "gdk_display_open") +(:function "gdk_display_get_default_screen") +(:function "gtk_window_set_screen") (:function "gtk_accel_group_get_type") (:function "gtk_accel_group_new") (:function "gtk_accel_group_lock") diff -r -u lambda-gtk_0.1-pre/lambda-gtk-cmusbcl.lisp lambda-gtk_0.1/lambda-gtk-cmusbcl.lisp --- lambda-gtk_0.1-pre/lambda-gtk-cmusbcl.lisp 2006-02-16 14:07:05.000000000 +0800 +++ lambda-gtk_0.1/lambda-gtk-cmusbcl.lisp 2006-02-13 19:10:30.000000000 +0800 @@ -86,7 +86,7 @@ ( (void ()) void) ( (pointer (void ())) (* t)) - ( (pointer (char ())) c-string ) + ( (pointer (char ())) utf8-string ) ( (pointer (gchar ())) c-string ) ( (pointer (guchar ())) c-string ) @@ -417,12 +417,14 @@ (if (eql (car arg) 'pointer) (let ((isa (sbcl-type arg))) (if (or (eql isa 'c-string) + (eql isa 'utf8-string) (equal isa '(* T))) (list isa) (let ((x (second isa))) ;;(print (list :x-> x)) (cond ((symbolp x) ; basic type - (if (eql x 'c-string) + (if (or (eql x 'c-string) + (eql x 'utf8-string)) (list (list '* t)) (list x ':in-out))) ((stringp x)
participants (1)
-
Joslwah