|
|
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 f
Length: 2189 (0x88d)
Types: TextFile
Names: »free.c«
└─⟦52210d11f⟧ Bits:30007239 EUUGD2: TeX 3 1992-12
└─⟦c319c2751⟧ »unix3.0/TeX3.0.tar.Z«
└─⟦036c765ac⟧
└─⟦this⟧ »TeX3.0/TeXgraphics/transfig/fig2dev/free.c«
└─⟦52210d11f⟧ Bits:30007239 EUUGD2: TeX 3 1992-12
└─⟦63303ae94⟧ »unix3.14/TeX3.14.tar.Z«
└─⟦c58930e5c⟧
└─⟦this⟧ »TeX3.14/TeXgraphics/transfig/fig2dev/free.c«
#include <stdio.h>
#include <math.h>
#include "object.h"
free_arc(list)
F_arc **list;
{
F_arc *a, *arc;
for (a = *list; a != NULL;) {
arc = a;
a = a->next;
if (arc->for_arrow) free((char*)arc->for_arrow);
if (arc->back_arrow) free((char*)arc->back_arrow);
free((char*)arc);
}
*list = NULL;
}
free_compound(list)
F_compound **list;
{
F_compound *c, *compound;
for (c = *list; c != NULL;) {
compound = c;
c = c->next;
free_arc(&compound->arcs);
free_compound(&compound->compounds);
free_ellipse(&compound->ellipses);
free_line(&compound->lines);
free_spline(&compound->splines);
free_text(&compound->texts);
free((char*)compound);
}
*list = NULL;
}
free_ellipse(list)
F_ellipse **list;
{
F_ellipse *e, *ellipse;
for (e = *list; e != NULL;) {
ellipse = e;
e = e->next;
free((char*)ellipse);
}
*list = NULL;
}
free_line(list)
F_line **list;
{
F_line *l, *line;
for (l = *list; l != NULL;) {
line = l;
l = l->next;
free_linestorage(line);
}
*list = NULL;
}
free_text(list)
F_text **list;
{
F_text *t, *text;
for (t = *list; t != NULL;) {
text = t;
t = t->next;
cfree(text->cstring);
free((char*)text);
}
*list = NULL;
}
free_spline(list)
F_spline **list;
{
F_spline *s, *spline;
for (s = *list; s != NULL;) {
spline = s;
s = s->next;
free_splinestorage(spline);
}
*list = NULL;
}
free_splinestorage(s)
F_spline *s;
{
F_point *p, *q;
F_control *a, *b;
for (p = s->points; p != NULL; p = q) {
q = p->next;
free((char*)p);
}
for (a = s->controls; a != NULL; a = b) {
b = a->next;
free((char*)a);
}
if (s->for_arrow) free((char*)s->for_arrow);
if (s->back_arrow) free((char*)s->back_arrow);
free((char*)s);
}
free_linestorage(l)
F_line *l;
{
F_point *p, *q;
for (p = l->points; p != NULL; p = q) {
q = p->next;
free((char*)p);
}
if (l->for_arrow) free((char*)l->for_arrow);
if (l->back_arrow) free((char*)l->back_arrow);
free((char*)l);
}