/pidgin/main: 97c8cd903433: Backport the remaining code-cleanup ...
Andrew Victor
andrew.victor at mxit.com
Sat Jul 28 18:48:59 EDT 2012
Changeset: 97c8cd90343311d7195d4ef142f757fdffb82556
Author: Andrew Victor <andrew.victor at mxit.com>
Date: 2012-07-29 00:47 +0200
Branch: mxit-2.x.y
URL: http://hg.pidgin.im/pidgin/main/rev/97c8cd903433
Description:
Backport the remaining code-cleanup changes from 3.0.0-devel tree.
diffstat:
libpurple/protocols/mxit/filexfer.c | 5 ++---
libpurple/protocols/mxit/formcmds.c | 4 +---
libpurple/protocols/mxit/login.c | 26 ++++++++++++--------------
libpurple/protocols/mxit/mxit.h | 2 +-
libpurple/protocols/mxit/profile.c | 6 +++---
libpurple/protocols/mxit/protocol.c | 8 ++++----
libpurple/protocols/mxit/roster.c | 12 ++++++------
libpurple/protocols/mxit/roster.h | 7 ++++---
libpurple/protocols/mxit/voicevideo.c | 4 ++--
9 files changed, 35 insertions(+), 39 deletions(-)
diffs (276 lines):
diff --git a/libpurple/protocols/mxit/filexfer.c b/libpurple/protocols/mxit/filexfer.c
--- a/libpurple/protocols/mxit/filexfer.c
+++ b/libpurple/protocols/mxit/filexfer.c
@@ -167,6 +167,7 @@ static void mxit_xfer_start( PurpleXfer*
filesize = purple_xfer_get_bytes_remaining( xfer );
buffer = g_malloc( filesize );
size = fread( buffer, filesize, 1, xfer->dest_fp );
+ // TODO: If (size != 1) -> file read error
wrote = purple_xfer_write( xfer, buffer, filesize );
if ( wrote > 0 )
@@ -426,19 +427,17 @@ static PurpleXfer* find_mxit_xfer( struc
void mxit_xfer_rx_file( struct MXitSession* session, const char* fileid, const char* data, int datalen )
{
PurpleXfer* xfer = NULL;
- struct mxitxfer* mx = NULL;
purple_debug_info( MXIT_PLUGIN_ID, "mxit_xfer_rx_file: (size=%i)\n", datalen );
/* find the file-transfer object */
xfer = find_mxit_xfer( session, fileid );
if ( xfer ) {
- mx = xfer->data;
-
/* this is the transfer we have been looking for */
purple_xfer_ref( xfer );
purple_xfer_start( xfer, -1, NULL, 0 );
fwrite( data, datalen, 1, xfer->dest_fp );
+ // TODO: Handle error from fwrite()
purple_xfer_unref( xfer );
purple_xfer_set_completed( xfer, TRUE );
purple_xfer_end( xfer );
diff --git a/libpurple/protocols/mxit/formcmds.c b/libpurple/protocols/mxit/formcmds.c
--- a/libpurple/protocols/mxit/formcmds.c
+++ b/libpurple/protocols/mxit/formcmds.c
@@ -327,7 +327,6 @@ static void command_image(struct RXMsgDa
const char* img;
const char* reply;
guchar* rawimg;
- char link[256];
gsize rawimglen;
int imgid;
@@ -336,8 +335,7 @@ static void command_image(struct RXMsgDa
rawimg = purple_base64_decode(img, &rawimglen);
//purple_util_write_data_to_file_absolute("/tmp/mxitinline.png", (char*) rawimg, rawimglen);
imgid = purple_imgstore_add_with_id(rawimg, rawimglen, NULL);
- g_snprintf(link, sizeof(link), "<img id=\"%i\">", imgid);
- g_string_append_printf(msg, "%s", link);
+ g_string_append_printf(msg, "<img id=\"%i\">", imgid);
mx->flags |= PURPLE_MESSAGE_IMAGES;
}
else {
diff --git a/libpurple/protocols/mxit/login.c b/libpurple/protocols/mxit/login.c
--- a/libpurple/protocols/mxit/login.c
+++ b/libpurple/protocols/mxit/login.c
@@ -49,29 +49,27 @@ static void get_clientinfo( struct MXitS
*/
static struct MXitSession* mxit_create_object( PurpleAccount* account )
{
+ PurpleConnection* con = purple_account_get_connection( account );
struct MXitSession* session = NULL;
- PurpleConnection* con = NULL;
/* currently the wapsite does not handle a '+' in front of the username (mxitid) so we just strip it */
- if ( account->username[0] == '+' ) {
- char* fixed;
+ {
+ const char* username = purple_account_get_username( account );
- /* cut off the '+' */
- fixed = g_strdup( &account->username[1] );
- purple_account_set_username( account, fixed );
- g_free( fixed );
+ if ( username[0] == '+' ) {
+ char* fixed = g_strdup( &username[1] );
+ purple_account_set_username( account, fixed );
+ g_free( fixed );
+ }
}
session = g_new0( struct MXitSession, 1 );
+ session->con = con;
+ session->acc = account;
/* configure the connection (reference: "libpurple/connection.h") */
- con = purple_account_get_connection( account );
- con->proto_data = session;
+ purple_connection_set_protocol_data( con, session );
con->flags |= PURPLE_CONNECTION_NO_BGCOLOR | PURPLE_CONNECTION_NO_URLDESC | PURPLE_CONNECTION_HTML | PURPLE_CONNECTION_SUPPORT_MOODS;
- session->con = con;
-
- /* add account */
- session->acc = account;
/* configure the session (reference: "libpurple/account.h") */
g_strlcpy( session->server, purple_account_get_string( account, MXIT_CONFIG_SERVER_ADDR, DEFAULT_SERVER ), sizeof( session->server ) );
@@ -756,7 +754,7 @@ void mxit_login( PurpleAccount* account
* if we don't have any info saved from a previous login, we need to get it from the MXit WAP site.
* we do cache it, so this step is only done on the very first login for each account.
*/
- if ( ( session->distcode == NULL ) || ( strlen( session->distcode ) == 0 ) ) {
+ if ( ( session->distcode == NULL ) || ( !*session->distcode ) ) {
/* this must be the very first login, so we need to retrieve the user information */
get_clientinfo( session );
}
diff --git a/libpurple/protocols/mxit/mxit.h b/libpurple/protocols/mxit/mxit.h
--- a/libpurple/protocols/mxit/mxit.h
+++ b/libpurple/protocols/mxit/mxit.h
@@ -191,7 +191,7 @@ char* mxit_status_text( PurpleBuddy* bud
void mxit_enable_signals( struct MXitSession* session );
#ifdef MXIT_LINK_CLICK
-void mxit_register_uri_handler(void);
+void mxit_register_uri_handler( void );
#endif
diff --git a/libpurple/protocols/mxit/profile.c b/libpurple/protocols/mxit/profile.c
--- a/libpurple/protocols/mxit/profile.c
+++ b/libpurple/protocols/mxit/profile.c
@@ -149,7 +149,7 @@ static int calculateAge( const char* dat
struct tm now, bdate;
int age;
- if ( ( !date ) || ( strlen( date ) == 0 ) )
+ if ( ( !date ) || ( !*date ) )
return 0;
/* current time */
@@ -222,9 +222,9 @@ void mxit_show_profile( struct MXitSessi
purple_notify_user_info_add_pair( info, _( "Last Name" ), profile->lastname );
purple_notify_user_info_add_pair( info, _( "Country" ), profile->regcountry );
- if ( strlen( profile->aboutme ) > 0 )
+ if ( *profile->aboutme )
purple_notify_user_info_add_pair( info, _( "About Me" ), profile->aboutme );
- if ( strlen( profile->whereami ) > 0 )
+ if ( *profile->whereami )
purple_notify_user_info_add_pair( info, _( "Where I Live" ), profile->whereami );
purple_notify_user_info_add_pair_plaintext( info, _( "Relationship Status" ), mxit_relationship_to_name( profile->relationship ) );
diff --git a/libpurple/protocols/mxit/protocol.c b/libpurple/protocols/mxit/protocol.c
--- a/libpurple/protocols/mxit/protocol.c
+++ b/libpurple/protocols/mxit/protocol.c
@@ -1633,7 +1633,7 @@ static void mxit_parse_cmd_new_sub( stru
if ( rec->fcount >= 5 ) {
/* there is a personal invite message attached */
- if ( ( rec->fields[4]->data ) && ( strlen( rec->fields[4]->data ) > 0 ) )
+ if ( ( rec->fields[4]->data ) && ( *rec->fields[4]->data ) )
contact->msg = strdup( rec->fields[4]->data );
}
@@ -1879,7 +1879,7 @@ static void mxit_parse_cmd_extprofile( s
contact = get_mxit_invite_contact( session, mxitId );
if ( contact ) {
/* this is an invite, so update its profile info */
- if ( ( statusMsg ) && ( strlen( statusMsg ) > 0 ) ) {
+ if ( ( statusMsg ) && ( *statusMsg ) ) {
/* update the status message */
if ( contact->statusMsg )
g_free( contact->statusMsg );
@@ -1890,7 +1890,7 @@ static void mxit_parse_cmd_extprofile( s
if ( contact->profile )
g_free( contact->profile );
contact->profile = profile;
- if ( ( avatarId ) && ( strlen( avatarId ) > 0 ) ) {
+ if ( ( avatarId ) && ( *avatarId ) ) {
/* avatar must be requested for this invite before we can display it */
mxit_get_avatar( session, mxitId, avatarId );
if ( contact->avatarId )
@@ -1908,7 +1908,7 @@ static void mxit_parse_cmd_extprofile( s
if ( avatarId )
mxit_update_buddy_avatar( session, mxitId, avatarId );
- if ( ( statusMsg ) && ( strlen( statusMsg ) > 0 ) ) {
+ if ( ( statusMsg ) && ( *statusMsg ) ) {
/* update the status message */
PurpleBuddy* buddy = NULL;
diff --git a/libpurple/protocols/mxit/roster.c b/libpurple/protocols/mxit/roster.c
--- a/libpurple/protocols/mxit/roster.c
+++ b/libpurple/protocols/mxit/roster.c
@@ -293,14 +293,15 @@ static void dump_contact( struct contact
*/
static PurpleBuddy* mxit_update_buddy_group( struct MXitSession* session, PurpleBuddy* buddy, PurpleGroup* group )
{
- struct contact* contact = NULL;
PurpleGroup* current_group = purple_buddy_get_group( buddy );
- PurpleBuddy* newbuddy = NULL;
/* make sure the groups actually differs */
if ( strcmp( current_group->name, group->name ) != 0 ) {
/* groupnames does not match, so we need to make the update */
+ struct contact* contact = purple_buddy_get_protocol_data( buddy );
+ PurpleBuddy* newbuddy = NULL;
+
purple_debug_info( MXIT_PLUGIN_ID, "Moving '%s' from group '%s' to '%s'\n", buddy->alias, current_group->name, group->name );
/*
@@ -310,10 +311,10 @@ static PurpleBuddy* mxit_update_buddy_gr
* again. This is really not ideal and very irritating, but how else then?
*/
- /* create new buddy */
+ /* create new buddy, and transfer 'contact' data */
newbuddy = purple_buddy_new( session->acc, buddy->name, buddy->alias );
- newbuddy->proto_data = buddy->proto_data;
- buddy->proto_data = NULL;
+ purple_buddy_set_protocol_data( newbuddy, contact );
+ purple_buddy_set_protocol_data( buddy, NULL );
/* remove the buddy */
purple_blist_remove_buddy( buddy );
@@ -322,7 +323,6 @@ static PurpleBuddy* mxit_update_buddy_gr
purple_blist_add_buddy( newbuddy, NULL, group, NULL );
/* now re-instate his presence again */
- contact = newbuddy->proto_data;
if ( contact ) {
/* update the buddy's status (reference: "libpurple/prpl.h") */
diff --git a/libpurple/protocols/mxit/roster.h b/libpurple/protocols/mxit/roster.h
--- a/libpurple/protocols/mxit/roster.h
+++ b/libpurple/protocols/mxit/roster.h
@@ -74,6 +74,7 @@
/* MXit contact flags */
+//#define MXIT_CFLAG_HIDDEN 0x02 /* (DEPRECATED) */
#define MXIT_CFLAG_GATEWAY 0x04
#define MXIT_CFLAG_FOCUS_SEND_BLANK 0x20000
@@ -95,7 +96,7 @@
/* client protocol constants */
#define MXIT_CP_MAX_JID_LEN 64
#define MXIT_CP_MAX_GROUP_LEN 32
-#define MXIT_CP_MAX_ALIAS_LEN 48
+#define MXIT_CP_MAX_ALIAS_LEN 100
#define MXIT_DEFAULT_GROUP "MXit"
@@ -105,8 +106,8 @@
*/
struct contact {
char username[MXIT_CP_MAX_JID_LEN+1]; /* unique contact name (with domain) */
- char alias[MXIT_CP_MAX_GROUP_LEN+1]; /* contact alias (what will be seen) */
- char groupname[MXIT_CP_MAX_ALIAS_LEN+1]; /* contact group name */
+ char alias[MXIT_CP_MAX_ALIAS_LEN+1]; /* contact alias (what will be seen) */
+ char groupname[MXIT_CP_MAX_GROUP_LEN+1]; /* contact group name */
short type; /* contact type */
short mood; /* contact current mood */
diff --git a/libpurple/protocols/mxit/voicevideo.c b/libpurple/protocols/mxit/voicevideo.c
--- a/libpurple/protocols/mxit/voicevideo.c
+++ b/libpurple/protocols/mxit/voicevideo.c
@@ -63,7 +63,7 @@ gboolean mxit_video_enabled(void)
*/
PurpleMediaCaps mxit_media_caps(PurpleAccount *account, const char *who)
{
- struct MXitSession* session = purple_connection_get_protocol_data( purple_account_get_connection(account) );
+ struct MXitSession* session = purple_connection_get_protocol_data(purple_account_get_connection(account));
PurpleBuddy* buddy;
struct contact* contact;
PurpleMediaCaps capa = PURPLE_MEDIA_CAPS_NONE;
@@ -71,7 +71,7 @@ PurpleMediaCaps mxit_media_caps(PurpleAc
purple_debug_info(MXIT_PLUGIN_ID, "mxit_media_caps: buddy '%s'\n", who);
/* We need to have a voice/video server */
- if (strlen(session->voip_server) == 0)
+ if (!*session->voip_server)
return PURPLE_MEDIA_CAPS_NONE;
/* find the buddy information for this contact (reference: "libpurple/blist.h") */
More information about the Commits
mailing list