view plugins/perl/perl-common.h @ 8573:7dcd6f26e4a7

[gaim-migrate @ 9321] " This patch reimplements the system log. It writes system log to ~/.gaim/logs/<protocol>/<username>/.system/<timestamp>.(txt|html), where <timestamp> is the time that the account <username> with <protocol> signs on. Nathan (faceprint) and LSchiere suggested this logging scheme. No code is currently written to read the old system logs. Note that if you change the logging format, you need to re-login the accounts for the change to take effect." --Ka-Hing (javabsp) Cheung who continues: "Now this one applies, also contains a rider patch that, if you enable sound for "Someone says your name in chat", it will not play a sound if the message is a system message, like if jabber chat tells you that "*** becomes available" and *** is you, it won't play a sound." committer: Tailor Script <tailor@pidgin.im>
author Luke Schierer <lschiere@pidgin.im>
date Sat, 03 Apr 2004 18:34:29 +0000
parents 11d05ddf30a3
children 0e9e2b923d09
line wrap: on
line source

#ifndef _GAIM_PERL_COMMON_H_
#define _GAIM_PERL_COMMON_H_

#include <glib.h>
#ifdef _WIN32
#undef pipe
#endif
#include <XSUB.h>
#include <EXTERN.h>
#include <perl.h>

#include "value.h"

#define is_hvref(o) \
	((o) && SvROK(o) && SvRV(o) && (SvTYPE(SvRV(o)) == SVt_PVHV))

#define hvref(o) \
	(is_hvref(o) ? (HV *)SvRV(o) : NULL);

#define GAIM_PERL_BOOT(x) \
	{ \
		extern void boot_Gaim__##x(pTHX_ CV *cv); \
		gaim_perl_callXS(boot_Gaim__##x, cv, mark); \
	}

SV *newSVGChar(const char *str);

void gaim_perl_callXS(void (*subaddr)(pTHX_ CV *cv), CV *cv, SV **mark);
void gaim_perl_bless_plain(const char *stash, void *object);
SV *gaim_perl_bless_object(void *object, const char *stash);
gboolean gaim_perl_is_ref_object(SV *o);
void *gaim_perl_ref_object(SV *o);

int execute_perl(const char *function, int argc, char **args);

#if 0
gboolean gaim_perl_value_from_sv(GaimValue *value, SV *sv);
SV *gaim_perl_sv_from_value(const GaimValue *value);
#endif

void *gaim_perl_data_from_sv(GaimValue *value, SV *sv);
SV *gaim_perl_sv_from_vargs(const GaimValue *value, va_list *args,
							void ***copy_arg);

#endif /* _GAIM_PERL_COMMON_H_ */