diff options
author | Wez Furlong <wez@php.net> | 2001-05-20 11:11:28 +0000 |
---|---|---|
committer | Wez Furlong <wez@php.net> | 2001-05-20 11:11:28 +0000 |
commit | 6468f8b492040c8e973608fa41c5c64a6e2434b2 (patch) | |
tree | 2d1737225dd746b4c20c0474598fca3f55c25c95 /ext/mailparse/rfc2045decode.c | |
parent | 83b18832aa9f252a8f9f47536867a982d143e030 (diff) | |
download | php-git-6468f8b492040c8e973608fa41c5c64a6e2434b2.tar.gz |
Imported mailparse extension
@- New mailparse extension for parsing and manipulating MIME mail (Wez)
Diffstat (limited to 'ext/mailparse/rfc2045decode.c')
-rw-r--r-- | ext/mailparse/rfc2045decode.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/ext/mailparse/rfc2045decode.c b/ext/mailparse/rfc2045decode.c new file mode 100644 index 0000000000..1c066e3a99 --- /dev/null +++ b/ext/mailparse/rfc2045decode.c @@ -0,0 +1,40 @@ +/* $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); +} |