/* * helpers */ static GaimConnection *get_mockprpl_gc(const char *username) { GaimAccount *acct = gaim_accounts_find(username, MOCKPRPL_ID); if (acct && gaim_account_is_connected(acct)) return acct->gc; else return NULL; }
static void set_first_user(char *name) { GaimAccount *account; account = gaim_accounts_find(name, NULL); if (account == NULL) { /* new user */ account = gaim_account_new(name, GAIM_PROTO_DEFAULT); gaim_accounts_add(account); } /* Place it as the first user. */ gaim_accounts_reorder(account, 0); }
/* <name> is a comma-separated list of names, or NULL if NULL and there is at least one user defined in .gaimrc, try to login. if not NULL, parse <name> into separate strings, look up each one in .gaimrc and, if it's there, try to login. returns: 0 if successful -1 if no user was found that had a saved password */ static int dologin_named(char *name) { GaimAccount *account; char **names, **n; int retval = -1; if (name !=NULL) { /* list of names given */ names = g_strsplit(name, ",", 32); for (n = names; *n != NULL; n++) { account = gaim_accounts_find(*n, NULL); if (account) { /* found a user */ retval = 0; gaim_account_connect(account); } } g_strfreev(names); } else { /* no name given, use default */ account = (GaimAccount *)gaim_accounts_get_all()->data; retval = 0; gaim_account_connect(account); } return retval; }
static void end_element_handler(GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error) { PounceParserData *data = user_data; gchar *buffer = NULL; if (data->buffer != NULL) { buffer = g_string_free(data->buffer, FALSE); data->buffer = NULL; } if (!strcmp(element_name, "account")) { g_free(data->account_name); data->account_name = g_strdup(buffer); } else if (!strcmp(element_name, "pouncee")) { g_free(data->pouncee); data->pouncee = g_strdup(buffer); } else if (!strcmp(element_name, "event")) { if (!strcmp(data->event_type, "sign-on")) data->events |= GAIM_POUNCE_SIGNON; else if (!strcmp(data->event_type, "sign-off")) data->events |= GAIM_POUNCE_SIGNOFF; else if (!strcmp(data->event_type, "away")) data->events |= GAIM_POUNCE_AWAY; else if (!strcmp(data->event_type, "return-from-away")) data->events |= GAIM_POUNCE_AWAY_RETURN; else if (!strcmp(data->event_type, "idle")) data->events |= GAIM_POUNCE_IDLE; else if (!strcmp(data->event_type, "return-from-idle")) data->events |= GAIM_POUNCE_IDLE_RETURN; else if (!strcmp(data->event_type, "start-typing")) data->events |= GAIM_POUNCE_TYPING; else if (!strcmp(data->event_type, "stop-typing")) data->events |= GAIM_POUNCE_TYPING_STOPPED; g_free(data->event_type); data->event_type = NULL; } else if (!strcmp(element_name, "action")) { if (data->pounce != NULL) { gaim_pounce_action_register(data->pounce, data->action_name); gaim_pounce_action_set_enabled(data->pounce, data->action_name, TRUE); } g_free(data->action_name); data->action_name = NULL; } else if (!strcmp(element_name, "param")) { if (data->pounce != NULL) { gaim_pounce_action_set_attribute(data->pounce, data->action_name, data->param_name, buffer); } g_free(data->param_name); data->param_name = NULL; } else if (!strcmp(element_name, "events")) { GaimAccount *account; account = gaim_accounts_find(data->account_name, data->protocol_id); g_free(data->account_name); g_free(data->protocol_id); data->account_name = NULL; data->protocol_id = NULL; if (account == NULL) { gaim_debug(GAIM_DEBUG_ERROR, "pounce", "Account for pounce not found!\n"); } else { gaim_debug(GAIM_DEBUG_INFO, "pounce", "Creating pounce: %s, %s\n", data->ui_name, data->pouncee); data->pounce = gaim_pounce_new(data->ui_name, account, data->pouncee, data->events); } g_free(data->pouncee); data->pouncee = NULL; } else if (!strcmp(element_name, "save")) { gaim_pounce_set_save(data->pounce, TRUE); } else if (!strcmp(element_name, "pounce")) { data->pounce = NULL; data->events = 0; if (data->ui_name != NULL) g_free(data->ui_name); if (data->pouncee != NULL) g_free(data->pouncee); if (data->protocol_id != NULL) g_free(data->protocol_id); if (data->event_type != NULL) g_free(data->event_type); if (data->action_name != NULL) g_free(data->action_name); if (data->param_name != NULL) g_free(data->param_name); if (data->account_name != NULL) g_free(data->account_name); data->ui_name = NULL; data->pounce = NULL; data->protocol_id = NULL; data->event_type = NULL; data->action_name = NULL; data->param_name = NULL; data->account_name = NULL; } if (buffer != NULL) g_free(buffer); }