X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fcartesian.c;h=9dceb304ebb75c33477d5989b9bac0b512ba5baf;hb=4a73877b4d56caed03d383fb4d38347a9774046f;hp=cac18400a4e9e85c6b1dc78bc795b3323b76dd4c;hpb=5501903810bcbae487b12bc44d9cbedf29644d96;p=pspp-builds.git diff --git a/src/cartesian.c b/src/cartesian.c index cac18400..9dceb304 100644 --- a/src/cartesian.c +++ b/src/cartesian.c @@ -14,8 +14,8 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. */ #include @@ -53,6 +53,8 @@ write_legend(struct chart *chart, const char *heading, int n); void chart_write_xlabel(struct chart *ch, const char *label) { + if ( ! ch ) + return ; pl_savestate_r(ch->lp); @@ -69,6 +71,9 @@ chart_write_xlabel(struct chart *ch, const char *label) void chart_write_ylabel(struct chart *ch, const char *label) { + if ( ! ch ) + return ; + pl_savestate_r(ch->lp); pl_move_r(ch->lp, ch->data_bottom, ch->ordinate_right); @@ -86,6 +91,10 @@ write_legend(struct chart *chart, const char *heading, { int ds; + if ( ! chart ) + return ; + + pl_savestate_r(chart->lp); pl_filltype_r(chart->lp,1); @@ -124,19 +133,22 @@ write_legend(struct chart *chart, const char *heading, void chart_datum(struct chart *ch, int dataset UNUSED, double x, double y) { - const double x_pos = - (x - ch->x_min) * ch->abscissa_scale + ch->data_left ; + if ( ! ch ) + return ; - const double y_pos = - (y - ch->y_min) * ch->ordinate_scale + ch->data_bottom ; + { + const double x_pos = + (x - ch->x_min) * ch->abscissa_scale + ch->data_left ; + const double y_pos = + (y - ch->y_min) * ch->ordinate_scale + ch->data_bottom ; - pl_savestate_r(ch->lp); + pl_savestate_r(ch->lp); - pl_fmarker_r(ch->lp, x_pos, y_pos, 6, 15); - - pl_restorestate_r(ch->lp); + pl_fmarker_r(ch->lp, x_pos, y_pos, 6, 15); + pl_restorestate_r(ch->lp); + } } /* Draw a line with slope SLOPE and intercept INTERCEPT. @@ -151,6 +163,10 @@ chart_line(struct chart *ch, double slope, double intercept, double x1, y1; double x2, y2 ; + if ( ! ch ) + return ; + + if ( lim_dim == CHART_DIM_Y ) { x1 = ( limit1 - intercept ) / slope ;