diff libpurple/protocols/qq/utils.c @ 24142:df699d739b8f

2008.10.03 - ccpaging <ccpaging(at)gmail.com> * 2007 protocol: 1. fixed 'get room info' 2. fixed 'get buddy level'
author SHiNE CsyFeK <csyfek@gmail.com>
date Wed, 22 Oct 2008 14:46:44 +0000
parents dbc7a9742f8d
children a95c7e71064c
line wrap: on
line diff
--- a/libpurple/protocols/qq/utils.c	Wed Oct 22 14:45:26 2008 +0000
+++ b/libpurple/protocols/qq/utils.c	Wed Oct 22 14:46:44 2008 +0000
@@ -186,13 +186,19 @@
 /* convert name displayed in a chat channel to original QQ UID */
 gchar *chat_name_to_purple_name(const gchar *const name)
 {
-	const gchar *tmp;
+	const char *start;
+	const char *end;
 	gchar *ret;
 
 	g_return_val_if_fail(name != NULL, NULL);
 
-	tmp = (gchar *) purple_strcasestr(name, "(");
-	ret = g_strndup(tmp + 4, strlen(name) - (tmp - name) - 4 - 1);
+	/* Sample: (1234567)*/
+	start = strchr(name, '(');
+	g_return_val_if_fail(start != NULL, NULL);
+	end = strchr(start, ')');
+	g_return_val_if_fail(end != NULL && (end - start) > 1, NULL);
+	
+	ret = g_strndup(start + 1, end - start - 1);
 
 	return ret;
 }