Пример #1
0
/*
 * 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;
}
Пример #2
0
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);
}
Пример #3
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;
}
Пример #4
0
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);
}