mirror of
https://github.com/php/php-src.git
synced 2024-10-14 21:12:35 +00:00
6468f8b492
@- New mailparse extension for parsing and manipulating MIME mail (Wez)
41 lines
859 B
C
41 lines
859 B
C
/* $Id$ */
|
|
/*
|
|
** Copyright 1998 - 1999 Double Precision, Inc. See COPYING for
|
|
** distribution information.
|
|
*/
|
|
|
|
#include "php.h"
|
|
#include "php_mailparse.h"
|
|
|
|
static void decode(struct rfc2045id *topid,
|
|
struct rfc2045id **childidptr,
|
|
struct rfc2045 *r,
|
|
void (*func)(struct rfc2045 *, struct rfc2045id *, void *),
|
|
void *ptr)
|
|
{
|
|
struct rfc2045id nextid;
|
|
|
|
*childidptr=0;
|
|
(*func)(r, topid, ptr);
|
|
*childidptr=&nextid;
|
|
nextid.idnum=1;
|
|
if (r->content_type && strncmp(r->content_type, "multipart/", 10) == 0)
|
|
nextid.idnum=0;
|
|
for (r=r->firstpart; r; r=r->next)
|
|
{
|
|
if (nextid.idnum)
|
|
decode(topid, &nextid.next, r, func, ptr);
|
|
++nextid.idnum;
|
|
}
|
|
}
|
|
|
|
void rfc2045_decode(struct rfc2045 *p,
|
|
void (*func)(struct rfc2045 *, struct rfc2045id *, void *),
|
|
void *ptr)
|
|
{
|
|
struct rfc2045id topid;
|
|
|
|
topid.idnum=1;
|
|
decode(&topid, &topid.next, p, func, ptr);
|
|
}
|