cvs: embed /php-irssi ext-irssi.c
[email protected] ("Wez Furlong") Sun, 02 Feb 2003 14:20:46 -0000
| Newsgroups | php.embed.cvs |
|---|---|
| Message-ID | <cvswez1044195646@cvsserver> |
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 <[email protected]> |
+----------------------------------------------------------------------+
- $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
};