Mail-Cclient

 view release on metacpan or  search on metacpan

Cclient.xs  view on Meta::CPAN


unsigned long
mailstream_uid_last(stream)
	Mail::Cclient stream

void
mailstream_perm_user_flags(stream)
	Mail::Cclient stream
    PREINIT:
	int i;
    PPCODE:
	for (i = 0; i < NUSERFLAGS; i++)
	    if (stream->perm_user_flags & (1 << i))
		XPUSHs(sv_2mortal(newSVpv(stream->user_flags[i], 0)));

MODULE = Mail::Cclient	PACKAGE = Mail::Cclient	PREFIX = mail_

 #
 # Message Data Fetching Functions
 #

void
mail_fetchfast(stream, sequence, ...)
	Mail::Cclient	stream
	char *		sequence
    PREINIT:
	int i;
	long flags = 0;
    PPCODE:
	for (i = 2; i < items; i++) {
	    char *flag = SvPV(ST(i), na);
	    if (strEQ(flag, "uid"))
		flags |= FT_UID;
	    else {
		croak("unknown flag \"%s\" passed to Mail::Cclient::fetchfast",
		      flag);
	    }
	}
	mail_fetchfast_full(stream, sequence, flags);
	ST(0) = &sv_yes;

void
mail_fetchflags(stream, sequence, ...)
	Mail::Cclient	stream
	char *		sequence
    PREINIT:
	int i;
	long flags = 0;
    PPCODE:
	for (i = 2; i < items; i++) {
	    char *flag = SvPV(ST(i), na);
	    if (strEQ(flag, "uid"))
		flags |= FT_UID;
	    else {
		croak("unknown flag \"%s\" passed to"
		      " Mail::Cclient::fetchflags", flag);
	    }
	}
	mail_fetchflags_full(stream, sequence, flags);

Cclient.xs  view on Meta::CPAN

void
mail_fetchstructure(stream, msgno, ...)
	Mail::Cclient	stream
	unsigned long	msgno
    PREINIT:
	int i;
	long flags = 0;
	ENVELOPE *e;
	BODY **bodyp = 0;
	BODY *body = 0;
    PPCODE:
	for (i = 2; i < items; i++) {
	    char *flag = SvPV(ST(i), na);
	    if (strEQ(flag, "uid"))
		flags |= FT_UID;
	    else {
		croak("unknown flag \"%s\" passed to"
		      " Mail::Cclient::fetchstructure", flag);
	    }
	}
	if (GIMME == G_ARRAY)

Cclient.xs  view on Meta::CPAN

void
mail_fetchheader(stream, msgno, ...)
	Mail::Cclient	stream
	unsigned long	msgno
    PREINIT:
	int i;
	long flags = 0;
	STRINGLIST *lines = 0;
	unsigned long len;
	char *hdr;
    PPCODE:
	for (i = 2; i < items; i++) {
	    SV *sv = ST(i);
	    if (SvROK(sv)) {
		sv = (SV*)SvRV(sv);
		if (SvTYPE(sv) != SVt_PVAV) {
		    croak("reference to non-list passed to"
			  " Mail::Cclient::fetchheader");
		}
		lines = av_to_stringlist((AV*)sv);
	    }

Cclient.xs  view on Meta::CPAN


void
mail_fetchtext(stream, msgno, ...)
	Mail::Cclient	stream
	unsigned long	msgno
    PREINIT:
	int i;
	long flags = 0;
	unsigned long len;
	char *text;
    PPCODE:
	for (i = 2; i < items; i++) {
	    char *flag = SvPV(ST(i), na);
	    if (strEQ(flag, "uid"))
		flags |= FT_UID;
	    else if (strEQ(flag, "peek"))
		flags |= FT_NOT;
	    else if (strEQ(flag, "internal"))
		flags |= FT_INTERNAL;
	    else {
		croak("unknown flag \"%s\" passed to"

Cclient.xs  view on Meta::CPAN

void
mail_fetchbody(stream, msgno, section, ...)
	Mail::Cclient	stream
	unsigned long	msgno
	char *		section
    PREINIT:
	int i;
	long flags = 0;
	unsigned long len;
	char *body;
    PPCODE:
	for (i = 3; i < items; i++) {
	    char *flag = SvPV(ST(i), na);
	    if (strEQ(flag, "uid"))
		flags |= FT_UID;
	    else if (strEQ(flag, "peek"))
		flags |= FT_NOT;
	    else if (strEQ(flag, "internal"))
		flags |= FT_INTERNAL;
	    else {
		croak("unknown flag \"%s\" passed to Mail::Cclient::fetchbody",

Cclient.xs  view on Meta::CPAN

mail_uid(stream, msgno)
	Mail::Cclient	stream
	unsigned long	msgno

void
mail_elt(stream, msgno)
	Mail::Cclient	stream
	unsigned long	msgno
    PREINIT:
	MESSAGECACHE *elt;
    PPCODE:
	elt = mail_elt(stream, msgno);
	XPUSHs(elt ? sv_2mortal(make_elt(stream, elt)) : &sv_undef);

 #
 # Message Status Manipulation Functions
 #

void
mail_setflag(stream, sequence, flag, ...)
	Mail::Cclient	stream

Cclient.xs  view on Meta::CPAN

 # MIME type conversion functions
 #

void
rfc822_base64(source)
	SV *	source
    PREINIT:
	STRLEN srcl;
	unsigned long len;
	unsigned char *s;
    PPCODE:
	s = (unsigned char*)SvPV(source, srcl);
	s = rfc822_base64(s, (unsigned long)srcl, &len);
	XPUSHs(sv_2mortal(newSVpv((char*)s, (STRLEN)len)));

void
rfc822_qprint(source)
	SV *	source
    PREINIT:
	STRLEN srcl;
	unsigned long len;
	unsigned char *s;
    PPCODE:
	s = (unsigned char*)SvPV(source, srcl);
	s = rfc822_qprint(s, (unsigned long)srcl, &len);
	XPUSHs(sv_2mortal(newSVpv((char*)s, (STRLEN)len)));


 #
 # Utility functions
 #

#define DATE_BUFF_SIZE 64



( run in 0.535 second using v1.01-cache-2.11-cpan-5511b514fd6 )