changeset 4766:03aa36cb4e38

[gaim-migrate @ 5084] This fixes the mobile icon for people who have +19195555555 people in their ICQ buddy list. It makes the peep show up as a flower with the totally sweet mobile icon symbol superimposed. I also shuffled some lines around to get ready for the superimposition of extended ICQ status icons. Now we just need some icons. "What's superimposed...?" "Have good mash pitting!" committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Fri, 14 Mar 2003 07:04:46 +0000
parents b6f6a10f9baf
children f6d83e81d45a
files src/protocols/oscar/oscar.c
diffstat 1 files changed, 37 insertions(+), 52 deletions(-) [+]
line wrap: on
line diff
--- a/src/protocols/oscar/oscar.c	Fri Mar 14 07:03:19 2003 +0000
+++ b/src/protocols/oscar/oscar.c	Fri Mar 14 07:04:46 2003 +0000
@@ -1618,19 +1618,19 @@
 	if (info->flags & AIM_FLAG_ACTIVEBUDDY)
 		type |= UC_AB;
 
-	if ((!od->icq) && (info->present & AIM_USERINFO_PRESENT_FLAGS)) {
-			if (info->flags & AIM_FLAG_UNCONFIRMED)
-				type |= UC_UNCONFIRMED;
-			if (info->flags & AIM_FLAG_ADMINISTRATOR)
-				type |= UC_ADMIN;
-			if (info->flags & AIM_FLAG_AOL)
-				type |= UC_AOL;
-			if (info->flags & AIM_FLAG_FREE)
-				type |= UC_NORMAL;
-			if (info->flags & AIM_FLAG_AWAY)
-				type |= UC_UNAVAILABLE;
-			if (info->flags & AIM_FLAG_WIRELESS)
-				type |= UC_WIRELESS;
+	if (info->present & AIM_USERINFO_PRESENT_FLAGS) {
+		if (info->flags & AIM_FLAG_UNCONFIRMED)
+			type |= UC_UNCONFIRMED;
+		if (info->flags & AIM_FLAG_ADMINISTRATOR)
+			type |= UC_ADMIN;
+		if (info->flags & AIM_FLAG_AOL)
+			type |= UC_AOL;
+		if (info->flags & AIM_FLAG_FREE)
+			type |= UC_NORMAL;
+		if (info->flags & AIM_FLAG_AWAY)
+			type |= UC_UNAVAILABLE;
+		if (info->flags & AIM_FLAG_WIRELESS)
+			type |= UC_WIRELESS;
 	}
 	if (info->present & AIM_USERINFO_PRESENT_ICQEXTSTATUS) {
 		type = (info->icqinfo.status << 16);
@@ -4883,7 +4883,7 @@
 }
 
 static const char *oscar_list_icon(struct gaim_account *a, struct buddy *b) {
-	if (!b) {
+	if (!b || (b && b->name && b->name[0] == '+')) {
 		if (isdigit(a->username[0]))
 			return "icq";
 		else
@@ -4900,8 +4900,27 @@
 	char *emblems[4] = {NULL,NULL,NULL,NULL};
 	int i = 0;
 
-	if (b->uc & UC_UNAVAILABLE) 
-		emblems[i++] = "away";
+	if (b->name && (b->uc & 0xffff0000) && isdigit(b->name[0])) {
+/*		int uc = b->uc >> 16;
+		if (uc & AIM_ICQ_STATE_INVISIBLE)
+			emblems[i++] = "icq_invisible";
+		else if (uc & AIM_ICQ_STATE_CHAT)
+			emblems[i++] = "icq_chat";
+		else if (uc & AIM_ICQ_STATE_DND)
+			emblems[i++] = "icq_dnd";
+		else if (uc & AIM_ICQ_STATE_OUT)
+			emblems[i++] = "icq_out";
+		else if (uc & AIM_ICQ_STATE_BUSY)
+			emblems[i++] = "icq_busy";
+		else if (uc & AIM_ICQ_STATE_AWAY)
+			emblems[i++] = "icq_away";
+*/
+		if (b->uc & UC_UNAVAILABLE) 
+			emblems[i++] = "away";
+	} else {
+		if (b->uc & UC_UNAVAILABLE) 
+			emblems[i++] = "away";
+	}
 	if (b->uc & UC_WIRELESS)
 		emblems[i++] = "wireless";
 	if (b->uc & UC_AOL)
@@ -4910,48 +4929,14 @@
 		emblems[i++] = "admin";
 	if (b->uc & UC_AB && i < 4)
 		emblems[i++] = "activebuddy";
+/*	if (b->uc & UC_UNCONFIRMED && i < 4)
+		emblems[i++] = "unconfirmed"; */
 	*se = emblems[0];
 	*sw = emblems[1];
 	*nw = emblems[2];
 	*ne = emblems[3];
 }
 
-/*	if (uc == 0)
-		return (char **)icon_online_xpm;
-	if (uc & 0xffff0000) {
-		uc >>= 16;
-		if (uc & AIM_ICQ_STATE_INVISIBLE)
-			return icon_offline_xpm;
-		if (uc & AIM_ICQ_STATE_CHAT)
-			return icon_ffc_xpm;
-		if (uc & AIM_ICQ_STATE_DND)
-		 	return icon_dnd_xpm;
-		if (uc & AIM_ICQ_STATE_OUT)
-			return icon_na_xpm;
-		if (uc & AIM_ICQ_STATE_BUSY)
-		 	return icon_occ_xpm;
-		if (uc & AIM_ICQ_STATE_AWAY)
-			return icon_away_xpm;
-		return icon_online_xpm;
-	}
-	if (uc & UC_UNAVAILABLE)
-		return (char **)away_icon_xpm;
-	if (uc & UC_WIRELESS)
-		return (char **)wireless_icon_xpm;
-	if (uc & UC_AB)
-		return (char **)ab_xpm;
-	if (uc & UC_AOL)
-		return (char **)aol_icon_xpm;
-	if (uc & UC_ADMIN)
-		return (char **)admin_icon_xpm;
-	if (uc & UC_UNCONFIRMED)
-		return (char **)dt_icon_xpm;
-	if (uc & UC_NORMAL)
-		return (char **)free_icon_xpm;
-	return NULL;
-*/
-
-
 /*
  * We have just established a socket with the other dude, so set up some handlers.
  */