Imported Debian patch 0.66.1-1
[hcoop/debian/courier-authlib.git] / libs / rfc822 / rfc822_getaddr.c
CommitLineData
d9898ee8 1/*
ac40fd9e 2** Copyright 1998 - 2008 Double Precision, Inc.
d9898ee8 3** See COPYING for distribution information.
4*/
5
6/*
d9898ee8 7*/
8#include "rfc822.h"
9#include <stdlib.h>
10
11static void cntlen(char c, void *p)
12{
13 if (c != '\n')
14 ++ *(size_t *)p;
15}
16
17static void saveaddr(char c, void *p)
18{
19 if (c != '\n')
20 {
21 char **cp=(char **)p;
22
23 *(*cp)++=c;
24 }
25}
26
27char *rfc822_getaddr(const struct rfc822a *rfc, int n)
28{
8d138742 29 return rfc822_display_addr_tobuf(rfc, n, NULL);
d9898ee8 30}
31
32char *rfc822_gettok(const struct rfc822token *t)
33{
34size_t addrbuflen=0;
35char *addrbuf, *ptr;
36
37 rfc822tok_print(t, &cntlen, &addrbuflen);
38
39 if (!(addrbuf=malloc(addrbuflen+1)))
40 return (0);
41
42 ptr=addrbuf;
43 rfc822tok_print(t, &saveaddr, &ptr);
44 addrbuf[addrbuflen]=0;
45 return (addrbuf);
46}