/pidgin/main: 849d12200039: merging

Gary Kramlich grim at reaperworld.com
Thu Dec 31 11:59:26 EST 2015


Changeset: 849d1220003907e755a53972f5c3a82e9c82349e
Author:	 Gary Kramlich <grim at reaperworld.com>
Date:	 2015-12-28 21:56 -0600
Branch:	 replace-nm-with-gio
URL: https://hg.pidgin.im/pidgin/main/rev/849d12200039

Description:

merging

diffstat:

 libpurple/data/purple-3.pc.in           |   1 -
 libpurple/protocols/facebook/api.c      |  21 +++++++++++++--------
 libpurple/protocols/facebook/facebook.c |  27 ++++++++++++++++++++-------
 libpurple/protocols/facebook/http.c     |   4 ++--
 libpurple/protocols/facebook/mqtt.c     |   1 +
 5 files changed, 36 insertions(+), 18 deletions(-)

diffs (194 lines):

diff --git a/libpurple/data/purple-3.pc.in b/libpurple/data/purple-3.pc.in
--- a/libpurple/data/purple-3.pc.in
+++ b/libpurple/data/purple-3.pc.in
@@ -5,7 +5,6 @@ includedir=@includedir@/libpurple
 datarootdir=@datarootdir@
 datadir=@datadir@
 sysconfdir=@sysconfdir@
-gstreamer=@GSTREAMER_VER@
 
 plugindir=${libdir}/purple- at PURPLE_MAJOR_VERSION@
 
