rfc2045decode.c
上传用户:s81996212
上传日期:2007-01-04
资源大小:722k
文件大小:1k
源码类别:

WEB邮件程序

开发平台:

C/C++

  1. /*
  2. ** Copyright 1998 - 1999 Double Precision, Inc.  See COPYING for
  3. ** distribution information.
  4. */
  5. /*
  6. ** $Id: rfc2045decode.c,v 1.2 1999/12/06 13:29:02 mrsam Exp $
  7. */
  8. #include "rfc2045.h"
  9. static void decode(struct rfc2045id *topid,
  10. struct rfc2045id **childidptr,
  11. struct rfc2045 *r,
  12. void (*func)(struct rfc2045 *, struct rfc2045id *, void *),
  13. void *ptr)
  14. {
  15. struct rfc2045id nextid;
  16. *childidptr=0;
  17. (*func)(r, topid, ptr);
  18. *childidptr=&nextid;
  19. nextid.idnum=1;
  20. if (r->content_type && strncmp(r->content_type, "multipart/", 10) == 0)
  21. nextid.idnum=0;
  22. for (r=r->firstpart; r; r=r->next)
  23. {
  24. if (nextid.idnum)
  25. decode(topid, &nextid.next, r, func, ptr);
  26. ++nextid.idnum;
  27. }
  28. }
  29. void rfc2045_decode(struct rfc2045 *p,
  30. void (*func)(struct rfc2045 *, struct rfc2045id *, void *),
  31. void *ptr)
  32. {
  33. struct rfc2045id topid;
  34. topid.idnum=1;
  35. decode(&topid, &topid.next, p, func, ptr);
  36. }