comparison src/module.c @ 2511:a83b4a5ffcd6

[gaim-migrate @ 2524] malsyned's patch for args in perl. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Mon, 15 Oct 2001 19:52:44 +0000
parents 2c1950c5544a
children b0c5770156e1
comparison
equal deleted inserted replaced
2510:1950afffd107 2511:a83b4a5ffcd6
173 } 173 }
174 174
175 void gaim_plugin_unload(GModule *handle) 175 void gaim_plugin_unload(GModule *handle)
176 { 176 {
177 GList *pl = plugins; 177 GList *pl = plugins;
178 struct gaim_plugin *p; 178 struct gaim_plugin *p = NULL;
179 void (*gaim_plugin_remove)(); 179 void (*gaim_plugin_remove)();
180 180
181 while (pl) { 181 while (pl) {
182 p = pl->data; 182 p = pl->data;
183 if (p->handle == handle) 183 if (p->handle == handle)
267 } 267 }
268 } 268 }
269 269
270 #endif /* GAIM_PLUGINS */ 270 #endif /* GAIM_PLUGINS */
271 271
272 static char *event_name(enum gaim_event event) 272 char *event_name(enum gaim_event event)
273 { 273 {
274 static char buf[128]; 274 static char buf[128];
275 switch (event) { 275 switch (event) {
276 case event_signon: 276 case event_signon:
277 sprintf(buf, "event_signon"); 277 sprintf(buf, "event_signon");
466 } 466 }
467 } 467 }
468 468
469 int plugin_event(enum gaim_event event, void *arg1, void *arg2, void *arg3, void *arg4) 469 int plugin_event(enum gaim_event event, void *arg1, void *arg2, void *arg3, void *arg4)
470 { 470 {
471 #ifdef USE_PERL
472 char buf[BUF_LONG];
473 #endif
474 #ifdef GAIM_PLUGINS 471 #ifdef GAIM_PLUGINS
475 GList *c = callbacks; 472 GList *c = callbacks;
476 struct gaim_callback *g; 473 struct gaim_callback *g;
477 #endif 474 #endif
478 475
485 void (*two)(void *, void *, void *); 482 void (*two)(void *, void *, void *);
486 void (*three)(void *, void *, void *, void *); 483 void (*three)(void *, void *, void *, void *);
487 void (*four)(void *, void *, void *, void *, void *); 484 void (*four)(void *, void *, void *, void *, void *);
488 485
489 g = (struct gaim_callback *)c->data; 486 g = (struct gaim_callback *)c->data;
490 if (g->event == event && g->function !=NULL) { 487 if (g->event == event && g->function != NULL) {
491 switch (event) { 488 switch (event) {
492 489
493 /* no args */ 490 /* no args */
494 case event_blist_update: 491 case event_blist_update:
495 case event_quit: 492 case event_quit:
551 } 548 }
552 c = c->next; 549 c = c->next;
553 } 550 }
554 #endif /* GAIM_PLUGINS */ 551 #endif /* GAIM_PLUGINS */
555 #ifdef USE_PERL 552 #ifdef USE_PERL
556 switch (event) { 553 return perl_event(event, arg1, arg2, arg3, arg4);
557 case event_signon:
558 case event_signoff:
559 g_snprintf(buf, sizeof buf, "%lu", (unsigned long)arg1);
560 break;
561 case event_away:
562 g_snprintf(buf, sizeof buf, "%lu %s", (unsigned long)arg1,
563 ((struct gaim_connection *)arg1)->away ?
564 ((struct gaim_connection *)arg1)->away : "");
565 break;
566 case event_im_recv:
567 g_snprintf(buf, sizeof buf, "%lu \"%s\" %s", (unsigned long)arg1,
568 *(char **)arg2 ? *(char **)arg2 : "(null)",
569 *(char **)arg3 ? *(char **)arg3 : "(null)");
570 break;
571 case event_im_send:
572 g_snprintf(buf, sizeof buf, "%lu \"%s\" %s", (unsigned long)arg1,
573 (char *)arg2, *(char **)arg3 ? *(char **)arg3 : "(null)");
574 break;
575 case event_buddy_signon:
576 case event_buddy_signoff:
577 case event_set_info:
578 case event_buddy_away:
579 case event_buddy_back:
580 case event_buddy_idle:
581 case event_buddy_unidle:
582 g_snprintf(buf, sizeof buf, "%lu \"%s\"", (unsigned long)arg1, (char *)arg2);
583 break;
584 case event_chat_invited:
585 g_snprintf(buf, sizeof buf, "%lu \"%s\" \"%s\" %s", (unsigned long)arg1,
586 (char *)arg2, (char *)arg3, arg4 ? (char *)arg4 : "");
587 break;
588 case event_chat_join:
589 case event_chat_buddy_join:
590 case event_chat_buddy_leave:
591 g_snprintf(buf, sizeof buf, "%lu %d \"%s\"", (unsigned long)arg1,
592 (int)arg2, (char *)arg3);
593 break;
594 case event_chat_leave:
595 g_snprintf(buf, sizeof buf, "%lu %d", (unsigned long)arg1, (int)arg2);
596 break;
597 case event_chat_recv:
598 g_snprintf(buf, sizeof buf, "%lu %d \"%s\" %s", (unsigned long)arg1,
599 (int)arg2, (char *)arg3, (char *)arg4 ? (char *)arg4 : "(null)");
600 break;
601 case event_chat_send_invite:
602 g_snprintf(buf, sizeof buf, "%lu %d \"%s\" %s", (unsigned long)arg1,
603 (int)arg2, (char *)arg3, *(char **)arg4 ? *(char **)arg4 : "(null)");
604 break;
605 case event_chat_send:
606 g_snprintf(buf, sizeof buf, "%lu %d %s", (unsigned long)arg1, (int)arg2,
607 *(char **)arg3 ? *(char **)arg3 : "(null)");
608 break;
609 case event_warned:
610 g_snprintf(buf, sizeof buf, "%lu \"%s\" %d", (unsigned long)arg1,
611 arg2 ? (char *)arg2 : "", (int)arg3);
612 break;
613 case event_quit:
614 buf[0] = 0;
615 break;
616 case event_new_conversation:
617 g_snprintf(buf, sizeof buf, "\"%s\"", (char *)arg1);
618 break;
619 case event_im_displayed_sent:
620 g_snprintf(buf, sizeof buf, "%lu \"%s\" %s", (unsigned long)arg1,
621 (char *)arg2, *(char **)arg3 ? *(char **)arg3 : "(null)");
622 break;
623 case event_im_displayed_rcvd:
624 g_snprintf(buf, sizeof buf, "%lu \"%s\" %s", (unsigned long)arg1,
625 (char *)arg2, (char *)arg3 ? (char *)arg3 : "(null)");
626 break;
627 default:
628 return 0;
629 }
630 return perl_event(event_name(event), buf);
631 #else 554 #else
632 return 0; 555 return 0;
633 #endif 556 #endif
634 } 557 }
635 558