DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T u

⟦7a8c0c07a⟧ TextFile

    Length: 1462 (0x5b6)
    Types: TextFile
    Names: »ut_dlh.c«

Derivation

└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
    └─⟦dc59850a2⟧ »EurOpenD22/pp5.0/pp-5.tar.Z« 
        └─⟦e5a54fb17⟧ 
            └─⟦this⟧ »pp-5.0/Lib/pp/ut_dlh.c« 

TextFile

/* ut_dlh.c: utility routines for distribution list history */

# ifndef lint
static char Rcsid[] = "@(#)$Header: /cs/research/pp/hubris/pp-beta/Lib/pp/RCS/ut_dlh.c,v 5.0 90/09/20 16:12:36 pp Exp Locker: pp $";
# endif

/*
 * $Header: /cs/research/pp/hubris/pp-beta/Lib/pp/RCS/ut_dlh.c,v 5.0 90/09/20 16:12:36 pp Exp Locker: pp $
 *
 * $Log:	ut_dlh.c,v $
 * Revision 5.0  90/09/20  16:12:36  pp
 * rcsforce : 5.0 public release
 * 
 */



#include	"util.h"
#include	"mta.h"

DLHistory *dlh_new (addr, dn, utc)
char	*addr, *dn;
UTC	utc;
{
	DLHistory *dlh;

	dlh = (DLHistory *) smalloc (sizeof *dlh);

	dlh -> dlh_addr = addr ? strdup (addr) : NULLCP;
	dlh -> dlh_dn = dn ? strdup (dn) : NULLCP;
	dlh -> dlh_time = utc ? utcdup(utc) : utcnow ();
	dlh -> dlh_next = NULL;
	return dlh;
}

void	dlh_add (base, dlh)
DLHistory **base, *dlh;
{
	DLHistory **dlp;

	for (dlp = base; *dlp; dlp = &(*dlp) -> dlh_next)
		continue;
	*dlp = dlh;
}

DLHistory *dlh_dup (dlh)
DLHistory *dlh;
{
	DLHistory *new = NULL;
	DLHistory *dlp;

	for (dlp = dlh; dlp; dlp = dlp->dlh_next) {
		dlh_add (&new, dlh_new (dlp -> dlh_addr,
					dlp -> dlh_dn,
					dlp -> dlh_time));
	}
	return new;
}

void dlh_free (dlh)
DLHistory *dlh;
{
	if (dlh == NULL)
		return;
	if (dlh -> dlh_next)
		dlh_free (dlh -> dlh_next);
	if (dlh -> dlh_addr)
		free (dlh -> dlh_addr);
	if (dlh -> dlh_dn)
		free (dlh -> dlh_dn);
	if (dlh -> dlh_time)
		free ((char *) dlh -> dlh_time);
	free ((char *)dlh);
}