cvs: php-gtk /ext/scintilla scintilla.overrides
| From: | Anant Narayanan | Date: | Sat, 09 Dec 2006 22:57:42 +0000 |
| Subject: | cvs: php-gtk /ext/scintilla scintilla.overrides | ||
| Groups: | php.gtk.cvs | ||
| Request: | Send a blank email to php-gtk-cvs+get-2579@lists.php.net to get a copy of this message | ||
anant Sat Dec 9 22:57:42 2006 UTC
Modified files:
/php-gtk/ext/scintilla scintilla.overrides
Log:
get_cur_line, get_sel_text overrides; thanks to Pablo!
http://cvs.php.net/viewvc.cgi/php-gtk/ext/scintilla/scintilla.overrides?r1=1.15&r2=1.16&diff_format=u
Index: php-gtk/ext/scintilla/scintilla.overrides
diff -u php-gtk/ext/scintilla/scintilla.overrides:1.15
php-gtk/ext/scintilla/scintilla.overrides:1.16
--- php-gtk/ext/scintilla/scintilla.overrides:1.15 Wed Jul 5 04:02:10 2006
+++ php-gtk/ext/scintilla/scintilla.overrides Sat Dec 9 22:57:42 2006
@@ -63,3 +63,66 @@
g_free(text);
}
}
+
+%%
+override gtk_scintilla_get_cur_line
+PHP_METHOD
+{
+ gint length;
+ gchar *text, *utf;
+ gsize tlen;
+ zend_bool free_result = FALSE;
+
+ NOT_STATIC_METHOD();
+
+ if (!php_gtk_parse_args(ZEND_NUM_ARGS(), ""))
+ return;
+
+ GtkScintilla *scintilla = GTK_SCINTILLA(PHPG_GOBJECT(this_ptr));
+
+ length = gtk_scintilla_line_length(scintilla,
+ gtk_scintilla_line_from_position(scintilla,
+ gtk_scintilla_get_current_pos(scintilla))) + 1;
+ utf = safe_emalloc(length, sizeof(gchar), 0);
+ gtk_scintilla_get_cur_line(scintilla, length, utf);
+ text = phpg_from_utf8(utf, strlen(utf), &tlen, &free_result TSRMLS_CC);
+
+ if (text) {
+ RETVAL_STRINGL((char *)text, tlen, 1);
+ } else {
+ php_error(E_WARNING,
+ "%s::%s(): could not convert return value from UTF-8",
+ get_active_class_name(NULL TSRMLS_CC),
+ get_active_function_name(TSRMLS_C));
+ }
+
+ if (free_result)
+ g_free(text);
+}
+
+%%
+override gtk_scintilla_get_sel_text
+PHP_METHOD
+{
+ gint length;
+ gchar *text;
+ zend_bool free_text = FALSE;
+
+ NOT_STATIC_METHOD();
+
+ if (!php_gtk_parse_args(ZEND_NUM_ARGS(), ""))
+ return;
+
+ GtkScintilla *scintilla = GTK_SCINTILLA(PHPG_GOBJECT(this_ptr));
+
+ length = gtk_scintilla_get_selection_end(scintilla) -
+ gtk_scintilla_get_selection_start(scintilla) + 1;
+ text = safe_emalloc(length, sizeof(gchar), 0);
+ text[length-1] = 0;
+ gtk_scintilla_get_sel_text(scintilla, text);
+
+ RETVAL_STRINGL(text, length-1, 0);
+
+ if (free_text)
+ g_free(text);
+}