X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/3c9700d8d045f3ff26ce5dd2a174454dafc14822..5bc2777230cdc4cea23ff87df356af3fb0cfadf9:/sbr/fmt_addr.c diff --git a/sbr/fmt_addr.c b/sbr/fmt_addr.c index 150aa73d..6d580619 100644 --- a/sbr/fmt_addr.c +++ b/sbr/fmt_addr.c @@ -1,13 +1,15 @@ - -/* - * fmt_addr.c -- format an address field (from fmt_scan) +/* fmt_addr.c -- format an address field (from fmt_scan) * - * $Id$ + * This code is Copyright (c) 2002, by the authors of nmh. See the + * COPYRIGHT file in the root directory of the nmh distribution for + * complete copyright information. */ -#include -#include -#include +#include "h/mh.h" +#include "fmt_addr.h" +#include "h/addrsbr.h" +#include "h/fmt_scan.h" +#include "h/utils.h" static char *buf; /* our current working buffer */ static char *bufend; /* end of working buffer */ @@ -24,11 +26,9 @@ static unsigned int bufsiz; /* current size of buf */ int i = dst - buf;\ int n = last_dst - buf;\ bufsiz += ((dst + len - bufend) / BUFINCR + 1) * BUFINCR;\ - buf = realloc (buf, bufsiz);\ + buf = mh_xrealloc (buf, bufsiz);\ dst = buf + i;\ last_dst = buf + n;\ - if (! buf)\ - adios (NULL, "formataddr: couldn't get buffer space");\ bufend = buf + bufsiz;\ } @@ -50,18 +50,16 @@ static unsigned int bufsiz; /* current size of buf */ char * formataddr (char *orig, char *str) { - register int len; - register int isgroup; - register char *dst; - register char *cp; - register char *sp; - register struct mailname *mp = NULL; + int len; + bool isgroup; + char *dst; + char *cp; + char *sp; + struct mailname *mp = NULL; /* if we don't have a buffer yet, get one */ if (bufsiz == 0) { - buf = malloc (BUFINCR); - if (! buf) - adios (NULL, "formataddr: couldn't allocate buffer space"); + buf = mh_xmalloc (BUFINCR); last_dst = buf; /* XXX */ bufsiz = BUFINCR - 6; /* leave some slop */ bufend = buf + bufsiz; @@ -82,13 +80,13 @@ formataddr (char *orig, char *str) } /* concatenate all the new addresses onto 'buf' */ - for (isgroup = 0; (cp = getname (str)); ) { - if ((mp = getm (cp, NULL, 0, fmt_norm, NULL)) == NULL) + for (isgroup = false; (cp = getname (str)); ) { + if ((mp = getm (cp, NULL, 0, NULL, 0)) == NULL) continue; if (isgroup && (mp->m_gname || !mp->m_ingrp)) { *dst++ = ';'; - isgroup = 0; + isgroup = false; } /* if we get here we're going to add an address */ if (dst != buf) { @@ -98,7 +96,7 @@ formataddr (char *orig, char *str) if (mp->m_gname) { CHECKMEM (mp->m_gname); CPY (mp->m_gname); - isgroup++; + isgroup = true; } sp = adrformat (mp); CHECKMEM (sp); @@ -111,5 +109,11 @@ formataddr (char *orig, char *str) *dst = '\0'; last_dst = dst; - return (buf); + return buf; +} + +char * +concataddr (char *orig, char *str) +{ + return formataddr(orig, str); }