view src/dbus-useful.c @ 13392:e132f0969763

[gaim-migrate @ 15765] The timestamp plugin shouldn't be disabling the "Gaim timestamps" in this way. It causes the Show Timestamps item in the conversation window's Options menu to not reflect reality (i.e. the option is checked, but no timestamps show up). I think that users can just use the Show Timestamps option to control that setting independently. If people really want this plugin to force timestamps off, it should do so by setting "/gaim/gtk/conversations/show_timestamps" to FALSE and greying out the Show Timestamps menu item. I think this fixes SF Bug #1385439. (It does if they were using this plugin.) committer: Tailor Script <tailor@pidgin.im>
author Richard Laager <rlaager@wiktel.com>
date Sat, 04 Mar 2006 20:18:34 +0000
parents c9312177821a
children 8bda65b88e49
line wrap: on
line source

#include <string.h>
#include <glib.h>

#include "dbus-useful.h"
#include "conversation.h"
#include "util.h"


GaimAccount *
gaim_accounts_find_ext(const char *name, const char *protocol_id, 
		       gboolean (*account_test)(const GaimAccount *account))
{
    GaimAccount *result = NULL;
    GList *l;
    char *who;
    
    if (name)
	who = g_strdup(gaim_normalize(NULL, name));
    else 
	who = NULL;
    
    for (l = gaim_accounts_get_all(); l != NULL; l = l->next) {
	GaimAccount *account = (GaimAccount *)l->data;
	
	if (who && strcmp(gaim_normalize(NULL, gaim_account_get_username(account)), who))
	    continue;

	if (protocol_id && strcmp(account->protocol_id, protocol_id))
	    continue;

	if (account_test && !account_test(account)) 
	    continue;

	result = account;
	break;
    }

    g_free(who);

    return result;
}

GaimAccount *gaim_accounts_find_any(const char *name, const char *protocol) 
{
    return gaim_accounts_find_ext(name, protocol, NULL);
}

GaimAccount *gaim_accounts_find_connected(const char *name, const char *protocol) 
{
    return gaim_accounts_find_ext(name, protocol, gaim_account_is_connected);
}