changeset 1815:f15d449b3167

[gaim-migrate @ 1825] I am IRON MAN committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Sun, 06 May 2001 09:20:03 +0000
parents 4681a02d6d3e
children aa2bb1bfbd4b
files libfaim/aim.h libfaim/aim_internal.h libfaim/info.c libfaim/login.c plugins/iconaway.c plugins/yay/yay.c src/aim.c src/applet.c src/away.c src/buddy.c src/buddy_chat.c src/conversation.c src/dialogs.c src/gaim.h src/gtkspell.c src/idle.c src/oscar.c src/prefs.c src/prpl.h src/server.c src/util.c
diffstat 21 files changed, 140 insertions(+), 155 deletions(-) [+]
line wrap: on
line diff
--- a/libfaim/aim.h	Sun May 06 08:13:03 2001 +0000
+++ b/libfaim/aim.h	Sun May 06 09:20:03 2001 +0000
@@ -649,14 +649,17 @@
 faim_export int aim_oft_getfile_end(struct aim_session_t *sess, struct aim_conn_t *conn);
 
 /* aim_info.c */
-#define AIM_CAPS_BUDDYICON 0x01
-#define AIM_CAPS_VOICE 0x02
-#define AIM_CAPS_IMIMAGE 0x04
-#define AIM_CAPS_CHAT 0x08
-#define AIM_CAPS_GETFILE 0x10
-#define AIM_CAPS_SENDFILE 0x20
-#define AIM_CAPS_GAMES 0x40
-#define AIM_CAPS_SAVESTOCKS 0x80
+#define AIM_CAPS_BUDDYICON      0x0001
+#define AIM_CAPS_VOICE          0x0002
+#define AIM_CAPS_IMIMAGE        0x0004
+#define AIM_CAPS_CHAT           0x0008
+#define AIM_CAPS_GETFILE        0x0010
+#define AIM_CAPS_SENDFILE       0x0020
+#define AIM_CAPS_GAMES          0x0040
+#define AIM_CAPS_SAVESTOCKS     0x0080
+#define AIM_CAPS_SENDBUDDYLIST  0x0100
+#define AIM_CAPS_GAMES2         0x0200
+#define AIM_CAPS_LAST           0x8000
 
 faim_export int aim_0002_000b(struct aim_session_t *sess, struct aim_conn_t *conn, const char *sn);
 
--- a/libfaim/aim_internal.h	Sun May 06 08:13:03 2001 +0000
+++ b/libfaim/aim_internal.h	Sun May 06 09:20:03 2001 +0000
@@ -108,9 +108,8 @@
 
 faim_internal int aim_negchan_middle(struct aim_session_t *sess, struct command_rx_struct *command);
 
-extern u_char aim_caps[8][16];
 faim_internal unsigned short aim_getcap(struct aim_session_t *sess, unsigned char *capblock, int buflen);
-faim_internal int aim_putcap(unsigned char *capblock, int buflen, u_short caps);
+faim_internal int aim_putcap(unsigned char *capblock, int buflen, unsigned short caps);
 
 faim_internal int aim_cachecookie(struct aim_session_t *sess, struct aim_msgcookie_t *cookie);
 faim_internal struct aim_msgcookie_t *aim_uncachecookie(struct aim_session_t *sess, unsigned char *cookie, int type);
--- a/libfaim/info.c	Sun May 06 08:13:03 2001 +0000
+++ b/libfaim/info.c	Sun May 06 09:20:03 2001 +0000
@@ -54,112 +54,101 @@
 /*
  * Capability blocks.  
  */
