X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/1691e80890e5d8ba258c51c214a3e91880e1db2b..94187a80bd60baab4b9c4b949ad820d730578123:/sbr/fmt_addr.c diff --git a/sbr/fmt_addr.c b/sbr/fmt_addr.c index 782eb0a9..2c7b58e4 100644 --- a/sbr/fmt_addr.c +++ b/sbr/fmt_addr.c @@ -1,13 +1,14 @@ - -/* - * 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 static char *buf; /* our current working buffer */ static char *bufend; /* end of working buffer */ @@ -24,11 +25,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 +49,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; + int 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,8 +79,8 @@ 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 = 0; (cp = getname (str)); ) { + if ((mp = getm (cp, NULL, 0, NULL, 0)) == NULL) continue; if (isgroup && (mp->m_gname || !mp->m_ingrp)) { @@ -111,5 +108,10 @@ formataddr (char *orig, char *str) *dst = '\0'; last_dst = dst; - return (buf); + return buf; +} + +char *concataddr (char *orig, char *str) +{ + return formataddr(orig, str); }