Changed all the licence notices in all the files.
[pspp-builds.git] / src / numeric.c
index f80865d1dadce9aa1ec4cf63249729a93f06d114..844465eb126a3425e90c43039929e5a2596b1753 100644 (file)
 
    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 <assert.h>
+#include "error.h"
 #include <stdlib.h>
-#include "cases.h"
 #include "command.h"
+#include "dictionary.h"
 #include "error.h"
 #include "lexer.h"
 #include "str.h"
 #include "var.h"
 
-#undef DEBUGGING
-/*#define DEBUGGING 1*/
 #include "debug-print.h"
 
 /* Parses the NUMERIC command. */
@@ -45,7 +43,6 @@ cmd_numeric (void)
      be used. */
   struct fmt_spec f;
 
-  lex_match_id ("NUMERIC");
   do
     {
       if (!parse_DATA_LIST_vars (&v, &nv, PV_NONE))
@@ -75,15 +72,13 @@ cmd_numeric (void)
       /* Create each variable. */
       for (i = 0; i < nv; i++)
        {
-         struct variable *new_var = create_variable (&default_dict, v[i],
-                                              NUMERIC, 0);
+         struct variable *new_var = dict_create_var (default_dict, v[i], 0);
          if (!new_var)
            msg (SE, _("There is already a variable named %s."), v[i]);
          else
            {
              if (f.type != -1)
                new_var->print = new_var->write = f;
-             envector (new_var);
            }
        }
 
@@ -121,7 +116,6 @@ cmd_string (void)
   /* Width of variables to create. */
   int width;
 
-  lex_match_id ("STRING");
   do
     {
       if (!parse_DATA_LIST_vars (&v, &nv, PV_NONE))
@@ -153,20 +147,18 @@ cmd_string (void)
          break;
        default:
          assert (0);
+          abort ();
        }
 
       /* Create each variable. */
       for (i = 0; i < nv; i++)
        {
-         struct variable *new_var = create_variable (&default_dict, v[i],
-                                              ALPHA, width);
+         struct variable *new_var = dict_create_var (default_dict, v[i],
+                                                      width);
          if (!new_var)
            msg (SE, _("There is already a variable named %s."), v[i]);
          else
-           {
-             new_var->print = new_var->write = f;
-             envector (new_var);
-           }
+            new_var->print = new_var->write = f;
        }
 
       /* Clean up. */
@@ -196,16 +188,14 @@ cmd_leave (void)
 
   int i;
 
-  lex_match_id ("LEAVE");
-  if (!parse_variables (NULL, &v, &nv, PV_NONE))
+  if (!parse_variables (default_dict, &v, &nv, PV_NONE))
     return CMD_FAILURE;
   for (i = 0; i < nv; i++)
     {
-      if (v[i]->left)
+      if (!v[i]->reinit)
        continue;
-      devector (v[i]);
-      v[i]->left = 1;
-      envector (v[i]);
+      v[i]->reinit = 0;
+      v[i]->init = 1;
     }
   free (v);