cvs: embed /php-irssi TODO php-core.c

From: Date: Sat, 01 Mar 2003 18:26:35 +0000
Subject: cvs: embed /php-irssi TODO php-core.c
Groups: php.embed.cvs 
Request: Send a blank email to php-embed-cvs+get-26@lists.php.net to get a copy of this message
tal Sat Mar 1 13:26:35 2003 EDT Modified files: /embed/php-irssi php-core.c TODO Log: - Implemented /php set - Introduced php_set_ini_entry for easily setting ini entries - Made CLIENTCRAP messages more consistent - Cleaned up the code a bit Index: embed/php-irssi/php-core.c diff -u embed/php-irssi/php-core.c:1.9 embed/php-irssi/php-core.c:1.10 --- embed/php-irssi/php-core.c:1.9 Sun Feb 2 16:05:26 2003 +++ embed/php-irssi/php-core.c Sat Mar 1 13:23:46 2003 @@ -14,7 +14,7 @@ +----------------------------------------------------------------------+ | Author: Wez Furlong <wez@php.net> | +----------------------------------------------------------------------+ - $Id: php-core.c,v 1.9 2003/02/02 21:05:26 wez Exp $ + $Id: php-core.c,v 1.10 2003/03/01 18:23:46 tal Exp $ */ #define MODULE_NAME "php/core" #include "common.h" @@ -104,6 +104,20 @@ } +static int php_set_ini_entry(char *entry, char *value) +{ + int retval; + + retval = zend_alter_ini_entry(entry, strlen(entry)+1, value, strlen(value)+1, PHP_INI_USER, PHP_INI_STAGE_RUNTIME); + if (retval == SUCCESS) { + printtext_window(active_win, MSGLEVEL_CLIENTCRAP, "-!- php: INI entry %s successfully set to %s", entry, value); + } else { + printtext_window(active_win, MSGLEVEL_CLIENTCRAP, "-!- php: failed setting INI entry %s to %s", entry, value); + } + + return retval; +} + static void init_php(void) { int retval; @@ -146,31 +160,36 @@ /* Handler for "/php exec" command */ static void cmd_php_exec(const char *data) { - active_win = active_win; - switch (php_eval_string("php/irssi:exec", "%s", data)) { case EVAL_RET_OK: break; case EVAL_RET_ERROR: - printtext_window(active_win, MSGLEVEL_CLIENTCRAP, "-!- php command failed"); + printtext_window(active_win, MSGLEVEL_CLIENTCRAP, "-!- php: exec failed"); break; case EVAL_RET_BAIL: default: - printtext_window(active_win, MSGLEVEL_CLIENTCRAP, "-!- php command bailed out status=%d", EG(exit_status)); + printtext_window(active_win, MSGLEVEL_CLIENTCRAP, "-!- php: bailed out status=%d", EG(exit_status)); } } /* Handler for "/php set" command */ static void cmd_php_set(const char *data) -{ - /* FIXME */ +{ + char *val; + char *entry; + + entry = estrdup(data); + entry = strtok(entry, " "); + val = strtok(NULL, " "); + + php_set_ini_entry(entry, val); + + efree(entry); } /* Handler for "/php help" command */ static void cmd_php_help(const char *data) -{ - active_win = active_win; - +{ printtext_window(active_win, MSGLEVEL_CLIENTCRAP, "PHP Module:"); printtext_window(active_win, MSGLEVEL_CLIENTCRAP, "/php exec <string_to_evaluate>"); printtext_window(active_win, MSGLEVEL_CLIENTCRAP, "/php load <file>"); @@ -180,9 +199,7 @@ /* Handler for "/php version" command */ static void cmd_php_version(const char *data) -{ - active_win = active_win; - +{ printtext_window(active_win, MSGLEVEL_CLIENTCRAP, "PHP Module For Irssi v%s", PHP_IRSSI_VERSION); printtext_window(active_win, MSGLEVEL_CLIENTCRAP, "PHP v%s", PHP_VERSION); } @@ -190,23 +207,21 @@ /* Handler for "/php load" command */ static void cmd_php_load(const char *data) { - active_win = active_win; - switch (php_eval_string("php/irssi:load", "include('%s');", data)) { case EVAL_RET_OK: break; case EVAL_RET_ERROR: - printtext_window(active_win, MSGLEVEL_CLIENTCRAP, "-!- php failed loading %s", data); + printtext_window(active_win, MSGLEVEL_CLIENTCRAP, "-!- php: failed loading %s", data); case EVAL_RET_BAIL: default: - printtext_window(active_win, MSGLEVEL_CLIENTCRAP, "-!- php bailed out status=%d", EG(exit_status)); + printtext_window(active_win, MSGLEVEL_CLIENTCRAP, "-!- php: bailed out status=%d", EG(exit_status)); } } /* default "php error" signal handler */ static void error_handler(char *message) { - printtext_window(active_win, MSGLEVEL_CLIENTCRAP, "-!- php error: %s", message); + printtext_window(active_win, MSGLEVEL_CLIENTCRAP, "-!- php: error: %s", message); } /* default "php output" signal handler */ @@ -218,20 +233,18 @@ /* autorun any .php scripts found in the users scripts/autorun dir */ static void do_autorun(void) { - active_win = active_win; - switch (php_eval_string("php/irssi:autoload", "foreach(glob('%s/scripts/autorun/*.php') as $_autorun_name) { include $_autorun_name; }", get_irssi_dir())) { case EVAL_RET_OK: - printtext_window(active_win, MSGLEVEL_CLIENTCRAP, "-!- php autoload completed"); + printtext_window(active_win, MSGLEVEL_CLIENTCRAP, "-!- php: autoload completed"); break; case EVAL_RET_ERROR: - printtext_window(active_win, MSGLEVEL_CLIENTCRAP, "-!- php autoload failed"); + printtext_window(active_win, MSGLEVEL_CLIENTCRAP, "-!- php: autoload failed"); break; case EVAL_RET_BAIL: default: - printtext_window(active_win, MSGLEVEL_CLIENTCRAP, "-!- php autoload bailed out status=%d", EG(exit_status)); + printtext_window(active_win, MSGLEVEL_CLIENTCRAP, "-!- php: autoload bailed out status=%d", EG(exit_status)); } } @@ -247,6 +260,8 @@ /* Module init: called by irssi when the user types "/load php" */ void php_core_init(void) { + char *include_path = NULL; + init_php(); signal_php_output = signal_get_uniq_id("php output"); @@ -261,7 +276,11 @@ 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); + /* XXX: We need to make that changeable... */ + sprintf(include_path, "%s/scripts:%s", get_irssi_dir(), SCRIPTDIR); + printtext_window(active_win, MSGLEVEL_CLIENTCRAP, "-!- php: setting include_path to %s", include_path); + + php_set_ini_entry("include_path", include_path); if (irssi_init_finished) { /* if the module is being loaded manually execute autorun directly */ Index: embed/php-irssi/TODO diff -u embed/php-irssi/TODO:1.5 embed/php-irssi/TODO:1.6 --- embed/php-irssi/TODO:1.5 Thu Feb 6 12:38:02 2003 +++ embed/php-irssi/TODO Sat Mar 1 13:23:48 2003 @@ -1,6 +1,6 @@ TODO: ==================================== -$Id: TODO,v 1.5 2003/02/06 17:38:02 tal Exp $ +$Id: TODO,v 1.6 2003/03/01 18:23:48 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,8 +46,6 @@ o Expose even more stuff! o Add multiple arguments support for /php load - -o Implement /php set ;) o Line buffer PHP output before triggering the output or error signals, so that the output doesn't look like crapola.

« previous php.embed.cvs (#26) next »