double check ranges and don't blithely divide by zero Reference: /n/sources/patch/plot-range-ck Date: Wed Jun 19 01:41:28 CES 2013 Signed-off-by: quanstro@quanstro.net --- /sys/src/cmd/plot/libplot/range.c Wed Jun 19 01:41:25 2013 +++ /sys/src/cmd/plot/libplot/range.c Wed Jun 19 01:41:25 2013 @@ -1,9 +1,17 @@ #include "mplot.h" void range(double x0, double y0, double x1, double y1){ + double d; + e1->xmin = x0; e1->ymin = y0; - e1->scalex = e1->sidex / (x1 - x0 ); - e1->scaley = e1->sidey / (y1 - y0 ); + d = x1 - x0; + if(d == 0) + sysfatal("degenerate x range%g - %g", x1, x0); + e1->scalex = e1->sidex / d; + d = y1 - y0; + if(d == 0) + sysfatal("degenerate y range %g - %g", y1, y0); + e1->scaley = e1->sidey / d; e1->quantum=e0->quantum/sqrt(e1->scalex*e1->scalex + e1->scaley*e1->scaley); if(e1->quantum < .01)