1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-01 06:25:41 +02:00

php: new php plugin

This plugin requires PHP >= 7.0.
This commit is contained in:
Adam Saponara
2017-09-03 12:17:26 +02:00
committed by Sébastien Helleu
parent 8c046d9be9
commit d032ee2159
13 changed files with 5842 additions and 1 deletions
+30
View File
@@ -0,0 +1,30 @@
#
# Copyright (C) 2006-2017 Adam Saponara <as@php.net>
#
# This file is part of WeeChat, the extensible chat client.
#
# WeeChat is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# WeeChat is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with WeeChat. If not, see <http://www.gnu.org/licenses/>.
#
add_library(php MODULE weechat-php.c weechat-php.h weechat-php-api.c
weechat-php-api.h)
set_target_properties(php PROPERTIES PREFIX "")
if(PHP_FOUND)
include_directories(${PHP_INCLUDE_DIRS})
target_link_libraries(php ${PHP_LDFLAGS} weechat_plugins_scripts)
endif()
install(TARGETS php LIBRARY DESTINATION ${LIBDIR}/plugins)
+33
View File
@@ -0,0 +1,33 @@
#
# Copyright (C) 2006-2017 Adam Saponara <as@php.net>
#
# This file is part of WeeChat, the extensible chat client.
#
# WeeChat is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# WeeChat is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with WeeChat. If not, see <http://www.gnu.org/licenses/>.
#
AM_CPPFLAGS = -DLOCALEDIR=\"$(datadir)/locale\" $(PHP_CFLAGS)
libdir = ${weechat_libdir}/plugins
lib_LTLIBRARIES = php.la
php_la_SOURCES = weechat-php.c \
weechat-php.h \
weechat-php-api.c \
weechat-php-api.h
php_la_LDFLAGS = -module -no-undefined
php_la_LIBADD = ../lib_weechat_plugins_scripts.la $(PHP_LFLAGS)
EXTRA_DIST = CMakeLists.txt
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+60
View File
@@ -0,0 +1,60 @@
/*
* Copyright (C) 2006-2017 Adam Saponara <as@php.net>
*
* This file is part of WeeChat, the extensible chat client.
*
* WeeChat is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* WeeChat is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with WeeChat. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef WEECHAT_PHP_H
#define WEECHAT_PHP_H 1
#define weechat_plugin weechat_php_plugin
#define PHP_PLUGIN_NAME "php"
#define PHP_WEECHAT_VERSION "0.1"
#define PHP_CURRENT_SCRIPT_NAME ((php_current_script) ? php_current_script->name : "-")
struct t_php_const
{
char *name;
int int_value;
char *str_value;
};
extern int php_quiet;
extern struct t_weechat_plugin *weechat_php_plugin;
extern struct t_hashtable *weechat_php_function_map;
extern struct t_plugin_script *php_scripts;
extern struct t_plugin_script *last_php_script;
extern struct t_plugin_script *php_current_script;
extern struct t_plugin_script *php_registered_script;
extern const char *php_current_script_filename;
extern void weechat_php_hashtable_to_array (struct t_hashtable *hashtable, zval *arr);
extern struct t_hashtable *weechat_php_array_to_hashtable (zval* arr,
int size,
const char *type_keys,
const char *type_values);
extern void *weechat_php_exec (struct t_plugin_script *script,
int ret_type,
const char *function,
const char *format, void **argv);
extern zval *weechat_php_func_map_get (const char *func_name);
extern char *weechat_php_func_map_add (zval *ofunc);
#endif /* WEECHAT_PHP_H */