[BACK]Return to debug.trm CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gnuplot / term

Annotation of OpenXM_contrib/gnuplot/term/debug.trm, Revision 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>