diff src/protocols/msn/state.c @ 9193:502707ca1836

[gaim-migrate @ 9988] Patch by Felipe Contreras to add MSN file transfer and buddy icons. Please test and report any bugs! committer: Tailor Script <tailor@pidgin.im>
author Christian Hammond <chipx86@chipx86.com>
date Sun, 06 Jun 2004 02:39:08 +0000
parents 06f57183e29f
children ab6636c5a136
line wrap: on
line diff
--- a/src/protocols/msn/state.c	Sun Jun 06 02:16:08 2004 +0000
+++ b/src/protocols/msn/state.c	Sun Jun 06 02:39:08 2004 +0000
@@ -36,6 +36,40 @@
 	N_("Available")
 };
 
+void
+msn_change_status(MsnSession *session, MsnAwayType state)
+{
+	MsnCmdProc *cmdproc;
+	MsnUser *user;
+	MsnObject *msnobj;
+	const char *state_text;
+
+	cmdproc = session->notification->cmdproc;
+	user = session->user;
+	state_text = msn_state_get_text(state);
+
+	g_return_if_fail(session != NULL);
+
+	msnobj = msn_user_get_object(user);
+
+	if (msnobj == NULL)
+	{
+		msn_cmdproc_send(cmdproc, "CHG", "%s %d", state_text,
+						 MSN_CLIENT_ID);
+	}
+	else
+	{
+		char *msnobj_str;
+
+		msnobj_str = msn_object_to_string(msnobj);
+
+		msn_cmdproc_send(cmdproc, "CHG", "%s %d %s", state_text,
+						 MSN_CLIENT_ID, gaim_url_encode(msnobj_str));
+
+		g_free(msnobj_str);
+	}
+}
+
 const char *
 msn_away_get_text(MsnAwayType type)
 {
@@ -43,3 +77,12 @@
 
 	return _(away_text[type]);
 }
+
+const char *
+msn_state_get_text(MsnAwayType state)
+{
+	static char *status_text[] =
+	{ "NLN", "NLN", "BSY", "IDL", "BRB", "AWY", "PHN", "LUN", "HDN", "HDN" };
+
+	return status_text[state];
+}