summaryrefslogtreecommitdiff
path: root/src/plugins/php
diff options
context:
space:
mode:
authorSébastien Helleu <flashcode@flashtux.org>2018-04-12 00:12:20 +0200
committerSébastien Helleu <flashcode@flashtux.org>2018-04-12 00:12:20 +0200
commit41d63511b4d9862c3e7c4c0f5bbb76743cd577cf (patch)
tree2f0ead0e25735e506f7c0584b0d0331021e46ea6 /src/plugins/php
parent5ae557fa523aa9ab166e9fac83a1463abf3be985 (diff)
downloadweechat-41d63511b4d9862c3e7c4c0f5bbb76743cd577cf.zip
scripts: fix return value of hook_infolist callback (pointer instead of string)
Diffstat (limited to 'src/plugins/php')
-rw-r--r--src/plugins/php/weechat-php-api.c2
-rw-r--r--src/plugins/php/weechat-php.c7
2 files changed, 8 insertions, 1 deletions
diff --git a/src/plugins/php/weechat-php-api.c b/src/plugins/php/weechat-php-api.c
index 1801e79b1..4a30850aa 100644
--- a/src/plugins/php/weechat-php-api.c
+++ b/src/plugins/php/weechat-php-api.c
@@ -2930,7 +2930,7 @@ weechat_php_api_hook_infolist_cb (const void *pointer, void *data,
func_argv[3] = (arguments) ? (char *)arguments : weechat_php_empty_arg;
weechat_php_cb (pointer, data, func_argv, "ssss",
- WEECHAT_SCRIPT_EXEC_STRING, &rc);
+ WEECHAT_SCRIPT_EXEC_POINTER, &rc);
return rc;
}
diff --git a/src/plugins/php/weechat-php.c b/src/plugins/php/weechat-php.c
index 439e04d6b..aefcbcf0d 100644
--- a/src/plugins/php/weechat-php.c
+++ b/src/plugins/php/weechat-php.c
@@ -589,6 +589,13 @@ weechat_php_exec (struct t_plugin_script *script, int ret_type,
convert_to_string (&zretval);
ret_value = strdup ((char *)Z_STRVAL(zretval));
}
+ else if (ret_type == WEECHAT_SCRIPT_EXEC_POINTER)
+ {
+ convert_to_string (&zretval);
+ ret_value = plugin_script_str2ptr (weechat_php_plugin,
+ script->name, function,
+ (char *)Z_STRVAL(zretval));
+ }
else if (ret_type == WEECHAT_SCRIPT_EXEC_INT)
{
convert_to_long (&zretval);