Adopt use of gnulib for portability.
[pspp-builds.git] / src / examine.q
index 3454b66f927a82696d64bbed727625512a593abc..b54f574b5c36631f79ed2b7e98f0fd5f3daca5f3 100644 (file)
@@ -15,8 +15,8 @@ General Public License for more details.
 
 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 <config.h>
 #include <gsl/gsl_cdf.h>
@@ -44,12 +44,16 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 #include "moments.h"
 #include "percentiles.h"
 
+#include "gettext.h"
+#define _(msgid) gettext (msgid)
+#define N_(msgid) msgid
+
 /* (headers) */
 #include "chart.h"
 
 /* (specification)
    "EXAMINE" (xmn_):
-   *variables=custom;
+   *^variables=custom;
    +total=custom;
    +nototal=custom;
    +missing=miss:pairwise/!listwise,
@@ -413,9 +417,9 @@ xmn_custom_percentiles(struct cmd_examine *p UNUSED)
 
   lex_match('(');
 
-  while ( lex_double_p() ) 
+  while ( lex_is_number() ) 
     {
-      subc_list_double_push(&percentile_list,lex_double());
+      subc_list_double_push(&percentile_list,lex_number());
 
       lex_get();
 
@@ -612,6 +616,7 @@ factor_calc(struct ccase *c, int case_no, double weight, int case_missing)
 
   while ( fctr) 
     {
+      struct factor_statistics **foo ;
       union value indep_vals[2] ;
 
       indep_vals[0] = * case_data(c, fctr->indep_var[0]->fv);
@@ -623,7 +628,7 @@ factor_calc(struct ccase *c, int case_no, double weight, int case_missing)
 
       assert(fctr->fstats);
 
-      struct factor_statistics **foo = ( struct factor_statistics ** ) 
+      foo = ( struct factor_statistics ** ) 
        hsh_probe(fctr->fstats, (void *) &indep_vals);
 
       if ( !*foo ) 
@@ -1508,8 +1513,8 @@ populate_descriptives(struct tab_table *tbl, int col, int row,
 
   tab_text (tbl, col, 
            row + 3,
-           TAB_LEFT | TAT_TITLE,
-           _("5% Trimmed Mean"));
+           TAB_LEFT | TAT_TITLE | TAT_PRINTF,
+           _("5%% Trimmed Mean"));
 
   tab_float (tbl, col + 2, 
             row + 3,
@@ -1689,10 +1694,7 @@ box_plot_variables(const struct factor *fctr,
     {
       double y_min = DBL_MAX;
       double y_max = -DBL_MAX;
-      struct chart *ch;
-
-      ch = chart_create();
-
+      struct chart *ch = chart_create();
       const char *s = factor_to_string(fctr, *fs, 0 );
 
       chart_write_title(ch, s);
@@ -1777,7 +1779,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;
@@ -1856,8 +1858,7 @@ np_plot(const struct metrics *m, const char *factorname)
   {
     /* We have to cache the detrended data, beacause we need to 
        find its limits before we can plot it */
-    double *d_data;
-    d_data = xmalloc (m->n_data * sizeof(double));
+    double *d_data = xmalloc (m->n_data * sizeof(double));
     double d_max = -DBL_MAX;
     double d_min = DBL_MAX;
     for ( i = 0 ; i < m->n_data; ++i )