From 72f75f465e68e75188fbf0502b8d33f26471ad2a Mon Sep 17 00:00:00 2001 From: Bill Fenner Date: Sat, 1 Aug 1998 07:36:52 +0000 Subject: Make color plotting work. Prompted by: Chris Timmons --- math/xplot/files/patch-aa | 11 ------- math/xplot/files/patch-ab | 84 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+), 11 deletions(-) create mode 100644 math/xplot/files/patch-ab (limited to 'math') diff --git a/math/xplot/files/patch-aa b/math/xplot/files/patch-aa index b816568c25b3..4e324d47a478 100644 --- a/math/xplot/files/patch-aa +++ b/math/xplot/files/patch-aa @@ -53,14 +53,3 @@ #include "xplot.h" #include "coord.h" #include ---- xplot.c.orig Wed Jan 22 09:38:48 1997 -+++ xplot.c Mon Mar 3 11:41:31 1997 -@@ -46,7 +46,7 @@ - #include - #include - #include --#include -+#include - #include "xplot.h" - #include "coord.h" - diff --git a/math/xplot/files/patch-ab b/math/xplot/files/patch-ab new file mode 100644 index 000000000000..8c35f0da230a --- /dev/null +++ b/math/xplot/files/patch-ab @@ -0,0 +1,84 @@ +--- xplot.c.orig Wed Jul 2 13:26:09 1997 ++++ xplot.c Sat Aug 1 00:12:42 1998 +@@ -46,7 +46,7 @@ + #include + #include + #include +-#include ++#include + #include "xplot.h" + #include "coord.h" + +@@ -813,9 +813,7 @@ + static struct dpy_info { + unsigned long line_plane_mask; + Colormap clr_map; +- XColor clr; +- unsigned long pixel[NCOLORS]; +- int Colors[NCOLORS]; ++ unsigned long Colors[NCOLORS]; + int virgin; + Atom xplot_nagle_atom; + Display *saved_dpy; +@@ -842,38 +840,37 @@ + /* Allocate some color cells */ + + if (d_i[d].virgin ) { ++ int usewhite; ++ + d_i[d].virgin = 0; + + d_i[d].xplot_nagle_atom = XInternAtom(pl->dpy, "XPLOT_NAGLE", False); + + d_i[d].clr_map = DefaultColormap(pl->dpy, DefaultScreen(pl->dpy)); + +- if ( option_mono || +- +- ! XAllocColorCells(pl->dpy, +- d_i[d].clr_map, 0, +- &d_i[d].line_plane_mask, 1, +- d_i[d].pixel, NColors) ) +- { +- /* probably only one bit plane, or all the color cells are taken */ +-#if 1 +- if (! option_mono) +- fputs("XAllocColorCells failed, will only have one plot color\n", +- stderr); +-#endif +- for ( i = 0; i < NColors; i++) { +- d_i[d].Colors[i] = WhitePixelOfScreen(pl->screen); +- } +- } else { +- for (i = 0; i < NColors; i++) { +- XParseColor(pl->dpy, d_i[d].clr_map, ColorNames[i], &d_i[d].clr); +- d_i[d].clr.pixel = d_i[d].pixel[i]; +- XStoreColor (pl->dpy, d_i[d].clr_map, &d_i[d].clr); +- d_i[d].clr.pixel |= d_i[d].line_plane_mask; +- XStoreColor (pl->dpy, d_i[d].clr_map, &d_i[d].clr); +- d_i[d].Colors[i] = d_i[d].clr.pixel; ++ if ( option_mono ) { ++ usewhite = 1; ++ } else { ++ usewhite = 0; ++ ++ for (i = 0; i < NColors; i++) { ++ XColor alloc, exact; ++ ++ if (XAllocNamedColor(pl->dpy, d_i[d].clr_map, ColorNames[i], ++ &alloc, &exact) == 0) { ++ XFreeColors(pl->dpy, d_i[d].clr_map, d_i[d].Colors, i, NULL); ++ usewhite = 1; ++ fprintf(stderr, "unable to allocate color \"%s\", falling back to only one plot color\n", ColorNames[i]); ++ break; + } ++ d_i[d].Colors[i] = alloc.pixel; ++ } ++ } ++ if ( usewhite ) { ++ for ( i = 0; i < NColors; i++) { ++ d_i[d].Colors[i] = WhitePixelOfScreen(pl->screen); + } ++ } + } + + for (i = 0; i < NColors; i++) { -- cgit v1.2.3