Changed all the licence notices in all the files.
[pspp-builds.git] / src / cartesian.c
index a2e9fbff39b2519828bebeee4e40ad5c2c0496be..e4a5fe1352f3323b8bc8035dfab69e2c33f7ca01 100644 (file)
@@ -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 <math.h>
@@ -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);
 
@@ -63,50 +65,15 @@ chart_write_xlabel(struct chart *ch, const char *label)
 
 }
 
-/* Set the scale for the abscissa */
-void 
-chart_write_xscale(struct chart *ch, double min, double max, double tick)
-{
-  double x;
-
-  ch->x_max = ceil( max / tick ) * tick ; 
-  ch->x_min = floor ( min / tick ) * tick ;
-
-  ch->abscissa_scale = fabs(ch->data_right - ch->data_left) / 
-    fabs(ch->x_max - ch->x_min);
-
-  for(x = ch->x_min ; x <= ch->x_max; x += tick )
-      draw_tick (ch, TICK_ABSCISSA, (x - ch->x_min) * ch->abscissa_scale, "%g", x);
-
-}
-
-
-/* Set the scale for the ordinate */
-void 
-chart_write_yscale(struct chart *ch, double min, double max, double tick)
-{
-  double y;
-
-  ch->y_max = ceil( max / tick ) * tick ; 
-  ch->y_min = floor ( min / tick ) * tick ;
-
-  ch->ordinate_scale = 
-    fabs(ch->data_top -  ch->data_bottom) / fabs(ch->y_max - ch->y_min) ;
-
-  for(y = ch->y_min ; y <= ch->y_max; y += tick )
-    {
-    draw_tick (ch, TICK_ORDINATE, 
-              (y - ch->y_min) * ch->ordinate_scale, "%g", y);
-    }
-
-}
-
 
 
 /* Write the ordinate 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);
@@ -124,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);
@@ -162,13 +133,18 @@ write_legend(struct chart *chart, const char *heading,
 void
 chart_datum(struct chart *ch, int dataset UNUSED, double x, double y)
 {
+
+  if ( ! ch ) 
+    return ;
+
+
+
   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_fmarker_r(ch->lp, x_pos, y_pos, 6, 15);
@@ -189,6 +165,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 ;