From 3167fce5ce254c0cd71891b929c324ced2fd5325 Mon Sep 17 00:00:00 2001 From: rsc Date: Sun, 21 May 2006 15:56:16 +0000 Subject: colors (Gregor Asplund) --- src/cmd/graph/graph.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'src/cmd/graph') diff --git a/src/cmd/graph/graph.c b/src/cmd/graph/graph.c index 3e740cb0..336b0b18 100644 --- a/src/cmd/graph/graph.c +++ b/src/cmd/graph/graph.c @@ -63,6 +63,22 @@ double ident(double x){ struct z { float lb,ub,mult,quant; }; + +struct { + char *name; + int next; +} palette[] = { + ['b'] { "blue", 'b' }, + ['c'] { "cyan", 'c' }, + ['g'] { "green", 'g' }, + ['k'] { "kblack", 'k' }, + ['m'] { "magenta", 'm' }, + ['r'] { "red", 'r' }, + ['w'] { "white", 'w' }, + ['y'] { "yellow", 'y' } +}; +int pencolor = 'k'; + void init(struct xy *); void setopt(int, char *[]); void readin(void); @@ -72,6 +88,7 @@ void equilibrate(struct xy *, struct xy *); void scale(struct xy *); void limread(struct xy *, int *, char ***); int numb(float *, int *, char ***); +void colread(int *, char ***); int copystring(int); struct z setloglim(int, int, float, float); struct z setlinlim(int, int, float, float); @@ -221,6 +238,9 @@ again: switch(argv[0][0]) { if(!numb(&yd.xoff,&argc,&argv)) badarg(); break; + case 'p': /*pen color*/ + colread(&argc, &argv); + break; default: badarg(); } @@ -266,6 +286,26 @@ numb(float *np, int *argcp, char ***argvp){ return(1); } +void colread(int *argcp, char ***argvp){ + int c, cnext; + int i, n; + + if(*argcp<=1) + return; + n = strlen((*argvp)[1]); + if(strspn((*argvp)[1], "bcgkmrwy")!=n) + return; + pencolor = cnext = (*argvp)[1][0]; + for(i=0; i