sas Thu Jun 26 14:06:20 2003 EDT Modified files: /php-src/ext/ircg ircg.c php_ircg_formats.h Log: Add NOTICE handling Index: php-src/ext/ircg/ircg.c diff -u php-src/ext/ircg/ircg.c:1.189 php-src/ext/ircg/ircg.c:1.190 --- php-src/ext/ircg/ircg.c:1.189 Tue Jun 17 19:35:19 2003 +++ php-src/ext/ircg/ircg.c Thu Jun 26 14:06:20 2003 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: ircg.c,v 1.189 2003/06/17 23:35:19 sas Exp $ */ +/* $Id: ircg.c,v 1.190 2003/06/26 18:06:20 sas Exp $ */ /* {{{ includes */ @@ -184,8 +184,8 @@ static char *fmt_msgs_default[] = { "[%c] %f: %m<br />", - "privat from %f: %m<br />", - "%f privat to %t: %m<br />", + "private from %f: %m<br />", + "%f private to %t: %m<br />", "%f leaves %c<br />", "%f joins %c<br />", "%t was kicked by %f from %c (%m)<br />", @@ -215,6 +215,9 @@ "is on server %t, has flag %f, hopcount %m, and channel %c.<br />", "end of who<br />", "%f is inviting %t to %c<br />", + "[notice %c] %f: %m<br />", + "notice from %f: %m<br />", + "notice to %t: %m<br />", }; ZEND_DECLARE_MODULE_GLOBALS(ircg); @@ -560,7 +563,6 @@ } } } - static void msg_handler(irconn_t *ircc, smart_str *chan, smart_str *from, smart_str *msg, void *conn_data, void *chan_data) @@ -583,6 +585,27 @@ msg_send(conn, &m); } +static void notice_handler(irconn_t *ircc, smart_str *chan, smart_str *from, + smart_str *msg, void *conn_data, void *chan_data) +{ + php_irconn_t *conn = conn_data; + smart_str m = {0}; + smart_str s_username; + + smart_str_setl(&s_username, ircc->username, ircc->username_len); + + if (msg->c[0] == '\001') { + handle_ctcp(conn, chan, from, chan?chan:NULL, msg, &m); + } else if (chan) { + FORMAT_MSG(conn, FMT_MSG_NOTICE_CHAN, chan, &s_username, from, msg, &m, conn->conn.username, conn->conn.username_len); + } else { + FORMAT_MSG(conn, FMT_MSG_NOTICE_TO_ME, NULL, &s_username, from, + msg, &m, conn->conn.username, conn->conn.username_len); + } + + msg_send(conn, &m); +} + static void nick_handler(irconn_t *c, smart_str *oldnick, smart_str *newnick, void *dummy) { @@ -1803,6 +1826,7 @@ IRCG_CB_MAP_ENTRY(whoreply_handler) IRCG_CB_MAP_ENTRY(endofwho_handler) IRCG_CB_MAP_ENTRY(invite_handler) + IRCG_CB_MAP_ENTRY(notice_handler) IRCG_CB_MAP_END() /* {{{ register_hooks */ @@ -1892,6 +1916,8 @@ IFMSG(FMT_MSG_INVITE, IRCG_INVITE, invite_handler); #endif + irc_register_hook(conn, IRCG_NOTICE, notice_handler); + irc_set_map_handle(conn, php_ircg_cb_msg_handle); } /* }}} */ Index: php-src/ext/ircg/php_ircg_formats.h diff -u php-src/ext/ircg/php_ircg_formats.h:1.1 php-src/ext/ircg/php_ircg_formats.h:1.2 --- php-src/ext/ircg/php_ircg_formats.h:1.1 Mon Dec 9 07:42:28 2002 +++ php-src/ext/ircg/php_ircg_formats.h Thu Jun 26 14:06:20 2003 @@ -32,6 +32,9 @@ FMT_MSG_WHOREPLY2, FMT_MSG_ENDOFWHO, FMT_MSG_INVITE, + FMT_MSG_NOTICE_CHAN, + FMT_MSG_NOTICE_TO_ME, + FMT_MSG_NOTICE_FROM_ME, NO_FMTS }; /* }}} */
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php