cvs: embed /php-irssi ext-irssi.c

From: Date: Sun, 02 Feb 2003 14:20:46 +0000
Subject: cvs: embed /php-irssi ext-irssi.c
Groups: php.embed.cvs 
Request: Send a blank email to php-embed-cvs+get-16@lists.php.net to get a copy of this message
wez Sun Feb 2 09:20:46 2003 EDT Modified files: /embed/php-irssi ext-irssi.c Log: Added: irssi_window_get_active() and irssi_window_find_name() which return the currently active window or a specific named window, respectively. Index: embed/php-irssi/ext-irssi.c diff -u embed/php-irssi/ext-irssi.c:1.9 embed/php-irssi/ext-irssi.c:1.10 --- embed/php-irssi/ext-irssi.c:1.9 Sat Feb 1 22:27:16 2003 +++ embed/php-irssi/ext-irssi.c Sun Feb 2 09:20:46 2003 @@ -14,7 +14,7 @@ +----------------------------------------------------------------------+ | Author: Wez Furlong <wez@php.net> | +----------------------------------------------------------------------+ - $Id: ext-irssi.c,v 1.9 2003/02/02 03:27:16 wez Exp $ + $Id: ext-irssi.c,v 1.10 2003/02/02 14:20:46 wez Exp $ */ #include "php-irssi.h" #include "php-signals-list.h" /* generated by php during make */ @@ -235,30 +235,49 @@ PHP_FUNCTION(irssi_server_list) { - GSList *tmp; - zval *obj; - - array_init(return_value); - for (tmp = servers; tmp != NULL; tmp = tmp->next) { - MAKE_STD_ZVAL(obj); - php_irssi_export_SERVER(obj, (SERVER_REC*)tmp->data); - add_next_index_zval(return_value, obj); + if (ZEND_NUM_ARGS() != 0) { + WRONG_PARAM_COUNT; } + php_irssi_export_GList(return_value, servers, PIAT_SERVER); } PHP_FUNCTION(irssi_channel_list) { - GSList *tmp; - zval *obj; + if (ZEND_NUM_ARGS() != 0) { + WRONG_PARAM_COUNT; + } + php_irssi_export_GList(return_value, channels, PIAT_CHANNEL); +} + +PHP_FUNCTION(irssi_window_get_active) +{ + if (ZEND_NUM_ARGS() != 0) { + WRONG_PARAM_COUNT; + } + php_irssi_C_to_PHP(return_value, PIAT_WINDOW, active_win TSRMLS_CC); +} + +PHP_FUNCTION(irssi_window_find_name) +{ + char *name; + long name_len; + WINDOW_REC *window; - array_init(return_value); - for (tmp = channels; tmp != NULL; tmp = tmp->next) { - MAKE_STD_ZVAL(obj); - php_irssi_export_CHANNEL(obj, (CHANNEL_REC*)tmp->data); - add_next_index_zval(return_value, obj); + if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS TSRMLS_CC, "s", &name, &name_len)) { + return; + } + + window = window_find_name(name); + + if (window) { + php_irssi_C_to_PHP(return_value, PIAT_WINDOW, window TSRMLS_CC); + } else { + RETVAL_NULL(); } } + +/* event source for timeout events */ static int php_source_event(struct sig_record *rec) { zval **zargs[1] = { NULL }; @@ -625,6 +644,8 @@ PHP_FE(irssi_signal_get_arg, NULL) PHP_FE(irssi_timeout_add, NULL) PHP_FE(irssi_timeout_remove, NULL) + PHP_FE(irssi_window_get_active, NULL) + PHP_FE(irssi_window_find_name, NULL) NULL, NULL, NULL };

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