view libpurple/plugins/perl/common/Log.xs @ 21041:094bbbe89d0d

Track the actual visibility for the buddy list (unobscured, partially and fully obscured). This maintains the behavior from the previous commit (raising partially obscured buddy list instead of hiding), but also maintains refreshing of the buddy list when partially obscured which the previous commit broke.
author Casey Harkins <charkins@pidgin.im>
date Sun, 28 Oct 2007 18:13:50 +0000
parents 39c7bb133a9f
children 4b33d4185342
line wrap: on
line source

#include "module.h"

MODULE = Purple::Log  PACKAGE = Purple::Log  PREFIX = purple_log_
PROTOTYPES: ENABLE

BOOT:
{
	HV *type_stash = gv_stashpv("Purple::Log::Type", 1);
	HV *flags_stash = gv_stashpv("Purple::Log:ReadFlags::", 1);

	static const constiv *civ, type_const_iv[] = {
#define const_iv(name) {#name, (IV)PURPLE_LOG_##name}
		const_iv(IM),
		const_iv(CHAT),
		const_iv(SYSTEM),
	};
	static const constiv flags_const_iv[] = {
#undef const_iv
#define const_iv(name) {#name, (IV)PURPLE_LOG_READ_##name}
		const_iv(NO_NEWLINE),
	};

	for (civ = type_const_iv + sizeof(type_const_iv) / sizeof(type_const_iv[0]); civ-- > type_const_iv; )
		newCONSTSUB(type_stash, (char *)civ->name, newSViv(civ->iv));

	for (civ = flags_const_iv + sizeof(flags_const_iv) / sizeof(flags_const_iv[0]); civ-- > flags_const_iv; )
		newCONSTSUB(flags_stash, (char *)civ->name, newSViv(civ->iv));
}

int
purple_log_common_sizer(log)
	Purple::Log log

void
purple_log_common_writer(log, ext)
	Purple::Log log
	const char *ext

gint
purple_log_compare(y, z)
	gconstpointer y
	gconstpointer z

void
purple_log_free(log)
	Purple::Log log

gchar_own *
purple_log_get_log_dir(type, name, account)
	Purple::LogType type
	const char *name
	Purple::Account account

void
purple_log_get_log_sets()
PREINIT:
	GHashTable *l;
PPCODE:
	l = purple_log_get_log_sets();
	XPUSHs(sv_2mortal(purple_perl_bless_object(l, "GHashTable")));

void
purple_log_get_logs(type, name, account)
	Purple::LogType type
	const char *name
	Purple::Account account
PREINIT:
	GList *l;
PPCODE:
	for (l = purple_log_get_logs(type, name, account); l != NULL; l = l->next) {
		XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::ListEntry")));
	}

int
purple_log_get_size(log)
	Purple::Log log

void
purple_log_get_system_logs(account)
	Purple::Account account
PREINIT:
	GList *l;
PPCODE:
	for (l = purple_log_get_system_logs(account); l != NULL; l = l->next) {
		XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::ListEntry")));
	}

int
purple_log_get_total_size(type, name, account)
	Purple::LogType type
	const char *name
	Purple::Account account

void
purple_log_init()

void
purple_log_logger_free(logger)
	Purple::Log::Logger logger

void
purple_log_logger_get_options()
PREINIT:
	GList *l;
PPCODE:
	for (l = purple_log_logger_get_options(); l != NULL; l = l->next) {
		XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::ListEntry")));
	}

gchar_own *
purple_log_read(log, flags)
	Purple::Log log
	Purple::Log::ReadFlags flags

gint
purple_log_set_compare(y, z)
	gconstpointer y
	gconstpointer z