# HG changeset patch # User Eric Warmenhoven # Date 1001359977 0 # Node ID 571971659533d0c67f020c4194200499d73ee348 # Parent e485dcbefb9a04cbfd67b9012913faa27c7ad820 [gaim-migrate @ 2368] gaim.pl works like it should now committer: Tailor Script diff -r e485dcbefb9a -r 571971659533 plugins/PERL-HOWTO --- a/plugins/PERL-HOWTO Mon Sep 24 16:49:32 2001 +0000 +++ b/plugins/PERL-HOWTO Mon Sep 24 19:32:57 2001 +0000 @@ -45,6 +45,7 @@ 4 - given a connection index, the index in the users list 5 - the list of names of users 6 - the list of protocols of the users + 7 - given a connection index, the name of the protocol (as a string) GAIM::print(title, message) This displays a nice little dialog window. diff -r e485dcbefb9a -r 571971659533 plugins/gaim.pl --- a/plugins/gaim.pl Mon Sep 24 16:49:32 2001 +0000 +++ b/plugins/gaim.pl Mon Sep 24 19:32:57 2001 +0000 @@ -1,24 +1,30 @@ GAIM::register("gaim test", "0.0.1", "goodbye", ""); $ver = GAIM::get_info(0); -$nam = GAIM::get_info(1); -$pro = GAIM::get_info(2, $nam); - -GAIM::print("Perl Says", "Gaim $ver, $nam using $pro"); +@ids = GAIM::get_info(1); -GAIM::command("idle", 60000); +$msg = "Gaim $ver:"; +foreach $id (@ids) { + $pro = GAIM::get_info(7, $id); + $nam = GAIM::get_info(3, $id); + $msg .= "\n$nam using $pro"; +} -GAIM::add_event_handler("event_buddy_signon", "say_hello"); -GAIM::add_timeout_handler(600, "notify"); +GAIM::print("Perl Says", $msg); + +GAIM::command("idle", 6000); + +GAIM::add_event_handler("event_buddy_signon", "echo_reply"); +GAIM::add_timeout_handler(60, "notify"); sub echo_reply { - $args = @_; - $args =~ s/\"//g; - GAIM::print_to_conv($args, "Hello"); + $args = $_[0]; + $args =~ s/(.+) \"(.+)\"//; + GAIM::print_to_conv($1, $2, "Hello", 0); } sub notify { - GAIM::print("10 minutes", "gaim test has been loaded for 10 minutes"); + GAIM::print("1 minute", "gaim test has been loaded for 1 minute"); } sub goodbye { diff -r e485dcbefb9a -r 571971659533 src/perl.c --- a/src/perl.c Mon Sep 24 16:49:32 2001 +0000 +++ b/src/perl.c Mon Sep 24 19:32:57 2001 +0000 @@ -60,6 +60,7 @@ #undef DEBUG #endif #include "gaim.h" +#include "prpl.h" struct perlscript { char *name; @@ -302,7 +303,6 @@ XS (XS_GAIM_get_info) { int i = 0; - unsigned int junk; dXSARGS; items = 0; @@ -325,7 +325,8 @@ break; case 2: { - struct gaim_connection *gc = (struct gaim_connection *)SvPV(ST(1), junk); + struct gaim_connection *gc = (struct gaim_connection *)SvIV(ST(1)); + debug_printf("%lu %lu\n", connections->data, gc); if (g_slist_find(connections, gc)) XST_mIV(i++, gc->protocol); else @@ -334,15 +335,18 @@ break; case 3: { - struct gaim_connection *gc = (struct gaim_connection *)SvPV(ST(1), junk); + struct gaim_connection *gc = (struct gaim_connection *)SvIV(ST(1)); + debug_printf("%lu %lu\n", connections->data, gc); if (g_slist_find(connections, gc)) XST_mPV(i++, gc->username); else XST_mPV(i++, ""); } + break; case 4: { - struct gaim_connection *gc = (struct gaim_connection *)SvPV(ST(1), junk); + struct gaim_connection *gc = (struct gaim_connection *)SvIV(ST(1)); + debug_printf("%lu %lu\n", connections->data, gc); if (g_slist_find(connections, gc)) XST_mIV(i++, g_list_index(aim_users, gc->user)); else @@ -369,6 +373,16 @@ } } break; + case 7: + { + struct gaim_connection *gc = (struct gaim_connection *)SvIV(ST(1)); + debug_printf("%lu %lu\n", connections->data, gc); + if (g_slist_find(connections, gc)) + XST_mPV(i++, (*gc->prpl->name)()); + else + XST_mPV(i++, "Unknown"); + } + break; default: XST_mPV(0, "Error2"); i = 1; @@ -482,7 +496,6 @@ while (c) { gc = (struct gaim_connection *)c->data; serv_set_idle(gc, SvIV(ST(1))); - gc->is_idle = 1; c = c->next; } } else if (!strncasecmp(command, "warn", 4)) { @@ -687,7 +700,8 @@ items = 0; handler = g_new0(struct _perl_timeout_handlers, 1); - timeout = 1000 * atol(SvPV(ST(0), junk)); + timeout = 1000 * SvIV(ST(0)); + debug_printf("Adding timeout for %d seconds.\n", timeout/1000); handler->handler_name = g_strdup(SvPV(ST(1), junk)); perl_timeout_handlers = g_list_append(perl_timeout_handlers, handler); handler->iotag = gtk_timeout_add(timeout, (GtkFunction)perl_timeout, handler); diff -r e485dcbefb9a -r 571971659533 src/plugins.c --- a/src/plugins.c Mon Sep 24 16:49:32 2001 +0000 +++ b/src/plugins.c Mon Sep 24 19:32:57 2001 +0000 @@ -831,15 +831,15 @@ case event_signoff: case event_away: case event_back: - g_snprintf(buf, sizeof buf, "%p", arg1); + g_snprintf(buf, sizeof buf, "%lu", (unsigned long)arg1); break; case event_im_recv: - g_snprintf(buf, sizeof buf, "%p \"%s\" %s", arg1, + g_snprintf(buf, sizeof buf, "%lu \"%s\" %s", (unsigned long)arg1, *(char **)arg2 ? *(char **)arg2 : "(null)", *(char **)arg3 ? *(char **)arg3 : "(null)"); break; case event_im_send: - g_snprintf(buf, sizeof buf, "%p \"%s\" %s", arg1, + g_snprintf(buf, sizeof buf, "%lu \"%s\" %s", (unsigned long)arg1, (char *)arg2, *(char **)arg3 ? *(char **)arg3 : "(null)"); break; case event_buddy_signon: @@ -849,31 +849,33 @@ case event_buddy_back: case event_buddy_idle: case event_buddy_unidle: - g_snprintf(buf, sizeof buf, "%p \"%s\"", arg1, (char *)arg2); + g_snprintf(buf, sizeof buf, "%lu \"%s\"", (unsigned long)arg1, (char *)arg2); break; case event_chat_invited: - g_snprintf(buf, sizeof buf, "%p \"%s\" \"%s\" %s", arg1, + g_snprintf(buf, sizeof buf, "%lu \"%s\" \"%s\" %s", (unsigned long)arg1, (char *)arg2, (char *)arg3, arg4 ? (char *)arg4 : ""); break; case event_chat_join: case event_chat_buddy_join: case event_chat_buddy_leave: - g_snprintf(buf, sizeof buf, "%p %d \"%s\"", arg1, (int)arg2, (char *)arg3); + g_snprintf(buf, sizeof buf, "%lu %d \"%s\"", (unsigned long)arg1, + (int)arg2, (char *)arg3); break; case event_chat_leave: - g_snprintf(buf, sizeof buf, "%p %d", arg1, (int)arg2); + g_snprintf(buf, sizeof buf, "%lu %d", (unsigned long)arg1, (int)arg2); break; case event_chat_recv: case event_chat_send_invite: - g_snprintf(buf, sizeof buf, "%p %d \"%s\" %s", arg1, + g_snprintf(buf, sizeof buf, "%lu %d \"%s\" %s", (unsigned long)arg1, (int)arg2, (char *)arg3, (char *)arg4); break; case event_chat_send: - g_snprintf(buf, sizeof buf, "%p %d %s", arg1, (int)arg2, + g_snprintf(buf, sizeof buf, "%lu %d %s", (unsigned long)arg1, (int)arg2, *(char **)arg3 ? *(char **)arg3 : "(null)"); break; case event_warned: - g_snprintf(buf, sizeof buf, "%p \"%s\" %d", arg1, arg2 ? (char *)arg2 : "", (int)arg3); + g_snprintf(buf, sizeof buf, "%lu \"%s\" %d", (unsigned long)arg1, + arg2 ? (char *)arg2 : "", (int)arg3); break; case event_quit: buf[0] = 0; @@ -882,11 +884,11 @@ g_snprintf(buf, sizeof buf, "\"%s\"", (char *)arg1); break; case event_im_displayed_sent: - g_snprintf(buf, sizeof buf, "%p \"%s\" %s", arg1, + g_snprintf(buf, sizeof buf, "%lu \"%s\" %s", (unsigned long)arg1, (char *)arg2, *(char **)arg3 ? *(char **)arg3 : "(null)"); break; case event_im_displayed_rcvd: - g_snprintf(buf, sizeof buf, "%p \"%s\" %s", arg1, + g_snprintf(buf, sizeof buf, "%lu \"%s\" %s", (unsigned long)arg1, (char *)arg2, (char *)arg3 ? (char *)arg3 : "(null)"); break; default: diff -r e485dcbefb9a -r 571971659533 src/prpl.c --- a/src/prpl.c Mon Sep 24 16:49:32 2001 +0000 +++ b/src/prpl.c Mon Sep 24 19:32:57 2001 +0000 @@ -376,6 +376,7 @@ gtk_widget_show(gc->email_label); close = picture_button(gc->email_win, _("Close"), cancel_xpm); + gtk_window_set_focus(GTK_WINDOW(gc->email_win), close); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(gc->email_win)->action_area), close, 0, 0, 5); gtk_signal_connect(GTK_OBJECT(close), "clicked", @@ -405,6 +406,7 @@ gtk_widget_show(gc->email_label); close = picture_button(gc->email_win, _("Close"), cancel_xpm); + gtk_window_set_focus(GTK_WINDOW(gc->email_win), close); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(gc->email_win)->action_area), close, 0, 0, 5); gtk_signal_connect(GTK_OBJECT(close), "clicked",