changeset 783:5bad8e4d1c88

[gaim-migrate @ 793] lalala committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Tue, 29 Aug 2000 05:08:38 +0000
parents faa7faf60607
children 4c292b3f74ea
files src/plugins.c
diffstat 1 files changed, 74 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/plugins.c	Tue Aug 29 04:38:41 2000 +0000
+++ b/src/plugins.c	Tue Aug 29 05:08:38 2000 +0000
@@ -532,6 +532,9 @@
 #endif /* GAIM_PLUGINS */
 
 void plugin_event(enum gaim_event event, void *arg1, void *arg2, void *arg3) {
+#ifdef USE_PERL
+	char buf[BUF_LONG];
+#endif
 #ifdef GAIM_PLUGINS
 	GList *c = callbacks;
 	struct gaim_callback *g;
@@ -567,6 +570,7 @@
 
 			/* char *, char ** */
 			case event_im_send:
+			case event_chat_send:
 				{
 					void (*function)(char *, char **, void *) = g->function;
 					(*function)(arg1, arg2, g->data);
@@ -589,7 +593,6 @@
 			/* char *, char *, char * */
 			case event_chat_invited:
 			case event_chat_recv:
-			case event_chat_send:
 				{
 					void (*function)(char *, char *, char *, void *) = g->function;
 					(*function)(arg1, arg2, arg3, g->data);
@@ -631,6 +634,75 @@
 	}
 #endif /* GAIM_PLUGINS */
 #ifdef USE_PERL
-	/* FIXME : AIM::event_handler */
+	switch (event) {
+		case event_signon:
+			buf[0] = 0;
+			break;
+		case event_signoff:
+			buf[0] = 0;
+			break;
+		case event_away:
+			buf[0] = 0;
+			break;
+		case event_back:
+			buf[0] = 0;
+			break;
+		case event_im_recv:
+			sprintf(buf, "%s %s", *(char **)arg1, *(char **)arg2);
+			break;
+		case event_im_send:
+			sprintf(buf, "%s %s", (char *)arg1, *(char **)arg2);
+			break;
+		case event_buddy_signon:
+			sprintf(buf, "%s", (char *)arg1);
+			break;
+		case event_buddy_signoff:
+			sprint:
+			break;
+		case event_buddy_away:
+			sprintf(buf, "%s", (char *)arg1);
+			break;
+		case event_buddy_back:
+			sprintf(buf, "%s", (char *)arg1);
+			break;
+		case event_blist_update:
+			buf[0] = 0;
+			break;
+		case event_chat_invited:
+			sprintf(buf, "%s %s %s", (char *)arg1, (char *)arg2, (char *)arg3);
+			break;
+		case event_chat_join:
+			sprintf(buf, "%s", (char *)arg1);
+			break;
+		case event_chat_leave:
+			sprintf(buf, "%s", (char *)arg1);
+			break;
+		case event_chat_buddy_join:
+			sprintf(buf, "%s %s", (char *)arg1, (char *)arg2);
+			break;
+		case event_chat_buddy_leave:
+			sprintf(buf, "%s %s", (char *)arg1, (char *)arg2);
+			break;
+		case event_chat_recv:
+			sprintf(buf, "%s %s %s", (char *)arg1, (char *)arg2, (char *)arg3);
+			break;
+		case event_chat_send:
+			sprintf(buf, "%s %s", (char *)arg1, *(char **)arg2);
+			break;
+		case event_warned:
+			sprintf(buf, "%s %d", (char *)arg1, (int)arg2);
+			break;
+		case event_error:
+			sprintf(buf, "%d", (int)arg1);
+			break;
+		case event_quit:
+			buf[0] = 0;
+			break;
+		default:
+			break;
+	}
+	sprintf(debug_buff, "perl event %d: %s\n", event, buf);
+	debug_print(debug_buff);
+	perl_event(event, buf);
 #endif
 }