com gtk/php-gtk: Fix UTF-8 issues.: ext/gtk+/gtk.overrides

[email protected] (David Soria Parra) Sun, 12 Feb 2006 20:50:18 +0000
Newsgroups php.gtk.cvs
Message-ID <[email protected]>
Commit:    5226fc407dfa578cac3eafe0196ebb0655b9c619
Author:    Andrei Zmievski <[email protected]>         Sun, 12 Feb 2006 20:50:18 +0000
Parents:   7290c370c0c5ebd5b19181c3e78c73acf3ba0e5d
Branches:  master

Link:       http://git.php.net/?p=gtk/php-gtk.git;a=commitdiff;h=5226fc407dfa578cac3eafe0196ebb0655b9c619

Log:
Fix UTF-8 issues.

Changed paths:
  M  ext/gtk+/gtk.overrides


Diff:
5226fc407dfa578cac3eafe0196ebb0655b9c619
diff --git a/ext/gtk+/gtk.overrides b/ext/gtk+/gtk.overrides
index 690f1f0..acb4adb 100644
--- a/ext/gtk+/gtk.overrides
+++ b/ext/gtk+/gtk.overrides
@@ -650,13 +650,26 @@ PHP_METHOD
 {
     char *stock_id;
     GtkStockItem item;
+    gchar *cp = NULL;
+    gsize cp_len = 0;
+    zend_bool free_cp = FALSE;
 
     if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "s", &stock_id))
         return;
 
     if (gtk_stock_lookup(stock_id, &item)) {
+        cp = phpg_from_utf8(item.label, strlen(item.label), &cp_len, &free_cp TSRMLS_CC);
+        if (cp) {
+            item.label = cp;
+        } else {
+            php_error(E_WARNING, "Could not convert item label from UTF-8");
+            return;
+        }
         php_gtk_build_value(&return_value, "(ssiis)", item.stock_id, item.label,
                             item.modifier, item.keyval, item.translation_domain);
+        if (free_cp) {
+            g_free(cp);
+        }
     } else {
         return;
     }