|
|
researchv9-SUN3(old)
/*
%Z% %M% version %I% %Q%of %H% %T%
Last Delta: %G% %U% to %P%
*/
#ifdef DUMP
#include "cip.h"
extern struct macro *macroList;
char *types [] = {
"CIRCLE", "BOX", "ELLIPSE", "LINE", "ARC", "SPLINE", "TEXT", "MACRO"
};
char *linetypes [] = {
"SOLID", "DASHED", "DOTTED"
};
char fn[] = "dumpfile";
FILE *fp;
dump (h)
struct thing *h;
{
struct macro *ml;
fontBlk *f;
if ((fp = fopen (fn, "w")) != (FILE *) NULL) {
fprintf (fp, "\n******* THING LIST *******\n");
sleep (60);
printThing (0, h);
fprintf (fp, "\n******* MACRO LIST *******\n\n");
sleep (60);
for (ml = macroList; ml != (struct macro *) NULL; ml=ml->next) {
printMacro (0, ml);
fprintf (fp, "\n");
sleep (60);
}
fprintf (fp, "\n******* FONT LIST *******\n\n");
sleep (60);
if ((f = fonts) != (fontBlk *)NULL) {
do {
printFont (0, f);
fprintf (fp, "\n");
sleep (60);
} while ((f=f->next) != fonts);
}
fclose (fp);
}
}
char *_doprnt ();
printit (ind, fmt, x1)
int ind;
char *fmt;
unsigned x1;
{
int i;
for (i=0; i<ind; i++) {
fprintf (fp, " ");
}
_doprnt (fp, fmt, &x1);
}
printThing (ind, h)
int ind;
struct thing *h;
{
int i;
Point *p;
struct thing *t;
if ((t = h) != TNULL) {
do {
fprintf (fp, "\n");
sleep (60);
printit (ind, "%s @ %d\n", types[t->type], t);
printit (ind, " origin = {%d,%d}\n",
t->origin.x, t->origin.y);
printit (ind, " bb = {%d,%d,%d,%d}\n",
t->bb.origin.x, t->bb.origin.y,
t->bb.corner.x, t->bb.corner.y);
switch (t->type) {
case CIRCLE: {
printit (ind, " radius = %d\n",
t->otherValues.radius);
break;
}
case BOX: {
printit (ind, " corner = {%d,%d}\n",
t->otherValues.corner.x,
t->otherValues.corner.y);
printit (ind, " %s\n", linetypes[t->boorder]);
break;
}
case ELLIPSE: {
printit (ind, " height = %d\n",
t->otherValues.ellipse.ht);
printit (ind, " width = %d\n",
t->otherValues.ellipse.wid);
break;
}
case LINE: {
printit (ind, " end = {%d,%d}\n",
t->otherValues.end);
printit (ind, " %s\n", linetypes[t->boorder]);
break;
}
case ARC: {
printit (ind, " start = {%d,%d}\n",
t->otherValues.arc.start);
printit (ind, " end = {%d,%d}\n",
t->otherValues.arc.end);
break;
}
case SPLINE: {
printit (ind, " used = %d\n",
t->otherValues.spline.used);
printit (ind, " size = %d\n",
t->otherValues.spline.size);
p = t->otherValues.spline.plist;
printit (ind, " PLIST @ %d\n", p);
for (i=0; i<t->otherValues.spline.used+3; i++) {
printit (ind, " {%d,%d}\n", p->x, p->y);
p++;
}
break;
}
case TEXT: {
printit (ind, " text = %s\n",
t->otherValues.text.s);
printFont (ind, t->otherValues.text.f);
break;
}
case MACRO: {
printit (ind, " list = %d\n",
t->otherValues.list);
break;
}
}
printit (ind, " next = %d\n", t->next);
printit (ind, " last = %d\n", t->last);
t = t->next;
} while (t != h);
}
}
printMacro (ind, ml)
int ind;
struct macro *ml;
{
printit (ind, " macro @ %d\n", ml);
printit (ind, " list->name = %s\n", ml->name);
printit (ind, " list->outName = %s\n", ml->outName);
printit (ind, " list->useCount = %d\n", ml->useCount);
printit (ind, " list->bb = {%d,%d,%d,%d}\n",
ml->bb.origin.x,
ml->bb.origin.y,
ml->bb.corner.x,
ml->bb.corner.y);
printit (ind, " list->next = %d\n", ml->next);
printit (ind, " list->xReflect = %d\n", ml->xReflect);
printit (ind, " list->yReflect = %d\n", ml->yReflect);
printit (ind, " list->parts = %d\n", ml->parts);
printThing (ind+1, ml->parts);
}
printFont (ind, f)
int ind;
fontBlk *f;
{
printit (ind, " text @ = %d\n", f);
printit (ind, " text.f->ps = %d\n", f->ps);
printit (ind, " text.f->num = %d\n", f->num);
printit (ind, " text.f->useCount = %d\n", f->useCount);
printit (ind, " text.f->next = %d\n", f->next);
printit (ind, " text.f->last = %d\n", f->last);
}
#endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.