Made pspp fail a little more gracefully on drivers where charts are unsupported.
authorJohn Darrington <john@darrington.wattle.id.au>
Mon, 14 Feb 2005 12:36:01 +0000 (12:36 +0000)
committerJohn Darrington <john@darrington.wattle.id.au>
Mon, 14 Feb 2005 12:36:01 +0000 (12:36 +0000)
src/box-whisker.c
src/examine.q
src/plot-chart.c
src/postscript.c

index 773de80984d4405d74d6af6f4b661f5631a7d633..57930c86e9e3d739baa9273ee994d63fe77b579f 100644 (file)
@@ -212,6 +212,9 @@ boxplot_draw_yscale(struct chart *ch , double y_max, double y_min)
   double y_tick;
   double d;
 
+  if ( !ch ) 
+     return ;
+
   ch->y_max  = y_max;
   ch->y_min  = y_min;
 
index f92bba1fd2160709f263a860b9bd0dd22699e38d..96d8210da59d3341fe176215e65521c23c0bc113 100644 (file)
@@ -1777,7 +1777,7 @@ box_plot_group(const struct factor *fctr,
                                   s);
            }
        }
-      else
+      else if ( ch )
        {
          const double box_width = (ch->data_right - ch->data_left) / 3.0;
          const double box_centre = (ch->data_right + ch->data_left) / 2.0;
index 795e3113a8da141d428c8a832194557ef47cf8fd..ae90a7e3933b66c1abdea019f7f824e89e31450c 100644 (file)
@@ -188,7 +188,8 @@ chart_submit(struct chart *chart)
 {
   struct som_entity s;
 
-  assert(chart);
+  if ( ! chart ) 
+     return ;
 
   pl_restorestate_r(chart->lp);
 
index 7b1f6e1562d58b473c4087d2f681602a6805daa8..ebad2472655f1d25734edce3744ea3d6c740576f 100644 (file)
@@ -2871,6 +2871,28 @@ load_font (struct outp_driver *this, const char *dit)
   return fe;
 }
 
+
+void ps_chart_initialise(struct outp_class *c UNUSED, 
+                           struct chart *ch UNUSED);
+
+void ps_chart_finalise(struct outp_class *c UNUSED, 
+                         struct chart *ch UNUSED);
+
+
+void
+ps_chart_initialise(struct outp_class *c UNUSED, struct chart *ch )
+{
+  msg(MW, _("Charts are currently unsupported with postscript drivers."));
+  ch->lp = 0;
+}
+
+void 
+ps_chart_finalise(struct outp_class *c UNUSED, struct chart *ch UNUSED)
+{
+  
+}
+
+
 /* PostScript driver class. */
 struct outp_class postscript_class =
 {
@@ -2911,8 +2933,8 @@ struct outp_class postscript_class =
   ps_text_metrics,
   ps_text_draw,
 
-  NULL,
-  NULL
+  ps_chart_initialise,
+  ps_chart_finalise
 };
 
 /* EPSF driver class.  FIXME: Probably doesn't work right. */
@@ -2955,8 +2977,9 @@ struct outp_class epsf_class =
   ps_text_metrics,
   ps_text_draw,
 
-  NULL,
-  NULL
+  ps_chart_initialise,
+  ps_chart_finalise
+
 };
 
 #endif /* NO_POSTSCRIPT */