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

WEB邮件程序

开发平台:

C/C++

  1. /*
  2. ** Copyright 1998 - 1999 Double Precision, Inc.
  3. ** See COPYING for distribution information.
  4. */
  5. #include <stdlib.h>
  6. #include <string.h>
  7. #include <stdio.h>
  8. #include <ctype.h>
  9. #include "maildirrequota.h"
  10. static const char rcsid[]="$Id: maildirrequota.c,v 1.3 1999/12/06 13:21:05 mrsam Exp $";
  11. char *maildir_requota(const char *oldname, unsigned long s)
  12. {
  13. char buf[40];
  14. char *p;
  15. const char *q;
  16. sprintf(buf, ",S=%lu", s);
  17. if ((p=malloc(strlen(oldname)+strlen(buf)+1)) == 0) return (0);
  18. if ((q=strrchr(oldname, '/')) == 0) q=oldname;
  19. while (*q)
  20. {
  21. if ((*q == ',' && q[1] == 'S' && q[2] == '=') || *q == ':')
  22. {
  23. memcpy(p, oldname, q-oldname);
  24. strcpy(p + (q-oldname), buf);
  25. if (*q == ',') q += 3;
  26. for ( ; isdigit((int)(unsigned char)*q); q++)
  27. ;
  28. strcat(p, q);
  29. return (p);
  30. }
  31. ++q;
  32. }
  33. return (strcat(strcpy(p, oldname), buf));
  34. }