|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T u
Length: 928 (0x3a0)
Types: TextFile
Names: »ut_fn.c«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
└─⟦dc59850a2⟧ »EurOpenD22/pp5.0/pp-5.tar.Z«
└─⟦e5a54fb17⟧
└─⟦this⟧ »pp-5.0/Lib/pp/ut_fn.c«
/* ut_fn.c: FullName support routines */
# ifndef lint
static char Rcsid[] = "@(#)$Header: /cs/research/pp/hubris/pp-beta/Lib/pp/RCS/ut_fn.c,v 5.0 90/09/20 16:12:43 pp Exp Locker: pp $";
# endif
/*
* $Header: /cs/research/pp/hubris/pp-beta/Lib/pp/RCS/ut_fn.c,v 5.0 90/09/20 16:12:43 pp Exp Locker: pp $
*
* $Log: ut_fn.c,v $
* Revision 5.0 90/09/20 16:12:43 pp
* rcsforce : 5.0 public release
*
*/
#include "util.h"
#include "mta.h"
FullName *fn_new (addr, dn)
char *addr;
char *dn;
{
FullName *fn;
fn = (FullName *) smalloc (sizeof *fn);
fn -> fn_addr = addr ? strdup (addr) : NULLCP;
fn -> fn_dn = dn ? strdup (dn) : NULLCP;
return fn;
}
void fn_free (fn)
FullName *fn;
{
if (fn == NULL)
return;
if (fn -> fn_addr)
free (fn -> fn_addr);
if (fn -> fn_dn)
free (fn -> fn_dn);
free ((char *)fn);
}
FullName *fn_dup (fn)
FullName *fn;
{
return fn_new (fn -> fn_addr, fn -> fn_dn);
}