|
|
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 t
Length: 3844 (0xf04)
Types: TextFile
Names: »tjoin1.c«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
└─⟦dc59850a2⟧ »EurOpenD22/pp5.0/pp-5.tar.Z«
└─⟦e5a54fb17⟧
└─⟦this⟧ »pp-5.0/Tools/tables/tjoin/tjoin1.c«
/* tjoin1.c: */
# ifndef lint
static char Rcsid[] = "@(#)$Header: /cs/research/pp/hubris/pp-beta/Tools/tables/tjoin/RCS/tjoin1.c,v 5.0 90/09/20 16:32:26 pp Exp Locker: pp $";
# endif
/*
* $Header: /cs/research/pp/hubris/pp-beta/Tools/tables/tjoin/RCS/tjoin1.c,v 5.0 90/09/20 16:32:26 pp Exp Locker: pp $
*
* $Log: tjoin1.c,v $
* Revision 5.0 90/09/20 16:32:26 pp
* rcsforce : 5.0 public release
*
*/
#include <stdio.h>
#include "tjoin.h"
extern char *av0;
extern int yylineno, Debug;
extern HOST *HostList;
extern CHAN *ChanList;
extern char *malloc();
extern char *FastInChanList();
FreeChanInfo (list)
register CHAN *list;
{
register CHAN *startlist = list,
*chptr;
for (; list != NULL; list = chptr) {
chptr = list -> ch_next;
if (Debug == 1)
printf ("FreeChanInfo %s\n", list->ch.name);
if (list)
free ((char *)list);
}
startlist = NULL;
}
RejectHost (host)
register HOST *host;
{
register CHAN *c1;
fprintf (stderr,
"%s: Channel present, but LHS & RHS hosts differ at line %d\n",
av0, yylineno - 1);
for (c1 = host -> hst_chan; c1 != NULL; c1 = c1 -> ch_next) {
if (Debug == 1)
printf ("Free %x - RejectHost ChanName\n", c1->ch.name);
if (c1 -> ch.name) {
free (c1 -> ch.name);
c1 -> ch.name = NULL;
}
}
if (Debug == 1)
printf ("Free %x - RejectHost HostName\n", host -> hst_name);
if (host -> hst_name) {
free (host -> hst_name);
host -> hst_name = NULL;
}
}
StartChanList (str)
char *str;
{
if (ChanList != NULL) {
fprintf (stderr, "%s: StartChanList - ChanList not NULL\n",
av0);
exit (1);
}
if ((ChanList = (CHAN *) malloc (sizeof (CHAN))) == NULL) {
fprintf (stderr, "%s: StartChanList - No Memory\n", av0);
exit (1);
}
if (Debug == 1)
printf ("StartChanList - %s\n", str ? str : "null");
bzero ((char *)ChanList, sizeof(*ChanList));
ChanList -> ch.name = str;
}
AddToChanList (str)
char *str;
{
register CHAN *chan;
if ((chan = (CHAN *) malloc (sizeof (CHAN))) == NULL) {
fprintf (stderr, "%s: AddToChanList - No Memory\n");
exit (1);
}
if (Debug == 1)
printf ("AddToChanList - %s\n", str ? str : "null");
bzero ((char *)chan, sizeof(*chan));
chan -> ch_next = ChanList;
ChanList = chan;
chan -> ch.name = str;
}
StartHostList (str)
char *str;
{
if (HostList != NULL) {
fprintf (stderr, "%s: StartHostList - HostList not NULL\n",
av0);
exit (1);
}
if ((HostList = (HOST *) malloc (sizeof (HOST))) == NULL) {
fprintf (stderr, "%s: StartHostList - No Memory\n", av0);
exit (1);
}
if (Debug == 1)
printf ("StartHostList - %s\n", str ? str : "null");
bzero ((char *)HostList, sizeof(*HostList));
HostList -> hst_name = str;
HostList -> hst_chan = ChanList;
}
AddToHostList (str)
char *str;
{
register HOST *host;
if ((host = (HOST *) malloc (sizeof (HOST))) == NULL) {
fprintf (stderr, "%s: AddToHostList - No Memory\n");
exit (1);
}
if (Debug == 1)
printf ("AddToHostList - %s\n", str ? str : "null");
bzero ((char *)host, sizeof(*host));
host -> hst_next = HostList;
HostList = host;
host -> hst_name = str;
host -> hst_chan = ChanList;
}
char *FastInChanList (list, name)
register CHAN *list;
char *name;
{
if (name == NULL)
return (NULL);
for (; list != NULL; list = list -> ch_next)
if (list -> ch.name == name)
return (list -> ch.name);
return (NULL);
}
char *InChanList (list, name)
register CHAN *list;
char *name;
{
if (name == NULL)
return (NULL);
for (; list != NULL; list = list -> ch_next)
if (strcmp (list -> ch.name, name) == 0)
return (list -> ch.name);
return (NULL);
}
CHAN *InsertChan (list, item)
register CHAN *list, *item;
{
register CHAN *c1;
if (list == NULL)
return (item);
for (c1 = list; c1 -> ch_next != NULL; c1 = c1 -> ch_next)
continue;
c1 -> ch_next = item;
return (list);
}