diff --git a/libpurple/protocols/facebook/api.c b/libpurple/protocols/facebook/api.c
--- a/libpurple/protocols/facebook/api.c
+++ b/libpurple/protocols/facebook/api.c
@@ -1941,8 +1941,10 @@ fb_api_cb_contacts(PurpleHttpConnection 
 {
 	const gchar *str;
 	FbApi *api = data;
+	FbApiPrivate *priv = api->priv;
 	FbApiUser *user;
 	FbHttpParams *prms;
+	FbId uid;
 	FbJsonValues *values;
 	gboolean complete;
 	gchar *writeid = NULL;
@@ -1959,10 +1961,10 @@ fb_api_cb_contacts(PurpleHttpConnection 
 	fb_json_values_add(values, FB_JSON_TYPE_STR, TRUE,
 	                   "$.graph_api_write_id");
 	fb_json_values_add(values, FB_JSON_TYPE_STR, TRUE,
+	                   "$.represented_profile.id");
+	fb_json_values_add(values, FB_JSON_TYPE_STR, TRUE,
 	                   "$.represented_profile.friendship_status");
 	fb_json_values_add(values, FB_JSON_TYPE_STR, TRUE,
-	                   "$.represented_profile.id");
-	fb_json_values_add(values, FB_JSON_TYPE_STR, TRUE,
 	                   "$.structured_name.text");
 	fb_json_values_add(values, FB_JSON_TYPE_STR, TRUE,
 	                   "$.hugePictureUrl.uri");
@@ -1972,17 +1974,20 @@ fb_api_cb_contacts(PurpleHttpConnection 
 	while (fb_json_values_update(values, &err)) {
 		g_free(writeid);
 		writeid = fb_json_values_next_str_dup(values, NULL);
+		count++;
+
+		str = fb_json_values_next_str(values, "0");
+		uid = FB_ID_FROM_STR(str);
 		str = fb_json_values_next_str(values, NULL);
-		count++;
-
-		if (!purple_strequal(str, "ARE_FRIENDS")) {
+
+		if (!purple_strequal(str, "ARE_FRIENDS") &&
+		    (uid != priv->uid))
+		{
 			continue;
 		}
 
 		user = fb_api_user_dup(NULL, FALSE);
-		str = fb_json_values_next_str(values, "0");
-
-		user->uid = FB_ID_FROM_STR(str);
+		user->uid = uid;
 		user->name = fb_json_values_next_str_dup(values, NULL);
 		user->icon = fb_json_values_next_str_dup(values, NULL);
 
diff --git a/libpurple/protocols/facebook/facebook.c b/libpurple/protocols/facebook/facebook.c
--- a/libpurple/protocols/facebook/facebook.c
+++ b/libpurple/protocols/facebook/facebook.c
@@ -462,6 +462,7 @@ fb_cb_api_messages(FbApi *api, GSList *m
 	const gchar *text;
 	FbApiMessage *msg;
 	FbData *fata = data;
+	gboolean isself;
 	gboolean mark;
 	gboolean open;
 	gboolean self;
@@ -480,6 +481,7 @@ fb_cb_api_messages(FbApi *api, GSList *m
 	acct = purple_connection_get_account(gc);
 	mark = purple_account_get_bool(acct, "mark-read", TRUE);
 	open = purple_account_get_bool(acct, "group-chat-open", TRUE);
+	self = purple_account_get_bool(acct, "show-self", TRUE);
 
 	for (l = msgs; l != NULL; l = l->next) {
 		msg = l->data;
@@ -492,8 +494,13 @@ fb_cb_api_messages(FbApi *api, GSList *m
 			continue;
 		}
 
-		self = (msg->flags & FB_API_MESSAGE_FLAG_SELF) != 0;
-		flags = self ? PURPLE_MESSAGE_SEND : PURPLE_MESSAGE_RECV;
+		isself = (msg->flags & FB_API_MESSAGE_FLAG_SELF) != 0;
+
+		if (isself && !self) {
+			continue;
+		}
+
+		flags = isself ? PURPLE_MESSAGE_SEND : PURPLE_MESSAGE_RECV;
 		tstamp = msg->tstamp / 1000;
 
 		if (msg->flags & FB_API_MESSAGE_FLAG_IMAGE) {
@@ -515,7 +522,7 @@ fb_cb_api_messages(FbApi *api, GSList *m
 		}
 
 		if (msg->tid == 0) {
-			if (mark && !self) {
+			if (mark && !isself) {
 				fb_data_set_unread(fata, msg->uid, TRUE);
 			}
 
@@ -540,7 +547,7 @@ fb_cb_api_messages(FbApi *api, GSList *m
 			id = purple_chat_conversation_get_id(chat);
 		}
 
-		if (mark && !self) {
+		if (mark && !isself) {
 			fb_data_set_unread(fata, msg->tid, TRUE);
 		}
 
@@ -584,6 +591,7 @@ fb_cb_api_thread(FbApi *api, FbApiThread
 {
 	FbApiUser *user;
 	FbData *fata = data;
+	gboolean active;
 	gchar tid[FB_ID_STRMAX];
 	gchar uid[FB_ID_STRMAX];
 	gint id;
@@ -598,8 +606,9 @@ fb_cb_api_thread(FbApi *api, FbApiThread
 	FB_ID_TO_STR(thrd->tid, tid);
 
 	chat = purple_conversations_find_chat_with_account(tid, acct);
+	active = (chat != NULL) && !purple_chat_conversation_has_left(chat);
 
-	if (chat == NULL) {
+	if (!active) {
 		chat = purple_serv_got_joined_chat(gc, id, tid);
 	}
 
@@ -617,7 +626,7 @@ fb_cb_api_thread(FbApi *api, FbApiThread
 			fb_buddy_add_nonfriend(acct, user);
 		}
 
-		purple_chat_conversation_add_user(chat, uid, NULL, 0, TRUE);
+		purple_chat_conversation_add_user(chat, uid, NULL, 0, active);
 	}
 }
 
@@ -1153,7 +1162,7 @@ fb_chat_join(PurpleConnection *gc, GHash
 	id = fb_id_hash(&tid);
 	chat = purple_conversations_find_chat(gc, id);
 
-	if (chat != NULL) {
+	if ((chat != NULL) && !purple_chat_conversation_has_left(chat)) {
 		purple_conversation_present(PURPLE_CONVERSATION(chat));
 		return;
 	}
@@ -1404,6 +1413,10 @@ facebook_protocol_init(PurpleProtocol *p
 	                                     "mark-read", TRUE);
 	opts = g_list_prepend(opts, opt);
 
+	opt = purple_account_option_bool_new(_("Show self messages"),
+	                                     "show-self", TRUE);
+	opts = g_list_prepend(opts, opt);
+
 	opt = purple_account_option_bool_new(_("Show unread messages"),
 	                                     "show-unread", TRUE);
 	opts = g_list_prepend(opts, opt);
diff --git a/libpurple/protocols/facebook/http.c b/libpurple/protocols/facebook/http.c
--- a/libpurple/protocols/facebook/http.c
+++ b/libpurple/protocols/facebook/http.c
@@ -152,11 +152,11 @@ fb_http_params_new_parse(const gchar *da
 	if (isurl) {
 		data = strchr(data, '?');
 
-		if (data++ == NULL) {
+		if (data == NULL) {
 			return params;
 		}
 
-		tail = strchr(data, '#');
+		tail = strchr(++data, '#');
 
 		if (tail != NULL) {
 			data = g_strndup(data, tail - data);
diff --git a/libpurple/protocols/facebook/mqtt.c b/libpurple/protocols/facebook/mqtt.c
--- a/libpurple/protocols/facebook/mqtt.c
+++ b/libpurple/protocols/facebook/mqtt.c
@@ -469,6 +469,7 @@ fb_mqtt_read(FbMqtt *mqtt, FbMqttMessage
 			}
 
 			if (!fb_mqtt_message_read_mid(msg, &mid)) {
+				g_free(str);
 				break;
 			}
 



More information about the Commits mailing list