diff src/oscar.c @ 1899:a2624692260b

[gaim-migrate @ 1909] this is part two of three committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Mon, 28 May 2001 03:53:23 +0000
parents 5df1e36f26e1
children 835fcc223341
line wrap: on
line diff
--- a/src/oscar.c	Mon May 28 03:36:04 2001 +0000
+++ b/src/oscar.c	Mon May 28 03:53:23 2001 +0000
@@ -1550,51 +1550,37 @@
 int gaim_parse_incoming_im(struct aim_session_t *sess,
 			   struct command_rx_struct *command, ...) {
 	int channel;
+	struct aim_userinfo_s *userinfo;
 	va_list ap;
 	struct gaim_connection *gc = sess->aux_data;
 
 	va_start(ap, command);
 	channel = va_arg(ap, int);
+	userinfo = va_arg(ap, struct aim_userinfo_s *);
 
 	/* channel 1: standard message */
 	if (channel == 1) {
-		struct aim_userinfo_s *userinfo;
-		char *msg = NULL;
 		char *tmp = g_malloc(BUF_LONG);
-		u_int icbmflags = 0;
-		u_short flag1, flag2;
-
-		userinfo  = va_arg(ap, struct aim_userinfo_s *);
-		msg       = va_arg(ap, char *);
-		icbmflags = va_arg(ap, u_int);
-		flag1     = (u_short)va_arg(ap, u_int);
-		flag2     = (u_short)va_arg(ap, u_int);
+		struct aim_incomingim_ch1_args *args;
+
+		args = va_arg(ap, struct aim_incomingim_ch1_args *);
 		va_end(ap);
 
-		g_snprintf(tmp, BUF_LONG, "%s", msg);
-		serv_got_im(gc, userinfo->sn, tmp, icbmflags & AIM_IMFLAGS_AWAY, time((time_t)NULL));
+		g_snprintf(tmp, BUF_LONG, "%s", args->msg);
+		serv_got_im(gc, userinfo->sn, tmp, args->icbmflags & AIM_IMFLAGS_AWAY, time(NULL));
 		g_free(tmp);
 	} else if (channel == 2) {
-		struct aim_userinfo_s *userinfo;
-		int rendtype = va_arg(ap, int);
-		if (rendtype & AIM_CAPS_CHAT) {
-			char *msg, *encoding, *lang;
-			struct aim_chat_roominfo *roominfo;
-
-			userinfo = va_arg(ap, struct aim_userinfo_s *);
-			roominfo = va_arg(ap, struct aim_chat_roominfo *);
-			msg      = va_arg(ap, char *);
-			encoding = va_arg(ap, char *);
-			lang     = va_arg(ap, char *);
-			va_end(ap);
-
+		struct aim_incomingim_ch2_args *args;
+		args = va_arg(ap, struct aim_incomingim_ch2_args *);
+		va_end(ap);
+		if (args->reqclass & AIM_CAPS_CHAT) {
 			serv_got_chat_invite(gc,
-					     roominfo->name,
-					     roominfo->exchange,
+					     args->info.chat.roominfo.name,
+					     args->info.chat.roominfo.exchange,
 					     userinfo->sn,
-					     msg);
-		} else if (rendtype & AIM_CAPS_SENDFILE) {
-		} else if (rendtype & AIM_CAPS_GETFILE) {
+					     args->info.chat.msg);
+		} else if (args->reqclass & AIM_CAPS_SENDFILE) {
+		} else if (args->reqclass & AIM_CAPS_GETFILE) {
 			/*
 			char *ip, *cookie;
 			struct ask_getfile *g = g_new0(struct ask_getfile, 1);
@@ -1616,28 +1602,23 @@
 					userinfo->sn, gc->username);
 			do_ask_dialog(buf, g, accept_getfile, cancel_getfile);
 			*/
-		} else if (rendtype & AIM_CAPS_VOICE) {
-		} else if (rendtype & AIM_CAPS_BUDDYICON) {
-		} else if (rendtype & AIM_CAPS_IMIMAGE) {
-			struct aim_directim_priv *priv;
+		} else if (args->reqclass & AIM_CAPS_VOICE) {
+		} else if (args->reqclass & AIM_CAPS_BUDDYICON) {
+		} else if (args->reqclass & AIM_CAPS_IMIMAGE) {
 			struct ask_direct *d = g_new0(struct ask_direct, 1);
 			char buf[256];
 
-			userinfo = va_arg(ap, struct aim_userinfo_s *);
-			priv = va_arg(ap, struct aim_directim_priv *);
-			va_end(ap);
-
 			debug_printf("%s received direct im request from %s (%s)\n",
-					gc->username, userinfo->sn, priv->ip);
+					gc->username, userinfo->sn, args->info.directim->ip);
 
 			d->gc = gc;
 			d->sn = g_strdup(userinfo->sn);
-			d->priv = priv;
+			d->priv = args->info.directim;
 			g_snprintf(buf, sizeof buf, "%s has just asked to directly connect to %s.",
 					userinfo->sn, gc->username);
 			do_ask_dialog(buf, d, accept_direct_im, cancel_direct_im);
 		} else {
-			debug_printf("Unknown rendtype %d\n", rendtype);
+			debug_printf("Unknown reqclass %d\n", args->reqclass);
 		}
 	}
 
@@ -2270,11 +2251,9 @@
 		aim_send_im_direct(odata->sess, dim->conn, message);
 	} else {
 		if (away)
-			aim_send_im(odata->sess, odata->conn, name, AIM_IMFLAGS_AWAY, message,
-					strlen(message));
+			aim_send_im(odata->sess, odata->conn, name, AIM_IMFLAGS_AWAY, message);
 		else
-			aim_send_im(odata->sess, odata->conn, name, AIM_IMFLAGS_ACK, message,
-					strlen(message));
+			aim_send_im(odata->sess, odata->conn, name, AIM_IMFLAGS_ACK, message);
 	}
 }