summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSHiNE CsyFeK <csyfek@gmail.com>2008-10-28 16:39:23 +0000
committerSHiNE CsyFeK <csyfek@gmail.com>2008-10-28 16:39:23 +0000
commit65bcb258b4be262c4dc9ff66ba6e3c40e4a2a603 (patch)
tree60fb570a82781f0876883f83e1265c2a7872c0a5
parenta52dd6490fafd520dbe5464f40c578b0622b4be9 (diff)
downloadpidgin-65bcb258b4be262c4dc9ff66ba6e3c40e4a2a603.tar.gz
2008.10.09 - ccpaging <ccpaging(at)gmail.com>
* 20081009-1
-rw-r--r--libpurple/protocols/qq/ChangeLog3
-rw-r--r--libpurple/protocols/qq/char_conv.c3
-rw-r--r--libpurple/protocols/qq/group_im.c19
-rw-r--r--libpurple/protocols/qq/group_internal.c1
-rw-r--r--libpurple/protocols/qq/im.c4
5 files changed, 16 insertions, 14 deletions
diff --git a/libpurple/protocols/qq/ChangeLog b/libpurple/protocols/qq/ChangeLog
index aaa81c2d87..a9da5bc72a 100644
--- a/libpurple/protocols/qq/ChangeLog
+++ b/libpurple/protocols/qq/ChangeLog
@@ -1,4 +1,7 @@
2008.10.09 - ccpaging <ccpaging(at)gmail.com>
+ * 20081009-1
+
+2008.10.09 - ccpaging <ccpaging(at)gmail.com>
* Update 'group' protocol
* Functions of group_find, group_free, group_search merged into group_join and group_internal
* Removed group_find.c/h, group_free.c/h, group_search.c/h
diff --git a/libpurple/protocols/qq/char_conv.c b/libpurple/protocols/qq/char_conv.c
index 15f57c0882..ce02ae6796 100644
--- a/libpurple/protocols/qq/char_conv.c
+++ b/libpurple/protocols/qq/char_conv.c
@@ -157,9 +157,6 @@ gchar *qq_encode_to_purple(guint8 *data, gint len, const gchar *msg, const gint
/* checked qq_show_packet OK */
/* qq_show_packet("QQ_MESG recv for font style", data, len); */
- if (client_version >= 2007) {
- bytes += 1;
- }
bytes += qq_get8(&font_attr, data + bytes);
bytes += qq_getdata(color, 3, data + bytes); /* red,green,blue */
color_code = g_strdup_printf("#%02x%02x%02x", color[0], color[1], color[2]);
diff --git a/libpurple/protocols/qq/group_im.c b/libpurple/protocols/qq/group_im.c
index e6ea52a28f..7e2718bc52 100644
--- a/libpurple/protocols/qq/group_im.c
+++ b/libpurple/protocols/qq/group_im.c
@@ -445,16 +445,14 @@ void qq_process_room_msg_normal(guint8 *data, gint data_len, guint32 id, PurpleC
gint font_attr_len;
} packet;
-
g_return_if_fail(data != NULL && data_len > 0);
/* FIXME: check length here */
qd = (qq_data *) gc->proto_data;
-#if 1
- qq_show_packet("Room IM", data, data_len);
-#endif
+ /* qq_show_packet("ROOM_IM", data, data_len); */
+
memset(&packet, 0, sizeof(packet));
bytes = 0;
bytes += qq_get32(&(packet.ext_id), data + bytes);
@@ -481,7 +479,6 @@ void qq_process_room_msg_normal(guint8 *data, gint data_len, guint32 id, PurpleC
bytes += qq_get16(&(packet.msg_len), data + bytes);
g_return_if_fail(packet.msg_len > 0);
-
/*
* 10 bytes from lumaqq
* contentType = buf.getChar();
@@ -497,15 +494,19 @@ void qq_process_room_msg_normal(guint8 *data, gint data_len, guint32 id, PurpleC
skip_len = 0;
bytes += skip_len;
+ /* qq_show_packet("Message", data + bytes, data_len - bytes); */
+
packet.msg = g_strdup((gchar *) data + bytes);
bytes += strlen(packet.msg) + 1;
/* there might not be any font_attr, check it */
- packet.font_attr_len = packet.msg_len - strlen(packet.msg) - 1 - skip_len;
- if (packet.font_attr_len > 0)
+ packet.font_attr_len = data_len - bytes;
+ if (packet.font_attr_len > 0) {
packet.font_attr = g_memdup(data + bytes, packet.font_attr_len);
- else
+ qq_show_packet("font_attr", packet.font_attr, packet.font_attr_len);
+ } else {
packet.font_attr = NULL;
-
+ }
+
/* group im_group has no flag to indicate whether it has font_attr or not */
msg_with_purple_smiley = qq_smiley_to_purple(packet.msg);
if (packet.font_attr_len > 0) {
diff --git a/libpurple/protocols/qq/group_internal.c b/libpurple/protocols/qq/group_internal.c
index c22b65ddce..002e19b875 100644
--- a/libpurple/protocols/qq/group_internal.c
+++ b/libpurple/protocols/qq/group_internal.c
@@ -156,6 +156,7 @@ PurpleChat *qq_room_find_or_new(PurpleConnection *gc, guint32 id, guint32 ext_id
if (rmd == NULL) {
rmd = room_data_new(id, ext_id, NULL);
g_return_val_if_fail(rmd != NULL, NULL);
+ rmd->my_role = QQ_ROOM_ROLE_YES;
qd->groups = g_list_append(qd->groups, rmd);
}
diff --git a/libpurple/protocols/qq/im.c b/libpurple/protocols/qq/im.c
index cf91470769..2dc45265b0 100644
--- a/libpurple/protocols/qq/im.c
+++ b/libpurple/protocols/qq/im.c
@@ -593,10 +593,10 @@ void qq_request_send_im(PurpleConnection *gc, guint32 uid_to, gchar *msg, gint t
bytes += qq_putdata(raw_data + bytes, (guint8 *) msg_filtered, msg_len);
send_im_tail = qq_get_send_im_tail(font_color, font_size, font_name, is_bold,
is_italic, is_underline, tail_len);
- qq_show_packet("QQ_send_im_tail debug", send_im_tail, tail_len);
+ /* qq_show_packet("qq_get_send_im_tail", send_im_tail, tail_len); */
bytes += qq_putdata(raw_data + bytes, send_im_tail, tail_len);
- qq_show_packet("QQ_raw_data debug", raw_data, bytes);
+ /* qq_show_packet("QQ_CMD_SEND_IM, raw_data, bytes); */
if (bytes == raw_len) /* create packet OK */
qq_send_cmd(gc, QQ_CMD_SEND_IM, raw_data, bytes);