more mconvert
[pspp] / src / language / data-io / mconvert.c
index 1e24464709e09195b88b8dcb15f7445b471df60b..f15ad9be77983bf91600d9e0c349b2e523b2989a 100644 (file)
@@ -117,7 +117,8 @@ cmd_mconvert (struct lexer *lexer, struct dataset *ds)
         break;
 
       bool add_corr = mm.cov && !mm.corr;
-      bool add_cov = mm.corr && !mm.cov;
+      bool add_cov = mm.corr && !mm.cov && mm.var_matrix;
+      bool add_stddev = add_corr && !mm.var_matrix;
       bool remove_corr = add_cov && !append;
       bool remove_cov = add_corr && !append;
 
@@ -142,9 +143,6 @@ cmd_mconvert (struct lexer *lexer, struct dataset *ds)
 
       if (add_corr)
         {
-          assert (mm.cov->size1 == mr->n_cvars);
-          assert (mm.cov->size2 == mr->n_cvars);
-
           for (size_t y = 0; y < mr->n_cvars; y++)
             {
               struct ccase *c = case_clone (model);
@@ -160,7 +158,10 @@ cmd_mconvert (struct lexer *lexer, struct dataset *ds)
                                         ss_cstr (var_get_name (mr->cvars[y])));
               casewriter_write (cw, c);
             }
+        }
 
+      if (add_stddev)
+        {
           struct ccase *c = case_clone (model);
           for (size_t x = 0; x < mr->n_cvars; x++)
             {
@@ -174,9 +175,6 @@ cmd_mconvert (struct lexer *lexer, struct dataset *ds)
 
       if (add_cov)
         {
-          assert (mm.corr->size1 == mr->n_cvars);
-          assert (mm.corr->size2 == mr->n_cvars);
-
           for (size_t y = 0; y < mr->n_cvars; y++)
             {
               struct ccase *c = case_clone (model);