Imported Upstream version 0.63.0
[hcoop/debian/courier-authlib.git] / 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/*
8d138742 7** $Id: rfc822_getaddr.c,v 1.10 2009/11/22 19:39:52 mrsam Exp $
d9898ee8 8*/
9#include "rfc822.h"
10#include <stdlib.h>
11
12static void cntlen(char c, void *p)
13{
14 if (c != '\n')
15 ++ *(size_t *)p;
16}
17
18static void saveaddr(char c, void *p)
19{
20 if (c != '\n')
21 {
22 char **cp=(char **)p;
23
24 *(*cp)++=c;
25 }
26}
27
28char *rfc822_getaddr(const struct rfc822a *rfc, int n)
29{
8d138742 30 return rfc822_display_addr_tobuf(rfc, n, NULL);
d9898ee8 31}
32
33char *rfc822_gettok(const struct rfc822token *t)
34{
35size_t addrbuflen=0;
36char *addrbuf, *ptr;
37
38 rfc822tok_print(t, &cntlen, &addrbuflen);
39
40 if (!(addrbuf=malloc(addrbuflen+1)))
41 return (0);
42
43 ptr=addrbuf;
44 rfc822tok_print(t, &saveaddr, &ptr);
45 addrbuf[addrbuflen]=0;
46 return (addrbuf);
47}