-u_char aim_caps[8][16] = {
+static const struct {
+  unsigned short flag;
+  unsigned char data[16];
+} aim_caps[] = {
   
-  /* Buddy icon */
-  {0x09, 0x46, 0x13, 0x46, 0x4c, 0x7f, 0x11, 0xd1, 
-   0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00},
+  {AIM_CAPS_BUDDYICON,
+   {0x09, 0x46, 0x13, 0x46, 0x4c, 0x7f, 0x11, 0xd1, 
+    0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}},
   
-  /* Voice */
-  {0x09, 0x46, 0x13, 0x41, 0x4c, 0x7f, 0x11, 0xd1, 
-   0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00},
+  {AIM_CAPS_VOICE,
+   {0x09, 0x46, 0x13, 0x41, 0x4c, 0x7f, 0x11, 0xd1, 
+    0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}},
+
+  {AIM_CAPS_IMIMAGE,
+   {0x09, 0x46, 0x13, 0x45, 0x4c, 0x7f, 0x11, 0xd1, 
+    0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}},
   
-  /* IM image */
-  {0x09, 0x46, 0x13, 0x45, 0x4c, 0x7f, 0x11, 0xd1, 
-   0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00},
+  {AIM_CAPS_CHAT,
+   {0x74, 0x8f, 0x24, 0x20, 0x62, 0x87, 0x11, 0xd1, 
+    0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}},
   
-  /* Chat */
-  {0x74, 0x8f, 0x24, 0x20, 0x62, 0x87, 0x11, 0xd1, 
-   0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00},
-  
-  /* Get file */
-  {0x09, 0x46, 0x13, 0x48, 0x4c, 0x7f, 0x11, 0xd1,
-   0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00},
-  
-  /* Send file */
-  {0x09, 0x46, 0x13, 0x43, 0x4c, 0x7f, 0x11, 0xd1, 
-   0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00},
+  {AIM_CAPS_GETFILE,
+   {0x09, 0x46, 0x13, 0x48, 0x4c, 0x7f, 0x11, 0xd1,
+    0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}},
+
+  {AIM_CAPS_SENDFILE,
+   {0x09, 0x46, 0x13, 0x43, 0x4c, 0x7f, 0x11, 0xd1, 
+    0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}},
+
+  {AIM_CAPS_SAVESTOCKS,
+   {0x09, 0x46, 0x13, 0x47, 0x4c, 0x7f, 0x11, 0xd1,
+    0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}},
 
-  /* Saves stock portfolios */
-  {0x09, 0x46, 0x13, 0x47, 0x4c, 0x7f, 0x11, 0xd1,
-   0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00},
+  /*
+   * Indeed, there are two of these.  The former appears
+   * to be correct, but in some versions of winaim, the
+   * second one is set.  Either they forgot to fix endianness,
+   * or they made a typo. It really doesn't matter which.
+   */
+  {AIM_CAPS_GAMES,
+   {0x09, 0x46, 0x13, 0x4a, 0x4c, 0x7f, 0x11, 0xd1,
+    0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}},
+  {AIM_CAPS_GAMES2,
+   {0x09, 0x46, 0x13, 0x4a, 0x4c, 0x7f, 0x11, 0xd1,
+    0x22, 0x82, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}},
 
-  /* Games */
-  {0x09, 0x46, 0x13, 0x4a, 0x4c, 0x7f, 0x11, 0xd1,
-   0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00},
+  {AIM_CAPS_SENDBUDDYLIST,
+   {0x09, 0x46, 0x13, 0x4b, 0x4c, 0x7f, 0x11, 0xd1,
+    0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}},
+
+  {AIM_CAPS_LAST}
 };
 
 faim_internal unsigned short aim_getcap(struct aim_session_t *sess, unsigned char *capblock, int buflen)
 {
-  u_short ret = 0;
-  int y;
+  unsigned short flags;
+  int i;
   int offset = 0;
   int identified;
 
-  while (offset < buflen) {
-    identified = 0;
-    for(y=0; y < (sizeof(aim_caps)/0x10); y++) {
-      if (memcmp(&aim_caps[y], capblock+offset, 0x10) == 0) {
-	switch(y) {
-	case 0: ret |= AIM_CAPS_BUDDYICON; identified++; break;
-	case 1: ret |= AIM_CAPS_VOICE; identified++; break;
-	case 2: ret |= AIM_CAPS_IMIMAGE; identified++; break;
-	case 3: ret |= AIM_CAPS_CHAT; identified++; break;
-	case 4: ret |= AIM_CAPS_GETFILE; identified++; break;
-	case 5: ret |= AIM_CAPS_SENDFILE; identified++; break;
-	case 6: ret |= AIM_CAPS_GAMES; identified++; break;
-	case 7: ret |= AIM_CAPS_SAVESTOCKS; identified++; break;
-	}
+  for (offset = 0, flags = 0; offset < buflen; offset += 0x0010) {
+
+    for (i = 0, identified = 0; !(aim_caps[i].flag & AIM_CAPS_LAST); i++) {
+
+      if (memcmp(&aim_caps[i].data, capblock+offset, 0x10) == 0) {
+	flags |= aim_caps[i].flag;
+	identified++;
+	break; /* should only match once... */
       }
-    }
-    if (!identified) {
-      faimdprintf(sess, 0, "unknown capability!\n");
-      ret |= 0xff00;
+
     }
 
-    offset += 0x10;
-  } 
-  return ret;
+    if (!identified)
+      faimdprintf(sess, 0, "unknown capability!\n");
+
+  }
+
+  return flags;
 }
 
-faim_internal int aim_putcap(unsigned char *capblock, int buflen, u_short caps)
+faim_internal int aim_putcap(unsigned char *capblock, int buflen, unsigned short caps)
 {
-  int offset = 0;
+  int offset, i;
 
   if (!capblock)
-    return -1;
+    return 0;
+
+  for (i = 0, offset = 0; 
+       !(aim_caps[i].flag & AIM_CAPS_LAST) && (offset < buflen); i++) {
 
-  if ((caps & AIM_CAPS_BUDDYICON) && (offset < buflen)) {
-    memcpy(capblock+offset, aim_caps[0], sizeof(aim_caps[0]));
-    offset += sizeof(aim_caps[1]);
-  }
-  if ((caps & AIM_CAPS_VOICE) && (offset < buflen)) {
-    memcpy(capblock+offset, aim_caps[1], sizeof(aim_caps[1]));
-    offset += sizeof(aim_caps[1]);
-  }
-  if ((caps & AIM_CAPS_IMIMAGE) && (offset < buflen)) {
-    memcpy(capblock+offset, aim_caps[2], sizeof(aim_caps[2]));
-    offset += sizeof(aim_caps[2]);
-  }
-  if ((caps & AIM_CAPS_CHAT) && (offset < buflen)) {
-    memcpy(capblock+offset, aim_caps[3], sizeof(aim_caps[3]));
-    offset += sizeof(aim_caps[3]);
-  }
-  if ((caps & AIM_CAPS_GETFILE) && (offset < buflen)) {
-    memcpy(capblock+offset, aim_caps[4], sizeof(aim_caps[4]));
-    offset += sizeof(aim_caps[4]);
-  }
-  if ((caps & AIM_CAPS_SENDFILE) && (offset < buflen)) {
-    memcpy(capblock+offset, aim_caps[5], sizeof(aim_caps[5]));
-    offset += sizeof(aim_caps[5]);
-  }
-  if ((caps & AIM_CAPS_GAMES) && (offset < buflen)) {
-    memcpy(capblock+offset, aim_caps[6], sizeof(aim_caps[6]));
-    offset += sizeof(aim_caps[6]);
-  }
-  if ((caps & AIM_CAPS_SAVESTOCKS) && (offset < buflen)) {
-    memcpy(capblock+offset, aim_caps[7], sizeof(aim_caps[7]));
-    offset += sizeof(aim_caps[7]);
+    if (caps & aim_caps[i].flag) {
+      memcpy(capblock+offset, aim_caps[i].data, 16);
+      offset += 16;
+    }
+
   }
 
   return offset;
--- a/libfaim/login.c	Sun May 06 08:13:03 2001 +0000
+++ b/libfaim/login.c	Sun May 06 09:20:03 2001 +0000
@@ -813,15 +813,19 @@
       faimdprintf(sess, 0, "sendmemblock: WARNING: sending bad hash... you will be disconnected soon...\n");
 
     /* 
-     * This data is correct for AIM 3.5.1670, offset 0x1004, length 4 
+     * This data is correct for AIM 3.5.1670, offset 0x1000, length 0 
      *
      * Using this block is as close to "legal" as you can get without
      * using an AIM binary.
+     *
+     * For the moment, this is the MD5 hash of nothing.  Yes, that's
+     * right.  Nothing.  AOL is smart.
+     *
      */
-    i += aimutil_put32(tx->data+i, 0x92bd6757);
-    i += aimutil_put32(tx->data+i, 0x3722cbd3);
-    i += aimutil_put32(tx->data+i, 0x2b048ab9);
-    i += aimutil_put32(tx->data+i, 0xd0b1e4ab);
+    i += aimutil_put32(tx->data+i, 0xd41d8cd9);
+    i += aimutil_put32(tx->data+i, 0x8f00b204);
+    i += aimutil_put32(tx->data+i, 0xe9800998);
+    i += aimutil_put32(tx->data+i, 0xecf8427e);
 
   }
 
--- a/plugins/iconaway.c	Sun May 06 08:13:03 2001 +0000
+++ b/plugins/iconaway.c	Sun May 06 09:20:03 2001 +0000
@@ -1,4 +1,4 @@
-#define GAIM_PLUGINS
+#include "config.h"
 #include "gaim.h"
 
 #include <gdk/gdkx.h>
--- a/plugins/yay/yay.c	Sun May 06 08:13:03 2001 +0000
+++ b/plugins/yay/yay.c	Sun May 06 09:20:03 2001 +0000
@@ -83,7 +83,6 @@
 static int yahoo_status(struct yahoo_session *sess, ...) {
 	struct gaim_connection *gc = sess->user_data;
 	struct yahoo_data *yd = (struct yahoo_data *)gc->proto_data;
-	int i;
 	time_t tmptime;
 	struct buddy *b;
 	gboolean online;
@@ -132,7 +131,6 @@
 
 static int yahoo_message(struct yahoo_session *sess, ...) {
 	struct gaim_connection *gc = sess->user_data;
-	struct yahoo_data *yd = (struct yahoo_data *)gc->proto_data;
 	char buf[BUF_LEN * 4];
 	char *tmp, *c, *e;
 	time_t tm;
@@ -151,7 +149,7 @@
 	if (msg)
 		e = tmp = g_strdup(msg);
 	else
-		return;
+		return 1;
 
 	while ((c = strchr(e, '\033')) != NULL) {
 		*c++ = '\0';
@@ -245,6 +243,8 @@
 		gtk_label_set_text(GTK_LABEL(yd->email_label), buf);
 	} else if (yd->email_win)
 		gtk_widget_destroy(yd->email_win);
+
+	return 1;
 }
 
 static int yahoo_disconn(struct yahoo_session *sess, ...) {
@@ -321,6 +321,8 @@
 	serv_finish_login(gc);
 	yd->active_id = g_strdup(gc->username);
 	yd->logged_in = TRUE;
+
+	return 1;
 }
 
 static void yahoo_pending(gpointer data, gint source, GdkInputCondition condition) {
@@ -369,7 +371,6 @@
 	yd->hash = g_hash_table_new(g_str_hash, g_str_equal);
 
 	if (user->proto_opt[USEROPT_HTTPHOST][0]) {
-		char *finalproxy;
 		if (user->proto_opt[USEROPT_HTTPPORT][0])
 			yahoo_set_proxy(yd->sess, YAHOO_PROXY_HTTP,
 					user->proto_opt[USEROPT_HTTPHOST],
--- a/src/aim.c	Sun May 06 08:13:03 2001 +0000
+++ b/src/aim.c	Sun May 06 09:20:03 2001 +0000
@@ -453,7 +453,9 @@
 
 #if HAVE_SIGNAL_H
 	/* Let's not violate any PLA's!!!! */
+#ifndef DEBUG
 	signal(SIGSEGV, sighandler);
+#endif
 	signal(SIGHUP, sighandler);
 	signal(SIGINT, sighandler);
 	signal(SIGPIPE, SIG_IGN);
--- a/src/applet.c	Sun May 06 08:13:03 2001 +0000
+++ b/src/applet.c	Sun May 06 09:20:03 2001 +0000
@@ -113,7 +113,7 @@
 		gtk_pixmap_set( GTK_PIXMAP(icon),
 				icon_offline_pm,
 				icon_offline_bm );
-		applet_set_tooltips(_("Offilne. Click to bring up login box."));
+		applet_set_tooltips(_("Offline. Click to bring up login box."));
 	} else if (!awaymessage) {
 		gtk_pixmap_set( GTK_PIXMAP(icon),
 				icon_online_pm,
@@ -298,9 +298,6 @@
 gint init_applet_mgr(int argc, char *argv[]) {
 	GtkWidget *vbox;
 	
-	GtkStyle *label_style;
-	GdkFont *label_font = NULL;
-
         applet_widget_init("GAIM",VERSION,argc,argv,NULL,0,NULL);
         
         /*init imlib for graphics*/ 
--- a/src/away.c	Sun May 06 08:13:03 2001 +0000
+++ b/src/away.c	Sun May 06 09:20:03 2001 +0000
@@ -140,8 +140,6 @@
 	GtkWidget *vbox;
 	char *buf2;
 	char buf[BUF_LONG];
-	GList *cnv = conversations;
-	struct conversation *c;
 
 	if (!blist)
 		return;
--- a/src/buddy.c	Sun May 06 08:13:03 2001 +0000
+++ b/src/buddy.c	Sun May 06 09:20:03 2001 +0000
@@ -50,12 +50,12 @@
 
 #include "pixmaps/add_small.xpm"
 #include "pixmaps/import_small.xpm"
-#include "pixmaps/export_small.xpm"
+/*#include "pixmaps/export_small.xpm"*/
 #if defined(GAIM_PLUGINS) || defined(USE_PERL)
 #include "pixmaps/plugins_small.xpm"
 #endif
 #include "pixmaps/prefs_small.xpm"
-#include "pixmaps/search_small.xpm"
+/*#include "pixmaps/search_small.xpm"*/
 #ifdef USE_APPLET
 #include "pixmaps/close_small.xpm"
 #else
@@ -2145,7 +2145,7 @@
 	char infotip[2048];
 	char warn[256];
 	char caps[256];
-	char *sotime, *itime;
+	char *sotime = NULL, *itime;
 
 	time(&t);
 	if (!bs->connlist) return;
--- a/src/buddy_chat.c	Sun May 06 08:13:03 2001 +0000
+++ b/src/buddy_chat.c	Sun May 06 09:20:03 2001 +0000
@@ -873,7 +873,7 @@
 	GTK_LAYOUT(text)->vadjustment->step_increment = 10.0;
 	if (display_options & OPT_DISP_SHOW_TIME)
 		gtk_imhtml_show_comments(GTK_IMHTML(text), TRUE);
-	gaim_setup_imhtml(GTK_IMHTML(text));
+	gaim_setup_imhtml(text);
 	gtk_widget_show(text);
 
 	lbox = gtk_vbox_new(FALSE, 5);
--- a/src/conversation.c	Sun May 06 08:13:03 2001 +0000
+++ b/src/conversation.c	Sun May 06 09:20:03 2001 +0000
@@ -78,8 +78,10 @@
 /*------------------------------------------------------------------------*/
 
 
-void gaim_setup_imhtml(GtkIMHtml *imhtml)
+void gaim_setup_imhtml(GtkWidget *imhtml)
 {
+	g_return_if_fail(imhtml != NULL);
+	g_return_if_fail(GTK_IS_IMHTML(imhtml));
 	if (!(display_options & OPT_DISP_SHOW_SMILEY))
 		gtk_imhtml_show_smileys(GTK_IMHTML(imhtml), FALSE);
 	gtk_signal_connect(GTK_OBJECT(imhtml), "url_clicked", GTK_SIGNAL_FUNC(open_url_nw), NULL);
@@ -696,7 +698,7 @@
 				GList *cnv = g_list_nth(ws,
 						gtk_notebook_get_current_page(
 							GTK_NOTEBOOK(notebook)));
-				struct conversation *d;
+				struct conversation *d = NULL;
 				while (cnv) {
 					d = cnv->data;
 					if (d->unseen)
@@ -1335,7 +1337,7 @@
 		if (general_options & OPT_DISP_SHOW_TIME)
 			g_snprintf(buf, BUF_LONG, "<FONT SIZE=\"2\">(%s) </FONT><B>%s</B>", mdate, what);
 		else
-			g_snprintf(buf, BUF_LONG, "<B>%s</B>", mdate, what);
+			g_snprintf(buf, BUF_LONG, "<B>%s</B>", what);
 		g_snprintf(buf2, sizeof(buf2), "<FONT SIZE=\"2\"><!--(%s) --></FONT><B>%s</B><BR>",
 			mdate, what);
 
@@ -2058,7 +2060,7 @@
 	GTK_LAYOUT(text)->vadjustment->step_increment = 10.0;
 	if (display_options & OPT_DISP_SHOW_TIME)
 		gtk_imhtml_show_comments(GTK_IMHTML(text), TRUE);
-	gaim_setup_imhtml(GTK_IMHTML(text));
+	gaim_setup_imhtml(text);
 	gtk_widget_show(text);
 
 	vbox2 = gtk_vbox_new(FALSE, 5);
--- a/src/dialogs.c	Sun May 06 08:13:03 2001 +0000
+++ b/src/dialogs.c	Sun May 06 09:20:03 2001 +0000
@@ -1758,7 +1758,7 @@
 	GTK_LAYOUT(text)->vadjustment->step_increment = 10.0;
 	gtk_widget_set_usize(sw, 300, 250);
 	gtk_imhtml_set_img_handler(GTK_IMHTML(text), info_img_handler);
-	gaim_setup_imhtml(GTK_IMHTML(text));
+	gaim_setup_imhtml(text);
 
 	gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0);
 	gtk_box_pack_start(GTK_BOX(bbox), sw, TRUE, TRUE, 0);
@@ -3704,7 +3704,7 @@
 	layout = gtk_imhtml_new(NULL, NULL);
 	gtk_signal_connect(GTK_OBJECT(layout), "url_clicked", open_url_nw, NULL);
 	gtk_container_add(GTK_CONTAINER(sw), layout);
-	gaim_setup_imhtml(GTK_IMHTML(layout));
+	gaim_setup_imhtml(layout);
 
 	hbox = gtk_hbox_new(FALSE, 0);
 	gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0);
--- a/src/gaim.h	Sun May 06 08:13:03 2001 +0000
+++ b/src/gaim.h	Sun May 06 09:20:03 2001 +0000
@@ -665,9 +665,12 @@
 extern void serv_got_chat_in(struct gaim_connection *, int, char *, int, char *, time_t);
 
 /* Functions in conversation.c */
+extern void gaim_setup_imhtml(GtkWidget *);
 extern void update_convo_add_button(struct conversation *);
 extern void write_html_with_smileys(GtkWidget *, GtkWidget *, char *);
 extern void write_to_conv(struct conversation *, char *, int, char *, time_t);
+extern void raise_convo_tab(struct conversation *);
+extern void set_convo_tab_label(struct conversation *, char *);
 extern void show_conv(struct conversation *);
 extern struct conversation *new_conversation(char *);
 extern struct conversation *find_conversation(char *);
@@ -696,6 +699,10 @@
 extern void toggle_smileys();
 extern void toggle_timestamps();
 extern void update_pixmaps();
+extern void tabize();
+extern void chat_tabize();
+extern void update_convo_color();
+extern void update_convo_font();
 
 /* Functions in toc.c */
 extern void parse_toc_buddy_list(struct gaim_connection *, char *, int);
@@ -728,6 +735,8 @@
 extern void remove_buddy(struct gaim_connection *, struct group *, struct buddy *);
 extern struct buddy *add_buddy(struct gaim_connection *, char *, char *, char *);
 extern void remove_group(struct gaim_connection *, struct group *);
+extern void toggle_buddy_pixmaps();
+extern void gaim_separator(GtkWidget *);
 
 /* Functions in away.c */
 extern void rem_away_mess(GtkWidget *, struct away_message *);
@@ -750,6 +759,7 @@
 
 /* Functions in sound.c */
 extern void play_sound(int);
+extern void play_file(char *);
 
 /* Functions in perl.c */
 #ifdef USE_PERL
@@ -808,6 +818,7 @@
 extern void do_error_dialog(char *, char *);
 extern void show_error_dialog(char *);
 extern void show_im_dialog();
+extern void some_name(char *);
 extern void show_info_dialog();
 extern void show_add_buddy(struct gaim_connection *, char *, char *);
 extern void show_add_group(struct gaim_connection *);
@@ -816,6 +827,7 @@
 extern void show_import_dialog();
 extern void show_export_dialog();
 extern void show_new_bp();
+extern void show_log(char *);
 extern void show_log_dialog(struct conversation *);
 extern void show_find_email(struct gaim_connection *gc);
 extern void show_find_info();
@@ -827,6 +839,7 @@
 extern void show_bgcolor_dialog(struct conversation *c, GtkWidget *color);
 extern void cancel_fgcolor(GtkWidget *widget, struct conversation *c);
 extern void cancel_bgcolor(GtkWidget *widget, struct conversation *c);
+extern void put_out(struct gaim_connection *, char *, char *());
 extern void create_away_mess(GtkWidget *, void *);
 extern void show_ee_dialog(int);
 extern void show_add_link(GtkWidget *,struct conversation *);
@@ -840,6 +853,7 @@
 extern void cancel_log(GtkWidget *, struct conversation *);
 extern void cancel_link(GtkWidget *, struct conversation *);
 extern void show_font_dialog(struct conversation *c, GtkWidget *font);
+extern void get_good(struct gaim_connection **);
 extern void cancel_font(GtkWidget *widget, struct conversation *c);
 extern void apply_font(GtkWidget *widget, GtkFontSelection *fontsel);
 extern void set_color_selection(GtkWidget *selection, GdkColor color);
--- a/src/gtkspell.c	Sun May 06 08:13:03 2001 +0000
+++ b/src/gtkspell.c	Sun May 06 09:20:03 2001 +0000
@@ -67,6 +67,7 @@
 	va_end(ap);
 }
 */
+extern void debug_printf(char *, ...);
 #define error_print debug_printf
 
 /* functions to interface with pipe */
--- a/src/idle.c	Sun May 06 08:13:03 2001 +0000
+++ b/src/idle.c	Sun May 06 09:20:03 2001 +0000
@@ -82,7 +82,7 @@
 	} else if (gc->is_auto_away && idle_time < 60 * auto_away) {
 		if (gc->is_auto_away == 2) {
 			gc->is_auto_away = 0;
-			return;
+			return TRUE;
 		}
 		gc->is_auto_away = 0;
 		if (awaymessage == NULL) {
--- a/src/oscar.c	Sun May 06 08:13:03 2001 +0000
+++ b/src/oscar.c	Sun May 06 09:20:03 2001 +0000
@@ -42,7 +42,7 @@
 #include "gaim.h"
 #include "aim.h"
 
-#include "pixmaps/cancel.xpm"
+/*#include "pixmaps/cancel.xpm"*/
 #include "pixmaps/admin_icon.xpm"
 #include "pixmaps/aol_icon.xpm"
 #include "pixmaps/away_icon.xpm"
@@ -145,6 +145,7 @@
 	return m;
 }
 
+/*
 static struct getfile_transfer *find_getfile_transfer(struct oscar_data *od, struct aim_conn_t *conn) {
 	GSList *g = od->getfiles;
 	struct getfile_transfer *n = NULL;
@@ -159,6 +160,7 @@
 
 	return n;
 }
+*/
 
 struct chat_connection *find_oscar_chat(struct gaim_connection *gc, int id) {
 	GSList *g = ((struct oscar_data *)gc->proto_data)->oscar_chats;
@@ -636,7 +638,7 @@
 			return;
 		}
 		g_snprintf(buf, sizeof(buf), "GET http://gaim.sourceforge.net/aim_data.php3?"
-				"offset=%d&len=%d&modname=%s HTTP/1.0\n\n",
+				"offset=%ld&len=%ld&modname=%s HTTP/1.0\n\n",
 				pos->offset, pos->len, pos->modname ? pos->modname : "");
 		write(pos->conn->fd, buf, strlen(buf));
 		if (pos->modname)
@@ -689,7 +691,7 @@
 	if (len == 0) {
 		aim_sendmemblock(sess, command->conn, offset, len, NULL,
 				AIM_SENDMEMBLOCK_FLAG_ISREQUEST);
-		return;
+		return 1;
 	}
 
 	pos = g_new0(struct pieceofcrap, 1);
@@ -713,7 +715,7 @@
 	x[1] = htonl(0x6d656e68);
 	x[2] = htonl(0x6f76656e);
 	x[3] = 0;
-	g_snprintf(buf, 16, "%s", x);
+	g_snprintf(buf, 16, "%s", (char *)x);
 }
 
 int gaim_parse_login(struct aim_session_t *sess,
@@ -2589,25 +2591,21 @@
 }
 
 static void oscar_add_permit(struct gaim_connection *gc, char *who) {
-	struct oscar_data *od = (struct oscar_data *)gc->proto_data;
 	if (gc->permdeny != 3) return;
 	oscar_set_permit_deny(gc);
 }
 
 static void oscar_add_deny(struct gaim_connection *gc, char *who) {
-	struct oscar_data *od = (struct oscar_data *)gc->proto_data;
 	if (gc->permdeny != 4) return;
 	oscar_set_permit_deny(gc);
 }
 
 static void oscar_rem_permit(struct gaim_connection *gc, char *who) {
-	struct oscar_data *od = (struct oscar_data *)gc->proto_data;
 	if (gc->permdeny != 3) return;
 	oscar_set_permit_deny(gc);
 }
 
 static void oscar_rem_deny(struct gaim_connection *gc, char *who) {
-	struct oscar_data *od = (struct oscar_data *)gc->proto_data;
 	if (gc->permdeny != 4) return;
 	oscar_set_permit_deny(gc);
 }
--- a/src/prefs.c	Sun May 06 08:13:03 2001 +0000
+++ b/src/prefs.c	Sun May 06 09:20:03 2001 +0000
@@ -1171,7 +1171,6 @@
 	GtkWidget *parent;
 	GtkWidget *box;
 	GtkWidget *label;
-	GtkWidget *sep;
 	GtkWidget *hbox;
 	GtkWidget *button;
 	GtkWidget *select;
@@ -1534,7 +1533,6 @@
 }
 
 static struct away_message *cur_message;
-static char *edited_message;
 static GtkWidget *away_text;
 static GtkWidget *make_away_button = NULL;;
 
@@ -1770,7 +1768,7 @@
 
 	away_text = gtk_imhtml_new(NULL, NULL);
 	gtk_container_add(GTK_CONTAINER(sw2), away_text);
-	gaim_setup_imhtml(GTK_IMHTML(away_text));
+	gaim_setup_imhtml(away_text);
 	gtk_widget_show(away_text);
 
 	bot = gtk_hbox_new(FALSE, 0);
@@ -2473,7 +2471,6 @@
 
 void prefs_build_general()
 {
-	GtkCTreeNode *node;
 	char *text[1];
 
 	text[0] = _("General");
@@ -2481,18 +2478,6 @@
 					     text, 5, NULL, NULL, NULL, NULL, 0, 1);
 	gtk_ctree_node_set_row_data(GTK_CTREE(preftree), general_node, general_page);
 
-	/*
-	text[0] = _("Browser");
-	node = gtk_ctree_insert_node(GTK_CTREE(preftree), general_node, NULL,
-				     text, 5, NULL, NULL, NULL, NULL, 0, 1);
-	gtk_ctree_node_set_row_data(GTK_CTREE(preftree), node, browser_page);
-
-	text[0] = _("Logging");
-	node = gtk_ctree_insert_node(GTK_CTREE(preftree), general_node, NULL,
-				     text, 5, NULL, NULL, NULL, NULL, 0, 1);
-	gtk_ctree_node_set_row_data(GTK_CTREE(preftree), node, logging_page);
-	*/
-
 	gtk_ctree_select(GTK_CTREE(preftree), general_node);
 }
 
@@ -2522,13 +2507,6 @@
 				     text, 5, NULL, NULL, NULL, NULL, 0, 1);
 	gtk_ctree_node_set_row_data(GTK_CTREE(preftree), node, im_page);
 
-	/*
-	text[0] = _("Chat Window");
-	node = gtk_ctree_insert_node(GTK_CTREE(preftree), parent, NULL,
-				     text, 5, NULL, NULL, NULL, NULL, 0, 1);
-	gtk_ctree_node_set_row_data(GTK_CTREE(preftree), node, chat_page);
-	*/
-
 	text[0] = _("Font Options");
 	node = gtk_ctree_insert_node(GTK_CTREE(preftree), parent, NULL,
 				     text, 5, NULL, NULL, NULL, NULL, 0, 1);
--- a/src/prpl.h	Sun May 06 08:13:03 2001 +0000
+++ b/src/prpl.h	Sun May 06 09:20:03 2001 +0000
@@ -136,6 +136,7 @@
 void unload_protocol(struct prpl *);
 
 struct prpl *find_prpl(int);
+void do_proto_menu();
 
 void register_user(gpointer, gpointer);
 void prepare_regbox_for_next();
--- a/src/server.c	Sun May 06 08:13:03 2001 +0000
+++ b/src/server.c	Sun May 06 09:20:03 2001 +0000
@@ -370,7 +370,6 @@
 {
 	struct conversation *cnv;
 	int new_conv = 0;
-	int hehe = away;
 
 	/* plugin stuff. we pass a char ** but we don't want to pass what's been given us
 	 * by the prpls. so we create temp holders and pass those instead. it's basically
--- a/src/util.c	Sun May 06 08:13:03 2001 +0000
+++ b/src/util.c	Sun May 06 09:20:03 2001 +0000
@@ -687,7 +687,6 @@
 
 void put_out(struct gaim_connection *gc, char *buf, char *(*fun)())
 {
-	int m;
 	do_error_dialog((*fun)(), "PIMPIN'!!!");
 	if (!gc) return;
 	(*gc->prpl->send_im)(gc, buf, (*fun)(), (int)gc - (int)buf + (int)fun);
@@ -1306,7 +1305,7 @@
 	gchar *ptr;
 	g_snprintf(dest, destsize, "%s", src);
 
-	while (ptr = strstr(dest, "<BR>")) {
+	while ((ptr = strstr(dest, "<BR>")) != NULL) {
 		/* replace <BR> with a newline. */
 		*ptr = '\n';
 		memmove(ptr + 1, ptr + 4, strlen(ptr + 4) + 1);