rfc2045decode.c
上传用户:s81996212
上传日期:2007-01-04
资源大小:722k
文件大小:1k
- /*
- ** Copyright 1998 - 1999 Double Precision, Inc. See COPYING for
- ** distribution information.
- */
- /*
- ** $Id: rfc2045decode.c,v 1.2 1999/12/06 13:29:02 mrsam Exp $
- */
- #include "rfc2045.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);
- }