Move global initialization and cleanup code into main.c.
[pspp-builds.git] / src / var-display.c
index 73c0c0a8059a1e11d3149c1b0bf1f0a652aa5320..485fd3a1197f73938f531bee53eb53b065194254 100644 (file)
@@ -39,9 +39,9 @@ cmd_variable_alignment (void)
   do
     {
       struct variable **v;
-      int nv;
+      size_t nv;
 
-      int i;
+      size_t i;
       enum alignment align;
 
 
@@ -56,11 +56,19 @@ cmd_variable_alignment (void)
            align = ALIGN_RIGHT;
          else if ( lex_match_id("CENTER"))
            align = ALIGN_CENTRE;
-         else
-           return CMD_FAILURE;
+         else 
+            {
+              free (v);
+              return CMD_FAILURE; 
+            }
 
          lex_force_match(')');
        }
+      else 
+        {
+          free (v);
+          return CMD_FAILURE; 
+        }
 
       for( i = 0 ; i < nv ; ++i ) 
        v[i]->alignment = align;
@@ -85,8 +93,8 @@ cmd_variable_width (void)
   do
     {
       struct variable **v;
-      int nv;
-      int i;
+      size_t nv;
+      size_t i;
 
       if (!parse_variables (default_dict, &v, &nv, PV_NONE))
         return CMD_PART_SUCCESS_MAYBE;
@@ -119,9 +127,9 @@ cmd_variable_level (void)
   do
     {
       struct variable **v;
-      int nv;
+      size_t nv;
       enum measure level;
-      int i;
+      size_t i;
 
       if (!parse_variables (default_dict, &v, &nv, PV_NONE))
         return CMD_PART_SUCCESS_MAYBE;
@@ -134,12 +142,20 @@ cmd_variable_level (void)
            level = MEASURE_ORDINAL;
          else if ( lex_match_id("NOMINAL"))
            level = MEASURE_NOMINAL;
-         else
-           return CMD_FAILURE;
+         else 
+            {
+              free (v);
+              return CMD_FAILURE; 
+            }
 
          lex_force_match(')');
        }
-
+      else
+        {
+          free (v);
+          return CMD_FAILURE; 
+        }
+      
       for( i = 0 ; i < nv ; ++i ) 
        v[i]->measure = level ;