diff src/protocols/yahoo/yahoo.c @ 4111:ee884f1d7ae3

[gaim-migrate @ 4326] <Robot101> adds a gc->flag called OPT_CONN_AUTO_RESP so that gc->away can always store the away message even if the prpl doesn't support autoresponding <Robot101> makes all protos correctly free and set gc->away to avoid leaks <Robot101> stores the current away state in gc->away_state whenever gc->away is non-NULL (ie it's not just a plain on-line) <Robot101> also minor change to Jabber to make Chatty an away state, and to Gadu-Gadu to make some other thing an away state too committer: Tailor Script <tailor@pidgin.im>
author Christian Hammond <chipx86@chipx86.com>
date Sat, 21 Dec 2002 19:33:54 +0000
parents 133cf6424c53
children 474265997752
line wrap: on
line diff
--- a/src/protocols/yahoo/yahoo.c	Sat Dec 21 05:37:45 2002 +0000
+++ b/src/protocols/yahoo/yahoo.c	Sat Dec 21 19:33:54 2002 +0000
@@ -1186,15 +1186,19 @@
 	int service;
 	char s[4];
 
-	gc->away = NULL;
+	if (gc->away) {
+		g_free(gc->away);
+		gc->away = NULL;
+	}
 
 	if (msg) {
 		yd->current_status = YAHOO_STATUS_CUSTOM;
-		gc->away = "";
+		gc->away = g_strdup(msg);
 	} else if (state) {
-		gc->away = "";
+		gc->away = g_strdup("");
 		if (!strcmp(state, "Available")) {
 			yd->current_status = YAHOO_STATUS_AVAILABLE;
+			g_free(gc->away);
 			gc->away = NULL;
 		} else if (!strcmp(state, "Be Right Back")) {
 			yd->current_status = YAHOO_STATUS_BRB;
@@ -1222,6 +1226,7 @@
 			} else {
 				yd->current_status = YAHOO_STATUS_AVAILABLE;
 			}
+			g_free(gc->away);
 			gc->away = NULL;
 		}
 	} else if (gc->is_idle) {