|
|
1.1 root 1: /*
2: %Z% %M% version %I% %Q%of %H% %T%
3: Last Delta: %G% %U% to %P%
4: */
5:
6: #ifdef DUMP
7: #include "cip.h"
8:
9: extern struct macro *macroList;
10:
11: char *types [] = {
12: "CIRCLE", "BOX", "ELLIPSE", "LINE", "ARC", "SPLINE", "TEXT", "MACRO"
13: };
14: char *linetypes [] = {
15: "SOLID", "DASHED", "DOTTED"
16: };
17: char fn[] = "dumpfile";
18: FILE *fp;
19:
20: dump (h)
21: struct thing *h;
22: {
23: struct macro *ml;
24: fontBlk *f;
25:
26: if ((fp = fopen (fn, "w")) != (FILE *) NULL) {
27: fprintf (fp, "\n******* THING LIST *******\n");
28: sleep (60);
29: printThing (0, h);
30: fprintf (fp, "\n******* MACRO LIST *******\n\n");
31: sleep (60);
32: for (ml = macroList; ml != (struct macro *) NULL; ml=ml->next) {
33: printMacro (0, ml);
34: fprintf (fp, "\n");
35: sleep (60);
36: }
37: fprintf (fp, "\n******* FONT LIST *******\n\n");
38: sleep (60);
39: if ((f = fonts) != (fontBlk *)NULL) {
40: do {
41: printFont (0, f);
42: fprintf (fp, "\n");
43: sleep (60);
44: } while ((f=f->next) != fonts);
45: }
46: fclose (fp);
47: }
48: }
49:
50: char *_doprnt ();
51:
52: printit (ind, fmt, x1)
53: int ind;
54: char *fmt;
55: unsigned x1;
56: {
57: int i;
58:
59: for (i=0; i<ind; i++) {
60: fprintf (fp, " ");
61: }
62: _doprnt (fp, fmt, &x1);
63: }
64: printThing (ind, h)
65: int ind;
66: struct thing *h;
67: {
68: int i;
69: Point *p;
70: struct thing *t;
71:
72: if ((t = h) != TNULL) {
73: do {
74: fprintf (fp, "\n");
75: sleep (60);
76: printit (ind, "%s @ %d\n", types[t->type], t);
77: printit (ind, " origin = {%d,%d}\n",
78: t->origin.x, t->origin.y);
79: printit (ind, " bb = {%d,%d,%d,%d}\n",
80: t->bb.origin.x, t->bb.origin.y,
81: t->bb.corner.x, t->bb.corner.y);
82: switch (t->type) {
83: case CIRCLE: {
84: printit (ind, " radius = %d\n",
85: t->otherValues.radius);
86: break;
87: }
88: case BOX: {
89: printit (ind, " corner = {%d,%d}\n",
90: t->otherValues.corner.x,
91: t->otherValues.corner.y);
92: printit (ind, " %s\n", linetypes[t->boorder]);
93: break;
94: }
95: case ELLIPSE: {
96: printit (ind, " height = %d\n",
97: t->otherValues.ellipse.ht);
98: printit (ind, " width = %d\n",
99: t->otherValues.ellipse.wid);
100: break;
101: }
102: case LINE: {
103: printit (ind, " end = {%d,%d}\n",
104: t->otherValues.end);
105: printit (ind, " %s\n", linetypes[t->boorder]);
106: break;
107: }
108: case ARC: {
109: printit (ind, " start = {%d,%d}\n",
110: t->otherValues.arc.start);
111: printit (ind, " end = {%d,%d}\n",
112: t->otherValues.arc.end);
113: break;
114: }
115: case SPLINE: {
116: printit (ind, " used = %d\n",
117: t->otherValues.spline.used);
118: printit (ind, " size = %d\n",
119: t->otherValues.spline.size);
120: p = t->otherValues.spline.plist;
121: printit (ind, " PLIST @ %d\n", p);
122: for (i=0; i<t->otherValues.spline.used+3; i++) {
123: printit (ind, " {%d,%d}\n", p->x, p->y);
124: p++;
125: }
126: break;
127: }
128: case TEXT: {
129: printit (ind, " text = %s\n",
130: t->otherValues.text.s);
131: printFont (ind, t->otherValues.text.f);
132: break;
133: }
134: case MACRO: {
135: printit (ind, " list = %d\n",
136: t->otherValues.list);
137: break;
138: }
139: }
140: printit (ind, " next = %d\n", t->next);
141: printit (ind, " last = %d\n", t->last);
142: t = t->next;
143: } while (t != h);
144: }
145: }
146:
147: printMacro (ind, ml)
148: int ind;
149: struct macro *ml;
150: {
151: printit (ind, " macro @ %d\n", ml);
152: printit (ind, " list->name = %s\n", ml->name);
153: printit (ind, " list->outName = %s\n", ml->outName);
154: printit (ind, " list->useCount = %d\n", ml->useCount);
155: printit (ind, " list->bb = {%d,%d,%d,%d}\n",
156: ml->bb.origin.x,
157: ml->bb.origin.y,
158: ml->bb.corner.x,
159: ml->bb.corner.y);
160: printit (ind, " list->next = %d\n", ml->next);
161: printit (ind, " list->xReflect = %d\n", ml->xReflect);
162: printit (ind, " list->yReflect = %d\n", ml->yReflect);
163: printit (ind, " list->parts = %d\n", ml->parts);
164: printThing (ind+1, ml->parts);
165: }
166:
167: printFont (ind, f)
168: int ind;
169: fontBlk *f;
170: {
171: printit (ind, " text @ = %d\n", f);
172: printit (ind, " text.f->ps = %d\n", f->ps);
173: printit (ind, " text.f->num = %d\n", f->num);
174: printit (ind, " text.f->useCount = %d\n", f->useCount);
175: printit (ind, " text.f->next = %d\n", f->next);
176: printit (ind, " text.f->last = %d\n", f->last);
177: }
178: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.