Annotation of OpenXM_contrib/gnuplot/term/debug.trm, Revision 1.1.1.1
1.1 maekawa 1: /*
2: * $Id: debug.trm,v 1.11 1998/04/14 00:17:35 drd Exp $
3: *
4: */
5:
6: /* GNUPLOT - debug.trm */
7:
8: /*[
9: * Copyright 1990 - 1993, 1998 Thomas Williams, Colin Kelley
10: *
11: * Permission to use, copy, and distribute this software and its
12: * documentation for any purpose with or without fee is hereby granted,
13: * provided that the above copyright notice appear in all copies and
14: * that both that copyright notice and this permission notice appear
15: * in supporting documentation.
16: *
17: * Permission to modify the software is granted, but not the right to
18: * distribute the complete modified source code. Modifications are to
19: * be distributed as patches to the released version. Permission to
20: * distribute binaries produced by compiling modified sources is granted,
21: * provided you
22: * 1. distribute the corresponding source modifications from the
23: * released version in the form of a patch file along with the binaries,
24: * 2. add special version identification to distinguish your version
25: * in addition to the base release version number,
26: * 3. provide your name and address as the primary contact for the
27: * support of your modified version, and
28: * 4. retain our contact information in regard to use of the base
29: * software.
30: * Permission to distribute the released version of the source code along
31: * with corresponding source modifications in the form of a patch file is
32: * granted with same provisions 2 through 4 for binary distributions.
33: *
34: * This software is provided "as is" without express or implied warranty
35: * to the extent permitted by applicable law.
36: ]*/
37:
38: /*
39: * This file is included by ../term.c.
40: *
41: * This terminal driver supports:
42: * DEBUG
43: *
44: * AUTHORS
45: * luecken@udel.edu
46: *
47: * send your comments or suggestions to (luecken@udel.edu).
48: *
49: */
50:
51: /*
52: * adapted to the new terminal layout by Stefan Bodewig (Dec. 1995)
53: * generalised to have *all* defined capabilities by HBB (June 1997)
54: */
55:
56:
57: #include "driver.h"
58:
59: #ifdef TERM_REGISTER
60: register_term(debug)
61: #endif
62:
63: #ifdef TERM_PROTO
64: TERM_PUBLIC void DEBUG_init __PROTO((void));
65: TERM_PUBLIC void DEBUG_graphics __PROTO((void));
66: TERM_PUBLIC void DEBUG_text __PROTO((void));
67: TERM_PUBLIC void DEBUG_linetype __PROTO((int linetype));
68: TERM_PUBLIC void DEBUG_move __PROTO((unsigned int x, unsigned int y));
69: TERM_PUBLIC void DEBUG_vector __PROTO((unsigned int x, unsigned int y));
70: TERM_PUBLIC void DEBUG_put_text __PROTO((unsigned int x, unsigned int y, char *str));
71: TERM_PUBLIC void DEBUG_reset __PROTO((void));
72: TERM_PUBLIC int DEBUG_justify_text __PROTO((enum JUSTIFY mode));
73: TERM_PUBLIC int DEBUG_text_angle __PROTO((int ang));
74: TERM_PUBLIC void DEBUG_point __PROTO((unsigned int x, unsigned int y, int pointstyle));
75: TERM_PUBLIC void DEBUG_arrow __PROTO((unsigned int sx, unsigned int sy, unsigned int ex, unsigned int ey, int head));
76: TERM_PUBLIC int DEBUG_set_font __PROTO((char *font));
77: TERM_PUBLIC void DEBUG_pointsize __PROTO((double pointsize));
78: TERM_PUBLIC void DEBUG_suspend __PROTO((void));
79: TERM_PUBLIC void DEBUG_resume __PROTO((void));
80: TERM_PUBLIC void DEBUG_fillbox __PROTO((int style, unsigned int x1, unsigned int y1, unsigned int width, unsigned int height));
81: TERM_PUBLIC void DEBUG_linewidth __PROTO((double linewidth));
82:
83: #define DEBUG_XMAX 512
84: #define DEBUG_YMAX 390
85:
86: #define DEBUG_XLAST (DEBUG_XMAX - 1)
87: #define DEBUG_YLAST (DEBUG_XMAX - 1)
88:
89: /* Assume a character size of 1, or a 7 x 10 grid. */
90: #define DEBUG_VCHAR 10
91: #define DEBUG_HCHAR 7
92: #define DEBUG_VTIC (DEBUG_YMAX/70)
93: #define DEBUG_HTIC (DEBUG_XMAX/75)
94: #endif /* TERM_PROTO */
95:
96: #ifndef TERM_PROTO_ONLY
97: #ifdef TERM_BODY
98:
99: int DEBUG_linetype_last;
100: int DEBUG_xlast;
101: int DEBUG_ylast;
102:
103: TERM_PUBLIC void DEBUG_init()
104: {
105: fputs("init\n", gpoutfile);
106: DEBUG_linetype_last = -3;
107: }
108:
109:
110: TERM_PUBLIC void DEBUG_graphics()
111: {
112: DEBUG_xlast = DEBUG_ylast = 0;
113: fputs("graphics\n", gpoutfile);
114: }
115:
116:
117: TERM_PUBLIC void DEBUG_text()
118: {
119: fputs("text\n", gpoutfile);
120: }
121:
122:
123: TERM_PUBLIC void DEBUG_linetype(linetype)
124: int linetype;
125: {
126: /*
127: if (linetype != DEBUG_linetype_last){
128: fprintf(gpoutfile,"l%d",linetype);
129: DEBUG_linetype_last = linetype;
130: }
131: */
132: fprintf(gpoutfile, "line %d\n", linetype);
133: }
134:
135:
136: TERM_PUBLIC void DEBUG_move(x, y)
137: unsigned int x, y;
138: {
139: /*
140: if (x != DEBUG_xlast || y != DEBUG_ylast){
141: fprintf(gpoutfile,"mm");
142: DEBUG_xlast = x;
143: DEBUG_ylast = y;
144: }
145: */
146: fprintf(gpoutfile, "move %d, %d\t(%d, %d)\n", x, y, x - DEBUG_xlast, y - DEBUG_ylast);
147: DEBUG_xlast = x;
148: DEBUG_ylast = y;
149: }
150:
151:
152: TERM_PUBLIC void DEBUG_vector(x, y)
153: unsigned int x, y;
154: {
155: /*
156: if (x != DEBUG_xlast || y != DEBUG_ylast){
157: fprintf(gpoutfile,"vv");
158: DEBUG_xlast = x;
159: DEBUG_ylast = y;
160: }
161: */
162: fprintf(gpoutfile, "vect %d, %d\t(%d, %d)\n", x, y, x - DEBUG_xlast, y - DEBUG_ylast);
163: DEBUG_xlast = x;
164: DEBUG_ylast = y;
165: }
166:
167:
168: TERM_PUBLIC void DEBUG_put_text(x, y, str)
169: unsigned int x, y;
170: char *str;
171: {
172: /*
173: DEBUG_move(x,y);
174: fprintf(gpoutfile,"tx%s\r",str);
175: */
176: fputs("put_text calls:", gpoutfile);
177: DEBUG_move(x, y);
178: fprintf(gpoutfile, "put_text '%s'\n", str);
179: }
180:
181:
182:
183: TERM_PUBLIC void DEBUG_reset()
184: {
185: fputs("reset", gpoutfile);
186: }
187:
188: TERM_PUBLIC int DEBUG_justify_text(mode)
189: enum JUSTIFY mode;
190: {
191: fputs("justify ", gpoutfile);
192: switch (mode) {
193: case (CENTRE):
194: fputs("centre", gpoutfile);
195: break;
196: case (RIGHT):
197: fputs("right", gpoutfile);
198: break;
199: default:
200: case (LEFT):
201: fputs("left", gpoutfile);
202: break;
203: }
204: fputs("\n", gpoutfile);
205: return (TRUE);
206: }
207:
208: TERM_PUBLIC int DEBUG_text_angle(ang)
209: int ang;
210: {
211: fprintf(gpoutfile, "text_angle %d:", ang);
212: switch (ang) {
213: case 0:
214: fputs(": horizontal\n", gpoutfile);
215: break;
216: case 1:
217: fputs(": upwards\n", gpoutfile);
218: break;
219: default:
220: fputs(": \a*undefined*\n", gpoutfile);
221: break;
222: }
223: return TRUE;
224: }
225:
226: TERM_PUBLIC void DEBUG_point(x, y, pointstyle)
227: unsigned int x, y;
228: int pointstyle;
229: {
230: fprintf(gpoutfile, "point at (%ud,%ud), pointstyle %d\n", x, y, pointstyle);
231: }
232:
233: TERM_PUBLIC void DEBUG_arrow(sx, sy, ex, ey, head)
234: unsigned int sx, sy, ex, ey;
235: int head;
236: {
237: fprintf(gpoutfile, "arrow from (%ud,%ud) to (%ud,%ud), %s head\n",
238: sx, sy, ex, ey, head ? "with" : "without");
239: }
240:
241: TERM_PUBLIC int DEBUG_set_font(font)
242: char *font;
243: {
244: fprintf(gpoutfile, "set font to \"%s\"\n",
245: font ? (*font ? font : "\aempty string!") : "\aNULL string!");
246: return TRUE;
247: }
248:
249: TERM_PUBLIC void DEBUG_pointsize(pointsize)
250: double pointsize;
251: {
252: fprintf(gpoutfile, "set pointsize to %lf\n", pointsize);
253: }
254:
255: TERM_PUBLIC void DEBUG_suspend(void)
256: {
257: fputs("suspended terminal driver\n", gpoutfile);
258: }
259:
260: TERM_PUBLIC void DEBUG_resume(void)
261: {
262: fputs("resumed terminal driver\n", gpoutfile);
263: }
264:
265: TERM_PUBLIC void DEBUG_fillbox(style, x1, y1, width, height)
266: int style;
267: unsigned int x1, y1, width, height;
268: {
269: fprintf(gpoutfile, "fillbox/clear at (%ud,%ud), area (%ud,%ud), style %d)\n",
270: x1, y1, width, height, style);
271: }
272:
273: TERM_PUBLIC void DEBUG_linewidth(double linewidth)
274: {
275: fprintf(gpoutfile, "set linewidth %lf\n", linewidth);
276: }
277:
278:
279: #endif /* TERM_BODY */
280:
281: #ifdef TERM_TABLE
282:
283: TERM_TABLE_START(debug_driver)
284: "debug", "debugging driver",
285: DEBUG_XMAX, DEBUG_YMAX, DEBUG_VCHAR, DEBUG_HCHAR,
286: DEBUG_VTIC, DEBUG_HTIC, options_null, DEBUG_init, DEBUG_reset,
287: DEBUG_text, null_scale, DEBUG_graphics, DEBUG_move, DEBUG_vector,
288: DEBUG_linetype, DEBUG_put_text, DEBUG_text_angle,
289: DEBUG_justify_text, DEBUG_point, DEBUG_arrow, DEBUG_set_font,
290: DEBUG_pointsize,
291: TERM_CAN_MULTIPLOT,
292: DEBUG_suspend, DEBUG_resume, DEBUG_fillbox, DEBUG_linewidth
293: TERM_TABLE_END(debug_driver)
294:
295: #undef LAST_TERM
296: #define LAST_TERM debug_driver
297:
298: #endif /* TERM_TABLE */
299: #endif /* TERM_PROTO_ONLY */
300:
301: #ifdef TERM_HELP
302: START_HELP(debug)
303: "1 debug",
304: "?commands set terminal debug",
305: "?set terminal debug",
306: "?set term debug",
307: "?terminal debug",
308: "?term debug",
309: "?debug",
310: " This terminal is provided to allow for the debugging of `gnuplot`. It is",
311: " likely to be of use only for users who are modifying the source code."
312: END_HELP(debug)
313: #endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>