# HG changeset patch # User Jeffrey Connelly # Date 1187060632 0 # Node ID b29788c6d269b3f0f56a111fe154df031a2bf617 # Parent a242e014ab8c7f41d01310645a904c2655b9d6fd Make msimprpl work without a libpurple attention API. Change PurpleAttentionType to MsimAttentionType and define it in myspace.h, so that msimprpl can use it while libpurple doesn't have it. diff -r a242e014ab8c -r b29788c6d269 libpurple/protocols/myspace/myspace.c --- a/libpurple/protocols/myspace/myspace.c Tue Aug 14 02:54:31 2007 +0000 +++ b/libpurple/protocols/myspace/myspace.c Tue Aug 14 03:03:52 2007 +0000 @@ -287,11 +287,11 @@ msim_attention_types(PurpleAccount *acct) { static GList *types = NULL; - PurpleAttentionType* attn; + MsimAttentionType* attn; if (!types) { #define _MSIM_ADD_NEW_ATTENTION(icn, des, incoming, outgoing) \ - attn = g_new0(PurpleAttentionType, 1); \ + attn = g_new0(MsimAttentionType, 1); \ attn->icon = icn; \ attn->description = des; \ attn->incoming_description = incoming; \ @@ -320,14 +320,14 @@ { GList *types; MsimSession *session; - PurpleAttentionType *attn; + MsimAttentionType *attn; PurpleBuddy *buddy; session = (MsimSession *)gc->proto_data; /* Look for this attention type, by the code index given. */ types = msim_attention_types(gc->account); - attn = (PurpleAttentionType *)g_list_nth_data(types, code); + attn = (MsimAttentionType *)g_list_nth_data(types, code); if (!attn) { purple_debug_info("msim_send_attention", "got invalid zap code %d\n", code); @@ -339,7 +339,7 @@ return FALSE; } - /* TODO: make use of the PurpleAttentionType we found, instead of + /* TODO: make use of the MsimAttentionType we found, instead of * doing it all over in msim_send_zap_from_menu. */ msim_send_zap_from_menu(&buddy->node, GUINT_TO_POINTER(code)); @@ -355,7 +355,7 @@ gchar *zap_description; #endif GList *types; - PurpleAttentionType *attn; + MsimAttentionType *attn; gboolean rc; g_return_val_if_fail(session != NULL, FALSE); @@ -449,9 +449,9 @@ i = 0; do { - PurpleAttentionType *attn; - - attn = (PurpleAttentionType *)types->data; + MsimAttentionType *attn; + + attn = (MsimAttentionType *)types->data; zap_names[i] = attn->description; ++i; } while ((types = g_list_next(types))); @@ -1686,7 +1686,7 @@ gint zap; const gchar *zap_past_tense[10]; #ifdef MSIM_USE_ATTENTION_API - PurpleAttentionType attn; + MsimAttentionType attn; #else gchar *zap_text; #endif diff -r a242e014ab8c -r b29788c6d269 libpurple/protocols/myspace/myspace.h --- a/libpurple/protocols/myspace/myspace.h Tue Aug 14 02:54:31 2007 +0000 +++ b/libpurple/protocols/myspace/myspace.h Tue Aug 14 03:03:52 2007 +0000 @@ -68,7 +68,8 @@ /*#define MSIM_SELF_TEST */ /* Use the attention API for zaps? */ -#define MSIM_USE_ATTENTION_API +/* Can't have until >=2.2.0, since is a new API. */ +/*#define MSIM_USE_ATTENTION_API */ /* Constants */ @@ -202,6 +203,9 @@ guint inbox_status; /**< Bit field of inbox notifications */ } MsimSession; +/* Check if an MsimSession is valid */ +#define MSIM_SESSION_VALID(s) (session != NULL && session->magic == MSIM_SESSION_STRUCT_MAGIC) + /* Hold ephemeral information about buddies, for proto_data of PurpleBuddy. */ /* GHashTable? */ typedef struct _MsimUser @@ -221,8 +225,19 @@ gchar *image_url; } MsimUser; -/* Check if an MsimSession is valid */ -#define MSIM_SESSION_VALID(s) (session != NULL && session->magic == MSIM_SESSION_STRUCT_MAGIC) + +/* Different kinds of attention alerts. Not yet in libpurple, so define + * our own structure here. */ +typedef struct _MsimAttentionType MsimAttentionType; + +/** A type of "attention" message (zap, nudge, buzz, etc. depending on the + * protocol) that can be sent and received. */ +struct _MsimAttentionType { + PurpleStoredImage *icon; + const gchar *description; /**< Shown before sending. */ + const gchar *incoming_description; /**< Shown when sent. */ + const gchar *outgoing_description; /**< Shown when received. */ +}; gchar *str_replace(const gchar *str, const gchar *old, const gchar *new);