changeset 14147:6a19a83ed49f

[gaim-migrate @ 16791] Patch from Henning Norn Change the DND, extended away and occupied statuses in oscar so that they allow setting a message. Also change another place so that we show messages for people who are in those statuses. committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Wed, 16 Aug 2006 16:53:20 +0000
parents 55e3db9db9f6
children 5b9daf111b42
files src/protocols/oscar/oscar.c
diffstat 1 files changed, 17 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/src/protocols/oscar/oscar.c	Wed Aug 16 14:18:58 2006 +0000
+++ b/src/protocols/oscar/oscar.c	Wed Aug 16 16:53:20 2006 +0000
@@ -4369,7 +4369,8 @@
 		/* This is needed for us to un-set any previous away message. */
 		away = g_strdup("");
 	}
-	else if (primitive == GAIM_STATUS_AWAY)
+	else if ((primitive == GAIM_STATUS_AWAY) ||
+			 (primitive == GAIM_STATUS_EXTENDED_AWAY))
 	{
 		htmlaway = gaim_status_get_attr_string(status, "message");
 		if ((htmlaway == NULL) || (*htmlaway == '\0'))
@@ -5609,19 +5610,25 @@
 	status_types = g_list_append(status_types, type);
 
 	/* ICQ-specific status types */
-	type = gaim_status_type_new_full(GAIM_STATUS_UNAVAILABLE,
-									 OSCAR_STATUS_ID_OCCUPIED,
-									 _("Occupied"), TRUE, is_icq, FALSE);
+	type = gaim_status_type_new_with_attrs(GAIM_STATUS_UNAVAILABLE,
+				OSCAR_STATUS_ID_OCCUPIED,
+				_("Occupied"), TRUE, is_icq, FALSE,
+				"message", _("Message"),
+				gaim_value_new(GAIM_TYPE_STRING), NULL);
 	status_types = g_list_append(status_types, type);
 
-	type = gaim_status_type_new_full(GAIM_STATUS_EXTENDED_AWAY,
-									 OSCAR_STATUS_ID_DND,
-									 _("Do Not Disturb"), TRUE, is_icq, FALSE);
+	type = gaim_status_type_new_with_attrs(GAIM_STATUS_EXTENDED_AWAY,
+				OSCAR_STATUS_ID_DND,
+				_("Do Not Disturb"), TRUE, is_icq, FALSE,
+				"message", _("Message"),
+				gaim_value_new(GAIM_TYPE_STRING), NULL);
 	status_types = g_list_append(status_types, type);
 
-	type = gaim_status_type_new_full(GAIM_STATUS_EXTENDED_AWAY,
-									 OSCAR_STATUS_ID_NA,
-									 _("Not Available"), TRUE, is_icq, FALSE);
+	type = gaim_status_type_new_with_attrs(GAIM_STATUS_EXTENDED_AWAY,
+				OSCAR_STATUS_ID_NA,
+				_("Not Available"), TRUE, is_icq, FALSE,
+				"message", _("Message"),
+				gaim_value_new(GAIM_TYPE_STRING), NULL);
 	status_types = g_list_append(status_types, type);
 
 	type = gaim_status_type_new_full(GAIM_STATUS_OFFLINE,