Changed all the licence notices in all the files.
[pspp-builds.git] / src / examine.q
index 4e28f23917501542defa0803efbc9cc4667b9610..280828de4fcf308e0e5c590ea7dcf2b0515c7195 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>
@@ -49,7 +49,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 
 /* (specification)
    "EXAMINE" (xmn_):
-   *variables=custom;
+   *^variables=custom;
    +total=custom;
    +nototal=custom;
    +missing=miss:pairwise/!listwise,
@@ -372,6 +372,8 @@ output_examine(void)
 }
 
 
+/* Create a hash table of percentiles and their values from the list of
+   percentiles */
 static struct hsh_table *
 list_to_ptile_hash(const subc_list_double *l)
 {
@@ -391,6 +393,7 @@ list_to_ptile_hash(const subc_list_double *l)
       struct percentile *p = xmalloc (sizeof (struct percentile));
       
       p->p = subc_list_double_at(l,i);
+      p->v = SYSMIS;
 
       hsh_insert(h, p);
 
@@ -410,9 +413,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();
 
@@ -1527,12 +1530,14 @@ populate_descriptives(struct tab_table *tbl, int col, int row,
     
     assert(p);
 
+
     tab_float (tbl, col + 2, 
               row + 4,
               TAB_CENTER,
               p->v,
               8, 2);
   }
+    
 
   tab_text (tbl, col, 
            row + 5,
@@ -1772,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;