cvs: php-gtk /generator arg_types.php generator.php
[email protected] ("Frank M. Kromann")
| Newsgroups | php.gtk |
|---|---|
| Message-ID | <cvsfmk996539922@cvsserver> |
fmk Mon Jul 30 20:38:42 2001 EDT
Modified files:
/php-gtk/generator generator.php arg_types.php
Log:
Fixing ZTS compilation
This also adds the stuff to handle UTF8 convertions
fmk-20010730203842.txt
(text/plain, 14.8 KB)
Index: php-gtk/generator/generator.php
diff -u php-gtk/generator/generator.php:1.24 php-gtk/generator/generator.php:1.25
--- php-gtk/generator/generator.php:1.24 Mon Jul 30 15:13:14 2001
+++ php-gtk/generator/generator.php Mon Jul 30 20:38:41 2001
@@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-/* $Id: generator.php,v 1.24 2001/07/30 19:13:14 andrei Exp $ */
+/* $Id: generator.php,v 1.25 2001/07/31 00:38:41 fmk Exp $ */
/*
* Significant portions of this generator are based on the pygtk code generator
@@ -94,7 +94,8 @@
$var_list = new Var_List();
$parse_list = array('');
$arg_list = array('');
- $extra_code = array();
+ $extra_pre_code = array();
+ $extra_post_code = array();
if ($method->varargs)
trigger_error("varargs functions not supported", E_USER_ERROR);
@@ -117,13 +118,15 @@
$var_list,
$parse_list,
$arg_list,
- $extra_code,
+ $extra_pre_code,
+ $extra_post_code,
false);
}
$arg_list = implode(', ', $arg_list);
$parse_list = implode(', ', $parse_list);
- $extra_code = implode('', $extra_code);
+ $extra_pre_code = implode('', $extra_pre_code);
+ $extra_post_code = implode('', $extra_post_code);
$method_call = sprintf($method_call_tpl,
$method->c_name,
@@ -136,14 +139,15 @@
}
$return_tpl = $ret_handler->write_return($method->return_type, $var_list, true);
$return_code = sprintf($return_tpl,
- $method_call);
+ $method_call,
+ $extra_post_code);
$method_code = sprintf($method_tpl,
strtolower($method->c_name),
$var_list->to_string(),
$specs,
$parse_list,
- $extra_code,
+ $extra_pre_code,
$return_code);
fwrite($fp, $method_code);
@@ -160,7 +164,8 @@
$var_list = new Var_List();
$parse_list = array('');
$arg_list = array();
- $extra_code = array();
+ $extra_pre_code = array();
+ $extra_post_code = array();
foreach ($constructor->params as $params_array) {
list($param_type, $param_name, $param_default, $param_null) = $params_array;
@@ -180,13 +185,15 @@
$var_list,
$parse_list,
$arg_list,
- $extra_code,
+ $extra_pre_code,
+ $extra_post_code,
true);
}
$arg_list = implode(', ', $arg_list);
$parse_list = implode(', ', $parse_list);
- $extra_code = implode('', $extra_code);
+ $extra_pre_code = implode('', $extra_pre_code);
+ $extra_post_code = implode('', $extra_post_code);
$var_list->add('GtkObject', '*wrapped_obj');
@@ -195,10 +202,11 @@
$var_list->to_string(),
$specs,
$parse_list,
- $extra_code,
+ $extra_pre_code,
$constructor->c_name,
$arg_list,
- $obj_name);
+ $obj_name,
+ $extra_post_code);
fwrite($fp, $constructor_code);
@@ -215,7 +223,8 @@
$var_list = new Var_List();
$parse_list = array('');
$arg_list = array();
- $extra_code = array();
+ $extra_pre_code = array();
+ $extra_post_code = array();
if ($function->varargs)
trigger_error("varargs functions not supported", E_USER_ERROR);
@@ -238,13 +247,15 @@
$var_list,
$parse_list,
$arg_list,
- $extra_code,
+ $extra_pre_code,
+ $extra_post_code,
false);
}
$arg_list = implode(', ', $arg_list);
$parse_list = implode(', ', $parse_list);
- $extra_code = implode('', $extra_code);
+ $extra_pre_code = implode('', $extra_pre_code);
+ $extra_post_code = implode('', $extra_post_code);
$function_call = sprintf($function_call_tpl,
$function->c_name,
@@ -256,14 +267,15 @@
}
$return_tpl = $ret_handler->write_return($function->return_type, $var_list, true);
$return_code = sprintf($return_tpl,
- $function_call);
+ $function_call,
+ $extra_post_code);
$function_code = sprintf($function_tpl,
strtolower($function->c_name),
$var_list->to_string(),
$specs,
$parse_list,
- $extra_code,
+ $extra_pre_code,
$return_code);
fwrite($fp, $function_code);
Index: php-gtk/generator/arg_types.php
diff -u php-gtk/generator/arg_types.php:1.24 php-gtk/generator/arg_types.php:1.25
--- php-gtk/generator/arg_types.php:1.24 Thu Jul 19 12:39:06 2001
+++ php-gtk/generator/arg_types.php Mon Jul 30 20:38:41 2001
@@ -19,7 +19,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-/* $Id: arg_types.php,v 1.24 2001/07/19 16:39:06 andrei Exp $ */
+/* $Id: arg_types.php,v 1.25 2001/07/31 00:38:41 fmk Exp $ */
/*======================================================================*\
Function: convert_typename
@@ -77,7 +77,7 @@
\*======================================================================*/
class Arg_Type {
function write_param($type, $name, $default, $null_ok, &$var_list,
- &$parse_list, &$arg_list, &$extra_code, $in_constructor)
+ &$parse_list, &$arg_list, &$extra_pre_code, &$extra_post_code, $in_constructor)
{
trigger_error("This is an abstract class", E_USER_ERROR);
}
@@ -98,7 +98,7 @@
class String_Arg extends Arg_Type {
function write_param($type, $name, $default, $null_ok, &$var_list,
- &$parse_list, &$arg_list, &$extra_code, $in_constructor)
+ &$parse_list, &$arg_list, &$extra_pre_code, &$extra_post_code, $in_constructor)
{
if (isset($default)) {
if ($default != 'NULL')
@@ -107,7 +107,13 @@
} else
$var_list->add('char', '*' . $name);
$parse_list[] = '&' . $name;
- $arg_list[] = $name;
+
+ if (strtoupper(substr(PHP_OS, 0,3) == "WIN")) {
+ $var_list->add('gchar', '*utf8_' . $name);
+ $arg_list[] = 'utf8_' . $name;
+ $extra_post_code[] = "\tg_free(utf8_$name);\n";
+ $extra_pre_code[] = "\tutf8_$name = g_convert($name, strlen($name), \"UTF-8\", \"CP1252\", NULL, NULL, NULL);\n";
+ }
return 's';
}
@@ -116,7 +122,7 @@
if (in_array($type, array('const-gchar*', 'const-char*', 'static_string'))) {
$var_list->add('const gchar', '*ret');
return " ret = %s;\n" .
- " if (ret) {\n" .
+ "%s if (ret) {\n" .
" RETURN_STRING((char *)ret, 1);\n" .
" }\n" .
" else {\n" .
@@ -125,7 +131,7 @@
} else {
$var_list->add('gchar', '*ret');
return " ret = %s;\n" .
- " if (ret) {\n" .
+ "%s if (ret) {\n" .
" RETURN_STRING(ret, 1);\n" .
" g_free(ret);\n" .
" } else\n" .
@@ -136,7 +142,7 @@
class Char_Arg extends Arg_Type {
function write_param($type, $name, $default, $null_ok, &$var_list,
- &$parse_list, &$arg_list, &$extra_code, $in_constructor)
+ &$parse_list, &$arg_list, &$extra_pre_code, &$extra_post_code, $in_constructor)
{
if (isset($default))
$var_list->add('char', $name . ' = \'' . $default . '\'');
@@ -152,13 +158,13 @@
$var_list->add('gchar', 'ret[2]');
return " ret[0] = %s;\n" .
" ret[1] = '\\0';\n" .
- " RETURN_STRINGL(ret, 1, 1);";
+ "%s RETURN_STRINGL(ret, 1, 1);";
}
}
class Int_Arg extends Arg_Type {
function write_param($type, $name, $default, $null_ok, &$var_list,
- &$parse_list, &$arg_list, &$extra_code, $in_constructor)
+ &$parse_list, &$arg_list, &$extra_pre_code, &$extra_post_code, $in_constructor)
{
if (isset($default))
$var_list->add('long', $name . ' = ' . $default);
@@ -173,13 +179,13 @@
{
$var_list->add('long', 'php_retval');
return " php_retval = %s;\n" .
- " RETURN_LONG(php_retval);";
+ "%s RETURN_LONG(php_retval);";
}
}
class Bool_Arg extends Arg_Type {
function write_param($type, $name, $default, $null_ok, &$var_list,
- &$parse_list, &$arg_list, &$extra_code, $in_constructor)
+ &$parse_list, &$arg_list, &$extra_pre_code, &$extra_post_code, $in_constructor)
{
if (isset($default))
$var_list->add('zend_bool', $name . ' = ' . $default);
@@ -194,13 +200,13 @@
{
$var_list->add('gboolean', 'php_retval');
return " php_retval = %s;\n" .
- " RETURN_BOOL(php_retval);";
+ "%s RETURN_BOOL(php_retval);";
}
}
class Double_Arg extends Arg_Type {
function write_param($type, $name, $default, $null_ok, &$var_list,
- &$parse_list, &$arg_list, &$extra_code, $in_constructor)
+ &$parse_list, &$arg_list, &$extra_pre_code, &$extra_post_code, $in_constructor)
{
if (isset($default))
$var_list->add('double', $name . ' = ' . $default);
@@ -215,7 +221,7 @@
{
$var_list->add('double', 'php_retval');
return " php_retval = %s;\n" .
- " RETURN_DOUBLE(php_retval);";
+ "%s RETURN_DOUBLE(php_retval);";
}
}
@@ -234,7 +240,7 @@
}
function write_param($type, $name, $default, $null_ok, &$var_list,
- &$parse_list, &$arg_list, &$extra_code, $in_constructor)
+ &$parse_list, &$arg_list, &$extra_pre_code, &$extra_post_code, $in_constructor)
{
if (isset($default))
$var_list->add($this->enum_name, $name . ' = ' . $default);
@@ -243,7 +249,7 @@
$var_list->add('zval', '*php_' . $name . ' = NULL');
$parse_list[] = '&php_' . $name;
$arg_list[] = $name;
- $extra_code[] = sprintf($this->enum_tpl, $name, $this->type_code, $name, $name,
+ $extra_pre_code[] = sprintf($this->enum_tpl, $name, $this->type_code, $name, $name,
$in_constructor ? "php_gtk_invalidate(this_ptr);\n\t\t" : "");
return 'V';
}
@@ -252,7 +258,7 @@
{
$var_list->add('long', 'php_retval');
return " php_retval = %s;\n" .
- " RETURN_LONG(php_retval);";
+ "%s RETURN_LONG(php_retval);";
}
}
@@ -271,7 +277,7 @@
}
function write_param($type, $name, $default, $null_ok, &$var_list,
- &$parse_list, &$arg_list, &$extra_code, $in_constructor)
+ &$parse_list, &$arg_list, &$extra_pre_code, &$extra_post_code, $in_constructor)
{
if (isset($default))
$var_list->add($this->flag_name, $name . ' = ' . $default);
@@ -280,7 +286,7 @@
$var_list->add('zval', '*php_' . $name . ' = NULL');
$parse_list[] = '&php_' . $name;
$arg_list[] = $name;
- $extra_code[] = sprintf($this->flag_tpl, $name, $this->type_code, $name, $name,
+ $extra_pre_code[] = sprintf($this->flag_tpl, $name, $this->type_code, $name, $name,
$in_constructor ? "php_gtk_invalidate(this_ptr);\n\t\t" : "");
return 'V';
}
@@ -289,7 +295,7 @@
{
$var_list->add('long', 'php_retval');
return " php_retval = %s;\n" .
- " RETURN_LONG(php_retval);";
+ "%s RETURN_LONG(php_retval);";
}
}
@@ -304,13 +310,13 @@
}
function write_param($type, $name, $default, $null_ok, &$var_list,
- &$parse_list, &$arg_list, &$extra_code, $in_constructor)
+ &$parse_list, &$arg_list, &$extra_pre_code, &$extra_post_code, $in_constructor)
{
if ($null_ok) {
if (isset($default)) {
$var_list->add($this->obj_name, '*' . $name . ' = ' . $default);
$var_list->add('zval', '*php_' . $name . ' = NULL');
- $extra_code[] = " if (php_$name) {\n" .
+ $extra_pre_code[] = " if (php_$name) {\n" .
" if (Z_TYPE_P(php_$name) == IS_NULL)\n" .
" $name = NULL;\n" .
" else\n" .
@@ -319,7 +325,7 @@
} else {
$var_list->add($this->obj_name, '*' . $name . ' = NULL');
$var_list->add('zval', '*php_' . $name);
- $extra_code[] = " if (Z_TYPE_P(php_$name) != IS_NULL)\n" .
+ $extra_pre_code[] = " if (Z_TYPE_P(php_$name) != IS_NULL)\n" .
" $name = $this->cast(PHP_GTK_GET(php_$name));\n";
}
@@ -333,7 +339,7 @@
$var_list->add('zval', '*php_' . $name . ' = NULL');
$parse_list[] = '&php_' . $name . ', ' . strtolower($this->cast) . '_ce';
$arg_list[] = $name;
- $extra_code[] = " if (php_$name)\n" .
+ $extra_pre_code[] = " if (php_$name)\n" .
" $name = $this->cast(PHP_GTK_GET(php_$name));\n";
} else {
$var_list->add('zval', '*' . $name);
@@ -351,13 +357,13 @@
return " ret = php_gtk_new((GtkObject *)%s);\n" .
($separate ? " SEPARATE_ZVAL(&ret);\n" : "") .
" *return_value = *ret;\n" .
- " return;";
+ "%s return;";
}
}
class Rect_Arg extends Arg_Type {
function write_param($type, $name, $default, $null_ok, &$var_list,
- &$parse_list, &$arg_list, &$extra_code, $in_constructor)
+ &$parse_list, &$arg_list, &$extra_pre_code, &$extra_post_code, $in_constructor)
{
$var_list->add(substr($type, 0, -1), $name);
$parse_list[] = "&($name.x)";
@@ -380,13 +386,13 @@
}
function write_param($type, $name, $default, $null_ok, &$var_list,
- &$parse_list, &$arg_list, &$extra_code, $in_constructor)
+ &$parse_list, &$arg_list, &$extra_pre_code, &$extra_post_code, $in_constructor)
{
if ($null_ok) {
if (isset($default)) {
$var_list->add($this->type, '*' . $name . ' = ' . $default);
$var_list->add('zval', '*php_' . $name . ' = NULL');
- $extra_code[] = " if (php_$name) {\n" .
+ $extra_pre_code[] = " if (php_$name) {\n" .
" if (Z_TYPE_P(php_$name) == IS_NULL)\n" .
" $name = NULL;\n" .
" else\n" .
@@ -395,7 +401,7 @@
} else {
$var_list->add($this->type, '*' . $name . ' = NULL');
$var_list->add('zval', '*php_' . $name);
- $extra_code[] = " if (Z_TYPE_P(php_$name) != IS_NULL)\n" .
+ $extra_pre_code[] = " if (Z_TYPE_P(php_$name) != IS_NULL)\n" .
" $name = PHP_" . strtoupper($this->php_type). "_GET(php_" . $name . ");\n";
}
@@ -412,7 +418,7 @@
$parse_list[] = '&php_' . $name;
$parse_list[] = $this->php_type . '_ce';
$arg_list[] = $name;
- $extra_code[] = " if (php_$name)\n" .
+ $extra_pre_code[] = " if (php_$name)\n" .
" $name = PHP_" . strtoupper($this->php_type) . "_GET(" . $name . ");\n";
} else {
$var_list->add('zval', '*' . $name);
@@ -431,7 +437,7 @@
return " ret = php_" . $this->php_type . "_new(%s);\n" .
($separate ? " SEPARATE_ZVAL(&ret);\n" : "") .
" *return_value = *ret;\n" .
- " return;";
+ "%s return;";
}
}
@@ -472,7 +478,7 @@
else if(php_gtk_check_class(php_$name, gdk_bitmap_ce))
$name = (GdkDrawable *)PHP_GDK_BITMAP_GET(php_$name);
else {
- php_error(E_WARNING, \"%s() expects the drawable to be GdkWindow, GdkPixmap, GdkBitmap, or null\", get_active_function_name());
+ php_error(E_WARNING, \"%s() expects the drawable to be GdkWindow, GdkPixmap, GdkBitmap, or null\", get_active_function_name(TSRMLS_C));
return;
}
";
@@ -505,7 +511,7 @@
else if(php_gtk_check_class(php_$name, gdk_bitmap_ce))
$name = (GdkDrawable *)PHP_GDK_BITMAP_GET(php_$name);
else {
- php_error(E_WARNING, \"%s() expects the drawable to be GdkWindow, GdkPixmap, or GdkBitmap\", get_active_function_name());
+ php_error(E_WARNING, \"%s() expects the drawable to be GdkWindow, GdkPixmap, or GdkBitmap\", get_active_function_name(TSRMLS_C));
return;
}
";