Annotation of researchv10no/cmd/map/iplot.h, revision 1.1.1.1

1.1       root        1: /* Plotting functions for v8 and v9 systems */
                      2: /* This file is an alternative to plot.h */
                      3: 
                      4: #define SOLID "solid"
                      5: #define DOTTED "dotted"
                      6: #define DASHED "dashed"
                      7: #define DOTDASH "dotdash"
                      8: 
                      9: /* open the plotting output */
                     10: #define openpl()  printf("o\n")
                     11: 
                     12: /* close the plotting output */
                     13: #define closepl()  printf("cl\n")
                     14: 
                     15: /* make sure the page or screen is clear */
                     16: #define erase() printf("e\n")
                     17: 
                     18: /* plot a point at _x,_y, which becomes current */
                     19: #define point(_x,_y)  printf("poi %d %d\n", _x,_y)
                     20: 
                     21: /* coordinates to be assigned to lower left and upper right
                     22:    corners of (square) plotting area */
                     23: #define range(_x,_y,_X,_Y)  printf("ra %d %d %d %d\n", _x,_y,_X,_Y)
                     24: 
                     25: /* place text, first letter at current point, which does not change */
                     26: #define text(_s)  {if(*(_s) == ' ')printf("t \"%s\"\n",_s); else printf("t %s\n", _s); }
                     27: 
                     28: /* draw line from current point to _x,_y, which becomes current */
                     29: #define vec(_x,_y)  printf("v %d %d\n", _x,_y)
                     30: 
                     31: /* _x,_y becomes current point */
                     32: #define move(_x, _y)  printf("m %d %d\n", _x, _y)
                     33: 
                     34: /* specify style for drawing lines: "dotted", "solid", "dotdash" */
                     35: #define pen(_s)  printf("pe %s\n", _s)
                     36: 
                     37: #define BLACK "black"
                     38: #define RED "red"
                     39: #define GREEN "green"
                     40: #define BLUE "blue"
                     41: 
                     42: static struct {
                     43:        char *name;
                     44:        char *hsbcode;
                     45: } colors[] = {
                     46:        BLACK, "0 0 0",
                     47:        RED, "0 1 1",
                     48:        GREEN, ".33 1 1",
                     49:        BLUE, ".67 1 1"
                     50: };
                     51: 
                     52: static void
                     53: color(char *s)
                     54: {
                     55:        char *t;
                     56:        int i;
                     57:        for(i=0; i<sizeof(colors)/sizeof(*colors); i++)
                     58:                if(strcmp(s, colors[i].name) == 0)
                     59:                        s = colors[i].hsbcode;
                     60:        while(t = strchr(s, ','))
                     61:                *t = ' ';
                     62:        printf("co \"%s\"\n",s);
                     63: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.