cvs: embed /php-irssi TODO ext-irssi.c php-core.c php-irssi.h
[email protected] ("Tal Peer") Fri, 31 Jan 2003 17:59:25 -0000
| Newsgroups | php.embed.cvs |
|---|---|
| Message-ID | <cvstal1044035965@cvsserver> |
tal Fri Jan 31 12:59:25 2003 EDT
Modified files:
/embed/php-irssi php-core.c php-irssi.h ext-irssi.c TODO
Log:
Changed the /php command to be more generic (as described in TODO)
Index: embed/php-irssi/php-core.c
diff -u embed/php-irssi/php-core.c:1.5 embed/php-irssi/php-core.c:1.6
--- embed/php-irssi/php-core.c:1.5 Thu Jan 30 13:52:29 2003
+++ embed/php-irssi/php-core.c Fri Jan 31 12:59:25 2003
@@ -14,7 +14,7 @@
+----------------------------------------------------------------------+
| Author: Wez Furlong <[email protected]> |
+----------------------------------------------------------------------+
- $Id: php-core.c,v 1.5 2003/01/30 18:52:29 tal Exp $
+ $Id: php-core.c,v 1.6 2003/01/31 17:59:25 tal Exp $
*/
#define MODULE_NAME "php/core"
#include "common.h"
@@ -28,6 +28,7 @@
#include "levels.h"
#include "fe-windows.h"
#include "lib-config/iconfig.h" /* FIXME: remove before .99 */
+#include "php-irssi.h"
#include <php_embed.h>
extern void php_irssi_module_shutdown();
@@ -50,7 +51,7 @@
* TODO: this should line-buffer the output */
static int ub_write(const char *str, unsigned int str_length TSRMLS_DC)
{
- signal_emit_id(signal_php_output, 2, str, str_length);
+ signal_emit_id(signal_php_output, 2, str, str_length);
return SUCCESS;
}
@@ -133,12 +134,22 @@
php_embed_shutdown(TSRMLS_C);
}
-/* Handler for the "/php" command */
-static void cmd_php(const char *data)
+/* Handler for "/php" command */
+static void cmd_php(const char *data, SERVER_REC *server, void *item)
+{
+ if (*data == '\0') {
+ data = "help";
+ }
+
+ command_runsub("php", data, server, item);
+}
+
+/* Handler for "/php exec" command */
+static void cmd_php_exec(const char *data)
{
target_win = active_win;
- switch (php_eval_string("php/irssi", "%s", data)) {
+ switch (php_eval_string("php/irssi:exec", "%s", data)) {
case EVAL_RET_OK:
break;
case EVAL_RET_ERROR:
@@ -150,6 +161,48 @@
}
}
+/* Handler for "/php set" command */
+static void cmd_php_set(const char *data)
+{
+ /* FIXME */
+}
+
+/* Handler for "/php help" command */
+static void cmd_php_help(const char *data)
+{
+ target_win = active_win;
+
+ printtext_window(target_win, MSGLEVEL_CLIENTCRAP, "PHP Module:");
+ printtext_window(target_win, MSGLEVEL_CLIENTCRAP, "/php exec <string_to_evaluate>");
+ printtext_window(target_win, MSGLEVEL_CLIENTCRAP, "/php load <file>");
+ printtext_window(target_win, MSGLEVEL_CLIENTCRAP, "/php version");
+ printtext_window(target_win, MSGLEVEL_CLIENTCRAP, "/php set <ini_entry> <value>");
+}
+
+/* Handler for "/php version" command */
+static void cmd_php_version(const char *data)
+{
+ target_win = active_win;
+
+ printtext_window(target_win, MSGLEVEL_CLIENTCRAP, "PHP Module For Irssi v%s", PHP_IRSSI_VERSION);
+}
+
+/* Handler for "/php load" command */
+static void cmd_php_load(const char *data)
+{
+ target_win = active_win;
+
+ switch (php_eval_string("php/irssi:load", "include('%s');", data)) {
+ case EVAL_RET_OK:
+ break;
+ case EVAL_RET_ERROR:
+ printtext_window(target_win, MSGLEVEL_CLIENTCRAP, "-!- php failed loading %s", data);
+ case EVAL_RET_BAIL:
+ default:
+ printtext_window(target_win, MSGLEVEL_CLIENTCRAP, "-!- php bailed out status=%d", EG(exit_status));
+ }
+}
+
/* default "php error" signal handler */
static void error_handler(char *message)
{
@@ -202,6 +255,11 @@
signal_add("php error", (SIGNAL_FUNC)error_handler);
command_bind("php", NULL, (SIGNAL_FUNC)cmd_php);
+ command_bind("php help", NULL, (SIGNAL_FUNC)cmd_php_help);
+ command_bind("php exec", NULL, (SIGNAL_FUNC)cmd_php_exec);
+ command_bind("php load", NULL, (SIGNAL_FUNC)cmd_php_load);
+ command_bind("php version", NULL, (SIGNAL_FUNC)cmd_php_version);
+ command_bind("php set", NULL, (SIGNAL_FUNC)cmd_php_set);
php_eval_string("php/irssi:init", "set_include_path('%s/scripts:%s');", get_irssi_dir(), SCRIPTDIR);
@@ -229,8 +287,14 @@
* although the native register_shutdown_function stuff should also
* work just as well */
signal_emit("php unloading", 0);
-
+
command_unbind("php", (SIGNAL_FUNC)cmd_php);
+ command_unbind("php help", (SIGNAL_FUNC)cmd_php_help);
+ command_unbind("php exec", (SIGNAL_FUNC)cmd_php_exec);
+ command_unbind("php load", (SIGNAL_FUNC)cmd_php_load);
+ command_unbind("php version", (SIGNAL_FUNC)cmd_php_version);
+ command_unbind("php set", (SIGNAL_FUNC)cmd_php_set);
+
signal_remove("php output", (SIGNAL_FUNC)output_handler);
signal_remove("php error", (SIGNAL_FUNC)error_handler);
Index: embed/php-irssi/php-irssi.h
diff -u embed/php-irssi/php-irssi.h:1.3 embed/php-irssi/php-irssi.h:1.4
--- embed/php-irssi/php-irssi.h:1.3 Thu Jan 30 10:42:47 2003
+++ embed/php-irssi/php-irssi.h Fri Jan 31 12:59:25 2003
@@ -14,7 +14,7 @@
+----------------------------------------------------------------------+
| Author: Wez Furlong <[email protected]> |
+----------------------------------------------------------------------+
- $Id: php-irssi.h,v 1.3 2003/01/30 15:42:47 wez Exp $
+ $Id: php-irssi.h,v 1.4 2003/01/31 17:59:25 tal Exp $
*/
#define MODULE_NAME "php/core"
@@ -36,6 +36,8 @@
#include "lib-config/iconfig.h" /* FIXME: remove before .99 */
#include <php_embed.h>
+
+#define PHP_IRSSI_VERSION "0.5-dev"
enum php_irssi_arg_type_t {
PIAT_STRING,
Index: embed/php-irssi/ext-irssi.c
diff -u embed/php-irssi/ext-irssi.c:1.3 embed/php-irssi/ext-irssi.c:1.4
--- embed/php-irssi/ext-irssi.c:1.3 Thu Jan 30 10:42:47 2003
+++ embed/php-irssi/ext-irssi.c Fri Jan 31 12:59:25 2003
@@ -14,7 +14,7 @@
+----------------------------------------------------------------------+
| Author: Wez Furlong <[email protected]> |
+----------------------------------------------------------------------+
- $Id: ext-irssi.c,v 1.3 2003/01/30 15:42:47 wez Exp $
+ $Id: ext-irssi.c,v 1.4 2003/01/31 17:59:25 tal Exp $
*/
#include "php-irssi.h"
#include "php-signals-list.h" /* generated by php during make */
@@ -360,6 +360,7 @@
REGISTER_LONG_CONSTANT("IRSSI_SIGNAL_PRIORITY_DEFAULT", SIGNAL_PRIORITY_DEFAULT, CONST_CS|CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("IRSSI_SIGNAL_PRIORITY_LOW", SIGNAL_PRIORITY_LOW, CONST_CS|CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("IRSSI_SIGNAL_PRIORITY_HIGH", SIGNAL_PRIORITY_HIGH, CONST_CS|CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("PHP_IRSSI_VERSION", PHP_IRSSI_VERSION, CONST_CS|CONST_PERSISTENT);
return SUCCESS;
}
@@ -395,7 +396,7 @@
NULL,
NULL,
NULL,
- "0.5",
+ PHP_IRSSI_VERSION,
STANDARD_MODULE_PROPERTIES
};
Index: embed/php-irssi/TODO
diff -u embed/php-irssi/TODO:1.1 embed/php-irssi/TODO:1.2
--- embed/php-irssi/TODO:1.1 Thu Jan 30 08:50:10 2003
+++ embed/php-irssi/TODO Fri Jan 31 12:59:25 2003
@@ -1,6 +1,6 @@
TODO:
====================================
-$Id: TODO,v 1.1 2003/01/30 13:50:10 wez Exp $
+$Id: TODO,v 1.2 2003/01/31 17:59:25 tal Exp $
o Improve genobjdefs.php so that it can find a structure definition in a
header file with more junk (when compared with the *-rec.h headers).
@@ -46,20 +46,10 @@
o Expose even more stuff!
-o Change the /php command to work like this:
+o Add multiple arguments support for /php load
- Set the default include path to be the shared script dir, followed
- by the user script dir.
-
- /php load filename[.php] filename2[.php]
-
- foreach arg
- add .php suffix if missing
- include "arg"
-
- /php eval $phpcode
-
- eval($phpcode);
+o Implement /php set ;)
+o Anything else?
vim:tw=78:et